83 lines
1.8 KiB
C++
83 lines
1.8 KiB
C++
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (c) 1999-2000 Microsoft Corporation
|
|
//
|
|
// Module Name:
|
|
// ProvFactory.h
|
|
//
|
|
// Implementation File:
|
|
// ProvFactory.cpp
|
|
//
|
|
// Description:
|
|
// Definition of the CProvFactory class.
|
|
//
|
|
// Author:
|
|
// Henry Wang (HenryWa) 24-AUG-1999
|
|
//
|
|
// Notes:
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#pragma once
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
// Include Files
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "InstanceProv.h"
|
|
|
|
typedef HRESULT ( * PFNCREATEINSTANCE )(
|
|
IUnknown *,
|
|
VOID **
|
|
);
|
|
|
|
struct FactoryData
|
|
{
|
|
const CLSID * m_pCLSID;
|
|
PFNCREATEINSTANCE pFnCreateInstance;
|
|
LPCWSTR m_pwszRegistryName;
|
|
|
|
}; //*** struct FactoryData
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//++
|
|
//
|
|
// class CProvFactory
|
|
//
|
|
// Description:
|
|
// Handle class creation
|
|
//
|
|
//--
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
class CProvFactory
|
|
: public IClassFactory
|
|
{
|
|
protected:
|
|
ULONG m_cRef;
|
|
FactoryData * m_pFactoryData;
|
|
|
|
public:
|
|
CProvFactory( FactoryData * pFactoryDataIn )
|
|
: m_pFactoryData( pFactoryDataIn )
|
|
, m_cRef( 0 )
|
|
{
|
|
}
|
|
|
|
virtual ~CProvFactory( void )
|
|
{
|
|
}
|
|
|
|
STDMETHODIMP QueryInterface( REFIID riidIn, PPVOID ppvOut );
|
|
STDMETHODIMP_( ULONG ) AddRef( void );
|
|
STDMETHODIMP_( ULONG ) Release( void );
|
|
|
|
//IClassFactory members
|
|
STDMETHODIMP CreateInstance(
|
|
LPUNKNOWN pUnknownOuterIn,
|
|
REFIID riidIn,
|
|
PPVOID ppvObjOut
|
|
);
|
|
STDMETHODIMP LockServer( BOOL fLockIn );
|
|
|
|
}; //*** class CProvFactory
|