// EmManager.h : Declaration of the CEmManager #ifndef __EMMANAGER_H_ #define __EMMANAGER_H_ #include "resource.h" // main symbols ///////////////////////////////////////////////////////////////////////////// // CEmManager class ATL_NO_VTABLE CEmManager : public CComObjectRootEx, public CComCoClass, public ISupportErrorInfo, public IConnectionPointContainerImpl, public IDispatchImpl { public: VARIANT *m_lpVariant; int m_nStatus; int m_nType; CExcepMonSessionManager *m_pASTManager; public: CEmManager() { ATLTRACE(_T("CEmManager::CEmManager\n")); m_pASTManager = &(_Module.m_SessionManager); m_pcs = new CGenCriticalSection; } ~CEmManager() { ATLTRACE(_T("CEmManager::~CEmManager\n")); delete m_pcs; } DECLARE_REGISTRY_RESOURCEID(IDR_EMMANAGER) DECLARE_NOT_AGGREGATABLE(CEmManager) DECLARE_PROTECT_FINAL_CONSTRUCT() BEGIN_COM_MAP(CEmManager) COM_INTERFACE_ENTRY(IEmManager) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(ISupportErrorInfo) COM_INTERFACE_ENTRY(IConnectionPointContainer) END_COM_MAP() BEGIN_CONNECTION_POINT_MAP(CEmManager) END_CONNECTION_POINT_MAP() // ISupportsErrorInfo STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); // IEmManager public: STDMETHOD(MakeNFO)(/*[in]*/ BSTR bstrPath, /*[in]*/ BSTR bstrMachineName, /*[in]*/ BSTR bstrCategories); STDMETHOD(DeleteFile)(/*[in, out]*/ BSTR bstrEmObj); HRESULT CheckIfCanOpenSession( PEmObject pEmObj ); STDMETHOD(GenerateDumpFile)(BSTR bstrEmObj, UINT nDumpType); STDMETHOD(GetEmFileInterface)(BSTR bstrEmObj, IStream **ppstrm); STDMETHOD(EnumObjectsEx)(/*[in]*/ BSTR bstrEmObj, /*[out]*/ VARIANT *lpVariant); STDMETHOD(DeleteSession)(BSTR bstrEmObj); STDMETHOD(OpenSession)(BSTR bstrEmObj, IEmDebugSession **ppEmDebugSession); STDMETHOD(EnumObjects)(EmObjectType eObjectType, VARIANT *lpVariant); private: HRESULT EnumProcs(); HRESULT EnumSrvcs(); HRESULT EnumMsInfoFiles( VARIANT *lpVariant, LPCTSTR lpSearchString = NULL ); HRESULT EnumLogFiles ( VARIANT*, LPCTSTR lpszSearchString = NULL ); HRESULT EnumDumpFiles ( VARIANT*, LPCTSTR lpszSearchString = NULL ); HRESULT EnumCmdSets ( VARIANT*, LPCTSTR lpszSearchString = NULL ); HRESULT EnumSessions ( PEmObject, VARIANT* ); HRESULT CEmManager::FillMsInfoFileInfo ( LPCTSTR lpszMsInfoFileDir, LPWIN32_FIND_DATA lpFindData, EmObject *pEmObject ); HRESULT CEmManager::FillDumpFileInfo ( LPCTSTR lpszDumpFileDir, LPWIN32_FIND_DATA lpFindData, EmObject *pEmObject ); HRESULT FillLogFileInfo ( LPCTSTR lpszLogFileDir, LPWIN32_FIND_DATA lpFindData, EmObject *pEmObject ); HRESULT ScanCmdfile ( LPCTSTR lpszCmdFileDir, LPWIN32_FIND_DATA lpFindData, EmObject *pEmObject ); HRESULT EnumFiles ( LPTSTR lpszDirectory, LPTSTR lpszExt, LPWIN32_FIND_DATA *lppFindData, LONG *lpFiles ); HRESULT PackageFilesToVariant ( EmObjectType eObjectType, LPWIN32_FIND_DATA lpFindFileData, LONG cFiles, LPVARIANT lpVariant ); protected: private: PGenCriticalSection m_pcs; }; #endif //__EMMANAGER_H_