| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049 |
- {******************************************************************************}
- { }
- { 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 }
- { }
- {******************************************************************************}
- unit JwaPrSht;
- {$WEAKPACKAGEUNIT}
- {$HPPEMIT ''}
- {$HPPEMIT '#include "ntdsapi.h"'}
- {$HPPEMIT ''}
- {$HPPEMIT 'typedef PHPROPSHEETPAGE *HPROPSHEETPAGE'}
- {$HPPEMIT ''}
- {$I jediapilib.inc}
- interface
- uses
- JwaWinNT, JwaWinUser, JwaWinType;
- //#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
- HPROPSHEETPAGE = Pointer;
- {$EXTERNALSYM HPROPSHEETPAGE}
- 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: HINSTANCE;
- 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: HINSTANCE;
- 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: HINSTANCE;
- 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: HINSTANCE;
- 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}
- implementation
- const
- comctl32 = 'comctl32.dll';
- {$IFDEF UNICODE}
- AWSuffix = 'W';
- {$ELSE}
- AWSuffix = 'A';
- {$ENDIF UNICODE}
- 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}
- end.
|