3 * FILE: dll/cpl/input/input.c
5 * PROGRAMMER: Dmitry Chapyshev (lentind@yandex.ru)
15 #define NUM_APPLETS (1)
17 static LONG CALLBACK
SystemApplet(VOID
);
19 HINSTANCE hApplet
= NULL
;
20 static HWND hCPLWindow
;
23 static APPLET Applets
[NUM_APPLETS
] =
25 {IDI_CPLSYSTEM
, IDS_CPLSYSTEMNAME
, IDS_CPLSYSTEMDESCRIPTION
, SystemApplet
}
30 InitPropSheetPage(PROPSHEETPAGEW
*page
, WORD idDlg
, DLGPROC DlgProc
)
32 ZeroMemory(page
, sizeof(*page
));
34 page
->dwSize
= sizeof(*page
);
35 page
->dwFlags
= PSP_DEFAULT
;
36 page
->hInstance
= hApplet
;
37 page
->pszTemplate
= MAKEINTRESOURCEW(idDlg
);
38 page
->pfnDlgProc
= DlgProc
;
46 PROPSHEETPAGEW page
[2];
47 PROPSHEETHEADERW header
;
48 WCHAR szCaption
[MAX_STR_LEN
];
50 LoadStringW(hApplet
, IDS_CPLSYSTEMNAME
, szCaption
, ARRAYSIZE(szCaption
));
52 ZeroMemory(&header
, sizeof(header
));
54 header
.dwSize
= sizeof(header
);
55 header
.dwFlags
= PSH_PROPSHEETPAGE
;
56 header
.hwndParent
= hCPLWindow
;
57 header
.hInstance
= hApplet
;
58 header
.hIcon
= LoadIconW(hApplet
, MAKEINTRESOURCEW(IDI_CPLSYSTEM
));
59 header
.pszCaption
= szCaption
;
60 header
.nPages
= ARRAYSIZE(page
);
61 header
.nStartPage
= 0;
63 header
.pfnCallback
= NULL
;
66 InitPropSheetPage(&page
[0], IDD_PROPPAGESETTINGS
, SettingsPageProc
);
68 /* Advanced Settings */
69 InitPropSheetPage(&page
[1], IDD_PROPPAGEADVANCEDSETTINGS
, AdvancedSettingsPageProc
);
71 return (LONG
)(PropertySheetW(&header
) != -1);
75 /* Control Panel Callback */
77 CPlApplet(HWND hwndCPl
, UINT uMsg
, LPARAM lParam1
, LPARAM lParam2
)
93 CPlInfo
= (CPLINFO
*)lParam2
;
95 CPlInfo
->idIcon
= Applets
[i
].idIcon
;
96 CPlInfo
->idName
= Applets
[i
].idName
;
97 CPlInfo
->idInfo
= Applets
[i
].idDescription
;
101 hCPLWindow
= hwndCPl
;
102 Applets
[i
].AppletProc();
111 DllMain(HINSTANCE hinstDLL
, DWORD dwReason
, LPVOID lpvReserved
)
113 UNREFERENCED_PARAMETER(lpvReserved
);
117 case DLL_PROCESS_ATTACH
:
118 case DLL_THREAD_ATTACH
: