github.com/secoba/wails/v2@v2.6.4/internal/frontend/desktop/windows/winc/w32/typedef.go (about) 1 //go:build windows 2 3 /* 4 * Copyright (C) 2019 Tad Vizbaras. All Rights Reserved. 5 * Copyright (C) 2010-2012 The W32 Authors. All Rights Reserved. 6 */ 7 8 package w32 9 10 import ( 11 "fmt" 12 "unsafe" 13 ) 14 15 // From MSDN: Windows Data Types 16 // http://msdn.microsoft.com/en-us/library/s3f49ktz.aspx 17 // http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751.aspx 18 // ATOM WORD 19 // BOOL int32 20 // BOOLEAN byte 21 // BYTE byte 22 // CCHAR int8 23 // CHAR int8 24 // COLORREF DWORD 25 // DWORD uint32 26 // DWORDLONG ULONGLONG 27 // DWORD_PTR ULONG_PTR 28 // DWORD32 uint32 29 // DWORD64 uint64 30 // FLOAT float32 31 // HACCEL HANDLE 32 // HALF_PTR struct{} // ??? 33 // HANDLE PVOID 34 // HBITMAP HANDLE 35 // HBRUSH HANDLE 36 // HCOLORSPACE HANDLE 37 // HCONV HANDLE 38 // HCONVLIST HANDLE 39 // HCURSOR HANDLE 40 // HDC HANDLE 41 // HDDEDATA HANDLE 42 // HDESK HANDLE 43 // HDROP HANDLE 44 // HDWP HANDLE 45 // HENHMETAFILE HANDLE 46 // HFILE HANDLE 47 // HFONT HANDLE 48 // HGDIOBJ HANDLE 49 // HGLOBAL HANDLE 50 // HHOOK HANDLE 51 // HICON HANDLE 52 // HINSTANCE HANDLE 53 // HKEY HANDLE 54 // HKL HANDLE 55 // HLOCAL HANDLE 56 // HMENU HANDLE 57 // HMETAFILE HANDLE 58 // HMODULE HANDLE 59 // HPALETTE HANDLE 60 // HPEN HANDLE 61 // HRESULT int32 62 // HRGN HANDLE 63 // HSZ HANDLE 64 // HWINSTA HANDLE 65 // HWND HANDLE 66 // INT int32 67 // INT_PTR uintptr 68 // INT8 int8 69 // INT16 int16 70 // INT32 int32 71 // INT64 int64 72 // LANGID WORD 73 // LCID DWORD 74 // LCTYPE DWORD 75 // LGRPID DWORD 76 // LONG int32 77 // LONGLONG int64 78 // LONG_PTR uintptr 79 // LONG32 int32 80 // LONG64 int64 81 // LPARAM LONG_PTR 82 // LPBOOL *BOOL 83 // LPBYTE *BYTE 84 // LPCOLORREF *COLORREF 85 // LPCSTR *int8 86 // LPCTSTR LPCWSTR 87 // LPCVOID unsafe.Pointer 88 // LPCWSTR *WCHAR 89 // LPDWORD *DWORD 90 // LPHANDLE *HANDLE 91 // LPINT *INT 92 // LPLONG *LONG 93 // LPSTR *CHAR 94 // LPTSTR LPWSTR 95 // LPVOID unsafe.Pointer 96 // LPWORD *WORD 97 // LPWSTR *WCHAR 98 // LRESULT LONG_PTR 99 // PBOOL *BOOL 100 // PBOOLEAN *BOOLEAN 101 // PBYTE *BYTE 102 // PCHAR *CHAR 103 // PCSTR *CHAR 104 // PCTSTR PCWSTR 105 // PCWSTR *WCHAR 106 // PDWORD *DWORD 107 // PDWORDLONG *DWORDLONG 108 // PDWORD_PTR *DWORD_PTR 109 // PDWORD32 *DWORD32 110 // PDWORD64 *DWORD64 111 // PFLOAT *FLOAT 112 // PHALF_PTR *HALF_PTR 113 // PHANDLE *HANDLE 114 // PHKEY *HKEY 115 // PINT_PTR *INT_PTR 116 // PINT8 *INT8 117 // PINT16 *INT16 118 // PINT32 *INT32 119 // PINT64 *INT64 120 // PLCID *LCID 121 // PLONG *LONG 122 // PLONGLONG *LONGLONG 123 // PLONG_PTR *LONG_PTR 124 // PLONG32 *LONG32 125 // PLONG64 *LONG64 126 // POINTER_32 struct{} // ??? 127 // POINTER_64 struct{} // ??? 128 // POINTER_SIGNED uintptr 129 // POINTER_UNSIGNED uintptr 130 // PSHORT *SHORT 131 // PSIZE_T *SIZE_T 132 // PSSIZE_T *SSIZE_T 133 // PSTR *CHAR 134 // PTBYTE *TBYTE 135 // PTCHAR *TCHAR 136 // PTSTR PWSTR 137 // PUCHAR *UCHAR 138 // PUHALF_PTR *UHALF_PTR 139 // PUINT *UINT 140 // PUINT_PTR *UINT_PTR 141 // PUINT8 *UINT8 142 // PUINT16 *UINT16 143 // PUINT32 *UINT32 144 // PUINT64 *UINT64 145 // PULONG *ULONG 146 // PULONGLONG *ULONGLONG 147 // PULONG_PTR *ULONG_PTR 148 // PULONG32 *ULONG32 149 // PULONG64 *ULONG64 150 // PUSHORT *USHORT 151 // PVOID unsafe.Pointer 152 // PWCHAR *WCHAR 153 // PWORD *WORD 154 // PWSTR *WCHAR 155 // QWORD uint64 156 // SC_HANDLE HANDLE 157 // SC_LOCK LPVOID 158 // SERVICE_STATUS_HANDLE HANDLE 159 // SHORT int16 160 // SIZE_T ULONG_PTR 161 // SSIZE_T LONG_PTR 162 // TBYTE WCHAR 163 // TCHAR WCHAR 164 // UCHAR uint8 165 // UHALF_PTR struct{} // ??? 166 // UINT uint32 167 // UINT_PTR uintptr 168 // UINT8 uint8 169 // UINT16 uint16 170 // UINT32 uint32 171 // UINT64 uint64 172 // ULONG uint32 173 // ULONGLONG uint64 174 // ULONG_PTR uintptr 175 // ULONG32 uint32 176 // ULONG64 uint64 177 // USHORT uint16 178 // USN LONGLONG 179 // WCHAR uint16 180 // WORD uint16 181 // WPARAM UINT_PTR 182 type ( 183 ATOM = uint16 184 BOOL = int32 185 COLORREF = uint32 186 DWM_FRAME_COUNT = uint64 187 WORD = uint16 188 DWORD = uint32 189 HACCEL = HANDLE 190 HANDLE = uintptr 191 HBITMAP = HANDLE 192 HBRUSH = HANDLE 193 HCURSOR = HANDLE 194 HDC = HANDLE 195 HDROP = HANDLE 196 HDWP = HANDLE 197 HENHMETAFILE = HANDLE 198 HFONT = HANDLE 199 HGDIOBJ = HANDLE 200 HGLOBAL = HANDLE 201 HGLRC = HANDLE 202 HHOOK = HANDLE 203 HICON = HANDLE 204 HIMAGELIST = HANDLE 205 HINSTANCE = HANDLE 206 HKEY = HANDLE 207 HKL = HANDLE 208 HMENU = HANDLE 209 HMODULE = HANDLE 210 HMONITOR = HANDLE 211 HPEN = HANDLE 212 HRESULT = int32 213 HRGN = HANDLE 214 HRSRC = HANDLE 215 HTHUMBNAIL = HANDLE 216 HWND = HANDLE 217 LPARAM = uintptr 218 LPCVOID = unsafe.Pointer 219 LRESULT = uintptr 220 PVOID = unsafe.Pointer 221 QPC_TIME = uint64 222 ULONG_PTR = uintptr 223 SIZE_T = ULONG_PTR 224 WPARAM = uintptr 225 UINT = uint 226 ) 227 228 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd162805.aspx 229 type POINT struct { 230 X, Y int32 231 } 232 233 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd162897.aspx 234 type RECT struct { 235 Left, Top, Right, Bottom int32 236 } 237 238 func (r *RECT) String() string { 239 return fmt.Sprintf("RECT (%p): Left: %d, Top: %d, Right: %d, Bottom: %d", r, r.Left, r.Top, r.Right, r.Bottom) 240 } 241 242 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms633577.aspx 243 type WNDCLASSEX struct { 244 Size uint32 245 Style uint32 246 WndProc uintptr 247 ClsExtra int32 248 WndExtra int32 249 Instance HINSTANCE 250 Icon HICON 251 Cursor HCURSOR 252 Background HBRUSH 253 MenuName *uint16 254 ClassName *uint16 255 IconSm HICON 256 } 257 258 type TPMPARAMS struct { 259 CbSize uint32 260 RcExclude RECT 261 } 262 263 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms644958.aspx 264 type MSG struct { 265 Hwnd HWND 266 Message uint32 267 WParam uintptr 268 LParam uintptr 269 Time uint32 270 Pt POINT 271 } 272 273 // https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-minmaxinfo 274 type MINMAXINFO struct { 275 PtReserved POINT 276 PtMaxSize POINT 277 PtMaxPosition POINT 278 PtMinTrackSize POINT 279 PtMaxTrackSize POINT 280 } 281 282 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd145037.aspx 283 type LOGFONT struct { 284 Height int32 285 Width int32 286 Escapement int32 287 Orientation int32 288 Weight int32 289 Italic byte 290 Underline byte 291 StrikeOut byte 292 CharSet byte 293 OutPrecision byte 294 ClipPrecision byte 295 Quality byte 296 PitchAndFamily byte 297 FaceName [LF_FACESIZE]uint16 298 } 299 300 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms646839.aspx 301 type OPENFILENAME struct { 302 StructSize uint32 303 Owner HWND 304 Instance HINSTANCE 305 Filter *uint16 306 CustomFilter *uint16 307 MaxCustomFilter uint32 308 FilterIndex uint32 309 File *uint16 310 MaxFile uint32 311 FileTitle *uint16 312 MaxFileTitle uint32 313 InitialDir *uint16 314 Title *uint16 315 Flags uint32 316 FileOffset uint16 317 FileExtension uint16 318 DefExt *uint16 319 CustData uintptr 320 FnHook uintptr 321 TemplateName *uint16 322 PvReserved unsafe.Pointer 323 DwReserved uint32 324 FlagsEx uint32 325 } 326 327 // http://msdn.microsoft.com/en-us/library/windows/desktop/bb773205.aspx 328 type BROWSEINFO struct { 329 Owner HWND 330 Root *uint16 331 DisplayName *uint16 332 Title *uint16 333 Flags uint32 334 CallbackFunc uintptr 335 LParam uintptr 336 Image int32 337 } 338 339 // http://msdn.microsoft.com/en-us/library/windows/desktop/aa373931.aspx 340 type GUID struct { 341 Data1 uint32 342 Data2 uint16 343 Data3 uint16 344 Data4 [8]byte 345 } 346 347 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms221627.aspx 348 type VARIANT struct { 349 VT uint16 // 2 350 WReserved1 uint16 // 4 351 WReserved2 uint16 // 6 352 WReserved3 uint16 // 8 353 Val int64 // 16 354 } 355 356 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms221416.aspx 357 type DISPPARAMS struct { 358 Rgvarg uintptr 359 RgdispidNamedArgs uintptr 360 CArgs uint32 361 CNamedArgs uint32 362 } 363 364 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms221133.aspx 365 type EXCEPINFO struct { 366 WCode uint16 367 WReserved uint16 368 BstrSource *uint16 369 BstrDescription *uint16 370 BstrHelpFile *uint16 371 DwHelpContext uint32 372 PvReserved uintptr 373 PfnDeferredFillIn uintptr 374 Scode int32 375 } 376 377 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd145035.aspx 378 type LOGBRUSH struct { 379 LbStyle uint32 380 LbColor COLORREF 381 LbHatch uintptr 382 } 383 384 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd183565.aspx 385 type DEVMODE struct { 386 DmDeviceName [CCHDEVICENAME]uint16 387 DmSpecVersion uint16 388 DmDriverVersion uint16 389 DmSize uint16 390 DmDriverExtra uint16 391 DmFields uint32 392 DmOrientation int16 393 DmPaperSize int16 394 DmPaperLength int16 395 DmPaperWidth int16 396 DmScale int16 397 DmCopies int16 398 DmDefaultSource int16 399 DmPrintQuality int16 400 DmColor int16 401 DmDuplex int16 402 DmYResolution int16 403 DmTTOption int16 404 DmCollate int16 405 DmFormName [CCHFORMNAME]uint16 406 DmLogPixels uint16 407 DmBitsPerPel uint32 408 DmPelsWidth uint32 409 DmPelsHeight uint32 410 DmDisplayFlags uint32 411 DmDisplayFrequency uint32 412 DmICMMethod uint32 413 DmICMIntent uint32 414 DmMediaType uint32 415 DmDitherType uint32 416 DmReserved1 uint32 417 DmReserved2 uint32 418 DmPanningWidth uint32 419 DmPanningHeight uint32 420 } 421 422 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd183376.aspx 423 type BITMAPINFOHEADER struct { 424 BiSize uint32 425 BiWidth int32 426 BiHeight int32 427 BiPlanes uint16 428 BiBitCount uint16 429 BiCompression uint32 430 BiSizeImage uint32 431 BiXPelsPerMeter int32 432 BiYPelsPerMeter int32 433 BiClrUsed uint32 434 BiClrImportant uint32 435 } 436 437 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd162938.aspx 438 type RGBQUAD struct { 439 RgbBlue byte 440 RgbGreen byte 441 RgbRed byte 442 RgbReserved byte 443 } 444 445 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd183375.aspx 446 type BITMAPINFO struct { 447 BmiHeader BITMAPINFOHEADER 448 BmiColors *RGBQUAD 449 } 450 451 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd183371.aspx 452 type BITMAP struct { 453 BmType int32 454 BmWidth int32 455 BmHeight int32 456 BmWidthBytes int32 457 BmPlanes uint16 458 BmBitsPixel uint16 459 BmBits unsafe.Pointer 460 } 461 462 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd183567.aspx 463 type DIBSECTION struct { 464 DsBm BITMAP 465 DsBmih BITMAPINFOHEADER 466 DsBitfields [3]uint32 467 DshSection HANDLE 468 DsOffset uint32 469 } 470 471 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd162607.aspx 472 type ENHMETAHEADER struct { 473 IType uint32 474 NSize uint32 475 RclBounds RECT 476 RclFrame RECT 477 DSignature uint32 478 NVersion uint32 479 NBytes uint32 480 NRecords uint32 481 NHandles uint16 482 SReserved uint16 483 NDescription uint32 484 OffDescription uint32 485 NPalEntries uint32 486 SzlDevice SIZE 487 SzlMillimeters SIZE 488 CbPixelFormat uint32 489 OffPixelFormat uint32 490 BOpenGL uint32 491 SzlMicrometers SIZE 492 } 493 494 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd145106.aspx 495 type SIZE struct { 496 CX, CY int32 497 } 498 499 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd145132.aspx 500 type TEXTMETRIC struct { 501 TmHeight int32 502 TmAscent int32 503 TmDescent int32 504 TmInternalLeading int32 505 TmExternalLeading int32 506 TmAveCharWidth int32 507 TmMaxCharWidth int32 508 TmWeight int32 509 TmOverhang int32 510 TmDigitizedAspectX int32 511 TmDigitizedAspectY int32 512 TmFirstChar uint16 513 TmLastChar uint16 514 TmDefaultChar uint16 515 TmBreakChar uint16 516 TmItalic byte 517 TmUnderlined byte 518 TmStruckOut byte 519 TmPitchAndFamily byte 520 TmCharSet byte 521 } 522 523 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd183574.aspx 524 type DOCINFO struct { 525 CbSize int32 526 LpszDocName *uint16 527 LpszOutput *uint16 528 LpszDatatype *uint16 529 FwType uint32 530 } 531 532 // http://msdn.microsoft.com/en-us/library/windows/desktop/bb775514.aspx 533 type NMHDR struct { 534 HwndFrom HWND 535 IdFrom uintptr 536 Code uint32 537 } 538 539 // http://msdn.microsoft.com/en-us/library/windows/desktop/bb774743.aspx 540 type LVCOLUMN struct { 541 Mask uint32 542 Fmt int32 543 Cx int32 544 PszText *uint16 545 CchTextMax int32 546 ISubItem int32 547 IImage int32 548 IOrder int32 549 } 550 551 // http://msdn.microsoft.com/en-us/library/windows/desktop/bb774760.aspx 552 type LVITEM struct { 553 Mask uint32 554 IItem int32 555 ISubItem int32 556 State uint32 557 StateMask uint32 558 PszText *uint16 559 CchTextMax int32 560 IImage int32 561 LParam uintptr 562 IIndent int32 563 IGroupId int32 564 CColumns uint32 565 PuColumns uint32 566 } 567 568 type LVFINDINFO struct { 569 Flags uint32 570 PszText *uint16 571 LParam uintptr 572 Pt POINT 573 VkDirection uint32 574 } 575 576 // http://msdn.microsoft.com/en-us/library/windows/desktop/bb774754.aspx 577 type LVHITTESTINFO struct { 578 Pt POINT 579 Flags uint32 580 IItem int32 581 ISubItem int32 582 IGroup int32 583 } 584 585 // http://msdn.microsoft.com/en-us/library/windows/desktop/bb774771.aspx 586 type NMITEMACTIVATE struct { 587 Hdr NMHDR 588 IItem int32 589 ISubItem int32 590 UNewState uint32 591 UOldState uint32 592 UChanged uint32 593 PtAction POINT 594 LParam uintptr 595 UKeyFlags uint32 596 } 597 598 type NMLVKEYDOWN struct { 599 Hdr NMHDR 600 WVKey uint16 601 Flags uint32 602 } 603 604 // http://msdn.microsoft.com/en-us/library/windows/desktop/bb774773.aspx 605 type NMLISTVIEW struct { 606 Hdr NMHDR 607 IItem int32 608 ISubItem int32 609 UNewState uint32 610 UOldState uint32 611 UChanged uint32 612 PtAction POINT 613 LParam uintptr 614 } 615 616 // http://msdn.microsoft.com/en-us/library/windows/desktop/bb774780.aspx 617 type NMLVDISPINFO struct { 618 Hdr NMHDR 619 Item LVITEM 620 } 621 622 // http://msdn.microsoft.com/en-us/library/windows/desktop/bb775507.aspx 623 type INITCOMMONCONTROLSEX struct { 624 DwSize uint32 625 DwICC uint32 626 } 627 628 // http://msdn.microsoft.com/en-us/library/windows/desktop/bb760256.aspx 629 type TOOLINFO struct { 630 CbSize uint32 631 UFlags uint32 632 Hwnd HWND 633 UId uintptr 634 Rect RECT 635 Hinst HINSTANCE 636 LpszText *uint16 637 LParam uintptr 638 LpReserved unsafe.Pointer 639 } 640 641 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms645604.aspx 642 type TRACKMOUSEEVENT struct { 643 CbSize uint32 644 DwFlags uint32 645 HwndTrack HWND 646 DwHoverTime uint32 647 } 648 649 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms534067.aspx 650 type GdiplusStartupInput struct { 651 GdiplusVersion uint32 652 DebugEventCallback uintptr 653 SuppressBackgroundThread BOOL 654 SuppressExternalCodecs BOOL 655 } 656 657 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms534068.aspx 658 type GdiplusStartupOutput struct { 659 NotificationHook uintptr 660 NotificationUnhook uintptr 661 } 662 663 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd162768.aspx 664 type PAINTSTRUCT struct { 665 Hdc HDC 666 FErase BOOL 667 RcPaint RECT 668 FRestore BOOL 669 FIncUpdate BOOL 670 RgbReserved [32]byte 671 } 672 673 // http://msdn.microsoft.com/en-us/library/windows/desktop/aa363646.aspx 674 type EVENTLOGRECORD struct { 675 Length uint32 676 Reserved uint32 677 RecordNumber uint32 678 TimeGenerated uint32 679 TimeWritten uint32 680 EventID uint32 681 EventType uint16 682 NumStrings uint16 683 EventCategory uint16 684 ReservedFlags uint16 685 ClosingRecordNumber uint32 686 StringOffset uint32 687 UserSidLength uint32 688 UserSidOffset uint32 689 DataLength uint32 690 DataOffset uint32 691 } 692 693 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms685996.aspx 694 type SERVICE_STATUS struct { 695 DwServiceType uint32 696 DwCurrentState uint32 697 DwControlsAccepted uint32 698 DwWin32ExitCode uint32 699 DwServiceSpecificExitCode uint32 700 DwCheckPoint uint32 701 DwWaitHint uint32 702 } 703 704 /* ------------------------- 705 Undocumented API 706 ------------------------- */ 707 708 type ACCENT_STATE DWORD 709 710 const ( 711 ACCENT_DISABLED ACCENT_STATE = 0 712 ACCENT_ENABLE_GRADIENT ACCENT_STATE = 1 713 ACCENT_ENABLE_TRANSPARENTGRADIENT ACCENT_STATE = 2 714 ACCENT_ENABLE_BLURBEHIND ACCENT_STATE = 3 715 ACCENT_ENABLE_ACRYLICBLURBEHIND ACCENT_STATE = 4 // RS4 1803 716 ACCENT_ENABLE_HOSTBACKDROP ACCENT_STATE = 5 // RS5 1809 717 ACCENT_INVALID_STATE ACCENT_STATE = 6 718 ) 719 720 type ACCENT_POLICY struct { 721 AccentState ACCENT_STATE 722 AccentFlags DWORD 723 GradientColor DWORD 724 AnimationId DWORD 725 } 726 727 type WINDOWCOMPOSITIONATTRIBDATA struct { 728 Attrib WINDOWCOMPOSITIONATTRIB 729 PvData PVOID 730 CbData SIZE_T 731 } 732 733 type WINDOWCOMPOSITIONATTRIB DWORD 734 735 const ( 736 WCA_UNDEFINED WINDOWCOMPOSITIONATTRIB = 0 737 WCA_NCRENDERING_ENABLED WINDOWCOMPOSITIONATTRIB = 1 738 WCA_NCRENDERING_POLICY WINDOWCOMPOSITIONATTRIB = 2 739 WCA_TRANSITIONS_FORCEDISABLED WINDOWCOMPOSITIONATTRIB = 3 740 WCA_ALLOW_NCPAINT WINDOWCOMPOSITIONATTRIB = 4 741 WCA_CAPTION_BUTTON_BOUNDS WINDOWCOMPOSITIONATTRIB = 5 742 WCA_NONCLIENT_RTL_LAYOUT WINDOWCOMPOSITIONATTRIB = 6 743 WCA_FORCE_ICONIC_REPRESENTATION WINDOWCOMPOSITIONATTRIB = 7 744 WCA_EXTENDED_FRAME_BOUNDS WINDOWCOMPOSITIONATTRIB = 8 745 WCA_HAS_ICONIC_BITMAP WINDOWCOMPOSITIONATTRIB = 9 746 WCA_THEME_ATTRIBUTES WINDOWCOMPOSITIONATTRIB = 10 747 WCA_NCRENDERING_EXILED WINDOWCOMPOSITIONATTRIB = 11 748 WCA_NCADORNMENTINFO WINDOWCOMPOSITIONATTRIB = 12 749 WCA_EXCLUDED_FROM_LIVEPREVIEW WINDOWCOMPOSITIONATTRIB = 13 750 WCA_VIDEO_OVERLAY_ACTIVE WINDOWCOMPOSITIONATTRIB = 14 751 WCA_FORCE_ACTIVEWINDOW_APPEARANCE WINDOWCOMPOSITIONATTRIB = 15 752 WCA_DISALLOW_PEEK WINDOWCOMPOSITIONATTRIB = 16 753 WCA_CLOAK WINDOWCOMPOSITIONATTRIB = 17 754 WCA_CLOAKED WINDOWCOMPOSITIONATTRIB = 18 755 WCA_ACCENT_POLICY WINDOWCOMPOSITIONATTRIB = 19 756 WCA_FREEZE_REPRESENTATION WINDOWCOMPOSITIONATTRIB = 20 757 WCA_EVER_UNCLOAKED WINDOWCOMPOSITIONATTRIB = 21 758 WCA_VISUAL_OWNER WINDOWCOMPOSITIONATTRIB = 22 759 WCA_HOLOGRAPHIC WINDOWCOMPOSITIONATTRIB = 23 760 WCA_EXCLUDED_FROM_DDA WINDOWCOMPOSITIONATTRIB = 24 761 WCA_PASSIVEUPDATEMODE WINDOWCOMPOSITIONATTRIB = 25 762 WCA_USEDARKMODECOLORS WINDOWCOMPOSITIONATTRIB = 26 763 WCA_CORNER_STYLE WINDOWCOMPOSITIONATTRIB = 27 764 WCA_PART_COLOR WINDOWCOMPOSITIONATTRIB = 28 765 WCA_DISABLE_MOVESIZE_FEEDBACK WINDOWCOMPOSITIONATTRIB = 29 766 WCA_LAST WINDOWCOMPOSITIONATTRIB = 30 767 ) 768 769 // ------------------------- 770 771 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms684225.aspx 772 type MODULEENTRY32 struct { 773 Size uint32 774 ModuleID uint32 775 ProcessID uint32 776 GlblcntUsage uint32 777 ProccntUsage uint32 778 ModBaseAddr *uint8 779 ModBaseSize uint32 780 HModule HMODULE 781 SzModule [MAX_MODULE_NAME32 + 1]uint16 782 SzExePath [MAX_PATH]uint16 783 } 784 785 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms724284.aspx 786 type FILETIME struct { 787 DwLowDateTime uint32 788 DwHighDateTime uint32 789 } 790 791 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms682119.aspx 792 type COORD struct { 793 X, Y int16 794 } 795 796 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms686311.aspx 797 type SMALL_RECT struct { 798 Left, Top, Right, Bottom int16 799 } 800 801 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms682093.aspx 802 type CONSOLE_SCREEN_BUFFER_INFO struct { 803 DwSize COORD 804 DwCursorPosition COORD 805 WAttributes uint16 806 SrWindow SMALL_RECT 807 DwMaximumWindowSize COORD 808 } 809 810 // http://msdn.microsoft.com/en-us/library/windows/desktop/bb773244.aspx 811 type MARGINS struct { 812 CxLeftWidth, CxRightWidth, CyTopHeight, CyBottomHeight int32 813 } 814 815 // http://msdn.microsoft.com/en-us/library/windows/desktop/aa969500.aspx 816 type DWM_BLURBEHIND struct { 817 DwFlags uint32 818 fEnable BOOL 819 hRgnBlur HRGN 820 fTransitionOnMaximized BOOL 821 } 822 823 // http://msdn.microsoft.com/en-us/library/windows/desktop/aa969501.aspx 824 type DWM_PRESENT_PARAMETERS struct { 825 cbSize uint32 826 fQueue BOOL 827 cRefreshStart DWM_FRAME_COUNT 828 cBuffer uint32 829 fUseSourceRate BOOL 830 rateSource UNSIGNED_RATIO 831 cRefreshesPerFrame uint32 832 eSampling DWM_SOURCE_FRAME_SAMPLING 833 } 834 835 // http://msdn.microsoft.com/en-us/library/windows/desktop/aa969502.aspx 836 type DWM_THUMBNAIL_PROPERTIES struct { 837 dwFlags uint32 838 rcDestination RECT 839 rcSource RECT 840 opacity byte 841 fVisible BOOL 842 fSourceClientAreaOnly BOOL 843 } 844 845 // http://msdn.microsoft.com/en-us/library/windows/desktop/aa969503.aspx 846 type DWM_TIMING_INFO struct { 847 cbSize uint32 848 rateRefresh UNSIGNED_RATIO 849 qpcRefreshPeriod QPC_TIME 850 rateCompose UNSIGNED_RATIO 851 qpcVBlank QPC_TIME 852 cRefresh DWM_FRAME_COUNT 853 cDXRefresh uint32 854 qpcCompose QPC_TIME 855 cFrame DWM_FRAME_COUNT 856 cDXPresent uint32 857 cRefreshFrame DWM_FRAME_COUNT 858 cFrameSubmitted DWM_FRAME_COUNT 859 cDXPresentSubmitted uint32 860 cFrameConfirmed DWM_FRAME_COUNT 861 cDXPresentConfirmed uint32 862 cRefreshConfirmed DWM_FRAME_COUNT 863 cDXRefreshConfirmed uint32 864 cFramesLate DWM_FRAME_COUNT 865 cFramesOutstanding uint32 866 cFrameDisplayed DWM_FRAME_COUNT 867 qpcFrameDisplayed QPC_TIME 868 cRefreshFrameDisplayed DWM_FRAME_COUNT 869 cFrameComplete DWM_FRAME_COUNT 870 qpcFrameComplete QPC_TIME 871 cFramePending DWM_FRAME_COUNT 872 qpcFramePending QPC_TIME 873 cFramesDisplayed DWM_FRAME_COUNT 874 cFramesComplete DWM_FRAME_COUNT 875 cFramesPending DWM_FRAME_COUNT 876 cFramesAvailable DWM_FRAME_COUNT 877 cFramesDropped DWM_FRAME_COUNT 878 cFramesMissed DWM_FRAME_COUNT 879 cRefreshNextDisplayed DWM_FRAME_COUNT 880 cRefreshNextPresented DWM_FRAME_COUNT 881 cRefreshesDisplayed DWM_FRAME_COUNT 882 cRefreshesPresented DWM_FRAME_COUNT 883 cRefreshStarted DWM_FRAME_COUNT 884 cPixelsReceived uint64 885 cPixelsDrawn uint64 886 cBuffersEmpty DWM_FRAME_COUNT 887 } 888 889 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd389402.aspx 890 type MilMatrix3x2D struct { 891 S_11, S_12, S_21, S_22 float64 892 DX, DY float64 893 } 894 895 // http://msdn.microsoft.com/en-us/library/windows/desktop/aa969505.aspx 896 type UNSIGNED_RATIO struct { 897 uiNumerator uint32 898 uiDenominator uint32 899 } 900 901 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms632603.aspx 902 type CREATESTRUCT struct { 903 CreateParams uintptr 904 Instance HINSTANCE 905 Menu HMENU 906 Parent HWND 907 Cy, Cx int32 908 Y, X int32 909 Style int32 910 Name *uint16 911 Class *uint16 912 dwExStyle uint32 913 } 914 915 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd145065.aspx 916 type MONITORINFO struct { 917 CbSize uint32 918 RcMonitor RECT 919 RcWork RECT 920 DwFlags uint32 921 } 922 923 type WINDOWINFO struct { 924 CbSize DWORD 925 RcWindow RECT 926 RcClient RECT 927 DwStyle DWORD 928 DwExStyle DWORD 929 DwWindowStatus DWORD 930 CxWindowBorders UINT 931 CyWindowBorders UINT 932 AtomWindowType ATOM 933 WCreatorVersion WORD 934 } 935 936 type MONITOR_DPI_TYPE int32 937 938 const ( 939 MDT_EFFECTIVE_DPI MONITOR_DPI_TYPE = 0 940 MDT_ANGULAR_DPI MONITOR_DPI_TYPE = 1 941 MDT_RAW_DPI MONITOR_DPI_TYPE = 2 942 MDT_DEFAULT MONITOR_DPI_TYPE = 0 943 ) 944 945 func (w *WINDOWINFO) isStyle(style DWORD) bool { 946 return w.DwStyle&style == style 947 } 948 949 func (w *WINDOWINFO) IsPopup() bool { 950 return w.isStyle(WS_POPUP) 951 } 952 953 func (m *MONITORINFO) Dump() { 954 fmt.Printf("MONITORINFO (%p)\n", m) 955 fmt.Printf(" CbSize : %d\n", m.CbSize) 956 fmt.Printf(" RcMonitor: %s\n", &m.RcMonitor) 957 fmt.Printf(" RcWork : %s\n", &m.RcWork) 958 fmt.Printf(" DwFlags : %d\n", m.DwFlags) 959 } 960 961 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd145066.aspx 962 type MONITORINFOEX struct { 963 MONITORINFO 964 SzDevice [CCHDEVICENAME]uint16 965 } 966 967 // http://msdn.microsoft.com/en-us/library/windows/desktop/dd368826.aspx 968 type PIXELFORMATDESCRIPTOR struct { 969 Size uint16 970 Version uint16 971 DwFlags uint32 972 IPixelType byte 973 ColorBits byte 974 RedBits, RedShift byte 975 GreenBits, GreenShift byte 976 BlueBits, BlueShift byte 977 AlphaBits, AlphaShift byte 978 AccumBits byte 979 AccumRedBits byte 980 AccumGreenBits byte 981 AccumBlueBits byte 982 AccumAlphaBits byte 983 DepthBits, StencilBits byte 984 AuxBuffers byte 985 ILayerType byte 986 Reserved byte 987 DwLayerMask uint32 988 DwVisibleMask uint32 989 DwDamageMask uint32 990 } 991 992 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms646270(v=vs.85).aspx 993 type INPUT struct { 994 Type uint32 995 Mi MOUSEINPUT 996 Ki KEYBDINPUT 997 Hi HARDWAREINPUT 998 } 999 1000 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms646273(v=vs.85).aspx 1001 type MOUSEINPUT struct { 1002 Dx int32 1003 Dy int32 1004 MouseData uint32 1005 DwFlags uint32 1006 Time uint32 1007 DwExtraInfo uintptr 1008 } 1009 1010 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms646271(v=vs.85).aspx 1011 type KEYBDINPUT struct { 1012 WVk uint16 1013 WScan uint16 1014 DwFlags uint32 1015 Time uint32 1016 DwExtraInfo uintptr 1017 } 1018 1019 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms646269(v=vs.85).aspx 1020 type HARDWAREINPUT struct { 1021 UMsg uint32 1022 WParamL uint16 1023 WParamH uint16 1024 } 1025 1026 type KbdInput struct { 1027 typ uint32 1028 ki KEYBDINPUT 1029 } 1030 1031 type MouseInput struct { 1032 typ uint32 1033 mi MOUSEINPUT 1034 } 1035 1036 type HardwareInput struct { 1037 typ uint32 1038 hi HARDWAREINPUT 1039 } 1040 1041 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms724950(v=vs.85).aspx 1042 type SYSTEMTIME struct { 1043 Year uint16 1044 Month uint16 1045 DayOfWeek uint16 1046 Day uint16 1047 Hour uint16 1048 Minute uint16 1049 Second uint16 1050 Milliseconds uint16 1051 } 1052 1053 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms644967(v=vs.85).aspx 1054 type KBDLLHOOKSTRUCT struct { 1055 VkCode DWORD 1056 ScanCode DWORD 1057 Flags DWORD 1058 Time DWORD 1059 DwExtraInfo ULONG_PTR 1060 } 1061 1062 type HOOKPROC func(int, WPARAM, LPARAM) LRESULT 1063 1064 type WINDOWPLACEMENT struct { 1065 Length uint32 1066 Flags uint32 1067 ShowCmd uint32 1068 PtMinPosition POINT 1069 PtMaxPosition POINT 1070 RcNormalPosition RECT 1071 } 1072 1073 type SCROLLINFO struct { 1074 CbSize uint32 1075 FMask uint32 1076 NMin int32 1077 NMax int32 1078 NPage uint32 1079 NPos int32 1080 NTrackPos int32 1081 }