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