Fungsi panggilan balik WNDPROC (winuser.h)

Fungsi panggilan balik, yang Anda tentukan dalam aplikasi Anda, yang memproses pesan yang dikirim ke jendela. Jenis WNDPROC mendefinisikan penunjuk ke fungsi panggilan balik ini. Nama WndProc adalah tempat penampung untuk nama fungsi yang Anda tentukan dalam aplikasi Anda.

Sintaks

WNDPROC Wndproc;

LRESULT Wndproc(
  HWND unnamedParam1,
  UINT unnamedParam2,
  WPARAM unnamedParam3,
  LPARAM unnamedParam4
)
{...}

Parameter

unnamedParam1

Jenis: HWND

Handel ke jendela. Parameter ini biasanya bernama hWnd.

unnamedParam2

Jenis: UINT

Pesannya. Parameter ini biasanya bernama uMsg.

Untuk daftar pesan yang disediakan sistem, lihat Pesan yang ditentukan sistem.

unnamedParam3

Jenis: WPARAM

Informasi pesan tambahan. Parameter ini biasanya bernama wParam.

Konten parameter wParam bergantung pada nilai parameter uMsg .

unnamedParam4

Jenis: LPARAM

Informasi pesan tambahan. Parameter ini biasanya bernama lParam.

Konten parameter lParam bergantung pada nilai parameter uMsg .

Nilai kembali

Jenis: LRESULT

Nilai yang dikembalikan adalah hasil pemrosesan pesan, dan tergantung pada pesan yang dikirim.

Keterangan

Jika aplikasi Anda berjalan pada sistem operasi Windows versi 32-bit, pengecualian yang tidak tertangkap dari panggilan balik akan diteruskan ke handler pengecualian tingkat yang lebih tinggi dari aplikasi Anda jika tersedia. Sistem kemudian memanggil filter pengecualian yang tidak tertangani untuk menangani pengecualian sebelum mengakhiri proses. Jika PCA diaktifkan, PCA akan menawarkan untuk memperbaiki masalah saat berikutnya Anda menjalankan aplikasi.

Namun, jika aplikasi Anda berjalan pada sistem operasi Windows versi 64-bit atau WOW64, Anda harus menyadari bahwa sistem operasi 64-bit menangani pengecualian yang tidak tertangkap secara berbeda berdasarkan arsitektur prosesor 64-bit, arsitektur pengecualian, dan konvensi panggilan. Tabel berikut ini meringkas semua kemungkinan cara sistem operasi Windows 64-bit atau WOW64 menangani pengecualian yang tidak tertangkap.

Jenis perilaku Bagaimana sistem menangani pengecualian yang tidak terjaring
1 Sistem menekan pengecualian yang tidak terduga.
2 Sistem pertama-tama menghentikan proses, dan kemudian Program Compatibility Assistant (PCA) menawarkan untuk memperbaikinya saat Anda menjalankan aplikasi berikutnya. Anda dapat menonaktifkan mitigasi PCA dengan menambahkan bagian Kompatibilitas ke manifes aplikasi.
3 Sistem memanggil filter pengecualian tetapi menekan pengecualian yang tidak tertangkap ketika meninggalkan cakupan panggilan balik, tanpa memanggil penangan terkait.

Tabel berikut menunjukkan bagaimana versi 64-bit dari sistem operasi Windows, dan WOW64, menangani pengecualian yang tidak tertangkap. Perhatikan bahwa perilaku tipe 2 hanya berlaku untuk sistem operasi Windows 7 versi 64-bit dan yang lebih baru.

Sistem operasi WOW64 Windows 64-bit
Windows XP 3 1
Windows Server 2003 3 1
Windows Vista 3 1
Windows Vista SP1 1 1
Windows 7 dan yang lebih baru 1 2

Catatan

Pada Windows 7 dengan SP1 (32-bit, 64-bit, atau WOW64), sistem memanggil filter pengecualian yang tidak tertangani untuk menangani pengecualian sebelum mengakhiri proses. Jika Program Compatibility Assistant (PCA) diaktifkan, maka program akan menawarkan untuk memperbaiki masalah saat Anda menjalankan aplikasi berikutnya.

Jika Anda perlu menangani pengecualian dalam aplikasi, Anda dapat menggunakan penanganan pengecualian terstruktur untuk melakukannya. Untuk informasi selengkapnya tentang cara menggunakan penanganan pengecualian terstruktur, lihat Penanganan pengecualian terstruktur.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Header winuser.h (sertakan windows.h)

Lihat juga