Archivo de configuración de la aplicación (ACF)

Puede haber aspectos de la aplicación distribuida que afecten a un componente, pero que no tengan nada que ver con otro. Por ejemplo, un objeto puede contener una estructura de datos grande y compleja y pasar el contenido de esta estructura de datos a otro objeto. El diseño exacto de esta estructura de datos puede no tener sentido para la aplicación receptora. Además, la estructura puede contener tipos de datos que el compilador MIDL no reconoce y no puede generar serialización y desmarcación de código.

Las aplicaciones cliente pueden compartir la misma interfaz, pero ejecutarse en distintas plataformas; pueden necesitar su propio conjunto de rutinas de serialización. Por último, es posible que los clientes individuales no siempre necesiten el mismo conjunto de funciones. Es ineficaz generar código auxiliar para las funciones que nunca se implementarán en una aplicación cliente determinada.

Al definir estos aspectos locales de la interfaz en un archivo de configuración de aplicación (ACF), puede separar las diferencias entre las interfaces de cliente de su representación de red, lo que permite al servidor enviar y recibir datos en un formato coherente y hacer que el código auxiliar sea más compacto y eficaz.

La estructura y la sintaxis de una definición de interfaz ACF son idénticas a la definición de IDL:

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

De forma predeterminada, el nombre de la interfaz ACF debe coincidir con su nombre en la definición de IDL. Sin embargo, cuando se usa la opción del compilador MIDL / acf para especificar explícitamente un nombre de archivo ACF, los nombres de interfaz no tienen que coincidir. Esta característica permite que varias interfaces compartan una única especificación de ACF.