Leaked source code of windows server 2003
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.

84 lines
4.6 KiB

  1. // --------------------------------------------------------------------------------
  2. // Factory.h
  3. // Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
  4. // Steven J. Bailey
  5. // --------------------------------------------------------------------------------
  6. #ifndef __FACTORY_H
  7. #define __FACTORY_H
  8. // --------------------------------------------------------------------------------
  9. // Forward Decls
  10. // --------------------------------------------------------------------------------
  11. class CClassFactory;
  12. // --------------------------------------------------------------------------------
  13. // Object Flags
  14. // --------------------------------------------------------------------------------
  15. #define OIF_ALLOWAGGREGATION 0x0001
  16. // --------------------------------------------------------------------------------
  17. // Object Creation Prototypes
  18. // --------------------------------------------------------------------------------
  19. typedef HRESULT (APIENTRY *PFCREATEINSTANCE)(IUnknown *pUnkOuter, IUnknown **ppUnknown);
  20. #define CreateObjectInstance (*m_pfCreateInstance)
  21. // --------------------------------------------------------------------------------
  22. // InetComm ClassFactory
  23. // --------------------------------------------------------------------------------
  24. class CClassFactory : public IClassFactory
  25. {
  26. public:
  27. // ----------------------------------------------------------------------------
  28. // Public Data
  29. // ----------------------------------------------------------------------------
  30. CLSID const *m_pclsid;
  31. DWORD m_dwFlags;
  32. PFCREATEINSTANCE m_pfCreateInstance;
  33. // ----------------------------------------------------------------------------
  34. // Construction
  35. // ----------------------------------------------------------------------------
  36. CClassFactory(CLSID const *pclsid, DWORD dwFlags, PFCREATEINSTANCE pfCreateInstance);
  37. // ----------------------------------------------------------------------------
  38. // IUnknown members
  39. // ----------------------------------------------------------------------------
  40. STDMETHODIMP QueryInterface(REFIID, LPVOID *);
  41. STDMETHODIMP_(ULONG) AddRef(void);
  42. STDMETHODIMP_(ULONG) Release(void);
  43. // ----------------------------------------------------------------------------
  44. // IClassFactory members
  45. // ----------------------------------------------------------------------------
  46. STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID *);
  47. STDMETHODIMP LockServer(BOOL);
  48. };
  49. // --------------------------------------------------------------------------------
  50. // Object Creators
  51. // --------------------------------------------------------------------------------
  52. HRESULT IVirtualStream_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  53. HRESULT WebBookContentBody_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  54. HRESULT WebBookContentTree_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  55. HRESULT IMimeAllocator_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  56. HRESULT IMimeSecurity_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  57. HRESULT IMimeInternational_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  58. HRESULT ISMTPTransport_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  59. HRESULT IPOP3Transport_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  60. HRESULT INNTPTransport_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  61. HRESULT IRASTransport_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  62. HRESULT IIMAPTransport_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  63. HRESULT IHTTPMailTransport_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  64. HRESULT IPropFindRequest_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  65. HRESULT IPropPatchRequest_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  66. HRESULT IRangeList_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  67. HRESULT IMimeMessageParts_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  68. HRESULT IMimeHeaderTable_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  69. HRESULT IMimePropertySchema_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  70. HRESULT IMimeBindHost_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  71. HRESULT IInternetMessageUrl_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  72. HRESULT IMimeHtmlProtocol_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  73. HRESULT MimeEdit_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  74. HRESULT IHashTable_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  75. #endif // __FACTORY_H