~ubuntu-branches/ubuntu/dapper/fpc/dapper

« back to all changes in this revision

Viewing changes to packages/extra/winunits/jwaprsht.pas

  • Committer: Bazaar Package Importer
  • Author(s): Carlos Laviola
  • Date: 2005-05-30 11:59:10 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20050530115910-x5pbzm4qqta4i94h
Tags: 2.0.0-2
debian/fp-compiler.postinst.in: forgot to reapply the patch that
correctly creates the slave link to pc(1).  (Closes: #310907)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
{******************************************************************************}
 
2
{                                                                              }
 
3
{ Property Sheet Pages API interface Unit for Object Pascal                    }
 
4
{                                                                              }
 
5
{ Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft          }
 
6
{ Corporation. All Rights Reserved.                                            }
 
7
{                                                                              }
 
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).               }
 
11
{                                                                              }
 
12
{ Portions created by Marcel van Brakel are Copyright (C) 1999-2001            }
 
13
{ Marcel van Brakel. All Rights Reserved.                                      }
 
14
{                                                                              }
 
15
{ Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI)        }
 
16
{                                                                              }
 
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              }
 
19
{                                                                              }
 
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                                      }
 
24
{                                                                              }
 
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.    }
 
28
{                                                                              }
 
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.          }
 
38
{                                                                              }
 
39
{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
 
40
{                                                                              }
 
41
{******************************************************************************}
 
42
 
 
43
// $Id: jwaprsht.pas,v 1.1 2005/04/04 07:56:10 marco Exp $
 
44
 
 
45
unit JwaPrSht;
 
46
 
 
47
{$WEAKPACKAGEUNIT}
 
48
 
 
49
{$HPPEMIT ''}
 
50
{$HPPEMIT '#include "ntdsapi.h"'}
 
51
{$HPPEMIT ''}
 
52
{$HPPEMIT 'typedef PHPROPSHEETPAGE  *HPROPSHEETPAGE'}
 
53
{$HPPEMIT ''}
 
54
 
 
55
{$I jediapilib.inc}
 
56
 
 
57
interface
 
58
 
 
59
uses
 
60
  JwaWinNT, JwaWinUser, JwaWinType;
 
61
 
 
62
//#ifndef CCSIZEOF_STRUCT
 
63
//#define CCSIZEOF_STRUCT(structname, member)  (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))
 
64
//#endif
 
65
 
 
66
//
 
67
// For compilers that don't support nameless unions
 
68
//
 
69
 
 
70
const
 
71
  MAXPROPPAGES           = 100;
 
72
  {$EXTERNALSYM MAXPROPPAGES}
 
73
 
 
74
type
 
75
  HPROPSHEETPAGE = Pointer;
 
76
  {$EXTERNALSYM HPROPSHEETPAGE}
 
77
  PHPROPSHEETPAGE = ^HPROPSHEETPAGE;
 
78
  {$NODEFINE PHPROPSHEETPAGE}
 
79
 
 
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}
 
84
 
 
85
  {$IFDEF UNICODE}
 
86
  LPFNPSPCALLBACK = function(hwnd: HWND; uMsg: UINT; ppsp: Pointer{LPPROPSHEETPAGEW}): UINT; stdcall;
 
87
  {$EXTERNALSYM LPFNPSPCALLBACK}
 
88
  {$ELSE}
 
89
  LPFNPSPCALLBACK = function(hwnd: HWND; uMsg: UINT; ppsp: Pointer{LPPROPSHEETPAGEA}): UINT; stdcall;
 
90
  {$EXTERNALSYM LPFNPSPCALLBACK}
 
91
  {$ENDIF UNICODE}
 
92
  
 
93
const
 
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}
 
106
 
 
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}
 
115
 
 
116
//----- New flags for wizard97 --------------
 
117
 
 
118
  PSP_HIDEHEADER            = $00000800;
 
119
  {$EXTERNALSYM PSP_HIDEHEADER}
 
120
  PSP_USEHEADERTITLE        = $00001000;
 
121
  {$EXTERNALSYM PSP_USEHEADERTITLE}
 
122
  PSP_USEHEADERSUBTITLE     = $00002000;
 
123
  {$EXTERNALSYM PSP_USEHEADERSUBTITLE}
 
124
 
 
125
//-------------------------------------------
 
126
 
 
127
  PSPCB_ADDREF           = 0;
 
128
  {$EXTERNALSYM PSPCB_ADDREF}
 
129
  PSPCB_RELEASE          = 1;
 
130
  {$EXTERNALSYM PSPCB_RELEASE}
 
131
  PSPCB_CREATE           = 2;
 
132
  {$EXTERNALSYM PSPCB_CREATE}
 
133
 
 
134
//#define PROPSHEETPAGEA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEA, pcRefParent)
 
135
//#define PROPSHEETPAGEW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEW, pcRefParent)
 
136
 
 
137
type
 
138
  _PROPSHEETPAGEA = record
 
139
    dwSize: DWORD;
 
140
    dwFlags: DWORD;
 
141
    hInstance: HINSTANCE;
 
142
    u: record
 
143
    case Integer of
 
144
      0: (pszTemplate: LPCSTR);
 
145
      1: (pResource: LPCDLGTEMPLATE);
 
146
    end;
 
147
    u2: record
 
148
    case Integer of
 
149
      0: (hIcon: HICON);
 
150
      1: (pszIcon: LPCSTR);
 
151
    end;
 
152
    pszTitle: LPCSTR;
 
153
    pfnDlgProc: DLGPROC;
 
154
    lParam: LPARAM;
 
