ReactOS 0.4.15-dev-7934-g1dc8d80
main.c
Go to the documentation of this file.
1/*
2 * ReactOS
3 * Copyright (C) 2004 ReactOS Team
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program 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
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19/*
20 * PROJECT: ReactOS Sample Control Panel
21 * FILE: dll/cpl/main/main.c
22 * PURPOSE: ReactOS Main Control Panel
23 * PROGRAMMER: Eric Kohl
24 * UPDATE HISTORY:
25 * 05-01-2004 Created
26 */
27
28#include "main.h"
29
30#define NUM_APPLETS (2)
31
32
34
35
36/* Applets */
38{
41};
42
43
44BOOL
46{
47 HPROPSHEETPAGE hPage;
48 PROPSHEETPAGE psp;
49
50 if (ppsh->nPages < MAX_CPL_PAGES)
51 {
52 ZeroMemory(&psp, sizeof(psp));
53 psp.dwSize = sizeof(psp);
54 psp.dwFlags = PSP_DEFAULT;
55 psp.hInstance = hApplet;
56 psp.pszTemplate = MAKEINTRESOURCE(idDlg);
57 psp.pfnDlgProc = DlgProc;
58
59 hPage = CreatePropertySheetPage(&psp);
60 if (hPage != NULL)
61 {
62 return PropSheetAddPage(hPage, (LPARAM)ppsh);
63 }
64 }
65
66 return FALSE;
67}
68
71{
73 if (ppsh != NULL && ppsh->nPages < MAX_CPL_PAGES)
74 {
75 ppsh->phpage[ppsh->nPages++] = hpage;
76 return TRUE;
77 }
78
79 return FALSE;
80}
81
82
83/* Control Panel Callback */
86 UINT uMsg,
87 LPARAM lParam1,
88 LPARAM lParam2)
89{
90 UINT i = (UINT)lParam1;
91
92 switch(uMsg)
93 {
94 case CPL_INIT:
95 return TRUE;
96
97 case CPL_GETCOUNT:
98 return NUM_APPLETS;
99
100 case CPL_INQUIRE:
101 if (i < NUM_APPLETS)
102 {
103 CPLINFO *CPlInfo = (CPLINFO*)lParam2;
104 CPlInfo->lData = lParam1;
105 CPlInfo->idIcon = Applets[i].idIcon;
106 CPlInfo->idName = Applets[i].idName;
107 CPlInfo->idInfo = Applets[i].idDescription;
108 }
109 else
110 {
111 return TRUE;
112 }
113 break;
114
115 case CPL_DBLCLK:
116 if (i < NUM_APPLETS)
117 Applets[i].AppletProc(hwndCpl, uMsg, lParam1, lParam2);
118 else
119 return TRUE;
120 break;
121
122 case CPL_STARTWPARMSW:
123 if (i < NUM_APPLETS)
124 return Applets[i].AppletProc(hwndCpl, uMsg, lParam1, lParam2);
125 break;
126 }
127
128 return FALSE;
129}
130
131
135 LPVOID lpReserved)
136{
138 UNREFERENCED_PARAMETER(lpReserved);
139
140 switch(dwReason)
141 {
143 InitControls.dwSize = sizeof(INITCOMMONCONTROLSEX);
146
147 hApplet = hinstDLL;
148 break;
149 }
150
151 return TRUE;
152}
DWORD dwReason
Definition: misc.cpp:154
LPARAM lParam
Definition: combotst.c:139
BOOL WINAPI InitCommonControlsEx(const INITCOMMONCONTROLSEX *lpInitCtrls)
Definition: commctrl.c:893
#define CPL_INQUIRE
Definition: cpl.h:14
#define CPL_DBLCLK
Definition: cpl.h:16
#define CPL_STARTWPARMSW
Definition: cpl.h:21
#define CPL_INIT
Definition: cpl.h:12
#define CPL_GETCOUNT
Definition: cpl.h:13
#define DLGPROC
Definition: maze.c:62
WORD idDlg
Definition: desk.c:121
DLGPROC DlgProc
Definition: desk.c:122
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
Definition: main.c:26
#define IDC_CPLICON_1
Definition: resource.h:4
#define IDS_CPLDESCRIPTION_1
Definition: resource.h:8
#define IDS_CPLNAME_1
Definition: resource.h:6
LONG APIENTRY KeyboardApplet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
Definition: keyboard.c:357
#define NUM_APPLETS
Definition: main.c:30
BOOL CALLBACK PropSheetAddPage(HPROPSHEETPAGE hpage, LPARAM lParam)
Definition: main.c:70
BOOL InitPropSheetPage(PROPSHEETHEADER *ppsh, WORD idDlg, DLGPROC DlgProc)
Definition: main.c:45
APPLET Applets[NUM_APPLETS]
Definition: main.c:37
HINSTANCE hApplet
Definition: main.c:33
LONG APIENTRY MouseApplet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
Definition: mouse.c:1829
#define MAX_CPL_PAGES
Definition: main.h:47
#define IDS_CPLDESCRIPTION_2
Definition: resource.h:39
#define IDC_CPLICON_2
Definition: resource.h:6
#define IDS_CPLNAME_2
Definition: resource.h:38
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
#define CALLBACK
Definition: compat.h:35
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
static VOID InitControls(HWND hwnd)
Definition: mplay32.c:303
struct _PSP * HPROPSHEETPAGE
Definition: mstask.idl:90
unsigned int UINT
Definition: ndis.h:50
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
long LONG
Definition: pedump.c:60
#define PROPSHEETHEADER
Definition: prsht.h:392
#define CreatePropertySheetPage
Definition: prsht.h:399
#define PSP_DEFAULT
Definition: prsht.h:22
#define PROPSHEETPAGE
Definition: prsht.h:389
struct tagINITCOMMONCONTROLSEX INITCOMMONCONTROLSEX
#define ICC_UPDOWN_CLASS
Definition: commctrl.h:62
#define ICC_BAR_CLASSES
Definition: commctrl.h:60
#define ICC_LISTVIEW_CLASSES
Definition: commctrl.h:58
Definition: hotplug.h:34
int idDescription
Definition: hotplug.h:37
int idName
Definition: hotplug.h:36
int idIcon
Definition: hotplug.h:35
APPLET_PROC AppletProc
Definition: hotplug.h:38
Definition: cpl.h:24
LONG_PTR lData
Definition: cpl.h:28
int idName
Definition: cpl.h:26
int idInfo
Definition: cpl.h:27
int idIcon
Definition: cpl.h:25
#define ZeroMemory
Definition: winbase.h:1712
LONG_PTR LPARAM
Definition: windef.h:208
#define WINAPI
Definition: msvc.h:6
#define MAKEINTRESOURCE
Definition: winuser.h:591