다음을 통해 공유


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::BindToObject 외에 IMoniker 인터페이스의 다른 메서드와 MkParseDisplayName 함수에서도 사용됩니다.

바인딩 컨텍스트는 바인딩 작업 중에 바인딩된 개체에 대한 참조를 유지하므로 바인딩 컨텍스트가 해제될 때까지 바인딩된 개체가 활성 상태로 유지됩니다(개체의 서버 실행 유지). 후속 작업이 동일한 개체에 바인딩될 때 바인딩 컨텍스트를 다시 사용하면 성능이 향상될 수 있습니다. 그러나 개체를 불필요하게 활성화된 상태로 유지할 수 있으므로 가능한 한 빨리 바인딩 컨텍스트를 해제해야 합니다.

바인딩 컨텍스트는 바인딩 작업의 모든 단계에 적용되는 매개 변수를 포함하는 BIND_OPTS 구조를 포함합니다. CreateBindCtx를 사용하여 바인딩 컨텍스트를 만들면 BIND_OPTS 구조체의 필드가 다음과 같이 초기화됩니다.

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

IBindCtx::SetBindOptions 메서드를 호출하여 이러한 기본값을 수정할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 objbase.h
라이브러리 Ole32.lib
DLL Ole32.dll

추가 정보

IBindCtx

Imoniker

MkParseDisplayName