다음을 통해 공유


PSFormatForDisplay 함수(propsys.h)

PROPVARIANT 구조에 저장된 속성 값의 형식이 지정된 유니코드 문자열 표현을 가져옵니다. 호출자는 출력 버퍼를 할당해야 합니다.

구문

PSSTDAPI PSFormatForDisplay(
  [in]  REFPROPERTYKEY        propkey,
  [in]  REFPROPVARIANT        propvar,
  [in]  PROPDESC_FORMAT_FLAGS pdfFlags,
  [out] LPWSTR                pwszText,
  [in]  DWORD                 cchText
);

매개 변수

[in] propkey

형식: REFPROPERTYKEY

값을 검색할 속성의 이름을 지정하는 PROPERTYKEY 에 대한 참조입니다.

[in] propvar

형식: REFPROPVARIANT

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

[in] pdfFlags

형식: PROPDESC_FORMAT_FLAGS

속성 문자열에 적용할 형식을 지정하는 플래그입니다. 가능한 값은 PROPDESC_FORMAT_FLAGS 참조하세요.

[out] pwszText

형식: LPWSTR

함수가 반환될 때 형식이 지정된 값에 대한 포인터를 null로 끝나는 유니코드 문자열로 포함합니다. 호출 애플리케이션은 PSFormatForDisplay를 호출하기 전에 버퍼에 대한 메모리를 할당합니다.

[in] cchText

형식:DWORD

종료 null 문자를 포함하여 WCHARpwszText에 있는 버퍼 길이를 지정합니다.

반환 값

형식: HRESULT

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

반환 코드 Description
S_OK
서식이 지정된 문자열이 성공적으로 만들어졌습니다.
S_FALSE
형식이 지정된 문자열이 만들어지지 않았습니다. S_FALSE 빈 문자열이 VT_EMPTY 발생했음을 나타냅니다.
E_OUTOFMEMORY
할당 실패를 나타냅니다.

설명

이 함수는 스키마 하위 시스템의 IPropertySystem::FormatForDisplay 구현을 호출합니다. 이 호출은 하나 이상의 PROPDESC_FORMAT_FLAGS 기반으로 추가 서식을 사용하여 속성 값의 유니코드 문자열 표현을 제공합니다. 스키마 하위 시스템에 의해 PROPERTYKEY 가 인식되지 않는 경우 IPropertySystem::FormatForDisplay 는 값의 VARTYPE에 따라 값의 서식을 지정하려고 시도합니다.

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

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

일반적으로 PROPDESC_FORMAT_FLAGS 속성 설명에 지정된 형식을 수정하는 데 사용됩니다.

출력 문자열에는 유니코드 방향 문자가 포함될 수 있습니다. 이러한 비선형 문자는 LTR(왼쪽에서 오른쪽) 언어가 RTL(오른쪽에서 왼쪽) 창에 그려지거나 RTL이 LTR 창에 그려질 때 값이 올바르게 표시되도록 유니코드 양방향 알고리즘에 영향을 줍니다. 이러한 문자는 다음과 같습니다. "\x200e", "\x200f", "\x202a", "\x202b", "\x202c", "\x202d", "\x202e".

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

속성 형식
System.FileAttributes 다음 파일 특성은 문자로 변환되고 문자열을 만들기 위해 추가됩니다(예: 0x1801 값은 "RCO"로 변환됨).
  FILE_ATTRIBUTE_READONLY- 'R'
  FILE_ATTRIBUTE_SYSTEM - 'S'
  FILE_ATTRIBUTE_ARCHIVE -'A'
  FILE_ATTRIBUTE_COMPRESSED - 'C'
  FILE_ATTRIBUTE_ENCRYPTED - 'E'
  FILE_ATTRIBUTE_OFFLINE - 'O'
  FILE_ATTRIBUTE_NOT_CONTENT_INDEXED - '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 기본값입니다. 예: "11/13/2006 3:22 PM".
숫자 VARTYPE 현재 로캘의 10진수 문자열입니다. 예를 들어 "42"입니다.
VT_LPWSTR 또는 기타 문자열로 변환됩니다. "\r", "\t" 또는 "\n" 시퀀스는 단일 공백으로 바뀝니다.
VT_VECTOR | 아무것도 세미콜론으로 구분된 값입니다. 세미콜론은 로캘에 관계없이 사용됩니다.
 

예제

더 큰 프로그램의 일부로 포함할 다음 예제에서는 PSFormatForDisplay 를 사용하여 등급 값의 형식을 지정하는 방법을 보여 줍니다.

PROPVARIANT propvar;

HRESULT hr = InitPropVariantFromUInt32(RATING_THREE_STARS_SET, &propvar);

if (SUCCEEDED(hr))
{
    WCHAR szValue[100];

    hr = PSFormatForDisplay(PKEY_Rating, propvar, PDFF_DEFAULT, szValue, ARRAYSIZE(szValue));

    if (SUCCEEDED(hr))
    {
        // szValue contains a formatted string similar to "3 stars".
    }
    PropVariantClear(&propvar);
}

요구 사항

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

추가 정보

PSFormatForDisplayAlloc

PSFormatPropertyValue

속성 설명 스키마