1 #ifndef __SERVMAN_PRECOMP_H
2 #define __SERVMAN_PRECOMP_H
4 //#define WIN32_LEAN_AND_MEAN
6 #include <windowsx.h> /* GET_X/Y_LPARAM */
14 #pragma warning(disable : 4100)
17 #define NO_ITEM_SELECTED -1
18 #define MAX_KEY_LENGTH 256
26 typedef struct _MAIN_WND_INFO
35 ENUM_SERVICE_STATUS_PROCESS
*pAllServices
;
36 ENUM_SERVICE_STATUS_PROCESS
*pCurrentService
;
38 INT SelectedItem
;/* selection number in the list view */
43 } MAIN_WND_INFO
, *PMAIN_WND_INFO
;
46 INT_PTR CALLBACK
AboutDialogProc(HWND hDlg
, UINT message
, WPARAM wParam
, LPARAM lParam
);
47 INT_PTR CALLBACK
CreateDialogProc(HWND hDlg
, UINT message
, WPARAM wParam
, LPARAM lParam
);
48 INT_PTR CALLBACK
DeleteDialogProc(HWND hDlg
, UINT message
, WPARAM wParam
, LPARAM lParam
);
49 INT_PTR CALLBACK
ProgressDialogProc(HWND hDlg
, UINT Message
, WPARAM wParam
, LPARAM lParam
);
53 extern HINSTANCE hInstance
;
54 extern HANDLE ProcessHeap
;
57 typedef struct _MENU_HINT
61 } MENU_HINT
, *PMENU_HINT
;
63 VOID
SetMenuAndButtonStates(PMAIN_WND_INFO Info
);
64 VOID
UpdateServiceCount(PMAIN_WND_INFO Info
);
65 VOID
ChangeListViewText(PMAIN_WND_INFO Info
, ENUM_SERVICE_STATUS_PROCESS
* pService
, UINT Column
);
66 BOOL
InitMainWindowImpl(VOID
);
67 VOID
UninitMainWindowImpl(VOID
);
68 HWND
CreateMainWindow(LPCTSTR lpCaption
, int nCmdShow
);
71 VOID
SetListViewStyle(HWND hListView
, DWORD View
);
72 VOID
ListViewSelectionChanged(PMAIN_WND_INFO Info
, LPNMLISTVIEW pnmv
);
73 BOOL
CreateListView(PMAIN_WND_INFO Info
);
76 BOOL
DoStart(PMAIN_WND_INFO Info
);
79 typedef struct _STOP_INFO
83 SC_HANDLE hMainService
;
84 } STOP_INFO
, *PSTOP_INFO
;
87 BOOL
Control(PMAIN_WND_INFO Info
, HWND hProgDlg
, DWORD Control
);
88 BOOL
DoStop(PMAIN_WND_INFO Info
);
89 BOOL
DoPause(PMAIN_WND_INFO Info
);
90 BOOL
DoResume(PMAIN_WND_INFO Info
);
93 HWND
CreateProgressDialog(HWND hParent
, LPTSTR lpServiceName
, UINT Event
);
94 VOID
IncrementProgressBar(HWND hProgDlg
);
95 VOID
CompleteProgressBar(HWND hProgDlg
);
98 ENUM_SERVICE_STATUS_PROCESS
* GetSelectedService(PMAIN_WND_INFO Info
);
99 LPQUERY_SERVICE_CONFIG
GetServiceConfig(LPTSTR lpServiceName
);
100 BOOL
SetServiceConfig(LPQUERY_SERVICE_CONFIG pServiceConfig
, LPTSTR lpServiceName
, LPTSTR lpPassword
);
101 LPTSTR
GetServiceDescription(LPTSTR lpServiceName
);
102 BOOL
SetServiceDescription(LPTSTR lpServiceName
, LPTSTR lpDescription
);
103 LPTSTR
GetExecutablePath(LPTSTR lpServiceName
);
104 BOOL
RefreshServiceList(PMAIN_WND_INFO Info
);
105 BOOL
UpdateServiceStatus(ENUM_SERVICE_STATUS_PROCESS
* pService
);
106 BOOL
GetServiceList(PMAIN_WND_INFO Info
, DWORD
*NumServices
);
109 LPENUM_SERVICE_STATUS
GetServiceDependents(SC_HANDLE hService
, LPDWORD lpdwCount
);
110 BOOL
HasDependentServices(SC_HANDLE hService
);
111 INT_PTR CALLBACK
StopDependsDialogProc(HWND hDlg
, UINT message
, WPARAM wParam
, LPARAM lParam
);
112 LPTSTR
GetDependentServices(SC_HANDLE hService
);
115 typedef struct _SERVICEPROPSHEET
118 ENUM_SERVICE_STATUS_PROCESS
*pService
;
119 HIMAGELIST hDependsImageList
;
120 } SERVICEPROPSHEET
, *PSERVICEPROPSHEET
;
122 LONG APIENTRY
OpenPropSheet(PMAIN_WND_INFO Info
);
124 /* propsheet window procs */
125 INT_PTR CALLBACK
DependenciesPageProc(HWND hwndDlg
,
129 INT_PTR CALLBACK
GeneralPageProc(HWND hwndDlg
,
135 VOID
ExportFile(PMAIN_WND_INFO Info
);
138 INT
AllocAndLoadString(OUT LPTSTR
*lpTarget
,
141 DWORD
LoadAndFormatString(IN HINSTANCE hInstance
,
143 OUT LPTSTR
*lpTarget
,
145 BOOL
StatusBarLoadAndFormatString(IN HWND hStatusBar
,
147 IN HINSTANCE hInstance
,
150 BOOL
StatusBarLoadString(IN HWND hStatusBar
,
152 IN HINSTANCE hInstance
,
154 INT
GetTextFromEdit(OUT LPTSTR lpString
,
158 VOID
DisplayString(PTCHAR
);
159 HIMAGELIST
InitImageList(UINT StartResource
,
165 #endif /* __SERVMAN_PRECOMP_H */