1 #ifndef __SERVMAN_PRECOMP_H
2 #define __SERVMAN_PRECOMP_H
4 #define WIN32_NO_STATUS
6 #define COM_NO_WINDOWS_H
21 #pragma warning(disable : 4100)
24 #define NO_ITEM_SELECTED -1
25 #define MAX_KEY_LENGTH 256
33 #define IMAGE_UNKNOWN 0
34 #define IMAGE_SERVICE 1
35 #define IMAGE_DRIVER 2
37 #define ACTION_START 1
39 #define ACTION_PAUSE 3
40 #define ACTION_RESUME 4
41 #define ACTION_RESTART 5
43 #define ORD_ASCENDING 1
44 #define ORD_DESCENDING -1
46 typedef struct _MAIN_WND_INFO
56 ENUM_SERVICE_STATUS_PROCESS
*pAllServices
;
57 ENUM_SERVICE_STATUS_PROCESS
*pCurrentService
;
60 INT SelectedItem
;/* selection number in the list view */
70 } MAIN_WND_INFO
, *PMAIN_WND_INFO
;
73 INT_PTR CALLBACK
AboutDialogProc(HWND hDlg
, UINT message
, WPARAM wParam
, LPARAM lParam
);
74 INT_PTR CALLBACK
CreateDialogProc(HWND hDlg
, UINT message
, WPARAM wParam
, LPARAM lParam
);
75 INT_PTR CALLBACK
DeleteDialogProc(HWND hDlg
, UINT message
, WPARAM wParam
, LPARAM lParam
);
76 INT_PTR CALLBACK
ProgressDialogProc(HWND hDlg
, UINT Message
, WPARAM wParam
, LPARAM lParam
);
80 extern HINSTANCE hInstance
;
81 extern HANDLE ProcessHeap
;
84 typedef struct _MENU_HINT
88 } MENU_HINT
, *PMENU_HINT
;
90 VOID
SetMenuAndButtonStates(PMAIN_WND_INFO Info
);
91 VOID
UpdateServiceCount(PMAIN_WND_INFO Info
);
92 VOID
ChangeListViewText(PMAIN_WND_INFO Info
, ENUM_SERVICE_STATUS_PROCESS
* pService
, UINT Column
);
93 BOOL
InitMainWindowImpl(VOID
);
94 VOID
UninitMainWindowImpl(VOID
);
95 HWND
CreateMainWindow(LPCTSTR lpCaption
, int nCmdShow
);
98 VOID
SetListViewStyle(HWND hListView
, DWORD View
);
99 VOID
ListViewSelectionChanged(PMAIN_WND_INFO Info
, LPNMLISTVIEW pnmv
);
100 BOOL
CreateListView(PMAIN_WND_INFO Info
);
102 /* start / stop / control */
103 BOOL
DoStartService(LPWSTR ServiceName
, HANDLE hProgress
, LPWSTR lpStartParams
);
104 BOOL
DoStopService(LPWSTR ServiceName
, HANDLE hProgress
);
105 BOOL
DoControlService(LPWSTR ServiceName
, HWND hProgress
, DWORD Control
);
108 #define DEFAULT_STEP 0
109 BOOL
RunActionWithProgress(HWND hParent
, LPWSTR ServiceName
, LPWSTR DisplayName
, UINT Action
, PVOID Param
);
110 VOID
IncrementProgressBar(HANDLE hProgress
, UINT NewPos
);
111 VOID
CompleteProgressBar(HANDLE hProgress
);
114 ENUM_SERVICE_STATUS_PROCESS
* GetSelectedService(PMAIN_WND_INFO Info
);
115 LPQUERY_SERVICE_CONFIG
GetServiceConfig(LPWSTR lpServiceName
);
116 BOOL
SetServiceConfig(LPQUERY_SERVICE_CONFIG pServiceConfig
, LPWSTR lpServiceName
, LPWSTR lpPassword
);
117 LPWSTR
GetServiceDescription(LPWSTR lpServiceName
);
118 BOOL
SetServiceDescription(LPWSTR lpServiceName
, LPWSTR lpDescription
);
119 LPWSTR
GetExecutablePath(LPWSTR lpServiceName
);
120 VOID
FreeServiceList(PMAIN_WND_INFO Info
);
121 BOOL
RefreshServiceList(PMAIN_WND_INFO Info
);
122 BOOL
UpdateServiceStatus(ENUM_SERVICE_STATUS_PROCESS
* pService
);
123 BOOL
GetServiceList(PMAIN_WND_INFO Info
);
127 typedef struct _SERVICEPROPSHEET
130 ENUM_SERVICE_STATUS_PROCESS
*pService
;
131 HIMAGELIST hDependsImageList
;
133 HWND hDependsTreeView1
;
134 HWND hDependsTreeView2
;
135 } SERVICEPROPSHEET
, *PSERVICEPROPSHEET
;
138 HTREEITEM
AddItemToTreeView(HWND hTreeView
, HTREEITEM hRoot
, LPWSTR lpDisplayName
, LPWSTR lpServiceName
, ULONG serviceType
, BOOL bHasChildren
);
140 /* stop_dependencies */
141 INT_PTR CALLBACK
StopDependsDialogProc(HWND hDlg
, UINT message
, WPARAM wParam
, LPARAM lParam
);
142 LPWSTR
GetListOfServicesToStop(LPWSTR lpServiceName
);
144 CreateStopDependsDialog(HWND hParent
,
149 /* tv1_dependencies */
150 BOOL
TV1_Initialize(PSERVICEPROPSHEET pDlgInfo
, LPWSTR lpServiceName
);
151 VOID
TV1_AddDependantsToTree(PSERVICEPROPSHEET pDlgInfo
, HTREEITEM hParent
, LPWSTR lpServiceName
);
153 /* tv2_dependencies */
154 BOOL
TV2_Initialize(PSERVICEPROPSHEET pDlgInfo
, LPWSTR lpServiceName
);
155 VOID
TV2_AddDependantsToTree(PSERVICEPROPSHEET pDlgInfo
, HTREEITEM hParent
, LPWSTR lpServiceName
);
156 BOOL
TV2_HasDependantServices(LPWSTR lpServiceName
);
157 LPENUM_SERVICE_STATUS
TV2_GetDependants(LPWSTR lpServiceName
, LPDWORD lpdwCount
);
159 VOID
OpenPropSheet(PMAIN_WND_INFO Info
);
161 /* propsheet window procs */
162 INT_PTR CALLBACK
DependenciesPageProc(HWND hwndDlg
,
166 INT_PTR CALLBACK
GeneralPageProc(HWND hwndDlg
,
170 INT_PTR CALLBACK
LogonPageProc(HWND hwndDlg
,
174 INT_PTR CALLBACK
RecoveryPageProc(HWND hwndDlg
,
180 VOID
ExportFile(PMAIN_WND_INFO Info
);
183 INT
AllocAndLoadString(OUT LPWSTR
*lpTarget
,
186 DWORD
LoadAndFormatString(IN HINSTANCE hInstance
,
188 OUT LPWSTR
*lpTarget
,
190 BOOL
StatusBarLoadAndFormatString(IN HWND hStatusBar
,
192 IN HINSTANCE hInstance
,
195 BOOL
StatusBarLoadString(IN HWND hStatusBar
,
197 IN HINSTANCE hInstance
,
199 INT
GetTextFromEdit(OUT LPWSTR lpString
,
203 VOID
DisplayString(PWCHAR
);
204 HIMAGELIST
InitImageList(UINT StartResource
,
217 #endif /* __SERVMAN_PRECOMP_H */