IPropertySystem::FormatForDisplayAlloc 메서드(propsys.h)
할당된 메모리 버퍼에 대한 속성 값의 문자열 표현을 가져옵니다.
구문
HRESULT FormatForDisplayAlloc(
[in] REFPROPERTYKEY key,
[in] REFPROPVARIANT propvar,
[in] PROPDESC_FORMAT_FLAGS pdff,
[out] LPWSTR *ppszDisplay
);
매개 변수
[in] key
형식: REFPROPERTYKEY
원하는 PROPERTYKEY에 대한 참조입니다.
[in] propvar
형식: REFPROPVARIANT
속성의 형식과 값을 포함하는 PROPVARIANT 구조체에 대한 참조입니다.
[in] pdff
속성 문자열의 형식입니다. PROPDESC_FORMAT_FLAGS 참조하세요.
[out] ppszDisplay
형식: LPWSTR*
이 메서드가 반환될 때 형식이 지정된 값에 대한 포인터를 null로 끝나는 유니코드 문자열로 포함합니다.
반환 값
형식: HRESULT
다음 값 중 하나를 반환합니다.
반환 코드 | Description |
---|---|
|
서식이 지정된 문자열이 만들어집니다. 이 문자열은 빈 입력 문자열로 인해 비어 있거나 빈 문자열로 형식이 지정된 비어 있지 않은 값에서 반환될 수 있습니다. |
|
서식이 지정된 문자열이 만들어지지 않습니다. 빈 문자열이 VT_EMPTY 발생했음을 나타냅니다. |
|
할당이 실패했음을 나타냅니다. |
설명
IPropertySystem::FormatForDisplayAlloc를 호출하기 전에 CoInitialize 또는 OleInitialize를 사용하여 COM(구성 요소 개체 모델)을 초기화해야 합니다.
성공하면 이 메서드는 지정된 PROPERTYKEY에 대한 속성 값의 형식이 지정된 유니코드 문자열 표현과 하나 이상의 PROPDESC_FORMAT_FLAGS 가져옵니다. 스키마 하위 시스템에 의해 PROPERTYKEY 가 인식되지 않는 경우 IPropertySystem::FormatForDisplayAlloc 은 VARTYPE에 따라 값의 형식을 지정하려고 시도합니다.
이 메서드는 버퍼에 대한 메모리를 할당하고 ppszDisplay에서 포인터를 반환합니다. 호출 애플리케이션은 더 이상 필요하지 않을 때 ppszDisplay에 지정된 문자열을 해제하기 위해 CoTaskMemFree를 사용해야 합니다.
이 메서드의 목적은 데이터를 사용자에게 표시하기에 적합한 문자열로 변환하는 것입니다. 값은 현재 로캘, 사용자의 언어, PROPDESC_FORMAT_FLAGS 및 속성 키로 지정된 속성 설명에 따라 형식이 지정됩니다. 속성 설명 스키마가 값의 서식에 미치는 영향에 대한 자세한 내용은 displayInfo, stringFormat, booleanFormat, numberFormat, NMDATETIMEFORMAT 및 enumeratedList를 참조하세요. 일반적으로 PROPDESC_FORMAT_FLAGS 속성 설명에 지정된 형식을 수정하는 데 사용됩니다.
출력 문자열에는 유니코드 방향 문자가 포함될 수 있습니다. 이러한 비스페이싱 문자는 유니코드 양방향 알고리즘에 영향을 주므로 LTR(왼쪽에서 오른쪽) 언어를 RTL(오른쪽에서 왼쪽으로) 창에 그릴 때 값이 올바르게 표시되고 그 반대의 경우도 마찬가지입니다. 이러한 문자는 다음과 같습니다. "\x200e", "\x200f", "\x202a", "\x202b", "\x202c", "\x202d", "\x202e".
다음 속성은 특수 형식을 사용하며 PROPDESC_FORMAT_FLAGS 영향을 받지 않습니다(인용된 예제는 현재 로캘이 영어로 설정된 문자열에 대한 것입니다. 일반적으로 출력은 명시된 경우를 제외하고 지역화됨).
속성 | 형식 |
---|---|
System.FileAttributes | 다음 파일 특성은 문자로 변환되고 문자열을 만들기 위해 추가됩니다(예: 0x1801 값(FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_COMPRESSED | FILE_ATTRIBUTE_OFFLINE)는 "RCO"로 변환됩니다.
|
System.Photo.ISOSpeed | 예를 들어 "ISO-400"입니다. |
System.Photo.ShutterSpeed |
APEX 값은 다음 수식을 사용하여 노출 시간으로 변환됩니다.
예를 들어 "2초"입니다. 또는 "1/125 초". |
System.Photo.ExposureTime | 예를 들어 "2초"입니다. 또는 "1/125초" |
System.Photo.Aperture |
APEX 값은 다음 수식을 사용하여 F 숫자로 변환됩니다.
예를 들어 "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 |