Интерфейс 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 |