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


Текст интерфейса IDL

Тело интерфейса IDL содержит типы данных, используемые в удаленных вызовах процедур, и прототипы функций для удаленных процедур. Тело интерфейса также может содержать импорт, прагмы, объявления констант и объявления типов. В режиме Microsoft-extensions компилятор MIDL также допускает неявные объявления в виде определений переменных.

В следующем примере показан IDL-файл, содержащий определение интерфейса. Текст определения интерфейса, находящийся между фигурными скобками, содержит определение константы (BUFSIZE), типа (PCONTEXT_HANDLE_TYPE) и некоторые удаленные процедуры (RemoteOpen, RemoteRead, RemoteClose и Shutdown).

[ 
  uuid (ba209999-0c6c-11d2-97cf-00c04f8eea45), 
  version(1.0), 
  pointer_default(unique) 
] 
interface cxhndl 
{ 
 
  const short BUFSIZE = 1024;  
 
  typedef [context_handle] void *PCONTEXT_HANDLE_TYPE; 
 
  short RemoteOpen( 
      [out] PCONTEXT_HANDLE_TYPE *pphContext, 
      [in, string] unsigned char *pszFile 
  ); 
 
   short RemoteRead( 
      [in]  PCONTEXT_HANDLE_TYPE phContext, 
      [out] unsigned char achBuf[BUFSIZE], 
      [out] short *pcbBuf 
  ); 
 
  short RemoteClose( [in, out] PCONTEXT_HANDLE_TYPE *pphContext ); 
 
  void Shutdown(void); 
 
}

Дополнительные сведения см. в справочнике по языку MIDL.