Функция BindMoniker (objbase.h)
Находит объект с помощью его моникера, активирует объект, если он неактивен, и извлекает указатель на указанный интерфейс для этого объекта.
Синтаксис
HRESULT BindMoniker(
[in] LPMONIKER pmk,
[in] DWORD grfOpt,
[in] REFIID iidResult,
[out] LPVOID *ppvResult
);
Параметры
[in] pmk
Указатель на моникер объекта. См. раздел IMoniker.
[in] grfOpt
Этот параметр зарезервирован для использования в будущем и должен иметь значение 0.
[in] iidResult
Идентификатор интерфейса, используемый для взаимодействия с объектом .
[out] ppvResult
Адрес переменной указателя, получающей указатель интерфейса, запрошенный в iidResult. После успешного возврата *ppvResult содержит запрошенный указатель интерфейса. Если возникает ошибка, *ppvResult имеет значение NULL. Если вызов выполнен успешно, вызывающий объект отвечает за освобождение указателя с помощью вызова метода IUnknown::Release объекта.
Возвращаемое значение
Эта функция может возвращать следующие коды ошибок или любые значения ошибок, возвращаемые методом IMoniker::BindToObject .
Код возврата | Описание |
---|---|
|
Объект был найден и активирован при необходимости, а также возвращен указатель на запрошенный интерфейс. |
|
Не удалось найти объект моникера. |
Комментарии
BindMoniker — это вспомогательная функция, предоставляемая в качестве удобного для клиента, имеющего моникер объекта, для получения указателя на один из интерфейсов этого объекта. BindMoniker упаковывает следующие вызовы:
CreateBindCtx(0, &pbc);
pmk->BindToObject(pbc, NULL, riid, ppvObj);
CreateBindCtx создает объект контекста привязки, который поддерживает системную реализацию IBindContext. Параметр pmk фактически является указателем на реализацию IMoniker в объекте моникера. Метод BindToObject этой реализации предоставляет указатель на запрошенный указатель интерфейса.
Если у вас есть несколько моникеров для быстрой последовательности и если вы знаете, что эти моникеры активируют один и тот же объект, может быть эффективнее вызвать метод IMoniker::BindToObject напрямую, что позволяет использовать один и тот же объект контекста привязки для всех моникеров. Дополнительные сведения см. в интерфейсе IBindCtx .
Контейнеры приложений, которые позволяют своим документам содержать связанные объекты, являются специальным клиентом, который, как правило, не выполняет прямые вызовы методов IMoniker . Вместо этого клиент управляет связанными объектами через интерфейс IOleLink . Обработчик по умолчанию реализует этот интерфейс и вызывает соответствующие методы IMoniker по мере необходимости.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | objbase.h |
Библиотека | Ole32.lib |
DLL | Ole32.dll |
Набор API | ext-ms-win-com-ole32-l1-1-5 (появилось в Windows 10 версии 10.0.15063) |