IShellFolder::GetDisplayNameOf 메서드(shobjidl_core.h)

지정된 파일 개체 또는 하위 폴더의 표시 이름을 검색합니다.

구문

HRESULT GetDisplayNameOf(
  [in]  PCUITEMID_CHILD pidl,
  [in]  SHGDNF          uFlags,
  [out] STRRET          *pName
);

매개 변수

[in] pidl

형식: PCUITEMID_CHILD

부모 폴더를 기준으로 파일 개체 또는 하위 폴더를 고유하게 식별하는 PIDL입니다.

[in] uFlags

형식: SHGDNF

반환할 표시 이름의 형식을 요청하는 데 사용되는 플래그입니다. 가능한 값 목록은 SHGDNF 열거형 형식을 참조하세요.

[out] pName

형식: STRRET*

이 메서드가 반환되면 표시 이름을 반환할 STRRET 구조체에 대한 포인터가 포함됩니다. 이 구조체에서 반환되는 이름의 형식은 요청된 형식일 수 있지만 Shell 폴더는 다른 형식을 반환할 수 있습니다.

반환 값

형식: HRESULT

메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

이 함수에서 할당한 리소스를 해제하는 것은 호출자의 책임입니다.

일반적으로 pidl 은 부모 폴더에 포함된 항목만 참조할 수 있습니다. PIDL은 단일 수준이어야 하며 정확히 하나의 SHITEMID 구조와 종료 0을 포함해야 합니다. 부모 폴더에서 한 수준 이상 떨어진 항목의 표시 이름을 검색하려면 SHBindToParent 를 사용하여 항목의 직계 부모 폴더에 바인딩한 다음 항목의 단일 수준 PIDL을 IShellFolder::GetDisplayNameOf에 전달합니다.

또한 SHGDN_FORPARSING 플래그가 uFlags 에서 설정되고 SHGDN_INFOLDER 플래그가 설정되지 않은 경우 pidl 은 네임스페이스 계층의 부모 폴더 아래의 모든 수준에서 개체를 참조할 수 있습니다. 한 번에 pidl 은 부모 폴더에 상대적인 다단계 PIDL일 수 있으며 여러 SHITEMID 구조를 포함할 수 있습니다. 그러나 더 이상 지원되지 않으며 pidl 은 이제 단일 자식 항목만 참조해야 합니다.

pName이 가리키는 구조체에서 표시 이름을 검색하는 가장 간단한 방법은 StrRetToBuf 또는 StrRetToStr에 전달하는 것입니다. 이러한 함수는 STRRET 구조를 사용하고 이름을 반환합니다. 구조체의 uType 멤버를 검사하고 적절한 멤버에서 이름을 검색할 수도 있습니다.

uFlags에 지정된 플래그는 의도한 이름 사용에 대한 힌트입니다. IShellFolder가 요청된 형식의 이름을 반환한다고 보장하지는 않습니다. 해당 양식을 사용할 수 없는 경우 다른 양식이 반환될 수 있습니다. 특히 SHGDN_FORPARSING 플래그에서 반환된 이름이 IShellFolder::P arseDisplayName으로 성공적으로 구문 분석된다는 보장은 없습니다. GetDisplayNameOf/ParseDisplayName 왕복이 원래 식별자 목록을 반환하지 않을 수 있는 플래그 조합도 있습니다. 이 발생은 예외적이지만 반드시 검사 합니다.

참고uFlagsSHGDN_FORPARSING 플래그 집합이 있을 때 반환되는 구문 분석 이름이 반드시 일반 텍스트 문자열은 아닙니다. 내 컴퓨터와 같은 가상 폴더는 폴더 개체의 GUID가 포함된 문자열을 "::{GUID}" 형식으로 반환할 수 있습니다. IShellFolder::GetDisplayNameOf를 구현하는 개발자는 최종 사용자가 이러한 이름을 입력하거나 편집해야 하기 때문에 가능한 한 표시 이름에 가까운 구문 분석 이름을 반환하는 것이 좋습니다.
 

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 shobjidl_core.h(Shobjidl.h 포함)
DLL Shell32.dll(버전 4.0 이상)

추가 정보

IShellFolder

IShellFolder2