[CRT] Massively improve performance of rand_s
[reactos.git] / dll / cpl / wined3dcfg / wined3dcfg.c
1 #include "wined3dcfg.h"
2
3 #include <cpl.h>
4
5 HINSTANCE hApplet = 0;
6
7 static int CALLBACK
8 PropSheetProc(HWND hwndDlg, UINT uMsg, LPARAM lParam)
9 {
10 // NOTE: This callback is needed to set large icon correctly.
11 HICON hIcon;
12 switch (uMsg)
13 {
14 case PSCB_INITIALIZED:
15 {
16 hIcon = LoadIconW(hApplet, MAKEINTRESOURCEW(IDI_CPLICON));
17 SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
18 break;
19 }
20 }
21 return 0;
22 }
23
24 LONG CALLBACK AppletInit(HWND hWnd)
25 {
26 PROPSHEETPAGEW psp;
27 PROPSHEETHEADERW psh;
28
29 ZeroMemory(&psp, sizeof(PROPSHEETPAGE));
30 psp.dwSize = sizeof(PROPSHEETPAGE);
31 psp.dwFlags = PSP_DEFAULT;
32 psp.hInstance = hApplet;
33 psp.pszTemplate = MAKEINTRESOURCE(IDD_PROPPAGEGENERAL);
34 psp.pfnDlgProc = GeneralPageProc;
35
36 ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
37 psh.dwSize = sizeof(PROPSHEETHEADER);
38 psh.dwFlags = PSH_PROPSHEETPAGE | PSH_USEICONID | PSH_USECALLBACK;
39 psh.hwndParent = hWnd;
40 psh.hInstance = hApplet;
41 psh.pszIcon = MAKEINTRESOURCEW(IDI_CPLICON);
42 psh.pszCaption = MAKEINTRESOURCEW(IDS_CPLNAME);
43 psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
44 psh.nStartPage = 0;
45 psh.ppsp = &psp;
46 psh.pfnCallback = PropSheetProc;
47
48 return (LONG)(PropertySheet(&psh) != -1);
49 }
50
51 LONG CALLBACK CPlApplet(HWND hWnd, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
52 {
53 switch (uMsg)
54 {
55 case CPL_INIT:
56 return TRUE;
57
58 case CPL_GETCOUNT:
59 return 1;
60
61 case CPL_INQUIRE:
62 {
63 CPLINFO *CPlInfo = (CPLINFO*)lParam2;
64 CPlInfo->lData = 0;
65 CPlInfo->idIcon = IDI_CPLICON;
66 CPlInfo->idInfo = IDS_CPLDESCRIPTION;
67 CPlInfo->idName = IDS_CPLNAME;
68 }
69 break;
70
71 case CPL_DBLCLK:
72 AppletInit(hWnd);
73 break;
74 }
75
76 return FALSE;
77 }
78
79
80 BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
81 {
82 UNREFERENCED_PARAMETER(lpvReserved);
83
84 switch (dwReason)
85 {
86 case DLL_PROCESS_ATTACH:
87 case DLL_THREAD_ATTACH:
88 hApplet = hinstDLL;
89 break;
90 }
91
92 return TRUE;
93 }