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.
 
 
 
 
 
 

102 lines
1.8 KiB

/*
* 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