Udostępnij za pośrednictwem


Przeprowadzanie marshalingu typów danych OLE

Aby ułatwić korzystanie z niektórych typów danych automatyzacji i OLE, a także niektórych uchwytów systemowych często używanych w modelu COM, definicje typów dla tych typów danych i ich powiązane funkcje pomocnicze są dostępne poprzez zaimportowanie plików IDL systemu Windows i połączenie z plikami OLE i Automation DLL. Te pliki są automatycznie instalowane w systemie.

  • Aby użyć typu danych BSTR w zdalnych wywołaniach procedur, zaimportuj plik wtypes.idl do pliku definicji interfejsu (IDL) i połącz go z oleaut32.lib podczas kompilowania aplikacji rozproszonej. Dzięki temu wycinki będą korzystać z gotowych funkcji pomocnika BSTR_UserSize, BSTR_UserMarshal, BSTR_UserUnmarshali BSTR_UserFree.
  • Aby użyć innych typów danych Automation, takich jak VARIANT i SAFEARRAY, lub typów używających tych typów (na przykład DISPPARAMS i EXCEPINFO), zaimportuj plik objidl.idl do pliku IDL i połącz się z oleaut32.lib podczas kompilacji. Umożliwi to korzystanie z właściwych procedur pomocniczych.
  • Aby użyć typów danych OLE (takich jak CLIPFORMAT, SNB, STGMEDIUM, ASYNC_STGMEDIUM) lub dojść systemowych (takich jak HMETAFILE_PICT, HENHMETAFILE, HMETAFILE, HBITMAP, HPALETTE i HGLOBAL), zaimportuj plik objidl.idl do pliku definicji interfejsu i połącz się z ole32.lib w czasie kompilacji.
  • Następujące uchwyty OLE są również zdefiniowane z atrybutem [wire_marshal], ale tylko jako uchwyty w obrębie komputera, ponieważ nie mogą być używane w zdalnych wywołaniach procedur na inne komputery obecnie: HWND, HMENU, HACCEL, HDC, HFONT, HICON, HBRUSH. Zaimportuj plik objidl.idl do swojego pliku IDL i połącz z ole32.lib podczas kompilacji, aby użyć tych uchwytów w komunikacji międzyprocesowej na jednym komputerze.

Aby uzyskać więcej informacji, zobacz Wire_marshal Attribute, Type_UserSize Function, Type_UserMarshal Function, funkcji type_UserUnmarshal , funkcji type_UserFreei określania wartości docelowych dla określonych 32-bitowych lub 64-bitowych platform.