155
    pfnCallback: LPFNPSPCALLBACKA;
 
156
    pcRefParent: LPUINT;
 
157
    {$IFDEF IE400_UP}
 
158
    pszHeaderTitle: LPCSTR;    // this is displayed in the header
 
159
    pszHeaderSubTitle: LPCSTR; //
 
160
    {$ENDIF IE400_UP}
 
161
  end;
 
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;
 
171
 
 
172
  _PROPSHEETPAGEW = record
 
173
    dwSize: DWORD;
 
174
    dwFlags: DWORD;
 
175
    hInstance: HINSTANCE;
 
176
    u: record
 
177
    case Integer of
 
178
      0: (pszTemplate: LPCWSTR);
 
179
      1: (pResource: LPCDLGTEMPLATE);
 
180
    end;
 
181
    u2: record
 
182
    case Integer of
 
183
      0: (hIcon: HICON);
 
184
      1: (pszIcon: LPCWSTR);
 
185
    end;
 
186
    pszTitle: LPCWSTR;
 
187
    pfnDlgProc: DLGPROC;
 
188
    lParam: LPARAM;
 
189
    pfnCallback: LPFNPSPCALLBACKW;
 
190
    pcRefParent: LPUINT;
 
191
    {$IFDEF IE400_UP}
 
192
    pszHeaderTitle: LPCWSTR;    // this is displayed in the header
 
193
    pszHeaderSubTitle: LPCWSTR; //
 
194
    {$ENDIF IE400_UP}
 
195
  end;
 
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;
 
205
 
 
206
{$IFDEF UNICODE}
 
207
  PROPSHEETPAGE = PROPSHEETPAGEW;
 
208
  {$EXTERNALSYM PROPSHEETPAGE}
 
209
  LPPROPSHEETPAGE = LPPROPSHEETPAGEW;
 
210
  {$EXTERNALSYM LPPROPSHEETPAGE}
 
211
  LPCPROPSHEETPAGE = LPCPROPSHEETPAGEW;
 
212
  {$EXTERNALSYM LPCPROPSHEETPAGE}
 
213
  TPropSheetPage = TPropSheetPageW;
 
214
  PPropSheetPage = PPropSheetPageW;
 
215
 
 
216
const
 
217
  PROPSHEETPAGE_V1_SIZE  = 40; {PROPSHEETPAGEW_V1_SIZE}
 
218
  {$EXTERNALSYM PROPSHEETPAGE_V1_SIZE}
 
219
{$ELSE}
 
220
  PROPSHEETPAGE = PROPSHEETPAGEA;
 
221
  {$EXTERNALSYM PROPSHEETPAGE}
 
222
  LPPROPSHEETPAGE = LPPROPSHEETPAGEA;
 
223
  {$EXTERNALSYM LPPROPSHEETPAGE}
 
224
  LPCPROPSHEETPAGE = LPCPROPSHEETPAGEA;
 
225
  {$EXTERNALSYM LPCPROPSHEETPAGE}
 
226
  TPropSheetPage = TPropSheetPageA;
 
227
  PPropSheetPage = PPropSheetPageA;
 
228
 
 
229
const
 
230
  PROPSHEETPAGE_V1_SIZE  = 40; {PROPSHEETPAGEA_V1_SIZE}
 
231
  {$EXTERNALSYM PROPSHEETPAGE_V1_SIZE}
 
232
{$ENDIF UNICODE}
 
233
 
 
234
const
 
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}
 
263
 
 
264
//----- New flags for wizard97 -----------
 
265
 
 
266
  {$IFDEF IE500_UP}
 
267
  PSH_WIZARD97           = $01000000;
 
268
  {$EXTERNALSYM PSH_WIZARD97}
 
269
  {$ELSE}
 
270
  PSH_WIZARD97           = $00002000;
 
271
  {$EXTERNALSYM PSH_WIZARD97}
 
272
  {$ENDIF IE500_UP}
 
273
 
 
274
// 0x00004000 was not used by any previous release
 
275
 
 
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}
 
290
 
 
291
//----------------------------------------
 
292
 
 
293
//----- New flags for wizard-lite --------
 
294
 
 
295
 PSH_WIZARD_LITE        = $00400000;
 
296
 {$EXTERNALSYM PSH_WIZARD_LITE}
 
297
 PSH_NOCONTEXTHELP      = $02000000;
 
298
 {$EXTERNALSYM PSH_NOCONTEXTHELP}
 
299
 
 
300
//----------------------------------------
 
301
 
 
302
type
 
303
  PFNPROPSHEETCALLBACK = function(hwn: HWND; uMsg: UINT; lParam: LPARAM): Integer; stdcall;
 
304
  {$EXTERNALSYM PFNPROPSHEETCALLBACK}
 
305
 
 
306
//const
 
307
//#define PROPSHEETHEADERA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERA, pfnCallback)
 
308
//#define PROPSHEETHEADERW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERW, pfnCallback)
 
309
 
 
310
type
 
311
  _PROPSHEETHEADERA = record
 
312
    dwSize: DWORD;
 
313
    dwFlags: DWORD;
 
314
    hwndParent: HWND;
 
315
    hInstance: HINSTANCE;
 
316
    u: record
 
317
    case Integer of
 
318
      0: (hIcon: HICON);
 
319
      1: (pszIcon: LPCSTR);
 
320
    end;
 
321
    pszCaption: LPCSTR;
 
322
    nPages: UINT;
 
323
    u2: record
 
324
    case Integer of
 
325
      0: (nStartPage: UINT);
 
326
      1: (pStartPage: LPCSTR);
 
