CreateObjrefMoniker 함수(objbase.h)
개체에 대한 포인터를 기반으로 OBJREF 모니커를 만듭니다.
구문
HRESULT CreateObjrefMoniker(
[in, optional] LPUNKNOWN punk,
[out] LPMONIKER *ppmk
);
매개 변수
[in, optional] punk
모니커가 나타낼 개체의 IUnknown 인터페이스에 대한 포인터입니다.
[out] ppmk
생성된 OBJREF 모 니커의 IMoniker 인터페이스에 대한 포인터의 주소입니다.
반환 값
이 함수는 표준 반환 값 E_OUTOFMEMORY, E_UNEXPECTED 및 S_OK 반환할 수 있습니다.
설명
클라이언트는 OBJREF 모니커를 사용하여 서버 주소 공간에서 실행 중인 개체에 대한 마샬링된 포인터를 가져옵니다.
서버는 일반적으로 CreateObjrefMoniker 를 호출하여 OBJREF 모니커를 만든 다음 IMoniker::GetDisplayName을 호출하고 마지막으로 모니커를 해제합니다. OBJREF 모니커의 표시 이름은 다음과 같은 형식입니다.
OBJREF:nnnnnnnnn
여기서 nnnnnnnn 은 실행 중인 개체의 컴퓨터 위치, 프로세스 엔드포인트 및 IPID(인터페이스 포인터 ID)를 캡슐화하는 임의의 긴 base-64 인코딩입니다.
그런 다음 표시 이름을 텍스트로 클라이언트로 전송할 수 있습니다. 예를 들어 표시 이름은 클라이언트가 다운로드하는 HTML 페이지에 있을 수 있습니다.
클라이언트는 표시 이름을 MkParseDisplayName에 전달할 수 있으며, 표시 이름에 따라 OBJREF 모니커를 만듭니다. 모니커 IMoniker::BindToObject 메서드를 호출하면 서버에서 실행 중인 instance 대한 마샬링된 포인터를 가져옵니다.
예를 들어 활성 서버 페이지에 포함된 서버 쪽 COM 구성 요소는 OBJREF 모니커를 만들고, 표시 이름을 가져오고, 클라이언트 브라우저로 전송되는 HTML 출력에 표시 이름을 쓸 수 있습니다. 클라이언트 쪽에서 실행되는 스크립트는 표시 이름을 사용하여 실행 중인 개체 자체에 액세스할 수 있습니다. instance 클라이언트 쪽 Visual Basic 스크립트는 strMyName이라는 변수에 표시 이름을 저장하고 다음 줄을 포함할 수 있습니다.
objMyInstance = GetObject(strMyName)
스크립트 엔진은 내부적으로 MkParseDisplayName 및 IMoniker::BindToObject를 호출하고 스크립트는 objMyInstance를 사용하여 실행 중인 개체를 직접 참조할 수 있습니다.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | objbase.h |
라이브러리 | Ole32.lib |
DLL | Ole32.dll |
API 세트 | ext-ms-win-com-ole32-l1-1-5(Windows 10 버전 10.0.15063에 도입됨) |