Menggunakan Objek Panggilan Balik

Ada tiga panggilan balik COM seperti antarmuka 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 terdaftar di klien. Paling banyak, satu instans dari masing-masing dari tiga antarmuka panggilan balik dapat didaftarkan ke setiap klien (versi Unicode dan ASCII dari jumlah antarmuka sebagai antarmuka yang sama).

Ketika klien dibuat, mesin mengingat utas tempat klien dibuat. Mesin menggunakan utas yang sama ini setiap kali melakukan panggilan ke instans panggilan balik 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 untuk mengirim semua output buffer ke panggilan balik 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 ke 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 ke 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 ke 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.

Catatan Seperti biasa untuk objek COM, mesin akan memanggil IUnknown::AddRef pada objek COM panggilan balik ketika terdaftar di klien, dan IUnknown::Release ketika objek diganti atau klien dihapus.