Bagikan melalui


Metode IPropertySystem::FormatForDisplay (propsys.h)

Mendapatkan representasi string Unicode yang diformat dari nilai properti.

Sintaks

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

Parameter

[in] key

Jenis: REFPROPERTYKEY

Referensi ke kunci properti yang diminta.

[in] propvar

Jenis: REFPROPVARIANT

Referensi ke struktur PROPVARIANT yang berisi jenis dan nilai properti.

[in] pdff

Jenis: PROPDESC_FORMAT_FLAGS

Format string properti. Lihat PROPDESC_FORMAT_FLAGS untuk nilai yang mungkin.

[out] pszText

Jenis: LPWSTR

Menerima nilai yang diformat sebagai string Unicode yang dihentikan null. Aplikasi panggilan harus mengalokasikan memori untuk buffer.

[in] cchText

Jenis: DWORD

Panjang buffer pada pszText di WCHARs, termasuk NULL yang mengakhiri. Ukuran maksimum adalah 0x8000 (32K).

Mengembalikan nilai

Jenis: HRESULT

Mengembalikan salah satu nilai berikut.

Menampilkan kode Deskripsi
S_OK
String yang diformat dibuat.
S_FALSE
String yang diformat tidak dibuat. S_FALSE menunjukkan bahwa string kosong dihasilkan dari VT_EMPTY.
E_OUTOFMEMORY
Alokasi memori gagal.

Keterangan

Anda harus menginisialisasi Model Objek Komponen (COM) dengan CoInitialize atau OleInitialize sebelum memanggil IPropertySystem::FormatForDisplay.

Ketika berhasil, metode ini mendapatkan representasi string Unicode yang diformat dari nilai properti untuk PROPERTYKEY tertentu, dan satu atau beberapa PROPDESC_FORMAT_FLAGS. Jika PROPERTYKEY tidak dikenali oleh subsistem skema, IPropertySystem::FormatForDisplay mencoba memformat nilai sesuai dengan VARTYPE-nya.

Tujuan dari metode ini adalah untuk mengonversi data menjadi string yang cocok untuk ditampilkan kepada pengguna. Nilai diformat sesuai dengan lokal saat ini, bahasa pengguna, PROPDESC_FORMAT_FLAGS, dan deskripsi properti yang ditentukan oleh kunci properti. Untuk informasi tentang bagaimana skema deskripsi properti memengaruhi pemformatan nilai, lihat displayInfo, stringFormat, booleanFormat, numberFormat, NMDATETIMEFORMAT, dan enumeratedList. Biasanya, PROPDESC_FORMAT_FLAGS digunakan untuk memodifikasi format yang ditentukan oleh deskripsi properti.

String output mungkin berisi karakter arah Unicode. Karakter nonspacing ini memengaruhi algoritma dua arah Unicode sehingga nilai muncul dengan benar saat bahasa kiri-ke-kanan (LTR) digambar pada jendela kanan-ke-kiri (RTL), dan sebaliknya. Karakter-karakter ini mencakup yang berikut ini: "\x200e", "\x200f", "\x202a", "\x202b", "\x202c", "\x202d", "\x202e".

Properti dalam tabel berikut menggunakan format khusus dan tidak terpengaruh oleh PROPDESC_FORMAT_FLAGS (contoh yang dikutip adalah untuk string dengan lokal saat ini yang diatur ke bahasa Inggris; biasanya, output dilokalkan kecuali jika disebutkan).

Properti Format
System.FileAttributes Atribut file berikut dikonversi menjadi huruf dan ditambahkan untuk membuat string (misalnya, nilai 0x1801 (FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_COMPRESSED | FILE_ATTRIBUTE_OFFLINE) dikonversi ke "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 Misalnya, "ISO-400".
System.Photo.ShutterSpeed Nilai APEX dikonversi ke waktu pencahayaan menggunakan rumus ini:

Exposure_time = 2^(-APEX_value)

Misalnya, "2 detik." atau "1/125 detik.".

System.Photo.ExposureTime Misalnya, "2 detik." atau "1/125 detik."
System.Photo.Aperture Nilai APEX dikonversi ke angka F menggunakan rumus ini:

F_Number = 2^(APEX_Value / 2)

Misalnya, "f/5.6".

System.Photo.FNumber Misalnya, "f/5.6".
System.Photo.SubjectDistance Misalnya, "15 m"atau "250 mm".
System.Photo.FocalLength Misalnya, "50 mm".
System.Photo.FlashEnergy Misalnya, "500 bpcs".
System.Photo.ExposureBias Misalnya, "-2 langkah", " 0 langkah", atau "+3 langkah".
System.Computer.DecoratedFreeSpace Misalnya, "105 MB gratis 13,2 GB".
System.ItemType Misalnya, "Aplikasi" atau "Gambar JPEG".
System.ControlPanel.Category Misalnya, "Penampilan dan Personalisasi".
System.ComputerName Misalnya, "LITWARE05 (komputer ini)" atau "testbox07".
 

Jika kunci properti tidak sesuai dengan deskripsi properti di salah satu skema properti terdaftar, metode ini memilih format berdasarkan jenis nilai, seperti yang dijelaskan dalam tabel berikut.

Jenis nilai Format
VT_BOOLEAN Tidak didukung.
VT_FILETIME String tanggal/waktu seperti yang ditentukan oleh PROPDESC_FORMAT_FLAGS dan lokal saat ini. PDFF_SHORTTIME dan PDFF_SHORTDATE adalah default. Misalnya, "13/11/2006 15:22".
VARTYPE Numerik String desimal di lokal saat ini. Misalnya, "42".
VT_LPWSTR atau lainnya String. Urutan "\r", "\t", atau "\n" diganti dengan satu spasi.
VT_VECTOR | Apa pun Nilai yang dipisahkan titik koma—titik koma digunakan terlepas dari lokal.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header propsys.h
Redistribusi Windows Desktop Search (WDS) 3.0