Återanropsfunktioner
En återanropsfunktion är kod i ett hanterat program som hjälper en ohanterad DLL-funktion att slutföra en uppgift. Anrop till en återanropsfunktion skickas indirekt från ett hanterat program, via en DLL-funktion och tillbaka till den hanterade implementeringen. Vissa av de många DLL-funktioner som anropas med plattformsanrop kräver en återanropsfunktion i hanterad kod för att köras korrekt.
Om du vill anropa de flesta DLL-funktioner från hanterad kod skapar du en hanterad definition av funktionen och anropar den sedan. Processen är enkel.
Att använda en DLL-funktion som kräver en återanropsfunktion har några ytterligare steg. Först måste du avgöra om funktionen kräver ett återanrop genom att titta på dokumentationen för funktionen. Därefter måste du skapa återanropsfunktionen i ditt hanterade program. Slutligen anropar du DLL-funktionen och skickar en pekare till motringningsfunktionen som ett argument.
Följande bild sammanfattar återanropsfunktionen och implementeringsstegen:
Återanropsfunktioner är idealiska för användning i situationer där en uppgift utförs upprepade gånger. En annan vanlig användning är med uppräkningsfunktioner, till exempel EnumFontFamilies, EnumPrinters och EnumWindows i Windows-API:et. Funktionen EnumWindows räknas upp genom alla befintliga fönster på datorn och anropar återanropsfunktionen för att utföra en uppgift i varje fönster. Instruktioner och ett exempel finns i Så här: Implementera återanropsfunktioner.