source: trunk/dll/presparm.c@ 1844

Last change on this file since 1844 was 1673, checked in by Gregg Young, 13 years ago

Update to Doxygen comment style Ticket 55. Also some minor code cleanup.

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