diff dwt/internal/win32/WINAPI.d @ 3:20e70c5494d7

make WINAPI, WINTYPES compile
author Frank Benoit <benoit@tionex.de>
date Fri, 25 Jan 2008 13:00:42 +0100
parents
children 1bea9f0c6f63
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/win32/WINAPI.d	Fri Jan 25 13:00:42 2008 +0100
@@ -0,0 +1,1941 @@
+/**
+ * This module declared window APIs required by DWT but not in std.c.windows.windows,
+ * The one in the std.c.windows.windows module are aliased
+ */
+
+
+module dwt.internal.win32.WINAPI;
+
+import dwt.internal.win32.WINTYPES;
+import tango.sys.win32.Types;
+import STDWIN = tango.sys.win32.UserGdi;
+
+
+// Windows API
+extern (Windows){
+int AbortDoc(HDC hdc);
+HKL ActivateKeyboardLayout(
+    HKL hkl,     // handle to keyboard layout
+    UINT Flags   // keyboard layout flags
+);
+BOOL AdjustWindowRectEx(
+    LPRECT lpRect,    // pointer to client-rectangle structure
+    DWORD dwStyle,    // window styles
+    BOOL bMenu,       // menu-present flag
+    DWORD dwExStyle   // extended style
+);
+BOOL Arc(
+    HDC hdc,         // handle to device context
+    int nLeftRect,   // x-coord of bounding rectangle's upper-left corner
+    int nTopRect,    // y-coord of bounding rectangle's upper-left corner
+    int nRightRect,  // x-coord of bounding rectangle's lower-right corner
+    int nBottomRect, // y-coord of bounding rectangle's lower-right corner
+    int nXStartArc,  // first radial ending point
+    int nYStartArc,  // first radial ending point
+    int nXEndArc,    // second radial ending point
+    int nYEndArc     // second radial ending point
+);
+HDWP BeginDeferWindowPos(
+    int nNumWindows
+);
+alias STDWIN.BeginPaint BeginPaint;
+BOOL BitBlt(
+    HDC hdcDest, // handle to destination device context
+    int nXDest,  // x-coordinate of destination rectangle's upper-left corner
+    int nYDest,  // y-coordinate of destination rectangle's upper-left corner
+    int nWidth,  // width of destination rectangle
+    int nHeight, // height of destination rectangle
+    HDC hdcSrc,  // handle to source device context
+    int nXSrc,   // x-coordinate of source rectangle's upper-left corner
+    int nYSrc,   // y-coordinate of source rectangle's upper-left corner
+    DWORD dwRop  // raster operation code
+);
+    BOOL BringWindowToTop(
+    HWND hWnd   // handle to window
+);
+LRESULT CallNextHookEx(
+    HHOOK hhk,      // handle to current hook
+    int nCode,      // hook code passed to hook procedure
+    WPARAM_I wParam,  // value passed to hook procedure
+    LPARAM lParam   // value passed to hook procedure
+);
+LRESULT CallWindowProcA(
+    WNDPROC_I lpPrevWndFunc,  // pointer to previous procedure
+    HWND hWnd,              // handle to window
+    UINT Msg,               // message
+    WPARAM_I wParam,          // first message parameter
+    LPARAM lParam           // second message parameter
+);
+LRESULT CallWindowProcW(
+    WNDPROC_I lpPrevWndFunc,  // pointer to previous procedure
+    HWND hWnd,              // handle to window
+    UINT Msg,               // message
+    WPARAM_I wParam,          // first message parameter
+    LPARAM lParam           // second message parameter
+);
+LPSTR CharLowerA(
+    LPSTR lpsz   // single character or pointer to string
+);
+LPWSTR CharLowerW(
+    LPWSTR lpsz   // single character or pointer to string
+);
+LPSTR CharUpperA(
+    LPSTR lpsz   // single character or pointer to string
+);
+LPWSTR CharUpperW(
+    LPWSTR lpsz   // single character or pointer to string
+);
+DWORD CheckMenuItem(
+    HMENU hmenu,        // handle to menu
+    UINT uIDCheckItem,  // menu item to check or uncheck
+    UINT uCheck         // menu item flags
+);
+BOOL ChooseColorA(
+    LPCHOOSECOLORA lpcc   // pointer to structure with initialization data
+);
+BOOL ChooseColorW(
+    LPCHOOSECOLORW lpcc   // pointer to structure with initialization data
+);
+BOOL ChooseFontA(
+    LPCHOOSEFONTA lpcf   // pointer to structure with initialization data
+);
+BOOL ChooseFontW(
+    LPCHOOSEFONTW lpcf   // pointer to structure with initialization data
+);
+alias STDWIN.ClientToScreen ClientToScreen;
+BOOL CloseClipboard();
+int CombineRgn(
+    HRGN hrgnDest,      // handle to destination region
+    HRGN hrgnSrc1,      // handle to source region
+    HRGN hrgnSrc2,      // handle to source region
+    int fnCombineMode   // region combining mode
+);
+alias STDWIN.CloseHandle CloseHandle;
+DWORD CommDlgExtendedError();
+
+version(WinCE){
+BOOL CommandBar_AddAdornments(HWND hwndCB, DWORD dwFlags, DWORD dwReserved);
+HWND CommandBar_Create(HINSTANCE hInst, HWND hwndParent, int idCmdBar);
+void CommandBar_Destroy(HWND hwndCB);
+BOOL CommandBar_DrawMenuBar(HWND hwndCB, int iButton);
+int CommandBar_Height(HWND hwndCB);
+int CommandBar_InsertMenubarEx(HWND hwndCB, HINSTANCE hInst, int pszMenu, int iButton);
+int CommandBar_Show(HWND hwndCB, int fShow);
+}
+
+HANDLE CopyImage(
+    HANDLE hImage,  // handle to the image to copy
+    UINT uType,     // type of image to copy
+    int cxDesired,  // desired width of new image
+    int cyDesired,  // desired height of new image
+    UINT fuFlags    // copy flags
+);
+HACCEL CreateAcceleratorTableA(
+    LPACCEL lpaccl,  // pointer to structure array with accelerator data
+    int cEntries     // number of structures in the array
+);
+HACCEL CreateAcceleratorTableW(
+    LPACCEL lpaccl,  // pointer to structure array with accelerator data
+    int cEntries     // number of structures in the array
+);
+HBITMAP CreateBitmap(
+    int nWidth,         // bitmap width, in pixels
+    int nHeight,        // bitmap height, in pixels
+    UINT cPlanes,       // number of color planes used by device
+    UINT cBitsPerPel,   // number of bits required to identify a color
+    VOID *lpvBits // pointer to array containing color data
+);
+alias STDWIN.CreateCaret CreateCaret;
+HBITMAP CreateCompatibleBitmap(
+    HDC hdc,        // handle to device context
+    int nWidth,     // width of bitmap, in pixels
+    int nHeight     // height of bitmap, in pixels
+);
+alias STDWIN.CreateCompatibleDC CreateCompatibleDC;
+HCURSOR CreateCursor(
+    HINSTANCE hInst,         // handle to application instance
+    int xHotSpot,            // horizontal position of hot spot
+    int yHotSpot,            // vertical position of hot spot
+    int nWidth,              // cursor width
+    int nHeight,             // cursor height
+    VOID *pvANDPlane,  // pointer to AND bitmask array
+    VOID *pvXORPlane   // pointer to XOR bitmask array
+);
+HDC CreateDCA(
+    LPCSTR lpszDriver,  // pointer to string specifying driver name
+    LPCSTR lpszDevice,  // pointer to string specifying device name
+    LPCSTR lpszOutput,  // do not use; set to NULL
+    DEVMODE *lpInitData
+                   // pointer to optional printer data
+);
+HDC CreateDCW(
+    LPCWSTR lpszDriver,  // pointer to string specifying driver name
+    LPCWSTR lpszDevice,  // pointer to string specifying device name
+    LPCWSTR lpszOutput,  // do not use; set to NULL
+    DEVMODE *lpInitData
+                   // pointer to optional printer data
+);
+    HBITMAP CreateDIBSection(
+    HDC hdc,          // handle to device context
+    BITMAPINFO *pbmi,
+                // pointer to structure containing bitmap size,
+                // format, and color data
+    UINT iUsage,      // color data type indicator: RGB values or
+                // palette indexes
+    VOID *ppvBits,    // pointer to variable to receive a pointer to
+                // the bitmap's bit values
+    HANDLE hSection,  // optional handle to a file mapping object
+    DWORD dwOffset    // offset to the bitmap bit values within the
+                // file mapping object
+);
+HANDLE CreateEventA(
+  LPSECURITY_ATTRIBUTES lpEventAttributes,
+                      // pointer to security attributes
+  BOOL bManualReset,  // flag for manual-reset event
+  BOOL bInitialState, // flag for initial state
+  LPCSTR lpName      // pointer to event-object name
+);
+HANDLE CreateEventW(
+  LPSECURITY_ATTRIBUTES lpEventAttributes,
+                      // pointer to security attributes
+  BOOL bManualReset,  // flag for manual-reset event
+  BOOL bInitialState, // flag for initial state
+  LPCWSTR lpName      // pointer to event-object name
+);
+
+alias STDWIN.CreateFileA CreateFileA;
+alias STDWIN.CreateFileW CreateFileW;
+HFONT CreateFontIndirectA(LOGFONTA* lplf );
+HFONT CreateFontIndirectW(LOGFONTW* lplf );
+HICON CreateIconIndirect(
+    PICONINFO piconinfo   // pointer to icon information structure
+);
+HMENU CreateMenu();
+HPALETTE CreatePalette(
+    LOGPALETTE *lplgpl   // pointer to logical color palette
+);
+HBRUSH CreatePatternBrush(
+    HBITMAP hbmp   // handle to bitmap
+);
+alias STDWIN.CreatePen CreatePen;
+HRGN CreatePolygonRgn(
+    POINT *lppt,  // pointer to array of points
+    int cPoints,        // number of points in array
+    int fnPolyFillMode  // polygon-filling mode
+);
+HMENU CreatePopupMenu();
+alias STDWIN.CreateRectRgn CreateRectRgn;
+HBRUSH CreateSolidBrush(
+    COLORREF crColor   // brush color value
+);
+
+alias STDWIN.CreateWindowExA CreateWindowExA;
+HWND CreateWindowExW(
+    DWORD dwExStyle,      // extended window style
+    LPCWSTR lpClassName,  // pointer to registered class name
+    LPCWSTR lpWindowName, // pointer to window name
+    DWORD dwStyle,        // window style
+    int x,                // horizontal position of window
+    int y,                // vertical position of window
+    int nWidth,           // window width
+    int nHeight,          // window height
+    HWND hWndParent,      // handle to parent or owner window
+    HMENU hMenu,          // handle to menu, or child-window identifier
+    HINSTANCE hInstance,  // handle to application instance
+    LPVOID lpParam        // pointer to window-creation data
+);
+
+LRESULT DefFrameProcA(
+    HWND hWnd,           // handle to MDI frame window
+    HWND hWndMDIClient,  // handle to MDI client window
+    UINT uMsg,           // message
+    WPARAM_I wParam,       // first message parameter
+    LPARAM lParam        // second message parameter
+);
+LRESULT DefFrameProcW(
+    HWND hWnd,           // handle to MDI frame window
+    HWND hWndMDIClient,  // handle to MDI client window
+    UINT uMsg,           // message
+    WPARAM_I wParam,       // first message parameter
+    LPARAM lParam        // second message parameter
+);
+LRESULT DefMDIChildProcA(
+    HWND hWnd,      // handle to MDI child window
+    UINT uMsg,      // message
+    WPARAM_I wParam,  // first message parameter
+    LPARAM lParam   // second message parameter
+);
+LRESULT DefMDIChildProcW(
+    HWND hWnd,      // handle to MDI child window
+    UINT uMsg,      // message
+    WPARAM_I wParam,  // first message parameter
+    LPARAM lParam   // second message parameter
+);
+alias STDWIN.DefWindowProcA DefWindowProcA;
+LRESULT DefWindowProcW(
+    HWND hWnd,      // handle to window
+    UINT Msg,       // message identifier
+    WPARAM_I wParam,  // first message parameter
+    LPARAM lParam   // second message parameter
+);
+
+HDWP DeferWindowPos(
+    HDWP hWinPosInfo,      // handle to internal structure
+    HWND hWnd,             // handle to window to position
+    HWND hWndInsertAfter,  // placement-order handle
+    int x,                 // horizontal position
+    int y,                 // vertical position
+    int cx,                // width
+    int cy,                // height
+    UINT uFlags            // window-positioning flags
+);
+
+alias STDWIN.DeleteDC DeleteDC;
+alias STDWIN.DeleteFileA DeleteFileA;
+alias STDWIN.DeleteFileW DeleteFileW;
+BOOL DeleteMenu(
+    HMENU hMenu,     // handle to menu
+    UINT uPosition,  // menu item identifier or position
+    UINT uFlags      // menu item flag
+);
+alias STDWIN.DeleteObject DeleteObject;
+BOOL DestroyAcceleratorTable(
+    HACCEL hAccel   // handle to accelerator table
+);
+int DestroyCaret();
+BOOL DestroyCursor(
+    HCURSOR hCursor   // handle to cursor to destroy
+);
+BOOL DestroyIcon(
+    HICON hIcon   // handle to icon to destroy
+);
+BOOL DestroyMenu(
+    HMENU hMenu  // handle to menu to destroy
+);
+BOOL DestroyWindow(
+    HWND hWnd   // handle to window to destroy
+);
+LONG DispatchMessageA(
+    MSG *lpmsg   // pointer to structure with message
+);
+LONG DispatchMessageW(
+    MSG *lpmsg   // pointer to structure with message
+);
+BOOL DragDetect(
+    HWND hwnd,
+    POINT pt
+);
+void DragFinish(
+    HDROP hDrop
+);
+UINT DragQueryFileA(
+    HDROP hDrop,
+    UINT iFile,
+    LPSTR lpszFile,
+    UINT cch
+);
+UINT DragQueryFileW(
+    HDROP hDrop,
+    UINT iFile,
+    LPWSTR lpszFile,
+    UINT cch
+);
+BOOL DrawEdge(
+    HDC hdc,       // handle to device context
+    LPRECT qrc,    // pointer to rectangle coordinates
+    UINT edge,     // type of inner and outer edge to draw
+    UINT grfFlags  // type of border
+);
+BOOL DrawFocusRect(
+    HDC hDC,          // handle to device context
+    RECT *lprc  // pointer to structure for rectangle
+);
+BOOL DrawFrameControl(
+    HDC hdc,     // handle to device context
+    LPRECT lprc, // pointer to bounding rectangle
+    UINT uType,  // frame-control type
+    UINT uState  // frame-control state
+);
+BOOL DrawIconEx(
+    HDC hdc,                    // handle to device context
+    int xLeft,                  // x-coordinate of upper left corner
+    int yTop,                   // y-coordinate of upper left corner
+    HICON hIcon,                // handle to icon to draw
+    int cxWidth,                // width of the icon
+    int cyWidth,                // height of the icon
+    UINT istepIfAniCur,         // index of frame in animated cursor
+    HBRUSH hbrFlickerFreeDraw,  // handle to background brush
+    UINT diFlags                // icon-drawing flags
+);
+BOOL DrawMenuBar(
+    HWND hWnd  // handle to window with menu bar to redraw
+);
+BOOL DrawStateA(
+    HDC hdc,                     // handle to device context
+    HBRUSH hbr,                  // handle to brush
+    DRAWSTATEPROC lpOutputFunc,  // pointer to callback function
+    LPARAM lData,                // image information
+    WPARAM_I wData,                // more image information
+    int x,                       // horizontal location of image
+    int y,                       // vertical location of image
+    int cx,                      // width of image
+    int cy,                      // height of image
+    UINT fuFlags                 // image type and state
+);
+BOOL DrawStateW(
+    HDC hdc,                     // handle to device context
+    HBRUSH hbr,                  // handle to brush
+    DRAWSTATEPROC lpOutputFunc,  // pointer to callback function
+    LPARAM lData,                // image information
+    WPARAM_I wData,                // more image information
+    int x,                       // horizontal location of image
+    int y,                       // vertical location of image
+    int cx,                      // width of image
+    int cy,                      // height of image
+    UINT fuFlags                 // image type and state
+);
+int DrawTextA(
+    HDC hDC,          // handle to device context
+    LPCSTR lpString, // pointer to string to draw
+    int nCount,       // string length, in characters
+    LPRECT lpRect,    // pointer to struct with formatting dimensions
+    UINT uFormat      // text-drawing flags
+);
+int DrawTextW(
+    HDC hDC,          // handle to device context
+    LPCWSTR lpString, // pointer to string to draw
+    int nCount,       // string length, in characters
+    LPRECT lpRect,    // pointer to struct with formatting dimensions
+    UINT uFormat      // text-drawing flags
+);
+
+BOOL Ellipse(
+    HDC hdc,        // handle to device context
+    int nLeftRect,  // x-coord of bounding rectangle's upper-left corner
+    int nTopRect,   // y-coord of bounding rectangle's upper-left corner
+    int nRightRect, // x-coord of bounding rectangle's lower-right corner
+    int nBottomRect // y-coord of bounding rectangle's lower-right corner
+);
+BOOL EnableMenuItem(
+    HMENU hMenu,         // handle to menu
+    UINT uIDEnableItem,  // menu item to enable, disable, or gray
+    UINT uEnable         // menu item flags
+);
+alias STDWIN.EnableScrollBar EnableScrollBar;
+BOOL EnableWindow(          
+    HWND hWnd,
+    BOOL bEnable
+);
+BOOL EndDeferWindowPos(
+    HDWP hWinPosInfo   // handle to internal structure
+);
+int EndDoc(HDC hDC);
+int EndPage(HDC hDC);
+alias STDWIN.EndPaint EndPaint;
+BOOL EnumDisplayMonitors(
+    HDC hdc,                   // handle to display DC
+    LPCRECT lprcClip,          // clipping rectangle
+    MONITORENUMPROC lpfnEnum,  // callback function
+    LPARAM dwData              // data for callback function
+);
+int EnumFontFamiliesExA(
+    HDC hdc,              // handle to device context
+    LPLOGFONTA lpLogfont,  // pointer to logical font information
+    FONTENUMEXPROC lpEnumFontFamExProc,
+                    // pointer to callback function
+    LPARAM lParam,        // application-supplied data
+    DWORD dwFlags         // reserved; must be zero
+);
+int EnumFontFamiliesExW(
+    HDC hdc,              // handle to device context
+    LPLOGFONTW lpLogfont,  // pointer to logical font information
+    FONTENUMEXPROC lpEnumFontFamExProc,
+                    // pointer to callback function
+    LPARAM lParam,        // application-supplied data
+    DWORD dwFlags         // reserved; must be zero
+);
+
+int EnumFontFamiliesA(
+    HDC hdc,             // handle to device control
+    LPCSTR lpszFamily,  // pointer to family-name string
+    FONTENUMPROC lpEnumFontFamProc,
+                   // pointer to callback function
+    LPARAM lParam        // pointer to application-supplied data
+);
+int EnumFontFamiliesW(
+    HDC hdc,             // handle to device control
+    LPCWSTR lpszFamily,  // pointer to family-name string
+    FONTENUMPROC lpEnumFontFamProc,
+                   // pointer to callback function
+    LPARAM lParam        // pointer to application-supplied data
+);
+BOOL EnumSystemLanguageGroupsA(
+    LANGUAGEGROUP_ENUMPROC pLangGroupEnumProc, // callback function
+    DWORD dwFlags,                             // language groups
+    LONG_PTR  lParam                           // callback parameter
+);
+BOOL EnumSystemLanguageGroupsW(
+    LANGUAGEGROUP_ENUMPROC pLangGroupEnumProc, // callback function
+    DWORD dwFlags,                             // language groups
+    LONG_PTR  lParam                           // callback parameter
+);
+BOOL EnumSystemLocalesA(
+    LOCALE_ENUMPROC lpLocaleEnumProc, // callback function
+    DWORD dwFlags                     // locales
+);
+BOOL EnumSystemLocalesW(
+    LOCALE_ENUMPROC lpLocaleEnumProc, // callback function
+    DWORD dwFlags                     // locales
+);
+BOOL EqualRect(
+    RECT *lprc1,  // pointer to structure with first rectangle
+    RECT *lprc2   // pointer to structure with second rectangle
+);
+BOOL EqualRgn(
+    HRGN hSrcRgn1,  // handle to first region
+    HRGN hSrcRgn2   // handle to second region
+);
+DWORD ExpandEnvironmentStringsA(
+    LPCSTR lpSrc, // pointer to string with environment variables
+    LPSTR lpDst,  // pointer to string with expanded environment
+             // variables
+    DWORD nSize    // maximum characters in expanded string
+);
+DWORD ExpandEnvironmentStringsW(
+    LPCWSTR lpSrc, // pointer to string with environment variables
+    LPWSTR lpDst,  // pointer to string with expanded environment
+             // variables
+    DWORD nSize    // maximum characters in expanded string
+);
+BOOL ExtTextOutA(
+    HDC hdc,          // handle to device context
+    int X,            // x-coordinate of reference point
+    int Y,            // y-coordinate of reference point
+    UINT fuOptions,   // text-output options
+    RECT *lprc, // optional clipping and/or opaquing rectangle
+    LPCSTR lpString, // points to string
+    UINT cbCount,     // number of characters in string
+    INT *lpDx   // pointer to array of intercharacter spacing
+                // values
+);
+BOOL ExtTextOutW(
+    HDC hdc,          // handle to device context
+    int X,            // x-coordinate of reference point
+    int Y,            // y-coordinate of reference point
+    UINT fuOptions,   // text-output options
+    RECT *lprc, // optional clipping and/or opaquing rectangle
+    LPCWSTR lpString, // points to string
+    UINT cbCount,     // number of characters in string
+    INT *lpDx   // pointer to array of intercharacter spacing
+                // values
+);
+UINT ExtractIconExA(
+    LPCSTR lpszFile,
+    int nIconIndex,
+    HICON *phiconLarge,
+    HICON *phiconSmall,
+    UINT nIcons
+);
+UINT ExtractIconExW(
+    LPCWSTR lpszFile,
+    int nIconIndex,
+    HICON *phiconLarge,
+    HICON *phiconSmall,
+    UINT nIcons
+);
+alias STDWIN.FillRect FillRect;
+HRSRC FindResourceA(
+    HMODULE hModule, // module handle
+    LPCSTR lpName,  // pointer to resource name
+    LPCSTR lpType   // pointer to resource type
+);
+HRSRC FindResourceW(
+    HMODULE hModule, // module handle
+    LPCWSTR lpName,  // pointer to resource name
+    LPCWSTR lpType   // pointer to resource type
+);
+HWND FindWindowA(
+    LPCSTR lpClassName,  // pointer to class name
+    LPCSTR lpWindowName  // pointer to window name
+);
+HWND FindWindowW(
+    LPCWSTR lpClassName,  // pointer to class name
+    LPCWSTR lpWindowName  // pointer to window name
+);
+DWORD FormatMessageA(
+    DWORD dwFlags,      // source and processing options
+    LPCVOID lpSource,   // pointer to  message source
+    DWORD dwMessageId,  // requested message identifier
+    DWORD dwLanguageId, // language identifier for requested message
+    LPSTR lpBuffer,    // pointer to message buffer
+    DWORD nSize,        // maximum size of message buffer
+    //  va_list *Arguments  // pointer to array of message inserts
+    void* Arguments
+);
+DWORD FormatMessageW(
+    DWORD dwFlags,      // source and processing options
+    LPCVOID lpSource,   // pointer to  message source
+    DWORD dwMessageId,  // requested message identifier
+    DWORD dwLanguageId, // language identifier for requested message
+    LPWSTR lpBuffer,    // pointer to message buffer
+    DWORD nSize,        // maximum size of message buffer
+    //  va_list *Arguments  // pointer to array of message inserts
+    void* Arguments
+);
+alias STDWIN.FreeLibrary FreeLibrary;
+DWORD GdiSetBatchLimit(
+    DWORD dwLimit   // batch limit
+);
+UINT GetACP();
+HWND GetActiveWindow();
+COLORREF GetBkColor(
+    HDC hdc   // handle of device context
+);
+HWND GetCapture();
+BOOL GetCaretPos(
+    LPPOINT lpPoint   // address of structure to receive coordinates
+);
+BOOL GetCharABCWidthsA(
+    HDC hdc,         // handle to device context
+    UINT uFirstChar, // first character in range to query
+    UINT uLastChar,  // last character in range to query
+    LPABC lpabc      // pointer to character-width structure
+);
+BOOL GetCharABCWidthsW(
+    HDC hdc,         // handle to device context
+    UINT uFirstChar, // first character in range to query
+    UINT uLastChar,  // last character in range to query
+    LPABC lpabc      // pointer to character-width structure
+);
+
+BOOL GetCharWidthA(
+    HDC hdc,         // handle to device context
+    UINT iFirstChar, // first character in range to query
+    UINT iLastChar,  // last character in range to query
+    LPINT lpBuffer   // pointer to buffer for widths
+);
+BOOL GetCharWidthW(
+    HDC hdc,         // handle to device context
+    UINT iFirstChar, // first character in range to query
+    UINT iLastChar,  // last character in range to query
+    LPINT lpBuffer   // pointer to buffer for widths
+);
+DWORD GetCharacterPlacementA(
+    HDC hdc,           // handle to device context
+    LPCSTR lpString,  // pointer to string
+    int nCount,        // number of characters in string
+    int nMaxExtent,    // maximum extent for displayed string
+    LPGCP_RESULTS lpResults,
+                     // pointer to buffer for placement result
+    DWORD dwFlags      // placement flags
+);
+DWORD GetCharacterPlacementW(
+    HDC hdc,           // handle to device context
+    LPCWSTR lpString,  // pointer to string
+    int nCount,        // number of characters in string
+    int nMaxExtent,    // maximum extent for displayed string
+    LPGCP_RESULTS lpResults,
+                     // pointer to buffer for placement result
+    DWORD dwFlags      // placement flags
+);
+BOOL GetClassInfoA(
+    HINSTANCE hInstance,    // handle of application instance
+    LPCSTR lpClassName,    // address of class name string
+    LPWNDCLASSA lpWndClass   // address of structure for class data
+);
+BOOL GetClassInfoW(
+    HINSTANCE hInstance,    // handle of application instance
+    LPCWSTR lpClassName,    // address of class name string
+    LPWNDCLASSW lpWndClass   // address of structure for class data
+);
+alias STDWIN.GetClientRect GetClientRect;
+alias STDWIN.GetClipBox GetClipBox;
+alias STDWIN.GetClipRgn GetClipRgn;
+HANDLE GetClipboardData(
+    UINT uFormat   // clipboard format
+);
+int GetClipboardFormatNameA(
+    UINT format,            // clipboard format to retrieve
+    LPSTR lpszFormatName,  // address of buffer for name
+    int cchMaxCount         // length of name string in characters
+);
+int GetClipboardFormatNameW(
+    UINT format,            // clipboard format to retrieve
+    LPWSTR lpszFormatName,  // address of buffer for name
+    int cchMaxCount         // length of name string in characters
+);
+BOOL GetComboBoxInfo(
+    HWND hwndCombo,
+    PCOMBOBOXINFO pcbi
+);
+alias STDWIN.GetCurrentObject GetCurrentObject;
+DWORD GetCurrentProcessId();
+DWORD GetCurrentThreadId();
+HCURSOR GetCursor();
+BOOL GetCursorPos(
+    LPPOINT lpPoint   // address of structure for cursor position
+);
+alias STDWIN.GetDC GetDC;
+alias STDWIN.GetDCEx GetDCEx;
+UINT GetDIBColorTable(
+    HDC hdc,          // handle to device context whose DIB is of
+                // interest
+    UINT uStartIndex, // color table index of first entry to retrieve
+    UINT cEntries,    // number of color table entries to retrieve
+    RGBQUAD *pColors  // pointer to buffer that receives color table
+                // entries
+);
+int GetDIBits(
+    HDC hdc,           // handle to device context
+    HBITMAP hbmp,      // handle to bitmap
+    UINT uStartScan,   // first scan line to set in destination bitmap
+    UINT cScanLines,   // number of scan lines to copy
+    LPVOID lpvBits,    // address of array for bitmap bits
+    LPBITMAPINFO lpbi, // address of structure with bitmap data
+    UINT uUsage        // RGB or palette index
+);
+HWND GetDesktopWindow();
+alias STDWIN.GetDeviceCaps GetDeviceCaps;
+int GetDialogBaseUnits();
+alias STDWIN.GetDlgItem GetDlgItem;
+int GetDoubleClickTime();
+alias STDWIN.GetFocus GetFocus;
+DWORD GetFontLanguageInfo(
+    HDC hdc  // handle to a device context
+);
+BOOL GetGUIThreadInfo(
+    DWORD idThread,
+    LPGUITHREADINFO lpgui
+);
+BOOL GetIconInfo(
+    HICON hIcon,          // icon handle
+    PICONINFO piconinfo   // address of icon structure
+);
+int GetKeyNameTextA(
+    LONG lParam,      // second parameter of keyboard message
+    LPSTR lpString,  // pointer to buffer for key name
+    int nSize         // maximum length of key-name string length
+);
+int GetKeyNameTextW(
+    LONG lParam,      // second parameter of keyboard message
+    LPWSTR lpString,  // pointer to buffer for key name
+    int nSize         // maximum length of key-name string length
+);
+HKL GetKeyboardLayout(
+    DWORD dwLayout  // thread identifier
+);
+SHORT GetKeyState(
+    int nVirtKey   // virtual-key code
+);
+UINT GetKeyboardLayoutList(
+    int nBuff,       // size of buffer in array element
+    HKL *lpList  // buffer for keyboard layout handles
+);
+BOOL GetKeyboardState(
+    PBYTE lpKeyState   // pointer to array to receive status data
+);
+HWND GetLastActivePopup(HWND hWnd);
+DWORD GetLastError();
+DWORD GetLayout(
+    HDC hdc      // handle to DC
+);
+int GetLocaleInfoA(
+    LCID Locale,      // locale identifier
+    LCTYPE LCType,    // type of information
+    LPSTR lpLCData,  // address of buffer for information
+    int cchData       // size of buffer
+);
+int GetLocaleInfoW(
+    LCID Locale,      // locale identifier
+    LCTYPE LCType,    // type of information
+    LPWSTR lpLCData,  // address of buffer for information
+    int cchData       // size of buffer
+);
+HMENU GetMenu(
+    HWND hWnd  // handle to window
+);
+BOOL GetMenuBarInfo(
+    HWND hwnd,
+    LONG idObject,
+    LONG idItem,
+    PMENUBARINFO pmbi
+);
+UINT GetMenuDefaultItem(          
+    HMENU hMenu,
+    UINT fByPos,
+    UINT gmdiFlags
+);
+BOOL GetMenuInfo(          
+    HMENU hmenu,
+    LPCMENUINFO lpcmi
+);
+int GetMenuItemCount(HMENU hMenu);
+BOOL GetMenuItemInfoA(
+    HMENU hMenu,
+    UINT uItem,
+    BOOL fByPosition,
+    LPMENUITEMINFO lpmii
+);
+BOOL GetMenuItemInfoW(
+    HMENU hMenu,
+    UINT uItem,
+    BOOL fByPosition,
+    LPMENUITEMINFO lpmii
+);
+BOOL GetMenuItemRect(
+    HWND hWnd,       
+    HMENU hMenu,     
+    UINT uItem,      
+    LPRECT lprcItem  
+);
+alias STDWIN.GetMessageA GetMessageA;
+BOOL GetMessageW(
+    LPMSG lpMsg,         // address of structure with message
+    HWND hWnd,           // handle of window
+    UINT wMsgFilterMin,  // first message
+    UINT wMsgFilterMax   // last message
+);
+DWORD GetMessagePos();
+LONG GetMessageTime();
+DWORD GetModuleFileNameA(
+    HMODULE hModule,    // handle to module to find filename for
+    LPSTR lpFilename,  // pointer to buffer to receive module path
+    DWORD nSize         // size of buffer, in characters
+);
+DWORD GetModuleFileNameW(
+    HMODULE hModule,    // handle to module to find filename for
+    LPWSTR lpFilename,  // pointer to buffer to receive module path
+    DWORD nSize         // size of buffer, in characters
+);
+alias STDWIN.GetModuleHandleA GetModuleHandleA;
+HMODULE GetModuleHandleW(
+  LPCWSTR lpModuleName
+);
+BOOL GetMonitorInfoA(
+    HMONITOR hMonitor,  // handle to display monitor
+    LPMONITORINFO lpmi  // pointer to display monitor information
+);
+BOOL GetMonitorInfoW(
+    HMONITOR hMonitor,  // handle to display monitor
+    LPMONITORINFO lpmi  // pointer to display monitor information
+);
+UINT GetNearestPaletteIndex(
+    HPALETTE hpal,     // handle of logical color palette
+    COLORREF crColor   // color to be matched
+);
+alias STDWIN.GetObjectA GetObjectA;
+alias STDWIN.GetObjectW GetObjectW;
+BOOL GetOpenFileNameA(
+    OPENFILENAMEA* lpofn   // address of structure with initialization data
+);
+BOOL GetOpenFileNameW(
+    OPENFILENAMEW* lpofn   // address of structure with initialization data
+);
+UINT GetPaletteEntries(
+  HPALETTE hpal,        // handle to logical palette
+  UINT iStartIndex,     // first entry to retrieve
+  UINT nEntries,        // number of entries to retrieve
+  LPPALETTEENTRY lppe   // array that receives entries
+);
+HWND GetParent(
+    HWND hWnd   // handle to child window
+);
+
+COLORREF GetPixel(
+    HDC hdc,   // handle to device context
+    int XPos,  // x-coordinate of pixel
+    int nYPos  // y-coordinate of pixel
+);
+alias STDWIN.GetProcAddress GetProcAddress;
+HANDLE GetProcessHeap();
+DWORD GetProfileStringA(
+    LPCSTR lpAppName,        // address of section name
+    LPCSTR lpKeyName,        // address of key name
+    LPCSTR lpDefault,        // address of default string
+    LPSTR lpReturnedString,  // address of destination buffer
+    DWORD nSize               // size of destination buffer
+);
+DWORD GetProfileStringW(
+    LPCWSTR lpAppName,        // address of section name
+    LPCWSTR lpKeyName,        // address of key name
+    LPCWSTR lpDefault,        // address of default string
+    LPWSTR lpReturnedString,  // address of destination buffer
+    DWORD nSize               // size of destination buffer
+);
+int GetROP2(
+    HDC hdc   // handle of device context
+);
+int GetRandomRgn(
+    HDC  hdc,    // handle to DC
+    HRGN hrgn,   // handle to region
+    INT  iNum    // must be SYSRGN
+);
+DWORD GetRegionData(
+    HRGN hRgn,            // handle to region
+    DWORD dwCount,        // size of buffer containing region data
+    LPRGNDATA lpRgnData   // pointer to region data
+);
+int GetRgnBox(
+    HRGN hrgn,   // handle to a region
+    LPRECT lprc  // pointer that receives bounding rectangle
+);
+BOOL GetSaveFileNameA(
+    OPENFILENAMEA* lpofn   // address of structure with initialization data
+);
+BOOL GetSaveFileNameW(
+    OPENFILENAME* lpofn   // address of structure with initialization data
+);
+BOOL GetScrollInfo(
+    HWND hwnd,         // handle to window with scroll bar
+    int fnBar,         // scroll bar flag
+    LPSCROLLINFO lpsi  // pointer to structure for scroll parameters
+);
+alias STDWIN.GetStockObject GetStockObject;
+DWORD GetSysColor(
+    int nIndex   // display element
+);
+HBRUSH GetSysColorBrush(
+    int nIndex  // system color index
+);
+HMENU GetSystemMenu(
+    HWND hWnd,    // handle to window to own window menu
+    BOOL bRevert  // reset flag
+);
+int GetSystemMetrics(
+    int nIndex   // system metric or configuration setting to retrieve
+);
+UINT GetSystemPaletteEntries(
+    HDC hdc,              // handle of device context
+    UINT iStartIndex,     // index of first entry to be retrieved
+    UINT nEntries,        // number of entries to be retrieved
+    LPPALETTEENTRY lppe   // array receiving system-palette entries
+);
+int GetTextCharset(
+    HDC hdc  // handle to DC
+);
+COLORREF GetTextColor(
+    HDC hdc   // handle to device context
+);
+BOOL GetTextExtentPoint32A(
+    HDC hdc,           // handle to device context
+    LPCSTR lpString,  // pointer to text string
+    int cbString,      // number of characters in string
+    LPSIZE lpSize      // pointer to structure for string size
+);
+BOOL GetTextExtentPoint32W(
+    HDC hdc,           // handle to device context
+    LPCWSTR lpString,  // pointer to text string
+    int cbString,      // number of characters in string
+    LPSIZE lpSize      // pointer to structure for string size
+);
+alias STDWIN.GetTextMetricsA GetTextMetricsA;
+BOOL GetTextMetricsW(
+    HDC hdc,            // handle to device context
+    TEXTMETRICW* lptm   // pointer to text metrics structure
+);
+DWORD GetTickCount();
+alias STDWIN.GetUpdateRect GetUpdateRect;
+alias STDWIN.GetUpdateRgn GetUpdateRgn;
+DWORD GetVersion();
+BOOL GetVersionExA(
+    LPOSVERSIONINFOA lpVersionInformation   // pointer to version information structure
+);
+BOOL GetVersionExW(
+    LPOSVERSIONINFOW lpVersionInformation   // pointer to version information structure
+);
+HWND GetWindow(
+    HWND hWnd,  // handle to original window
+    UINT uCmd   // relationship flag
+);
+LONG GetWindowLongA(HWND hWnd, int nIndex);
+LONG GetWindowLongW(HWND hWnd, int nIndex);
+BOOL GetWindowPlacement(          
+    HWND hWnd,
+    WINDOWPLACEMENT *lpwndpl
+);
+alias STDWIN.GetWindowRect GetWindowRect;
+alias STDWIN.GetWindowRgn GetWindowRgn;
+int GetWindowTextA(
+  HWND hWnd,        // handle to window or control with text
+  LPSTR lpString,  // address of buffer for text
+  int nMaxCount     // maximum number of characters to copy
+);
+int GetWindowTextW(
+  HWND hWnd,        // handle to window or control with text
+  LPWSTR lpString,  // address of buffer for text
+  int nMaxCount     // maximum number of characters to copy
+);
+int GetWindowTextLengthA(HWND hWnd);
+int GetWindowTextLengthW(HWND hWnd);
+DWORD GetWindowThreadProcessId(
+  HWND hWnd,             // handle to window
+  LPDWORD lpdwProcessId  // address of variable for process identifier
+);
+HGLOBAL GlobalAlloc(UINT uFlags, SIZE_T dwBytes);
+HGLOBAL GlobalFree(HGLOBAL hMem);
+LPVOID GlobalLock(HGLOBAL hMem);
+SIZE_T GlobalSize(HGLOBAL hMem);
+BOOL GlobalUnlock(HGLOBAL hMem);
+BOOL GradientFill(
+    HDC hdc,
+    PTRIVERTEX pVertex,
+    DWORD dwNumVertex,
+    PVOID pMesh,
+    DWORD dwNumMesh,
+    DWORD dwMode
+);
+LPVOID HeapAlloc(
+    HANDLE hHeap,  // handle to the private heap block
+    DWORD dwFlags, // heap allocation control flags
+    DWORD dwBytes  // number of bytes to allocate
+);
+BOOL HeapFree(
+    HANDLE hHeap,  // handle to the heap
+    DWORD dwFlags, // heap freeing flags
+    LPVOID lpMem   // pointer to the memory to free
+);
+alias STDWIN.HideCaret HideCaret;
+int ImageList_Add(
+    HIMAGELIST himl,
+    HBITMAP hbmImage,
+    HBITMAP hbmMask
+);
+int ImageList_AddMasked(
+    HIMAGELIST himl,
+    HBITMAP hbmImage,
+    COLORREF crMask
+     );
+HIMAGELIST ImageList_Create(
+    int cx,
+    int cy,
+    UINT flags,
+    int cInitial,
+    int cGrow
+);
+BOOL ImageList_Destroy(
+    HIMAGELIST himl
+);
+HICON ImageList_GetIcon(
+    HIMAGELIST himl,
+    int i,
+    UINT flags
+);
+BOOL ImageList_GetIconSize(
+    HIMAGELIST himl,
+    int *cx,
+    int *cy
+);
+int ImageList_GetImageCount(
+    HIMAGELIST himl
+);
+BOOL ImageList_Remove(
+    HIMAGELIST himl,
+    int i
+);
+BOOL ImageList_Replace(
+    HIMAGELIST himl,
+    int i,
+    HBITMAP hbmImage,
+    HBITMAP hbmMask
+);
+int ImageList_ReplaceIcon(
+    HIMAGELIST himl,
+    int i,
+    HICON hicon
+);
+BOOL ImageList_SetIconSize(
+    HIMAGELIST himl,
+    int cx,
+    int cy
+);
+HIMC ImmAssociateContext(
+    HWND hWnd,
+    HIMC hIMC
+);
+HIMC ImmCreateContext();
+int ImmDestroyContext(HIMC hIMC );
+BOOL ImmGetCompositionFontA(
+    HIMC hIMC,
+    LPLOGFONTA lplf
+);
+BOOL ImmGetCompositionFontW(
+    HIMC hIMC,
+    LOGFONTW* lplf
+);
+LONG ImmGetCompositionStringA(
+    HIMC hIMC,      
+    DWORD dwIndex,  
+    LPVOID lpBuf,   
+    DWORD dwBufLen  
+);
+LONG ImmGetCompositionStringW(
+    HIMC hIMC,      
+    DWORD dwIndex,  
+    LPVOID lpBuf,   
+    DWORD dwBufLen  
+);
+HIMC ImmGetContext(
+    HWND hWnd
+);
+BOOL ImmGetConversionStatus(
+    HIMC hIMC,             
+    LPDWORD lpfdwConversion,   
+    LPDWORD lpfdwSentence  
+);
+HWND ImmGetDefaultIMEWnd(HWND hWnd );
+BOOL ImmGetOpenStatus(
+    HIMC hIMC  
+);
+BOOL ImmReleaseContext(
+    HWND hWnd,
+    HIMC hIMC
+);
+BOOL ImmSetCompositionFontA(
+    HIMC hIMC,
+    LOGFONTA* lplf
+);
+BOOL ImmSetCompositionFontW(
+    HIMC hIMC,
+    LOGFONTW* lplf
+);
+BOOL ImmSetCompositionWindow(
+    HIMC hIMC,
+    LPCOMPOSITIONFORM lpCompForm
+);
+BOOL ImmSetConversionStatus(
+    HIMC hIMC,             
+    DWORD fdwConversion,   
+    DWORD fdwSentence      
+);
+BOOL ImmSetOpenStatus(
+    HIMC hIMC,  
+    BOOL fOpen  
+);
+void InitCommonControls();
+BOOL InitCommonControlsEx(
+    LPINITCOMMONCONTROLSEX lpInitCtrls
+);
+BOOL InsertMenuA(
+  HMENU hMenu,      // handle to menu
+  UINT uPosition,   // menu item that new menu item precedes
+  UINT uFlags,      // menu item flags
+  UINT uIDNewItem,  // menu item identifier or handle to drop-down 
+                    // menu or submenu
+  LPCSTR lpNewItem // menu item content
+);
+BOOL InsertMenuW(
+  HMENU hMenu,      // handle to menu
+  UINT uPosition,   // menu item that new menu item precedes
+  UINT uFlags,      // menu item flags
+  UINT uIDNewItem,  // menu item identifier or handle to drop-down 
+                    // menu or submenu
+  LPCWSTR lpNewItem // menu item content
+);
+
+BOOL InsertMenuItemA(
+  HMENU hMenu,          
+  UINT uItem,           
+  BOOL fByPosition,     
+  MENUITEMINFOA* lpmii  
+);
+BOOL InsertMenuItemW(
+  HMENU hMenu,          
+  UINT uItem,           
+  BOOL fByPosition,     
+  MENUITEMINFOW* lpmii  
+);
+BOOL IntersectRect(
+    LPRECT lprcDst,        // pointer to structure for intersection
+    RECT *lprcSrc1,  // pointer to structure with first rectangle
+    RECT *lprcSrc2   // pointer to structure with second rectangle
+);
+LONG InterlockedIncrement(
+    LPLONG lpAddend   // pointer to the variable to increment
+);
+LONG InterlockedDecrement(
+    LPLONG lpAddend   // address of the variable to decrement
+);
+alias STDWIN.InvalidateRect InvalidateRect;
+alias STDWIN.InvalidateRgn InvalidateRgn;
+BOOL IsDBCSLeadByte(
+    BYTE TestChar   // character to test
+);
+BOOL IsIconic(
+    HWND hWnd   // handle to window
+);
+BOOL IsWindow(
+    HWND hWnd   // handle to window
+);
+BOOL IsWindowEnabled(HWND hWnd);
+BOOL IsWindowVisible(HWND hWnd);
+BOOL IsZoomed(HWND hWnd);
+BOOL KillTimer(
+    HWND hWnd,      // handle of window that installed timer
+    UINT uIDEvent   // timer identifier
+);
+alias STDWIN.LineTo LineTo;
+HBITMAP LoadBitmapA(
+    HINSTANCE hInstance,  // handle to application instance
+    LPCSTR lpBitmapName  // name of bitmap resource
+);
+HBITMAP LoadBitmapW(
+    HINSTANCE hInstance,  // handle to application instance
+    LPCWSTR lpBitmapName  // name of bitmap resource
+);
+alias STDWIN.LoadCursorA LoadCursorA;
+alias STDWIN.LoadCursorW LoadCursorW;
+alias STDWIN.LoadIconA LoadIconA;
+alias STDWIN.LoadIconW LoadIconW;
+HANDLE LoadImageA(
+    HINSTANCE hinst,   // handle of the instance containing the image
+    LPCSTR lpszName,  // name or identifier of image
+    UINT uType,        // type of image
+    int cxDesired,     // desired width
+    int cyDesired,     // desired height
+    UINT fuLoad        // load flags
+);
+HANDLE LoadImageW(
+    HINSTANCE hinst,   // handle of the instance containing the image
+    LPCWSTR lpszName,  // name or identifier of image
+    UINT uType,        // type of image
+    int cxDesired,     // desired width
+    int cyDesired,     // desired height
+    UINT fuLoad        // load flags
+);
+alias STDWIN.LoadLibraryA LoadLibraryA;
+HINSTANCE LoadLibraryW(wchar* lpLibFileName );
+HGLOBAL LoadResource(
+    HMODULE hModule, // resource-module handle
+    HRSRC hResInfo   // resource handle
+);
+int LoadStringA(          
+    HINSTANCE hInstance,
+    UINT uID,
+    LPSTR lpBuffer,
+    int nBufferMax
+);
+int LoadStringW(          
+    HINSTANCE hInstance,
+    UINT uID,
+    LPWSTR lpBuffer,
+    int nBufferMax
+);
+HLOCAL LocalFree(
+    HLOCAL hMem   // handle to local memory object
+);
+LPVOID LockResource(
+    HGLOBAL hResData   // handle to resource to lock
+);
+UINT MapVirtualKeyA(
+    UINT uCode,     // virtual-key code or scan code
+    UINT uMapType   // translation to perform
+);
+UINT MapVirtualKeyW(
+    UINT uCode,     // virtual-key code or scan code
+    UINT uMapType   // translation to perform
+);
+alias STDWIN.MapWindowPoints MapWindowPoints;
+BOOL MessageBeep(
+    UINT uType   // sound type
+);
+alias STDWIN.MessageBoxA MessageBoxA;
+int MessageBoxW(
+    HWND hWnd,          // handle of owner window
+    LPCWSTR lpText,     // address of text in message box
+    LPCWSTR lpCaption,  // address of title of message box
+    UINT uType          // style of message box
+);
+HMONITOR MonitorFromWindow(
+    HWND hwnd,       // handle to a window
+    DWORD dwFlags    // flags if no monitor intersects the window
+);
+alias STDWIN.MoveToEx MoveToEx;
+DWORD MsgWaitForMultipleObjectsEx(
+    DWORD nCount,          // number of handles in handle array
+    LPHANDLE pHandles,     // pointer to an object-handle array
+    DWORD dwMilliseconds,  // time-out interval in milliseconds
+    DWORD dwWakeMask,      // type of input events to wait for
+    DWORD dwFlags          // wait flags
+);
+alias STDWIN.MultiByteToWideChar MultiByteToWideChar;
+void NotifyWinEvent(
+    DWORD event,
+    HWND hwnd,
+    LONG idObject,
+    LONG idChild
+);
+int OffsetRgn(
+    HRGN hrgn,     // handle to region
+    int nXOffset,  // offset along x-axis
+    int nYOffset   // offset along y-axis
+);
+WINOLEAPI OleInitialize(
+    LPVOID pvReserved  //Reserved; must be NULL.
+);
+void OleUninitialize();
+BOOL OpenClipboard(          
+    HWND hWndNewOwner
+);
+void OutputDebugStringA(
+    LPCSTR lpOutputString
+);
+void OutputDebugStringW(
+    LPCWSTR lpOutputString
+);
+BOOL PatBlt(
+    HDC hdc,     // handle to device context
+    int nXLeft,  // x-coord. of upper-left corner of rect. to be filled
+    int nYLeft,  // y-coord. of upper-left corner of rect. to be filled
+    int nWidth,  // width of rectangle to be filled
+    int nHeight, // height of rectangle to be filled
+    DWORD dwRop  // raster operation code
+);
+alias STDWIN.PeekMessageA PeekMessageA;
+BOOL PeekMessageW(
+    LPMSG lpMsg,         // pointer to structure for message
+    HWND hWnd,           // handle to window
+    UINT wMsgFilterMin,  // first message
+    UINT wMsgFilterMax,  // last message
+    UINT wRemoveMsg      // removal flags
+);
+BOOL Pie(
+    HDC hdc,         // handle to device context
+    int nLeftRect,   // x-coord of bounding rectangle's upper-left corner
+    int nTopRect,    // y-coord of bounding rectangle's upper-left corner
+    int nRightRect,  // x-coord of bounding rectangle's lower-right corner
+    int nBottomRect, // y-coord of bounding rectangle's lower-right corner
+    int nXRadial1,   // x-coord of first radial's endpoint
+    int nYRadial1,   // y-coord of first radial's endpoint
+    int nXRadial2,   // x-coord of second radial's endpoint
+    int nYRadial2    // y-coord of second radial's endpoint
+);
+BOOL Polygon(
+    HDC hdc,                // handle to device context
+    POINT *lpPoints,  // pointer to polygon's vertices
+    int nCount              // count of polygon's vertices
+);
+BOOL Polyline(
+    HDC hdc,            // handle to device context
+    POINT *lppt,  // pointer to array containing endpoints
+    int cPoints         // number of points in the array
+);
+BOOL PostMessageA(          
+    HWND hWnd,
+    UINT Msg,
+    WPARAM_I wParam,
+    LPARAM lParam
+);
+BOOL PostMessageW(          
+    HWND hWnd,
+    UINT Msg,
+    WPARAM_I wParam,
+    LPARAM lParam
+);
+BOOL PostThreadMessageA(
+    DWORD idThread,
+    UINT Msg,
+    WPARAM_I wParam,
+    LPARAM lParam
+);
+BOOL PostThreadMessageW(
+    DWORD idThread,
+    UINT Msg,
+    WPARAM_I wParam,
+    LPARAM lParam
+);
+BOOL PrintDlgA(          
+    LPPRINTDLGA lppd
+);
+BOOL PrintDlgW(          
+    LPPRINTDLGW lppd
+);
+BOOL PtInRect(
+    RECT *lprc,  // rectangle
+    POINT pt           // point
+);
+BOOL PtInRegion(
+    HRGN hrgn,  // handle to region
+    int X,      // x-coordinate of point
+    int Y       // y-coordinate of point
+);
+UINT RealizePalette(
+    HDC hdc   // handle of device context
+);
+BOOL RectInRegion(
+    HRGN hrgn,         // handle to region
+    RECT *lprc   // pointer to rectangle
+);
+BOOL Rectangle(
+    HDC hdc,         // handle to device context
+    int nLeftRect,   // x-coord of bounding rectangle's upper-left corner
+    int nTopRect,    // y-coord of bounding rectangle's upper-left corner
+    int nRightRect,  // x-coord of bounding rectangle's lower-right corner
+    int nBottomRect  // y-coord of bounding rectangle's lower-right corner
+);
+alias STDWIN.RedrawWindow RedrawWindow;
+LONG RegCloseKey(
+  HKEY hKey
+);
+LONG RegEnumKeyExA(
+  HKEY hKey,
+  DWORD dwIndex,
+  LPSTR lpName,
+  LPDWORD lpcName,
+  LPDWORD lpReserved,
+  LPSTR lpClass,
+  LPDWORD lpcClass,
+  PFILETIME lpftLastWriteTime
+);
+LONG RegEnumKeyExW(
+  HKEY hKey,
+  DWORD dwIndex,
+  LPWSTR lpName,
+  LPDWORD lpcName,
+  LPDWORD lpReserved,
+  LPWSTR lpClass,
+  LPDWORD lpcClass,
+  PFILETIME lpftLastWriteTime
+);
+LONG RegOpenKeyExA(
+  HKEY hKey,
+  LPSTR lpSubKey,
+  DWORD ulOptions,
+  REGSAM samDesired,
+  PHKEY phkResult
+);
+LONG RegOpenKeyExW(
+  HKEY hKey,
+  LPWSTR lpSubKey,
+  DWORD ulOptions,
+  REGSAM samDesired,
+  PHKEY phkResult
+);
+
+LONG RegQueryInfoKeyA(
+  HKEY hKey,
+  LPSTR lpClass,
+  LPDWORD lpcClass,
+  LPDWORD lpReserved,
+  LPDWORD lpcSubKeys,
+  LPDWORD lpcMaxSubKeyLen,
+  LPDWORD lpcMaxClassLen,
+  LPDWORD lpcValues,
+  LPDWORD lpcMaxValueNameLen,
+  LPDWORD lpcMaxValueLen,
+  LPDWORD lpcbSecurityDescriptor,
+  PFILETIME lpftLastWriteTime
+);
+LONG RegQueryInfoKeyW(
+  HKEY hKey,
+  LPWSTR lpClass,
+  LPDWORD lpcClass,
+  LPDWORD lpReserved,
+  LPDWORD lpcSubKeys,
+  LPDWORD lpcMaxSubKeyLen,
+  LPDWORD lpcMaxClassLen,
+  LPDWORD lpcValues,
+  LPDWORD lpcMaxValueNameLen,
+  LPDWORD lpcMaxValueLen,
+  LPDWORD lpcbSecurityDescriptor,
+  PFILETIME lpftLastWriteTime
+);
+
+LONG RegQueryValueExA(
+  HKEY hKey,
+  LPCSTR lpValueName,
+  LPDWORD lpReserved,
+  LPDWORD lpType,
+  LPBYTE lpData,
+  LPDWORD lpcbData
+);
+LONG RegQueryValueExW(
+  HKEY hKey,
+  LPCWSTR lpValueName,
+  LPDWORD lpReserved,
+  LPDWORD lpType,
+  LPBYTE lpData,
+  LPDWORD lpcbData
+);
+
+ATOM RegisterClassA(          
+    WNDCLASSA *lpWndClass
+);
+ATOM RegisterClassW(          
+    WNDCLASSW *lpWndClass
+);
+UINT RegisterClipboardFormatA(          
+    LPCSTR lpszFormat
+);
+UINT RegisterClipboardFormatW(          
+    LPCWSTR lpszFormat
+);
+UINT RegisterWindowMessageA(          
+    LPCSTR lpString
+);
+UINT RegisterWindowMessageW(          
+    LPCWSTR lpString
+);
+BOOL ReleaseCapture();
+alias STDWIN.ReleaseDC ReleaseDC;
+BOOL RemoveMenu(          
+    HMENU hMenu,
+    UINT uPosition,
+    UINT uFlags
+);
+BOOL RestoreDC(
+    HDC hdc,       // handle to DC
+    int nSavedDC   // restore state
+);
+alias STDWIN.RoundRect RoundRect;
+
+// basic
+void RtlMoveMemory(void* Destination, void* Source, DWORD Length);
+// extends
+void RtlMoveMemory(int Destination, void* Source, DWORD Length);
+void RtlMoveMemory(void* Destination, int Source, DWORD Length);
+void RtlMoveMemory(int Destination, int Source, DWORD Length);
+
+LPITEMIDLIST SHBrowseForFolderA(          
+    BROWSEINFOA* lpbi
+);
+LPITEMIDLIST SHBrowseForFolderW(          
+    BROWSEINFOW* lpbi
+);
+version(WinCE){
+    int SHCreateMenuBar(SHMENUBARINFO* pmb);
+}
+HRESULT SHGetMalloc(          
+//  LPMALLOC *ppMalloc
+    LPVOID   *ppMalloc
+);
+BOOL SHGetPathFromIDListA(          
+    LPCITEMIDLIST pidl,
+    LPSTR pszPath
+);
+BOOL SHGetPathFromIDListW(          
+    LPCITEMIDLIST pidl,
+    LPWSTR pszPath
+);
+version(WinCE)
+{
+    int SHHandleWMSettingChange(HWND hwnd, int wParam, int lParam, void*  psai);
+    int SHRecognizeGesture(void* shrg);
+    void SHSendBackToFocusWindow(int uMsg, int wp, int lp);
+    int SHSetAppKeyWndAssoc(byte bVk, HWND hwnd);
+    int SHSipPreference(HWND hwnd, int st);
+}
+alias STDWIN.SaveDC SaveDC;
+alias STDWIN.ScreenToClient ScreenToClient;
+
+// USP methods (Unicode Complex Script processor) 
+HRESULT ScriptBreak( 
+  WCHAR *pwcChars, 
+  int cChars, 
+  SCRIPT_ANALYSIS *psa, 
+  SCRIPT_LOGATTR *psla 
+);
+HRESULT ScriptCPtoX( 
+  int iCP, 
+  BOOL fTrailing, 
+  int cChars, 
+  int cGlyphs, 
+  WORD *pwLogClust, 
+  SCRIPT_VISATTR *psva, 
+  int *piAdvance, 
+  SCRIPT_ANALYSIS *psa, 
+  int *piX 
+);
+HRESULT ScriptCacheGetHeight(
+  HDC hdc, 
+  SCRIPT_CACHE *psc, 
+  long *tmHeight 
+);
+HRESULT ScriptFreeCache(
+  SCRIPT_CACHE *psc 
+);
+HRESULT ScriptGetFontProperties(
+  HDC hdc, 
+  SCRIPT_CACHE *psc, 
+  SCRIPT_FONTPROPERTIES *sfp 
+);
+HRESULT ScriptGetLogicalWidths(
+  SCRIPT_ANALYSIS *psa,
+  int cChars,
+  int cGlyphs,
+  int *piGlyphWidth,
+  WORD *pwLogClust,
+  SCRIPT_VISATTR *psva,
+  int *piDx
+);
+HRESULT ScriptGetProperties(
+  SCRIPT_PROPERTIES ***ppSp, 
+  int *piNumScripts 
+);
+HRESULT ScriptItemize(
+  WCHAR *pwcInChars, 
+  int cInChars, 
+  int cMaxItems, 
+  SCRIPT_CONTROL *psControl, 
+  SCRIPT_STATE *psState, 
+  SCRIPT_ITEM *pItems, 
+  int *pcItems 
+);
+HRESULT ScriptLayout(
+  int cRuns, 
+  BYTE *pbLevel, 
+  int *piVisualToLogical, 
+  int *piLogicalToVisual 
+);
+HRESULT ScriptPlace(
+  HDC hdc, 
+  SCRIPT_CACHE *psc, 
+  WORD *pwGlyphs, 
+  int cGlyphs, 
+  SCRIPT_VISATTR *psva, 
+  SCRIPT_ANALYSIS *psa, 
+  int *piAdvance, 
+  GOFFSET *pGoffset, 
+  ABC *pABC 
+);
+HRESULT ScriptShape(
+  HDC hdc,              // in   
+  SCRIPT_CACHE *psc,    // in/out
+  WCHAR *pwcChars,      //  
+  int cChars, 
+  int cMaxGlyphs, 
+  SCRIPT_ANALYSIS *psa, 
+  WORD *pwOutGlyphs, 
+  WORD *pwLogClust, 
+  SCRIPT_VISATTR *psva, 
+  int *pcGlyphs 
+);
+HRESULT ScriptTextOut(
+  HDC hdc,              // const
+  SCRIPT_CACHE *psc, 
+  int x, 
+  int y, 
+  UINT fuOptions, 
+  RECT *lprc,           // const
+  SCRIPT_ANALYSIS *psa, // const
+  WCHAR *pwcReserved,   // const
+  int iReserved, 
+  WORD *pwGlyphs,       // 
+  int cGlyphs, 
+  int *piAdvance,       // const
+  int *piJustify,       // const
+  GOFFSET *pGoffset     // const
+);
+HRESULT ScriptXtoCP(
+  int iX, 
+  int cChars, 
+  int cGlyphs, 
+  WORD *pwLogClust,         // 
+  SCRIPT_VISATTR *psva,     //  
+  int *piAdvance,           //      
+  SCRIPT_ANALYSIS *psa,     // 
+  int *piCP, 
+  int *piTrailing 
+);
+alias STDWIN.ScrollWindowEx ScrollWindowEx;
+alias STDWIN.SelectClipRgn SelectClipRgn;
+alias STDWIN.SelectObject SelectObject;
+alias STDWIN.SelectPalette SelectPalette;
+UINT SendInput(          
+    UINT nInputs,
+    LPINPUT pInputs,
+    int cbSize
+);
+// the basic
+int SendMessageA(HWND hWnd, int msg, int wParam, int lParam );
+int SendMessageW(HWND hWnd, int msg, int wParam, int lParam );
+
+int SendMessageA(HWND hWnd, UINT Msg, WPARAM_I wParam, void* lParam );
+int SendMessageW(HWND hWnd, UINT Msg, WPARAM_I wParam, void* lParam );
+int SendMessageA(HWND hWnd, UINT Msg, void* wParam, LPARAM lParam );
+int SendMessageW(HWND hWnd, UINT Msg, void* wParam, LPARAM lParam );
+int SendMessageA(HWND hWnd, UINT Msg, void* wParam, void* lParam );
+int SendMessageW(HWND hWnd, UINT Msg, void* wParam, void* lParam );
+
+alias STDWIN.SetActiveWindow SetActiveWindow;
+alias STDWIN.SetBkColor SetBkColor;
+alias STDWIN.SetBkMode SetBkMode;
+HWND SetCapture(          
+    HWND hWnd
+);
+BOOL SetCaretPos(          
+    int X,
+    int Y
+);
+HANDLE SetClipboardData(          
+    UINT uFormat,
+    HANDLE hMem
+);
+alias STDWIN.SetCursor SetCursor;
+alias STDWIN.SetCursorPos SetCursorPos;
+UINT SetDIBColorTable(
+    HDC hdc,                // handle to device context whose DIB is of interest
+    UINT uStartIndex,       // color table index of first entry to set
+    UINT cEntries,          // number of color table entries to set
+    RGBQUAD *pColors  // pointer to array of color table entries
+);
+UINT SetErrorMode(
+    UINT uMode
+);
+BOOL SetEvent(
+  HANDLE hEvent   // handle to event object
+);
+alias STDWIN.SetFocus SetFocus;
+alias STDWIN.SetForegroundWindow SetForegroundWindow;
+void SetLastError(
+    DWORD dwErrCode
+);
+DWORD SetLayout(
+    HDC hdc,             // handle to DC
+    DWORD dwLayout       // layout options
+);
+BOOL SetMenu(          
+    HWND hWnd,
+    HMENU hMenu
+);
+BOOL SetMenuDefaultItem(         
+    HMENU hMenu,
+    UINT uItem,
+    UINT fByPos
+);
+BOOL SetMenuInfo(          
+    HMENU hmenu,
+    LPCMENUINFO lpcmi
+);
+BOOL SetMenuItemInfoA(          
+    HMENU hMenu,
+    UINT uItem,
+    BOOL fByPosition,
+    LPMENUITEMINFOA lpmii
+);
+BOOL SetMenuItemInfoW(          
+    HMENU hMenu,
+    UINT uItem,
+    BOOL fByPosition,
+    LPMENUITEMINFOW lpmii
+);
+UINT SetPaletteEntries(
+    HPALETTE hpal,             // handle to logical palette
+    UINT iStart,               // index of first entry to set
+    UINT cEntries,             // number of entries to set
+    PALETTEENTRY *lppe              // array of palette entries
+);
+HWND SetParent(          
+    HWND hWndChild,
+    HWND hWndNewParent
+);
+alias STDWIN.SetPixel SetPixel;
+alias STDWIN.SetROP2 SetROP2;
+BOOL SetRect(
+    LPRECT lprc, // rectangle
+    int xLeft,   // left side
+    int yTop,    // top side
+    int xRight,  // right side
+    int yBottom  // bottom side
+);
+alias STDWIN.SetRectRgn SetRectRgn;
+int SetScrollInfo(          
+    HWND hwnd,
+    int fnBar,
+    LPCSCROLLINFO lpsi,
+    BOOL fRedraw
+);
+alias STDWIN.SetStretchBltMode SetStretchBltMode;
+alias STDWIN.SetTextAlign SetTextAlign;
+alias STDWIN.SetTextColor SetTextColor;
+UINT_PTR SetTimer(          
+    HWND hWnd,
+    UINT_PTR nIDEvent,
+    UINT uElapse,
+    TIMERPROC_I lpTimerFunc
+);
+LONG SetWindowLongA( 
+    HWND hWnd,
+    int nIndex,
+    LONG dwNewLong
+);
+LONG SetWindowLongW( 
+    HWND hWnd,
+    int nIndex,
+    LONG dwNewLong
+);
+BOOL SetWindowPlacement(          
+    HWND hWnd,
+    WINDOWPLACEMENT *lpwndpl
+);
+BOOL SetWindowPos(
+    HWND hWnd,             // handle to window
+    HWND hWndInsertAfter,  // placement-order handle
+    int X,                 // horizontal position
+    int Y,                 // vertical position
+    int cx,                // width
+    int cy,                // height
+    UINT uFlags            // window-positioning flags
+);
+alias STDWIN.SetWindowRgn SetWindowRgn;
+BOOL SetWindowTextA(          
+    HWND hWnd,
+    LPCSTR lpString
+);
+BOOL SetWindowTextW(          
+    HWND hWnd,
+    LPCWSTR lpString
+);
+HHOOK SetWindowsHookExA(
+    int idHook,        // type of hook to install
+    HOOKPROC_I lpfn,     // address of hook procedure
+    HINSTANCE hMod,    // handle to application instance
+    DWORD dwThreadId   // identity of thread to install hook for
+);
+HHOOK SetWindowsHookExW(
+    int idHook,        // type of hook to install
+    HOOKPROC_I lpfn,     // address of hook procedure
+    HINSTANCE hMod,    // handle to application instance
+    DWORD dwThreadId   // identity of thread to install hook for
+);
+BOOL ShellExecuteExA(          
+    LPSHELLEXECUTEINFOA lpExecInfo
+);
+BOOL ShellExecuteExW(          
+    LPSHELLEXECUTEINFOW lpExecInfo
+);
+BOOL Shell_NotifyIconA( 
+    DWORD dwMessage,
+    PNOTIFYICONDATAA lpdata
+);
+BOOL Shell_NotifyIconW( 
+    DWORD dwMessage,
+    PNOTIFYICONDATAW lpdata
+);
+alias STDWIN.ShowCaret ShowCaret;
+BOOL ShowOwnedPopups(          
+    HWND hWnd,
+    BOOL fShow
+);
+alias STDWIN.ShowScrollBar ShowScrollBar;
+alias STDWIN.ShowWindow ShowWindow;
+version(WinCE)
+{
+BOOL SipGetInfo(
+    SIPINFO *pSipInfo
+);
+}
+DWORD SizeofResource(
+    HMODULE hModule, // resource-module handle
+    HRSRC hResInfo   // resource handle
+);
+void Sleep(
+    DWORD dwMilliseconds
+);
+int StartDocA(
+    HDC hdc,              // handle to DC
+    DOCINFOA* lpdi          // contains file names
+);
+int StartDocW(
+    HDC hdc,              // handle to DC
+    DOCINFOW* lpdi          // contains file names
+);
+int StartPage(
+    HDC hDC   // handle to DC
+);
+alias STDWIN.StretchBlt StretchBlt;
+BOOL SystemParametersInfoA(
+    UINT uiAction,
+    UINT uiParam,
+    PVOID pvParam,
+    UINT fWinIni
+);
+BOOL SystemParametersInfoW(
+    UINT uiAction,
+    UINT uiParam,
+    PVOID pvParam,
+    UINT fWinIni
+);
+int ToAscii(          
+    UINT uVirtKey,
+    UINT uScanCode,
+    PBYTE lpKeyState,
+    LPWORD lpChar,
+    UINT uFlags
+);
+int ToUnicode(          
+    UINT wVirtKey,
+    UINT wScanCode,
+    PBYTE lpKeyState,
+    LPWSTR pwszBuff,
+    int cchBuff,
+    UINT wFlags
+);
+BOOL TrackMouseEvent(
+    LPTRACKMOUSEEVENT lpEventTrack  // pointer to a TRACKMOUSEEVENT structure
+);
+alias STDWIN.TrackPopupMenu TrackPopupMenu;
+int TranslateAcceleratorA(
+    HWND hWnd,         // handle to destination window
+    HACCEL hAccTable,  // handle to accelerator table
+    LPMSG lpMsg        // address of structure with message
+);
+int TranslateAcceleratorW(
+    HWND hWnd,         // handle to destination window
+    HACCEL hAccTable,  // handle to accelerator table
+    LPMSG lpMsg        // address of structure with message
+);
+UINT TranslateCharsetInfo(
+    DWORD *lpSrc,     
+    LPCHARSETINFO lpCs,   
+    DWORD dwFlags         
+);
+BOOL TranslateMDISysAccel(          
+    HWND hWndClient,
+    LPMSG lpMsg
+);
+BOOL TranslateMessage(
+    MSG *lpMsg   // address of structure with message
+);
+version(WinCE)
+{
+BOOL TransparentImage(
+HDC hdcDest, 
+LONG DstX, 
+LONG DstY, 
+LONG DstCx, 
+LONG DstCy,
+HANDLE hSrc, 
+LONG SrcX, 
+LONG SrcY, 
+LONG SrcCx, 
+LONG SrcCy, 
+COLORREF TransparentColor
+);
+}
+BOOL UnhookWindowsHookEx(
+    HHOOK hhk   // handle to hook procedure to remove
+);
+BOOL UnregisterClassA(
+    LPCSTR lpClassName,  // address of class name string
+    HINSTANCE hInstance   // handle of application instance
+);
+BOOL UnregisterClassW(
+    LPCWSTR lpClassName,  // address of class name string
+    HINSTANCE hInstance   // handle of application instance
+);
+alias STDWIN.UpdateWindow UpdateWindow;
+alias STDWIN.ValidateRect ValidateRect;
+SHORT VkKeyScanA(char ch);
+SHORT VkKeyScanW(wchar ch);
+alias STDWIN.WaitForMultipleObjects WaitForMultipleObjects;
+alias STDWIN.WaitForSingleObject WaitForSingleObject;
+BOOL WaitMessage();
+alias STDWIN.WideCharToMultiByte WideCharToMultiByte;
+alias STDWIN.WindowFromDC WindowFromDC;
+alias STDWIN.WindowFromPoint WindowFromPoint;
+}
+
+extern (C)
+{
+    int wcslen(wchar* string);
+}