|
|
// emshell.h : main header file for the EMSHELL application
//
#if !defined(AFX_EMSHELL_H__A4B361A0_838C_4898_A9C1_D460D1546E6B__INCLUDED_)
#define AFX_EMSHELL_H__A4B361A0_838C_4898_A9C1_D460D1546E6B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
#include "emsvc.h"
#include "emobjdef.h"
/////////////////////////////////////////////////////////////////////////////
// CEmshellApp:
// See emshell.cpp for the implementation of this class
//
#define EM_NAMEDKEY_LEN 60
#define EM_REGKEY _T("Software\\Microsoft\\EM\\shell")
#define EMSVC_SESSION_KEY _T("SYSTEM\\CurrentControlSet\\Services\\emsvc\\Parameters\\Session")
class CEmshellApp : public CWinApp { public: DWORD m_dwWindowWidth, m_dwWindowHeight, m_dwSessionRefreshRate, m_dwRecursive, m_dwCommandSet, m_dwMiniDump, m_dwUserDump, m_dwMsinfoDump, m_dwNotifyAdmin, m_dwShowMSInfoDlg; CString m_strApplicationPath; CString m_strAdminName; CString m_strAltSymbolPath; CString m_strCommandSet; CString m_strPassword; CString m_strPort; CString m_strUsername; SessionSettings m_SessionSettings;
public: void GetCDBPathFromRegistry(); void UpdateSessionData( BOOL bUpdate = FALSE ); BOOL CanDisplayService(TCHAR *pszName, TCHAR *pszSecName); BOOL CanDisplayProcess(TCHAR *pszName); void SetEmShellRegOptions ( const BOOL bUpdateRegistry = FALSE, const DWORD *pdwPollingSessionsFreq = NULL, const DWORD *pdwWindowHeight = NULL, const DWORD *pdwWindowWidth = NULL, const DWORD *pdwRecursive = NULL, const DWORD *pdwCommandSet = NULL, const DWORD *pdwMiniDump = NULL, const DWORD *pdwUserDump = NULL, const DWORD *pdwNotifyAdmin = NULL, const DWORD *pdwMsinfoDump = NULL, CString *pstrAdminName = NULL, CString *pstrAltSymbolPath = NULL, CString *pstrCommandSet = NULL, CString *pstrPassword = NULL, CString *pstrPort = NULL, CString *pstrUsername = NULL, const DWORD *pdwShowMSInfoDlg = NULL );
void GetEmShellRegOptions ( BOOL bReadFromRegistry = FALSE, DWORD *pdwPollingSessionsFreq = NULL, DWORD *pdwWindowHeight = NULL, DWORD *pdwWindowWidth = NULL, DWORD *pdwRecursive = NULL, DWORD *pdwCommandSet = NULL, DWORD *pdwMiniDump = NULL, DWORD *pdwUserDump = NULL, DWORD *pdwNotifyAdmin = NULL, DWORD *pdwMsinfoDump = NULL, CString *pstrAdminName = NULL, CString *pstrAltSymbolPath = NULL, CString *pstrCommandSet = NULL, CString *pstrPassword = NULL, CString *pstrPort = NULL, CString *pstrUsername = NULL, DWORD *pdwShowMSInfoDlg = NULL );
DWORD CreateKeyAndSetData ( HKEY hKeyParent, LPCTSTR lpszKeyName, LPCTSTR lpszNamedValue, LPCTSTR lpValue, LPTSTR lpszClass = REG_NONE );
DWORD CreateKeyAndSetData ( HKEY hKeyParent, LPCTSTR lpszKeyName, LPCTSTR lpszNamedValue, DWORD dwValue, LPTSTR lpszClass = REG_NONE );
DWORD CreateEmShellRegEntries ( HKEY hKey = HKEY_CURRENT_USER, LPCTSTR lpszKey = EM_REGKEY );
DWORD ReadDataFromRegistry ( HKEY hKey = HKEY_CURRENT_USER, LPCTSTR lpszKey = EM_REGKEY );
CEmshellApp(); HRESULT ExportLog( PEmObject pEmObject, CString strDirPath, IEmManager* pEmManager ); BOOL AskForPath( CString &strDirPath ); int DisplayErrMsgFromHR( HRESULT hr, UINT nType = MB_OK ); int DisplayErrMsgFromString( CString strMessage, UINT nType = MB_OK ); void GetStatusString( LONG lStatus, CString &csStatus ); void GetEmObjectTypeString( LONG lType, CString &csStatusStr ); EmObject* AllocEmObject(); void DeAllocEmObject( EmObject* pEmObj );
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CEmshellApp)
public: virtual BOOL InitInstance(); virtual int ExitInstance(); //}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CEmshellApp)
afx_msg void OnAppAbout(); //}}AFX_MSG
DECLARE_MESSAGE_MAP()
protected: CString m_strIgnoreProcesses; CString m_strIgnoreServices; CString m_strWildCardIgnoreServices;
bool InitEmshell ( int nCmdShow = SW_SHOW );
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_EMSHELL_H__A4B361A0_838C_4898_A9C1_D460D1546E6B__INCLUDED_)
|