다음을 통해 공유


IMoniker::GetDisplayName 메서드(objidl.h)

모니커의 표시 이름을 검색합니다.

구문

HRESULT GetDisplayName(
  [in]  IBindCtx *pbc,
  [in]  IMoniker *pmkToLeft,
  [out] LPOLESTR *ppszDisplayName
);

매개 변수

[in] pbc

이 작업에 사용할 바인딩 컨텍스트의 IBindCtx 인터페이스에 대한 포인터입니다. 바인딩 컨텍스트는 바인딩 프로세스 중에 바인딩된 개체를 캐시하고, 바인딩 컨텍스트를 사용하여 모든 작업에 적용되는 매개 변수를 포함하며, 모니커 구현이 환경에 대한 정보를 검색해야 하는 수단을 제공합니다.

[in] pmkToLeft

모니커가 복합 모니커의 일부인 경우 이 모니커의 왼쪽에 있는 모니커에 대한 포인터입니다. 이 매개 변수는 주로 모니커 구현자가 복합 모니커의 다양한 구성 요소 간의 협력을 가능하게 하는 데 사용됩니다. 모니커 클라이언트는 NULL을 전달해야 합니다.

[out] ppszDisplayName

모니커의 표시 이름 문자열에 대한 포인터를 받는 포인터 변수의 주소입니다. 구현은 IMalloc::Alloc 를 사용하여 ppszDisplayName에서 반환된 문자열을 할당해야 하며 호출자는 IMalloc::Free 를 호출하여 해제해야 합니다. 호출자와 이 메서드의 구현 모두 CoGetMalloc에서 반환된 COM 작업 할당자를 사용합니다. 오류가 발생하면 구현에서 *ppszDisplayName을NULL로 설정해야 합니다.

반환 값

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

반환 코드 설명
S_OK
메서드가 완료되었습니다.
MK_E_EXCEEDEDDEADLINE
바인딩 컨텍스트의 BIND_OPTS 구조에 지정된 시간 제한 내에서 바인딩 작업을 완료할 수 없습니다.
E_NOTIMPL
표시 이름이 없습니다.

설명

GetDisplayName 은 모니커의 표시 가능한 표현인 문자열을 제공합니다. 표시 이름은 모니커의 내부 상태를 완전히 표현하지 않습니다. 사용자가 읽을 수 있는 양식일 뿐입니다. 따라서 두 개의 서로 다른 모니커가 동일한 표시 이름을 가질 수 있습니다(드물지만). MkParseDisplayName 함수를 호출할 때 모니커의 표시 이름을 해당 모니커로 다시 구문 분석할 수 있다는 보장은 없지만 그렇게 하지 않는 경우는 드뭅니다.

발신자에게 참고 사항

모니커의 표시 이름을 검색하는 작업은 비용이 많이 들 수 있습니다. 효율성을 위해 반복 호출을 수행하지 않고 GetDisplayName에 대한 첫 번째 성공적인 호출의 결과를 캐시할 수 있습니다.

구현자에 대한 참고 사항

표시 이름이 변경되지 않는 모니커 클래스를 작성하는 경우 표시 이름을 캐시하고 요청 시 캐시된 이름을 입력하기만 하면 됩니다. 시간이 지남에 따라 표시 이름이 변경될 수 있는 경우 현재 표시 이름을 가져오면 모니커가 개체의 스토리지에 액세스하거나 개체에 바인딩해야 하므로 비용이 많이 들 수 있습니다. 이 경우 GetDisplayName 구현은 바인딩 컨텍스트의 BIND_OPTS 구조에 지정된 시간으로 이름을 검색할 수 없는 경우 MK_E_EXCEEDEDDEADLINE 반환해야 합니다.

제네릭 복합 모니커의 일부로 사용되는 모니커는 표시 이름의 일부로 이전 구분 기호(예: '')를 포함해야 합니다. 예를 들어 항목 모니커에서 반환된 표시 이름에는 CreateItemMoniker 함수를 사용하여 만들 때 지정한 구분 기호가 포함됩니다. 파일 모니커는 항상 복합 구성 요소의 맨 왼쪽 구성 요소여야 하므로 파일 모니커의 표시 이름에는 구분 기호가 포함되지 않습니다.

구현별 참고 사항

구현 참고
안티 모니커 이 모니커에 포함된 각 안티 모니커에 대해 이 메서드는 "\.."의 instance 하나를 반환합니다.
클래스 모니커 클래스 모니커의 표시 이름은 clsid:string-clsid-no-curly-braces *[";" 형식입니다. clsid-param=value]:. 예를 들어 clsid:a7b90590-36fd-11cf-857d-00aa006d2ea4:.
파일 모니커 이 메서드는 모니커가 나타내는 경로를 반환합니다.
제네릭 복합 모니커 이 메서드는 복합의 각 구성 요소 모니커에서 반환된 표시 이름의 연결을 반환합니다.
항목 모니커 이 메서드는 구분 기호의 연결과 항목 모니커를 만들 때 지정한 항목 이름을 반환합니다.
OBJREF 모니커 이 메서드는 OBJREF 모니커의 표시 이름을 가져옵니다. 표시 이름은 실행 중인 개체의 컴퓨터 위치, 프로세스 엔드포인트 및 IPID(인터페이스 포인터 ID)를 캡슐화하는 64비트 인코딩입니다. 향후 호환성을 위해 표시 이름은 URL의 일부로 지정할 수 있는 문자로 제한됩니다.
포인터 모니커 이 메서드는 E_NOTIMPL 반환합니다.
URL 모니커 URL 모니커가 전체 URL 문자열을 반환하려고 시도합니다. 부분 URL 문자열( CreateURLMonikerEx 참조)을 사용하여 모니커를 만든 경우 먼저 SZ_URLCONTEXT 아래의 바인딩 컨텍스트에서 URL 모니커를 찾으려고 시도하고 다음으로 컨텍스트 정보를 위해 왼쪽의 모니커를 찾습니다. 전체 URL 문자열을 반환할 수 없는 경우 부분 URL 문자열을 반환합니다.

요구 사항

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

추가 정보

Imoniker

MkParseDisplayName