使用回檔物件

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

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

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

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

事件回呼物件

引擎會使用 IDebugEventCallbacks 介面來通知偵錯工具延伸模組和 事件的應用程式 ,以及引擎和目標的變更。 您可以使用 SetEventCallbacks 向用戶端註冊 IDebugEventCallbacks的實作。 您可以使用 GetEventCallbacks找到向用戶端註冊的目前實作。 您可以使用 GetNumberEventCallbacks找到所有用戶端上註冊的事件回呼數目。

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

輸入回呼物件

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

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

輸出回呼物件

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

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

注意 如同 COM 物件的一般情況,引擎會在向用戶端註冊回呼 COM 物件時呼叫 IUnknown::AddRef ,並在取代物件或刪除用戶端時呼叫 IUnknown::Release