IBindCtx::RegisterObjectBound 메서드(objidl.h)
바인딩 컨텍스트를 사용하여 개체를 등록하여 바인딩 컨텍스트가 해제될 때까지 개체가 활성 상태로 유지되도록 합니다.
구문
HRESULT RegisterObjectBound(
[in] IUnknown *punk
);
매개 변수
[in] punk
바인딩된 것으로 등록되는 개체의 IUnknown 인터페이스에 대한 포인터입니다.
반환 값
이 메서드는 E_OUTOFMEMORY 및 S_OK 표준 반환 값을 반환할 수 있습니다.
설명
IMoniker 인터페이스의 구현을 통해 새 모니커 클래스를 작성하는 사람들은 구현이 개체를 활성화할 때마다 이 메서드를 호출해야 합니다. 이는 모니커를 바인딩하는 과정에서 가장 자주 발생하지만 모니커의 표시 이름을 검색하거나, 표시 이름을 모니커로 구문 분석하거나, 개체가 마지막으로 수정된 시간을 검색하는 동안에도 발생할 수 있습니다.
RegisterObjectBound 는 AddRef 를 호출하여 개체에 대한 추가 참조를 만듭니다. 그러나 포인터의 복사본을 계속 해제해야 합니다. 동일한 개체에 대해 이 메서드를 두 번 호출하면 해당 개체에 대한 두 개의 참조가 만들어집니다. IBindCtx::RevokeObjectBound를 호출하여 이 메서드에 대한 호출을 통해 얻은 참조를 해제할 수 있습니다. 바인딩 컨텍스트에서 보유하는 모든 참조는 바인딩 컨텍스트 자체가 해제될 때 해제됩니다.
RegisterObjectBound를 호출하여 바인딩 컨텍스트에 개체를 등록하면 바인딩 컨텍스트가 해제될 때까지 개체가 활성 상태를 유지합니다. 후속 바인딩 작업(동일한 복합 모니커의 다른 부분 또는 다른 모니커의 경우)에서 바인딩 컨텍스트를 다시 사용하면 해당 개체를 다시 로드할 필요가 없으므로 후속 바인딩 작업이 더 효율적일 수 있습니다. 그러나 이렇게 하면 후속 바인딩 작업에 원래 개체와 동일한 개체가 필요한 경우에만 성능이 향상되므로 바인딩 컨텍스트를 재사용할 때 가능한 성능 향상과 불필요하게 활성화된 개체를 유지하는 비용의 균형을 유지해야 합니다.
IBindCtx 는 RegisterObjectBound를 사용하여 등록된 개체에 대한 포인터를 검색하는 메서드를 제공하지 않습니다. 개체가 실행 중인 개체 테이블에 등록되었다고 가정하면 모니커 구현은 IRunningObjectTable::GetObject 를 호출하여 개체에 대한 포인터를 검색할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | objidl.h |