Определение интерфейса с помощью MIDL
Файлы MIDL – это обычные текстовые файлы, которые вы можете создавать и редактировать в любом текстовом редакторе. Если вы генерируете UUID для вашего интерфейса, то обычно вы сохраняете результат в виде шаблона MIDL.
Все интерфейсы в MIDL начинаются с заголовка, который содержит список атрибутов интерфейса, и имя интерфейса. Атрибуты заключены в квадратные скобки. После заголовка интерфейса следует тело определение интерфейса, которое заключено в фигурные скобки. Вот пример простого интерфейса:
[
uuid(ba209999-0c6c-11d2-97cf-00c04f8eea45),
version(1.0)
]
interface MyInterface
{
const unsigned short INT_ARRAY_LEN = 100;
void MyRemoteProc(
[in] int param1,
[out] int outArray[INT_ARRAY_LEN]
);
}
Типичными атрибутами интерфейса являются его UUID и номер версии интерфейса. Тело определения интерфейса должно содержать объявления всех процедур интерфейса. Оно также может содержать объявления типов данных и констант, требуемых интерфейсом.
Все параметры объявляемых процедур должны быть снабжены указателями направления передачи данных [in], [out] или [in,out] (данные передаются для удаленной процедуры, возвращаются удаленной процедурой, либо данный как передаются, так и возвращаются).