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
|