102 lines
1.8 KiB
C++
102 lines
1.8 KiB
C++
/*
|
||
* factory.hxx
|
||
*/
|
||
|
||
#ifndef _FACTORY_
|
||
#define _FACTORY_
|
||
|
||
//
|
||
// MyFactory base class.
|
||
//
|
||
class MyFactory : public IClassFactory
|
||
{
|
||
protected :
|
||
unsigned long Refs;
|
||
|
||
public:
|
||
MyFactory();
|
||
~MyFactory();
|
||
|
||
// IUnknown
|
||
virtual
|
||
HRESULT __stdcall QueryInterface(
|
||
REFIID iid,
|
||
void ** ppv );
|
||
virtual
|
||
ULONG __stdcall AddRef();
|
||
virtual
|
||
ULONG __stdcall Release();
|
||
|
||
// IClassFactory
|
||
virtual
|
||
HRESULT __stdcall CreateInstance(
|
||
IUnknown * pUnkOuter,
|
||
REFIID riid,
|
||
void ** ppv );
|
||
virtual
|
||
HRESULT __stdcall LockServer(
|
||
BOOL fLock );
|
||
};
|
||
|
||
//
|
||
// FactoryLocal class.
|
||
//
|
||
class FactoryLocal : public MyFactory
|
||
{
|
||
public:
|
||
FactoryLocal() {}
|
||
~FactoryLocal() {}
|
||
|
||
HRESULT __stdcall CreateInstance(
|
||
IUnknown * pUnkOuter,
|
||
REFIID riid,
|
||
void ** ppv );
|
||
};
|
||
|
||
//
|
||
// FactoryRemote class.
|
||
//
|
||
class FactoryRemote : public MyFactory
|
||
{
|
||
public:
|
||
FactoryRemote() {}
|
||
~FactoryRemote() {}
|
||
|
||
HRESULT __stdcall CreateInstance(
|
||
IUnknown * pUnkOuter,
|
||
REFIID riid,
|
||
void ** ppv );
|
||
};
|
||
|
||
//
|
||
// FactoryAtStorage class.
|
||
//
|
||
class FactoryAtStorage : public MyFactory
|
||
{
|
||
public:
|
||
FactoryAtStorage() {}
|
||
~FactoryAtStorage() {}
|
||
|
||
HRESULT __stdcall CreateInstance(
|
||
IUnknown * pUnkOuter,
|
||
REFIID riid,
|
||
void ** ppv );
|
||
};
|
||
|
||
//
|
||
// FactoryInproc class.
|
||
//
|
||
class FactoryInproc : public MyFactory
|
||
{
|
||
public:
|
||
FactoryInproc() {}
|
||
~FactoryInproc() {}
|
||
|
||
HRESULT __stdcall CreateInstance(
|
||
IUnknown * pUnkOuter,
|
||
REFIID riid,
|
||
void ** ppv );
|
||
};
|
||
|
||
#endif
|
||
|