327
    end;
 
328
    u3: record
 
329
    case Integer of
 
330
      0: (ppsp: LPCPROPSHEETPAGEA);
 
331
      1: (phpage: PHPROPSHEETPAGE);
 
332
    end;
 
333
    pfnCallback: PFNPROPSHEETCALLBACK;
 
334
    {$IFDEF IE400_UP}
 
335
    u4: record
 
336
    case Integer of
 
337
      0: (hbmWatermark: HBITMAP);
 
338
      1: (pszbmWatermark: LPCSTR);
 
339
    end;
 
340
    hplWatermark: HPALETTE;
 
341
    u5: record
 
342
    case Integer of
 
343
      0: (hbmHeader: HBITMAP);     // Header  bitmap shares the palette with watermark
 
344
      1: (pszbmHeader: LPCSTR);
 
345
    end;
 
346
    {$ENDIF IE400_UP}
 
347
  end;
 
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;
 
357
 
 
358
  _PROPSHEETHEADERW = record
 
359
    dwSize: DWORD;
 
360
    dwFlags: DWORD;
 
361
    hwndParent: HWND;
 
362
    hInstance: HINSTANCE;
 
363
    u: record
 
364
    case Integer of
 
365
      0: (hIcon: HICON);
 
366
      1: (pszIcon: LPCWSTR);
 
367
    end;
 
368
    pszCaption: LPCWSTR;
 
369
    nPages: UINT;
 
370
    u2: record
 
371
    case Integer of
 
372
      0: (nStartPage: UINT);
 
373
      1: (pStartPage: LPCWSTR);
 
374
    end;
 
375
    u3: record
 
376
    case Integer of
 
377
      0: (ppsp: LPCPROPSHEETPAGEW);
 
378
      1: (phpage: PHPROPSHEETPAGE);
 
379
    end;
 
380
    pfnCallback: PFNPROPSHEETCALLBACK;
 
381
    {$IFDEF IE400_UP}
 
382
    u4: record
 
383
    case Integer of
 
384
      0: (hbmWatermark: HBITMAP);
 
385
      1: (pszbmWatermark: LPCWSTR);
 
386
    end;
 
387
    hplWatermark: HPALETTE;
 
388
    u5: record
 
389
    case Integer of
 
390
      0: (hbmHeader: HBITMAP);     // Header  bitmap shares the palette with watermark
 
391
      1: (pszbmHeader: LPCWSTR);
 
392
    end;
 
393
    {$ENDIF IE400_UP}
 
394
  end;
 
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;
 
404
 
 
405
{$IFDEF UNICODE}
 
406
  PROPSHEETHEADER = PROPSHEETHEADERW;
 
407
  {$EXTERNALSYM PROPSHEETHEADER}
 
408
  LPPROPSHEETHEADER  = LPPROPSHEETHEADERW;
 
409
  {$EXTERNALSYM LPPROPSHEETHEADER}
 
410
  LPCPROPSHEETHEADER = LPCPROPSHEETHEADERW;
 
411
  {$EXTERNALSYM LPCPROPSHEETHEADER}
 
412
  TPropSheetHeader = TPropSheetHeaderW;
 
413
  PPropSheetHeader = PPropSheetHeaderW;
 
414
 
 
415
const
 
416
  PROPSHEETHEADER_V1_SIZE = 40; {PROPSHEETHEADERW_V1_SIZE}
 
417
  {$EXTERNALSYM PROPSHEETHEADER_V1_SIZE}
 
418
{$ELSE}
 
419
  PROPSHEETHEADER = PROPSHEETHEADERA;
 
420
  {$EXTERNALSYM PROPSHEETHEADER}
 
421
  LPPROPSHEETHEADER = LPPROPSHEETHEADERA;
 
422
  {$EXTERNALSYM LPPROPSHEETHEADER}
 
423
  LPCPROPSHEETHEADER = LPCPROPSHEETHEADERA;
 
424
  {$EXTERNALSYM LPCPROPSHEETHEADER}
 
425
  TPropSheetHeader = TPropSheetHeaderA;
 
426
  PPropSheetHeader = PPropSheetHeaderA;
 
427
 
 
428
const
 
429
  PROPSHEETHEADER_V1_SIZE = 40; {PROPSHEETHEADERA_V1_SIZE}
 
430
  {$EXTERNALSYM PROPSHEETHEADER_V1_SIZE}
 
431
{$ENDIF UNICODE}
 
432
 
 
433
const
 
434
  PSCB_INITIALIZED = 1;
 
435
  {$EXTERNALSYM PSCB_INITIALIZED}
 
436
  PSCB_PRECREATE   = 2;
 
437
  {$EXTERNALSYM PSCB_PRECREATE}
 
438
 
 
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}
 
453
 
 
454
type
 
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}
 
459
 
 
460
  _PSHNOTIFY = record
 
461
    hdr: NMHDR;
 
462
    lParam: LPARAM;
 
463
  end;
 
464
  {$EXTERNALSYM _PSHNOTIFY}
 
465
  PSHNOTIFY = _PSHNOTIFY;
 
466
  {$EXTERNALSYM PSHNOTIFY}
 
467
  LPPSHNOTIFY = ^PSHNOTIFY;
 
468
  {$EXTERNALSYM LPPSHNOTIFY}
 
469
  TPSHNotify = PSHNOTIFY;
 
470
  PPSHNotify = LPPSHNOTIFY;  
 
471
 
 
472
const
 
473
  PSN_FIRST              = ULONG(0-200);
 
474
  {$EXTERNALSYM PSN_FIRST}
 
