Функция 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 чаще всего используется в процессе привязки моникера (поиск и получение указателя на интерфейс путем его идентификации с помощью моникера), как показано ниже.
- Получите указатель на контекст привязки, вызвав функцию CreateBindCtx .
- Вызовите метод IMoniker::BindToObject для моникера, извлекая указатель интерфейса на объект, на который ссылается моникер.
- Освобождение контекста привязки.
- Используйте указатель интерфейса.
- Отпустите указатель интерфейса.
// 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 |