Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

35 lines
819 B

#ifndef _factory_h
#define _factory_h
typedef HRESULT (* CREATEPROC)(IUnknown *, IUnknown **);
#define FD_ALLOWAGGREGATION 0x00000001
struct CFactoryData
{
CLSID const *m_pClsid;
CREATEPROC m_pCreateProc;
DWORD m_dwFlags;
};
class CClassFactory : public IClassFactory
{
public:
CClassFactory(const CFactoryData *pFactoryData);
~CClassFactory();
// IUnknown members
STDMETHODIMP QueryInterface(REFIID riid, void **ppv);
STDMETHODIMP_(ULONG) AddRef();
STDMETHODIMP_(ULONG) Release();
// IClassFactory members
STDMETHODIMP CreateInstance(LPUNKNOWN pUnkOuter, REFIID riid, void **ppvObj);
STDMETHODIMP LockServer(BOOL fLock);
private:
ULONG m_cRef;
const CFactoryData *m_pFactoryData;
};
#endif // _factory_h