split the code, some files were getting too long
[reactos.git] / reactos / base / applications / mscutils / servman / precomp.h
1 #ifndef __SERVMAN_PRECOMP_H
2 #define __SERVMAN_PRECOMP_H
3
4 //#define WIN32_LEAN_AND_MEAN
5 #include <windows.h>
6 #include <windowsx.h> /* GET_X/Y_LPARAM */
7 #include <stdio.h>
8 #include <tchar.h>
9 #include <commctrl.h>
10 #include <shlobj.h>
11 #include "resource.h"
12
13 #ifdef _MSC_VER
14 #pragma warning(disable : 4100)
15 #endif
16
17 #define NO_ITEM_SELECTED -1
18 #define MAX_KEY_LENGTH 256
19
20 #define LVNAME 0
21 #define LVDESC 1
22 #define LVSTATUS 2
23 #define LVSTARTUP 3
24 #define LVLOGONAS 4
25
26 typedef struct _MAIN_WND_INFO
27 {
28 HWND hMainWnd;
29 HWND hListView;
30 HWND hStatus;
31 HWND hTool;
32 HMENU hShortcutMenu;
33 int nCmdShow;
34
35 ENUM_SERVICE_STATUS_PROCESS *pAllServices;
36 ENUM_SERVICE_STATUS_PROCESS *pCurrentService;
37
38 INT SelectedItem;/* selection number in the list view */
39 BOOL bDlgOpen;
40 BOOL bInMenuLoop;
41 BOOL bIsUserAnAdmin;
42
43 } MAIN_WND_INFO, *PMAIN_WND_INFO;
44
45
46 BOOL CALLBACK AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
47 BOOL CALLBACK CreateDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
48 BOOL CALLBACK DeleteDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
49 BOOL CALLBACK ProgressDialogProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam);
50
51
52 /* servman.c */
53 extern HINSTANCE hInstance;
54 extern HANDLE ProcessHeap;
55
56 /* mainwnd.c */
57 typedef struct _MENU_HINT
58 {
59 WORD CmdId;
60 UINT HintId;
61 } MENU_HINT, *PMENU_HINT;
62
63 VOID ChangeListViewText(PMAIN_WND_INFO Info, ENUM_SERVICE_STATUS_PROCESS* pService, UINT Column);
64 BOOL InitMainWindowImpl(VOID);
65 VOID UninitMainWindowImpl(VOID);
66 HWND CreateMainWindow(LPCTSTR lpCaption, int nCmdShow);
67
68 /* listview.c */
69 VOID SetListViewStyle(HWND hListView, DWORD View);
70 VOID ListViewSelectionChanged(PMAIN_WND_INFO Info, LPNMLISTVIEW pnmv);
71 BOOL CreateListView(PMAIN_WND_INFO Info);
72
73 /* start */
74 BOOL DoStart(PMAIN_WND_INFO Info);
75
76 /* control */
77 BOOL DoStop(PMAIN_WND_INFO Info);
78 BOOL DoPause(PMAIN_WND_INFO Info);
79 BOOL DoResume(PMAIN_WND_INFO Info);
80
81 /* progress.c */
82 HWND CreateProgressDialog(HWND hParent, LPTSTR lpServiceName, UINT Event);
83 VOID IncrementProgressBar(HWND hProgDlg);
84 VOID CompleteProgressBar(HWND hProgDlg);
85
86 /* query.c */
87 ENUM_SERVICE_STATUS_PROCESS* GetSelectedService(PMAIN_WND_INFO Info);
88 LPQUERY_SERVICE_CONFIG GetServiceConfig(LPTSTR lpServiceName);
89 BOOL SetServiceConfig(LPQUERY_SERVICE_CONFIG pServiceConfig, LPTSTR lpServiceName, LPTSTR lpPassword);
90 LPTSTR GetServiceDescription(LPTSTR lpServiceName);
91 LPTSTR GetExecutablePath(LPTSTR lpServiceName);
92 BOOL RefreshServiceList(PMAIN_WND_INFO Info);
93 BOOL UpdateServiceStatus(ENUM_SERVICE_STATUS_PROCESS* pService);
94 BOOL GetServiceList(PMAIN_WND_INFO Info, DWORD *NumServices);
95
96 /* reg */
97 BOOL SetDescription(LPTSTR, LPTSTR);
98
99 /* propsheet.c */
100 LONG APIENTRY OpenPropSheet(PMAIN_WND_INFO Info);
101
102 /* export.c */
103 VOID ExportFile(PMAIN_WND_INFO Info);
104
105 /* misc.c */
106 INT AllocAndLoadString(OUT LPTSTR *lpTarget,
107 IN HINSTANCE hInst,
108 IN UINT uID);
109 DWORD LoadAndFormatString(IN HINSTANCE hInstance,
110 IN UINT uID,
111 OUT LPTSTR *lpTarget,
112 ...);
113 BOOL StatusBarLoadAndFormatString(IN HWND hStatusBar,
114 IN INT PartId,
115 IN HINSTANCE hInstance,
116 IN UINT uID,
117 ...);
118 BOOL StatusBarLoadString(IN HWND hStatusBar,
119 IN INT PartId,
120 IN HINSTANCE hInstance,
121 IN UINT uID);
122 INT GetTextFromEdit(OUT LPTSTR lpString,
123 IN HWND hDlg,
124 IN UINT Res);
125 VOID GetError(VOID);
126 VOID DisplayString(PTCHAR);
127 HIMAGELIST InitImageList(UINT NumButtons,
128 UINT StartResource,
129 UINT Width,
130 UINT Height);
131
132 #endif /* __SERVMAN_PRECOMP_H */