475
  PSN_LAST               = ULONG(0-299);
 
476
  {$EXTERNALSYM PSN_LAST}
 
477
 
 
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}
 
506
 
 
507
  PSNRET_NOERROR              = 0;
 
508
  {$EXTERNALSYM PSNRET_NOERROR}
 
509
  PSNRET_INVALID              = 1;
 
510
  {$EXTERNALSYM PSNRET_INVALID}
 
511
  PSNRET_INVALID_NOCHANGEPAGE = 2;
 
512
  {$EXTERNALSYM PSNRET_INVALID_NOCHANGEPAGE}
 
513
  PSNRET_MESSAGEHANDLED       = 3;
 
514
  {$EXTERNALSYM PSNRET_MESSAGEHANDLED}
 
515
 
 
516
  PSM_SETCURSEL = WM_USER + 101;
 
517
  {$EXTERNALSYM PSM_SETCURSEL}
 
518
 
 
519
function PropSheet_SetCurSel(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE; Index: Integer): BOOL;
 
520
 
 
521
const
 
522
  PSM_REMOVEPAGE = WM_USER + 102;
 
523
  {$EXTERNALSYM PSM_REMOVEPAGE}
 
524
 
 
525
procedure PropSheet_RemovePage(hPropSheetDlg: HWND; Index: Integer; hPage: HPROPSHEETPAGE);
 
526
 
 
527
const
 
528
  PSM_ADDPAGE = WM_USER + 103;
 
529
  {$EXTERNALSYM PSM_ADDPAGE}
 
530
 
 
531
function PropSheet_AddPage(hPropSheetDlg: HWND; hpage: HPROPSHEETPAGE): BOOL;
 
532
 
 
533
const
 
534
  PSM_CHANGED = WM_USER + 104;
 
535
  {$EXTERNALSYM PSM_CHANGED}
 
536
 
 
537
function PropSheet_Changed(hPropSheetDlg: HWND; hwndPage: HWND): BOOL;
 
538
 
 
539
const
 
540
  PSM_RESTARTWINDOWS = WM_USER + 105;
 
541
  {$EXTERNALSYM PSM_RESTARTWINDOWS}
 
542
 
 
543
procedure PropSheet_RestartWindows(hPropSheetDlg: HWND);
 
544
 
 
545
const
 
546
  PSM_REBOOTSYSTEM = WM_USER + 106;
 
547
  {$EXTERNALSYM PSM_REBOOTSYSTEM}
 
548
 
 
549
procedure PropSheet_RebootSystem(hPropSheetDlg: HWND);
 
550
 
 
551
const
 
552
  PSM_CANCELTOCLOSE = WM_USER + 107;
 
553
  {$EXTERNALSYM PSM_CANCELTOCLOSE}
 
554
 
 
555
procedure PropSheet_CancelToClose(hPropSheetDlg: HWND);
 
556
 
 
557
const
 
558
  PSM_QUERYSIBLINGS = WM_USER + 108;
 
559
  {$EXTERNALSYM PSM_QUERYSIBLINGS}
 
560
 
 
561
function PropSheet_QuerySiblings(hPropSheetDlg: HWND; Param1: WPARAM; Param2: LPARAM): Integer;
 
562
 
 
563
const
 
564
  PSM_UNCHANGED = WM_USER + 109;
 
565
  {$EXTERNALSYM PSM_UNCHANGED}
 
566
 
 
567
procedure PropSheet_UnChanged(hPropSheetDlg: HWND; hwndPage: HWND);
 
568
 
 
569
const
 
570
  PSM_APPLY = WM_USER + 110;
 
571
  {$EXTERNALSYM PSM_APPLY}
 
572
 
 
573
function PropSheet_Apply(hPropSheetDlg: HWND): BOOL;
 
574
 
 
575
const
 
576
  PSM_SETTITLEA = WM_USER + 111;
 
577
  {$EXTERNALSYM PSM_SETTITLEA}
 
578
  PSM_SETTITLEW = WM_USER + 120;
 
579
  {$EXTERNALSYM PSM_SETTITLEW}
 
580
 
 
581
  {$IFDEF UNICODE}
 
582
  PSM_SETTITLE = PSM_SETTITLEW;
 
583
  {$EXTERNALSYM PSM_SETTITLE}
 
584
  {$ELSE}
 
585
  PSM_SETTITLE = PSM_SETTITLEA;
 
586
  {$EXTERNALSYM PSM_SETTITLE}
 
587
  {$ENDIF UNICODE}
 
588
 
 
589
procedure PropSheet_SetTitle(hPropSheetDlg: HWND; dwStyle: DWORD; lpszText: LPTSTR);
 
590
 
 
591
const
 
592
  PSM_SETWIZBUTTONS = WM_USER + 112;
 
593
  {$EXTERNALSYM PSM_SETWIZBUTTONS}
 
594
 
 
595
procedure PropSheet_SetWizButtons(hPropSheetDlg: HWND; dwFlags: DWORD);
 
596
 
 
597
const
 
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}
 
606
 
 
607
  PSM_PRESSBUTTON = WM_USER + 113;
 
608
  {$EXTERNALSYM PSM_PRESSBUTTON}
 
609
 
 
610
function PropSheet_PressButton(hPropSheetDlg: HWND; iButton: Integer): BOOL;
 
611
 
 
612
const
 
613
  PSBTN_BACK     = 0;
 
614
  {$EXTERNALSYM PSBTN_BACK}
 
615
  PSBTN_NEXT     = 1;
 
616
  {$EXTERNALSYM PSBTN_NEXT}
 
