Bagikan melalui


Fungsi SHGetInstanceExplorer (shlobj_core.h)

Mengambil antarmuka yang memungkinkan ekstensi Shell yang dihosting dan komponen lain untuk mencegah proses host mereka ditutup sebelum waktunya. Proses host biasanya Windows Explorer atau Windows Internet Explorer, tetapi fungsi ini juga dapat digunakan oleh aplikasi lain.

Sintaks

SHSTDAPI SHGetInstanceExplorer(
  [out] IUnknown **ppunk
);

Parameter

[out] ppunk

Jenis: IUnknown**

Ketika fungsi ini berhasil dikembalikan, berisi alamat penunjuk antarmuka IUnknown proses host. Ini adalah antarmuka utas bebas yang digunakan untuk mencegah proses host dihentikan. Jika panggilan fungsi gagal, nilai ini diatur ke NULL.

Nilai kembali

Jenis: HRESULT

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

Keterangan

Ada sejumlah komponen, seperti penangan ekstensi Shell, yang diimplementasikan sebagai DLL dan dijalankan dalam proses host seperti Windows Explorer (Explorer.exe) atau Internet Explorer (Iexplore.exe). Biasanya, ketika pengguna menutup proses host, komponen segera dimatikan juga. Penghentian mendadak seperti itu dapat menciptakan masalah untuk beberapa komponen. Misalnya, jika komponen menggunakan utas latar belakang untuk mengunduh data atau menjalankan fungsi antarmuka pengguna, mungkin perlu waktu tambahan untuk mematikan dirinya dengan aman.

SHGetInstanceExplorer memungkinkan komponen yang berjalan dalam proses host untuk memegang referensi pada proses host. SHGetInstanceExplorer menaikkan jumlah referensi host dan mengembalikan pointer ke antarmuka IUnknown host. Dengan memegang referensi itu, komponen dapat mencegah proses host ditutup sebelum waktunya. Setelah komponen menyelesaikan pemrosesan yang diperlukan, komponen harus memanggil (*ppunk)->Rilis untuk merilis referensi host dan memungkinkan proses dihentikan.

Catatan Jika SHGetInstanceExplorer berhasil, komponen harus merilis referensi host ketika tidak lagi diperlukan. Jika tidak, semua sumber daya yang terkait dengan proses akan tetap berada dalam memori. Antarmuka IUnknown yang diacu oleh *ppunk hanya dapat digunakan untuk merilis referensi ini. Komponen tidak dapat menggunakan (*ppunk)->QueryInterface untuk meminta penunjuk antarmuka lainnya.
 
SHGetInstanceExplorer hanya berhasil jika dipanggil dari aplikasi yang sebelumnya disebut SHSetInstanceExplorer untuk mengatur referensi proses.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header shlobj_core.h (termasuk Shlobj.h)
Pustaka Shell32.lib
DLL Shell32.dll (versi 4.0 atau yang lebih baru)