Anwendungskonfigurationsdatei (Application Configuration File, ACF)
Es kann Aspekte Ihrer verteilten Anwendung geben, die sich auf eine Komponente auswirken, aber nichts mit einer anderen zu tun haben. Ein Objekt kann z. B. eine große, komplexe Datenstruktur enthalten und den Inhalt dieser Datenstruktur an ein anderes Objekt übergeben. Das genaue Layout dieser Datenstruktur kann für die empfangende Anwendung bedeutungslos sein. Außerdem kann die Struktur Datentypen enthalten, die der MIDL-Compiler nicht erkennt und keinen Marshaling- und Unmarshaling-Code generieren kann.
Clientanwendungen können dieselbe Schnittstelle gemeinsam nutzen, aber auf verschiedenen Plattformen ausgeführt werden; sie benötigen möglicherweise ihre eigenen Marshaling-Routinen. Schließlich benötigen einzelne Clients möglicherweise nicht immer denselben Satz von Funktionen. Es ist ineffizient, Stubcode für Funktionen zu generieren, die nie in einer bestimmten Clientanwendung implementiert werden.
Indem Sie diese lokalen Aspekte der Schnittstelle in einer Anwendungskonfigurationsdatei (Application Configuration File, ACF) definieren, können Sie die Unterschiede zwischen den Clientschnittstellen von der Netzwerkdarstellung trennen, sodass der Server Daten in einem konsistenten Format senden und empfangen kann und Ihren Stubcode kompakter und effizienter macht.
Die Struktur und Syntax einer ACF-Schnittstellendefinition sind identisch mit der IDL-Definition:
[ interface-attribute-list] interface interface-name {. . .}
Standardmäßig muss der Name der ACF-Schnittstelle mit seinem Namen in der IDL-Definition übereinstimmen. Wenn Sie jedoch die MIDL-Compileroption /acf verwenden, um explizit einen ACF-Dateinamen anzugeben, müssen die Schnittstellennamen nicht übereinstimmen. Mit diesem Feature können mehrere Schnittstellen eine einzelne ACF-Spezifikation gemeinsam nutzen.