다음을 통해 공유


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)

스크립트 엔진은 내부적으로 MkParseDisplayNameIMoniker::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에 도입됨)

추가 정보

Imoniker