📄 jwaprsht.pas
字号:
{******************************************************************************}
{ }
{ 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@chello.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 home }
{ page, located at http://delphi-jedi.org or my personal homepage located at }
{ http://members.chello.nl/m.vanbrakel2 }
{ }
{ 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 WINDEFINES.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}
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 _WIN32_IE_GE_0x0400}
pszHeaderTitle: LPCSTR; // this is displayed in the header
pszHeaderSubTitle: LPCSTR; //
{$ENDIF}
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 _WIN32_IE_GE_0x0400}
pszHeaderTitle: LPCWSTR; // this is displayed in the header
pszHeaderSubTitle: LPCWSTR; //
{$ENDIF}
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}
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 _WIN32_IE_SMALLER_0500}
PSH_WIZARD97 = $00002000;
{$EXTERNALSYM PSH_WIZARD97}
{$ELSE}
PSH_WIZARD97 = $01000000;
{$EXTERNALSYM PSH_WIZARD97}
{$ENDIF}
// 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 _WIN32_IE_GE_0x0400}
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}
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -