Delen via


Marshaling OLE-gegevenstypen

Om het gemakkelijker te maken om bepaalde Automation- en OLE-gegevenstypen te gebruiken, evenals sommige systeemgrepen die vaak worden gebruikt in COM, zijn typedefs voor deze gegevenstypen en de bijbehorende helperfuncties beschikbaar door Windows IDL-bestanden te importeren en te koppelen aan de OLE- en Automation DLL-bestanden. Deze bestanden worden automatisch op uw systeem geïnstalleerd.

  • Als u het BSTR- gegevenstype in externe procedure-aanroepen wilt gebruiken, importeert u het bestand wtypes.idl in uw IDL-bestand (Interface Definition) en koppelt u aan Oleaut32.lib bij het bouwen van uw gedistribueerde toepassing. Hierdoor kunnen uw stubs gebruikmaken van de klaargemaakte helperfuncties BSTR_UserSize, BSTR_UserMarshal, BSTR_UserUnmarshalen BSTR_UserFree.
  • Als u andere Automation-gegevenstypen wilt gebruiken, zoals VARIANT en SAFEARRAY, of typen die deze typen gebruiken (bijvoorbeeld DISPPARAMS en EXCEPINFO), importeert u het objidl.idl-bestand in uw IDL-bestand en koppelt u aan het oleaut32.lib tijdens de build. Hierdoor kunt u de juiste helperroutines gebruiken.
  • Als u OLE-gegevenstypen (zoals CLIPFORMAT, SNB, STGMEDIUM, ASYNC_STGMEDIUM) of systeemgrepen wilt gebruiken (zoals HMETAFILE_PICT, HENHMETAFILE, HMETAFILE, HBITMAP, HPALETTE en HGLOBAL), importeert u het bestand objidl.idl in uw interfacedefinitiebestand en koppelt u het bestand aan ole32.lib tijdens de build.
  • De volgende OLE-handles worden ook gedefinieerd met het [wire_marshal] kenmerk, maar alleen als handles binnen een computer, omdat ze op dit moment niet kunnen worden gebruikt in externe procedure-aanroepen naar andere computers: HWND, HMENU, HACCEL, HDC, HFONT, HICON, HBRUSH. Importeer het objidl.idl-bestand in uw IDL-bestand en koppel aan ole32.lib tijdens de build om deze ingangen te gebruiken in communicatie tussen processen op één computer.

Zie Het wire_marshal kenmerk, de type_UserSize functie, de type_UserMarshal functie, de type_UserUnmarshal functie, de type_UserFree functieen met doelstubs voor specifieke 32-bits of 64-bits platforms.