| title | IHttpServer::GetManagedType Method |
|---|---|
| description | Learn how the GetManagedType method retrieves the managed type for a specific site and Uniform Resource Identifier (URI). |
| ms.date | 10/07/2016 |
| ms.assetid | b4e71c1b-10cd-5cf2-0198-0d73ba87fd9f |
Retrieves the managed type for a specific site and Uniform Resource Identifier (URI).
virtual HRESULT GetManagedType(
IN DWORD dwSiteId,
IN PCWSTR pszVirtualPath,
__out PWSTR pszManagedType,
IN OUT DWORD* pcchManagedType
) = 0; dwSiteId
[IN] The site identifier for the URI in pszVirtualPath.
pszVirtualPath
[IN] A pointer to a string that contains a URI.
pszManagedType
[__out] A pointer to a preallocated string buffer.
pcchManagedType
[IN][OUT] The length, in bytes, of the pszManagedType buffer.
An HRESULT. Possible values include, but are not limited to, those in the following table.
| Value | Description |
|---|---|
| S_OK | Indicates that the operation was successful. |
| E_INVALIDARG | Indicates that an invalid value was passed in one of the parameters (for example, one of the pointers is set to NULL). |
| E_OUTOFMEMORY | Indicates that there is not enough available memory to perform the operation. |
| ERROR_INVALID_PARAMETER | Indicates that an invalid value was passed in one of the parameters. |
| ERROR_INSUFFICIENT_BUFFER | Indicates that there is not enough buffer space to perform the operation. |
The GetManagedType method retrieves the type attribute for request handler that will process a specific virtual path that is specified by the dwSiteId and pszVirtualPath parameters. The method then returns this information in the buffer that is specified by the pszManagedType parameter.
Important
The caller must allocate the buffer for pszManagedType. If the caller passes NULL for this parameter, the method will return E_INVALIDARG.
The type attribute for a request handler is located in the <handlers> section of the ApplicationHost.config file. This attribute contains a list of the [!INCLUDEdnprdnshort] namespaces for a request handler. For example, the "TraceHandler-Integrated" request handler has a type attribute of "System.Web.Handlers.TraceHandler" by default.
The IHttpServer::GetManagedType method differs from the IScriptMapInfo::GetManagedType method in that the IHttpServer::GetManagedType method can retrieve the type attribute for any virtual path, whereas the IScriptMapInfo::GetManagedType method will retrieve only the type attribute for the IScriptMapInfo interface.
The following code example demonstrates how to use the GetManagedType method to create an HTTP module that retrieves the managed type for the /default.aspx URI.
The module completes the following steps:
-
Retrieves the site identifier for the current request.
-
Retrieves the length needed to retrieve the managed type for the request.
-
Allocates a buffer for the managed type.
-
Retrieves the managed type.
-
Returns the result to a Web client and then exits.
[!code-cppIHttpServerGetManagedType#1]
Your module must export the RegisterModule function. You can export this function by creating a module definition (.def) file for your project, or you can compile the module by using the /EXPORT:RegisterModule switch. For more information, see Walkthrough: Creating a Request-Level HTTP Module By Using Native Code.
You can optionally compile the code by using the __stdcall (/Gz) calling convention instead of explicitly declaring the calling convention for each function.
| Type | Description |
|---|---|
| Client | - IIS 7.0 on [!INCLUDEwinvista] - IIS 7.5 on Windows 7 - IIS 8.0 on Windows 8 - IIS 10.0 on Windows 10 |
| Server | - IIS 7.0 on [!INCLUDEwinsrv2008] - IIS 7.5 on Windows Server 2008 R2 - IIS 8.0 on Windows Server 2012 - IIS 8.5 on Windows Server 2012 R2 - IIS 10.0 on Windows Server 2016 |
| Product | - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0 - [!INCLUDEiisexp75], [!INCLUDEiisexp80], [!INCLUDEiisexp100] |
| Header | Httpserv.h |