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.

67 lines
1.9 KiB

  1. /*===================================================================
  2. Microsoft IIS
  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. class CFTMImplementation : public IMarshal
  14. {
  15. public:
  16. STDMETHODIMP GetUnmarshalClass(
  17. /* [in] */ REFIID riid,
  18. /* [unique][in] */ void __RPC_FAR *pv,
  19. /* [in] */ DWORD dwDestContext,
  20. /* [unique][in] */ void __RPC_FAR *pvDestContext,
  21. /* [in] */ DWORD mshlflags,
  22. /* [out] */ CLSID __RPC_FAR *pCid);
  23. STDMETHODIMP GetMarshalSizeMax(
  24. /* [in] */ REFIID riid,
  25. /* [unique][in] */ void __RPC_FAR *pv,
  26. /* [in] */ DWORD dwDestContext,
  27. /* [unique][in] */ void __RPC_FAR *pvDestContext,
  28. /* [in] */ DWORD mshlflags,
  29. /* [out] */ DWORD __RPC_FAR *pSize);
  30. STDMETHODIMP MarshalInterface(
  31. /* [unique][in] */ IStream __RPC_FAR *pStm,
  32. /* [in] */ REFIID riid,
  33. /* [unique][in] */ void __RPC_FAR *pv,
  34. /* [in] */ DWORD dwDestContext,
  35. /* [unique][in] */ void __RPC_FAR *pvDestContext,
  36. /* [in] */ DWORD mshlflags);
  37. STDMETHODIMP UnmarshalInterface(
  38. /* [unique][in] */ IStream __RPC_FAR *pStm,
  39. /* [in] */ REFIID riid,
  40. /* [out] */ void __RPC_FAR *__RPC_FAR *ppv);
  41. STDMETHODIMP ReleaseMarshalData(
  42. /* [unique][in] */ IStream __RPC_FAR *pStm);
  43. STDMETHODIMP DisconnectObject(
  44. /* [in] */ DWORD dwReserved);
  45. static HRESULT Init();
  46. static HRESULT UnInit();
  47. private:
  48. // Global FTM pointer
  49. static IMarshal * m_pFTM;
  50. };
  51. #endif _FTM_GLOBAL_H