Megosztás a következőn keresztül:


Visszahívási objektumok használata

A motor három visszahívási COM-szerű felületet használ: az IDebugEventCallbacks a hibakereső bővítményeinek és a motor vagy a cél módosításainak alkalmazásainak értesítésére, az IDebugInputCallbacks a bemenet igénylésére, és az IDebugOutputCallbacks a kimenet küldésére.

A visszahívási objektumok regisztrálva vannak az ügyfeleknél. Legfeljebb a három visszahívási felület egy-egy példánya regisztrálható minden ügyféllel (a felület Unicode és ASCII-verziói azonos felületnek számítanak).

Az ügyfél létrehozásakor a motor megjegyzi azt a szálat, amelyben létrejött. A motor ugyanazt a szálat használja, amikor megvalósít egy hívást az ügyfél által regisztrált visszahívási példányhoz. Ha a szál használatban van, a motor sorba állítja a szükséges hívásokat. Annak érdekében, hogy a motor kezdeményezhesse ezeket a hívásokat, a DispatchCallbacks metódust kell meghívni, amikor egy ügyfél szála tétlen. Az ExitDispatch metódus a DispatchCallbacks visszatérését okozza. Ha a szál ugyanaz a szál, amelyet a hibakereső munkamenet elindításához használtak, akkor a motor a WaitForEvent metódus során kezdeményezheti a visszahívási hívásokat, és a DispatchCallbackeket nem kell meghívni.

A FlushCallbacks metódus arra utasítja a motort, hogy küldje el az összes pufferelt kimenetet a kimeneti visszahívásoknak.

Eseményvisszahívási objektumok

A motor az IDebugEventCallbacks felületet használja a hibakereső bővítményeinek és alkalmazásainak értesítésére a motor és a cél eseményeiről és változásairól. Az IDebugEventCallbacks implementációja regisztrálható egy ügyféllel a SetEventCallbacks használatával. Az ügyfélhez regisztrált jelenlegi implementáció a GetEventCallbacks használatával érhető el. Az összes ügyfélen regisztrált eseményvisszahívások száma a GetNumberEventCallbacks használatával található.

Az események kezelésével kapcsolatos részletekért lásd: Események monitorozása.

Bemeneti visszahívási objektumok

A motor az IDebugInputCallbacks felületet használja a hibakereső bővítmények és alkalmazások bemenetének lekérésére. Az IDebugInputCallbacks implementációja regisztrálható egy ügyféllel a SetInputCallbacks használatával. Az ügyfélnél regisztrált jelenlegi implementáció a GetInputCallbacks használatával érhető el. Az összes ügyfélen regisztrált bemeneti visszahívások száma a GetNumberInputCallbacks használatával érhető el.

A motor bemenetének kezelésével kapcsolatos részletekért lásd: Bemenet és kimenet.

Kimeneti visszahívási objektumok

A motor az IDebugOutputCallbacks felületet használja a hibakereső bővítmények és alkalmazások kimenetének küldéséhez. Az IDebugOutputCallbacks implementációja regisztrálható egy ügyféllel a SetOutputCallbacks használatával. Az ügyfélhez regisztrált jelenlegi implementáció a GetOutputCallbacks használatával érhető el. Az összes ügyfélen regisztrált kimeneti visszahívások száma a GetNumberOutputCallbacks használatával található.

A motor kimenetének kezelésével kapcsolatos részletekért lásd: Bemenet és kimenet.

Jegyzet A COM-objektumokhoz hasonlóan a motor meghívja az IUnknown::AddRef parancsot egy visszahívási COM-objektumon, amikor regisztrálva van egy ügyfélnél, és az IUnknown::Release parancsot az objektum cseréjekor vagy az ügyfél törlésekor.