Udostępnij przez


Używanie obiektów wywołania zwrotnego

Istnieją trzy wywołania zwrotne COM, takie jak interfejsy, które są używane przez aparat: IDebugEventCallbacks do powiadamiania rozszerzeń debugera i aplikacji zmian w akompaniamencie aparatu lub celu, IDebugInputCallbacks do żądania danych wejściowych i IDebugOutputCallbacks wysyłania danych wyjściowych.

Obiekty wywołania zwrotnego są rejestrowane u klientów. Co najwyżej jedno wystąpienie każdego z trzech interfejsów wywołania zwrotnego można zarejestrować przy użyciu każdego klienta (wersje Unicode i ASCII interfejsu są liczone jako ten sam interfejs).

Po utworzeniu klienta aparat zapamiętuje wątek, w którym został utworzony. Silnik używa tego samego wątku za każdym razem, gdy wykonuje wywołanie instancji wywołania zwrotnego zarejestrowanej u klienta. Jeśli wątek jest używany, silnik będzie kolejkować wywołania, które musi wykonać. Aby umożliwić aparatowi wykonywanie tych wywołań, należy wywołać metodę DispatchCallbacks zawsze, kiedy wątek klienta jest bezczynny. Metoda ExitDispatch spowoduje zwrócenie DispatchCallbacks. Jeśli wątek jest tym samym wątkiem, który został użyty do uruchomienia sesji debugera, to aparat może wykonać wywołania zwrotne podczas metody WaitForEvent, a nie ma potrzeby wywoływania DispatchCallbacks.

Metoda FlushCallbacks poleca silnikowi wysłanie wszystkich buforowanych danych wyjściowych do wywołań zwrotnych wyjściowych.

obiekty wywołania zwrotnego zdarzeń

Interfejs IDebugEventCallbacks jest używany przez aparat do powiadamiania rozszerzeń debugera i aplikacji o zdarzeniach oraz zmianach aparatu i celu. Implementacja IDebugEventCallbacks można zarejestrować u klienta za pomocą SetEventCallbacks. Bieżącą implementację zarejestrowaną u klienta można znaleźć przy użyciu GetEventCallbacks. Liczbę wywołań zwrotnych zdarzeń zarejestrowanych na wszystkich klientach można znaleźć przy użyciu GetNumberEventCallbacks.

Aby uzyskać szczegółowe informacje na temat zarządzania zdarzeniami przez silnik, zobacz w sekcji Monitorowanie zdarzeń.

obiekty wywołania zwrotnego danych wejściowych

Interfejs IDebugInputCallbacks jest używany przez silnik do pozyskiwania danych wejściowych z rozszerzeń debugera i aplikacji. Implementacja IDebugInputCallbacks może zostać zarejestrowana dla klienta przy użyciu SetInputCallbacks. Bieżąca implementacja zarejestrowana przez klienta można znaleźć przy użyciu GetInputCallbacks. Liczbę wywołań zwrotnych danych wejściowych zarejestrowanych na wszystkich klientach można znaleźć przy użyciu GetNumberInputCallbacks.

Aby uzyskać szczegółowe informacje na temat sposobu, w jaki silnik zarządza danymi wejściowymi, zobacz Input and Output.

obiektów wywołania zwrotnego danych wyjściowych

Interfejs IDebugOutputCallbacks jest wykorzystywany przez silnik do wysyłania danych wyjściowych do rozszerzeń debugera i aplikacji. Implementację IDebugOutputCallbacks można zarejestrować u klienta, używając SetOutputCallbacks. Bieżąca implementacja zarejestrowana przez klienta może być znaleziona przy użyciu ,GetOutputCallbacks,,. Liczbę wywołań zwrotnych danych wyjściowych zarejestrowanych na wszystkich klientach można znaleźć przy użyciu GetNumberOutputCallbacks.

Aby uzyskać szczegółowe informacje na temat zarządzania wynikami przez silnik, zobacz Input and Output.

Uwaga Jak to jest typowe dla obiektów COM, silnik wywoła IUnknown::AddRef w obiekcie COM wywołania zwrotnego, gdy jest zarejestrowany przez klienta, a IUnknown::Release, gdy obiekt zostanie zastąpiony lub klient zostanie usunięty.