|
|
// SvcUtils.h
#include "stdutils.h" // FCompareMachineNames
// Help file for filemgmt.dll
const TCHAR g_szHelpFileFilemgmt[] = _T("filemgmt.hlp"); // Not subject to localization
// This enumeration should not be changed unless the string resources
// and all the array indices updated.
enum { iServiceActionNil = -1, iServiceActionStart, // Start service
iServiceActionStop, // Stop service
iServiceActionPause, // Pause service
iServiceActionResume, // Resume service
iServiceActionRestart, // Stop and Start service
iServiceActionMax // Must be last
};
/////////////////////////////////////////////////////////////////////
// String szAbend
// This string is used for the 'Service Failure Recovery' dialog
// to append the 'Fail Count' to the command line. This string
// is not localized, so it should not be moved into the
// resources.
//
// NOTES
// The variable should be renamed to reflect its content. Currently
// 'abend' means 'fails'.
const TCHAR szAbend[] = L" /fail=%1%";
//
// Service running state
//
extern CString g_strSvcStateStarted; extern CString g_strSvcStateStarting; extern CString g_strSvcStateStopped; extern CString g_strSvcStateStopping; extern CString g_strSvcStatePaused; extern CString g_strSvcStatePausing; extern CString g_strSvcStateResuming;
//
// Service startup type
//
extern CString g_strSvcStartupBoot; extern CString g_strSvcStartupSystem; extern CString g_strSvcStartupAutomatic; extern CString g_strSvcStartupManual; extern CString g_strSvcStartupDisabled;
//
// Service startup account
// JonN 188203 11/13/00
//
extern CString g_strLocalSystem; extern CString g_strLocalService; extern CString g_strNetworkService;
extern CString g_strUnknown; extern CString g_strLocalMachine;
void Service_LoadResourceStrings();
LPCTSTR Service_PszMapStateToName(DWORD dwServiceState, BOOL fLongString = FALSE);
// -1L is blank string
LPCTSTR Service_PszMapStartupTypeToName(DWORD dwStartupType);
// JonN 11/14/00 188203 support LocalService/NetworkService
LPCTSTR Service_PszMapStartupAccountToName(LPCTSTR pcszStartupAccount);
BOOL Service_FGetServiceButtonStatus( SC_HANDLE hScManager, CONST TCHAR * pszServiceName, OUT BOOL rgfEnableButton[iServiceActionMax], OUT DWORD * pdwCurrentState = NULL, BOOL fSilentError = FALSE);
void Service_SplitCommandLine( LPCTSTR pszFullCommand, CString * pstrBinaryPath, CString * pstrParameters, BOOL * pfAbend = NULL);
void Service_UnSplitCommandLine( CString * pstrFullCommand, LPCTSTR pszBinaryPath, LPCTSTR pszParameters);
void GetMsg(OUT CString& strMsg, DWORD dwErr, UINT wIdString = 0, ...);
// title is "Shared Folders"
INT DoErrMsgBox(HWND hwndParent, UINT uType, DWORD dwErr, UINT wIdString = 0, ...);
// title is "Services"
INT DoServicesErrMsgBox(HWND hwndParent, UINT uType, DWORD dwErr, UINT wIdString = 0, ...);
BOOL UiGetUser( HWND hwndOwner, BOOL fIsContainer, LPCTSTR pszServerName, IN OUT CString& strrefUser);
// Help Support
#define HELP_DIALOG_TOPIC(DialogName) g_aHelpIDs_##DialogName
BOOL DoHelp(LPARAM lParam, const DWORD rgzHelpIDs[]); BOOL DoContextHelp(WPARAM wParam, const DWORD rgzHelpIDs[]);
#ifdef SNAPIN_PROTOTYPER
/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
class CStringIterator { private: CString m_strData; // Data string to parse
CONST TCHAR * m_pszDataNext; // Pointer to the next data to parse
public: CStringIterator() { m_pszDataNext = m_strData; }
void SetString(CONST TCHAR * pszStringData) { m_strData = pszStringData; m_pszDataNext = m_strData; }
BOOL FGetNextString(OUT CString& rStringOut) { Assert(m_pszDataNext != NULL);
if (*m_pszDataNext == '\0') { rStringOut.Empty(); return FALSE; } CONST TCHAR * pchStart = m_pszDataNext; while (*m_pszDataNext != '\0') { if (*m_pszDataNext == ';') { // HACK: Truncating the string
*(TCHAR *)m_pszDataNext++ = '\0'; break; } m_pszDataNext++; } rStringOut = pchStart; // Copy the string
return TRUE; } }; // CStringIterator
#endif // SNAPIN_PROTOTYPER
|