AcF (Arquivo de Configuração de Aplicativo)
Pode haver aspectos do aplicativo distribuído que afetam um componente, mas não têm nada a ver com outro. Por exemplo, um objeto pode conter uma estrutura de dados grande e complexa e passar o conteúdo dessa estrutura de dados para outro objeto. O layout exato dessa estrutura de dados pode não ter sentido para o aplicativo receptor. Além disso, a estrutura pode conter tipos de dados que o compilador MIDL não reconhece e não pode gerar código de marshaling e unmarshaling.
Os aplicativos cliente podem compartilhar a mesma interface, mas são executados em plataformas diferentes; cada um deles pode precisar de seu próprio conjunto de rotinas de marshaling. Por fim, os clientes individuais nem sempre precisam do mesmo conjunto de funções. É ineficiente gerar código stub para funções que nunca serão implementadas em um aplicativo cliente específico.
Ao definir esses aspectos locais da interface em um arquivo de configuração de aplicativo (ACF), você pode separar as diferenças entre as interfaces de cliente de sua representação de rede, permitindo que o servidor envie e receba dados em um formato consistente e tornando seu código stub mais compacto e eficiente.
A estrutura e a sintaxe de uma definição de interface ACF são idênticas à definição de IDL:
[ interface-attribute-list] interface interface-name {. . .}
Por padrão, o nome da interface ACF deve corresponder ao nome na definição de IDL. No entanto, quando você usa a opção/ acf do compilador MIDL para especificar explicitamente um nome de arquivo ACF, os nomes de interface não precisam corresponder. Esse recurso permite que várias interfaces compartilhem uma única especificação do ACF.