// // 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); };