617
  PSBTN_FINISH   = 2;
 
618
  {$EXTERNALSYM PSBTN_FINISH}
 
619
  PSBTN_OK       = 3;
 
620
  {$EXTERNALSYM PSBTN_OK}
 
621
  PSBTN_APPLYNOW = 4;
 
622
  {$EXTERNALSYM PSBTN_APPLYNOW}
 
623
  PSBTN_CANCEL   = 5;
 
624
  {$EXTERNALSYM PSBTN_CANCEL}
 
625
  PSBTN_HELP     = 6;
 
626
  {$EXTERNALSYM PSBTN_HELP}
 
627
  PSBTN_MAX      = 6;
 
628
  {$EXTERNALSYM PSBTN_MAX}
 
629
 
 
630
  PSM_SETCURSELID = WM_USER + 114;
 
631
  {$EXTERNALSYM PSM_SETCURSELID}
 
632
 
 
633
function PropSheet_SetCurSelByID(hPropSheetDlg: HWND; id: Integer): BOOL;
 
634
 
 
635
const
 
636
  PSM_SETFINISHTEXTA = WM_USER + 115;
 
637
  {$EXTERNALSYM PSM_SETFINISHTEXTA}
 
638
  PSM_SETFINISHTEXTW = WM_USER + 121;
 
639
  {$EXTERNALSYM PSM_SETFINISHTEXTW}
 
640
 
 
641
  {$IFDEF UNICODE}
 
642
  PSM_SETFINISHTEXT = PSM_SETFINISHTEXTW;
 
643
  {$EXTERNALSYM PSM_SETFINISHTEXT}
 
644
  {$ELSE}
 
645
  PSM_SETFINISHTEXT = PSM_SETFINISHTEXTA;
 
646
  {$EXTERNALSYM PSM_SETFINISHTEXT}
 
647
  {$ENDIF UNICODE}
 
648
 
 
649
procedure PropSheet_SetFinishText(hPropSheetDlg: HWND; lpszText: LPTSTR);
 
650
 
 
651
const
 
652
  PSM_GETTABCONTROL = WM_USER + 116;
 
653
  {$EXTERNALSYM PSM_GETTABCONTROL}
 
654
 
 
655
function PropSheet_GetTabControl(hPropSheetDlg: HWND): HWND;
 
656
 
 
657
const
 
658
  PSM_ISDIALOGMESSAGE = WM_USER + 117;
 
659
  {$EXTERNALSYM PSM_ISDIALOGMESSAGE}
 
660
 
 
661
function PropSheet_IsDialogMessage(hDlg: HWND; pMsg: LPMSG): BOOL;
 
662
 
 
663
const
 
664
  PSM_GETCURRENTPAGEHWND = WM_USER + 118;
 
665
  {$EXTERNALSYM PSM_GETCURRENTPAGEHWND}
 
666
 
 
667
function PropSheet_GetCurrentPageHwnd(hDlg: HWND): HWND;
 
668
 
 
669
const
 
670
  PSM_INSERTPAGE = WM_USER + 119;
 
671
  {$EXTERNALSYM PSM_INSERTPAGE}
 
672
 
 
673
function PropSheet_InsertPage(hPropSheetDlg: HWND; index: Integer; hpage: HPROPSHEETPAGE): BOOL;
 
674
 
 
675
const
 
676
  PSM_SETHEADERTITLEA = WM_USER + 125;
 
677
  {$EXTERNALSYM PSM_SETHEADERTITLEA}
 
678
  PSM_SETHEADERTITLEW = WM_USER + 126;
 
679
  {$EXTERNALSYM PSM_SETHEADERTITLEW}
 
680
 
 
681
  {$IFDEF UNICODE}
 
682
  PSM_SETHEADERTITLE = PSM_SETHEADERTITLEW;
 
683
  {$EXTERNALSYM PSM_SETHEADERTITLE}
 
684
  {$ELSE}
 
685
  PSM_SETHEADERTITLE = PSM_SETHEADERTITLEA;
 
686
  {$EXTERNALSYM PSM_SETHEADERTITLE}
 
687
  {$ENDIF UNICODE}
 
688
 
 
689
function PropSheet_SetHeaderTitle(hWizardDlg: HWND; iPageIndex: Integer; lpszText: LPCSTR): Integer;
 
690
 
 
691
const
 
692
  PSM_SETHEADERSUBTITLEA = WM_USER + 127;
 
693
  {$EXTERNALSYM PSM_SETHEADERSUBTITLEA}
 
694
  PSM_SETHEADERSUBTITLEW = WM_USER + 128;
 
695
  {$EXTERNALSYM PSM_SETHEADERSUBTITLEW}
 
696
 
 
697
  {$IFDEF UNICODE}
 
698
  PSM_SETHEADERSUBTITLE = PSM_SETHEADERSUBTITLEW;
 
699
  {$EXTERNALSYM PSM_SETHEADERSUBTITLE}
 
700
  {$ELSE}
 
701
  PSM_SETHEADERSUBTITLE = PSM_SETHEADERSUBTITLEA;
 
702
  {$EXTERNALSYM PSM_SETHEADERSUBTITLE}
 
703
  {$ENDIF UNICODE}
 
704
 
 
705
procedure PropSheet_SetHeaderSubTitle(hWizardDlg: HWND; iPageIndex: Integer; pszHeaderSubTitle: LPCSTR);
 
706
 
 
707
const
 
708
  PSM_HWNDTOINDEX = WM_USER + 129;
 
709
  {$EXTERNALSYM PSM_HWNDTOINDEX}
 
