다음을 통해 공유


IPropertySystem::FormatForDisplay 메서드(propsys.h)

속성 값의 형식이 지정된 유니코드 문자열 표현을 가져옵니다.

구문

HRESULT FormatForDisplay(
  [in]  REFPROPERTYKEY        key,
  [in]  REFPROPVARIANT        propvar,
  [in]  PROPDESC_FORMAT_FLAGS pdff,
  [out] LPWSTR                pszText,
  [in]  DWORD                 cchText
);

매개 변수

[in] key

형식: REFPROPERTYKEY

요청된 속성 키에 대한 참조입니다.

[in] propvar

형식: REFPROPVARIANT

속성의 형식과 값을 포함하는 PROPVARIANT 구조체에 대한 참조입니다.

[in] pdff

형식: PROPDESC_FORMAT_FLAGS

속성 문자열의 형식입니다. 가능한 값은 PROPDESC_FORMAT_FLAGS 참조하세요.

[out] pszText

형식: LPWSTR

형식이 지정된 값을 null로 끝나는 유니코드 문자열로 받습니다. 호출 애플리케이션은 버퍼에 대한 메모리를 할당해야 합니다.

[in] cchText

형식:DWORD

종료 NULL을 포함하여 WCHARpszText에 있는 버퍼의 길이입니다. 최대 크기는 0x8000(32K)입니다.

반환 값

형식: HRESULT

다음 값 중 하나를 반환합니다.

반환 코드 Description
S_OK
서식이 지정된 문자열이 만들어집니다.
S_FALSE
서식이 지정된 문자열이 만들어지지 않습니다. S_FALSE 빈 문자열이 VT_EMPTY 발생했음을 나타냅니다.
E_OUTOFMEMORY
메모리 할당이 실패했습니다.

설명

IPropertySystem::FormatForDisplay를 호출하기 전에 CoInitialize 또는 OleInitialize를 사용하여 COM(구성 요소 개체 모델)을 초기화해야 합니다.

성공하면 이 메서드는 지정된 PROPERTYKEY에 대한 속성 값의 형식이 지정된 유니코드 문자열 표현과 하나 이상의 PROPDESC_FORMAT_FLAGS 가져옵니다. 스키마 하위 시스템에 의해 PROPERTYKEY 가 인식되지 않는 경우 IPropertySystem::FormatForDisplayVARTYPE에 따라 값의 형식을 지정하려고 시도합니다.

이 메서드의 목적은 데이터를 사용자에게 표시하기에 적합한 문자열로 변환하는 것입니다. 값은 현재 로캘, 사용자의 언어, PROPDESC_FORMAT_FLAGS 및 속성 키로 지정된 속성 설명에 따라 형식이 지정됩니다. 속성 설명 스키마가 값의 서식에 미치는 영향에 대한 자세한 내용은 displayInfo, stringFormat, booleanFormat, numberFormat, NMDATETIMEFORMATenumeratedList를 참조하세요. 일반적으로 PROPDESC_FORMAT_FLAGS 속성 설명에 지정된 형식을 수정하는 데 사용됩니다.

출력 문자열에는 유니코드 방향 문자가 포함될 수 있습니다. 이러한 비스페이싱 문자는 유니코드 양방향 알고리즘에 영향을 주므로 RTL(오른쪽에서 왼쪽) 창에 LTR(왼쪽에서 오른쪽) 언어를 그릴 때 값이 올바르게 표시되고 그 반대의 경우도 마찬가지입니다. 이러한 문자는 다음과 같습니다. "\x200e", "\x200f", "\x202a", "\x202b", "\x202c", "\x202d", "\x202e".

다음 표의 속성은 특수 형식을 사용하며 PROPDESC_FORMAT_FLAGS 영향을 받지 않습니다(인용된 예제는 현재 로캘이 영어로 설정된 문자열에 대한 것입니다. 일반적으로 출력은 명시된 경우를 제외하고 지역화됨).

속성 형식
System.FileAttributes 다음 파일 특성은 문자로 변환되고 문자열을 만들기 위해 추가됩니다(예: 0x1801 값(FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_COMPRESSED | FILE_ATTRIBUTE_OFFLINE)는 "RCO"로 변환됩니다.
  • FILE_ATTRIBUTE_READONLY(0x00000001) - 'R'
  • FILE_ATTRIBUTE_SYSTEM(0x00000004) - 'S'
  • FILE_ATTRIBUTE_ARCHIVE(0x00000020) -'A'
  • FILE_ATTRIBUTE_COMPRESSED(0x00000800) - 'C'
  • FILE_ATTRIBUTE_ENCRYPTED(0x00004000) - 'E'
  • FILE_ATTRIBUTE_OFFLINE(0x00001000) - 'O'
  • FILE_ATTRIBUTE_NOT_CONTENT_INDEXED(0x00002000) - 'I'
System.Photo.ISOSpeed 예를 들어 "ISO-400"입니다.
System.Photo.ShutterSpeed APEX 값은 다음 수식을 사용하여 노출 시간으로 변환됩니다.

Exposure_time = 2^(-APEX_value)

예를 들어 "2초"입니다. 또는 "1/125 초".

System.Photo.ExposureTime 예를 들어 "2초"입니다. 또는 "1/125초"
System.Photo.Aperture APEX 값은 다음 수식을 사용하여 F 숫자로 변환됩니다.

F_Number = 2^(APEX_Value / 2)

예를 들어 "f/5.6"입니다.

System.Photo.FNumber 예를 들어 "f/5.6"입니다.
System.Photo.SubjectDistance 예를 들어 "15m" 또는 "250mm"입니다.
System.Photo.FocalLength 예를 들어 "50mm"입니다.
System.Photo.FlashEnergy 예를 들어 "500 bpcs"입니다.
System.Photo.ExposureBias 예를 들어 "-2단계", "0단계" 또는 "+3단계"가 있습니다.
System.Computer.DecoratedFreeSpace 예를 들어 "13.2GB의 105MB 무료"입니다.
System.ItemType 예를 들어 "애플리케이션" 또는 "JPEG 이미지"입니다.
System.ControlPanel.Category 예를 들어 "모양 및 개인 설정"입니다.
System.ComputerName 예를 들어 "LITWARE05(이 컴퓨터)" 또는 "testbox07"입니다.
 

속성 키가 등록된 속성 스키마의 속성 설명에 해당하지 않는 경우 이 메서드는 다음 표에 설명된 대로 값 형식에 따라 형식을 선택합니다.

값의 형식 형식
VT_BOOLEAN 지원되지 않습니다.
VT_FILETIME PROPDESC_FORMAT_FLAGS 및 현재 캘에 지정된 날짜/시간 문자열입니다. PDFF_SHORTTIME 및 PDFF_SHORTDATE 기본값입니다. 예를 들어 "2006년 11월 13일 오후 3:22"입니다.
숫자 VARTYPE 현재 로캘의 10진수 문자열입니다. 예를 들어 "42"입니다.
VT_LPWSTR 또는 기타 문자열입니다. "\r", "\t" 또는 "\n" 시퀀스는 단일 공백으로 바뀝니다.
VT_VECTOR | 아무것도 세미콜론으로 구분된 값 - 로캘에 관계없이 세미콜론이 사용됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 propsys.h
재배포 가능 파일 WDS(Windows 데스크톱 검색) 3.0