| /** |
| * 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 src/core/sys/windows/_prsht.d) |
| */ |
| module core.sys.windows.prsht; |
| version (Windows): |
| @system: |
| |
| 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 UINT function(HWND, UINT, LPPROPSHEETPAGEA) LPFNPSPCALLBACKA; |
| alias UINT function(HWND, UINT, LPPROPSHEETPAGEW) LPFNPSPCALLBACKW; |
| alias int function(HWND, UINT, LPARAM) PFNPROPSHEETCALLBACK; |
| } |
| |
| 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 PROPSHEETPAGEA* LPPROPSHEETPAGEA; |
| alias const(PROPSHEETPAGEA)* LPCPROPSHEETPAGEA; |
| |
| 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 PROPSHEETPAGEW* LPPROPSHEETPAGEW; |
| alias const(PROPSHEETPAGEW)* LPCPROPSHEETPAGEW; |
| |
| mixin DECLARE_HANDLE!("HPROPSHEETPAGE"); |
| |
| 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 PROPSHEETHEADERA* LPPROPSHEETHEADERA; |
| alias const(PROPSHEETHEADERA)* LPCPROPSHEETHEADERA; |
| |
| 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 PROPSHEETHEADERW* LPPROPSHEETHEADERW; |
| alias const(PROPSHEETHEADERW)* LPCPROPSHEETHEADERW; |
| |
| extern (Windows) { |
| alias BOOL function(HPROPSHEETPAGE, LPARAM) LPFNADDPROPSHEETPAGE; |
| alias BOOL function(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM) |
| LPFNADDPROPSHEETPAGES; |
| } |
| |
| struct PSHNOTIFY { |
| NMHDR hdr; |
| LPARAM lParam; |
| } |
| alias PSHNOTIFY* LPPSHNOTIFY; |
| |
| extern (Windows) { |
| HPROPSHEETPAGE CreatePropertySheetPageA(LPCPROPSHEETPAGEA); |
| HPROPSHEETPAGE CreatePropertySheetPageW(LPCPROPSHEETPAGEW); |
| BOOL DestroyPropertySheetPage(HPROPSHEETPAGE); |
| INT_PTR PropertySheetA(LPCPROPSHEETHEADERA); |
| INT_PTR PropertySheetW(LPCPROPSHEETHEADERW); |
| } |
| |
| version (Unicode) { |
| alias LPFNPSPCALLBACKW LPFNPSPCALLBACK; |
| alias PROPSHEETPAGEW PROPSHEETPAGE; |
| alias LPPROPSHEETPAGEW LPPROPSHEETPAGE; |
| alias LPCPROPSHEETPAGEW LPCPROPSHEETPAGE; |
| alias PROPSHEETHEADERW PROPSHEETHEADER; |
| alias LPPROPSHEETHEADERW LPPROPSHEETHEADER; |
| alias LPCPROPSHEETHEADERW LPCPROPSHEETHEADER; |
| alias PSM_SETTITLEW PSM_SETTITLE; |
| alias PSM_SETFINISHTEXTW PSM_SETFINISHTEXT; |
| alias CreatePropertySheetPageW CreatePropertySheetPage; |
| alias PropertySheetW PropertySheet; |
| } else { |
| alias LPFNPSPCALLBACKA LPFNPSPCALLBACK; |
| alias PROPSHEETPAGEA PROPSHEETPAGE; |
| alias LPPROPSHEETPAGEA LPPROPSHEETPAGE; |
| alias LPCPROPSHEETPAGEA LPCPROPSHEETPAGE; |
| alias PROPSHEETHEADERA PROPSHEETHEADER; |
| alias LPPROPSHEETHEADERA LPPROPSHEETHEADER; |
| alias LPCPROPSHEETHEADERA LPCPROPSHEETHEADER; |
| alias PSM_SETTITLEA PSM_SETTITLE; |
| alias PSM_SETFINISHTEXTA PSM_SETFINISHTEXT; |
| alias CreatePropertySheetPageA CreatePropertySheetPage; |
| alias PropertySheetA PropertySheet; |
| } |
| |
| 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); |
| } |