1 #ifndef __SERVMAN_PRECOMP_H
2 #define __SERVMAN_PRECOMP_H
6 #define WIN32_NO_STATUS
8 #define COM_NO_WINDOWS_H
22 #pragma warning(disable : 4100)
25 #define NO_ITEM_SELECTED -1
26 #define MAX_KEY_LENGTH 256
34 #define IMAGE_UNKNOWN 0
35 #define IMAGE_SERVICE 1
36 #define IMAGE_DRIVER 2
38 typedef struct _MAIN_WND_INFO
47 ENUM_SERVICE_STATUS_PROCESS
*pAllServices
;
48 ENUM_SERVICE_STATUS_PROCESS
*pCurrentService
;
50 INT SelectedItem
;/* selection number in the list view */
57 } MAIN_WND_INFO
, *PMAIN_WND_INFO
;
60 INT_PTR CALLBACK
AboutDialogProc(HWND hDlg
, UINT message
, WPARAM wParam
, LPARAM lParam
);
61 INT_PTR CALLBACK
CreateDialogProc(HWND hDlg
, UINT message
, WPARAM wParam
, LPARAM lParam
);
62 INT_PTR CALLBACK
DeleteDialogProc(HWND hDlg
, UINT message
, WPARAM wParam
, LPARAM lParam
);
63 INT_PTR CALLBACK
ProgressDialogProc(HWND hDlg
, UINT Message
, WPARAM wParam
, LPARAM lParam
);
67 extern HINSTANCE hInstance
;
68 extern HANDLE ProcessHeap
;
71 typedef struct _MENU_HINT
75 } MENU_HINT
, *PMENU_HINT
;
77 VOID
SetMenuAndButtonStates(PMAIN_WND_INFO Info
);
78 VOID
UpdateServiceCount(PMAIN_WND_INFO Info
);
79 VOID
ChangeListViewText(PMAIN_WND_INFO Info
, ENUM_SERVICE_STATUS_PROCESS
* pService
, UINT Column
);
80 BOOL
InitMainWindowImpl(VOID
);
81 VOID
UninitMainWindowImpl(VOID
);
82 HWND
CreateMainWindow(LPCTSTR lpCaption
, int nCmdShow
);
85 VOID
SetListViewStyle(HWND hListView
, DWORD View
);
86 VOID
ListViewSelectionChanged(PMAIN_WND_INFO Info
, LPNMLISTVIEW pnmv
);
87 BOOL
CreateListView(PMAIN_WND_INFO Info
);
90 BOOL
DoStart(PMAIN_WND_INFO Info
, LPWSTR lpStartParams
);
93 typedef struct _STOP_INFO
97 SC_HANDLE hMainService
;
98 } STOP_INFO
, *PSTOP_INFO
;
101 BOOL
Control(PMAIN_WND_INFO Info
, HWND hProgress
, DWORD Control
);
102 BOOL
DoStop(PMAIN_WND_INFO Info
);
103 BOOL
DoPause(PMAIN_WND_INFO Info
);
104 BOOL
DoResume(PMAIN_WND_INFO Info
);
107 #define DEFAULT_STEP 0
108 HWND
CreateProgressDialog(HWND hParent
, UINT LabelId
);
109 BOOL
DestroyProgressDialog(HWND hProgress
, BOOL bComplete
);
110 VOID
InitializeProgressDialog(HWND hProgress
, LPWSTR lpServiceName
);
111 VOID
IncrementProgressBar(HWND hProgress
, UINT NewPos
);
112 VOID
CompleteProgressBar(HWND hProgress
);
115 ENUM_SERVICE_STATUS_PROCESS
* GetSelectedService(PMAIN_WND_INFO Info
);
116 LPQUERY_SERVICE_CONFIG
GetServiceConfig(LPTSTR lpServiceName
);
117 BOOL
SetServiceConfig(LPQUERY_SERVICE_CONFIG pServiceConfig
, LPTSTR lpServiceName
, LPTSTR lpPassword
);
118 LPTSTR
GetServiceDescription(LPTSTR lpServiceName
);
119 BOOL
SetServiceDescription(LPTSTR lpServiceName
, LPTSTR lpDescription
);
120 LPTSTR
GetExecutablePath(LPTSTR lpServiceName
);
121 BOOL
RefreshServiceList(PMAIN_WND_INFO Info
);
122 BOOL
UpdateServiceStatus(ENUM_SERVICE_STATUS_PROCESS
* pService
);
123 BOOL
GetServiceList(PMAIN_WND_INFO Info
, DWORD
*NumServices
);
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
, LPTSTR lpDisplayName
, LPTSTR 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 /* tv1_dependencies */
145 BOOL
TV1_Initialize(PSERVICEPROPSHEET pDlgInfo
, LPTSTR lpServiceName
);
146 VOID
TV1_AddDependantsToTree(PSERVICEPROPSHEET pDlgInfo
, HTREEITEM hParent
, LPTSTR lpServiceName
);
148 /* tv2_dependencies */
149 BOOL
TV2_Initialize(PSERVICEPROPSHEET pDlgInfo
, LPTSTR lpServiceName
);
150 VOID
TV2_AddDependantsToTree(PSERVICEPROPSHEET pDlgInfo
, HTREEITEM hParent
, LPTSTR lpServiceName
);
151 BOOL
TV2_HasDependantServices(LPWSTR lpServiceName
);
152 LPENUM_SERVICE_STATUS
TV2_GetDependants(LPWSTR lpServiceName
, LPDWORD lpdwCount
);
154 LONG APIENTRY
OpenPropSheet(PMAIN_WND_INFO Info
);
156 /* propsheet window procs */
157 INT_PTR CALLBACK
DependenciesPageProc(HWND hwndDlg
,
161 INT_PTR CALLBACK
GeneralPageProc(HWND hwndDlg
,
167 VOID
ExportFile(PMAIN_WND_INFO Info
);
170 INT
AllocAndLoadString(OUT LPTSTR
*lpTarget
,
173 DWORD
LoadAndFormatString(IN HINSTANCE hInstance
,
175 OUT LPTSTR
*lpTarget
,
177 BOOL
StatusBarLoadAndFormatString(IN HWND hStatusBar
,
179 IN HINSTANCE hInstance
,
182 BOOL
StatusBarLoadString(IN HWND hStatusBar
,
184 IN HINSTANCE hInstance
,
186 INT
GetTextFromEdit(OUT LPTSTR lpString
,
190 VOID
DisplayString(PTCHAR
);
191 HIMAGELIST
InitImageList(UINT StartResource
,
197 #endif /* __SERVMAN_PRECOMP_H */