Callback-functies

Een callback-functie is code binnen een beheerde toepassing waarmee een onbeheerde DLL-functie een taak kan voltooien. Aanroepen naar een callback-functie worden indirect doorgegeven vanuit een beheerde toepassing, via een DLL-functie en terug naar de beheerde implementatie. Voor sommige van de vele DLL-functies die worden aangeroepen met platformaanroepen, is een callback-functie in beheerde code vereist om correct te kunnen worden uitgevoerd.

Als u de meeste DLL-functies wilt aanroepen vanuit beheerde code, maakt u een beheerde definitie van de functie en roept u deze vervolgens aan. Het proces is eenvoudig.

Het gebruik van een DLL-functie waarvoor een callback-functie is vereist, bevat enkele extra stappen. Eerst moet u bepalen of de functie een callback vereist door de documentatie voor de functie te bekijken. Vervolgens moet u de callback-functie maken in uw beheerde toepassing. Ten slotte roept u de DLL-functie aan, waarbij u een aanwijzer als argument doorgeeft aan de callback-functie.

In de volgende afbeelding ziet u een overzicht van de callback-functie en implementatiestappen:

Diagram showing the platform invoke callback process.

Callback-functies zijn ideaal voor gebruik in situaties waarin een taak herhaaldelijk wordt uitgevoerd. Een ander veelvoorkomend gebruik is met opsommingsfuncties, zoals EnumFontFamilies, EnumPrinters en EnumWindows in de Windows-API. De functie EnumWindows inventariseert alle bestaande vensters op uw computer, waarbij de callback-functie wordt aangeroepen om een taak uit te voeren in elk venster. Zie Voor instructies en een voorbeeld : Callback-functies implementeren.

Zie ook