_SHGDNF 열거형(shobjidl_core.h)

IShellFolder::GetDisplayNameOfIShellFolder::SetNameOf 메서드와 함께 사용되는 값을 정의하여 해당 메서드에서 사용하는 파일 또는 폴더 이름의 형식을 지정합니다.

참고 Windows 7 이전에는 이러한 값이 SHGNO 열거형으로 패키지되었습니다.
 

Syntax

typedef enum _SHGDNF {
  SHGDN_NORMAL = 0,
  SHGDN_INFOLDER = 0x1,
  SHGDN_FOREDITING = 0x1000,
  SHGDN_FORADDRESSBAR = 0x4000,
  SHGDN_FORPARSING = 0x8000
} ;

상수

 
SHGDN_NORMAL
값: 0
다른 플래그와 결합되지 않은 경우 항목을 식별하는 부모 상대 이름을 반환하여 사용자에게 표시하기에 적합합니다. 이 이름은 파일 이름 확장명과 같은 추가 정보를 포함하지 않는 경우가 많으며 고유할 필요가 없습니다. 이 이름에는 항목이 포함된 폴더를 식별하는 정보가 포함될 수 있습니다. instance 경우 이 플래그로 인해 IShellFolder::GetDisplayNameOf가 특정 사용자의 폴더에 대해 "username(컴퓨터의 사용자 이름)" 문자열을 반환할 수 있습니다.
SHGDN_INFOLDER
값: 0x1
이름은 요청이 이루어진 폴더를 기준으로 합니다. 폴더의 컨텍스트에서 사용할 때 사용자에게 표시되는 이름입니다. 예를 들어 보기 및 폴더의 주소 표시줄 경로 세그먼트에서 사용됩니다. 이 이름에는 특정 사용자의 폴더에 대한 "username(컴퓨터의 사용자 이름)" 대신 instance "username"에 대한 명확성 정보가 포함되어서는 안 됩니다.

SHGDN_FORPARSING SHGDN_FOREDITING 조합하여 이 플래그를 사용합니다.
SHGDN_FOREDITING
값: 0x1000
이름은 사용자가 항목의 이름을 바꿀 때 현재 위치 편집에 사용됩니다.
SHGDN_FORADDRESSBAR
값: 0x4000
이름은 주소 표시줄 콤보 상자에 표시됩니다.
SHGDN_FORPARSING
값: 0x8000
이름은 구문 분석에 사용됩니다. 즉, 개체의 PIDL을 복구하기 위해 IShellFolder::P arseDisplayName 에 전달할 수 있습니다. 이 이름이 사용하는 양식은 특정 개체에 따라 달라집니다. SHGDN_FORPARSING 단독으로 사용하는 경우 이름은 바탕 화면을 기준으로 합니다. SHGDN_INFOLDER 함께 사용하면 이름은 요청이 이루어진 폴더를 기준으로 합니다.

설명

SHGDNF 형식은 다음과 같이 Shobjidl.h에 정의됩니다.

typedef DWORD SHGDNF;

이 열거형은 두 값 그룹으로 구성됩니다. 첫 번째 그룹(SHGDN_NORMAL 및 SHGDN_INFOLDER)은 이름의 형식을 지정합니다. 두 번째 그룹(SHGDN_FOREDITING, SHGDN_FORADDRESSBAR 및 SHGDN_FORPARSING)은 이름 검색 옵션을 지정하는 첫 번째 그룹에 대한 한정자로 구성됩니다.

SHGDN_FORPARSING 설정되고 SHGDN_INFOLDER 설정되지 않은 경우 IShellFolder::GetDisplayNameOfSHITEMID 구조보다 많은 PIDL을 수락할 수 있습니다. 그렇지 않으면 단일 수준 PIDL만 전달할 수 있습니다.

참고 파일 시스템 개체에서 반환된 구문 분석 이름은 개체의 정규화된 경로이지만 가상 폴더는 매우 다른 항목을 사용할 수 있습니다. 예를 들어 일부 가상 폴더는 GUID를 구문 분석 이름으로 사용하고 "::{GUID}" 형식의 문자열을 반환합니다. 개체가 파일 시스템의 일부인지 검사 IShellFolder::GetAttributesOf를 호출하고 SFGAO_FILESYSTEM 플래그가 설정되어 있는지 확인합니다. IShellFolder::GetDisplayNameOf를 구현하는 개발자는 최종 사용자가 이러한 이름을 입력하거나 편집해야 하기 때문에 표시 이름에 최대한 가까운 구문 분석 이름을 반환하는 것이 좋습니다.

SHGDN_NORMAL 숫자 값은 0이므로 이 비트의 존재를 테스트할 수 없습니다. 해당 그룹의 다른 플래그가 설정되지 않은 경우 사용되는 기본 설정을 SHGDN_NORMAL 것이 좋습니다.

예제

다음 표에서는 5가지 플래그 옵션과 세 가지 항목 유형에 대해 가능한 반환 값의 예를 보여 줍니다.

플래그 옵션입니다.

숫자 플래그 Description
1 SHGDN_FORPARSING 정규화된 구문 분석 이름을 반환합니다.
2 SHGDN_INFOLDER | SHGDN_FORPARSING 부모 폴더를 기준으로 구문 분석 이름을 반환합니다.
3 SHGDN_INFOLDER | SHGDN_FOREDITING 부모 폴더를 기준으로 편집 이름을 반환합니다.
4 SHGDN_INFOLDER 부모 폴더를 기준으로 표시 이름을 반환합니다.
5 SHGDN_NORMAL 특정 폴더가 아닌 바탕 화면을 기준으로 표시 이름을 반환합니다.
 

다음은 샘플 항목 유형입니다.

Letter Description
A 볼륨 레이블이 C_DRIVE 로컬 컴퓨터의 C: 드라이브입니다.
b Mailroom이라는 컴퓨터의 레이저라는 프린터.
C 파일 C:\Directory\File.txt(파일 이름 확장명을 숨기면).
 

다음 표에서는 표시 이름이 반환되는 대로 설명합니다.

A b C
1 C:\ \\Mailroom\Laser C:\Directory\File.txt
2 C:\ 레이저 File.txt
3 C_DRIVE 레이저 파일
4 C_DRIVE(C:) 레이저 파일
5 C_DRIVE(C:) 우편실에 레이저 파일
 

예제에 대한 설명

  • A3: C: 드라이브는 전체 문자열 "C_DRIVE(C:)"이 아닌 편집을 위한 볼륨 이름을 표시합니다.
  • B1-B5: 원격 프린터의 표시 이름은 부모에 상대적으로 표시되는지 여부에 따라 변경됩니다. 부모에 상대적으로 표시되면 프린터 이름만 필요하지만 부모 외부에 표시되면 프린터 이름과 컴퓨터 이름이 모두 표시됩니다.
  • C3: File.txt 전체 이름 대신 편집할 기본 이름만 표시합니다.
IShellFolder 인터페이스에 대한 자세한 내용은 폴더의 내용에 대한 정보 가져오기를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP, Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 shobjidl_core.h(Shobjidl.h 포함)