xref: /reactos/dll/win32/shell32/wine/cpanel.h (revision 4561998a)
1 /* Control Panel management
2  *
3  * Copyright 2001 Eric Pouech
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18  */
19 
20 #ifndef __WINE_SHELL_CPANEL_H
21 #define __WINE_SHELL_CPANEL_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 #include <cpl.h>
28 
29 struct applet_info
30 {
31     LONG_PTR data;
32 #ifdef __REACTOS__
33     int idIcon;
34 #endif
35     HICON    icon;
36     WCHAR    name[256];
37     WCHAR    info[256];
38     WCHAR    helpfile[128];
39 };
40 
41 typedef struct CPlApplet {
42 #ifndef __REACTOS__
43     struct list         entry;
44 #else
45     HANDLE hActCtx;
46 #endif
47     HWND		hWnd;
48     LPWSTR		cmd;        /* path to applet */
49     unsigned		count;		/* number of subprograms */
50     HMODULE     	hModule;	/* module of loaded applet */
51     APPLET_PROC		proc;		/* entry point address */
52     struct applet_info  info[1];	/* array of count information */
53 } CPlApplet;
54 
55 #ifndef __REACTOS__
56 typedef struct CPanel {
57     struct list applets;
58     HWND        hWnd;
59     HINSTANCE   hInst;
60     unsigned    total_subprogs;
61     HWND        hWndListView;
62     HIMAGELIST  hImageListLarge;
63     HIMAGELIST  hImageListSmall;
64     HWND        hWndStatusBar;
65 } CPanel;
66 
67 /* structure to reference an individual control panel item */
68 typedef struct CPlItem {
69     CPlApplet *applet;
70     unsigned id;
71 } CPlItem;
72 #else
73 typedef int CPanel;
74 #endif
75 
76 CPlApplet* Control_LoadApplet(HWND hWnd, LPCWSTR cmd, CPanel* panel) DECLSPEC_HIDDEN;
77 void Control_UnloadApplet(CPlApplet* applet) DECLSPEC_HIDDEN;
78 
79 #ifdef __cplusplus
80 } /* extern "C" */
81 #endif
82 
83 #endif /* __WINE_SHELL_CPANEL_H */
84