summaryrefslogtreecommitdiff
path: root/packages/w32/typedef.go
diff options
context:
space:
mode:
authorKali Kaneko (leap communications) <kali@leap.se>2019-08-16 12:55:10 +0200
committerKali Kaneko (leap communications) <kali@leap.se>2019-08-16 15:50:28 +0200
commitec4974e7660776e8ab2883b109bfa3f96b4f5317 (patch)
tree6c6ae93cab7e3a0ff6ebb7ec07e3ef8757e5272f /packages/w32/typedef.go
parentf4ab1b0463e902f23224c37f1e217241084681df (diff)
[pkg] need to vendorize allendang w32 lib
we use go mod edit -replace
Diffstat (limited to 'packages/w32/typedef.go')
-rw-r--r--packages/w32/typedef.go891
1 files changed, 891 insertions, 0 deletions
diff --git a/packages/w32/typedef.go b/packages/w32/typedef.go
new file mode 100644
index 0000000..118f76c
--- /dev/null
+++ b/packages/w32/typedef.go
@@ -0,0 +1,891 @@
+// Copyright 2010-2012 The W32 Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package w32
+
+import (
+ "unsafe"
+)
+
+// From MSDN: Windows Data Types
+// http://msdn.microsoft.com/en-us/library/s3f49ktz.aspx
+// http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751.aspx
+// ATOM WORD
+// BOOL int32
+// BOOLEAN byte
+// BYTE byte
+// CCHAR int8
+// CHAR int8
+// COLORREF DWORD
+// DWORD uint32
+// DWORDLONG ULONGLONG
+// DWORD_PTR ULONG_PTR
+// DWORD32 uint32
+// DWORD64 uint64
+// FLOAT float32
+// HACCEL HANDLE
+// HALF_PTR struct{} // ???
+// HANDLE PVOID
+// HBITMAP HANDLE
+// HBRUSH HANDLE
+// HCOLORSPACE HANDLE
+// HCONV HANDLE
+// HCONVLIST HANDLE
+// HCURSOR HANDLE
+// HDC HANDLE
+// HDDEDATA HANDLE
+// HDESK HANDLE
+// HDROP HANDLE
+// HDWP HANDLE
+// HENHMETAFILE HANDLE
+// HFILE HANDLE
+// HFONT HANDLE
+// HGDIOBJ HANDLE
+// HGLOBAL HANDLE
+// HHOOK HANDLE
+// HICON HANDLE
+// HINSTANCE HANDLE
+// HKEY HANDLE
+// HKL HANDLE
+// HLOCAL HANDLE
+// HMENU HANDLE
+// HMETAFILE HANDLE
+// HMODULE HANDLE
+// HPALETTE HANDLE
+// HPEN HANDLE
+// HRESULT int32
+// HRGN HANDLE
+// HSZ HANDLE
+// HWINSTA HANDLE
+// HWND HANDLE
+// INT int32
+// INT_PTR uintptr
+// INT8 int8
+// INT16 int16
+// INT32 int32
+// INT64 int64
+// LANGID WORD
+// LCID DWORD
+// LCTYPE DWORD
+// LGRPID DWORD
+// LONG int32
+// LONGLONG int64
+// LONG_PTR uintptr
+// LONG32 int32
+// LONG64 int64
+// LPARAM LONG_PTR
+// LPBOOL *BOOL
+// LPBYTE *BYTE
+// LPCOLORREF *COLORREF
+// LPCSTR *int8
+// LPCTSTR LPCWSTR
+// LPCVOID unsafe.Pointer
+// LPCWSTR *WCHAR
+// LPDWORD *DWORD
+// LPHANDLE *HANDLE
+// LPINT *INT
+// LPLONG *LONG
+// LPSTR *CHAR
+// LPTSTR LPWSTR
+// LPVOID unsafe.Pointer
+// LPWORD *WORD
+// LPWSTR *WCHAR
+// LRESULT LONG_PTR
+// PBOOL *BOOL
+// PBOOLEAN *BOOLEAN
+// PBYTE *BYTE
+// PCHAR *CHAR
+// PCSTR *CHAR
+// PCTSTR PCWSTR
+// PCWSTR *WCHAR
+// PDWORD *DWORD
+// PDWORDLONG *DWORDLONG
+// PDWORD_PTR *DWORD_PTR
+// PDWORD32 *DWORD32
+// PDWORD64 *DWORD64
+// PFLOAT *FLOAT
+// PHALF_PTR *HALF_PTR
+// PHANDLE *HANDLE
+// PHKEY *HKEY
+// PINT_PTR *INT_PTR
+// PINT8 *INT8
+// PINT16 *INT16
+// PINT32 *INT32
+// PINT64 *INT64
+// PLCID *LCID
+// PLONG *LONG
+// PLONGLONG *LONGLONG
+// PLONG_PTR *LONG_PTR
+// PLONG32 *LONG32
+// PLONG64 *LONG64
+// POINTER_32 struct{} // ???
+// POINTER_64 struct{} // ???
+// POINTER_SIGNED uintptr
+// POINTER_UNSIGNED uintptr
+// PSHORT *SHORT
+// PSIZE_T *SIZE_T
+// PSSIZE_T *SSIZE_T
+// PSTR *CHAR
+// PTBYTE *TBYTE
+// PTCHAR *TCHAR
+// PTSTR PWSTR
+// PUCHAR *UCHAR
+// PUHALF_PTR *UHALF_PTR
+// PUINT *UINT
+// PUINT_PTR *UINT_PTR
+// PUINT8 *UINT8
+// PUINT16 *UINT16
+// PUINT32 *UINT32
+// PUINT64 *UINT64
+// PULONG *ULONG
+// PULONGLONG *ULONGLONG
+// PULONG_PTR *ULONG_PTR
+// PULONG32 *ULONG32
+// PULONG64 *ULONG64
+// PUSHORT *USHORT
+// PVOID unsafe.Pointer
+// PWCHAR *WCHAR
+// PWORD *WORD
+// PWSTR *WCHAR
+// QWORD uint64
+// SC_HANDLE HANDLE
+// SC_LOCK LPVOID
+// SERVICE_STATUS_HANDLE HANDLE
+// SHORT int16
+// SIZE_T ULONG_PTR
+// SSIZE_T LONG_PTR
+// TBYTE WCHAR
+// TCHAR WCHAR
+// UCHAR uint8
+// UHALF_PTR struct{} // ???
+// UINT uint32
+// UINT_PTR uintptr
+// UINT8 uint8
+// UINT16 uint16
+// UINT32 uint32
+// UINT64 uint64
+// ULONG uint32
+// ULONGLONG uint64
+// ULONG_PTR uintptr
+// ULONG32 uint32
+// ULONG64 uint64
+// USHORT uint16
+// USN LONGLONG
+// WCHAR uint16
+// WORD uint16
+// WPARAM UINT_PTR
+type (
+ ATOM uint16
+ BOOL int32
+ COLORREF uint32
+ DWM_FRAME_COUNT uint64
+ DWORD uint32
+ HACCEL HANDLE
+ HANDLE uintptr
+ HBITMAP HANDLE
+ HBRUSH HANDLE
+ HCURSOR HANDLE
+ HDC HANDLE
+ HDROP HANDLE
+ HDWP HANDLE
+ HENHMETAFILE HANDLE
+ HFONT HANDLE
+ HGDIOBJ HANDLE
+ HGLOBAL HANDLE
+ HGLRC HANDLE
+ HHOOK HANDLE
+ HICON HANDLE
+ HIMAGELIST HANDLE
+ HINSTANCE HANDLE
+ HKEY HANDLE
+ HKL HANDLE
+ HMENU HANDLE
+ HMODULE HANDLE
+ HMONITOR HANDLE
+ HPEN HANDLE
+ HRESULT int32
+ HRGN HANDLE
+ HRSRC HANDLE
+ HTHUMBNAIL HANDLE
+ HWND HANDLE
+ LPARAM uintptr
+ LPCVOID unsafe.Pointer
+ LRESULT uintptr
+ PVOID unsafe.Pointer
+ QPC_TIME uint64
+ ULONG_PTR uintptr
+ WPARAM uintptr
+ TRACEHANDLE uintptr
+)
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd162805.aspx
+type POINT struct {
+ X, Y int32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd162897.aspx
+type RECT struct {
+ Left, Top, Right, Bottom int32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms633577.aspx
+type WNDCLASSEX struct {
+ Size uint32
+ Style uint32
+ WndProc uintptr
+ ClsExtra int32
+ WndExtra int32
+ Instance HINSTANCE
+ Icon HICON
+ Cursor HCURSOR
+ Background HBRUSH
+ MenuName *uint16
+ ClassName *uint16
+ IconSm HICON
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms644958.aspx
+type MSG struct {
+ Hwnd HWND
+ Message uint32
+ WParam uintptr
+ LParam uintptr
+ Time uint32
+ Pt POINT
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd145037.aspx
+type LOGFONT struct {
+ Height int32
+ Width int32
+ Escapement int32
+ Orientation int32
+ Weight int32
+ Italic byte
+ Underline byte
+ StrikeOut byte
+ CharSet byte
+ OutPrecision byte
+ ClipPrecision byte
+ Quality byte
+ PitchAndFamily byte
+ FaceName [LF_FACESIZE]uint16
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms646839.aspx
+type OPENFILENAME struct {
+ StructSize uint32
+ Owner HWND
+ Instance HINSTANCE
+ Filter *uint16
+ CustomFilter *uint16
+ MaxCustomFilter uint32
+ FilterIndex uint32
+ File *uint16
+ MaxFile uint32
+ FileTitle *uint16
+ MaxFileTitle uint32
+ InitialDir *uint16
+ Title *uint16
+ Flags uint32
+ FileOffset uint16
+ FileExtension uint16
+ DefExt *uint16
+ CustData uintptr
+ FnHook uintptr
+ TemplateName *uint16
+ PvReserved unsafe.Pointer
+ DwReserved uint32
+ FlagsEx uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/bb773205.aspx
+type BROWSEINFO struct {
+ Owner HWND
+ Root *uint16
+ DisplayName *uint16
+ Title *uint16
+ Flags uint32
+ CallbackFunc uintptr
+ LParam uintptr
+ Image int32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/aa373931.aspx
+type GUID struct {
+ Data1 uint32
+ Data2 uint16
+ Data3 uint16
+ Data4 [8]byte
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms221627.aspx
+type VARIANT struct {
+ VT uint16 // 2
+ WReserved1 uint16 // 4
+ WReserved2 uint16 // 6
+ WReserved3 uint16 // 8
+ Val int64 // 16
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms221416.aspx
+type DISPPARAMS struct {
+ Rgvarg uintptr
+ RgdispidNamedArgs uintptr
+ CArgs uint32
+ CNamedArgs uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms221133.aspx
+type EXCEPINFO struct {
+ WCode uint16
+ WReserved uint16
+ BstrSource *uint16
+ BstrDescription *uint16
+ BstrHelpFile *uint16
+ DwHelpContext uint32
+ PvReserved uintptr
+ PfnDeferredFillIn uintptr
+ Scode int32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd145035.aspx
+type LOGBRUSH struct {
+ LbStyle uint32
+ LbColor COLORREF
+ LbHatch uintptr
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd183565.aspx
+type DEVMODE struct {
+ DmDeviceName [CCHDEVICENAME]uint16
+ DmSpecVersion uint16
+ DmDriverVersion uint16
+ DmSize uint16
+ DmDriverExtra uint16
+ DmFields uint32
+ DmOrientation int16
+ DmPaperSize int16
+ DmPaperLength int16
+ DmPaperWidth int16
+ DmScale int16
+ DmCopies int16
+ DmDefaultSource int16
+ DmPrintQuality int16
+ DmColor int16
+ DmDuplex int16
+ DmYResolution int16
+ DmTTOption int16
+ DmCollate int16
+ DmFormName [CCHFORMNAME]uint16
+ DmLogPixels uint16
+ DmBitsPerPel uint32
+ DmPelsWidth uint32
+ DmPelsHeight uint32
+ DmDisplayFlags uint32
+ DmDisplayFrequency uint32
+ DmICMMethod uint32
+ DmICMIntent uint32
+ DmMediaType uint32
+ DmDitherType uint32
+ DmReserved1 uint32
+ DmReserved2 uint32
+ DmPanningWidth uint32
+ DmPanningHeight uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd183376.aspx
+type BITMAPINFOHEADER struct {
+ BiSize uint32
+ BiWidth int32
+ BiHeight int32
+ BiPlanes uint16
+ BiBitCount uint16
+ BiCompression uint32
+ BiSizeImage uint32
+ BiXPelsPerMeter int32
+ BiYPelsPerMeter int32
+ BiClrUsed uint32
+ BiClrImportant uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd162938.aspx
+type RGBQUAD struct {
+ RgbBlue byte
+ RgbGreen byte
+ RgbRed byte
+ RgbReserved byte
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd183375.aspx
+type BITMAPINFO struct {
+ BmiHeader BITMAPINFOHEADER
+ BmiColors *RGBQUAD
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd183371.aspx
+type BITMAP struct {
+ BmType int32
+ BmWidth int32
+ BmHeight int32
+ BmWidthBytes int32
+ BmPlanes uint16
+ BmBitsPixel uint16
+ BmBits unsafe.Pointer
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd183567.aspx
+type DIBSECTION struct {
+ DsBm BITMAP
+ DsBmih BITMAPINFOHEADER
+ DsBitfields [3]uint32
+ DshSection HANDLE
+ DsOffset uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd162607.aspx
+type ENHMETAHEADER struct {
+ IType uint32
+ NSize uint32
+ RclBounds RECT
+ RclFrame RECT
+ DSignature uint32
+ NVersion uint32
+ NBytes uint32
+ NRecords uint32
+ NHandles uint16
+ SReserved uint16
+ NDescription uint32
+ OffDescription uint32
+ NPalEntries uint32
+ SzlDevice SIZE
+ SzlMillimeters SIZE
+ CbPixelFormat uint32
+ OffPixelFormat uint32
+ BOpenGL uint32
+ SzlMicrometers SIZE
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd145106.aspx
+type SIZE struct {
+ CX, CY int32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd145132.aspx
+type TEXTMETRIC struct {
+ TmHeight int32
+ TmAscent int32
+ TmDescent int32
+ TmInternalLeading int32
+ TmExternalLeading int32
+ TmAveCharWidth int32
+ TmMaxCharWidth int32
+ TmWeight int32
+ TmOverhang int32
+ TmDigitizedAspectX int32
+ TmDigitizedAspectY int32
+ TmFirstChar uint16
+ TmLastChar uint16
+ TmDefaultChar uint16
+ TmBreakChar uint16
+ TmItalic byte
+ TmUnderlined byte
+ TmStruckOut byte
+ TmPitchAndFamily byte
+ TmCharSet byte
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd183574.aspx
+type DOCINFO struct {
+ CbSize int32
+ LpszDocName *uint16
+ LpszOutput *uint16
+ LpszDatatype *uint16
+ FwType uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/bb775514.aspx
+type NMHDR struct {
+ HwndFrom HWND
+ IdFrom uintptr
+ Code uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/bb774743.aspx
+type LVCOLUMN struct {
+ Mask uint32
+ Fmt int32
+ Cx int32
+ PszText *uint16
+ CchTextMax int32
+ ISubItem int32
+ IImage int32
+ IOrder int32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/bb774760.aspx
+type LVITEM struct {
+ Mask uint32
+ IItem int32
+ ISubItem int32
+ State uint32
+ StateMask uint32
+ PszText *uint16
+ CchTextMax int32
+ IImage int32
+ LParam uintptr
+ IIndent int32
+ IGroupId int32
+ CColumns uint32
+ PuColumns uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/bb774754.aspx
+type LVHITTESTINFO struct {
+ Pt POINT
+ Flags uint32
+ IItem int32
+ ISubItem int32
+ IGroup int32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/bb774771.aspx
+type NMITEMACTIVATE struct {
+ Hdr NMHDR
+ IItem int32
+ ISubItem int32
+ UNewState uint32
+ UOldState uint32
+ UChanged uint32
+ PtAction POINT
+ LParam uintptr
+ UKeyFlags uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/bb774773.aspx
+type NMLISTVIEW struct {
+ Hdr NMHDR
+ IItem int32
+ ISubItem int32
+ UNewState uint32
+ UOldState uint32
+ UChanged uint32
+ PtAction POINT
+ LParam uintptr
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/bb774780.aspx
+type NMLVDISPINFO struct {
+ Hdr NMHDR
+ Item LVITEM
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/bb775507.aspx
+type INITCOMMONCONTROLSEX struct {
+ DwSize uint32
+ DwICC uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/bb760256.aspx
+type TOOLINFO struct {
+ CbSize uint32
+ UFlags uint32
+ Hwnd HWND
+ UId uintptr
+ Rect RECT
+ Hinst HINSTANCE
+ LpszText *uint16
+ LParam uintptr
+ LpReserved unsafe.Pointer
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms645604.aspx
+type TRACKMOUSEEVENT struct {
+ CbSize uint32
+ DwFlags uint32
+ HwndTrack HWND
+ DwHoverTime uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms534067.aspx
+type GdiplusStartupInput struct {
+ GdiplusVersion uint32
+ DebugEventCallback uintptr
+ SuppressBackgroundThread BOOL
+ SuppressExternalCodecs BOOL
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms534068.aspx
+type GdiplusStartupOutput struct {
+ NotificationHook uintptr
+ NotificationUnhook uintptr
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd162768.aspx
+type PAINTSTRUCT struct {
+ Hdc HDC
+ FErase BOOL
+ RcPaint RECT
+ FRestore BOOL
+ FIncUpdate BOOL
+ RgbReserved [32]byte
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms684225.aspx
+type MODULEENTRY32 struct {
+ Size uint32
+ ModuleID uint32
+ ProcessID uint32
+ GlblcntUsage uint32
+ ProccntUsage uint32
+ ModBaseAddr *uint8
+ ModBaseSize uint32
+ HModule HMODULE
+ SzModule [MAX_MODULE_NAME32 + 1]uint16
+ SzExePath [MAX_PATH]uint16
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms724284.aspx
+type FILETIME struct {
+ DwLowDateTime uint32
+ DwHighDateTime uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms682119.aspx
+type COORD struct {
+ X, Y int16
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms686311.aspx
+type SMALL_RECT struct {
+ Left, Top, Right, Bottom int16
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms682093.aspx
+type CONSOLE_SCREEN_BUFFER_INFO struct {
+ DwSize COORD
+ DwCursorPosition COORD
+ WAttributes uint16
+ SrWindow SMALL_RECT
+ DwMaximumWindowSize COORD
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/bb773244.aspx
+type MARGINS struct {
+ CxLeftWidth, CxRightWidth, CyTopHeight, CyBottomHeight int32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/aa969500.aspx
+type DWM_BLURBEHIND struct {
+ DwFlags uint32
+ fEnable BOOL
+ hRgnBlur HRGN
+ fTransitionOnMaximized BOOL
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/aa969501.aspx
+type DWM_PRESENT_PARAMETERS struct {
+ cbSize uint32
+ fQueue BOOL
+ cRefreshStart DWM_FRAME_COUNT
+ cBuffer uint32
+ fUseSourceRate BOOL
+ rateSource UNSIGNED_RATIO
+ cRefreshesPerFrame uint32
+ eSampling DWM_SOURCE_FRAME_SAMPLING
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/aa969502.aspx
+type DWM_THUMBNAIL_PROPERTIES struct {
+ dwFlags uint32
+ rcDestination RECT
+ rcSource RECT
+ opacity byte
+ fVisible BOOL
+ fSourceClientAreaOnly BOOL
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/aa969503.aspx
+type DWM_TIMING_INFO struct {
+ cbSize uint32
+ rateRefresh UNSIGNED_RATIO
+ qpcRefreshPeriod QPC_TIME
+ rateCompose UNSIGNED_RATIO
+ qpcVBlank QPC_TIME
+ cRefresh DWM_FRAME_COUNT
+ cDXRefresh uint32
+ qpcCompose QPC_TIME
+ cFrame DWM_FRAME_COUNT
+ cDXPresent uint32
+ cRefreshFrame DWM_FRAME_COUNT
+ cFrameSubmitted DWM_FRAME_COUNT
+ cDXPresentSubmitted uint32
+ cFrameConfirmed DWM_FRAME_COUNT
+ cDXPresentConfirmed uint32
+ cRefreshConfirmed DWM_FRAME_COUNT
+ cDXRefreshConfirmed uint32
+ cFramesLate DWM_FRAME_COUNT
+ cFramesOutstanding uint32
+ cFrameDisplayed DWM_FRAME_COUNT
+ qpcFrameDisplayed QPC_TIME
+ cRefreshFrameDisplayed DWM_FRAME_COUNT
+ cFrameComplete DWM_FRAME_COUNT
+ qpcFrameComplete QPC_TIME
+ cFramePending DWM_FRAME_COUNT
+ qpcFramePending QPC_TIME
+ cFramesDisplayed DWM_FRAME_COUNT
+ cFramesComplete DWM_FRAME_COUNT
+ cFramesPending DWM_FRAME_COUNT
+ cFramesAvailable DWM_FRAME_COUNT
+ cFramesDropped DWM_FRAME_COUNT
+ cFramesMissed DWM_FRAME_COUNT
+ cRefreshNextDisplayed DWM_FRAME_COUNT
+ cRefreshNextPresented DWM_FRAME_COUNT
+ cRefreshesDisplayed DWM_FRAME_COUNT
+ cRefreshesPresented DWM_FRAME_COUNT
+ cRefreshStarted DWM_FRAME_COUNT
+ cPixelsReceived uint64
+ cPixelsDrawn uint64
+ cBuffersEmpty DWM_FRAME_COUNT
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd389402.aspx
+type MilMatrix3x2D struct {
+ S_11, S_12, S_21, S_22 float64
+ DX, DY float64
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/aa969505.aspx
+type UNSIGNED_RATIO struct {
+ uiNumerator uint32
+ uiDenominator uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms632603.aspx
+type CREATESTRUCT struct {
+ CreateParams uintptr
+ Instance HINSTANCE
+ Menu HMENU
+ Parent HWND
+ Cy, Cx int32
+ Y, X int32
+ Style int32
+ Name *uint16
+ Class *uint16
+ dwExStyle uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd145065.aspx
+type MONITORINFO struct {
+ CbSize uint32
+ RcMonitor RECT
+ RcWork RECT
+ DwFlags uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd145066.aspx
+type MONITORINFOEX struct {
+ MONITORINFO
+ SzDevice [CCHDEVICENAME]uint16
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/dd368826.aspx
+type PIXELFORMATDESCRIPTOR struct {
+ Size uint16
+ Version uint16
+ DwFlags uint32
+ IPixelType byte
+ ColorBits byte
+ RedBits, RedShift byte
+ GreenBits, GreenShift byte
+ BlueBits, BlueShift byte
+ AlphaBits, AlphaShift byte
+ AccumBits byte
+ AccumRedBits byte
+ AccumGreenBits byte
+ AccumBlueBits byte
+ AccumAlphaBits byte
+ DepthBits, StencilBits byte
+ AuxBuffers byte
+ ILayerType byte
+ Reserved byte
+ DwLayerMask uint32
+ DwVisibleMask uint32
+ DwDamageMask uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms646270(v=vs.85).aspx
+type INPUT struct {
+ Type uint32
+ Mi MOUSEINPUT
+ Ki KEYBDINPUT
+ Hi HARDWAREINPUT
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms646273(v=vs.85).aspx
+type MOUSEINPUT struct {
+ Dx int32
+ Dy int32
+ MouseData uint32
+ DwFlags uint32
+ Time uint32
+ DwExtraInfo uintptr
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms646271(v=vs.85).aspx
+type KEYBDINPUT struct {
+ WVk uint16
+ WScan uint16
+ DwFlags uint32
+ Time uint32
+ DwExtraInfo uintptr
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms646269(v=vs.85).aspx
+type HARDWAREINPUT struct {
+ UMsg uint32
+ WParamL uint16
+ WParamH uint16
+}
+
+type KbdInput struct {
+ typ uint32
+ ki KEYBDINPUT
+}
+
+type MouseInput struct {
+ typ uint32
+ mi MOUSEINPUT
+}
+
+type HardwareInput struct {
+ typ uint32
+ hi HARDWAREINPUT
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms724950(v=vs.85).aspx
+type SYSTEMTIME struct {
+ Year uint16
+ Month uint16
+ DayOfWeek uint16
+ Day uint16
+ Hour uint16
+ Minute uint16
+ Second uint16
+ Milliseconds uint16
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms644967(v=vs.85).aspx
+type KBDLLHOOKSTRUCT struct {
+ VkCode DWORD
+ ScanCode DWORD
+ Flags DWORD
+ Time DWORD
+ DwExtraInfo ULONG_PTR
+}
+
+type HOOKPROC func(int, WPARAM, LPARAM) LRESULT
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms633498(v=vs.85).aspx
+type WNDENUMPROC func(HWND, LPARAM) LRESULT