Функция CreateBindCtx (objbase.h)

Возвращает указатель на реализацию IBindCtx (объект контекста привязки). Этот объект хранит сведения о конкретной операции привязки моникера.

Синтаксис

HRESULT CreateBindCtx(
  [in]  DWORD reserved,
  [out] LPBC  *ppbc
);

Параметры

[in] reserved

Этот параметр зарезервирован и должен иметь значение 0.

[out] ppbc

Адрес переменной указателя IBindCtx*, которая получает указатель интерфейса на новый объект контекста привязки. При успешном выполнении функции вызывающий объект отвечает за вызов Release в контексте привязки. Значение NULL для контекста привязки указывает, что произошла ошибка.

Возвращаемое значение

Эта функция может возвращать стандартные возвращаемые значения E_OUTOFMEMORY и S_OK.

Комментарии

CreateBindCtx чаще всего используется в процессе привязки моникера (поиск и получение указателя на интерфейс путем его идентификации с помощью моникера), как показано ниже.

  1. Получите указатель на контекст привязки, вызвав функцию CreateBindCtx .
  2. Вызовите метод IMoniker::BindToObject для моникера, извлекая указатель интерфейса на объект, на который ссылается моникер.
  3. Освобождение контекста привязки.
  4. Используйте указатель интерфейса.
  5. Отпустите указатель интерфейса.
Эти шаги иллюстрируются в следующем фрагменте кода.
// pMnk is an IMoniker * that points to a previously acquired moniker 
IInterface *pInterface; 
IBindCtx *pbc; 
 
CreateBindCtx( 0, &pbc ); 
pMnk->BindToObject( pbc, NULL, IID_IInterface, &pInterface ); 
pbc->Release(); 

// pInterface now points to the object; safe to use pInterface 
pInterface->Release(); 

Контексты привязки также используются в других методах интерфейса IMoniker , помимо IMoniker::BindToObject и в функции MkParseDisplayName .

Контекст привязки сохраняет ссылки на объекты, привязанные во время операции привязки, что приводит к тому, что связанные объекты остаются активными (сохраняя работу сервера объекта) до тех пор, пока контекст привязки не будет освобожден. Повторное использование контекста привязки при последующих операциях привязки к тому же объекту может повысить производительность. Однако следует как можно скорее освободить контекст привязки, так как объекты могут быть активированы без необходимости.

Контекст привязки содержит структуру BIND_OPTS , которая содержит параметры, которые применяются ко всем шагам в операции привязки. При создании контекста привязки с помощью CreateBindCtx поля структуры BIND_OPTS инициализируются следующим образом.

cbStruct = sizeof(BIND_OPTS) 
grfFlags = 0 
grfMode = STGM_READWRITE 
dwTickCountDeadline = 0

Чтобы изменить эти значения по умолчанию, можно вызвать метод IBindCtx::SetBindOptions .

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header objbase.h
Библиотека Ole32.lib
DLL Ole32.dll

См. также раздел

IBindCtx

IMoniker

MkParseDisplayName