98 SC_HANDLE hManager =
NULL;
99 SC_HANDLE hService =
NULL;
101 DWORD cbBytesNeeded = 0;
106 if (hManager ==
NULL)
113 if (hService ==
NULL)
125 if (cbBytesNeeded == 0)
133 if (pServiceFailure ==
NULL)
153 if (bResult ==
FALSE && pServiceFailure !=
NULL)
172 PWSTR startPtr, endPtr;
236 if (*startPtr ==
L'\"')
239 endPtr =
wcschr(startPtr,
L'\"');
247 wcscpy(szBuffer, startPtr);
260 startPtr = endPtr + 1;
275 wcscpy(szBuffer, startPtr);
319 bRestartService =
TRUE;
327 bRebootComputer =
TRUE;
348 PWCHAR pszFilter =
L"Executable Files (*.exe;*.com;*.cmd;*.bat)\0*.exe;*.com;*.cmd;*.bat\0";
382 ZeroMemory(&FailureActions,
sizeof(FailureActions));
395 bRestartService =
TRUE;
405 bRebootComputer =
TRUE;
428 typedef struct _SERVICE_FAILURE_ACTIONS {
459 if (pRecoveryData !=
NULL)
477 if (pRecoveryData !=
NULL)
#define OFN_FILEMUSTEXIST
#define IDC_BROWSE_PROGRAM
#define SC_MANAGER_CONNECT
#define IDC_FIRST_FAILURE
#define IDC_SUBSEQUENT_FAILURES
LPSERVICE_FAILURE_ACTIONS pServiceFailure
static BOOL GetServiceFailure(PRECOVERYDATA pRecoveryData)
_CONST_RETURN wchar_t *__cdecl wcsstr(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_SubStr)
struct _RECOVERYDATA * PRECOVERYDATA
static VOID UpdateFailureActions(HWND hwndDlg, PRECOVERYDATA pRecoveryData)
static INT AllocAndLoadString(OUT LPTSTR *lpTarget, IN HINSTANCE hInst, IN UINT uID)
static VOID SetFailureActions(HWND hwndDlg)
#define IDC_SECOND_FAILURE
GLenum GLuint GLenum GLsizei length
BOOL WINAPI CloseServiceHandle(SC_HANDLE hSCObject)
#define QueryServiceConfig2
#define IDC_RESTART_TEXT2
struct _RECOVERYDATA RECOVERYDATA
#define IDC_RESTART_TEXT1
#define OFN_PATHMUSTEXIST
SERVICE_FAILURE_ACTIONSA SERVICE_FAILURE_ACTIONS
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
_CONST_RETURN wchar_t *__cdecl wcschr(_In_z_ const wchar_t *_Str, wchar_t _Ch)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
static VOID BrowseFile(HWND hwndDlg)
#define PropSheet_Changed(d, w)
#define SERVICE_CONFIG_FAILURE_ACTIONS
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
INT_PTR CALLBACK RecoveryPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
static VOID InitRecoveryPage(HWND hwndDlg)
#define IDC_RESTART_OPTIONS
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
LPSERVICE_FAILURE_ACTIONSA LPSERVICE_FAILURE_ACTIONS
HWND WINAPI GetParent(_In_ HWND)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
ENUM_SERVICE_STATUS_PROCESS * pService
HLOCAL NTAPI LocalFree(HLOCAL hMem)
#define IDC_ADD_FAILCOUNT
#define SERVICE_QUERY_CONFIG
struct _SERVICEPROPSHEET * PSERVICEPROPSHEET
#define IDS_RESTART_COMPUTER
static VOID ShowFailureActions(HWND hwndDlg, PRECOVERYDATA pRecoveryData)
#define HeapFree(x, y, z)