1 /** 2 * Windows API header module 3 * 4 * Translated from MinGW Windows headers 5 * 6 * Authors: Vladimir Vlasov 7 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 8 * Source: $(DRUNTIMESRC core/sys/windows/_prsht.d) 9 */ 10 /// Automatically imported and edited from the druntime module 11 /// core.sys.windows.prsht for the auto-generated win32 package. 12 module win32.prsht; 13 //version (Windows): 14 @system: 15 16 version (ANSI) {} else version = Unicode; 17 version (Win32_UseLib) pragma(lib, "comctl32"); 18 19 import win32.w32api, win32.windef, win32.winuser; 20 21 enum MAXPROPPAGES = 100; 22 23 enum { 24 PSP_DEFAULT = 0x00000000, 25 PSP_DLGINDIRECT = 0x00000001, 26 PSP_USEHICON = 0x00000002, 27 PSP_USEICONID = 0x00000004, 28 PSP_USETITLE = 0x00000008, 29 PSP_RTLREADING = 0x00000010, 30 PSP_HASHELP = 0x00000020, 31 PSP_USEREFPARENT = 0x00000040, 32 PSP_USECALLBACK = 0x00000080, 33 PSP_PREMATURE = 0x00000400 34 } 35 36 static if (_WIN32_IE >= 0x400) { 37 enum { 38 PSP_HIDEHEADER = 0x00000800, 39 PSP_USEHEADERTITLE = 0x00001000, 40 PSP_USEHEADERSUBTITLE = 0x00002000 41 } 42 } 43 44 enum { 45 PSPCB_RELEASE = 1, 46 PSPCB_CREATE 47 } 48 49 enum { 50 PSH_DEFAULT = 0x00000000, 51 PSH_PROPTITLE = 0x00000001, 52 PSH_USEHICON = 0x00000002, 53 PSH_USEICONID = 0x00000004, 54 PSH_PROPSHEETPAGE = 0x00000008, 55 PSH_WIZARDHASFINISH = 0x00000010, 56 PSH_WIZARD = 0x00000020, 57 PSH_USEPSTARTPAGE = 0x00000040, 58 PSH_NOAPPLYNOW = 0x00000080, 59 PSH_USECALLBACK = 0x00000100, 60 PSH_HASHELP = 0x00000200, 61 PSH_MODELESS = 0x00000400, 62 PSH_RTLREADING = 0x00000800, 63 PSH_WIZARDCONTEXTHELP = 0x00001000 64 } 65 66 static if (_WIN32_IE >= 0x400) { 67 enum { 68 PSH_WATERMARK = 0x00008000, 69 PSH_USEHBMWATERMARK = 0x00010000, 70 PSH_USEHPLWATERMARK = 0x00020000, 71 PSH_STRETCHWATERMARK = 0x00040000, 72 PSH_HEADER = 0x00080000, 73 PSH_USEHBMHEADER = 0x00100000, 74 PSH_USEPAGELANG = 0x00200000 75 } 76 static if (_WIN32_IE < 0x0500) { 77 enum { 78 PSH_WIZARD97 = 0x00002000 79 } 80 } else { 81 enum { 82 PSH_WIZARD97 = 0x01000000 83 } 84 } 85 } 86 87 static if (_WIN32_IE >= 0x500) { 88 enum { 89 PSH_WIZARD_LITE = 0x00400000, 90 PSH_NOCONTEXTHELP = 0x02000000 91 } 92 } 93 94 enum { 95 PSCB_INITIALIZED = 1, 96 PSCB_PRECREATE 97 } 98 99 enum { 100 PSN_FIRST = (-200), 101 PSN_LAST = (-299), 102 PSN_SETACTIVE = (-200), 103 PSN_KILLACTIVE = (-201), 104 PSN_APPLY = (-202), 105 PSN_RESET = (-203), 106 PSN_HELP = (-205), 107 PSN_WIZBACK = (-206), 108 PSN_WIZNEXT = (-207), 109 PSN_WIZFINISH = (-208), 110 PSN_QUERYCANCEL = (-209) 111 } 112 static if (_WIN32_IE >= 0x400) { 113 enum { 114 PSN_GETOBJECT = (-210) 115 } 116 } 117 static if (_WIN32_IE >= 0x500) { 118 enum { 119 PSN_TRANSLATEACCELERATOR = (-212), 120 PSN_QUERYINITIALFOCUS = (-213) 121 } 122 } 123 124 enum { 125 PSNRET_NOERROR, 126 PSNRET_INVALID, 127 PSNRET_INVALID_NOCHANGEPAGE, 128 PSNRET_MESSAGEHANDLED 129 } 130 131 enum { 132 ID_PSRESTARTWINDOWS = 0x2, 133 ID_PSREBOOTSYSTEM = ID_PSRESTARTWINDOWS | 0x1 134 } 135 136 enum { 137 WIZ_CXDLG = 276, 138 WIZ_CYDLG = 140, 139 WIZ_CXBMP = 80, 140 WIZ_BODYX = 92, 141 WIZ_BODYCX = 184 142 } 143 144 enum { 145 PROP_SM_CXDLG = 212, 146 PROP_SM_CYDLG = 188, 147 PROP_MED_CXDLG = 227, 148 PROP_MED_CYDLG = 215, 149 PROP_LG_CXDLG = 252, 150 PROP_LG_CYDLG = 218 151 } 152 153 enum { 154 PSBTN_BACK, 155 PSBTN_NEXT, 156 PSBTN_FINISH, 157 PSBTN_OK, 158 PSBTN_APPLYNOW, 159 PSBTN_CANCEL, 160 PSBTN_HELP, 161 PSBTN_MAX = 6 162 } 163 164 enum { 165 PSWIZB_BACK = 1, 166 PSWIZB_NEXT = 2, 167 PSWIZB_FINISH = 4, 168 PSWIZB_DISABLEDFINISH = 8 169 } 170 171 enum { 172 PSM_SETCURSEL = WM_USER + 101, 173 PSM_REMOVEPAGE, 174 PSM_ADDPAGE, 175 PSM_CHANGED, 176 PSM_RESTARTWINDOWS, 177 PSM_REBOOTSYSTEM, 178 PSM_CANCELTOCLOSE, 179 PSM_QUERYSIBLINGS, 180 PSM_UNCHANGED, 181 PSM_APPLY, 182 PSM_SETTITLEA, 183 PSM_SETWIZBUTTONS, 184 PSM_PRESSBUTTON, 185 PSM_SETCURSELID, 186 PSM_SETFINISHTEXTA, 187 PSM_GETTABCONTROL, 188 PSM_ISDIALOGMESSAGE, 189 PSM_GETCURRENTPAGEHWND, 190 PSM_INSERTPAGE, 191 PSM_SETTITLEW, 192 PSM_SETFINISHTEXTW // = WM_USER + 121, 193 } 194 195 extern (Windows) { 196 alias UINT function(HWND, UINT, LPPROPSHEETPAGEA) LPFNPSPCALLBACKA; 197 alias UINT function(HWND, UINT, LPPROPSHEETPAGEW) LPFNPSPCALLBACKW; 198 alias int function(HWND, UINT, LPARAM) PFNPROPSHEETCALLBACK; 199 } 200 201 align(4): 202 203 struct PROPSHEETPAGEA { 204 DWORD dwSize = PROPSHEETPAGEA.sizeof; 205 DWORD dwFlags; 206 HINSTANCE hInstance; 207 union { 208 LPCSTR pszTemplate; 209 LPCDLGTEMPLATE pResource; 210 } 211 union { 212 HICON hIcon; 213 LPCSTR pszIcon; 214 } 215 LPCSTR pszTitle; 216 DLGPROC pfnDlgProc; 217 LPARAM lParam; 218 LPFNPSPCALLBACKA pfnCallback; 219 UINT* pcRefParent; 220 static if (_WIN32_IE >= 0x400) { 221 LPCSTR pszHeaderTitle; 222 LPCSTR pszHeaderSubTitle; 223 } 224 } 225 alias PROPSHEETPAGEA* LPPROPSHEETPAGEA; 226 alias const(PROPSHEETPAGEA)* LPCPROPSHEETPAGEA; 227 228 struct PROPSHEETPAGEW { 229 DWORD dwSize = PROPSHEETPAGEW.sizeof; 230 DWORD dwFlags; 231 HINSTANCE hInstance; 232 union { 233 LPCWSTR pszTemplate; 234 LPCDLGTEMPLATE pResource; 235 } 236 union { 237 HICON hIcon; 238 LPCWSTR pszIcon; 239 } 240 LPCWSTR pszTitle; 241 DLGPROC pfnDlgProc; 242 LPARAM lParam; 243 LPFNPSPCALLBACKW pfnCallback; 244 UINT* pcRefParent; 245 static if (_WIN32_IE >= 0x400) { 246 LPCWSTR pszHeaderTitle; 247 LPCWSTR pszHeaderSubTitle; 248 } 249 } 250 alias PROPSHEETPAGEW* LPPROPSHEETPAGEW; 251 alias const(PROPSHEETPAGEW)* LPCPROPSHEETPAGEW; 252 253 mixin DECLARE_HANDLE!("HPROPSHEETPAGE"); 254 255 struct PROPSHEETHEADERA { 256 DWORD dwSize = PROPSHEETHEADERA.sizeof; 257 DWORD dwFlags; 258 HWND hwndParent; 259 HINSTANCE hInstance; 260 union { 261 HICON hIcon; 262 LPCSTR pszIcon; 263 } 264 LPCSTR pszCaption; 265 UINT nPages; 266 union { 267 UINT nStartPage; 268 LPCSTR pStartPage; 269 } 270 union { 271 LPCPROPSHEETPAGEA ppsp; 272 HPROPSHEETPAGE* phpage; 273 } 274 PFNPROPSHEETCALLBACK pfnCallback; 275 static if (_WIN32_IE >= 0x400) { 276 union { 277 HBITMAP hbmWatermark; 278 LPCSTR pszbmWatermark; 279 } 280 HPALETTE hplWatermark; 281 union { 282 HBITMAP hbmHeader; 283 LPCSTR pszbmHeader; 284 } 285 } 286 } 287 alias PROPSHEETHEADERA* LPPROPSHEETHEADERA; 288 alias const(PROPSHEETHEADERA)* LPCPROPSHEETHEADERA; 289 290 struct PROPSHEETHEADERW { 291 DWORD dwSize = PROPSHEETHEADERW.sizeof; 292 DWORD dwFlags; 293 HWND hwndParent; 294 HINSTANCE hInstance; 295 union { 296 HICON hIcon; 297 LPCWSTR pszIcon; 298 } 299 LPCWSTR pszCaption; 300 UINT nPages; 301 union { 302 UINT nStartPage; 303 LPCWSTR pStartPage; 304 } 305 union { 306 LPCPROPSHEETPAGEW ppsp; 307 HPROPSHEETPAGE* phpage; 308 } 309 PFNPROPSHEETCALLBACK pfnCallback; 310 static if (_WIN32_IE >= 0x400) { 311 union { 312 HBITMAP hbmWatermark; 313 LPCWSTR pszbmWatermark; 314 } 315 HPALETTE hplWatermark; 316 union { 317 HBITMAP hbmHeader; 318 LPCWSTR pszbmHeader; 319 } 320 } 321 } 322 alias PROPSHEETHEADERW* LPPROPSHEETHEADERW; 323 alias const(PROPSHEETHEADERW)* LPCPROPSHEETHEADERW; 324 325 extern (Windows) { 326 alias BOOL function(HPROPSHEETPAGE, LPARAM) LPFNADDPROPSHEETPAGE; 327 alias BOOL function(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM) 328 LPFNADDPROPSHEETPAGES; 329 } 330 331 struct PSHNOTIFY { 332 NMHDR hdr; 333 LPARAM lParam; 334 } 335 alias PSHNOTIFY* LPPSHNOTIFY; 336 337 extern (Windows) { 338 HPROPSHEETPAGE CreatePropertySheetPageA(LPCPROPSHEETPAGEA); 339 HPROPSHEETPAGE CreatePropertySheetPageW(LPCPROPSHEETPAGEW); 340 BOOL DestroyPropertySheetPage(HPROPSHEETPAGE); 341 INT_PTR PropertySheetA(LPCPROPSHEETHEADERA); 342 INT_PTR PropertySheetW(LPCPROPSHEETHEADERW); 343 } 344 345 version (Unicode) { 346 alias LPFNPSPCALLBACKW LPFNPSPCALLBACK; 347 alias PROPSHEETPAGEW PROPSHEETPAGE; 348 alias LPPROPSHEETPAGEW LPPROPSHEETPAGE; 349 alias LPCPROPSHEETPAGEW LPCPROPSHEETPAGE; 350 alias PROPSHEETHEADERW PROPSHEETHEADER; 351 alias LPPROPSHEETHEADERW LPPROPSHEETHEADER; 352 alias LPCPROPSHEETHEADERW LPCPROPSHEETHEADER; 353 alias PSM_SETTITLEW PSM_SETTITLE; 354 alias PSM_SETFINISHTEXTW PSM_SETFINISHTEXT; 355 alias CreatePropertySheetPageW CreatePropertySheetPage; 356 alias PropertySheetW PropertySheet; 357 } else { 358 alias LPFNPSPCALLBACKA LPFNPSPCALLBACK; 359 alias PROPSHEETPAGEA PROPSHEETPAGE; 360 alias LPPROPSHEETPAGEA LPPROPSHEETPAGE; 361 alias LPCPROPSHEETPAGEA LPCPROPSHEETPAGE; 362 alias PROPSHEETHEADERA PROPSHEETHEADER; 363 alias LPPROPSHEETHEADERA LPPROPSHEETHEADER; 364 alias LPCPROPSHEETHEADERA LPCPROPSHEETHEADER; 365 alias PSM_SETTITLEA PSM_SETTITLE; 366 alias PSM_SETFINISHTEXTA PSM_SETFINISHTEXT; 367 alias CreatePropertySheetPageA CreatePropertySheetPage; 368 alias PropertySheetA PropertySheet; 369 } 370 371 BOOL PropSheet_SetCurSel()(HWND hPropSheetDlg, HPROPSHEETPAGE hpage, 372 HPROPSHEETPAGE index) { 373 return cast(BOOL) SendMessage(hPropSheetDlg, PSM_SETCURSEL, 374 cast(WPARAM) index, cast(LPARAM) hpage); 375 } 376 377 VOID PropSheet_RemovePage()(HWND hPropSheetDlg, int index, HPROPSHEETPAGE hpage) { 378 SendMessage(hPropSheetDlg, PSM_REMOVEPAGE, index, cast(LPARAM) hpage); 379 } 380 381 BOOL PropSheet_AddPage()(HWND hPropSheetDlg, HPROPSHEETPAGE hpage) { 382 return cast(BOOL) SendMessage(hPropSheetDlg, PSM_ADDPAGE, 383 0, cast(LPARAM) hpage); 384 } 385 386 VOID PropSheet_Changed()(HWND hPropSheetDlg, HWND hwndPage) { 387 SendMessage(hPropSheetDlg, PSM_CHANGED, cast(WPARAM) hwndPage, 0); 388 } 389 390 VOID PropSheet_RestartWindows()(HWND hPropSheetDlg) { 391 SendMessage(hPropSheetDlg, PSM_RESTARTWINDOWS, 0, 0); 392 } 393 394 VOID PropSheet_RebootSystem()(HWND hPropSheetDlg) { 395 SendMessage(hPropSheetDlg, PSM_REBOOTSYSTEM, 0, 0); 396 } 397 398 VOID PropSheet_CancelToClose()(HWND hPropSheetDlg) { 399 SendMessage(hPropSheetDlg, PSM_CANCELTOCLOSE, 0, 0); 400 } 401 402 int PropSheet_QuerySiblings()(HWND hPropSheetDlg, WPARAM param1, LPARAM param2) { 403 return cast(int) SendMessage(hPropSheetDlg, PSM_QUERYSIBLINGS, param1, param2); 404 } 405 406 VOID PropSheet_UnChanged()(HWND hPropSheetDlg, HWND hwndPage) { 407 SendMessage(hPropSheetDlg, PSM_UNCHANGED, cast(WPARAM) hwndPage, 0); 408 } 409 410 BOOL PropSheet_Apply()(HWND hPropSheetDlg) { 411 return cast(BOOL) SendMessage(hPropSheetDlg, PSM_APPLY, 0, 0); 412 } 413 414 VOID PropSheet_SetTitle()(HWND hPropSheetDlg, DWORD wStyle, LPTSTR lpszText) { 415 SendMessage(hPropSheetDlg, PSM_SETTITLE, wStyle, cast(LPARAM) lpszText); 416 } 417 418 VOID PropSheet_SetWizButtons()(HWND hPropSheetDlg, DWORD dwFlags) { 419 PostMessage(hPropSheetDlg, PSM_SETWIZBUTTONS, 0, cast(LPARAM) dwFlags); 420 } 421 422 BOOL PropSheet_PressButton()(HWND hPropSheetDlg, int iButton) { 423 return cast(BOOL) SendMessage(hPropSheetDlg, PSM_PRESSBUTTON, iButton, 0); 424 } 425 426 BOOL PropSheet_SetCurSelByID()(HWND hPropSheetDlg, int id) { 427 return cast(BOOL) SendMessage(hPropSheetDlg, PSM_SETCURSELID, 0, id); 428 } 429 430 VOID PropSheet_SetFinishText()(HWND hPropSheetDlg, LPTSTR lpszText) { 431 SendMessage(hPropSheetDlg, PSM_SETFINISHTEXT, 0, cast(LPARAM) lpszText); 432 } 433 434 HWND PropSheet_GetTabControl()(HWND hPropSheetDlg) { 435 return cast(HWND) SendMessage(hPropSheetDlg, PSM_GETTABCONTROL, 0, 0); 436 } 437 438 BOOL PropSheet_IsDialogMessage()(HWND hDlg, LPMSG pMsg) { 439 return cast(BOOL) SendMessage(hDlg, PSM_ISDIALOGMESSAGE, 440 0, cast(LPARAM) pMsg); 441 } 442 443 HWND PropSheet_GetCurrentPageHwnd()(HWND hDlg) { 444 return cast(HWND) SendMessage(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0); 445 } 446 447 BOOL PropSheet_InsertPage()(HWND hPropSheetDlg, WPARAM wInsertAfter, 448 HPROPSHEETPAGE hpage) { 449 return cast(BOOL) SendMessage(hPropSheetDlg, PSM_INSERTPAGE, 450 wInsertAfter, cast(LPARAM) hpage); 451 }