BIND_OPTS2 구조체(objidl.h)
모니커 바인딩 작업 중에 사용되는 매개 변수를 포함합니다.
구문
typedef struct tagBIND_OPTS2 {
DWORD cbStruct;
DWORD grfFlags;
DWORD grfMode;
DWORD dwTickCountDeadline;
DWORD dwTrackFlags;
DWORD dwClassContext;
LCID locale;
COSERVERINFO *pServerInfo;
} BIND_OPTS2, *LPBIND_OPTS2;
멤버
cbStruct
이 구조체의 크기(바이트)입니다.
grfFlags
모니커 바인딩 작업의 측면을 제어하는 플래그입니다. 이 값은 BIND_FLAGS 열거형의 비트 플래그 조합입니다. CreateBindCtx 함수는 이 멤버를 0으로 초기화합니다.
grfMode
모니커가 식별한 개체가 들어 있는 파일을 열때 사용해야 하는 플래그입니다. 가능한 값은 STGM 상수입니다. 바인딩 작업은 파일을 로드할 때 IPersistFile::Load 호출에서 이러한 플래그를 사용합니다. 개체가 이미 실행 중인 경우 이러한 플래그는 바인딩 작업에서 무시됩니다. CreateBindCtx 함수는 이 필드를 STGM_READWRITE 초기화합니다.
dwTickCountDeadline
호출자가 바인딩 작업을 완료할 시계 시간(밀리초)입니다. 이 멤버 속도가 가장 중요 하는 경우 호출자 도를 작업의 실행 시간을 수 있습니다. 값이 0이면 마감일이 없음을 나타냅니다. 호출자는 IMoniker::GetTimeOfLastChange 메서드를 호출할 때 이 기능을 가장 자주 사용하지만 다른 작업에도 유용하게 적용할 수 있습니다. CreateBindCtx 함수는 이 필드를 0으로 초기화합니다.
일반적인 마감일은 수백 밀리초의 실행을 허용합니다. 이 마감일은 요구 사항이 아니라 권장 사항입니다. 그러나 최종 기한을 초과하는 작업은 최종 사용자에게 지연을 일으킬 수 있습니다. 각 모니커 구현은 최종 기한까지 작업을 완료하려고 시도하거나 오류 MK_E_EXCEEDEDDEADLINE 실패해야 합니다.
필요한 개체가 하나 이상 실행되고 있지 않으므로 바인딩 작업이 최종 기한을 초과하는 경우 모니커 구현은 IBindCtx::RegisterObjectParam을 사용하여 바인딩 컨텍스트에서 담당하는 개체를 등록해야 합니다. 개체는 "ExceededDeadline", "ExceededDeadline1", "ExceededDeadline2" 등의 매개 변수 이름 아래에 등록되어야 합니다. 호출자가 나중에 실행 중인 개체 테이블에서 개체를 찾으면 호출자는 바인딩 작업을 다시 시도할 수 있습니다.
GetTickCount 함수는 시스템 시작 이후의 밀리초 수를 나타내고 2^31밀리초 후에 0으로 다시 래핑합니다. 따라서 호출자는 실수로 0 값(기한 없음을 나타내지 않음)을 전달하지 않도록 주의해야 하며 모니커 구현은 클록 래핑 문제를 알고 있어야 합니다.
dwTrackFlags
모니커는 링크 추적 중에 이 값을 사용할 수 있습니다. 모니커가 참조하는 원래 지속형 데이터가 이동된 경우 모니커는 적절한 메커니즘을 통해 원래 데이터를 검색하여 링크를 다시 설정하려고 시도할 수 있습니다. 이 멤버는 링크를 확인하는 방법에 대한 추가 정보를 제공합니다. IShellLink::Resolve의 fFlags 매개 변수 설명서를 참조하세요.
COM의 파일 모니커 구현은 셸 링크 메커니즘을 사용하여 링크를 다시 설정하며 이러한 플래그를 IShellLink::Resolve에 전달합니다.
dwClassContext
CLSCTX 열거형에서 가져온 클래스 컨텍스트로, 개체를 인스턴스화하는 데 사용됩니다. 모니커에서는 일반적으로 CoCreateInstance의 dwClsContext 매개 변수에 이 값을 전달합니다.
locale
바인딩할 개체에서 사용할 로캘에 대한 클라이언트의 기본 설정을 나타내는 LCID 값 입니다. 모니커가 이 값을 IClassActivator::GetClassObject에 전달합니다.
pServerInfo
COSERVERINFO 구조체에 대한 포인터입니다. 이 멤버를 사용하면 IMoniker::BindToObject 를 호출하는 클라이언트가 서버 정보를 지정할 수 있습니다. 클라이언트는 BIND_OPTS2 구조를 IBindCtx::SetBindOptions 메서드에 전달할 수 있습니다. 서버 이름이 COSERVERINFO 구조체에 지정된 경우 모니커 바인딩이 지정된 컴퓨터로 전달됩니다. SetBindOptions는COSERVERINFO 구조체와 포함된 포인터가 아닌 BIND_OPTS2 구조체 멤버만 복사합니다. 호출자는 바인딩 컨텍스트가 해제될 때까지 이러한 포인터를 해제할 수 없습니다. COM의 새 클래스 모니커는 현재 pServerInfo 플래그를 적용하지 않습니다.
설명
BIND_OPTS2 구조체는 바인딩 컨텍스트에 저장됩니다. 동일한 바인딩 컨텍스트는 바인딩하는 동안 복합 모니커의 각 구성 요소에서 사용되므로 동일한 매개 변수를 복합 모니커의 모든 구성 요소에 전달할 수 있습니다. 바인딩 컨텍스트에 대한 자세한 내용은 IBindCtx 를 참조하세요.
모니커 클라이언트(모니커를 사용하여 개체에 대한 인터페이스 포인터를 획득)는 일반적으로 이 구조체의 멤버에 대한 값을 지정할 필요가 없습니다. CreateBindCtx 함수는 대부분의 상황에 적합한 기본값으로 설정된 바인딩 옵션을 사용하여 바인딩 컨텍스트를 만듭니다. BindMoniker 함수는 모니커 바인딩에 사용할 바인딩 컨텍스트를 만들 때도 동일한 작업을 수행합니다. 이러한 바인딩 옵션의 값을 수정하려면 BIND_OPTS2 구조를 IBindCtx::SetBindOptions 메서드에 전달하여 수정할 수 있습니다. 모니커 구현자는 BIND_OPTS2 구조를 IBindCtx::GetBindOptions 메서드에 전달하여 이러한 바인딩 옵션의 값을 검색할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 빌드 20348 |
지원되는 최소 서버 | Windows 10 빌드 20348 |
머리글 | objidl.h |