windows-nt/Source/XPSP1/NT/shell/ext/msident/factory.h

36 lines
819 B
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#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