windows-nt/Source/XPSP1/NT/sdktools/mtscript/inc/factory.h
2020-09-26 16:20:57 +08:00

62 lines
1.8 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1995
//
// File: factory.h
//
// Contents: Definition of the standard class factory class
//
//----------------------------------------------------------------------------
//+---------------------------------------------------------------------------
//
// Class: CStdFactory (csf)
//
// Purpose: Standard implementation of a class factory.
//
//----------------------------------------------------------------------------
class CStdFactory : public IClassFactory
{
public:
typedef HRESULT (FNCREATE)(CMTScript *pMT, IUnknown **ppUnkObj);
CStdFactory(CMTScript *pMT, FNCREATE *pfnCreate);
~CStdFactory() {};
// IUnknown methods
DECLARE_STANDARD_IUNKNOWN(CStdFactory);
// IClassFactory methods
STDMETHOD(CreateInstance)(IUnknown *pUnkOuter, REFIID riid, void ** ppvObject);
STDMETHOD(LockServer)(BOOL fLock);
private:
CMTScript * _pMT;
FNCREATE * _pfnCreate;
};
//+---------------------------------------------------------------------------
//
// Struct: REGCLASSDATA
//
// Purpose: Used to declare the classes we want to register with OLE.
// A class factory that will create the class will be registered
// for each entry.
//
//----------------------------------------------------------------------------
struct REGCLASSDATA
{
const CLSID *pclsid; // CLSID to register
CStdFactory::FNCREATE *pfnCreate; // Pointer to creation function
DWORD ctxCreate; // CLSCTX to register this class with
DWORD dwCookie; // Cookie returned from CoRegister...
};
HRESULT RegisterClassObjects(CMTScript *pMT);
void UnregisterClassObjects();