IServiceProvider 接口 (servprov.h)

提供用于查找 GUID 标识的服务的通用访问机制。

继承

IServiceProvider 接口继承自 IUnknown 接口。

方法

IServiceProvider 接口包含以下方法。

 
IServiceProvider::QueryService

充当通过 IServiceProvider 实现公开的任何服务的工厂方法。
IServiceProvider::QueryService

充当通过 IServiceProvider 实现公开的任何服务的工厂方法。 接受 CLSID 参数。

注解

IServiceProvider 接口是一种通用访问机制,用于查找 GUID 标识的服务,该服务通过控件或该服务可以与之通信的任何其他对象提供。 例如,嵌入对象 ((如 OLE 控件) 通常仅通过 IOleObject::SetClientSite 提供的 IOleClientSite 接口与容器中的关联客户端站点对象进行通信。 当可能无法在客户端站点中实现该服务时,嵌入对象必须要求客户端站点提供容器支持的其他服务。

客户端站点必须提供一种方法,以便站点管理的控件在必要时可以访问服务。 例如, IOleInPlaceSite::GetWindowContext) 函数可由就地对象或控件用于访问包含网站的文档对象和包含文档的框架对象的接口指针。 由于这些接口指针存在于单独的对象上,因此控件无法调用站点的 QueryInterface 来获取这些指针。 请改用 IServiceProvider 接口。

IServiceProvider 接口必须重载单个方法 QueryService,调用方通过该方法指定服务 ID (SID、GUID) 、要返回的接口的 IID 以及调用方接口指针变量的地址。 第二个重载从传递到 方法的输出指针推断 IID。

此接口的 IID IID_IServiceProvider。

要求

要求
最低受支持的客户端 Windows 内部版本 22000
最低受支持的服务器 Windows 内部版本 22000
标头 servprov.h