Прочитать на английском

Поделиться через


IDL-файл

IDL-файл состоит из одного или нескольких определений интерфейса, каждое из которых имеет заголовок и текст. Заголовок содержит сведения, применимые ко всему интерфейсу, например UUID. Эти сведения заключаются в квадратные скобки, за которыми следует интерфейс ключевое слово и имя интерфейса. Текст содержит определения типов данных в стиле C и прототипы функций, дополненные атрибутами, описывающими передачу данных по сети.

В этом примере заголовок интерфейса содержит только UUID и номер версии. Номер версии гарантирует, что при наличии нескольких версий интерфейса RPC будут подключены только совместимые версии клиента и сервера.

Текст интерфейса содержит прототип функции для HelloProc. В этом прототипе параметр функции pszString имеет атрибуты [in] и [string]. Атрибут [in] сообщает библиотеке времени выполнения, что параметр передается только от клиента на сервер. Атрибут [string] указывает, что заглушка должна рассматривать параметр как символьную строку В стиле C.

Клиентское приложение должно иметь возможность завершить работу серверного приложения, поэтому интерфейс содержит прототип для другой удаленной функции Shutdown , которая будет реализована далее в этом руководстве.

//file hello.idl
[
    uuid(7a98c250-6808-11cf-b73b-00aa00b677a7),
    version(1.0)
]
interface hello
{
    void HelloProc([in, string] unsigned char * pszString);
    void Shutdown(void);
}