710
 
 
711
function PropSheet_HwndToIndex(hPropSheetDlg: HWND; hPageDlg: HWND): Integer;
 
712
 
 
713
const
 
714
  PSM_INDEXTOHWND = WM_USER + 130;
 
715
  {$EXTERNALSYM PSM_INDEXTOHWND}
 
716
 
 
717
function PropSheet_IndexToHwnd(hPropSheetDlg: HWND; iPageIndex: Integer): HWND;
 
718
 
 
719
const
 
720
  PSM_PAGETOINDEX = WM_USER + 131;
 
721
  {$EXTERNALSYM PSM_PAGETOINDEX}
 
722
 
 
723
function PropSheet_PageToIndex(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE): Integer;
 
724
 
 
725
const
 
726
  PSM_INDEXTOPAGE = WM_USER + 132;
 
727
  {$EXTERNALSYM PSM_INDEXTOPAGE}
 
728
 
 
729
function PropSheet_IndexToPage(hPropSheetDlg: HWND; iPageIndex: Integer): HPROPSHEETPAGE;
 
730
 
 
731
const
 
732
  PSM_IDTOINDEX = WM_USER + 133;
 
733
  {$EXTERNALSYM PSM_IDTOINDEX}
 
734
 
 
735
function PropSheet_IdToIndex(hPropSheetDlg: HWND; iPageId: Integer): Integer;
 
736
 
 
737
const
 
738
  PSM_INDEXTOID = WM_USER + 134;
 
739
  {$EXTERNALSYM PSM_INDEXTOID}
 
740
 
 
741
function PropSheet_IndexToId(hPropSheetDlg: HWND; iPageIndex: Integer): Integer;
 
742
 
 
743
const
 
744
  PSM_GETRESULT = WM_USER + 135;
 
745
  {$EXTERNALSYM PSM_GETRESULT}
 
746
 
 
747
function PropSheet_GetResult(hPropSheetDlg: HWND): BOOL;
 
748
 
 
749
const
 
750
  PSM_RECALCPAGESIZES = WM_USER + 136;
 
751
  {$EXTERNALSYM PSM_RECALCPAGESIZES}
 
752
 
 
753
function PropSheet_RecalcPageSizes(hPropSheetDlg: HWND): BOOL;
 
754
 
 
755
const
 
756
  ID_PSRESTARTWINDOWS = $2;
 
757
  {$EXTERNALSYM ID_PSRESTARTWINDOWS}
 
758
 
 
759
  ID_PSREBOOTSYSTEM   = ID_PSRESTARTWINDOWS or $1;
 
760
  {$EXTERNALSYM ID_PSREBOOTSYSTEM}
 
761
 
 
762
  WIZ_CXDLG = 276;
 
763
  {$EXTERNALSYM WIZ_CXDLG}
 
764
  WIZ_CYDLG = 140;
 
765
  {$EXTERNALSYM WIZ_CYDLG}
 
766
 
 
767
  WIZ_CXBMP = 80;
 
768
  {$EXTERNALSYM WIZ_CXBMP}
 
769
 
 
770
  WIZ_BODYX  = 92;
 
771
  {$EXTERNALSYM WIZ_BODYX}
 
772
  WIZ_BODYCX = 184;
 
773
  {$EXTERNALSYM WIZ_BODYCX}
 
774
 
 
775
  PROP_SM_CXDLG = 212;
 
776
  {$EXTERNALSYM PROP_SM_CXDLG}
 
777
  PROP_SM_CYDLG = 188;
 
778
  {$EXTERNALSYM PROP_SM_CYDLG}
 
779
 
 
780
  PROP_MED_CXDLG = 227;
 
781
  {$EXTERNALSYM PROP_MED_CXDLG}
 
782
  PROP_MED_CYDLG = 215;
 
783
  {$EXTERNALSYM PROP_MED_CYDLG}
 
784
 
 
785
  PROP_LG_CXDLG = 252;
 
786
  {$EXTERNALSYM PROP_LG_CXDLG}
 
787
  PROP_LG_CYDLG = 218;
 
788
  {$EXTERNALSYM PROP_LG_CYDLG}
 
789
 
 
790
implementation
 
791
 
 
792
const
 
793
  comctl32 = 'comctl32.dll';
 
794
  {$IFDEF UNICODE}
 
795
  AWSuffix = 'W';
 
796
  {$ELSE}
 
797
  AWSuffix = 'A';
 
798
  {$ENDIF UNICODE}
 
799
 
 
800
function PropSheet_SetCurSel(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE; Index: Integer): BOOL;
 
801
begin
 
802
  Result := BOOL(SendMessage(hPropSheetDlg, PSM_SETCURSEL, WPARAM(Index), LPARAM(hPage)));
 
803
end;
 
804
 
 
805
procedure PropSheet_RemovePage(hPropSheetDlg: HWND; Index: Integer; hPage: HPROPSHEETPAGE);
 
806
begin
 
807
  SendMessage(hPropSheetDlg, PSM_REMOVEPAGE, Index, LPARAM(hPage));
 
808
end;
 
809
 
 
810
function PropSheet_AddPage(hPropSheetDlg: HWND; hpage: HPROPSHEETPAGE): BOOL;
 
811
begin
 
812
  Result := BOOL(SendMessage(hPropSheetDlg, PSM_ADDPAGE, 0, LPARAM(hpage)));
 
813
end;
 
814
 
 
815
function PropSheet_Changed(hPropSheetDlg: HWND; hwndPage: HWND): BOOL;
 
816
begin
 
