Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
1.9 KiB

  1. /*===================================================================
  2. Microsoft ASP
  3. Microsoft Confidential.
  4. Copyright 1996, 1997, 1998 Microsoft Corporation. All Rights Reserved.
  5. Component: Free Threaded Marshaller Base Class
  6. File: ftm.h
  7. Owner: Lei Jin
  8. This is the free threaded marshaller base class header file.
  9. ===================================================================*/
  10. #ifndef _FTM_GLOBAL_H
  11. #define _FTM_GLOBAL_H
  12. #include <objbase.h>
  13. #include "debug.h"
  14. #include "util.h"
  15. class CFTMImplementation : public IMarshal
  16. {
  17. public:
  18. STDMETHODIMP GetUnmarshalClass(
  19. /* [in] */ REFIID riid,
  20. /* [unique][in] */ void __RPC_FAR *pv,
  21. /* [in] */ DWORD dwDestContext,
  22. /* [unique][in] */ void __RPC_FAR *pvDestContext,
  23. /* [in] */ DWORD mshlflags,
  24. /* [out] */ CLSID __RPC_FAR *pCid);
  25. STDMETHODIMP GetMarshalSizeMax(
  26. /* [in] */ REFIID riid,
  27. /* [unique][in] */ void __RPC_FAR *pv,
  28. /* [in] */ DWORD dwDestContext,
  29. /* [unique][in] */ void __RPC_FAR *pvDestContext,
  30. /* [in] */ DWORD mshlflags,
  31. /* [out] */ DWORD __RPC_FAR *pSize);
  32. STDMETHODIMP MarshalInterface(
  33. /* [unique][in] */ IStream __RPC_FAR *pStm,
  34. /* [in] */ REFIID riid,
  35. /* [unique][in] */ void __RPC_FAR *pv,
  36. /* [in] */ DWORD dwDestContext,
  37. /* [unique][in] */ void __RPC_FAR *pvDestContext,
  38. /* [in] */ DWORD mshlflags);
  39. STDMETHODIMP UnmarshalInterface(
  40. /* [unique][in] */ IStream __RPC_FAR *pStm,
  41. /* [in] */ REFIID riid,
  42. /* [out] */ void __RPC_FAR *__RPC_FAR *ppv);
  43. STDMETHODIMP ReleaseMarshalData(
  44. /* [unique][in] */ IStream __RPC_FAR *pStm);
  45. STDMETHODIMP DisconnectObject(
  46. /* [in] */ DWORD dwReserved);
  47. static HRESULT Init();
  48. static HRESULT UnInit();
  49. private:
  50. // Global FTM pointer
  51. static IMarshal * m_pUnkFTM;
  52. };
  53. #endif _FTM_GLOBAL_H