mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-08 09:55:32 +00:00
1072 lines
31 KiB
ObjectPascal
1072 lines
31 KiB
ObjectPascal
{******************************************************************************}
|
|
{ }
|
|
{ Property Sheet Pages API interface Unit for Object Pascal }
|
|
{ }
|
|
{ Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
|
|
{ Corporation. All Rights Reserved. }
|
|
{ }
|
|
{ The original file is: prsht.h, released June 2000. The original Pascal }
|
|
{ code is: PrSht.pas, released December 2000. The initial developer of the }
|
|
{ Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
|
|
{ }
|
|
{ Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
|
|
{ Marcel van Brakel. All Rights Reserved. }
|
|
{ }
|
|
{ Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
|
|
{ }
|
|
{ You may retrieve the latest version of this file at the Project JEDI }
|
|
{ APILIB home page, located at http://jedi-apilib.sourceforge.net }
|
|
{ }
|
|
{ The contents of this file are used with permission, subject to the Mozilla }
|
|
{ Public License Version 1.1 (the "License"); you may not use this file except }
|
|
{ in compliance with the License. You may obtain a copy of the License at }
|
|
{ http://www.mozilla.org/MPL/MPL-1.1.html }
|
|
{ }
|
|
{ Software distributed under the License is distributed on an "AS IS" basis, }
|
|
{ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
|
|
{ the specific language governing rights and limitations under the License. }
|
|
{ }
|
|
{ Alternatively, the contents of this file may be used under the terms of the }
|
|
{ GNU Lesser General Public License (the "LGPL License"), in which case the }
|
|
{ provisions of the LGPL License are applicable instead of those above. }
|
|
{ If you wish to allow use of your version of this file only under the terms }
|
|
{ of the LGPL License and not to allow others to use your version of this file }
|
|
{ under the MPL, indicate your decision by deleting the provisions above and }
|
|
{ replace them with the notice and other provisions required by the LGPL }
|
|
{ License. If you do not delete the provisions above, a recipient may use }
|
|
{ your version of this file under either the MPL or the LGPL License. }
|
|
{ }
|
|
{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
|
|
{ }
|
|
{******************************************************************************}
|
|
|
|
// $Id: JwaPrSht.pas,v 1.15 2007/09/14 06:48:46 marquardt Exp $
|
|
|
|
{$IFNDEF JWA_OMIT_SECTIONS}
|
|
unit JwaPrSht;
|
|
|
|
{$WEAKPACKAGEUNIT}
|
|
{$ENDIF JWA_OMIT_SECTIONS}
|
|
|
|
{$HPPEMIT ''}
|
|
{$HPPEMIT '#include "ntdsapi.h"'}
|
|
{$HPPEMIT ''}
|
|
{$HPPEMIT 'typedef PHPROPSHEETPAGE *HPROPSHEETPAGE'}
|
|
{$HPPEMIT ''}
|
|
|
|
{$IFNDEF JWA_OMIT_SECTIONS}
|
|
{$I ..\Includes\JediAPILib.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
JwaWinNT, JwaWinUser, JwaWinType;
|
|
|
|
{$ENDIF JWA_OMIT_SECTIONS}
|
|
|
|
{$IFNDEF JWA_IMPLEMENTATIONSECTION}
|
|
|
|
//#ifndef CCSIZEOF_STRUCT
|
|
//#define CCSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))
|
|
//#endif
|
|
|
|
//
|
|
// For compilers that don't support nameless unions
|
|
//
|
|
|
|
const
|
|
MAXPROPPAGES = 100;
|
|
{$EXTERNALSYM MAXPROPPAGES}
|
|
|
|
type
|
|
{$IFNDEF JWA_INCLUDEMODE}
|
|
HPROPSHEETPAGE = Pointer;
|
|
{$EXTERNALSYM HPROPSHEETPAGE}
|
|
{$ENDIF JWA_INCLUDEMODE}
|
|
PHPROPSHEETPAGE = ^HPROPSHEETPAGE;
|
|
{$NODEFINE PHPROPSHEETPAGE}
|
|
|
|
LPFNPSPCALLBACKA = function(hwnd: HWND; uMsg: UINT; ppsp: Pointer{LPPROPSHEETPAGEA}): UINT; stdcall;
|
|
{$EXTERNALSYM LPFNPSPCALLBACKA}
|
|
LPFNPSPCALLBACKW = function(hwnd: HWND; uMsg: UINT; ppsp: Pointer{LPPROPSHEETPAGEW}): UINT; stdcall;
|
|
{$EXTERNALSYM LPFNPSPCALLBACKW}
|
|
|
|
{$IFDEF UNICODE}
|
|
LPFNPSPCALLBACK = function(hwnd: HWND; uMsg: UINT; ppsp: Pointer{LPPROPSHEETPAGEW}): UINT; stdcall;
|
|
{$EXTERNALSYM LPFNPSPCALLBACK}
|
|
{$ELSE}
|
|
LPFNPSPCALLBACK = function(hwnd: HWND; uMsg: UINT; ppsp: Pointer{LPPROPSHEETPAGEA}): UINT; stdcall;
|
|
{$EXTERNALSYM LPFNPSPCALLBACK}
|
|
{$ENDIF UNICODE}
|
|
|
|
const
|
|
PSP_DEFAULT = $00000000;
|
|
{$EXTERNALSYM PSP_DEFAULT}
|
|
PSP_DLGINDIRECT = $00000001;
|
|
{$EXTERNALSYM PSP_DLGINDIRECT}
|
|
PSP_USEHICON = $00000002;
|
|
{$EXTERNALSYM PSP_USEHICON}
|
|
PSP_USEICONID = $00000004;
|
|
{$EXTERNALSYM PSP_USEICONID}
|
|
PSP_USETITLE = $00000008;
|
|
{$EXTERNALSYM PSP_USETITLE}
|
|
PSP_RTLREADING = $00000010;
|
|
{$EXTERNALSYM PSP_RTLREADING}
|
|
|
|
PSP_HASHELP = $00000020;
|
|
{$EXTERNALSYM PSP_HASHELP}
|
|
PSP_USEREFPARENT = $00000040;
|
|
{$EXTERNALSYM PSP_USEREFPARENT}
|
|
PSP_USECALLBACK = $00000080;
|
|
{$EXTERNALSYM PSP_USECALLBACK}
|
|
PSP_PREMATURE = $00000400;
|
|
{$EXTERNALSYM PSP_PREMATURE}
|
|
|
|
//----- New flags for wizard97 --------------
|
|
|
|
PSP_HIDEHEADER = $00000800;
|
|
{$EXTERNALSYM PSP_HIDEHEADER}
|
|
PSP_USEHEADERTITLE = $00001000;
|
|
{$EXTERNALSYM PSP_USEHEADERTITLE}
|
|
PSP_USEHEADERSUBTITLE = $00002000;
|
|
{$EXTERNALSYM PSP_USEHEADERSUBTITLE}
|
|
|
|
//-------------------------------------------
|
|
|
|
PSPCB_ADDREF = 0;
|
|
{$EXTERNALSYM PSPCB_ADDREF}
|
|
PSPCB_RELEASE = 1;
|
|
{$EXTERNALSYM PSPCB_RELEASE}
|
|
PSPCB_CREATE = 2;
|
|
{$EXTERNALSYM PSPCB_CREATE}
|
|
|
|
//#define PROPSHEETPAGEA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEA, pcRefParent)
|
|
//#define PROPSHEETPAGEW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEW, pcRefParent)
|
|
|
|
type
|
|
_PROPSHEETPAGEA = record
|
|
dwSize: DWORD;
|
|
dwFlags: DWORD;
|
|
hInstance: HINST;
|
|
u: record
|
|
case Integer of
|
|
0: (pszTemplate: LPCSTR);
|
|
1: (pResource: LPCDLGTEMPLATE);
|
|
end;
|
|
u2: record
|
|
case Integer of
|
|
0: (hIcon: HICON);
|
|
1: (pszIcon: LPCSTR);
|
|
end;
|
|
pszTitle: LPCSTR;
|
|
pfnDlgProc: DLGPROC;
|
|
lParam: LPARAM;
|
|
pfnCallback: LPFNPSPCALLBACKA;
|
|
pcRefParent: LPUINT;
|
|
{$IFDEF IE400_UP}
|
|
pszHeaderTitle: LPCSTR; // this is displayed in the header
|
|
pszHeaderSubTitle: LPCSTR; //
|
|
{$ENDIF IE400_UP}
|
|
end;
|
|
{$EXTERNALSYM _PROPSHEETPAGEA}
|
|
PROPSHEETPAGEA = _PROPSHEETPAGEA;
|
|
{$EXTERNALSYM PROPSHEETPAGEA}
|
|
LPPROPSHEETPAGEA = ^PROPSHEETPAGEA;
|
|
{$EXTERNALSYM LPPROPSHEETPAGEA}
|
|
LPCPROPSHEETPAGEA = LPPROPSHEETPAGEA;
|
|
{$EXTERNALSYM LPCPROPSHEETPAGEA}
|
|
TPropSheetPageA = PROPSHEETPAGEA;
|
|
PPropSheetPageA = LPPROPSHEETPAGEA;
|
|
|
|
_PROPSHEETPAGEW = record
|
|
dwSize: DWORD;
|
|
dwFlags: DWORD;
|
|
hInstance: HINST;
|
|
u: record
|
|
case Integer of
|
|
0: (pszTemplate: LPCWSTR);
|
|
1: (pResource: LPCDLGTEMPLATE);
|
|
end;
|
|
u2: record
|
|
case Integer of
|
|
0: (hIcon: HICON);
|
|
1: (pszIcon: LPCWSTR);
|
|
end;
|
|
pszTitle: LPCWSTR;
|
|
pfnDlgProc: DLGPROC;
|
|
lParam: LPARAM;
|
|
pfnCallback: LPFNPSPCALLBACKW;
|
|
pcRefParent: LPUINT;
|
|
{$IFDEF IE400_UP}
|
|
pszHeaderTitle: LPCWSTR; // this is displayed in the header
|
|
pszHeaderSubTitle: LPCWSTR; //
|
|
{$ENDIF IE400_UP}
|
|
end;
|
|
{$EXTERNALSYM _PROPSHEETPAGEW}
|
|
PROPSHEETPAGEW = _PROPSHEETPAGEW;
|
|
{$EXTERNALSYM PROPSHEETPAGEW}
|
|
LPPROPSHEETPAGEW = ^PROPSHEETPAGEW;
|
|
{$EXTERNALSYM LPPROPSHEETPAGEW}
|
|
LPCPROPSHEETPAGEW = LPPROPSHEETPAGEW;
|
|
{$EXTERNALSYM LPCPROPSHEETPAGEW}
|
|
TPropSheetPageW = PROPSHEETPAGEW;
|
|
PPropSheetPageW = LPPROPSHEETPAGEW;
|
|
|
|
{$IFDEF UNICODE}
|
|
PROPSHEETPAGE = PROPSHEETPAGEW;
|
|
{$EXTERNALSYM PROPSHEETPAGE}
|
|
LPPROPSHEETPAGE = LPPROPSHEETPAGEW;
|
|
{$EXTERNALSYM LPPROPSHEETPAGE}
|
|
LPCPROPSHEETPAGE = LPCPROPSHEETPAGEW;
|
|
{$EXTERNALSYM LPCPROPSHEETPAGE}
|
|
TPropSheetPage = TPropSheetPageW;
|
|
PPropSheetPage = PPropSheetPageW;
|
|
|
|
const
|
|
PROPSHEETPAGE_V1_SIZE = 40; {PROPSHEETPAGEW_V1_SIZE}
|
|
{$EXTERNALSYM PROPSHEETPAGE_V1_SIZE}
|
|
{$ELSE}
|
|
PROPSHEETPAGE = PROPSHEETPAGEA;
|
|
{$EXTERNALSYM PROPSHEETPAGE}
|
|
LPPROPSHEETPAGE = LPPROPSHEETPAGEA;
|
|
{$EXTERNALSYM LPPROPSHEETPAGE}
|
|
LPCPROPSHEETPAGE = LPCPROPSHEETPAGEA;
|
|
{$EXTERNALSYM LPCPROPSHEETPAGE}
|
|
TPropSheetPage = TPropSheetPageA;
|
|
PPropSheetPage = PPropSheetPageA;
|
|
|
|
const
|
|
PROPSHEETPAGE_V1_SIZE = 40; {PROPSHEETPAGEA_V1_SIZE}
|
|
{$EXTERNALSYM PROPSHEETPAGE_V1_SIZE}
|
|
{$ENDIF UNICODE}
|
|
|
|
const
|
|
PSH_DEFAULT = $00000000;
|
|
{$EXTERNALSYM PSH_DEFAULT}
|
|
PSH_PROPTITLE = $00000001;
|
|
{$EXTERNALSYM PSH_PROPTITLE}
|
|
PSH_USEHICON = $00000002;
|
|
{$EXTERNALSYM PSH_USEHICON}
|
|
PSH_USEICONID = $00000004;
|
|
{$EXTERNALSYM PSH_USEICONID}
|
|
PSH_PROPSHEETPAGE = $00000008;
|
|
{$EXTERNALSYM PSH_PROPSHEETPAGE}
|
|
PSH_WIZARDHASFINISH = $00000010;
|
|
{$EXTERNALSYM PSH_WIZARDHASFINISH}
|
|
PSH_WIZARD = $00000020;
|
|
{$EXTERNALSYM PSH_WIZARD}
|
|
PSH_USEPSTARTPAGE = $00000040;
|
|
{$EXTERNALSYM PSH_USEPSTARTPAGE}
|
|
PSH_NOAPPLYNOW = $00000080;
|
|
{$EXTERNALSYM PSH_NOAPPLYNOW}
|
|
PSH_USECALLBACK = $00000100;
|
|
{$EXTERNALSYM PSH_USECALLBACK}
|
|
PSH_HASHELP = $00000200;
|
|
{$EXTERNALSYM PSH_HASHELP}
|
|
PSH_MODELESS = $00000400;
|
|
{$EXTERNALSYM PSH_MODELESS}
|
|
PSH_RTLREADING = $00000800;
|
|
{$EXTERNALSYM PSH_RTLREADING}
|
|
PSH_WIZARDCONTEXTHELP = $00001000;
|
|
{$EXTERNALSYM PSH_WIZARDCONTEXTHELP}
|
|
|
|
//----- New flags for wizard97 -----------
|
|
|
|
{$IFDEF IE500_UP}
|
|
PSH_WIZARD97 = $01000000;
|
|
{$EXTERNALSYM PSH_WIZARD97}
|
|
{$ELSE}
|
|
PSH_WIZARD97 = $00002000;
|
|
{$EXTERNALSYM PSH_WIZARD97}
|
|
{$ENDIF IE500_UP}
|
|
|
|
// 0x00004000 was not used by any previous release
|
|
|
|
PSH_WATERMARK = $00008000;
|
|
{$EXTERNALSYM PSH_WATERMARK}
|
|
PSH_USEHBMWATERMARK = $00010000; // user pass in a hbmWatermark instead of pszbmWatermark
|
|
{$EXTERNALSYM PSH_USEHBMWATERMARK}
|
|
PSH_USEHPLWATERMARK = $00020000; //
|
|
{$EXTERNALSYM PSH_USEHPLWATERMARK}
|
|
PSH_STRETCHWATERMARK = $00040000; // stretchwatermark also applies for the header
|
|
{$EXTERNALSYM PSH_STRETCHWATERMARK}
|
|
PSH_HEADER = $00080000;
|
|
{$EXTERNALSYM PSH_HEADER}
|
|
PSH_USEHBMHEADER = $00100000;
|
|
{$EXTERNALSYM PSH_USEHBMHEADER}
|
|
PSH_USEPAGELANG = $00200000; // use frame dialog template matched to page
|
|
{$EXTERNALSYM PSH_USEPAGELANG}
|
|
|
|
//----------------------------------------
|
|
|
|
//----- New flags for wizard-lite --------
|
|
|
|
PSH_WIZARD_LITE = $00400000;
|
|
{$EXTERNALSYM PSH_WIZARD_LITE}
|
|
PSH_NOCONTEXTHELP = $02000000;
|
|
{$EXTERNALSYM PSH_NOCONTEXTHELP}
|
|
|
|
//----------------------------------------
|
|
|
|
type
|
|
PFNPROPSHEETCALLBACK = function(hwn: HWND; uMsg: UINT; lParam: LPARAM): Integer; stdcall;
|
|
{$EXTERNALSYM PFNPROPSHEETCALLBACK}
|
|
|
|
//const
|
|
//#define PROPSHEETHEADERA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERA, pfnCallback)
|
|
//#define PROPSHEETHEADERW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERW, pfnCallback)
|
|
|
|
type
|
|
_PROPSHEETHEADERA = record
|
|
dwSize: DWORD;
|
|
dwFlags: DWORD;
|
|
hwndParent: HWND;
|
|
hInstance: HINST;
|
|
u: record
|
|
case Integer of
|
|
0: (hIcon: HICON);
|
|
1: (pszIcon: LPCSTR);
|
|
end;
|
|
pszCaption: LPCSTR;
|
|
nPages: UINT;
|
|
u2: record
|
|
case Integer of
|
|
0: (nStartPage: UINT);
|
|
1: (pStartPage: LPCSTR);
|
|
end;
|
|
u3: record
|
|
case Integer of
|
|
0: (ppsp: LPCPROPSHEETPAGEA);
|
|
1: (phpage: PHPROPSHEETPAGE);
|
|
end;
|
|
pfnCallback: PFNPROPSHEETCALLBACK;
|
|
{$IFDEF IE400_UP}
|
|
u4: record
|
|
case Integer of
|
|
0: (hbmWatermark: HBITMAP);
|
|
1: (pszbmWatermark: LPCSTR);
|
|
end;
|
|
hplWatermark: HPALETTE;
|
|
u5: record
|
|
case Integer of
|
|
0: (hbmHeader: HBITMAP); // Header bitmap shares the palette with watermark
|
|
1: (pszbmHeader: LPCSTR);
|
|
end;
|
|
{$ENDIF IE400_UP}
|
|
end;
|
|
{$EXTERNALSYM _PROPSHEETHEADERA}
|
|
PROPSHEETHEADERA =_PROPSHEETHEADERA;
|
|
{$EXTERNALSYM PROPSHEETHEADERA}
|
|
LPPROPSHEETHEADERA = ^PROPSHEETHEADERA;
|
|
{$EXTERNALSYM LPPROPSHEETHEADERA}
|
|
LPCPROPSHEETHEADERA = LPPROPSHEETHEADERA;
|
|
{$EXTERNALSYM LPCPROPSHEETHEADERA}
|
|
TPropSheetHeaderA = PROPSHEETHEADERA;
|
|
PPropSheetHeaderA = LPPROPSHEETHEADERA;
|
|
|
|
_PROPSHEETHEADERW = record
|
|
dwSize: DWORD;
|
|
dwFlags: DWORD;
|
|
hwndParent: HWND;
|
|
hInstance: HINST;
|
|
u: record
|
|
case Integer of
|
|
0: (hIcon: HICON);
|
|
1: (pszIcon: LPCWSTR);
|
|
end;
|
|
pszCaption: LPCWSTR;
|
|
nPages: UINT;
|
|
u2: record
|
|
case Integer of
|
|
0: (nStartPage: UINT);
|
|
1: (pStartPage: LPCWSTR);
|
|
end;
|
|
u3: record
|
|
case Integer of
|
|
0: (ppsp: LPCPROPSHEETPAGEW);
|
|
1: (phpage: PHPROPSHEETPAGE);
|
|
end;
|
|
pfnCallback: PFNPROPSHEETCALLBACK;
|
|
{$IFDEF IE400_UP}
|
|
u4: record
|
|
case Integer of
|
|
0: (hbmWatermark: HBITMAP);
|
|
1: (pszbmWatermark: LPCWSTR);
|
|
end;
|
|
hplWatermark: HPALETTE;
|
|
u5: record
|
|
case Integer of
|
|
0: (hbmHeader: HBITMAP); // Header bitmap shares the palette with watermark
|
|
1: (pszbmHeader: LPCWSTR);
|
|
end;
|
|
{$ENDIF IE400_UP}
|
|
end;
|
|
{$EXTERNALSYM _PROPSHEETHEADERW}
|
|
PROPSHEETHEADERW =_PROPSHEETHEADERW;
|
|
{$EXTERNALSYM PROPSHEETHEADERW}
|
|
LPPROPSHEETHEADERW = ^PROPSHEETHEADERW;
|
|
{$EXTERNALSYM LPPROPSHEETHEADERW}
|
|
LPCPROPSHEETHEADERW = LPPROPSHEETHEADERW;
|
|
{$EXTERNALSYM LPCPROPSHEETHEADERW}
|
|
TPropSheetHeaderW = PROPSHEETHEADERW;
|
|
PPropSheetHeaderW = LPPROPSHEETHEADERW;
|
|
|
|
{$IFDEF UNICODE}
|
|
PROPSHEETHEADER = PROPSHEETHEADERW;
|
|
{$EXTERNALSYM PROPSHEETHEADER}
|
|
LPPROPSHEETHEADER = LPPROPSHEETHEADERW;
|
|
{$EXTERNALSYM LPPROPSHEETHEADER}
|
|
LPCPROPSHEETHEADER = LPCPROPSHEETHEADERW;
|
|
{$EXTERNALSYM LPCPROPSHEETHEADER}
|
|
TPropSheetHeader = TPropSheetHeaderW;
|
|
PPropSheetHeader = PPropSheetHeaderW;
|
|
|
|
const
|
|
PROPSHEETHEADER_V1_SIZE = 40; {PROPSHEETHEADERW_V1_SIZE}
|
|
{$EXTERNALSYM PROPSHEETHEADER_V1_SIZE}
|
|
{$ELSE}
|
|
PROPSHEETHEADER = PROPSHEETHEADERA;
|
|
{$EXTERNALSYM PROPSHEETHEADER}
|
|
LPPROPSHEETHEADER = LPPROPSHEETHEADERA;
|
|
{$EXTERNALSYM LPPROPSHEETHEADER}
|
|
LPCPROPSHEETHEADER = LPCPROPSHEETHEADERA;
|
|
{$EXTERNALSYM LPCPROPSHEETHEADER}
|
|
TPropSheetHeader = TPropSheetHeaderA;
|
|
PPropSheetHeader = PPropSheetHeaderA;
|
|
|
|
const
|
|
PROPSHEETHEADER_V1_SIZE = 40; {PROPSHEETHEADERA_V1_SIZE}
|
|
{$EXTERNALSYM PROPSHEETHEADER_V1_SIZE}
|
|
{$ENDIF UNICODE}
|
|
|
|
const
|
|
PSCB_INITIALIZED = 1;
|
|
{$EXTERNALSYM PSCB_INITIALIZED}
|
|
PSCB_PRECREATE = 2;
|
|
{$EXTERNALSYM PSCB_PRECREATE}
|
|
|
|
function CreatePropertySheetPageA(const lppsp: PROPSHEETPAGEA): HPROPSHEETPAGE; stdcall;
|
|
{$EXTERNALSYM CreatePropertySheetPageA}
|
|
function CreatePropertySheetPageW(const lppsp: PROPSHEETPAGEW): HPROPSHEETPAGE; stdcall;
|
|
{$EXTERNALSYM DestroyPropertySheetPage}
|
|
function DestroyPropertySheetPage(hPSPage: HPROPSHEETPAGE): BOOL; stdcall;
|
|
{$EXTERNALSYM DestroyPropertySheetPage}
|
|
function PropertySheetA(const lppsph: PROPSHEETHEADERA): INT_PTR; stdcall;
|
|
{$EXTERNALSYM PropertySheetA}
|
|
function PropertySheetW(const lppsph: PROPSHEETHEADERW): INT_PTR; stdcall;
|
|
{$EXTERNALSYM PropertySheetW}
|
|
function CreatePropertySheetPage(const lppsp: PROPSHEETPAGE): HPROPSHEETPAGE; stdcall;
|
|
{$EXTERNALSYM DestroyPropertySheetPage}
|
|
function PropertySheet(const lppsph: PROPSHEETHEADER): INT_PTR; stdcall;
|
|
{$EXTERNALSYM PropertySheet}
|
|
|
|
type
|
|
LPFNADDPROPSHEETPAGE = function(page: HPROPSHEETPAGE; lParam: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM LPFNADDPROPSHEETPAGE}
|
|
LPFNADDPROPSHEETPAGES = function(pv: LPVOID; fn: LPFNADDPROPSHEETPAGE; lParam: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM LPFNADDPROPSHEETPAGES}
|
|
|
|
_PSHNOTIFY = record
|
|
hdr: NMHDR;
|
|
lParam: LPARAM;
|
|
end;
|
|
{$EXTERNALSYM _PSHNOTIFY}
|
|
PSHNOTIFY = _PSHNOTIFY;
|
|
{$EXTERNALSYM PSHNOTIFY}
|
|
LPPSHNOTIFY = ^PSHNOTIFY;
|
|
{$EXTERNALSYM LPPSHNOTIFY}
|
|
TPSHNotify = PSHNOTIFY;
|
|
PPSHNotify = LPPSHNOTIFY;
|
|
|
|
const
|
|
PSN_FIRST = ULONG(0-200);
|
|
{$EXTERNALSYM PSN_FIRST}
|
|
PSN_LAST = ULONG(0-299);
|
|
{$EXTERNALSYM PSN_LAST}
|
|
|
|
PSN_SETACTIVE = PSN_FIRST - 0;
|
|
{$EXTERNALSYM PSN_SETACTIVE}
|
|
PSN_KILLACTIVE = PSN_FIRST - 1;
|
|
{$EXTERNALSYM PSN_KILLACTIVE}
|
|
//PSN_VALIDATE = PSN_FIRST - 1;
|
|
//{$EXTERNALSYM PSN_VALIDATE}
|
|
PSN_APPLY = PSN_FIRST - 2;
|
|
{$EXTERNALSYM PSN_APPLY}
|
|
PSN_RESET = PSN_FIRST - 3;
|
|
{$EXTERNALSYM PSN_RESET}
|
|
//PSN_CANCEL = PSN_FIRST - 3;
|
|
//{$EXTERNALSYM PSN_CANCEL}
|
|
PSN_HELP = PSN_FIRST - 5;
|
|
{$EXTERNALSYM PSN_HELP}
|
|
PSN_WIZBACK = PSN_FIRST - 6;
|
|
{$EXTERNALSYM PSN_WIZBACK}
|
|
PSN_WIZNEXT = PSN_FIRST - 7;
|
|
{$EXTERNALSYM PSN_WIZNEXT}
|
|
PSN_WIZFINISH = PSN_FIRST - 8;
|
|
{$EXTERNALSYM PSN_WIZFINISH}
|
|
PSN_QUERYCANCEL = PSN_FIRST - 9;
|
|
{$EXTERNALSYM PSN_QUERYCANCEL}
|
|
PSN_GETOBJECT = PSN_FIRST - 10;
|
|
{$EXTERNALSYM PSN_GETOBJECT}
|
|
PSN_TRANSLATEACCELERATOR = PSN_FIRST - 12;
|
|
{$EXTERNALSYM PSN_TRANSLATEACCELERATOR}
|
|
PSN_QUERYINITIALFOCUS = PSN_FIRST - 13;
|
|
{$EXTERNALSYM PSN_QUERYINITIALFOCUS}
|
|
|
|
PSNRET_NOERROR = 0;
|
|
{$EXTERNALSYM PSNRET_NOERROR}
|
|
PSNRET_INVALID = 1;
|
|
{$EXTERNALSYM PSNRET_INVALID}
|
|
PSNRET_INVALID_NOCHANGEPAGE = 2;
|
|
{$EXTERNALSYM PSNRET_INVALID_NOCHANGEPAGE}
|
|
PSNRET_MESSAGEHANDLED = 3;
|
|
{$EXTERNALSYM PSNRET_MESSAGEHANDLED}
|
|
|
|
PSM_SETCURSEL = WM_USER + 101;
|
|
{$EXTERNALSYM PSM_SETCURSEL}
|
|
|
|
function PropSheet_SetCurSel(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE; Index: Integer): BOOL;
|
|
|
|
const
|
|
PSM_REMOVEPAGE = WM_USER + 102;
|
|
{$EXTERNALSYM PSM_REMOVEPAGE}
|
|
|
|
procedure PropSheet_RemovePage(hPropSheetDlg: HWND; Index: Integer; hPage: HPROPSHEETPAGE);
|
|
|
|
const
|
|
PSM_ADDPAGE = WM_USER + 103;
|
|
{$EXTERNALSYM PSM_ADDPAGE}
|
|
|
|
function PropSheet_AddPage(hPropSheetDlg: HWND; hpage: HPROPSHEETPAGE): BOOL;
|
|
|
|
const
|
|
PSM_CHANGED = WM_USER + 104;
|
|
{$EXTERNALSYM PSM_CHANGED}
|
|
|
|
function PropSheet_Changed(hPropSheetDlg: HWND; hwndPage: HWND): BOOL;
|
|
|
|
const
|
|
PSM_RESTARTWINDOWS = WM_USER + 105;
|
|
{$EXTERNALSYM PSM_RESTARTWINDOWS}
|
|
|
|
procedure PropSheet_RestartWindows(hPropSheetDlg: HWND);
|
|
|
|
const
|
|
PSM_REBOOTSYSTEM = WM_USER + 106;
|
|
{$EXTERNALSYM PSM_REBOOTSYSTEM}
|
|
|
|
procedure PropSheet_RebootSystem(hPropSheetDlg: HWND);
|
|
|
|
const
|
|
PSM_CANCELTOCLOSE = WM_USER + 107;
|
|
{$EXTERNALSYM PSM_CANCELTOCLOSE}
|
|
|
|
procedure PropSheet_CancelToClose(hPropSheetDlg: HWND);
|
|
|
|
const
|
|
PSM_QUERYSIBLINGS = WM_USER + 108;
|
|
{$EXTERNALSYM PSM_QUERYSIBLINGS}
|
|
|
|
function PropSheet_QuerySiblings(hPropSheetDlg: HWND; Param1: WPARAM; Param2: LPARAM): Integer;
|
|
|
|
const
|
|
PSM_UNCHANGED = WM_USER + 109;
|
|
{$EXTERNALSYM PSM_UNCHANGED}
|
|
|
|
procedure PropSheet_UnChanged(hPropSheetDlg: HWND; hwndPage: HWND);
|
|
|
|
const
|
|
PSM_APPLY = WM_USER + 110;
|
|
{$EXTERNALSYM PSM_APPLY}
|
|
|
|
function PropSheet_Apply(hPropSheetDlg: HWND): BOOL;
|
|
|
|
const
|
|
PSM_SETTITLEA = WM_USER + 111;
|
|
{$EXTERNALSYM PSM_SETTITLEA}
|
|
PSM_SETTITLEW = WM_USER + 120;
|
|
{$EXTERNALSYM PSM_SETTITLEW}
|
|
|
|
{$IFDEF UNICODE}
|
|
PSM_SETTITLE = PSM_SETTITLEW;
|
|
{$EXTERNALSYM PSM_SETTITLE}
|
|
{$ELSE}
|
|
PSM_SETTITLE = PSM_SETTITLEA;
|
|
{$EXTERNALSYM PSM_SETTITLE}
|
|
{$ENDIF UNICODE}
|
|
|
|
procedure PropSheet_SetTitle(hPropSheetDlg: HWND; dwStyle: DWORD; lpszText: LPTSTR);
|
|
|
|
const
|
|
PSM_SETWIZBUTTONS = WM_USER + 112;
|
|
{$EXTERNALSYM PSM_SETWIZBUTTONS}
|
|
|
|
procedure PropSheet_SetWizButtons(hPropSheetDlg: HWND; dwFlags: DWORD);
|
|
|
|
const
|
|
PSWIZB_BACK = $00000001;
|
|
{$EXTERNALSYM PSWIZB_BACK}
|
|
PSWIZB_NEXT = $00000002;
|
|
{$EXTERNALSYM PSWIZB_NEXT}
|
|
PSWIZB_FINISH = $00000004;
|
|
{$EXTERNALSYM PSWIZB_FINISH}
|
|
PSWIZB_DISABLEDFINISH = $00000008;
|
|
{$EXTERNALSYM PSWIZB_DISABLEDFINISH}
|
|
|
|
PSM_PRESSBUTTON = WM_USER + 113;
|
|
{$EXTERNALSYM PSM_PRESSBUTTON}
|
|
|
|
function PropSheet_PressButton(hPropSheetDlg: HWND; iButton: Integer): BOOL;
|
|
|
|
const
|
|
PSBTN_BACK = 0;
|
|
{$EXTERNALSYM PSBTN_BACK}
|
|
PSBTN_NEXT = 1;
|
|
{$EXTERNALSYM PSBTN_NEXT}
|
|
PSBTN_FINISH = 2;
|
|
{$EXTERNALSYM PSBTN_FINISH}
|
|
PSBTN_OK = 3;
|
|
{$EXTERNALSYM PSBTN_OK}
|
|
PSBTN_APPLYNOW = 4;
|
|
{$EXTERNALSYM PSBTN_APPLYNOW}
|
|
PSBTN_CANCEL = 5;
|
|
{$EXTERNALSYM PSBTN_CANCEL}
|
|
PSBTN_HELP = 6;
|
|
{$EXTERNALSYM PSBTN_HELP}
|
|
PSBTN_MAX = 6;
|
|
{$EXTERNALSYM PSBTN_MAX}
|
|
|
|
PSM_SETCURSELID = WM_USER + 114;
|
|
{$EXTERNALSYM PSM_SETCURSELID}
|
|
|
|
function PropSheet_SetCurSelByID(hPropSheetDlg: HWND; id: Integer): BOOL;
|
|
|
|
const
|
|
PSM_SETFINISHTEXTA = WM_USER + 115;
|
|
{$EXTERNALSYM PSM_SETFINISHTEXTA}
|
|
PSM_SETFINISHTEXTW = WM_USER + 121;
|
|
{$EXTERNALSYM PSM_SETFINISHTEXTW}
|
|
|
|
{$IFDEF UNICODE}
|
|
PSM_SETFINISHTEXT = PSM_SETFINISHTEXTW;
|
|
{$EXTERNALSYM PSM_SETFINISHTEXT}
|
|
{$ELSE}
|
|
PSM_SETFINISHTEXT = PSM_SETFINISHTEXTA;
|
|
{$EXTERNALSYM PSM_SETFINISHTEXT}
|
|
{$ENDIF UNICODE}
|
|
|
|
procedure PropSheet_SetFinishText(hPropSheetDlg: HWND; lpszText: LPTSTR);
|
|
|
|
const
|
|
PSM_GETTABCONTROL = WM_USER + 116;
|
|
{$EXTERNALSYM PSM_GETTABCONTROL}
|
|
|
|
function PropSheet_GetTabControl(hPropSheetDlg: HWND): HWND;
|
|
|
|
const
|
|
PSM_ISDIALOGMESSAGE = WM_USER + 117;
|
|
{$EXTERNALSYM PSM_ISDIALOGMESSAGE}
|
|
|
|
function PropSheet_IsDialogMessage(hDlg: HWND; pMsg: LPMSG): BOOL;
|
|
|
|
const
|
|
PSM_GETCURRENTPAGEHWND = WM_USER + 118;
|
|
{$EXTERNALSYM PSM_GETCURRENTPAGEHWND}
|
|
|
|
function PropSheet_GetCurrentPageHwnd(hDlg: HWND): HWND;
|
|
|
|
const
|
|
PSM_INSERTPAGE = WM_USER + 119;
|
|
{$EXTERNALSYM PSM_INSERTPAGE}
|
|
|
|
function PropSheet_InsertPage(hPropSheetDlg: HWND; index: Integer; hpage: HPROPSHEETPAGE): BOOL;
|
|
|
|
const
|
|
PSM_SETHEADERTITLEA = WM_USER + 125;
|
|
{$EXTERNALSYM PSM_SETHEADERTITLEA}
|
|
PSM_SETHEADERTITLEW = WM_USER + 126;
|
|
{$EXTERNALSYM PSM_SETHEADERTITLEW}
|
|
|
|
{$IFDEF UNICODE}
|
|
PSM_SETHEADERTITLE = PSM_SETHEADERTITLEW;
|
|
{$EXTERNALSYM PSM_SETHEADERTITLE}
|
|
{$ELSE}
|
|
PSM_SETHEADERTITLE = PSM_SETHEADERTITLEA;
|
|
{$EXTERNALSYM PSM_SETHEADERTITLE}
|
|
{$ENDIF UNICODE}
|
|
|
|
function PropSheet_SetHeaderTitle(hWizardDlg: HWND; iPageIndex: Integer; lpszText: LPCSTR): Integer;
|
|
|
|
const
|
|
PSM_SETHEADERSUBTITLEA = WM_USER + 127;
|
|
{$EXTERNALSYM PSM_SETHEADERSUBTITLEA}
|
|
PSM_SETHEADERSUBTITLEW = WM_USER + 128;
|
|
{$EXTERNALSYM PSM_SETHEADERSUBTITLEW}
|
|
|
|
{$IFDEF UNICODE}
|
|
PSM_SETHEADERSUBTITLE = PSM_SETHEADERSUBTITLEW;
|
|
{$EXTERNALSYM PSM_SETHEADERSUBTITLE}
|
|
{$ELSE}
|
|
PSM_SETHEADERSUBTITLE = PSM_SETHEADERSUBTITLEA;
|
|
{$EXTERNALSYM PSM_SETHEADERSUBTITLE}
|
|
{$ENDIF UNICODE}
|
|
|
|
procedure PropSheet_SetHeaderSubTitle(hWizardDlg: HWND; iPageIndex: Integer; pszHeaderSubTitle: LPCSTR);
|
|
|
|
const
|
|
PSM_HWNDTOINDEX = WM_USER + 129;
|
|
{$EXTERNALSYM PSM_HWNDTOINDEX}
|
|
|
|
function PropSheet_HwndToIndex(hPropSheetDlg: HWND; hPageDlg: HWND): Integer;
|
|
|
|
const
|
|
PSM_INDEXTOHWND = WM_USER + 130;
|
|
{$EXTERNALSYM PSM_INDEXTOHWND}
|
|
|
|
function PropSheet_IndexToHwnd(hPropSheetDlg: HWND; iPageIndex: Integer): HWND;
|
|
|
|
const
|
|
PSM_PAGETOINDEX = WM_USER + 131;
|
|
{$EXTERNALSYM PSM_PAGETOINDEX}
|
|
|
|
function PropSheet_PageToIndex(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE): Integer;
|
|
|
|
const
|
|
PSM_INDEXTOPAGE = WM_USER + 132;
|
|
{$EXTERNALSYM PSM_INDEXTOPAGE}
|
|
|
|
function PropSheet_IndexToPage(hPropSheetDlg: HWND; iPageIndex: Integer): HPROPSHEETPAGE;
|
|
|
|
const
|
|
PSM_IDTOINDEX = WM_USER + 133;
|
|
{$EXTERNALSYM PSM_IDTOINDEX}
|
|
|
|
function PropSheet_IdToIndex(hPropSheetDlg: HWND; iPageId: Integer): Integer;
|
|
|
|
const
|
|
PSM_INDEXTOID = WM_USER + 134;
|
|
{$EXTERNALSYM PSM_INDEXTOID}
|
|
|
|
function PropSheet_IndexToId(hPropSheetDlg: HWND; iPageIndex: Integer): Integer;
|
|
|
|
const
|
|
PSM_GETRESULT = WM_USER + 135;
|
|
{$EXTERNALSYM PSM_GETRESULT}
|
|
|
|
function PropSheet_GetResult(hPropSheetDlg: HWND): BOOL;
|
|
|
|
const
|
|
PSM_RECALCPAGESIZES = WM_USER + 136;
|
|
{$EXTERNALSYM PSM_RECALCPAGESIZES}
|
|
|
|
function PropSheet_RecalcPageSizes(hPropSheetDlg: HWND): BOOL;
|
|
|
|
const
|
|
ID_PSRESTARTWINDOWS = $2;
|
|
{$EXTERNALSYM ID_PSRESTARTWINDOWS}
|
|
|
|
ID_PSREBOOTSYSTEM = ID_PSRESTARTWINDOWS or $1;
|
|
{$EXTERNALSYM ID_PSREBOOTSYSTEM}
|
|
|
|
WIZ_CXDLG = 276;
|
|
{$EXTERNALSYM WIZ_CXDLG}
|
|
WIZ_CYDLG = 140;
|
|
{$EXTERNALSYM WIZ_CYDLG}
|
|
|
|
WIZ_CXBMP = 80;
|
|
{$EXTERNALSYM WIZ_CXBMP}
|
|
|
|
WIZ_BODYX = 92;
|
|
{$EXTERNALSYM WIZ_BODYX}
|
|
WIZ_BODYCX = 184;
|
|
{$EXTERNALSYM WIZ_BODYCX}
|
|
|
|
PROP_SM_CXDLG = 212;
|
|
{$EXTERNALSYM PROP_SM_CXDLG}
|
|
PROP_SM_CYDLG = 188;
|
|
{$EXTERNALSYM PROP_SM_CYDLG}
|
|
|
|
PROP_MED_CXDLG = 227;
|
|
{$EXTERNALSYM PROP_MED_CXDLG}
|
|
PROP_MED_CYDLG = 215;
|
|
{$EXTERNALSYM PROP_MED_CYDLG}
|
|
|
|
PROP_LG_CXDLG = 252;
|
|
{$EXTERNALSYM PROP_LG_CXDLG}
|
|
PROP_LG_CYDLG = 218;
|
|
{$EXTERNALSYM PROP_LG_CYDLG}
|
|
|
|
{$ENDIF JWA_IMPLEMENTATIONSECTION}
|
|
|
|
{$IFNDEF JWA_OMIT_SECTIONS}
|
|
implementation
|
|
//uses ...
|
|
{$ENDIF JWA_OMIT_SECTIONS}
|
|
|
|
{$IFNDEF JWA_INTERFACESECTION}
|
|
|
|
{$IFNDEF JWA_INCLUDEMODE}
|
|
const
|
|
comctl32 = 'comctl32.dll';
|
|
{$IFDEF UNICODE}
|
|
AWSuffix = 'W';
|
|
{$ELSE}
|
|
AWSuffix = 'A';
|
|
{$ENDIF UNICODE}
|
|
{$ENDIF JWA_INCLUDEMODE}
|
|
|
|
function PropSheet_SetCurSel(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE; Index: Integer): BOOL;
|
|
begin
|
|
Result := BOOL(SendMessage(hPropSheetDlg, PSM_SETCURSEL, WPARAM(Index), LPARAM(hPage)));
|
|
end;
|
|
|
|
procedure PropSheet_RemovePage(hPropSheetDlg: HWND; Index: Integer; hPage: HPROPSHEETPAGE);
|
|
begin
|
|
SendMessage(hPropSheetDlg, PSM_REMOVEPAGE, Index, LPARAM(hPage));
|
|
end;
|
|
|
|
function PropSheet_AddPage(hPropSheetDlg: HWND; hpage: HPROPSHEETPAGE): BOOL;
|
|
begin
|
|
Result := BOOL(SendMessage(hPropSheetDlg, PSM_ADDPAGE, 0, LPARAM(hpage)));
|
|
end;
|
|
|
|
function PropSheet_Changed(hPropSheetDlg: HWND; hwndPage: HWND): BOOL;
|
|
begin
|
|
Result := BOOL(SendMessage(hPropSheetDlg, PSM_CHANGED, WPARAM(hwndPage), 0));
|
|
end;
|
|
|
|
procedure PropSheet_RestartWindows(hPropSheetDlg: HWND);
|
|
begin
|
|
SendMessage(hPropSheetDlg, PSM_RESTARTWINDOWS, 0, 0);
|
|
end;
|
|
|
|
procedure PropSheet_RebootSystem(hPropSheetDlg: HWND);
|
|
begin
|
|
SendMessage(hPropSheetDlg, PSM_REBOOTSYSTEM, 0, 0);
|
|
end;
|
|
|
|
procedure PropSheet_CancelToClose(hPropSheetDlg: HWND);
|
|
begin
|
|
PostMessage(hPropSheetDlg, PSM_CANCELTOCLOSE, 0, 0);
|
|
end;
|
|
|
|
function PropSheet_QuerySiblings(hPropSheetDlg: HWND; Param1: WPARAM; Param2: LPARAM): Integer;
|
|
begin
|
|
Result := SendMessage(hPropSheetDlg, PSM_QUERYSIBLINGS, Param1, Param2);
|
|
end;
|
|
|
|
procedure PropSheet_UnChanged(hPropSheetDlg: HWND; hwndPage: HWND);
|
|
begin
|
|
SendMessage(hPropSheetDlg, PSM_UNCHANGED, WPARAM(hwndPage), 0);
|
|
end;
|
|
|
|
function PropSheet_Apply(hPropSheetDlg: HWND): BOOL;
|
|
begin
|
|
Result := BOOL(SendMessage(hPropSheetDlg, PSM_APPLY, 0, 0));
|
|
end;
|
|
|
|
procedure PropSheet_SetTitle(hPropSheetDlg: HWND; dwStyle: DWORD; lpszText: LPTSTR);
|
|
begin
|
|
SendMessage(hPropSheetDlg, PSM_SETTITLE, dwStyle, LPARAM(LPCTSTR(lpszText)));
|
|
end;
|
|
|
|
procedure PropSheet_SetWizButtons(hPropSheetDlg: HWND; dwFlags: DWORD);
|
|
begin
|
|
PostMessage(hPropSheetDlg, PSM_SETWIZBUTTONS, 0, LPARAM(dwFlags));
|
|
end;
|
|
|
|
function PropSheet_PressButton(hPropSheetDlg: HWND; iButton: Integer): BOOL;
|
|
begin
|
|
Result := PostMessage(hPropSheetDlg, PSM_PRESSBUTTON, WPARAM(iButton), 0);
|
|
end;
|
|
|
|
function PropSheet_SetCurSelByID(hPropSheetDlg: HWND; id: Integer): BOOL;
|
|
begin
|
|
Result := BOOL(SendMessage(hPropSheetDlg, PSM_SETCURSELID, 0, LPARAM(id)));
|
|
end;
|
|
|
|
procedure PropSheet_SetFinishText(hPropSheetDlg: HWND; lpszText: LPTSTR);
|
|
begin
|
|
SendMessage(hPropSheetDlg, PSM_SETFINISHTEXT, 0, LPARAM(lpszText));
|
|
end;
|
|
|
|
function PropSheet_GetTabControl(hPropSheetDlg: HWND): HWND;
|
|
begin
|
|
Result := SendMessage(hPropSheetDlg, PSM_GETTABCONTROL, 0, 0);
|
|
end;
|
|
|
|
function PropSheet_IsDialogMessage(hDlg: HWND; pMsg: LPMSG): BOOL;
|
|
begin
|
|
Result := BOOL(SendMessage(hDlg, PSM_ISDIALOGMESSAGE, 0, LPARAM(pMsg)));
|
|
end;
|
|
|
|
function PropSheet_GetCurrentPageHwnd(hDlg: HWND): HWND;
|
|
begin
|
|
Result := SendMessage(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0);
|
|
end;
|
|
|
|
function PropSheet_InsertPage(hPropSheetDlg: HWND; index: Integer; hpage: HPROPSHEETPAGE): BOOL;
|
|
begin
|
|
Result := BOOL(SendMessage(hPropSheetDlg, PSM_INSERTPAGE, WPARAM(index), LPARAM(hpage)));
|
|
end;
|
|
|
|
function PropSheet_SetHeaderTitle(hWizardDlg: HWND; iPageIndex: Integer; lpszText: LPCSTR): Integer;
|
|
begin
|
|
Result := SendMessage(hWizardDlg, PSM_SETHEADERTITLE, WPARAM(iPageIndex), LPARAM(lpszText));
|
|
end;
|
|
|
|
procedure PropSheet_SetHeaderSubTitle(hWizardDlg: HWND; iPageIndex: Integer; pszHeaderSubTitle: LPCSTR);
|
|
begin
|
|
SendMessage(hWizardDlg, PSM_SETHEADERSUBTITLE, WPARAM(iPageIndex), LPARAM(pszHeaderSubTitle));
|
|
end;
|
|
|
|
function PropSheet_HwndToIndex(hPropSheetDlg: HWND; hPageDlg: HWND): Integer;
|
|
begin
|
|
Result := SendMessage(hPropSheetDlg, PSM_HWNDTOINDEX, WPARAM(hPageDlg), 0);
|
|
end;
|
|
|
|
function PropSheet_IndexToHwnd(hPropSheetDlg: HWND; iPageIndex: Integer): HWND;
|
|
begin
|
|
Result := SendMessage(hPropSheetDlg, PSM_INDEXTOHWND, WPARAM(iPageIndex), 0);
|
|
end;
|
|
|
|
function PropSheet_PageToIndex(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE): Integer;
|
|
begin
|
|
Result := SendMessage(hPropSheetDlg, PSM_PAGETOINDEX, 0, LPARAM(hpage));
|
|
end;
|
|
|
|
function PropSheet_IndexToPage(hPropSheetDlg: HWND; iPageIndex: Integer): HPROPSHEETPAGE;
|
|
begin
|
|
Result := HPROPSHEETPAGE(SendMessage(hPropSheetDlg, PSM_INDEXTOPAGE, WPARAM(iPageIndex), 0));
|
|
end;
|
|
|
|
function PropSheet_IdToIndex(hPropSheetDlg: HWND; iPageId: Integer): Integer;
|
|
begin
|
|
Result := SendMessage(hPropSheetDlg, PSM_IDTOINDEX, 0, LPARAM(iPageId));
|
|
end;
|
|
|
|
function PropSheet_IndexToId(hPropSheetDlg: HWND; iPageIndex: Integer): Integer;
|
|
begin
|
|
Result := SendMessage(hPropSheetDlg, PSM_INDEXTOID, WPARAM(iPageIndex), 0)
|
|
end;
|
|
|
|
function PropSheet_GetResult(hPropSheetDlg: HWND): BOOL;
|
|
begin
|
|
Result := BOOL(SendMessage(hPropSheetDlg, PSM_GETRESULT, 0, 0));
|
|
end;
|
|
|
|
function PropSheet_RecalcPageSizes(hPropSheetDlg: HWND): BOOL;
|
|
begin
|
|
Result := BOOL(SendMessage(hPropSheetDlg, PSM_RECALCPAGESIZES, 0, 0));
|
|
end;
|
|
|
|
{$IFDEF DYNAMIC_LINK}
|
|
|
|
var
|
|
_CreatePropertySheetPageA: Pointer;
|
|
|
|
function CreatePropertySheetPageA;
|
|
begin
|
|
GetProcedureAddress(_CreatePropertySheetPageA, comctl32, 'CreatePropertySheetPageA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreatePropertySheetPageA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreatePropertySheetPageW: Pointer;
|
|
|
|
function CreatePropertySheetPageW;
|
|
begin
|
|
GetProcedureAddress(_CreatePropertySheetPageW, comctl32, 'CreatePropertySheetPageW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreatePropertySheetPageW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DestroyPropertySheetPage: Pointer;
|
|
|
|
function DestroyPropertySheetPage;
|
|
begin
|
|
GetProcedureAddress(_DestroyPropertySheetPage, comctl32, 'DestroyPropertySheetPage');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DestroyPropertySheetPage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PropertySheetA: Pointer;
|
|
|
|
function PropertySheetA;
|
|
begin
|
|
GetProcedureAddress(_PropertySheetA, comctl32, 'PropertySheetA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PropertySheetA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PropertySheetW: Pointer;
|
|
|
|
function PropertySheetW;
|
|
begin
|
|
GetProcedureAddress(_PropertySheetW, comctl32, 'PropertySheetW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PropertySheetW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreatePropertySheetPage: Pointer;
|
|
|
|
function CreatePropertySheetPage;
|
|
begin
|
|
GetProcedureAddress(_CreatePropertySheetPage, comctl32, 'CreatePropertySheetPage' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreatePropertySheetPage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PropertySheet: Pointer;
|
|
|
|
function PropertySheet;
|
|
begin
|
|
GetProcedureAddress(_PropertySheet, comctl32, 'PropertySheet' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PropertySheet]
|
|
end;
|
|
end;
|
|
|
|
{$ELSE}
|
|
|
|
function CreatePropertySheetPageA; external comctl32 name 'CreatePropertySheetPageA';
|
|
function CreatePropertySheetPageW; external comctl32 name 'CreatePropertySheetPageW';
|
|
function DestroyPropertySheetPage; external comctl32 name 'DestroyPropertySheetPage';
|
|
function PropertySheetA; external comctl32 name 'PropertySheetA';
|
|
function PropertySheetW; external comctl32 name 'PropertySheetW';
|
|
function CreatePropertySheetPage; external comctl32 name 'CreatePropertySheetPage' + AWSuffix;
|
|
function PropertySheet; external comctl32 name 'PropertySheet' + AWSuffix;
|
|
|
|
{$ENDIF DYNAMIC_LINK}
|
|
|
|
{$ENDIF JWA_INTERFACESECTION}
|
|
|
|
{$IFNDEF JWA_OMIT_SECTIONS}
|
|
end.
|
|
{$ENDIF JWA_OMIT_SECTIONS}
|