Автоматические дескрипторы привязки
Автоматические дескрипторы привязки полезны, если приложению не требуется определенный сервер и когда ему не нужно хранить сведения о состоянии между клиентом и сервером. При использовании автоматического дескриптора привязки не требуется писать код клиентского приложения для работы с привязкой и дескрипторами. Просто укажите использование дескриптора автоматической привязки в файле конфигурации приложения (ACF). Затем заглушка определяет дескриптор и управляет привязкой.
Например, операцию метки времени можно реализовать с помощью автоматического дескриптора. Для клиентского приложения не имеет значения, какой сервер предоставляет ему метку времени, так как оно может принимать время с любого доступного сервера.
Примечание
Автоматические дескрипторы не поддерживаются для платформы Macintosh.
Вы указываете использование автоматических дескрипторов, включив атрибут [auto_handle] в ACF. В примере метки времени используется следующий ACF:
/* ACF file */
[
auto_handle
]
interface autoh
{
}
Если ACF не содержит никакого другого атрибута дескриптора, а удаленные процедуры не используют явные дескрипторы, компилятор MIDL по умолчанию использует автоматические дескрипторы. Он также использует автоматические дескрипторы по умолчанию, если ACF отсутствует.
Удаленные процедуры указываются в IDL-файле. Автоматический дескриптор не должен отображаться в качестве аргумента удаленной процедуры. Пример:
/* IDL file */
[
uuid (6B29FC40-CA47-1067-B31D-00DD010662DA),
version(1.0),
pointer_default(unique)
]
interface autoh
{
void GetTime([out] long * time);
void Shutdown(void);
}
Преимущество автоматического дескриптора заключается в том, что разработчику не нужно писать код для управления дескриптором; заглушки управляют привязкой автоматически. Это значительно отличается от примера Hello, World, где клиент управляет неявным примитивным дескриптором, определенным в ACF, и должен вызвать несколько функций времени выполнения, чтобы установить дескриптор привязки.