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.

60 lines
2.9 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. class CClassFactory; // Forward
  9. // --------------------------------------------------------------------------------
  10. // Object Flags
  11. // --------------------------------------------------------------------------------
  12. #define OIF_ALLOWAGGREGATION 0x0001
  13. // --------------------------------------------------------------------------------
  14. // Object Creation Prototypes
  15. // --------------------------------------------------------------------------------
  16. typedef HRESULT (APIENTRY *PFCREATEINSTANCE)(IUnknown *pUnkOuter, IUnknown **ppUnknown);
  17. #define CreateObjectInstance (*m_pfCreateInstance)
  18. // --------------------------------------------------------------------------------
  19. // InetComm ClassFactory
  20. // --------------------------------------------------------------------------------
  21. class CClassFactory : public IClassFactory
  22. {
  23. public:
  24. CLSID const *m_pclsid;
  25. DWORD m_dwFlags;
  26. PFCREATEINSTANCE m_pfCreateInstance;
  27. // Construction
  28. CClassFactory(CLSID const *pclsid, DWORD dwFlags, PFCREATEINSTANCE pfCreateInstance);
  29. // IUnknown members
  30. STDMETHODIMP QueryInterface(REFIID, LPVOID *);
  31. STDMETHODIMP_(ULONG) AddRef(void);
  32. STDMETHODIMP_(ULONG) Release(void);
  33. // IClassFactory members
  34. STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID *);
  35. STDMETHODIMP LockServer(BOOL);
  36. };
  37. // --------------------------------------------------------------------------------
  38. // Object Creators
  39. // --------------------------------------------------------------------------------
  40. HRESULT APIENTRY IImnAccountManager_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  41. HRESULT APIENTRY IICWApprentice_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  42. HRESULT APIENTRY CEudoraAcctImport_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  43. HRESULT APIENTRY CNscpAcctImport_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  44. HRESULT APIENTRY CCommAcctImport_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  45. HRESULT APIENTRY CMAPIAcctImport_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  46. HRESULT APIENTRY CCommNewsAcctImport_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  47. HRESULT APIENTRY CNavNewsAcctImport_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  48. HRESULT APIENTRY CCAgentAcctImport_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  49. HRESULT APIENTRY CNExpressAcctImport_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  50. HRESULT APIENTRY CHotMailWizard_CreateInstance(IUnknown* pUnkOuter, IUnknown** ppUnknown);
  51. #endif // __FACTORY_H