IHttpServer2::GetExtendedInterface 方法

根据版本 GUID (全局唯一标识符) 值检索正确的向下强制转换指针。

语法

virtual HRESULT GetExtendedInterface(  
   _In_ const GUID &       Version1,  
   _In_ PVOID              pInput,  
   _In_ const GUID &       Version2,  
   _Outptr_ PVOID *        ppOutput  
) = 0;  

parameters

Version1
[IN]旧实例的 GUID。

pInput
[IN]指向旧实例。

Version2
[IN]要向下强制转换为的接口的 GUID。

ppOutput
[OUT]指向向下强制转换的实例。

返回值

HRESULT。 可能的值包括(但并不限于)下表中的项。

说明
S_OK 指示操作成功。

备注

此方法用于将基类指针向下强制转换为派生类。 例如,假设已有指向 IHttpRequest 的实例指针。 代码需要向下强制转换为其派生类 IHttpRequest2 才能调用其新方法之一。

HRESULT SomeFunction(   
    IHttpServer2* pHttpServer,  
    IHttpRequest pHttpRequest   
)  
{  
    IHttpRequest2 pHttpRequest2 = NULL;  
    // Grab a new interface!  
    pHttpServer-> GetExtendedInterface(__uuidof(pHttpRequest), pHttpRequest, __uuidof(pHttpRequest2), &pHttpRequest2 );  
    …  
}  

可以使用客户端 HttpGetExtendedInterface 实用工具函数向下强制转换指针,而不是使用 GetExtendedInterface

要求

类型 说明
客户端 - Windows Vista 上的 IIS 7.0
- Windows 7 上的 IIS 7.5
- Windows 8 上的 IIS 8.0
- Windows 10 上的 IIS 10.0
服务器 - Windows Server 2008 上的 IIS 7.0
- Windows Server 2008 R2 上的 IIS 7.5
- Windows Server 2012 上的 IIS 8.0
- Windows Server 2012 R2 上的 IIS 8.5
- Windows Server 2016 上的 IIS 10.0
产品 - IIS 7.0、IIS 7.5、IIS 8.0、IIS 8.5、IIS 10.0
- IIS Express 7.5、IIS Express 8.0、IIS Express 10.0
Header Httpserv.h

另请参阅

IHttpServer2 接口