2 * ReactOS shell32 - Control Panel
6 * Copyright (C) 2002 Robert Dickenson <robd@reactos.org>
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
33 #define STATUS_WINDOW 2001
34 #define TREE_WINDOW 2002
35 #define LIST_WINDOW 2003
37 #define MAX_LOADSTRING 100
39 #define MAX_NAME_LEN 500
41 #define MAX_CPL_NAME 128
42 #define MAX_CPL_INFO 128
44 ////////////////////////////////////////////////////////////////////////////////
46 typedef struct tagNEWCPLINFO {
54 TCHAR szHelpFile[128];
58 typedef struct tagCPLAppletINFO {
66 // TCHAR szHelpFile[128];
70 typedef struct CPlApplet {
71 struct CPlApplet* next; /* linked list */
73 unsigned count; /* number of subprograms */
74 HMODULE hModule; /* module of loaded applet */
75 TCHAR filename[MAX_PATH];
76 APPLET_PROC proc; /* entry point address */
77 NEWCPLINFO info[1]; /* array of count information. dwSize field is 0 if entry is invalid */
80 typedef struct CPlEntry {
81 CPlApplet* pCPlApplet; /* which cpl module we are associated with (contained in) */
82 HWND hWnd; /* handle to existing window if we are already launched */
83 unsigned nSubProg; /* which sub-program we are within the CPlApplet */
84 unsigned nIconIndex; /* */
87 // NEWCPLINFO NewCplInfo;
88 // CPLAppletINFO AppletInfo;
92 typedef struct CPanel {
93 CPlApplet* first; /* linked list */
100 #ifndef CPL_STARTWPARMSW
101 #undef CPL_STARTWPARMS
102 #define CPL_STARTWPARMSW 10
104 #define CPL_STARTWPARMS CPL_STARTWPARMSW
106 #define CPL_STARTWPARMS CPL_STARTWPARMSA
112 OPTIONS_AUTO_REFRESH = 0x01,
113 OPTIONS_READ_ONLY_MODE = 0x02,
114 OPTIONS_CONFIRM_ON_DELETE = 0x04,
115 OPTIONS_SAVE_ON_EXIT = 0x08,
116 OPTIONS_DISPLAY_BINARY_DATA = 0x10,
117 OPTIONS_VIEW_TREE_ONLY = 0x20,
118 OPTIONS_VIEW_DATA_ONLY = 0x40,
125 int nFocusPanel; // 0: left 1: right
128 TCHAR szPath[MAX_PATH];
131 ////////////////////////////////////////////////////////////////////////////////
134 extern HINSTANCE hInst;
135 extern HWND hFrameWnd;
136 extern HMENU hMenuFrame;
137 extern HWND hStatusBar;
139 extern enum OPTION_FLAGS Options;
141 extern TCHAR szTitle[];
142 extern TCHAR szWindowClass[];
144 void Control_DoLaunch(CPlApplet** pListHead, HWND hWnd, LPCTSTR cmd);
145 CPlApplet* Control_LoadApplet(HWND hWnd, LPCTSTR cmd, CPlApplet** pListHead);
146 CPlApplet* Control_UnloadApplet(CPlApplet* applet);
151 typedef struct tagNMITEMACTIVATE{
161 } NMITEMACTIVATE, FAR *LPNMITEMACTIVATE;
163 #define HDITEM HD_ITEM
164 #define LPNMLISTVIEW LPNM_LISTVIEW
165 #define NMLISTVIEW NM_LISTVIEW
167 #define HDN_ENDDRAG TBN_ENDDRAG
168 #define LVSICF_NOSCROLL LVS_NOSCROLL
170 #define HDM_GETORDERARRAY (HDM_FIRST+19) // TODO: FIX ME
178 #endif // __CONTROL_H__