使用回調物件

引擎所使用的介面有三個類似回呼 COM:IDebugEventCallbacks 可用來通知調試程式延伸模組和應用程式對引擎或目標所做的變更、用於要求輸入的 IDebugInputCallbacks,以及傳送輸出的 IDebugOutputCallbacks

回呼物件會向客戶端註冊。 最多可以向每個用戶端註冊三個回呼介面的一個實例(介面的 Unicode 和 ASCII 版本會計算為相同的介面)。

建立用戶端時,引擎會記住其建立所在的線程。 每當引擎呼叫向客戶端註冊的回呼實例時,引擎都會使用相同的線程。 如果線程正在使用中,引擎會將它所需的呼叫排入佇列。 若要允許引擎進行這些呼叫,每當用戶端的線程閑置時,應該呼叫 DispatchCallbacks 方法。 ExitDispatch 方法會導致 DispatchCallbacks 傳回。 如果線程是用來啟動調試程式會話的相同線程,則引擎可以在 WaitForEvent 方法期間進行回呼呼叫,而且不需要呼叫 DispatchCallbacks。

FlushCallbacks 方法會指示引擎將所有緩衝輸出傳送至輸出回呼。

事件回呼物件

引擎會使用 IDebugEventCallbacks 介面來通知調試程式擴充功能和事件的應用程式,以及引擎和目標的變更。 您可以使用 SetEventCallbacks 向用戶端註冊 IDebugEventCallbacks 的作。 您可以使用 GetEventCallbacks 找到向客戶端註冊的目前實作 您可以使用 GetNumberEventCallbacks 在所有客戶端上註冊的事件回呼數目。

如需引擎如何管理事件的詳細資訊,請參閱 監視事件

輸入回呼物件

引擎 會使用 IDebugInputCallbacks 介面向調試程式延伸模組和應用程式要求輸入。 您可以使用 SetInputCallbacks 向用戶端註冊 IDebugInputCallbacks 的作。 您可以使用 GetInputCallbacks 找到向客戶端註冊的目前實作 您可以使用 GetNumberInputCallbacks 找到所有客戶端註冊的輸入回呼數目。

如需引擎如何管理輸入的詳細資訊,請參閱 輸入和輸出

輸出回呼物件

引擎 會使用 IDebugOutputCallbacks 介面將輸出傳送至調試程式延伸模組和應用程式。 IDebugOutputCallbacks 的實作可以使用 SetOutputCallbacks 向用戶端註冊。 您可以使用 GetOutputCallbacks 找到向客戶端註冊的目前實作 您可以使用 GetNumberOutputCallbacks,在所有用戶端上註冊的輸出回呼數目。

如需引擎如何管理輸出的詳細資訊,請參閱 輸入和輸出

注意 與 COM 對象一樣,引擎會在向用戶端註冊回呼 COM 物件時呼叫 IUnknown::AddRef ,並在 取代物件或刪除用戶端時呼叫 IUnknown::Release