다음을 통해 공유


IBindCtx::RegisterObjectParam 메서드(objidl.h)

바인딩 컨텍스트의 문자열 키 테이블 포인터에서 문자열 키와 개체를 연결합니다.

구문

HRESULT RegisterObjectParam(
  [in] LPOLESTR pszKey,
  [in] IUnknown *punk
);

매개 변수

[in] pszKey

개체가 등록되는 바인딩 컨텍스트 문자열 키 입니다. 키 문자열 비교는 대/소문자를 구분합니다.

[in] punk

등록할 개체의 IUnknown 인터페이스에 대한 포인터입니다.

메서드는 포인터에서 AddRef 를 호출합니다.

반환 값

이 메서드는 E_OUTOFMEMORY 및 S_OK 표준 반환 값을 반환할 수 있습니다.

설명

바인딩 컨텍스트는 각각 문자열 키와 연결된 인터페이스 포인터 테이블을 유지 관리합니다. 이렇게 하면 모니커 구현과 바인딩 작업을 시작한 호출자 간에 통신할 수 있습니다. 한 당사자는 나중에 다른 당사자가 바인딩 컨텍스트에서 검색할 수 있도록 두 당사자에게 알려진 문자열 아래에 인터페이스 포인터를 저장할 수 있습니다.

이 메서드를 사용한 이후의 바인딩 작업은 IBindCtx::GetObjectParam 을 사용하여 저장된 포인터를 검색할 수 있습니다.

발신자에 대한 참고 사항

RegisterObjectParamIMoniker 구현을 통해 새 모니커 클래스를 구현하는 사용자와 모니커 클라이언트(모니커를 사용하여 개체에 바인딩하는 클라이언트)에 유용합니다.

새 모니커 클래스를 구현할 때 모니커 바인딩 중에 오류가 발생할 때 이 메서드를 호출하여 호출자에게 오류의 원인을 알릴 수 있습니다. 이 메서드를 호출하여 가져올 키는 오류 조건에 따라 달라집니다. 다음은 적절한 각 키에 대해 설명하는 일반적인 모니커 바인딩 오류 목록입니다.

  • MK_E_EXCEEDEDDEADLINE: 지정된 개체가 실행되고 있지 않아 바인딩 작업이 최종 기한을 초과하는 경우 목록에서 사용하지 않은 첫 번째 키인 "ExceededDeadline", "ExceededDeadline1", "ExceededDeadline2" 등을 사용하여 개체의 모니커를 등록해야 합니다. 호출자가 나중에 실행 중인 개체 테이블에서 모니커를 찾으면 호출자는 바인딩 작업을 다시 시도할 수 있습니다.
  • MK_E_CONNECTMANUALLY: "ConnectManually" 키는 바인딩에 최종 사용자의 지원이 필요한 모니커를 나타냅니다. 최종 사용자가 개체에 수동으로 연결하도록 요청하기 위해 호출자는 모니커의 표시 이름을 표시한 후 바인딩 작업을 다시 시도할 수 있습니다. 이 오류의 일반적인 이유는 암호가 필요하거나 플로피를 탑재해야 하기 때문입니다.
  • E_CLASSNOTFOUND: "ClassNotFound" 키는 클래스를 찾을 수 없는 모니커를 나타냅니다. (이 모니커로 식별된 개체의 서버를 찾지 못했습니다.) 이 키가 OLE 복합 문서 개체에 사용되는 경우 호출자는 IMoniker::BindToStorage 를 사용하여 개체에 바인딩한 다음, 다른 서버와 개체를 연결하기 위해 다른 이름으로 처리... 또는 변환... 작업을 수행하려고 할 수 있습니다. 이 작업이 성공하면 호출자가 바인딩 작업을 다시 시도할 수 있습니다.
모니커 구현에 대한 자세한 지식이 있는 모니커 클라이언트는 이 메서드를 호출하여 해당 구현에 개인 정보를 전달할 수도 있습니다.

포인터를 저장하기 위한 키로 새 문자열을 정의할 수 있습니다. 규칙에 따라 모니커 클래스의 CLSID 문자열 형식으로 시작하는 키 이름을 사용해야 합니다. ( StringFromCLSID 함수를 참조하세요.)

pszKey 매개 변수가 바인딩 컨텍스트 테이블의 기존 키 이름과 일치하는 경우 새 개체는 테이블의 기존 개체를 대체합니다.

이 메서드를 사용하여 개체를 등록하면 다음 중 하나가 발생할 때까지 개체가 해제되지 않습니다.

  • 테이블에서 동일한 키를 가진 다른 개체로 바뀝니다.
  • IBindCtx::RevokeObjectParam을 호출하여 테이블에서 제거됩니다.
  • 바인딩 컨텍스트가 릴리스됩니다. 바인딩 컨텍스트가 해제되면 등록된 모든 개체가 해제됩니다.

요구 사항

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

추가 정보

IBindCtx