Condividi tramite


Marshalling dei tipi di dati OLE

Per semplificare l'uso di determinati tipi di dati di automazione e OLE, nonché alcuni handle di sistema usati di frequente in COM, typedef per questi tipi di dati e le relative funzioni helper sono disponibili importando i file IDL di Windows e collegando i file DLL OLE e automation. Questi file vengono installati automaticamente nel sistema.

  • Per usare il tipo di dati BSTR nelle chiamate remote procedure, importare il file wtypes.idl nel file di definizione dell'interfaccia (IDL) e collegarsi a Oleaut32.lib durante la compilazione dell'applicazione distribuita. In questo modo gli stub useranno le funzioni helper pronte BSTR_UserSize, BSTR_UserMarshal, BSTR_UserUnmarshal e BSTR_UserFree.
  • Per usare altri tipi di dati di Automazione, ad esempio VARIANT e SAFEARRAY, o tipi che usano tali tipi (ad esempio , DISPPARAMS e EXCEPINFO), importare il file objidl.idl nel file IDL e collegarsi al file oleaut32.lib in fase di compilazione. In questo modo sarà possibile usare le routine helper appropriate.
  • Per usare tipi di dati OLE (ad esempio CLIPFORMAT, SNB, STGMEDIUM, ASYNC_STGMEDIUM) o handle di sistema (ad esempio HMETAFILE_PICT, HENHMETAFILE, HMETAFILE, HBITMAP, HPALETTE e HGLOBAL), importare il file objidl.idl nel file di definizione dell'interfaccia e collegarsi al file ole32.lib in fase di compilazione.
  • Gli handle OLE seguenti sono definiti anche con l'attributo [wire_marshal] , ma solo come handle all'interno di un computer perché non possono essere usati nelle chiamate di routine remota ad altri computer: HWND, HMENU, HACCEL, HDC, HFONT, HICON, HBRUSH. Importare il file objidl.idl nel file IDL e collegarsi a ole32.lib in fase di compilazione per usare questi handle nella comunicazione interprocesso in un singolo computer.

Per altre informazioni, vedere L'attributo wire_marshal, la funzione type_UserSize, la funzione type_UserMarshal, la funzione type_UserUnmarshal, la funzione type_UserFree e la destinazione di stub per piattaforme specifiche a 32 bit o a 64 bit.