windows-nt/Source/XPSP1/NT/base/remoteboot/rigpsnap/compdata.h
2020-09-26 16:20:57 +08:00

82 lines
2.3 KiB
C++

//
// Microsoft Corporation 1998
//
// COMPDATA.H - CComponentData class
//
class CComponentData:
public IComponentData,
public IPersistStreamInit,
public ISnapinHelp
{
friend class CDataObject;
friend class CSnapIn;
protected:
ULONG m_cRef;
HWND m_hwndFrame;
LPCONSOLENAMESPACE m_pScope;
LPCONSOLE m_pConsole;
HSCOPEITEM m_hRoot;
LPGPEINFORMATION m_pGPTInformation;
public:
CComponentData();
~CComponentData();
// IUnknown methods
STDMETHODIMP QueryInterface(REFIID, LPVOID FAR *);
STDMETHODIMP_(ULONG) AddRef();
STDMETHODIMP_(ULONG) Release();
// Implemented IComponentData methods
STDMETHODIMP Initialize(LPUNKNOWN pUnknown);
STDMETHODIMP CreateComponent(LPCOMPONENT* ppComponent);
STDMETHODIMP QueryDataObject(MMC_COOKIE cookie, DATA_OBJECT_TYPES type, LPDATAOBJECT* ppDataObject);
STDMETHODIMP Destroy(void);
STDMETHODIMP Notify(LPDATAOBJECT lpDataObject, MMC_NOTIFY_TYPE event, LPARAM arg, LPARAM param);
STDMETHODIMP GetDisplayInfo(LPSCOPEDATAITEM pItem);
STDMETHODIMP CompareObjects(LPDATAOBJECT lpDataObjectA, LPDATAOBJECT lpDataObjectB);
// Implemented IPersistStreamInit interface members
STDMETHODIMP GetClassID(CLSID *pClassID);
STDMETHODIMP IsDirty(VOID);
STDMETHODIMP Load(IStream *pStm);
STDMETHODIMP Save(IStream *pStm, BOOL fClearDirty);
STDMETHODIMP GetSizeMax(ULARGE_INTEGER *pcbSize);
STDMETHODIMP InitNew(VOID);
//
// ISnapinHelp
//
STDMETHODIMP GetHelpTopic( LPOLESTR * lpCompiledHelpFile );
private:
HRESULT EnumerateScopePane(LPDATAOBJECT lpDataObject, HSCOPEITEM hParent);
};
// ComponentData class factory
class CComponentDataCF : public IClassFactory
{
protected:
ULONG m_cRef;
public:
CComponentDataCF();
~CComponentDataCF();
// IUnknown methods
STDMETHODIMP QueryInterface(REFIID, LPVOID FAR *);
STDMETHODIMP_(ULONG) AddRef();
STDMETHODIMP_(ULONG) Release();
// IClassFactory methods
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID FAR *);
STDMETHODIMP LockServer(BOOL);
};