Поделиться через


Интерфейс IServiceProvider (servprov.h)

Предоставляет универсальный механизм доступа для поиска службы, идентифицируемой идентификатором GUID.

Наследование

Интерфейс IServiceProvider наследуется от интерфейса IUnknown.

Методы

Интерфейс IServiceProvider содержит следующие методы.

 
IServiceProvider::QueryService

Выступает в качестве фабричного метода для любых служб, предоставляемых через реализацию IServiceProvider.
IServiceProvider::QueryService

Выступает в качестве фабричного метода для любых служб, предоставляемых через реализацию IServiceProvider. Принимает параметр CLSID.

Комментарии

Интерфейс IServiceProvider — это универсальный механизм доступа для поиска службы, определяемой идентификатором GUID, которая предоставляется с помощью элемента управления или любого другого объекта, с которым служба может взаимодействовать. Например, внедренный объект (например, элемент управления OLE) обычно взаимодействует только со связанным объектом клиентского сайта в контейнере через интерфейс IOleClientSite , предоставляемый с помощью IOleObject::SetClientSite. Внедренный объект должен запрашивать у клиентского сайта какую-то другую службу, которую поддерживает контейнер, если эта служба может не быть реализована на клиентском сайте.

Клиентский сайт должен предоставлять средства, с помощью которых элемент управления, управляемый сайтом, может при необходимости получить доступ к службе. Например, функция IOleInPlaceSite::GetWindowContext) может использоваться объектом на месте или элементом управления для доступа к указателям интерфейса для объекта документа, содержащего сайт, и объекта frame, содержащего документ. Поскольку эти указатели интерфейса существуют в отдельных объектах, элемент управления не может вызвать QueryInterface сайта для получения этих указателей. Вместо этого используйте интерфейс IServiceProvider.

Интерфейс IServiceProvider должен перегрузить один метод QueryService, с помощью которого вызывающий объект задает идентификатор службы (SID, GUID), идентификатор IID возвращаемого интерфейса и адрес переменной указателя интерфейса вызывающего объекта. Вторая перегрузка выводит идентификатор IID из указателя вывода, переданного в метод .

Идентификатор IID для этого интерфейса IID_IServiceProvider.

Требования

Требование Значение
Минимальная версия клиента Сборка Windows 22000
Минимальная версия сервера Сборка Windows 22000
Верхняя часть servprov.h