Распределенные приложения: контроллеры автоматизации. Часть 2. Фертиков В.В. - 19 стр.

UptoLike

Составители: 

19
interface _Application: IDispatch
{ . . .
[propget, id(0x00000006), helpcontext(0x09700006)]
HRESULT _stdcall Documents([out,retval] Documents **prop );
[propget, id(0x00000002), helpcontext(0x09700002)]
HRESULT _stdcall ActiveDocument(
[out,retval]Document **prop );
. . .
[id(0x00000451), helpcontext(0x09700451)]
HRESULT _stdcall Quit([in, optional] VARIANT * SaveChanges,
[in, optional] VARIANT * OriginalFormat,
[in, optional] VARIANT * RouteDocument );
[id(0x00000168), helpcontext(0x09700168)]
HRESULT _stdcall Move([in] long Left, [in] long Top );
[id(0x00000169), helpcontext(0x09700169)]
HRESULT _stdcall Resize([in]long Width, [in]long Height );
. . .
};
Рис. 4. Библиотека типов Microsoft Word в редакторе
Программист, предполагающий использовать данный интерфейс, должен
отметить следующее. Во-первых, это дуальный (dual) интерфейс, доступ к ко-
торому возможен двумя способами: как к диспинтерфейсу через IDispatch и
как к обычному интерфейсу с виртуальной таблицей . Далее интерфейс со-
вместим с OLE-автоматизацией (oleautomation), что позволяет при вызове
                               19
  interface _Application: IDispatch
{     . . .
   [propget, id(0x00000006), helpcontext(0x09700006)]
   HRESULT _stdcall Documents([out,retval] Documents **prop );
   [propget, id(0x00000002), helpcontext(0x09700002)]
   HRESULT _stdcall ActiveDocument(
     [out,retval]Document **prop );
      . . .
   [id(0x00000451), helpcontext(0x09700451)]
   HRESULT _stdcall Quit([in, optional] VARIANT * SaveChanges,
     [in, optional] VARIANT * OriginalFormat,
     [in, optional] VARIANT * RouteDocument );
   [id(0x00000168), helpcontext(0x09700168)]
   HRESULT _stdcall Move([in] long Left, [in] long Top );
   [id(0x00000169), helpcontext(0x09700169)]
   HRESULT _stdcall Resize([in]long Width, [in]long Height );
      . . .
};




            Рис. 4. Библиотека типов Microsoft Word в редакторе

     Программист, предполагающий использовать данный интерфейс, должен
отметить следующее. Во-первых, это дуальный (dual) интерфейс, доступ к ко-
торому возможен двумя способами: как к диспинтерфейсу через IDispatch и
как к обычному интерфейсу с виртуальной таблицей. Далее – интерфейс со-
вместим с OLE-автоматизацией (oleautomation ), что позволяет при вызове