Marshaling OLE Data Types

Pour faciliter l’utilisation de certains types de données Automation et OLE, ainsi que de certains handles système fréquemment utilisés dans COM, les typesdefs pour ces types de données et leurs fonctions d’assistance associées sont disponibles en important des fichiers IDL Windows et en les liant aux fichiers DLL OLE et Automation. Ces fichiers sont automatiquement installés sur votre système.

  • Pour utiliser le type de données BSTR dans les appels de procédure distante, importez le fichier wtypes.idl dans votre fichier de définition d’interface (IDL) et créez un lien vers Oleaut32.lib lors de la création de votre application distribuée. Cela permet à vos stubs d’utiliser les fonctions d’assistance prêtes à l’emploi BSTR_UserSize, BSTR_UserMarshal, BSTR_UserUnmarshal et BSTR_UserFree.
  • Pour utiliser d’autres types de données Automation, tels que VARIANT et SAFEARRAY, ou des types qui utilisent ces types (par exemple, DISPPARAMS et EXCEPINFO), importez le fichier objidl.idl dans votre fichier IDL et créez un lien vers oleaut32.lib au moment de la génération. Cela vous permettra d’utiliser les routines d’assistance appropriées.
  • Pour utiliser des types de données OLE (tels que CLIPFORMAT, SNB, STGMEDIUM, ASYNC_STGMEDIUM) ou des handles système (tels que HMETAFILE_PICT, HENHMETAFILE, HMETAFILE, HBITMAP, HPALETTE et HGLOBAL), importez le fichier objidl.idl dans votre fichier de définition d’interface et créez un lien vers ole32.lib au moment de la génération.
  • Les handles OLE suivants sont également définis avec l’attribut [wire_marshal], mais uniquement en tant que handles au sein d’un ordinateur, car ils ne peuvent pas être utilisés dans les appels de procédure distante à d’autres ordinateurs à l’heure actuelle : HWND, HMENU, HACCEL, HDC, HFONT, HICON, HBRUSH. Importez le fichier objidl.idl dans votre fichier IDL et créez un lien vers ole32.lib au moment de la génération pour utiliser ces handles dans la communication interprocess sur un seul ordinateur.

Pour plus d’informations, consultez Attribut wire_marshal, Fonction type_UserSize, Fonction type_UserMarshal, Fonction type_UserUnmarshal, Fonction type_UserFree et Stubs de ciblage pour des plateformes 32 bits ou 64 bits spécifiques.