Programkonfigurationsfil (ACF)

Det kan finnas aspekter av ditt distribuerade program som påverkar en komponent, men som inte har något att göra med en annan. Ett objekt kan till exempel innehålla en stor, komplex datastruktur och skicka innehållet i den här datastrukturen till ett annat objekt. Den exakta layouten för den här datastrukturen kan vara meningslös för det mottagande programmet. Strukturen kan också innehålla datatyper som MIDL-kompilatorn inte känner igen och inte kan generera kod för marskalkning och omarshaling.

Klientprogram kan dela samma gränssnitt men köras på olika plattformar. var och en av dem kan behöva sin egen uppsättning av marskalkningsrutiner. Slutligen kanske enskilda klienter inte alltid behöver samma uppsättning funktioner. Det är ineffektivt att generera stub-kod för funktioner som aldrig kommer att implementeras i ett visst klientprogram.

Genom att definiera dessa lokala aspekter av gränssnittet i en programkonfigurationsfil (ACF) kan du separera skillnaderna mellan klientgränssnitten från deras nätverksrepresentation, låta servern skicka och ta emot data i ett konsekvent format och göra din stub-kod mer kompakt och effektiv.

Strukturen och syntaxen för en ACF-gränssnittsdefinition är identiska med IDL-definitionen:

[ interface-attribute-list] interface interface-name {. . .}

Som standard måste ACF-gränssnittets namn matcha dess namn i IDL-definitionen. Men när du använder MIDL-kompilatoralternativet/acf- för att uttryckligen ange ett ACF-filnamn behöver gränssnittsnamnen inte matcha. Med den här funktionen kan flera gränssnitt dela en enda ACF-specifikation.