Файл конфигурации приложения (ACF)
Могут возникнуть аспекты распределенного приложения, которые влияют на один компонент, но не имеют ничего общего с другим. Например, объект может содержать большую сложную структуру данных и передавать содержимое этой структуры данных другому объекту. Точный макет этой структуры данных может быть бессмысленным для принимающего приложения. Кроме того, структура может содержать типы данных, которые компилятор MIDL не распознает и не может генерировать маршалинг и несовпадающий код.
Клиентские приложения могут совместно использовать один и тот же интерфейс, но работать на разных платформах; Каждый из них может нуждаться в собственном наборе процедур маршалинга. Наконец, отдельные клиенты могут не всегда нуждаться в одном наборе функций. Неэффективно создавать код заглушки для функций, которые никогда не будут реализованы в определенном клиентском приложении.
Определив эти локальные аспекты интерфейса в файле конфигурации приложения (ACF), вы можете разделить различия между клиентскими интерфейсами от их сетевого представления, позволяя серверу отправлять и получать данные в согласованном формате и сделать код заглушки более компактным и эффективным.
Структура и синтаксис определения интерфейса ACF идентичны определению IDL:
[ interface-attribute-list] interface interface-name {. . .}
По умолчанию имя интерфейса ACF должно соответствовать его имени в определении IDL. Однако при использовании параметра компилятора MIDL / acf для явного указания имени файла ACF имена интерфейсов не должны совпадать. Эта функция позволяет нескольким интерфейсам совместно использовать одну спецификацию ACF.