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.

80 lines
1.9 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1999-2000 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // ProvFactory.h
  7. //
  8. // Implementation File:
  9. // ProvFactory.cpp
  10. //
  11. // Description:
  12. // Definition of the CProvFactory class.
  13. //
  14. // Author:
  15. // Henry Wang (HenryWa) 24-AUG-1999
  16. //
  17. // Notes:
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. #pragma once
  21. //////////////////////////////////////////////////////////////////////////////
  22. // Include Files
  23. //////////////////////////////////////////////////////////////////////////////
  24. typedef HRESULT ( * PFNCREATEINSTANCE )(
  25. IUnknown *,
  26. VOID **
  27. );
  28. struct FactoryData
  29. {
  30. const CLSID * m_pCLSID;
  31. PFNCREATEINSTANCE pFnCreateInstance;
  32. LPCWSTR m_pwszRegistryName;
  33. }; //*** struct FactoryData
  34. /////////////////////////////////////////////////////////////////////////////
  35. //++
  36. //
  37. // class CProvFactory
  38. //
  39. // Description:
  40. // Handle class creation
  41. //
  42. //--
  43. /////////////////////////////////////////////////////////////////////////////
  44. class CProvFactory
  45. : public IClassFactory
  46. {
  47. protected:
  48. ULONG m_cRef;
  49. FactoryData * m_pFactoryData;
  50. public:
  51. CProvFactory( FactoryData * pFactoryDataIn )
  52. : m_pFactoryData( pFactoryDataIn )
  53. , m_cRef( 0 )
  54. {
  55. }
  56. virtual ~CProvFactory( void )
  57. {
  58. }
  59. STDMETHODIMP QueryInterface( REFIID riidIn, PPVOID ppvOut );
  60. STDMETHODIMP_( ULONG ) AddRef( void );
  61. STDMETHODIMP_( ULONG ) Release( void );
  62. //IClassFactory members
  63. STDMETHODIMP CreateInstance(
  64. LPUNKNOWN pUnknownOuterIn,
  65. REFIID riidIn,
  66. PPVOID ppvObjOut
  67. );
  68. STDMETHODIMP LockServer( BOOL fLockIn );
  69. }; //*** class CProvFactory