Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ada tiga antarmuka callback COM seperti yang digunakan oleh mesin: IDebugEventCallbacks untuk memberi tahu ekstensi debugger dan aplikasi perubahan pada mesin atau target, IDebugInputCallbacks untuk meminta input, dan IDebugOutputCallbacks untuk mengirim output.
Objek panggilan balik didaftarkan oleh klien. Maksimal satu instance dari masing-masing dari tiga antarmuka callback dapat didaftarkan dengan setiap klien (versi Unicode dan ASCII dari suatu antarmuka dianggap sebagai antarmuka yang sama).
Ketika klien dibuat, mesin akan mengingat utas tempat pembuatan klien tersebut. Mesin ini menggunakan utas yang sama setiap kali ia melakukan panggilan ke instance callback yang terdaftar di klien. Jika utas sedang digunakan, mesin akan mengantre panggilan yang perlu dilakukannya. Untuk memungkinkan mesin melakukan panggilan ini, metode DispatchCallbacks harus dipanggil setiap kali utas klien menganggur. Metode ExitDispatch akan menyebabkan DispatchCallbacks kembali. Jika utas adalah utas yang sama yang digunakan untuk memulai sesi debugger, maka mesin dapat melakukan panggilan balik selama metode WaitForEvent, dan DispatchCallbacks tidak perlu dipanggil.
Metode FlushCallbacks memberi tahu mesin pemrosesan untuk mengirim semua output buffer ke callback output.
Objek Panggilan Balik Peristiwa
Antarmuka IDebugEventCallbacks digunakan oleh mesin untuk memberi tahu ekstensi debugger dan aplikasi peristiwa dan perubahan pada mesin dan target. Implementasi IDebugEventCallbacks dapat didaftarkan dengan klien menggunakan SetEventCallbacks. Implementasi saat ini yang terdaftar dengan klien dapat ditemukan menggunakan GetEventCallbacks. Jumlah panggilan balik peristiwa yang terdaftar di semua klien dapat ditemukan menggunakan GetNumberEventCallbacks.
Untuk detail tentang cara mesin mengelola peristiwa, lihat Memantau Peristiwa.
Input Objek Panggilan Balik
Antarmuka IDebugInputCallbacks digunakan oleh mesin untuk meminta input dari ekstensi dan aplikasi debugger. Implementasi IDebugInputCallbacks dapat didaftarkan dengan klien menggunakan SetInputCallbacks. Implementasi saat ini yang terdaftar dengan klien dapat ditemukan menggunakan GetInputCallbacks. Jumlah panggilan balik input yang terdaftar di semua klien dapat ditemukan menggunakan GetNumberInputCallbacks.
Untuk detail tentang cara mesin mengelola input, lihat Input dan Output.
Objek Panggilan Balik Output
Antarmuka IDebugOutputCallbacks digunakan oleh mesin untuk mengirim output ke ekstensi dan aplikasi debugger. Implementasi IDebugOutputCallbacks dapat didaftarkan dengan klien menggunakan SetOutputCallbacks. Implementasi saat ini yang terdaftar dengan klien dapat ditemukan menggunakan GetOutputCallbacks. Jumlah panggilan balik output yang terdaftar di semua klien dapat ditemukan menggunakan GetNumberOutputCallbacks.
Untuk detail tentang cara mesin mengelola output, lihat Input dan Output.
Nota Seperti biasa untuk objek COM, mesin akan memanggil IUnknown::AddRef pada objek COM panggilan balik ketika terdaftar di klien, dan IUnknown::Release saat objek diganti atau klien dihapus.