Автоматические дескрипторы привязки
Автоматические дескрипторы привязки полезны, если приложению не требуется конкретный сервер, и если он не должен поддерживать сведения о состоянии между клиентом и сервером. При использовании автоматического дескриптора привязки вам не нужно писать код клиентского приложения для работы с привязкой и дескрипторами— просто укажите использование дескриптора автоматической привязки в файле конфигурации приложения (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, и должен вызывать несколько функций во время выполнения, чтобы установить дескриптор привязки.