Compartilhar via


Marshaling de tipos de dados OLE

Para facilitar o uso de determinados tipos de dados de Automação e OLE, bem como alguns identificadores de sistema frequentemente usados em COM, typedefs para esses tipos de dados e suas funções auxiliares relacionadas estão disponíveis importando arquivos IDL do Windows e vinculando-se aos arquivos DLL de Automação e OLE. Esses arquivos são instalados automaticamente em seu sistema.

  • Para usar o tipo de dados BSTR em chamadas de procedimento remoto, importe o arquivo wtypes.idl para o arquivo de definição de interface (IDL) e vincule-o ao Oleaut32.lib ao criar seu aplicativo distribuído. Isso permitirá que seus stubs usem as funções auxiliares prontas BSTR_UserSize, BSTR_UserMarshal, BSTR_UserUnmarshal e BSTR_UserFree.
  • Para usar outros tipos de dados de Automação, como VARIANT e SAFEARRAY, ou tipos que usam esses tipos (por exemplo, DISPPARAMS e EXCEPINFO), importe o arquivo objidl.idl para o arquivo IDL e vincule ao oleaut32.lib no momento da compilação. Isso permitirá que você use as rotinas auxiliares apropriadas.
  • Para usar tipos de dados OLE (como CLIPFORMAT, SNB, STGMEDIUM, ASYNC_STGMEDIUM) ou identificadores do sistema (como HMETAFILE_PICT, HENHMETAFILE, HMETAFILE, HBITMAP, HPALETTE e HGLOBAL), importe o arquivo objidl.idl para o arquivo de definição de interface e vincule-o ao ole32.lib no momento da compilação.
  • Os seguintes identificadores OLE também são definidos com o atributo [wire_marshal] , mas somente como identificadores dentro de um computador, pois eles não podem ser usados em chamadas de procedimento remoto para outros computadores no momento: HWND, HMENU, HACCEL, HDC, HFONT, HICON, HBRUSH. Importe o arquivo objidl.idl para o arquivo IDL e vincule-o ao ole32.lib no momento da compilação para usar esses identificadores na comunicação entre processos em um único computador.

Para obter mais informações, consulte O atributo wire_marshal, a função type_UserSize, a função type_UserMarshal, a função type_UserUnmarshal, a função type_UserFree e Stubs de direcionamento para plataformas específicas de 32 bits ou 64 bits.