Använda callback-objekt

Det finns tre COM-återanropsgränssnitt som används av motorn: IDebugEventCallbacks för att meddela felsökningstillägg och applikationer om ändringar i motorn eller målsystemet, IDebugInputCallbacks för att begära indata och IDebugOutputCallbacks för att skicka utdata.

Återuppringningsobjekt registreras hos klienter. Som mest kan en instans av vart och ett av de tre motringningsgränssnitten registreras med varje klient (Unicode- och ASCII-versionerna av ett gränssnitt räknas som samma gränssnitt).

När en klient skapas, kommer motorn ihåg i vilken tråd den skapades. Motorn använder samma tråd när den anropar en återkallningsinstans som registrerats med klienten. Om tråden är i bruk kommer motorn att köa de anrop den behöver göra. För att motorn ska kunna göra dessa anrop bör metoden DispatchCallbacks anropas när en klients tråd är inaktiv. Metoden ExitDispatch kommer att orsaka att DispatchCallbacks återvänder. Är tråden den samma som användes för att starta felsökningssessionen kan motorn göra återanrop under metoden WaitForEvent och DispatchCallbacks behöver inte anropas.

Metoden FlushCallbacks instruerar motorn att skicka alla utdatabuffringar till utdataåteranropen.

händelseåteranropsobjekt

Gränssnittet IDebugEventCallbacks används av motorn för att informera felsökningstillägg och applikationer om händelser och förändringar i motorn och målet. En implementering av IDebugEventCallbacks kan registreras med en klient med hjälp av SetEventCallbacks. Den aktuella implementeringen som registrerats med en klient kan hittas med hjälp av GetEventCallbacks. Antalet händelseåteranrop som registrerats för alla klienter hittas med GetNumberEventCallbacks.

Mer information om hur motorn hanterar händelser finns i Övervakningshändelser.

motringningsobjekt

Gränssnittet IDebugInputCallbacks används av motorn för att begära indata från felsökningstillägg och program. En implementering av IDebugInputCallbacks kan registreras hos en klient genom SetInputCallbacks. Den aktuella implementeringen som är registrerad hos en klient kan hittas med hjälp av GetInputCallbacks. Antalet inmatningsåterkopplingar som registrerats för alla klienter kan hittas genom att använda GetNumberInputCallbacks.

Mer information om hur motorn hanterar indata finns i indata och utdata.

Utgångs återuppringningsobjekt

Gränssnittet IDebugOutputCallbacks används av motorn för att skicka utdata till felsökningstilläggen och programmen. En implementering av IDebugOutputCallbacks kan registreras med en klient genom att använda SetOutputCallbacks. Den aktuella implementeringen som är registrerad hos en klient kan hittas med hjälp av GetOutputCallbacks. Antalet återanrop för utdata som registrerats för alla klienter kan hittas med hjälp av GetNumberOutputCallbacks.

Mer information om hur motorn hanterar utdata finns i indata och utdata.

Observera Som är typiskt för COM-objekt anropar motorn IUnknown::AddRef på ett COM-objekt för återanrop när det är registrerat med en klient och IUnknown::Release när objektet ersätts eller klienten tas bort.