817
  Result := BOOL(SendMessage(hPropSheetDlg, PSM_CHANGED, WPARAM(hwndPage), 0));
 
818
end;
 
819
 
 
820
procedure PropSheet_RestartWindows(hPropSheetDlg: HWND);
 
821
begin
 
822
  SendMessage(hPropSheetDlg, PSM_RESTARTWINDOWS, 0, 0);
 
823
end;
 
824
 
 
825
procedure PropSheet_RebootSystem(hPropSheetDlg: HWND);
 
826
begin
 
827
  SendMessage(hPropSheetDlg, PSM_REBOOTSYSTEM, 0, 0);
 
828
end;
 
829
 
 
830
procedure PropSheet_CancelToClose(hPropSheetDlg: HWND);
 
831
begin
 
832
  PostMessage(hPropSheetDlg, PSM_CANCELTOCLOSE, 0, 0);
 
833
end;
 
834
 
 
835
function PropSheet_QuerySiblings(hPropSheetDlg: HWND; Param1: WPARAM; Param2: LPARAM): Integer;
 
836
begin
 
837
  Result := SendMessage(hPropSheetDlg, PSM_QUERYSIBLINGS, Param1, Param2);
 
838
end;
 
839
 
 
840
procedure PropSheet_UnChanged(hPropSheetDlg: HWND; hwndPage: HWND);
 
841
begin
 
842
  SendMessage(hPropSheetDlg, PSM_UNCHANGED, WPARAM(hwndPage), 0);
 
843
end;
 
844
 
 
845
function PropSheet_Apply(hPropSheetDlg: HWND): BOOL;
 
846
begin
 
847
  Result := BOOL(SendMessage(hPropSheetDlg, PSM_APPLY, 0, 0));
 
848
end;
 
849
 
 
850
procedure PropSheet_SetTitle(hPropSheetDlg: HWND; dwStyle: DWORD; lpszText: LPTSTR);
 
851
begin
 
852
  SendMessage(hPropSheetDlg, PSM_SETTITLE, dwStyle, LPARAM(LPCTSTR(lpszText)));
 
853
end;
 
854
 
 
855
procedure PropSheet_SetWizButtons(hPropSheetDlg: HWND; dwFlags: DWORD);
 
856
begin
 
857
  PostMessage(hPropSheetDlg, PSM_SETWIZBUTTONS, 0, LPARAM(dwFlags));
 
858
end;
 
859
 
 
860
function PropSheet_PressButton(hPropSheetDlg: HWND; iButton: Integer): BOOL;
 
861
begin
 
862
  Result := PostMessage(hPropSheetDlg, PSM_PRESSBUTTON, WPARAM(iButton), 0);
 
863
end;
 
864
 
 
865
function PropSheet_SetCurSelByID(hPropSheetDlg: HWND; id: Integer): BOOL;
 
866
begin
 
867
  Result := BOOL(SendMessage(hPropSheetDlg, PSM_SETCURSELID, 0, LPARAM(id)));
 
868
end;
 
869
 
 
870
procedure PropSheet_SetFinishText(hPropSheetDlg: HWND; lpszText: LPTSTR);
 
871
begin
 
872
  SendMessage(hPropSheetDlg, PSM_SETFINISHTEXT, 0, LPARAM(lpszText));
 
873
end;
 
874
 
 
875
function PropSheet_GetTabControl(hPropSheetDlg: HWND): HWND;
 
876
begin
 
877
  Result := SendMessage(hPropSheetDlg, PSM_GETTABCONTROL, 0, 0);
 
878
end;
 
879
 
 
880
function PropSheet_IsDialogMessage(hDlg: HWND; pMsg: LPMSG): BOOL;
 
881
begin
 
882
  Result := BOOL(SendMessage(hDlg, PSM_ISDIALOGMESSAGE, 0, LPARAM(pMsg)));
 
883
end;
 
884
 
 
885
function PropSheet_GetCurrentPageHwnd(hDlg: HWND): HWND;
 
886
begin
 
887
  Result := SendMessage(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0);
 
888
end;
 
889
 
 
890
function PropSheet_InsertPage(hPropSheetDlg: HWND; index: Integer; hpage: HPROPSHEETPAGE): BOOL;
 
891
begin
 
892
  Result := BOOL(SendMessage(hPropSheetDlg, PSM_INSERTPAGE, WPARAM(index), LPARAM(hpage)));
 
893
end;
 
894
 
 
895
function PropSheet_SetHeaderTitle(hWizardDlg: HWND; iPageIndex: Integer; lpszText: LPCSTR): Integer;
 
896
begin
 
897
  Result := SendMessage(hWizardDlg, PSM_SETHEADERTITLE, WPARAM(iPageIndex), LPARAM(lpszText));
 
898
end;
 
899
 
 
900
procedure PropSheet_SetHeaderSubTitle(hWizardDlg: HWND; iPageIndex: Integer; pszHeaderSubTitle: LPCSTR);
 
901
begin
 
902
  SendMessage(hWizardDlg, PSM_SETHEADERSUBTITLE, WPARAM(iPageIndex), LPARAM(pszHeaderSubTitle));
 
903
end;
 
904
 
 
905
function PropSheet_HwndToIndex(hPropSheetDlg: HWND; hPageDlg: HWND): Integer;
 
906
begin
 
907
  Result := SendMessage(hPropSheetDlg, PSM_HWNDTOINDEX, WPARAM(hPageDlg), 0);
 
908
end;
 
909
 
 
910
function PropSheet_IndexToHwnd(hPropSheetDlg: HWND; iPageIndex: Integer): HWND;
 
