use crate::kernel::ffi_types::*;
extern_sys! { "gdi32";
AbortDoc(HANDLE) -> BOOL
AbortPath(HANDLE) -> BOOL
AngleArc(HANDLE, i32, i32, u32, f32, f32) -> BOOL
Arc(HANDLE, i32, i32, i32, i32, i32, i32, i32, i32) -> BOOL
ArcTo(HANDLE, i32, i32, i32, i32, i32, i32, i32, i32) -> BOOL
BeginPath(HANDLE) -> BOOL
BitBlt(HANDLE, i32, i32, i32, i32, HANDLE, i32, i32, u32) -> BOOL
CancelDC(HANDLE) -> BOOL
ChoosePixelFormat(HANDLE, PCVOID) -> i32
Chord(HANDLE, i32, i32, i32, i32, i32, i32, i32, i32) -> BOOL
CloseFigure(HANDLE) -> BOOL
CombineRgn(HANDLE, HANDLE, HANDLE, i32) -> i32
CreateBitmap(i32, i32, u32, u32, PVOID) -> HANDLE
CreateBrushIndirect(PCVOID) -> HANDLE
CreateCompatibleBitmap(HANDLE, i32, i32) -> HANDLE
CreateCompatibleDC(HANDLE) -> HANDLE
CreateFontIndirectW(PCVOID) -> HANDLE
CreateFontW(i32, i32, i32, i32, i32, u32, u32, u32, u32, u32, u32, u32, u32, PCSTR) -> HANDLE
CreateHalftonePalette(HANDLE) -> HANDLE
CreateHatchBrush(i32, u32) -> HANDLE
CreatePalette(PCVOID) -> HANDLE
CreatePatternBrush(HANDLE) -> HANDLE
CreatePen(i32, i32, u32) -> HANDLE
CreatePenIndirect(PCVOID) -> HANDLE
CreateRectRgn(i32, i32, i32, i32) -> HANDLE
CreateRectRgnIndirect(PCVOID) -> HANDLE
CreateRoundRectRgn(i32, i32, i32, i32, i32, i32) -> HANDLE
CreateSolidBrush(u32) -> HANDLE
DeleteDC(HANDLE) -> BOOL
DeleteObject(HANDLE) -> BOOL
DescribePixelFormat(HANDLE, i32, u32, PVOID) -> i32
Ellipse(HANDLE, i32, i32, i32, i32) -> BOOL
EndPath(HANDLE) -> BOOL
EqualRgn(HANDLE, HANDLE) -> BOOL
ExcludeClipRect(HANDLE, i32, i32, i32, i32) -> i32
FillPath(HANDLE) -> BOOL
FillRect(HANDLE, PCVOID, HANDLE) -> i32
FillRgn(HANDLE, HANDLE, HANDLE) -> BOOL
FlattenPath(HANDLE) -> BOOL
FrameRgn(HANDLE, HANDLE, HANDLE, i32, i32) -> BOOL
GdiFlush() -> BOOL
GdiGetBatchLimit() -> u32
GdiSetBatchLimit(u32) -> u32
GetBkColor(HANDLE) -> u32
GetBkMode(HANDLE) -> i32
GetCurrentObject(HANDLE, u32) -> HANDLE
GetCurrentPositionEx(HANDLE, PVOID) -> BOOL
GetDCBrushColor(HANDLE) -> u32
GetDCPenColor(HANDLE) -> u32
GetDeviceCaps(HANDLE, i32) -> i32
GetDIBits(HANDLE, HANDLE, u32, u32, PVOID, PVOID, u32) -> i32
GetObjectW(HANDLE, i32, PVOID) -> i32
GetPixelFormat(HANDLE) -> i32
GetStockObject(i32) -> HANDLE
GetStretchBltMode(HANDLE) -> i32
GetSysColorBrush(i32) -> HANDLE
GetTextColor(HANDLE) -> u32
GetTextExtentPoint32W(HANDLE, PCSTR, i32, PVOID) -> BOOL
GetTextFaceW(HANDLE, i32, PSTR) -> i32
GetTextMetricsW(HANDLE, PVOID) -> BOOL
GetViewportExtEx(HANDLE, PVOID) -> BOOL
GetViewportOrgEx(HANDLE, PVOID) -> BOOL
GetWindowExtEx(HANDLE, PVOID) -> BOOL
GetWindowOrgEx(HANDLE, PVOID) -> BOOL
IntersectClipRect(HANDLE, i32, i32, i32, i32) -> i32
InvertRgn(HANDLE, HANDLE) -> BOOL
LineTo(HANDLE, i32, i32) -> BOOL
MaskBlt(HANDLE, i32, i32, i32, i32, HANDLE, i32, i32, HANDLE, i32, i32, u32) -> BOOL
MoveToEx(HANDLE, i32, i32, PVOID) -> BOOL
OffsetClipRgn(HANDLE, i32, i32) -> i32
OffsetRgn(HANDLE, i32, i32) -> i32
PaintRgn(HANDLE, HANDLE) -> BOOL
PatBlt(HANDLE, i32, i32, i32, i32, u32) -> BOOL
PathToRegion(HANDLE) -> HANDLE
Pie(HANDLE, i32, i32, i32, i32, i32, i32, i32, i32) -> BOOL
PolyBezier(HANDLE, PCVOID, u32) -> BOOL
PolyBezierTo(HANDLE, PCVOID, u32) -> BOOL
PolyDraw(HANDLE, PCVOID, PCVOID, i32) -> BOOL
Polygon(HANDLE, PCVOID, i32) -> BOOL
Polyline(HANDLE, PCVOID, u32) -> BOOL
PolylineTo(HANDLE, PCVOID, u32) -> BOOL
PolyPolygon(HANDLE, PCVOID, *const i32, i32) -> BOOL
PolyPolyline(HANDLE, PCVOID, *const u32, u32) -> BOOL
PtInRegion(HANDLE, i32, i32) -> BOOL
PtVisible(HANDLE, i32, i32) -> BOOL
RealizePalette(HANDLE) -> u32
Rectangle(HANDLE, i32, i32, i32, i32) -> BOOL
RectInRegion(HANDLE, PCVOID) -> BOOL
RestoreDC(HANDLE, i32) -> BOOL
RoundRect(HANDLE, i32, i32, i32, i32, i32, i32) -> BOOL
SaveDC(HANDLE) -> i32
SelectClipPath(HANDLE, i32) -> BOOL
SelectClipRgn(HANDLE, HANDLE) -> i32
SelectObject(HANDLE, HANDLE) -> HANDLE
SelectPalette(HANDLE, HANDLE, BOOL) -> HANDLE
SetArcDirection(HANDLE, i32) -> i32
SetBkColor(HANDLE, u32) -> u32
SetBkMode(HANDLE, i32) -> i32
SetBrushOrgEx(HANDLE, i32, i32, PVOID) -> BOOL
SetDCBrushColor(HANDLE, u32) -> u32
SetDCPenColor(HANDLE, u32) -> u32
SetDIBits(HANDLE, HANDLE, u32, u32, PCVOID, PCVOID, u32) -> i32
SetGraphicsMode(HANDLE, i32) -> i32
SetStretchBltMode(HANDLE, i32) -> i32
SetTextAlign(HANDLE, u32) -> u32
SetTextColor(HANDLE, u32) -> u32
SetTextJustification(HANDLE, i32, i32) -> BOOL
SetViewportExtEx(HANDLE, i32, i32, PVOID) -> BOOL
SetViewportOrgEx(HANDLE, i32, i32, PVOID) -> BOOL
SetWindowExtEx(HANDLE, i32, i32, PVOID) -> BOOL
SetWindowOrgEx(HANDLE, i32, i32, PVOID) -> BOOL
StretchBlt(HANDLE, i32, i32, i32, i32, HANDLE, i32, i32, i32, i32, u32) -> BOOL
StrokeAndFillPath(HANDLE) -> BOOL
StrokePath(HANDLE) -> BOOL
TextOutW(HANDLE, i32, i32, PCSTR, i32) -> BOOL
UnrealizeObject(HANDLE) -> BOOL
UpdateColors(HANDLE) -> BOOL
WidenPath(HANDLE) -> BOOL
}
extern_sys! { "msimg32";
AlphaBlend(HANDLE, i32, i32, i32, i32, HANDLE, i32, i32, i32, i32, PCVOID) -> BOOL
TransparentBlt(HANDLE, i32, i32, i32, i32, HANDLE, i32, i32, i32, i32, u32) -> BOOL
}
extern_sys! { "user32";
LoadImageW(HANDLE, PCSTR, u32, i32, i32, u32) -> HANDLE }