blob: b3a7a2fd2f099c8e91f54a897138fafd197a5f29 [file]
/**
* Windows API header module
*
* Translated from MinGW Windows headers
*
* Authors: Vladimir Vlasov
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(DRUNTIMESRC core/sys/windows/_prsht.d)
*/
module core.sys.windows.prsht;
version (Windows):
version (ANSI) {} else version = Unicode;
pragma(lib, "comctl32");
import core.sys.windows.w32api, core.sys.windows.windef, core.sys.windows.winuser;
enum MAXPROPPAGES = 100;
enum {
PSP_DEFAULT = 0x00000000,
PSP_DLGINDIRECT = 0x00000001,
PSP_USEHICON = 0x00000002,
PSP_USEICONID = 0x00000004,
PSP_USETITLE = 0x00000008,
PSP_RTLREADING = 0x00000010,
PSP_HASHELP = 0x00000020,
PSP_USEREFPARENT = 0x00000040,
PSP_USECALLBACK = 0x00000080,
PSP_PREMATURE = 0x00000400
}
static if (_WIN32_IE >= 0x400) {
enum {
PSP_HIDEHEADER = 0x00000800,
PSP_USEHEADERTITLE = 0x00001000,
PSP_USEHEADERSUBTITLE = 0x00002000
}
}
enum {
PSPCB_RELEASE = 1,
PSPCB_CREATE
}
enum {
PSH_DEFAULT = 0x00000000,
PSH_PROPTITLE = 0x00000001,
PSH_USEHICON = 0x00000002,
PSH_USEICONID = 0x00000004,
PSH_PROPSHEETPAGE = 0x00000008,
PSH_WIZARDHASFINISH = 0x00000010,
PSH_WIZARD = 0x00000020,
PSH_USEPSTARTPAGE = 0x00000040,
PSH_NOAPPLYNOW = 0x00000080,
PSH_USECALLBACK = 0x00000100,
PSH_HASHELP = 0x00000200,
PSH_MODELESS = 0x00000400,
PSH_RTLREADING = 0x00000800,
PSH_WIZARDCONTEXTHELP = 0x00001000
}
static if (_WIN32_IE >= 0x400) {
enum {
PSH_WATERMARK = 0x00008000,
PSH_USEHBMWATERMARK = 0x00010000,
PSH_USEHPLWATERMARK = 0x00020000,
PSH_STRETCHWATERMARK = 0x00040000,
PSH_HEADER = 0x00080000,
PSH_USEHBMHEADER = 0x00100000,
PSH_USEPAGELANG = 0x00200000
}
static if (_WIN32_IE < 0x0500) {
enum {
PSH_WIZARD97 = 0x00002000
}
} else {
enum {
PSH_WIZARD97 = 0x01000000
}
}
}
static if (_WIN32_IE >= 0x500) {
enum {
PSH_WIZARD_LITE = 0x00400000,
PSH_NOCONTEXTHELP = 0x02000000
}
}
enum {
PSCB_INITIALIZED = 1,
PSCB_PRECREATE
}
enum {
PSN_FIRST = (-200),
PSN_LAST = (-299),
PSN_SETACTIVE = (-200),
PSN_KILLACTIVE = (-201),
PSN_APPLY = (-202),
PSN_RESET = (-203),
PSN_HELP = (-205),
PSN_WIZBACK = (-206),
PSN_WIZNEXT = (-207),
PSN_WIZFINISH = (-208),
PSN_QUERYCANCEL = (-209)
}
static if (_WIN32_IE >= 0x400) {
enum {
PSN_GETOBJECT = (-210)
}
}
static if (_WIN32_IE >= 0x500) {
enum {
PSN_TRANSLATEACCELERATOR = (-212),
PSN_QUERYINITIALFOCUS = (-213)
}
}
enum {
PSNRET_NOERROR,
PSNRET_INVALID,
PSNRET_INVALID_NOCHANGEPAGE,
PSNRET_MESSAGEHANDLED
}
enum {
ID_PSRESTARTWINDOWS = 0x2,
ID_PSREBOOTSYSTEM = ID_PSRESTARTWINDOWS | 0x1
}
enum {
WIZ_CXDLG = 276,
WIZ_CYDLG = 140,
WIZ_CXBMP = 80,
WIZ_BODYX = 92,
WIZ_BODYCX = 184
}
enum {
PROP_SM_CXDLG = 212,
PROP_SM_CYDLG = 188,
PROP_MED_CXDLG = 227,
PROP_MED_CYDLG = 215,
PROP_LG_CXDLG = 252,
PROP_LG_CYDLG = 218
}
enum {
PSBTN_BACK,
PSBTN_NEXT,
PSBTN_FINISH,
PSBTN_OK,
PSBTN_APPLYNOW,
PSBTN_CANCEL,
PSBTN_HELP,
PSBTN_MAX = 6
}
enum {
PSWIZB_BACK = 1,
PSWIZB_NEXT = 2,
PSWIZB_FINISH = 4,
PSWIZB_DISABLEDFINISH = 8
}
enum {
PSM_SETCURSEL = WM_USER + 101,
PSM_REMOVEPAGE,
PSM_ADDPAGE,
PSM_CHANGED,
PSM_RESTARTWINDOWS,
PSM_REBOOTSYSTEM,
PSM_CANCELTOCLOSE,
PSM_QUERYSIBLINGS,
PSM_UNCHANGED,
PSM_APPLY,
PSM_SETTITLEA,
PSM_SETWIZBUTTONS,
PSM_PRESSBUTTON,
PSM_SETCURSELID,
PSM_SETFINISHTEXTA,
PSM_GETTABCONTROL,
PSM_ISDIALOGMESSAGE,
PSM_GETCURRENTPAGEHWND,
PSM_INSERTPAGE,
PSM_SETTITLEW,
PSM_SETFINISHTEXTW // = WM_USER + 121,
}
extern (Windows) {
alias LPFNPSPCALLBACKA = UINT function(HWND, UINT, LPPROPSHEETPAGEA);
alias LPFNPSPCALLBACKW = UINT function(HWND, UINT, LPPROPSHEETPAGEW);
alias PFNPROPSHEETCALLBACK = int function(HWND, UINT, LPARAM);
}
align(4):
struct PROPSHEETPAGEA {
DWORD dwSize = PROPSHEETPAGEA.sizeof;
DWORD dwFlags;
HINSTANCE hInstance;
union {
LPCSTR pszTemplate;
LPCDLGTEMPLATE pResource;
}
union {
HICON hIcon;
LPCSTR pszIcon;
}
LPCSTR pszTitle;
DLGPROC pfnDlgProc;
LPARAM lParam;
LPFNPSPCALLBACKA pfnCallback;
UINT* pcRefParent;
static if (_WIN32_IE >= 0x400) {
LPCSTR pszHeaderTitle;
LPCSTR pszHeaderSubTitle;
}
}
alias LPPROPSHEETPAGEA = PROPSHEETPAGEA*;
alias LPCPROPSHEETPAGEA = const(PROPSHEETPAGEA)*;
struct PROPSHEETPAGEW {
DWORD dwSize = PROPSHEETPAGEW.sizeof;
DWORD dwFlags;
HINSTANCE hInstance;
union {
LPCWSTR pszTemplate;
LPCDLGTEMPLATE pResource;
}
union {
HICON hIcon;
LPCWSTR pszIcon;
}
LPCWSTR pszTitle;
DLGPROC pfnDlgProc;
LPARAM lParam;
LPFNPSPCALLBACKW pfnCallback;
UINT* pcRefParent;
static if (_WIN32_IE >= 0x400) {
LPCWSTR pszHeaderTitle;
LPCWSTR pszHeaderSubTitle;
}
}
alias LPPROPSHEETPAGEW = PROPSHEETPAGEW*;
alias LPCPROPSHEETPAGEW = const(PROPSHEETPAGEW)*;
alias HPROPSHEETPAGE = HANDLE;
struct PROPSHEETHEADERA {
DWORD dwSize = PROPSHEETHEADERA.sizeof;
DWORD dwFlags;
HWND hwndParent;
HINSTANCE hInstance;
union {
HICON hIcon;
LPCSTR pszIcon;
}
LPCSTR pszCaption;
UINT nPages;
union {
UINT nStartPage;
LPCSTR pStartPage;
}
union {
LPCPROPSHEETPAGEA ppsp;
HPROPSHEETPAGE* phpage;
}
PFNPROPSHEETCALLBACK pfnCallback;
static if (_WIN32_IE >= 0x400) {
union {
HBITMAP hbmWatermark;
LPCSTR pszbmWatermark;
}
HPALETTE hplWatermark;
union {
HBITMAP hbmHeader;
LPCSTR pszbmHeader;
}
}
}
alias LPPROPSHEETHEADERA = PROPSHEETHEADERA*;
alias LPCPROPSHEETHEADERA = const(PROPSHEETHEADERA)*;
struct PROPSHEETHEADERW {
DWORD dwSize = PROPSHEETHEADERW.sizeof;
DWORD dwFlags;
HWND hwndParent;
HINSTANCE hInstance;
union {
HICON hIcon;
LPCWSTR pszIcon;
}
LPCWSTR pszCaption;
UINT nPages;
union {
UINT nStartPage;
LPCWSTR pStartPage;
}
union {
LPCPROPSHEETPAGEW ppsp;
HPROPSHEETPAGE* phpage;
}
PFNPROPSHEETCALLBACK pfnCallback;
static if (_WIN32_IE >= 0x400) {
union {
HBITMAP hbmWatermark;
LPCWSTR pszbmWatermark;
}
HPALETTE hplWatermark;
union {
HBITMAP hbmHeader;
LPCWSTR pszbmHeader;
}
}
}
alias LPPROPSHEETHEADERW = PROPSHEETHEADERW*;
alias LPCPROPSHEETHEADERW = const(PROPSHEETHEADERW)*;
extern (Windows) {
alias LPFNADDPROPSHEETPAGE = BOOL function(HPROPSHEETPAGE, LPARAM);
alias LPFNADDPROPSHEETPAGES = BOOL function(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM);
}
struct PSHNOTIFY {
NMHDR hdr;
LPARAM lParam;
}
alias LPPSHNOTIFY = PSHNOTIFY*;
extern (Windows) nothrow @nogc {
HPROPSHEETPAGE CreatePropertySheetPageA(LPCPROPSHEETPAGEA);
HPROPSHEETPAGE CreatePropertySheetPageW(LPCPROPSHEETPAGEW);
BOOL DestroyPropertySheetPage(HPROPSHEETPAGE);
INT_PTR PropertySheetA(LPCPROPSHEETHEADERA);
INT_PTR PropertySheetW(LPCPROPSHEETHEADERW);
}
version (Unicode) {
alias LPFNPSPCALLBACK = LPFNPSPCALLBACKW;
alias PROPSHEETPAGE = PROPSHEETPAGEW;
alias LPPROPSHEETPAGE = LPPROPSHEETPAGEW;
alias LPCPROPSHEETPAGE = LPCPROPSHEETPAGEW;
alias PROPSHEETHEADER = PROPSHEETHEADERW;
alias LPPROPSHEETHEADER = LPPROPSHEETHEADERW;
alias LPCPROPSHEETHEADER = LPCPROPSHEETHEADERW;
alias PSM_SETTITLE = PSM_SETTITLEW;
alias PSM_SETFINISHTEXT = PSM_SETFINISHTEXTW;
alias CreatePropertySheetPage = CreatePropertySheetPageW;
alias PropertySheet = PropertySheetW;
} else {
alias LPFNPSPCALLBACK = LPFNPSPCALLBACKA;
alias PROPSHEETPAGE = PROPSHEETPAGEA;
alias LPPROPSHEETPAGE = LPPROPSHEETPAGEA;
alias LPCPROPSHEETPAGE = LPCPROPSHEETPAGEA;
alias PROPSHEETHEADER = PROPSHEETHEADERA;
alias LPPROPSHEETHEADER = LPPROPSHEETHEADERA;
alias LPCPROPSHEETHEADER = LPCPROPSHEETHEADERA;
alias PSM_SETTITLE = PSM_SETTITLEA;
alias PSM_SETFINISHTEXT = PSM_SETFINISHTEXTA;
alias CreatePropertySheetPage = CreatePropertySheetPageA;
alias PropertySheet = PropertySheetA;
}
BOOL PropSheet_SetCurSel(HWND hPropSheetDlg, HPROPSHEETPAGE hpage,
HPROPSHEETPAGE index) {
return cast(BOOL) SendMessage(hPropSheetDlg, PSM_SETCURSEL,
cast(WPARAM) index, cast(LPARAM) hpage);
}
VOID PropSheet_RemovePage(HWND hPropSheetDlg, int index, HPROPSHEETPAGE hpage) {
SendMessage(hPropSheetDlg, PSM_REMOVEPAGE, index, cast(LPARAM) hpage);
}
BOOL PropSheet_AddPage(HWND hPropSheetDlg, HPROPSHEETPAGE hpage) {
return cast(BOOL) SendMessage(hPropSheetDlg, PSM_ADDPAGE,
0, cast(LPARAM) hpage);
}
VOID PropSheet_Changed(HWND hPropSheetDlg, HWND hwndPage) {
SendMessage(hPropSheetDlg, PSM_CHANGED, cast(WPARAM) hwndPage, 0);
}
VOID PropSheet_RestartWindows(HWND hPropSheetDlg) {
SendMessage(hPropSheetDlg, PSM_RESTARTWINDOWS, 0, 0);
}
VOID PropSheet_RebootSystem(HWND hPropSheetDlg) {
SendMessage(hPropSheetDlg, PSM_REBOOTSYSTEM, 0, 0);
}
VOID PropSheet_CancelToClose(HWND hPropSheetDlg) {
SendMessage(hPropSheetDlg, PSM_CANCELTOCLOSE, 0, 0);
}
int PropSheet_QuerySiblings(HWND hPropSheetDlg, WPARAM param1, LPARAM param2) {
return cast(int) SendMessage(hPropSheetDlg, PSM_QUERYSIBLINGS, param1, param2);
}
VOID PropSheet_UnChanged(HWND hPropSheetDlg, HWND hwndPage) {
SendMessage(hPropSheetDlg, PSM_UNCHANGED, cast(WPARAM) hwndPage, 0);
}
BOOL PropSheet_Apply(HWND hPropSheetDlg) {
return cast(BOOL) SendMessage(hPropSheetDlg, PSM_APPLY, 0, 0);
}
VOID PropSheet_SetTitle(HWND hPropSheetDlg, DWORD wStyle, LPTSTR lpszText) {
SendMessage(hPropSheetDlg, PSM_SETTITLE, wStyle, cast(LPARAM) lpszText);
}
VOID PropSheet_SetWizButtons(HWND hPropSheetDlg, DWORD dwFlags) {
PostMessage(hPropSheetDlg, PSM_SETWIZBUTTONS, 0, cast(LPARAM) dwFlags);
}
BOOL PropSheet_PressButton(HWND hPropSheetDlg, int iButton) {
return cast(BOOL) SendMessage(hPropSheetDlg, PSM_PRESSBUTTON, iButton, 0);
}
BOOL PropSheet_SetCurSelByID(HWND hPropSheetDlg, int id) {
return cast(BOOL) SendMessage(hPropSheetDlg, PSM_SETCURSELID, 0, id);
}
VOID PropSheet_SetFinishText(HWND hPropSheetDlg, LPTSTR lpszText) {
SendMessage(hPropSheetDlg, PSM_SETFINISHTEXT, 0, cast(LPARAM) lpszText);
}
HWND PropSheet_GetTabControl(HWND hPropSheetDlg) {
return cast(HWND) SendMessage(hPropSheetDlg, PSM_GETTABCONTROL, 0, 0);
}
BOOL PropSheet_IsDialogMessage(HWND hDlg, LPMSG pMsg) {
return cast(BOOL) SendMessage(hDlg, PSM_ISDIALOGMESSAGE,
0, cast(LPARAM) pMsg);
}
HWND PropSheet_GetCurrentPageHwnd(HWND hDlg) {
return cast(HWND) SendMessage(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0);
}
BOOL PropSheet_InsertPage(HWND hPropSheetDlg, WPARAM wInsertAfter,
HPROPSHEETPAGE hpage) {
return cast(BOOL) SendMessage(hPropSheetDlg, PSM_INSERTPAGE,
wInsertAfter, cast(LPARAM) hpage);
}