1
{******************************************************************************}
3
{ Property Sheet Pages API interface Unit for Object Pascal }
5
{ Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
6
{ Corporation. All Rights Reserved. }
8
{ The original file is: prsht.h, released June 2000. The original Pascal }
9
{ code is: PrSht.pas, released December 2000. The initial developer of the }
10
{ Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
12
{ Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
13
{ Marcel van Brakel. All Rights Reserved. }
15
{ Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
17
{ You may retrieve the latest version of this file at the Project JEDI }
18
{ APILIB home page, located at http://jedi-apilib.sourceforge.net }
20
{ The contents of this file are used with permission, subject to the Mozilla }
21
{ Public License Version 1.1 (the "License"); you may not use this file except }
22
{ in compliance with the License. You may obtain a copy of the License at }
23
{ http://www.mozilla.org/MPL/MPL-1.1.html }
25
{ Software distributed under the License is distributed on an "AS IS" basis, }
26
{ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
27
{ the specific language governing rights and limitations under the License. }
29
{ Alternatively, the contents of this file may be used under the terms of the }
30
{ GNU Lesser General Public License (the "LGPL License"), in which case the }
31
{ provisions of the LGPL License are applicable instead of those above. }
32
{ If you wish to allow use of your version of this file only under the terms }
33
{ of the LGPL License and not to allow others to use your version of this file }
34
{ under the MPL, indicate your decision by deleting the provisions above and }
35
{ replace them with the notice and other provisions required by the LGPL }
36
{ License. If you do not delete the provisions above, a recipient may use }
37
{ your version of this file under either the MPL or the LGPL License. }
39
{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
41
{******************************************************************************}
43
// $Id: jwaprsht.pas,v 1.1 2005/04/04 07:56:10 marco Exp $
50
{$HPPEMIT '#include "ntdsapi.h"'}
52
{$HPPEMIT 'typedef PHPROPSHEETPAGE *HPROPSHEETPAGE'}
60
JwaWinNT, JwaWinUser, JwaWinType;
62
//#ifndef CCSIZEOF_STRUCT
63
//#define CCSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))
67
// For compilers that don't support nameless unions
72
{$EXTERNALSYM MAXPROPPAGES}
75
HPROPSHEETPAGE = Pointer;
76
{$EXTERNALSYM HPROPSHEETPAGE}
77
PHPROPSHEETPAGE = ^HPROPSHEETPAGE;
78
{$NODEFINE PHPROPSHEETPAGE}
80
LPFNPSPCALLBACKA = function(hwnd: HWND; uMsg: UINT; ppsp: Pointer{LPPROPSHEETPAGEA}): UINT; stdcall;
81
{$EXTERNALSYM LPFNPSPCALLBACKA}
82
LPFNPSPCALLBACKW = function(hwnd: HWND; uMsg: UINT; ppsp: Pointer{LPPROPSHEETPAGEW}): UINT; stdcall;
83
{$EXTERNALSYM LPFNPSPCALLBACKW}
86
LPFNPSPCALLBACK = function(hwnd: HWND; uMsg: UINT; ppsp: Pointer{LPPROPSHEETPAGEW}): UINT; stdcall;
87
{$EXTERNALSYM LPFNPSPCALLBACK}
89
LPFNPSPCALLBACK = function(hwnd: HWND; uMsg: UINT; ppsp: Pointer{LPPROPSHEETPAGEA}): UINT; stdcall;
90
{$EXTERNALSYM LPFNPSPCALLBACK}
94
PSP_DEFAULT = $00000000;
95
{$EXTERNALSYM PSP_DEFAULT}
96
PSP_DLGINDIRECT = $00000001;
97
{$EXTERNALSYM PSP_DLGINDIRECT}
98
PSP_USEHICON = $00000002;
99
{$EXTERNALSYM PSP_USEHICON}
100
PSP_USEICONID = $00000004;
101
{$EXTERNALSYM PSP_USEICONID}
102
PSP_USETITLE = $00000008;
103
{$EXTERNALSYM PSP_USETITLE}
104
PSP_RTLREADING = $00000010;
105
{$EXTERNALSYM PSP_RTLREADING}
107
PSP_HASHELP = $00000020;
108
{$EXTERNALSYM PSP_HASHELP}
109
PSP_USEREFPARENT = $00000040;
110
{$EXTERNALSYM PSP_USEREFPARENT}
111
PSP_USECALLBACK = $00000080;
112
{$EXTERNALSYM PSP_USECALLBACK}
113
PSP_PREMATURE = $00000400;
114
{$EXTERNALSYM PSP_PREMATURE}
116
//----- New flags for wizard97 --------------
118
PSP_HIDEHEADER = $00000800;
119
{$EXTERNALSYM PSP_HIDEHEADER}
120
PSP_USEHEADERTITLE = $00001000;
121
{$EXTERNALSYM PSP_USEHEADERTITLE}
122
PSP_USEHEADERSUBTITLE = $00002000;
123
{$EXTERNALSYM PSP_USEHEADERSUBTITLE}
125
//-------------------------------------------
128
{$EXTERNALSYM PSPCB_ADDREF}
130
{$EXTERNALSYM PSPCB_RELEASE}
132
{$EXTERNALSYM PSPCB_CREATE}
134
//#define PROPSHEETPAGEA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEA, pcRefParent)
135
//#define PROPSHEETPAGEW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEW, pcRefParent)
138
_PROPSHEETPAGEA = record
141
hInstance: HINSTANCE;
144
0: (pszTemplate: LPCSTR);
145
1: (pResource: LPCDLGTEMPLATE);
150
1: (pszIcon: LPCSTR);
155
pfnCallback: LPFNPSPCALLBACKA;
158
pszHeaderTitle: LPCSTR; // this is displayed in the header
159
pszHeaderSubTitle: LPCSTR; //
162
{$EXTERNALSYM _PROPSHEETPAGEA}
163
PROPSHEETPAGEA = _PROPSHEETPAGEA;
164
{$EXTERNALSYM PROPSHEETPAGEA}
165
LPPROPSHEETPAGEA = ^PROPSHEETPAGEA;
166
{$EXTERNALSYM LPPROPSHEETPAGEA}
167
LPCPROPSHEETPAGEA = LPPROPSHEETPAGEA;
168
{$EXTERNALSYM LPCPROPSHEETPAGEA}
169
TPropSheetPageA = PROPSHEETPAGEA;
170
PPropSheetPageA = LPPROPSHEETPAGEA;
172
_PROPSHEETPAGEW = record
175
hInstance: HINSTANCE;
178
0: (pszTemplate: LPCWSTR);
179
1: (pResource: LPCDLGTEMPLATE);
184
1: (pszIcon: LPCWSTR);
189
pfnCallback: LPFNPSPCALLBACKW;
192
pszHeaderTitle: LPCWSTR; // this is displayed in the header
193
pszHeaderSubTitle: LPCWSTR; //
196
{$EXTERNALSYM _PROPSHEETPAGEW}
197
PROPSHEETPAGEW = _PROPSHEETPAGEW;
198
{$EXTERNALSYM PROPSHEETPAGEW}
199
LPPROPSHEETPAGEW = ^PROPSHEETPAGEW;
200
{$EXTERNALSYM LPPROPSHEETPAGEW}
201
LPCPROPSHEETPAGEW = LPPROPSHEETPAGEW;
202
{$EXTERNALSYM LPCPROPSHEETPAGEW}
203
TPropSheetPageW = PROPSHEETPAGEW;
204
PPropSheetPageW = LPPROPSHEETPAGEW;
207
PROPSHEETPAGE = PROPSHEETPAGEW;
208
{$EXTERNALSYM PROPSHEETPAGE}
209
LPPROPSHEETPAGE = LPPROPSHEETPAGEW;
210
{$EXTERNALSYM LPPROPSHEETPAGE}
211
LPCPROPSHEETPAGE = LPCPROPSHEETPAGEW;
212
{$EXTERNALSYM LPCPROPSHEETPAGE}
213
TPropSheetPage = TPropSheetPageW;
214
PPropSheetPage = PPropSheetPageW;
217
PROPSHEETPAGE_V1_SIZE = 40; {PROPSHEETPAGEW_V1_SIZE}
218
{$EXTERNALSYM PROPSHEETPAGE_V1_SIZE}
220
PROPSHEETPAGE = PROPSHEETPAGEA;
221
{$EXTERNALSYM PROPSHEETPAGE}
222
LPPROPSHEETPAGE = LPPROPSHEETPAGEA;
223
{$EXTERNALSYM LPPROPSHEETPAGE}
224
LPCPROPSHEETPAGE = LPCPROPSHEETPAGEA;
225
{$EXTERNALSYM LPCPROPSHEETPAGE}
226
TPropSheetPage = TPropSheetPageA;
227
PPropSheetPage = PPropSheetPageA;
230
PROPSHEETPAGE_V1_SIZE = 40; {PROPSHEETPAGEA_V1_SIZE}
231
{$EXTERNALSYM PROPSHEETPAGE_V1_SIZE}
235
PSH_DEFAULT = $00000000;
236
{$EXTERNALSYM PSH_DEFAULT}
237
PSH_PROPTITLE = $00000001;
238
{$EXTERNALSYM PSH_PROPTITLE}
239
PSH_USEHICON = $00000002;
240
{$EXTERNALSYM PSH_USEHICON}
241
PSH_USEICONID = $00000004;
242
{$EXTERNALSYM PSH_USEICONID}
243
PSH_PROPSHEETPAGE = $00000008;
244
{$EXTERNALSYM PSH_PROPSHEETPAGE}
245
PSH_WIZARDHASFINISH = $00000010;
246
{$EXTERNALSYM PSH_WIZARDHASFINISH}
247
PSH_WIZARD = $00000020;
248
{$EXTERNALSYM PSH_WIZARD}
249
PSH_USEPSTARTPAGE = $00000040;
250
{$EXTERNALSYM PSH_USEPSTARTPAGE}
251
PSH_NOAPPLYNOW = $00000080;
252
{$EXTERNALSYM PSH_NOAPPLYNOW}
253
PSH_USECALLBACK = $00000100;
254
{$EXTERNALSYM PSH_USECALLBACK}
255
PSH_HASHELP = $00000200;
256
{$EXTERNALSYM PSH_HASHELP}
257
PSH_MODELESS = $00000400;
258
{$EXTERNALSYM PSH_MODELESS}
259
PSH_RTLREADING = $00000800;
260
{$EXTERNALSYM PSH_RTLREADING}
261
PSH_WIZARDCONTEXTHELP = $00001000;
262
{$EXTERNALSYM PSH_WIZARDCONTEXTHELP}
264
//----- New flags for wizard97 -----------
267
PSH_WIZARD97 = $01000000;
268
{$EXTERNALSYM PSH_WIZARD97}
270
PSH_WIZARD97 = $00002000;
271
{$EXTERNALSYM PSH_WIZARD97}
274
// 0x00004000 was not used by any previous release
276
PSH_WATERMARK = $00008000;
277
{$EXTERNALSYM PSH_WATERMARK}
278
PSH_USEHBMWATERMARK = $00010000; // user pass in a hbmWatermark instead of pszbmWatermark
279
{$EXTERNALSYM PSH_USEHBMWATERMARK}
280
PSH_USEHPLWATERMARK = $00020000; //
281
{$EXTERNALSYM PSH_USEHPLWATERMARK}
282
PSH_STRETCHWATERMARK = $00040000; // stretchwatermark also applies for the header
283
{$EXTERNALSYM PSH_STRETCHWATERMARK}
284
PSH_HEADER = $00080000;
285
{$EXTERNALSYM PSH_HEADER}
286
PSH_USEHBMHEADER = $00100000;
287
{$EXTERNALSYM PSH_USEHBMHEADER}
288
PSH_USEPAGELANG = $00200000; // use frame dialog template matched to page
289
{$EXTERNALSYM PSH_USEPAGELANG}
291
//----------------------------------------
293
//----- New flags for wizard-lite --------
295
PSH_WIZARD_LITE = $00400000;
296
{$EXTERNALSYM PSH_WIZARD_LITE}
297
PSH_NOCONTEXTHELP = $02000000;
298
{$EXTERNALSYM PSH_NOCONTEXTHELP}
300
//----------------------------------------
303
PFNPROPSHEETCALLBACK = function(hwn: HWND; uMsg: UINT; lParam: LPARAM): Integer; stdcall;
304
{$EXTERNALSYM PFNPROPSHEETCALLBACK}
307
//#define PROPSHEETHEADERA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERA, pfnCallback)
308
//#define PROPSHEETHEADERW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERW, pfnCallback)
311
_PROPSHEETHEADERA = record
315
hInstance: HINSTANCE;
319
1: (pszIcon: LPCSTR);
325
0: (nStartPage: UINT);
326
1: (pStartPage: LPCSTR);
330
0: (ppsp: LPCPROPSHEETPAGEA);
331
1: (phpage: PHPROPSHEETPAGE);
333
pfnCallback: PFNPROPSHEETCALLBACK;
337
0: (hbmWatermark: HBITMAP);
338
1: (pszbmWatermark: LPCSTR);
340
hplWatermark: HPALETTE;
343
0: (hbmHeader: HBITMAP); // Header bitmap shares the palette with watermark
344
1: (pszbmHeader: LPCSTR);
348
{$EXTERNALSYM _PROPSHEETHEADERA}
349
PROPSHEETHEADERA =_PROPSHEETHEADERA;
350
{$EXTERNALSYM PROPSHEETHEADERA}
351
LPPROPSHEETHEADERA = ^PROPSHEETHEADERA;
352
{$EXTERNALSYM LPPROPSHEETHEADERA}
353
LPCPROPSHEETHEADERA = LPPROPSHEETHEADERA;
354
{$EXTERNALSYM LPCPROPSHEETHEADERA}
355
TPropSheetHeaderA = PROPSHEETHEADERA;
356
PPropSheetHeaderA = LPPROPSHEETHEADERA;
358
_PROPSHEETHEADERW = record
362
hInstance: HINSTANCE;
366
1: (pszIcon: LPCWSTR);
372
0: (nStartPage: UINT);
373
1: (pStartPage: LPCWSTR);
377
0: (ppsp: LPCPROPSHEETPAGEW);
378
1: (phpage: PHPROPSHEETPAGE);
380
pfnCallback: PFNPROPSHEETCALLBACK;
384
0: (hbmWatermark: HBITMAP);
385
1: (pszbmWatermark: LPCWSTR);
387
hplWatermark: HPALETTE;
390
0: (hbmHeader: HBITMAP); // Header bitmap shares the palette with watermark
391
1: (pszbmHeader: LPCWSTR);
395
{$EXTERNALSYM _PROPSHEETHEADERW}
396
PROPSHEETHEADERW =_PROPSHEETHEADERW;
397
{$EXTERNALSYM PROPSHEETHEADERW}
398
LPPROPSHEETHEADERW = ^PROPSHEETHEADERW;
399
{$EXTERNALSYM LPPROPSHEETHEADERW}
400
LPCPROPSHEETHEADERW = LPPROPSHEETHEADERW;
401
{$EXTERNALSYM LPCPROPSHEETHEADERW}
402
TPropSheetHeaderW = PROPSHEETHEADERW;
403
PPropSheetHeaderW = LPPROPSHEETHEADERW;
406
PROPSHEETHEADER = PROPSHEETHEADERW;
407
{$EXTERNALSYM PROPSHEETHEADER}
408
LPPROPSHEETHEADER = LPPROPSHEETHEADERW;
409
{$EXTERNALSYM LPPROPSHEETHEADER}
410
LPCPROPSHEETHEADER = LPCPROPSHEETHEADERW;
411
{$EXTERNALSYM LPCPROPSHEETHEADER}
412
TPropSheetHeader = TPropSheetHeaderW;
413
PPropSheetHeader = PPropSheetHeaderW;
416
PROPSHEETHEADER_V1_SIZE = 40; {PROPSHEETHEADERW_V1_SIZE}
417
{$EXTERNALSYM PROPSHEETHEADER_V1_SIZE}
419
PROPSHEETHEADER = PROPSHEETHEADERA;
420
{$EXTERNALSYM PROPSHEETHEADER}
421
LPPROPSHEETHEADER = LPPROPSHEETHEADERA;
422
{$EXTERNALSYM LPPROPSHEETHEADER}
423
LPCPROPSHEETHEADER = LPCPROPSHEETHEADERA;
424
{$EXTERNALSYM LPCPROPSHEETHEADER}
425
TPropSheetHeader = TPropSheetHeaderA;
426
PPropSheetHeader = PPropSheetHeaderA;
429
PROPSHEETHEADER_V1_SIZE = 40; {PROPSHEETHEADERA_V1_SIZE}
430
{$EXTERNALSYM PROPSHEETHEADER_V1_SIZE}
434
PSCB_INITIALIZED = 1;
435
{$EXTERNALSYM PSCB_INITIALIZED}
437
{$EXTERNALSYM PSCB_PRECREATE}
439
function CreatePropertySheetPageA(const lppsp: PROPSHEETPAGEA): HPROPSHEETPAGE; stdcall;
440
{$EXTERNALSYM CreatePropertySheetPageA}
441
function CreatePropertySheetPageW(const lppsp: PROPSHEETPAGEW): HPROPSHEETPAGE; stdcall;
442
{$EXTERNALSYM DestroyPropertySheetPage}
443
function DestroyPropertySheetPage(hPSPage: HPROPSHEETPAGE): BOOL; stdcall;
444
{$EXTERNALSYM DestroyPropertySheetPage}
445
function PropertySheetA(const lppsph: PROPSHEETHEADERA): INT_PTR; stdcall;
446
{$EXTERNALSYM PropertySheetA}
447
function PropertySheetW(const lppsph: PROPSHEETHEADERW): INT_PTR; stdcall;
448
{$EXTERNALSYM PropertySheetW}
449
function CreatePropertySheetPage(const lppsp: PROPSHEETPAGE): HPROPSHEETPAGE; stdcall;
450
{$EXTERNALSYM DestroyPropertySheetPage}
451
function PropertySheet(const lppsph: PROPSHEETHEADER): INT_PTR; stdcall;
452
{$EXTERNALSYM PropertySheet}
455
LPFNADDPROPSHEETPAGE = function(page: HPROPSHEETPAGE; lParam: LPARAM): BOOL; stdcall;
456
{$EXTERNALSYM LPFNADDPROPSHEETPAGE}
457
LPFNADDPROPSHEETPAGES = function(pv: LPVOID; fn: LPFNADDPROPSHEETPAGE; lParam: LPARAM): BOOL; stdcall;
458
{$EXTERNALSYM LPFNADDPROPSHEETPAGES}
464
{$EXTERNALSYM _PSHNOTIFY}
465
PSHNOTIFY = _PSHNOTIFY;
466
{$EXTERNALSYM PSHNOTIFY}
467
LPPSHNOTIFY = ^PSHNOTIFY;
468
{$EXTERNALSYM LPPSHNOTIFY}
469
TPSHNotify = PSHNOTIFY;
470
PPSHNotify = LPPSHNOTIFY;
473
PSN_FIRST = ULONG(0-200);
474
{$EXTERNALSYM PSN_FIRST}
475
PSN_LAST = ULONG(0-299);
476
{$EXTERNALSYM PSN_LAST}
478
PSN_SETACTIVE = PSN_FIRST - 0;
479
{$EXTERNALSYM PSN_SETACTIVE}
480
PSN_KILLACTIVE = PSN_FIRST - 1;
481
{$EXTERNALSYM PSN_KILLACTIVE}
482
//PSN_VALIDATE = PSN_FIRST - 1;
483
//{$EXTERNALSYM PSN_VALIDATE}
484
PSN_APPLY = PSN_FIRST - 2;
485
{$EXTERNALSYM PSN_APPLY}
486
PSN_RESET = PSN_FIRST - 3;
487
{$EXTERNALSYM PSN_RESET}
488
//PSN_CANCEL = PSN_FIRST - 3;
489
//{$EXTERNALSYM PSN_CANCEL}
490
PSN_HELP = PSN_FIRST - 5;
491
{$EXTERNALSYM PSN_HELP}
492
PSN_WIZBACK = PSN_FIRST - 6;
493
{$EXTERNALSYM PSN_WIZBACK}
494
PSN_WIZNEXT = PSN_FIRST - 7;
495
{$EXTERNALSYM PSN_WIZNEXT}
496
PSN_WIZFINISH = PSN_FIRST - 8;
497
{$EXTERNALSYM PSN_WIZFINISH}
498
PSN_QUERYCANCEL = PSN_FIRST - 9;
499
{$EXTERNALSYM PSN_QUERYCANCEL}
500
PSN_GETOBJECT = PSN_FIRST - 10;
501
{$EXTERNALSYM PSN_GETOBJECT}
502
PSN_TRANSLATEACCELERATOR = PSN_FIRST - 12;
503
{$EXTERNALSYM PSN_TRANSLATEACCELERATOR}
504
PSN_QUERYINITIALFOCUS = PSN_FIRST - 13;
505
{$EXTERNALSYM PSN_QUERYINITIALFOCUS}
508
{$EXTERNALSYM PSNRET_NOERROR}
510
{$EXTERNALSYM PSNRET_INVALID}
511
PSNRET_INVALID_NOCHANGEPAGE = 2;
512
{$EXTERNALSYM PSNRET_INVALID_NOCHANGEPAGE}
513
PSNRET_MESSAGEHANDLED = 3;
514
{$EXTERNALSYM PSNRET_MESSAGEHANDLED}
516
PSM_SETCURSEL = WM_USER + 101;
517
{$EXTERNALSYM PSM_SETCURSEL}
519
function PropSheet_SetCurSel(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE; Index: Integer): BOOL;
522
PSM_REMOVEPAGE = WM_USER + 102;
523
{$EXTERNALSYM PSM_REMOVEPAGE}
525
procedure PropSheet_RemovePage(hPropSheetDlg: HWND; Index: Integer; hPage: HPROPSHEETPAGE);
528
PSM_ADDPAGE = WM_USER + 103;
529
{$EXTERNALSYM PSM_ADDPAGE}
531
function PropSheet_AddPage(hPropSheetDlg: HWND; hpage: HPROPSHEETPAGE): BOOL;
534
PSM_CHANGED = WM_USER + 104;
535
{$EXTERNALSYM PSM_CHANGED}
537
function PropSheet_Changed(hPropSheetDlg: HWND; hwndPage: HWND): BOOL;
540
PSM_RESTARTWINDOWS = WM_USER + 105;
541
{$EXTERNALSYM PSM_RESTARTWINDOWS}
543
procedure PropSheet_RestartWindows(hPropSheetDlg: HWND);
546
PSM_REBOOTSYSTEM = WM_USER + 106;
547
{$EXTERNALSYM PSM_REBOOTSYSTEM}
549
procedure PropSheet_RebootSystem(hPropSheetDlg: HWND);
552
PSM_CANCELTOCLOSE = WM_USER + 107;
553
{$EXTERNALSYM PSM_CANCELTOCLOSE}
555
procedure PropSheet_CancelToClose(hPropSheetDlg: HWND);
558
PSM_QUERYSIBLINGS = WM_USER + 108;
559
{$EXTERNALSYM PSM_QUERYSIBLINGS}
561
function PropSheet_QuerySiblings(hPropSheetDlg: HWND; Param1: WPARAM; Param2: LPARAM): Integer;
564
PSM_UNCHANGED = WM_USER + 109;
565
{$EXTERNALSYM PSM_UNCHANGED}
567
procedure PropSheet_UnChanged(hPropSheetDlg: HWND; hwndPage: HWND);
570
PSM_APPLY = WM_USER + 110;
571
{$EXTERNALSYM PSM_APPLY}
573
function PropSheet_Apply(hPropSheetDlg: HWND): BOOL;
576
PSM_SETTITLEA = WM_USER + 111;
577
{$EXTERNALSYM PSM_SETTITLEA}
578
PSM_SETTITLEW = WM_USER + 120;
579
{$EXTERNALSYM PSM_SETTITLEW}
582
PSM_SETTITLE = PSM_SETTITLEW;
583
{$EXTERNALSYM PSM_SETTITLE}
585
PSM_SETTITLE = PSM_SETTITLEA;
586
{$EXTERNALSYM PSM_SETTITLE}
589
procedure PropSheet_SetTitle(hPropSheetDlg: HWND; dwStyle: DWORD; lpszText: LPTSTR);
592
PSM_SETWIZBUTTONS = WM_USER + 112;
593
{$EXTERNALSYM PSM_SETWIZBUTTONS}
595
procedure PropSheet_SetWizButtons(hPropSheetDlg: HWND; dwFlags: DWORD);
598
PSWIZB_BACK = $00000001;
599
{$EXTERNALSYM PSWIZB_BACK}
600
PSWIZB_NEXT = $00000002;
601
{$EXTERNALSYM PSWIZB_NEXT}
602
PSWIZB_FINISH = $00000004;
603
{$EXTERNALSYM PSWIZB_FINISH}
604
PSWIZB_DISABLEDFINISH = $00000008;
605
{$EXTERNALSYM PSWIZB_DISABLEDFINISH}
607
PSM_PRESSBUTTON = WM_USER + 113;
608
{$EXTERNALSYM PSM_PRESSBUTTON}
610
function PropSheet_PressButton(hPropSheetDlg: HWND; iButton: Integer): BOOL;
614
{$EXTERNALSYM PSBTN_BACK}
616
{$EXTERNALSYM PSBTN_NEXT}
618
{$EXTERNALSYM PSBTN_FINISH}
620
{$EXTERNALSYM PSBTN_OK}
622
{$EXTERNALSYM PSBTN_APPLYNOW}
624
{$EXTERNALSYM PSBTN_CANCEL}
626
{$EXTERNALSYM PSBTN_HELP}
628
{$EXTERNALSYM PSBTN_MAX}
630
PSM_SETCURSELID = WM_USER + 114;
631
{$EXTERNALSYM PSM_SETCURSELID}
633
function PropSheet_SetCurSelByID(hPropSheetDlg: HWND; id: Integer): BOOL;
636
PSM_SETFINISHTEXTA = WM_USER + 115;
637
{$EXTERNALSYM PSM_SETFINISHTEXTA}
638
PSM_SETFINISHTEXTW = WM_USER + 121;
639
{$EXTERNALSYM PSM_SETFINISHTEXTW}
642
PSM_SETFINISHTEXT = PSM_SETFINISHTEXTW;
643
{$EXTERNALSYM PSM_SETFINISHTEXT}
645
PSM_SETFINISHTEXT = PSM_SETFINISHTEXTA;
646
{$EXTERNALSYM PSM_SETFINISHTEXT}
649
procedure PropSheet_SetFinishText(hPropSheetDlg: HWND; lpszText: LPTSTR);
652
PSM_GETTABCONTROL = WM_USER + 116;
653
{$EXTERNALSYM PSM_GETTABCONTROL}
655
function PropSheet_GetTabControl(hPropSheetDlg: HWND): HWND;
658
PSM_ISDIALOGMESSAGE = WM_USER + 117;
659
{$EXTERNALSYM PSM_ISDIALOGMESSAGE}
661
function PropSheet_IsDialogMessage(hDlg: HWND; pMsg: LPMSG): BOOL;
664
PSM_GETCURRENTPAGEHWND = WM_USER + 118;
665
{$EXTERNALSYM PSM_GETCURRENTPAGEHWND}
667
function PropSheet_GetCurrentPageHwnd(hDlg: HWND): HWND;
670
PSM_INSERTPAGE = WM_USER + 119;
671
{$EXTERNALSYM PSM_INSERTPAGE}
673
function PropSheet_InsertPage(hPropSheetDlg: HWND; index: Integer; hpage: HPROPSHEETPAGE): BOOL;
676
PSM_SETHEADERTITLEA = WM_USER + 125;
677
{$EXTERNALSYM PSM_SETHEADERTITLEA}
678
PSM_SETHEADERTITLEW = WM_USER + 126;
679
{$EXTERNALSYM PSM_SETHEADERTITLEW}
682
PSM_SETHEADERTITLE = PSM_SETHEADERTITLEW;
683
{$EXTERNALSYM PSM_SETHEADERTITLE}
685
PSM_SETHEADERTITLE = PSM_SETHEADERTITLEA;
686
{$EXTERNALSYM PSM_SETHEADERTITLE}
689
function PropSheet_SetHeaderTitle(hWizardDlg: HWND; iPageIndex: Integer; lpszText: LPCSTR): Integer;
692
PSM_SETHEADERSUBTITLEA = WM_USER + 127;
693
{$EXTERNALSYM PSM_SETHEADERSUBTITLEA}
694
PSM_SETHEADERSUBTITLEW = WM_USER + 128;
695
{$EXTERNALSYM PSM_SETHEADERSUBTITLEW}
698
PSM_SETHEADERSUBTITLE = PSM_SETHEADERSUBTITLEW;
699
{$EXTERNALSYM PSM_SETHEADERSUBTITLE}
701
PSM_SETHEADERSUBTITLE = PSM_SETHEADERSUBTITLEA;
702
{$EXTERNALSYM PSM_SETHEADERSUBTITLE}
705
procedure PropSheet_SetHeaderSubTitle(hWizardDlg: HWND; iPageIndex: Integer; pszHeaderSubTitle: LPCSTR);
708
PSM_HWNDTOINDEX = WM_USER + 129;
709
{$EXTERNALSYM PSM_HWNDTOINDEX}
711
function PropSheet_HwndToIndex(hPropSheetDlg: HWND; hPageDlg: HWND): Integer;
714
PSM_INDEXTOHWND = WM_USER + 130;
715
{$EXTERNALSYM PSM_INDEXTOHWND}
717
function PropSheet_IndexToHwnd(hPropSheetDlg: HWND; iPageIndex: Integer): HWND;
720
PSM_PAGETOINDEX = WM_USER + 131;
721
{$EXTERNALSYM PSM_PAGETOINDEX}
723
function PropSheet_PageToIndex(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE): Integer;
726
PSM_INDEXTOPAGE = WM_USER + 132;
727
{$EXTERNALSYM PSM_INDEXTOPAGE}
729
function PropSheet_IndexToPage(hPropSheetDlg: HWND; iPageIndex: Integer): HPROPSHEETPAGE;
732
PSM_IDTOINDEX = WM_USER + 133;
733
{$EXTERNALSYM PSM_IDTOINDEX}
735
function PropSheet_IdToIndex(hPropSheetDlg: HWND; iPageId: Integer): Integer;
738
PSM_INDEXTOID = WM_USER + 134;
739
{$EXTERNALSYM PSM_INDEXTOID}
741
function PropSheet_IndexToId(hPropSheetDlg: HWND; iPageIndex: Integer): Integer;
744
PSM_GETRESULT = WM_USER + 135;
745
{$EXTERNALSYM PSM_GETRESULT}
747
function PropSheet_GetResult(hPropSheetDlg: HWND): BOOL;
750
PSM_RECALCPAGESIZES = WM_USER + 136;
751
{$EXTERNALSYM PSM_RECALCPAGESIZES}
753
function PropSheet_RecalcPageSizes(hPropSheetDlg: HWND): BOOL;
756
ID_PSRESTARTWINDOWS = $2;
757
{$EXTERNALSYM ID_PSRESTARTWINDOWS}
759
ID_PSREBOOTSYSTEM = ID_PSRESTARTWINDOWS or $1;
760
{$EXTERNALSYM ID_PSREBOOTSYSTEM}
763
{$EXTERNALSYM WIZ_CXDLG}
765
{$EXTERNALSYM WIZ_CYDLG}
768
{$EXTERNALSYM WIZ_CXBMP}
771
{$EXTERNALSYM WIZ_BODYX}
773
{$EXTERNALSYM WIZ_BODYCX}
776
{$EXTERNALSYM PROP_SM_CXDLG}
778
{$EXTERNALSYM PROP_SM_CYDLG}
780
PROP_MED_CXDLG = 227;
781
{$EXTERNALSYM PROP_MED_CXDLG}
782
PROP_MED_CYDLG = 215;
783
{$EXTERNALSYM PROP_MED_CYDLG}
786
{$EXTERNALSYM PROP_LG_CXDLG}
788
{$EXTERNALSYM PROP_LG_CYDLG}
793
comctl32 = 'comctl32.dll';
800
function PropSheet_SetCurSel(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE; Index: Integer): BOOL;
802
Result := BOOL(SendMessage(hPropSheetDlg, PSM_SETCURSEL, WPARAM(Index), LPARAM(hPage)));
805
procedure PropSheet_RemovePage(hPropSheetDlg: HWND; Index: Integer; hPage: HPROPSHEETPAGE);
807
SendMessage(hPropSheetDlg, PSM_REMOVEPAGE, Index, LPARAM(hPage));
810
function PropSheet_AddPage(hPropSheetDlg: HWND; hpage: HPROPSHEETPAGE): BOOL;
812
Result := BOOL(SendMessage(hPropSheetDlg, PSM_ADDPAGE, 0, LPARAM(hpage)));
815
function PropSheet_Changed(hPropSheetDlg: HWND; hwndPage: HWND): BOOL;
817
Result := BOOL(SendMessage(hPropSheetDlg, PSM_CHANGED, WPARAM(hwndPage), 0));
820
procedure PropSheet_RestartWindows(hPropSheetDlg: HWND);
822
SendMessage(hPropSheetDlg, PSM_RESTARTWINDOWS, 0, 0);
825
procedure PropSheet_RebootSystem(hPropSheetDlg: HWND);
827
SendMessage(hPropSheetDlg, PSM_REBOOTSYSTEM, 0, 0);
830
procedure PropSheet_CancelToClose(hPropSheetDlg: HWND);
832
PostMessage(hPropSheetDlg, PSM_CANCELTOCLOSE, 0, 0);
835
function PropSheet_QuerySiblings(hPropSheetDlg: HWND; Param1: WPARAM; Param2: LPARAM): Integer;
837
Result := SendMessage(hPropSheetDlg, PSM_QUERYSIBLINGS, Param1, Param2);
840
procedure PropSheet_UnChanged(hPropSheetDlg: HWND; hwndPage: HWND);
842
SendMessage(hPropSheetDlg, PSM_UNCHANGED, WPARAM(hwndPage), 0);
845
function PropSheet_Apply(hPropSheetDlg: HWND): BOOL;
847
Result := BOOL(SendMessage(hPropSheetDlg, PSM_APPLY, 0, 0));
850
procedure PropSheet_SetTitle(hPropSheetDlg: HWND; dwStyle: DWORD; lpszText: LPTSTR);
852
SendMessage(hPropSheetDlg, PSM_SETTITLE, dwStyle, LPARAM(LPCTSTR(lpszText)));
855
procedure PropSheet_SetWizButtons(hPropSheetDlg: HWND; dwFlags: DWORD);
857
PostMessage(hPropSheetDlg, PSM_SETWIZBUTTONS, 0, LPARAM(dwFlags));
860
function PropSheet_PressButton(hPropSheetDlg: HWND; iButton: Integer): BOOL;
862
Result := PostMessage(hPropSheetDlg, PSM_PRESSBUTTON, WPARAM(iButton), 0);
865
function PropSheet_SetCurSelByID(hPropSheetDlg: HWND; id: Integer): BOOL;
867
Result := BOOL(SendMessage(hPropSheetDlg, PSM_SETCURSELID, 0, LPARAM(id)));
870
procedure PropSheet_SetFinishText(hPropSheetDlg: HWND; lpszText: LPTSTR);
872
SendMessage(hPropSheetDlg, PSM_SETFINISHTEXT, 0, LPARAM(lpszText));
875
function PropSheet_GetTabControl(hPropSheetDlg: HWND): HWND;
877
Result := SendMessage(hPropSheetDlg, PSM_GETTABCONTROL, 0, 0);
880
function PropSheet_IsDialogMessage(hDlg: HWND; pMsg: LPMSG): BOOL;
882
Result := BOOL(SendMessage(hDlg, PSM_ISDIALOGMESSAGE, 0, LPARAM(pMsg)));
885
function PropSheet_GetCurrentPageHwnd(hDlg: HWND): HWND;
887
Result := SendMessage(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0);
890
function PropSheet_InsertPage(hPropSheetDlg: HWND; index: Integer; hpage: HPROPSHEETPAGE): BOOL;
892
Result := BOOL(SendMessage(hPropSheetDlg, PSM_INSERTPAGE, WPARAM(index), LPARAM(hpage)));
895
function PropSheet_SetHeaderTitle(hWizardDlg: HWND; iPageIndex: Integer; lpszText: LPCSTR): Integer;
897
Result := SendMessage(hWizardDlg, PSM_SETHEADERTITLE, WPARAM(iPageIndex), LPARAM(lpszText));
900
procedure PropSheet_SetHeaderSubTitle(hWizardDlg: HWND; iPageIndex: Integer; pszHeaderSubTitle: LPCSTR);
902
SendMessage(hWizardDlg, PSM_SETHEADERSUBTITLE, WPARAM(iPageIndex), LPARAM(pszHeaderSubTitle));
905
function PropSheet_HwndToIndex(hPropSheetDlg: HWND; hPageDlg: HWND): Integer;
907
Result := SendMessage(hPropSheetDlg, PSM_HWNDTOINDEX, WPARAM(hPageDlg), 0);
910
function PropSheet_IndexToHwnd(hPropSheetDlg: HWND; iPageIndex: Integer): HWND;
912
Result := SendMessage(hPropSheetDlg, PSM_INDEXTOHWND, WPARAM(iPageIndex), 0);
915
function PropSheet_PageToIndex(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE): Integer;
917
Result := SendMessage(hPropSheetDlg, PSM_PAGETOINDEX, 0, LPARAM(hpage));
920
function PropSheet_IndexToPage(hPropSheetDlg: HWND; iPageIndex: Integer): HPROPSHEETPAGE;
922
Result := HPROPSHEETPAGE(SendMessage(hPropSheetDlg, PSM_INDEXTOPAGE, WPARAM(iPageIndex), 0));
925
function PropSheet_IdToIndex(hPropSheetDlg: HWND; iPageId: Integer): Integer;
927
Result := SendMessage(hPropSheetDlg, PSM_IDTOINDEX, 0, LPARAM(iPageId));
930
function PropSheet_IndexToId(hPropSheetDlg: HWND; iPageIndex: Integer): Integer;
932
Result := SendMessage(hPropSheetDlg, PSM_INDEXTOID, WPARAM(iPageIndex), 0)
935
function PropSheet_GetResult(hPropSheetDlg: HWND): BOOL;
937
Result := BOOL(SendMessage(hPropSheetDlg, PSM_GETRESULT, 0, 0));
940
function PropSheet_RecalcPageSizes(hPropSheetDlg: HWND): BOOL;
942
Result := BOOL(SendMessage(hPropSheetDlg, PSM_RECALCPAGESIZES, 0, 0));
945
{$IFDEF DYNAMIC_LINK}
948
_CreatePropertySheetPageA: Pointer;
950
function CreatePropertySheetPageA;
952
GetProcedureAddress(_CreatePropertySheetPageA, comctl32, 'CreatePropertySheetPageA');
956
JMP [_CreatePropertySheetPageA]
961
_CreatePropertySheetPageW: Pointer;
963
function CreatePropertySheetPageW;
965
GetProcedureAddress(_CreatePropertySheetPageW, comctl32, 'CreatePropertySheetPageW');
969
JMP [_CreatePropertySheetPageW]
974
_DestroyPropertySheetPage: Pointer;
976
function DestroyPropertySheetPage;
978
GetProcedureAddress(_DestroyPropertySheetPage, comctl32, 'DestroyPropertySheetPage');
982
JMP [_DestroyPropertySheetPage]
987
_PropertySheetA: Pointer;
989
function PropertySheetA;
991
GetProcedureAddress(_PropertySheetA, comctl32, 'PropertySheetA');
995
JMP [_PropertySheetA]
1000
_PropertySheetW: Pointer;
1002
function PropertySheetW;
1004
GetProcedureAddress(_PropertySheetW, comctl32, 'PropertySheetW');
1008
JMP [_PropertySheetW]
1013
_CreatePropertySheetPage: Pointer;
1015
function CreatePropertySheetPage;
1017
GetProcedureAddress(_CreatePropertySheetPage, comctl32, 'CreatePropertySheetPage' + AWSuffix);
1021
JMP [_CreatePropertySheetPage]
1026
_PropertySheet: Pointer;
1028
function PropertySheet;
1030
GetProcedureAddress(_PropertySheet, comctl32, 'PropertySheet' + AWSuffix);
1034
JMP [_PropertySheet]
1040
function CreatePropertySheetPageA; external comctl32 name 'CreatePropertySheetPageA';
1041
function CreatePropertySheetPageW; external comctl32 name 'CreatePropertySheetPageW';
1042
function DestroyPropertySheetPage; external comctl32 name 'DestroyPropertySheetPage';
1043
function PropertySheetA; external comctl32 name 'PropertySheetA';
1044
function PropertySheetW; external comctl32 name 'PropertySheetW';
1045
function CreatePropertySheetPage; external comctl32 name 'CreatePropertySheetPage' + AWSuffix;
1046
function PropertySheet; external comctl32 name 'PropertySheet' + AWSuffix;
1048
{$ENDIF DYNAMIC_LINK}