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.

85 lines
1.8 KiB

  1. /*++
  2. Copyright (c) 1997 Microsoft Corporation
  3. Module Name :
  4. wamccf.hxx
  5. Abstract:
  6. Header file for the WAM Custom Class Factory
  7. Author:
  8. Dmitry Robsman ( dmitryr ) 07-Apr-1997
  9. Environment:
  10. User Mode - Win32
  11. Project:
  12. Wam DLL
  13. --*/
  14. # ifndef _WAMCCF_HXX_
  15. # define _WAMCCF_HXX_
  16. /************************************************************
  17. * Include Headers
  18. ************************************************************/
  19. # include "iwam.h"
  20. /************************************************************
  21. * Type Definitions
  22. ************************************************************/
  23. /*++
  24. class WAM_CCF
  25. Class definition for the WAM Custom Class Factory object.
  26. --*/
  27. class WAM_CCF : public IClassFactory
  28. {
  29. public:
  30. WAM_CCF();
  31. ~WAM_CCF();
  32. //IUnknown members
  33. STDMETHODIMP QueryInterface(REFIID, LPVOID *);
  34. STDMETHODIMP_(ULONG) AddRef();
  35. STDMETHODIMP_(ULONG) Release();
  36. //IClassFactory members
  37. STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID *);
  38. STDMETHODIMP LockServer(BOOL);
  39. private:
  40. ULONG m_cRef;
  41. IClassFactory *m_pcfAtl; // original ATL class factory for WAM
  42. };
  43. /*++
  44. class WAM_CCF_MODULE
  45. Class definition for the WAM Custom Class Factory Module
  46. object. This object is similar to CComModule -- it covers
  47. creation of the class factory.
  48. --*/
  49. class WAM_CCF_MODULE
  50. {
  51. public:
  52. WAM_CCF_MODULE();
  53. ~WAM_CCF_MODULE();
  54. HRESULT Init();
  55. HRESULT Term();
  56. HRESULT GetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv);
  57. private:
  58. WAM_CCF *m_pCF;
  59. };
  60. # endif // _WAMCCF_HXX_
  61. /************************ End of File ***********************/