Fungsi SHChangeNotify (shlobj_core.h)
Memberi tahu sistem peristiwa yang telah dilakukan aplikasi. Aplikasi harus menggunakan fungsi ini jika melakukan tindakan yang dapat memengaruhi Shell.
Sintaks
void SHChangeNotify(
LONG wEventId,
UINT uFlags,
[in, optional] LPCVOID dwItem1,
[in, optional] LPCVOID dwItem2
);
Parameter
wEventId
Jenis: LONG
Menjelaskan peristiwa yang telah terjadi. Biasanya, hanya satu peristiwa yang ditentukan pada satu waktu. Jika lebih dari satu peristiwa ditentukan, nilai yang terkandung dalam parameter dwItem1 dan dwItem2 harus sama, masing-masing, untuk semua peristiwa yang ditentukan. Parameter ini bisa berupa satu atau beberapa nilai berikut:
SHCNE_ALLEVENTS
Semua peristiwa telah terjadi.
SHCNE_ASSOCCHANGED
Asosiasi tipe file telah berubah. SHCNF_IDLIST harus ditentukan dalam parameter uFlags . dwItem1 dan dwItem2 tidak digunakan dan harus NULL. Kejadian ini juga harus dikirim untuk protokol terdaftar.
SHCNE_ATTRIBUTES
Atribut item atau folder telah berubah. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi item atau folder yang telah berubah. dwItem2 tidak digunakan dan harus NULL.
SHCNE_CREATE
Item nonfolder telah dibuat. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi item yang dibuat. dwItem2 tidak digunakan dan harus NULL.
SHCNE_DELETE
Item nonfolder telah dihapus. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi item yang dihapus. dwItem2 tidak digunakan dan harus NULL.
SHCNE_DRIVEADD
Drive telah ditambahkan. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi akar drive yang ditambahkan. dwItem2 tidak digunakan dan harus NULL.
SHCNE_DRIVEADDGUI
Windows XP dan yang lebih baru: Tidak digunakan.
SHCNE_DRIVEREMOVED
Kandar telah dilepas. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi akar drive yang dihapus. dwItem2 tidak digunakan dan harus NULL.
SHCNE_EXTENDED_EVENT
Saat ini tidak digunakan.
SHCNE_FREESPACE
Jumlah ruang kosong pada drive telah berubah. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi akar drive tempat ruang kosong berubah. dwItem2 tidak digunakan dan harus NULL.
SHCNE_MEDIAINSERTED
Media penyimpanan telah dimasukkan ke dalam drive. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi akar drive yang berisi media baru. dwItem2 tidak digunakan dan harus NULL.
SHCNE_MEDIAREMOVED
Media penyimpanan telah dihapus dari drive. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi akar drive tempat media dihapus. dwItem2 tidak digunakan dan harus NULL.
SHCNE_MKDIR
Folder telah dibuat. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi folder yang dibuat. dwItem2 tidak digunakan dan harus NULL.
SHCNE_NETSHARE
Folder pada komputer lokal sedang dibagikan melalui jaringan. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi folder yang sedang dibagikan. dwItem2 tidak digunakan dan harus NULL.
SHCNE_NETUNSHARE
Folder pada komputer lokal tidak lagi dibagi melalui jaringan. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi folder yang tidak lagi dibagikan. dwItem2 tidak digunakan dan harus NULL.
SHCNE_RENAMEFOLDER
Nama folder telah berubah. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi PIDL atau nama folder sebelumnya. dwItem2 berisi PIDL atau nama folder baru.
SHCNE_RENAMEITEM
Nama item nonfolder telah berubah. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi PIDL atau nama item sebelumnya. dwItem2 berisi PIDL baru atau nama item.
SHCNE_RMDIR
Folder telah dihapus. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi folder yang dihapus. dwItem2 tidak digunakan dan harus NULL.
SHCNE_SERVERDISCONNECT
Komputer telah terputus dari server. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi server tempat komputer terputus. dwItem2 tidak digunakan dan harus NULL.
SHCNE_UPDATEDIR
Isi folder yang ada telah berubah, tetapi folder masih ada dan belum diganti namanya. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi folder yang telah berubah. dwItem2 tidak digunakan dan harus NULL. Jika folder telah dibuat, dihapus, atau diganti namanya, gunakan SHCNE_MKDIR, SHCNE_RMDIR, atau SHCNE_RENAMEFOLDER.
SHCNE_UPDATEIMAGE
Gambar dalam daftar gambar sistem telah berubah. SHCNF_DWORD harus ditentukan dalam uFlags.
dwItem2 berisi indeks dalam daftar gambar sistem yang telah berubah. dwItem1 tidak digunakan dan harus NULL.
SHCNE_UPDATEITEM
Item yang ada (folder atau nonfolder) telah berubah, tetapi item masih ada dan belum diganti namanya. SHCNF_IDLIST atau SHCNF_PATH harus ditentukan dalam uFlags. dwItem1 berisi item yang telah berubah. dwItem2 tidak digunakan dan harus NULL. Jika item nonfolder telah dibuat, dihapus, atau diganti namanya, gunakan SHCNE_CREATE, SHCNE_DELETE, atau SHCNE_RENAMEITEM, sebagai gantinya.
SHCNE_DISKEVENTS
Menentukan kombinasi semua pengidentifikasi peristiwa disk.
SHCNE_GLOBALEVENTS
Menentukan kombinasi semua pengidentifikasi peristiwa global.
SHCNE_INTERRUPT
Peristiwa yang ditentukan terjadi sebagai akibat dari gangguan sistem. Karena nilai ini memodifikasi nilai peristiwa lain, nilai tersebut tidak dapat digunakan sendiri.
uFlags
Jenis: UINT
Bendera yang, ketika digabungkan bitwise dengan SHCNF_TYPE, menunjukkan arti parameter dwItem1 dan dwItem2 . Parameter uFlags harus menjadi salah satu nilai berikut.
SHCNF_DWORD
Parameter dwItem1 dan dwItem2 adalah nilai DWORD .
SHCNF_IDLIST
dwItem1 dan dwItem2 adalah alamat struktur ITEMIDLIST yang mewakili item yang terpengaruh oleh perubahan. Setiap ITEMIDLIST harus relatif terhadap folder desktop.
SHCNF_PATH
dwItem1 dan dwItem2 adalah alamat string panjang maksimum yang dihentikan null MAX_PATH yang berisi nama jalur lengkap item yang terpengaruh oleh perubahan.
SHCNF_PRINTER
dwItem1 dan dwItem2 adalah alamat string yang dihentikan null yang mewakili nama printer yang mudah diingat yang terpengaruh oleh perubahan.
SHCNF_FLUSH
Fungsi tidak boleh kembali sampai pemberitahuan telah dikirimkan ke semua komponen yang terpengaruh. Karena bendera ini memodifikasi bendera jenis data lainnya, bendera tersebut tidak dapat digunakan dengan sendirinya.
SHCNF_FLUSHNOWAIT
Fungsi harus mulai mengirimkan pemberitahuan ke semua komponen yang terpengaruh tetapi harus kembali segera setelah proses pemberitahuan dimulai. Karena bendera ini memodifikasi bendera jenis data lainnya, bendera tersebut tidak dapat digunakan dengan sendirinya. Bendera ini mencakup SHCNF_FLUSH.
SHCNF_NOTIFYRECURSIVE
Beri tahu klien yang terdaftar untuk semua anak.
[in, optional] dwItem1
Jenis: LPCVOID
Pilihan. Nilai dependen peristiwa pertama.
[in, optional] dwItem2
Jenis: LPCVOID
Pilihan. Nilai dependen peristiwa kedua.
Mengembalikan nilai
Tidak ada
Keterangan
Aplikasi yang mendaftarkan handler baru dari jenis apa pun harus memanggil SHChangeNotify dengan bendera SHCNE_ASSOCCHANGED untuk menginstruksikan Shell untuk membatalkan ikon dan cache gambar mini. Ini juga akan memuat ikon baru dan penangan gambar mini yang telah didaftarkan. Namun, perhatikan bahwa handler overlay ikon tidak dimuat ulang.
String yang diarahkan oleh dwItem1 dan dwItem2 dapat berupa ANSI atau Unicode.
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) |
Set API | ext-ms-win-shell-shell32-l1-2-0 (diperkenalkan dalam Windows 8.1) |