Bagikan melalui


Metode IShellItemImageFactory::GetImage (shobjidl_core.h)

Mendapatkan HBITMAP yang mewakili IShellItem. Perilaku defaultnya adalah memuat gambar mini. Jika tidak ada gambar mini untuk IShellItem saat ini, ia mengambil HBITMAP untuk ikon item. Gambar mini atau ikon diekstrak jika saat ini tidak di-cache.

Sintaks

HRESULT GetImage(
  [in]  SIZE    size,
  [in]  SIIGBF  flags,
  [out] HBITMAP *phbm
);

Parameter

[in] size

Jenis: UKURAN

Struktur yang menentukan ukuran gambar yang akan diterima.

[in] flags

Jenis: SIIGBF

Satu atau beberapa hal berikut ini:

SIIGBF_RESIZETOFIT (0x00000000)

Susutkan bitmap seperlunya agar pas, pertahankan rasio aspeknya.

SIIGBF_BIGGERSIZEOK (0x00000001)

Diteruskan oleh penelepon jika mereka ingin meregangkan gambar yang dikembalikan itu sendiri. Misalnya, jika penelepon melewati ukuran ikon 80x80, gambar mini 96x96 dapat dikembalikan. Tindakan ini dapat digunakan sebagai pengoptimalan performa jika pemanggil mengharapkan bahwa mereka perlu meregangkan gambar. Perhatikan bahwa implementasi Shell IShellItemImageFactory melakukan blit peregangan GDI. Jika penelepon menginginkan peregangan gambar berkualitas lebih tinggi daripada yang disediakan melalui mekanisme tersebut, mereka harus melewati bendera ini dan melakukan peregangan sendiri.

SIIGBF_MEMORYONLY (0x00000002)

Kembalikan item hanya jika sudah ada dalam memori. Jangan akses disk meskipun item di-cache. Perhatikan bahwa ini hanya mengembalikan ikon yang sudah di-cache dan dapat kembali ke ikon per kelas jika item memiliki ikon per instans yang belum di-cache. Mengambil gambar mini, bahkan jika di-cache, selalu mengharuskan disk diakses, jadi GetImage tidak boleh dipanggil dari utas UI tanpa melewati SIIGBF_MEMORYONLY.

SIIGBF_ICONONLY (0x00000004)

Mengembalikan hanya ikon, tidak pernah gambar mini.

SIIGBF_THUMBNAILONLY (0x00000008)

Mengembalikan hanya gambar mini, tidak pernah ikon. Perhatikan bahwa tidak semua item memiliki gambar mini, jadi SIIGBF_THUMBNAILONLY akan menyebabkan metode gagal dalam kasus ini.

SIIGBF_INCACHEONLY (0x00000010)

Memungkinkan akses ke disk, tetapi hanya untuk mengambil item yang di-cache. Ini mengembalikan gambar mini yang di-cache jika tersedia. Jika tidak ada gambar mini yang di-cache yang tersedia, gambar mini mengembalikan ikon per instans yang di-cache tetapi tidak mengekstrak gambar mini atau ikon.

SIIGBF_CROPTOSQUARE (0x00000020)

Diperkenalkan dalam Windows 8. Jika perlu, potong bitmap ke persegi.

SIIGBF_WIDETHUMBNAILS (0x00000040)

Diperkenalkan dalam Windows 8. Regangkan dan pangkas bitmap ke rasio aspek 0,7.

SIIGBF_ICONBACKGROUND (0x00000080)

Diperkenalkan dalam Windows 8. Jika mengembalikan ikon, cat latar belakang menggunakan warna latar belakang terdaftar aplikasi terkait.

SIIGBF_SCALEUP (0x00000100)

Diperkenalkan dalam Windows 8. Jika perlu, regangkan bitmap sehingga tinggi dan lebar sesuai dengan ukuran yang diberikan.

[out] phbm

Jenis: HBITMAP*

Penunjuk ke nilai yang, ketika metode ini berhasil dikembalikan, menerima handel bitmap yang diambil. Penelepon bertanggung jawab untuk membebaskan sumber daya yang diambil ini melalui DeleteObject ketika tidak lagi diperlukan.

Mengembalikan nilai

Jenis: HRESULT

Jika metode ini berhasil, metode akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Ekstraksi ikon bisa memakan waktu. Metode ini umumnya tidak boleh dipanggil dari utas UI untuk menghindari menyebabkan utas tersebut menjadi tidak responsif. Anda dapat memanggil IShellItemImageFactory::GetImage pada utas UI jika Anda mengatur bendera SIIGBF_INCACHEONLY . Namun, jika gambar tidak ditemukan di cache, aplikasi panggilan harus disiapkan untuk meluncurkan utas latar belakang untuk mengekstrak gambar. Ekstraksi tidak boleh dilakukan pada utas UI.

Lihat sampel Menggunakan Image Factory untuk contoh lengkap tentang cara menggunakan metode ini.

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 shobjidl_core.h (termasuk Shobjidl.h)