source: trunk/dll/presparm.c@ 1162

Last change on this file since 1162 was 1162, checked in by John Small, 17 years ago

Ticket 187: Draft 1: Functions only

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 18.9 KB
Line 
1
2/***********************************************************************
3
4 $Id: presparm.c 1162 2008-09-05 21:43:09Z jbs $
5
6 Edit presentation parameters
7
8 Copyright (c) 1993-98 M. Kimes
9 Copyright (c) 2006 Steven H.Levine
10
11 22 Jul 06 SHL Check more run time errors
12 20 Aug 07 GKY Move #pragma alloc_text to end for OpenWatcom compat
13 22 Nov 07 GKY Use CopyPresParams to fix presparam inconsistencies in menus
14 10 Dec 07 GKY Updated CopyPresParams to copy all parameter types
15
16***********************************************************************/
17
18#include <string.h>
19
20#define INCL_WIN
21#define INCL_LONGLONG // dircnrs.h
22
23#include "fm3dll.h"
24#include "presparm.h"
25#include "fortify.h"
26
27// static PSZ pszSrcFile = __FILE__;
28
29//static VOID IfNoParam(HWND hwnd, CHAR * keyroot, ULONG size, PVOID attrvalue);
30
31//static VOID StoreWndPresParams(HWND hwnd, CHAR * tagname, HINI prof);
32
33#ifdef NEVER
34/*
35 * this routine will fill a buffer with all defined window pres params
36 * the PRESPARAMS structure returned is suitable to be passed as
37 * pPresParams ie. WinCreateWindow(,,,,,,,,,,,, PVOID pPresParams)
38 */
39VOID StoreWndPresParams(HWND hwnd, CHAR * tagname, HINI prof)
40{
41 PARAM *pparam;
42 PRESPARAMS *ppresparams;
43
44 if (!tagname || !*tagname || !prof)
45 return;
46 /* setup memory access */
47 ppresparams = (PRESPARAMS *) xmalloc(PP_MAXBUF, pszSrcFile, __LINE__);
48 if (!ppresparams)
49 return;
50 ppresparams->cb = 0; /* no entries yet */
51 pparam = ppresparams->aparam; /* cast structure onto memory */
52
53 /*
54 * query every possible presentation parameter...
55 */
56
57 /* foreground color -- takes 12 bytes */
58 pparam->cb = WinQueryPresParam(hwnd,
59 PP_FOREGROUNDCOLOR,
60 PP_FOREGROUNDCOLORINDEX,
61 &pparam->id,
62 sizeof(LONG),
63 (PVOID) pparam->ab, QPF_NOINHERIT);
64 if (pparam->cb) { /* was the param found? */
65 ppresparams->cb += 12; /* used 12 bytes */
66 pparam = (PPARAM) (((ULONG) pparam) + 12); /* advance 12 bytes to next memory location */
67 }
68
69 /* background color -- takes 12 bytes */
70 pparam->cb = WinQueryPresParam(hwnd,
71 PP_BACKGROUNDCOLOR,
72 PP_BACKGROUNDCOLORINDEX,
73 &pparam->id,
74 sizeof(LONG),
75 (PVOID) pparam->ab, QPF_NOINHERIT);
76 if (pparam->cb) {
77 ppresparams->cb += 12;
78 pparam = (PPARAM) (((ULONG) pparam) + 12);
79 }
80
81 /* hilited foreground color -- takes 12 bytes */
82 pparam->cb = WinQueryPresParam(hwnd,
83 PP_HILITEFOREGROUNDCOLOR,
84 PP_HILITEFOREGROUNDCOLORINDEX,
85 &pparam->id,
86 sizeof(LONG),
87 (PVOID) pparam->ab, QPF_NOINHERIT);
88 if (pparam->cb) {
89 ppresparams->cb += 12;
90 pparam = (PPARAM) (((ULONG) pparam) + 12);
91 }
92
93 /* hilited background color -- takes 12 bytes */
94 pparam->cb = WinQueryPresParam(hwnd,
95 PP_HILITEBACKGROUNDCOLOR,
96 PP_HILITEBACKGROUNDCOLORINDEX,
97 &pparam->id,
98 sizeof(LONG),
99 (PVOID) pparam->ab, QPF_NOINHERIT);
100 if (pparam->cb) {
101 ppresparams->cb += 12;
102 pparam = (PPARAM) (((ULONG) pparam) + 12);
103 }
104
105 /* disabled foreground color -- takes 12 bytes */
106 pparam->cb = WinQueryPresParam(hwnd,
107 PP_DISABLEDFOREGROUNDCOLOR,
108 PP_DISABLEDFOREGROUNDCOLORINDEX,
109 &pparam->id,
110 sizeof(LONG),
111 (PVOID) pparam->ab, QPF_NOINHERIT);
112 if (pparam->cb) {
113 ppresparams->cb += 12;
114 pparam = (PPARAM) (((ULONG) pparam) + 12);
115 }
116
117 /* disabled background color -- takes 12 bytes */
118 pparam->cb = WinQueryPresParam(hwnd,
119 PP_DISABLEDBACKGROUNDCOLOR,
120 PP_DISABLEDBACKGROUNDCOLORINDEX,
121 &pparam->id,
122 sizeof(LONG),
123 (PVOID) pparam->ab, QPF_NOINHERIT);
124 if (pparam->cb) {
125 ppresparams->cb += 12;
126 pparam = (PPARAM) (((ULONG) pparam) + 12);
127 }
128
129 /* border color -- takes 12 bytes */
130 pparam->cb = WinQueryPresParam(hwnd,
131 PP_BORDERCOLOR,
132 PP_BORDERCOLORINDEX,
133 &pparam->id,
134 sizeof(LONG),
135 (PVOID) pparam->ab, QPF_NOINHERIT);
136 if (pparam->cb) {
137 ppresparams->cb += 12;
138 pparam = (PPARAM) (((ULONG) pparam) + 12);
139 }
140
141 /* font name & size -- maximum 44 bytes (32 for face name, 4 for point size) + 8 for data */
142 pparam->cb = WinQueryPresParam(hwnd,
143 PP_FONTNAMESIZE,
144 0,
145 &pparam->id,
146 36, (PVOID) pparam->ab, QPF_NOINHERIT);
147 if (pparam->cb) {
148 ppresparams->cb += (pparam->cb + 8);
149 pparam = (PPARAM) (((ULONG) pparam) + pparam->cb + 8);
150 }
151
152 /* active color -- takes 12 bytes */
153 pparam->cb = WinQueryPresParam(hwnd,
154 PP_ACTIVECOLOR,
155 PP_ACTIVECOLORINDEX,
156 &pparam->id,
157 sizeof(LONG),
158 (PVOID) pparam->ab, QPF_NOINHERIT);
159 if (pparam->cb) {
160 ppresparams->cb += 12;
161 pparam = (PPARAM) (((ULONG) pparam) + 12);
162 }
163
164 /* inactive color -- takes 12 bytes */
165 pparam->cb = WinQueryPresParam(hwnd,
166 PP_INACTIVECOLOR,
167 PP_INACTIVECOLORINDEX,
168 &pparam->id,
169 sizeof(LONG),
170 (PVOID) pparam->ab, QPF_NOINHERIT);
171 if (pparam->cb) {
172 ppresparams->cb += 12;
173 pparam = (PPARAM) (((ULONG) pparam) + 12);
174 }
175
176 /* active text foreground color -- takes 12 bytes */
177 pparam->cb = WinQueryPresParam(hwnd,
178 PP_ACTIVETEXTFGNDCOLOR,
179 PP_ACTIVETEXTFGNDCOLORINDEX,
180 &pparam->id,
181 sizeof(LONG),
182 (PVOID) pparam->ab,
183 QPF_NOINHERIT | QPF_PURERGBCOLOR);
184 if (pparam->cb) {
185 ppresparams->cb += 12;
186 pparam = (PPARAM) (((ULONG) pparam) + 12);
187 }
188
189 /* active text background color -- takes 12 bytes */
190 pparam->cb = WinQueryPresParam(hwnd,
191 PP_ACTIVETEXTBGNDCOLOR,
192 PP_ACTIVETEXTBGNDCOLORINDEX,
193 &pparam->id,
194 sizeof(LONG),
195 (PVOID) pparam->ab,
196 QPF_NOINHERIT | QPF_PURERGBCOLOR);
197 if (pparam->cb) {
198 ppresparams->cb += 12;
199 pparam = (PPARAM) (((ULONG) pparam) + 12);
200 }
201
202 /* inactive text foreground color -- takes 12 bytes */
203 pparam->cb = WinQueryPresParam(hwnd,
204 PP_INACTIVETEXTFGNDCOLOR,
205 PP_INACTIVETEXTFGNDCOLORINDEX,
206 &pparam->id,
207 sizeof(LONG),
208 (PVOID) pparam->ab,
209 QPF_NOINHERIT | QPF_PURERGBCOLOR);
210 if (pparam->cb) {
211 ppresparams->cb += 12;
212 pparam = (PPARAM) (((ULONG) pparam) + 12);
213 }
214
215 /* inactive text background color -- takes 12 bytes */
216 pparam->cb = WinQueryPresParam(hwnd,
217 PP_INACTIVETEXTBGNDCOLOR,
218 PP_INACTIVETEXTBGNDCOLORINDEX,
219 &pparam->id,
220 sizeof(LONG),
221 (PVOID) pparam->ab,
222 QPF_NOINHERIT | QPF_PURERGBCOLOR);
223 if (pparam->cb) {
224 ppresparams->cb += 12;
225 pparam = (PPARAM) (((ULONG) pparam) + 12);
226 }
227
228 /* shadow color -- takes 12 bytes */
229 pparam->cb = WinQueryPresParam(hwnd,
230 PP_SHADOW, 0,
231 &pparam->id,
232 sizeof(LONG),
233 (PVOID) pparam->ab, QPF_NOINHERIT);
234 if (pparam->cb) {
235 ppresparams->cb += 12;
236 pparam = (PPARAM) (((ULONG) pparam) + 12);
237 }
238
239 /* menu foreground color -- takes 12 bytes */
240 pparam->cb = WinQueryPresParam(hwnd,
241 PP_MENUFOREGROUNDCOLOR,
242 PP_MENUFOREGROUNDCOLORINDEX,
243 &pparam->id,
244 sizeof(LONG),
245 (PVOID) pparam->ab, QPF_NOINHERIT);
246 if (pparam->cb) {
247 ppresparams->cb += 12;
248 pparam = (PPARAM) (((ULONG) pparam) + 12);
249 }
250
251 /* menu background color -- takes 12 bytes */
252 pparam->cb = WinQueryPresParam(hwnd,
253 PP_MENUBACKGROUNDCOLOR,
254 PP_MENUBACKGROUNDCOLORINDEX,
255 &pparam->id,
256 sizeof(LONG),
257 (PVOID) pparam->ab, QPF_NOINHERIT);
258 if (pparam->cb) {
259 ppresparams->cb += 12;
260 pparam = (PPARAM) (((ULONG) pparam) + 12);
261 }
262
263 /* menu hilite foreground color -- takes 12 bytes */
264 pparam->cb = WinQueryPresParam(hwnd,
265 PP_MENUHILITEFGNDCOLOR,
266 PP_MENUHILITEFGNDCOLORINDEX,
267 &pparam->id,
268 sizeof(LONG),
269 (PVOID) pparam->ab, QPF_NOINHERIT);
270 if (pparam->cb) {
271 ppresparams->cb += 12;
272 pparam = (PPARAM) (((ULONG) pparam) + 12);
273 }
274
275 /* menu hilite background color -- takes 12 bytes */
276 pparam->cb = WinQueryPresParam(hwnd,
277 PP_MENUHILITEBGNDCOLOR,
278 PP_MENUHILITEBGNDCOLORINDEX,
279 &pparam->id,
280 sizeof(LONG),
281 (PVOID) pparam->ab, QPF_NOINHERIT);
282 if (pparam->cb) {
283 ppresparams->cb += 12;
284 pparam = (PPARAM) (((ULONG) pparam) + 12);
285 }
286
287 /* menu disabled foreground color -- takes 12 bytes */
288 pparam->cb = WinQueryPresParam(hwnd,
289 PP_MENUDISABLEDFGNDCOLOR,
290 PP_MENUDISABLEDFGNDCOLORINDEX,
291 &pparam->id,
292 sizeof(LONG),
293 (PVOID) pparam->ab, QPF_NOINHERIT);
294 if (pparam->cb) {
295 ppresparams->cb += 12;
296 pparam = (PPARAM) (((ULONG) pparam) + 12);
297 }
298
299 /* menu disabled background color -- takes 12 bytes */
300 pparam->cb = WinQueryPresParam(hwnd,
301 PP_MENUDISABLEDBGNDCOLOR,
302 PP_MENUDISABLEDBGNDCOLORINDEX,
303 &pparam->id,
304 sizeof(LONG),
305 (PVOID) pparam->ab, QPF_NOINHERIT);
306 if (pparam->cb) {
307 ppresparams->cb += 12;
308 pparam = (PPARAM) (((ULONG) pparam) + 12);
309 }
310
311 if (ppresparams->cb)
312 PrfWriteProfileData(prof,
313 appname, tagname, ppresparams, ppresparams->cb + 4);
314
315 free(ppresparams);
316}
317
318#endif // NEVER
319
320VOID CopyPresParams(HWND target, HWND source)
321{
322 /*
323 * Copy presentation parameters of interest to us from one window
324 * to another
325 */
326
327 ULONG AttrFound, AttrValue[64], cbRetLen, x = 0,
328 AttrName[] = { PP_FONTNAMESIZE, PP_FOREGROUNDCOLOR,
329 PP_BACKGROUNDCOLOR, PP_HILITEBACKGROUNDCOLOR,
330 PP_HILITEFOREGROUNDCOLOR, PP_BORDERCOLOR, PP_MENUFOREGROUNDCOLOR,
331 PP_MENUBACKGROUNDCOLOR, PP_FOREGROUNDCOLORINDEX, PP_BACKGROUNDCOLORINDEX,
332 PP_HILITEFOREGROUNDCOLORINDEX, PP_HILITEBACKGROUNDCOLORINDEX,
333 PP_DISABLEDFOREGROUNDCOLOR, PP_DISABLEDBACKGROUNDCOLOR,
334 PP_DISABLEDFOREGROUNDCOLORINDEX, PP_DISABLEDBACKGROUNDCOLORINDEX,
335 PP_BORDERCOLOR, PP_BORDERCOLORINDEX, PP_FONTHANDLE, PP_ACTIVECOLOR,
336 PP_ACTIVECOLORINDEX, PP_INACTIVECOLOR, PP_INACTIVECOLORINDEX,
337 PP_ACTIVETEXTFGNDCOLOR, PP_ACTIVETEXTFGNDCOLORINDEX, PP_ACTIVETEXTBGNDCOLOR,
338 PP_ACTIVETEXTBGNDCOLORINDEX, PP_INACTIVETEXTFGNDCOLOR,
339 PP_INACTIVETEXTFGNDCOLORINDEX, PP_INACTIVETEXTBGNDCOLOR,
340 PP_INACTIVETEXTBGNDCOLORINDEX, PP_SHADOW, PP_MENUFOREGROUNDCOLORINDEX,
341 PP_MENUBACKGROUNDCOLORINDEX, PP_MENUHILITEFGNDCOLOR, PP_MENUHILITEFGNDCOLORINDEX,
342 PP_MENUHILITEBGNDCOLOR, PP_MENUHILITEBGNDCOLORINDEX, PP_MENUDISABLEDFGNDCOLOR,
343 PP_MENUDISABLEDFGNDCOLORINDEX, PP_MENUDISABLEDBGNDCOLOR,
344 PP_MENUDISABLEDBGNDCOLORINDEX, PP_SHADOWTEXTCOLOR, PP_SHADOWTEXTCOLORINDEX,
345 PP_SHADOWHILITEFGNDCOLOR, PP_SHADOWHILITEFGNDCOLORINDEX, PP_SHADOWHILITEBGNDCOLOR,
346 PP_SHADOWHILITEBGNDCOLORINDEX, PP_ICONTEXTBACKGROUNDCOLOR,
347 PP_ICONTEXTBACKGROUNDCOLORINDEX, PP_BORDERLIGHTCOLOR, PP_BORDERDARKCOLOR,
348 PP_BORDER2COLOR, PP_BORDER2LIGHTCOLOR, PP_BORDER2DARKCOLOR, PP_BORDERDEFAULTCOLOR,
349 PP_FIELDBACKGROUNDCOLOR, PP_BUTTONBACKGROUNDCOLOR, PP_BUTTONBORDERLIGHTCOLOR,
350 PP_BUTTONBORDERDARKCOLOR, PP_ARROWCOLOR, PP_ARROWBORDERLIGHTCOLOR,
351 PP_ARROWBORDERDARKCOLOR, PP_ARROWDISABLEDCOLOR, PP_CHECKLIGHTCOLOR,
352 PP_CHECKMIDDLECOLOR, PP_CHECKDARKCOLOR, PP_PAGEFOREGROUNDCOLOR,
353 PP_PAGEBACKGROUNDCOLOR, PP_MAJORTABFOREGROUNDCOLOR, PP_MAJORTABBACKGROUNDCOLOR,
354 PP_MINORTABFOREGROUNDCOLOR, PP_MINORTABBACKGROUNDCOLOR, PP_USER, 0 };
355
356 while (AttrName[x]) {
357 cbRetLen = WinQueryPresParam(source,
358 AttrName[x],
359 0,
360 &AttrFound,
361 sizeof(AttrValue),
362 &AttrValue, 0);
363 //printf("%s %x\n", AttrValue, source); fflush(stdout);
364 //printf("%x\n", AttrValue); fflush(stdout);
365 if (cbRetLen)
366 WinSetPresParam(target, AttrName[x], cbRetLen, (PVOID) AttrValue);
367 x++;
368 } //while
369}
370
371VOID SetPresParams(HWND hwnd, RGB2 * back, RGB2 * fore, RGB2 * border,
372 CHAR * font)
373{
374 if (font)
375 WinSetPresParam(hwnd, PP_FONTNAMESIZE, strlen(font) + 1, (PVOID) font);
376 if (back)
377 WinSetPresParam(hwnd, PP_BACKGROUNDCOLOR, sizeof(RGB2), (PVOID) back);
378 if (fore)
379 WinSetPresParam(hwnd, PP_FOREGROUNDCOLOR, sizeof(RGB2), (PVOID) fore);
380 if (border)
381 WinSetPresParam(hwnd, PP_BORDERCOLOR, sizeof(RGB2), (PVOID) border);
382}
383
384#if 0 // JBS
385VOID IfNoParam(HWND hwnd, CHAR * keyroot, ULONG size, PVOID attrvalue)
386{
387 ULONG fsize = 0;
388 CHAR s[81];
389
390 sprintf(s, "%s", keyroot);
391 if (!PrfQueryProfileSize(fmprof, appname, s, &fsize) || !fsize)
392 WinSetPresParam(hwnd, PP_FONTNAMESIZE, size, (PVOID) attrvalue);
393}
394#endif
395
396VOID PresParamChanged(HWND hwnd, CHAR * keyroot, MPARAM mp1, MPARAM mp2)
397{
398 ULONG AttrFound, AttrValue[64], cbRetLen;
399
400 cbRetLen = WinQueryPresParam(hwnd, (ULONG) mp1, 0, &AttrFound,
401 (ULONG) sizeof(AttrValue), &AttrValue, 0);
402 if (cbRetLen) {
403
404 CHAR s[133];
405
406 *s = 0;
407 switch (AttrFound) {
408 case PP_BACKGROUNDCOLOR:
409 sprintf(s, "%s.Backgroundcolor", keyroot);
410 break;
411 case PP_FOREGROUNDCOLOR:
412 sprintf(s, "%s.Foregroundcolor", keyroot);
413 break;
414 case PP_HILITEBACKGROUNDCOLOR:
415 sprintf(s, "%s.Hilitebackgroundcolor", keyroot);
416 break;
417 case PP_HILITEFOREGROUNDCOLOR:
418 sprintf(s, "%s.Hiliteforegroundcolor", keyroot);
419 break;
420 case PP_BORDERCOLOR:
421 sprintf(s, "%s.Bordercolor", keyroot);
422 break;
423 case PP_FONTNAMESIZE:
424 sprintf(s, "%s.Fontnamesize", keyroot);
425 break;
426 default:
427 break;
428 }
429 if (*s)
430 PrfWriteProfileData(fmprof, appname, s, (PVOID) AttrValue, cbRetLen);
431 }
432}
433
434VOID RestorePresParams(HWND hwnd, CHAR * keyroot)
435{
436 CHAR s[81];
437 ULONG AttrValue[64], size;
438
439 size = sizeof(AttrValue);
440 sprintf(s, "%s.Backgroundcolor", keyroot);
441 if (PrfQueryProfileData(fmprof, appname, s, (PVOID) AttrValue, &size)
442 && size)
443 WinSetPresParam(hwnd, PP_BACKGROUNDCOLOR, size, (PVOID) AttrValue);
444 size = sizeof(AttrValue);
445 sprintf(s, "%s.Foregroundcolor", keyroot);
446 if (PrfQueryProfileData(fmprof, appname, s, (PVOID) AttrValue, &size)
447 && size)
448 WinSetPresParam(hwnd, PP_FOREGROUNDCOLOR, size, (PVOID) AttrValue);
449 size = sizeof(AttrValue);
450 sprintf(s, "%s.Hilitebackgroundcolor", keyroot);
451 if (PrfQueryProfileData(fmprof, appname, s, (PVOID) AttrValue, &size)
452 && size)
453 WinSetPresParam(hwnd, PP_HILITEBACKGROUNDCOLOR, size, (PVOID) AttrValue);
454 size = sizeof(AttrValue);
455 sprintf(s, "%s.Hiliteforegroundcolor", keyroot);
456 if (PrfQueryProfileData(fmprof, appname, s, (PVOID) AttrValue, &size)
457 && size)
458 WinSetPresParam(hwnd, PP_HILITEFOREGROUNDCOLOR, size, (PVOID) AttrValue);
459 size = sizeof(AttrValue);
460 sprintf(s, "%s.Bordercolor", keyroot);
461 if (PrfQueryProfileData(fmprof, appname, s, (PVOID) AttrValue, &size)
462 && size)
463 WinSetPresParam(hwnd, PP_BORDERCOLOR, size, (PVOID) AttrValue);
464 size = sizeof(AttrValue);
465 sprintf(s, "%s.Fontnamesize", keyroot);
466 if (PrfQueryProfileData(fmprof,
467 appname, s, (PVOID) AttrValue, &size) && size)
468 WinSetPresParam(hwnd, PP_FONTNAMESIZE, size, (PVOID) AttrValue);
469}
470
471 /** SavePresParams
472 * Save the presentation parameters used by RestorePresParams
473 */
474VOID SavePresParams(HWND hwnd, CHAR *keyroot)
475{
476
477
478 ULONG AttrFound, AttrValue[64], cbRetLen, x = 0,
479 AttrName[] = { PP_FONTNAMESIZE, PP_FOREGROUNDCOLOR,
480 PP_BACKGROUNDCOLOR, PP_HILITEBACKGROUNDCOLOR,
481 PP_HILITEFOREGROUNDCOLOR, PP_BORDERCOLOR, 0 };
482
483 while (AttrName[x]) {
484 cbRetLen = WinQueryPresParam(hwnd,
485 AttrName[x],
486 0,
487 &AttrFound,
488 sizeof(AttrValue),
489 &AttrValue, 0);
490 if (cbRetLen){
491 CHAR s[133];
492
493 *s = 0;
494 switch (AttrFound) {
495 case PP_BACKGROUNDCOLOR:
496 sprintf(s, "%s.Backgroundcolor", keyroot);
497 break;
498 case PP_FOREGROUNDCOLOR:
499 sprintf(s, "%s.Foregroundcolor", keyroot);
500 break;
501 case PP_HILITEBACKGROUNDCOLOR:
502 sprintf(s, "%s.Hilitebackgroundcolor", keyroot);
503 break;
504 case PP_HILITEFOREGROUNDCOLOR:
505 sprintf(s, "%s.Hiliteforegroundcolor", keyroot);
506 break;
507 case PP_BORDERCOLOR:
508 sprintf(s, "%s.Bordercolor", keyroot);
509 break;
510 case PP_FONTNAMESIZE:
511 sprintf(s, "%s.Fontnamesize", keyroot);
512 break;
513 default:
514 break;
515 }
516 if (*s)
517 PrfWriteProfileData(fmprof, appname, s, (PVOID) AttrValue, cbRetLen);
518 }
519 x++;
520 } //while
521}
522
523#pragma alloc_text(PRESPARAM,CopyPresParams,SetPresParams)
524#pragma alloc_text(PRESPARAM,PresParamChanged,RestorePresParams,SavePresParams)
525#pragma alloc_text(PRESPARAM,StoreWndPresParams)
Note: See TracBrowser for help on using the repository browser.