Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Er zijn drie callback COM-achtige interfaces die door de engine worden gebruikt: IDebugEventCallbacks voor het melden van foutopsporingsprogramma-extensies en toepassingen van wijzigingen in de engine of het doel, IDebugInputCallbacks voor het aanvragen van invoer en IDebugOutputCallbacks voor het verzenden van uitvoer.
Callback-objecten worden geregistreerd bij clients. Maximaal één exemplaar van elk van de drie callback-interfaces kan worden geregistreerd bij elke client (de Unicode- en ASCII-versies van een interfaceaantal als dezelfde interface).
Wanneer een client wordt gemaakt, onthoudt de engine de thread waarin deze is gemaakt. De engine gebruikt dezelfde thread wanneer er een aanroep wordt gedaan naar een callback-exemplaar dat is geregistreerd bij de client. Als de thread in gebruik is, zal de engine de oproepen in de wachtrij plaatsen die moeten worden uitgevoerd. Om de engine toe te staan deze aanroepen te doen, moet de methode DispatchCallbacks worden aangeroepen wanneer de thread van een client niet actief is. Met de methode ExitDispatch wordt DispatchCallbacks geretourneerd. Als de thread dezelfde thread is die is gebruikt om de foutopsporingsprogrammasessie te starten, kan de engine de callback-aanroepen uitvoeren tijdens de methode WaitForEvent en DispatchCallbacks hoeft niet te worden aangeroepen.
De methode FlushCallbacks vertelt de engine dat alle gebufferde uitvoer naar de uitvoer callbacks wordt verzonden.
Terugbelobjecten voor gebeurtenissen
De IDebugEventCallbacks-interface wordt door de engine gebruikt om de extensies en toepassingen van het foutopsporingsprogramma op de hoogte te stellen van gebeurtenissen en wijzigingen in de engine en het doel. Een implementatie van IDebugEventCallbacks kan worden geregistreerd bij een client met behulp van SetEventCallbacks. De huidige implementatie die is geregistreerd bij een client, is te vinden met GetEventCallbacks. Het aantal callbacks voor gebeurtenissen dat voor alle clients is geregistreerd, is te vinden met GetNumberEventCallbacks.
Zie Bewakingsevenementen voor meer informatie over hoe de engine gebeurtenissen beheert.
Terugbelobjecten invoeren
De IDebugInputCallbacks-interface wordt door de engine gebruikt voor het aanvragen van invoer van extensies en toepassingen voor foutopsporingsprogramma's. Een implementatie van IDebugInputCallbacks kan worden geregistreerd bij een client met behulp van SetInputCallbacks. De huidige implementatie die is geregistreerd bij een client, kunt u vinden met behulp van GetInputCallbacks. Het aantal callbacks voor invoer dat voor alle clients is geregistreerd, is te vinden met GetNumberInputCallbacks.
Zie Invoer en uitvoer voor meer informatie over hoe de engine invoer beheert.
Callback-objecten uitvoeren
De IDebugOutputCallbacks-interface wordt door de engine gebruikt om uitvoer te verzenden naar de extensies en toepassingen van het foutopsporingsprogramma. Een implementatie van IDebugOutputCallbacks kan worden geregistreerd bij een client met behulp van SetOutputCallbacks. Met behulp van GetOutputCallbacks kunt u de huidige implementatie vinden die is geregistreerd bij een cliënt. Het aantal callbacks dat voor alle clients is geregistreerd, kan worden gevonden met GetNumberOutputCallbacks.
Zie Invoer en uitvoer voor meer informatie over hoe de engine uitvoer beheert.
Notitie Zoals gebruikelijk is voor COM-objecten, roept de engine IUnknown::AddRef aan op een CALLBACK COM-object wanneer het is geregistreerd bij een client en IUnknown::Release wanneer het object wordt vervangen of de client wordt verwijderd.