Compartir a través de


Interfaz IServiceProvider (servprov.h)

Proporciona un mecanismo de acceso genérico para buscar un servicio identificado por GUID.

Herencia

La interfaz IServiceProvider hereda de la interfaz IUnknown.

Métodos

La interfaz IServiceProvider tiene estos métodos.

 
IServiceProvider::QueryService

Actúa como método de fábrica para cualquier servicio expuesto a través de una implementación de IServiceProvider.
IServiceProvider::QueryService

Actúa como método de fábrica para cualquier servicio expuesto a través de una implementación de IServiceProvider. Acepta un parámetro CLSID.

Comentarios

La interfaz IServiceProvider es un mecanismo de acceso genérico para buscar un servicio identificado por GUID que se proporciona a través de un control o cualquier otro objeto con el que el servicio pueda comunicarse. Por ejemplo, un objeto incrustado (como un control OLE) normalmente solo se comunica con su objeto de sitio de cliente asociado en el contenedor a través de la interfaz IOleClientSite que se proporciona mediante IOleObject::SetClientSite. El objeto incrustado debe pedir al sitio cliente algún otro servicio que admita el contenedor cuando ese servicio podría no implementarse en el sitio cliente.

El sitio cliente debe proporcionar un medio por el que el control administrado por el sitio puede acceder al servicio cuando sea necesario. Por ejemplo, una función IOleInPlaceSite::GetWindowContext) puede usarse mediante un control o objeto en contexto para tener acceso a punteros de interfaz para el objeto de documento que contiene el sitio y el objeto de marco que contiene el documento. Dado que estos punteros de interfaz existen en objetos independientes, el control no puede llamar a QueryInterface del sitio para obtener esos punteros. En su lugar, use la interfaz IServiceProvider.

La interfaz IServiceProvider tiene que sobrecargar un único método, QueryService, a través del cual un llamador especifica el identificador de servicio (SID, un GUID), el IID de la interfaz que se va a devolver y la dirección de la variable de puntero de interfaz del autor de la llamada. La segunda sobrecarga deduce el IID del puntero de salida pasado al método .

El IID de esta interfaz es IID_IServiceProvider.

Requisitos

Requisito Value
Cliente mínimo compatible Compilación 22000 de Windows
Servidor mínimo compatible Compilación 22000 de Windows
Encabezado servprov.h