911
begin
 
912
  Result := SendMessage(hPropSheetDlg, PSM_INDEXTOHWND, WPARAM(iPageIndex), 0);
 
913
end;
 
914
 
 
915
function PropSheet_PageToIndex(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE): Integer;
 
916
begin
 
917
  Result := SendMessage(hPropSheetDlg, PSM_PAGETOINDEX, 0, LPARAM(hpage));
 
918
end;
 
919
 
 
920
function PropSheet_IndexToPage(hPropSheetDlg: HWND; iPageIndex: Integer): HPROPSHEETPAGE;
 
921
begin
 
922
  Result := HPROPSHEETPAGE(SendMessage(hPropSheetDlg, PSM_INDEXTOPAGE, WPARAM(iPageIndex), 0));
 
923
end;
 
924
 
 
925
function PropSheet_IdToIndex(hPropSheetDlg: HWND; iPageId: Integer): Integer;
 
926
begin
 
927
  Result := SendMessage(hPropSheetDlg, PSM_IDTOINDEX, 0, LPARAM(iPageId));
 
928
end;
 
929
 
 
930
function PropSheet_IndexToId(hPropSheetDlg: HWND; iPageIndex: Integer): Integer;
 
931
begin
 
932
  Result := SendMessage(hPropSheetDlg, PSM_INDEXTOID, WPARAM(iPageIndex), 0)
 
933
end;
 
934
 
 
935
function PropSheet_GetResult(hPropSheetDlg: HWND): BOOL;
 
936
begin
 
937
  Result := BOOL(SendMessage(hPropSheetDlg, PSM_GETRESULT, 0, 0));
 
938
end;
 
939
 
 
940
function PropSheet_RecalcPageSizes(hPropSheetDlg: HWND): BOOL;
 
941
begin
 
942
  Result := BOOL(SendMessage(hPropSheetDlg, PSM_RECALCPAGESIZES, 0, 0));
 
943
end;
 
944
 
 
945
{$IFDEF DYNAMIC_LINK}
 
946
 
 
947
var
 
948
  _CreatePropertySheetPageA: Pointer;
 
949
 
 
950
function CreatePropertySheetPageA;
 
951
begin
 
952
  GetProcedureAddress(_CreatePropertySheetPageA, comctl32, 'CreatePropertySheetPageA');
 
953
  asm
 
954
        MOV     ESP, EBP
 
955
        POP     EBP
 
956
        JMP     [_CreatePropertySheetPageA]
 
957
  end;
 
958
end;
 
959
 
 
960
var
 
961
  _CreatePropertySheetPageW: Pointer;
 
962
 
 
963
function CreatePropertySheetPageW;
 
964
begin
 
965
  GetProcedureAddress(_CreatePropertySheetPageW, comctl32, 'CreatePropertySheetPageW');
 
966
  asm
 
967
        MOV     ESP, EBP
 
968
        POP     EBP
 
969
        JMP     [_CreatePropertySheetPageW]
 
970
  end;
 
971
end;
 
972
 
 
973
var
 
974
  _DestroyPropertySheetPage: Pointer;
 
975
 
 
976
function DestroyPropertySheetPage;
 
977
begin
 
978
  GetProcedureAddress(_DestroyPropertySheetPage, comctl32, 'DestroyPropertySheetPage');
 
979
  asm
 
980
        MOV     ESP, EBP
 
981
        POP     EBP
 
982
        JMP     [_DestroyPropertySheetPage]
 
983
  end;
 
984
end;
 
985
 
 
986
var
 
987
  _PropertySheetA: Pointer;
 
988
 
 
989
function PropertySheetA;
 
990
begin
 
991
  GetProcedureAddress(_PropertySheetA, comctl32, 'PropertySheetA');
 
992
  asm
 
993
        MOV     ESP, EBP
 
994
        POP     EBP
 
995
        JMP     [_PropertySheetA]
 
996
  end;
 
997
end;
 
998
 
 
999
var
 
1000
  _PropertySheetW: Pointer;
 
1001
 
 
1002
function PropertySheetW;
 
1003
begin
 
1004
  GetProcedureAddress(_PropertySheetW, comctl32, 'PropertySheetW');
 
1005
  asm
 
1006
        MOV     ESP, EBP
 
1007
        POP     EBP
 
1008
        JMP     [_PropertySheetW]
 
1009
  end;
 
1010
end;
 
1011
 
 
1012
var
 
1013
  _CreatePropertySheetPage: Pointer;
 
1014
 
 
1015
function CreatePropertySheetPage;
 
1016
begin
 
1017
  GetProcedureAddress(_CreatePropertySheetPage, comctl32, 'CreatePropertySheetPage' + AWSuffix);
 
1018
  asm
 
1019
        MOV     ESP, EBP
 
1020
        POP     EBP
 
1021
        JMP     [_CreatePropertySheetPage]
 
1022
  end;
 
1023
end;
 
1024
 
 
1025
var
 
1026
  _PropertySheet: Pointer;
 
1027
 
 
1028
function PropertySheet;
 
1029
begin
 
1030
  GetProcedureAddress(_PropertySheet, comctl32, 'PropertySheet' + AWSuffix);
 
1031
  asm
 
1032
        MOV     ESP, EBP
 
1033
        POP     EBP
 
1034
        JMP     [_PropertySheet]
 
1035
  end;
 
1036
end;
 
1037
 
 
1038
{$ELSE}
 
1039
 
 
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;
 
1047
 
 
1048
{$ENDIF DYNAMIC_LINK}
 
1049
 
 
1050
end.