changeset 36:d46287db17ed

rakefile reorg, swt win phobosification
author Frank Benoit <benoit@tionex.de>
date Tue, 24 Mar 2009 08:48:41 +0100
parents 634e4380db78
children 46c5f8f56b41
files org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/CLabel.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/CTabFolderEvent.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/CTabItem.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/ControlEditor.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/DefaultContent.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/ExtendedModifyEvent.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/LineBackgroundEvent.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/LineStyleEvent.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/MovementEvent.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/PaintObjectEvent.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/ScrolledCompositeLayout.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/StyleRange.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/StyledText.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/StyledTextDropTargetEffect.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/StyledTextPrintOptions.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/StyledTextRenderer.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/TableCursor.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/TableEditor.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/TableTree.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/TextChangingEvent.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/ViewForm.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/DND.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/DragSource.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/DropTarget.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/FileTransfer.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/TableDropTargetEffect.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/Transfer.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/TreeDropTargetEffect.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Cursor.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Font.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/FontData.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/FontMetrics.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/GC.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/GlyphMetrics.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Image.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Point.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/RGB.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Rectangle.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Region.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/TextLayout.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/TextStyle.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/ImageList.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/GIFFileFormat.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/JPEGDecoder.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/LZWCodec.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/OS2BMPFileFormat.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/PNGFileFormat.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/PngDecodingDataStream.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/PngHuffmanTables.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/PngInputStream.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/TIFFModifiedHuffmanCodec.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/TIFFRandomFileAccess.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/WinBMPFileFormat.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/ole/win32/COM.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/win32/OS.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/win32/WINAPI.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/win32/WINTYPES.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/program/Program.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Decorations.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Display.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/EventTable.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Monitor.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Shell.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Synchronizer.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Tracker.d org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Widget.d rakefile
diffstat 67 files changed, 16284 insertions(+), 259 deletions(-) [+]
line wrap: on
line diff
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/CLabel.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/CLabel.d	Tue Mar 24 08:48:41 2009 +0100
@@ -436,12 +436,12 @@
             }
         } else if (gradientColors !is null) {
             // draw a gradient behind the text
-            final Color oldBackground = gc.getBackground();
+            Color oldBackground = gc.getBackground();
             if (gradientColors.length is 1) {
                 if (gradientColors[0] !is null) gc.setBackground(gradientColors[0]);
                 gc.fillRectangle(0, 0, rect.width, rect.height);
             } else {
-                final Color oldForeground = gc.getForeground();
+                Color oldForeground = gc.getForeground();
                 Color lastColor = gradientColors[0];
                 if (lastColor is null) lastColor = oldBackground;
                 int pos = 0;
@@ -451,11 +451,11 @@
                     if (lastColor is null) lastColor = oldBackground;
                     gc.setBackground(lastColor);
                     if (gradientVertical) {
-                        final int gradientHeight = (gradientPercents[i] * rect.height / 100) - pos;
+                        int gradientHeight = (gradientPercents[i] * rect.height / 100) - pos;
                         gc.fillGradientRectangle(0, pos, rect.width, gradientHeight, true);
                         pos += gradientHeight;
                     } else {
-                        final int gradientWidth = (gradientPercents[i] * rect.width / 100) - pos;
+                        int gradientWidth = (gradientPercents[i] * rect.width / 100) - pos;
                         gc.fillGradientRectangle(pos, 0, gradientWidth, rect.height, false);
                         pos += gradientWidth;
                     }
@@ -667,7 +667,7 @@
     }
 
     // Are these settings the same as before?
-    final Color background = getBackground();
+    Color background = getBackground();
     if (backgroundImage is null) {
         if ((gradientColors !is null) && (colors !is null) &&
             (gradientColors.length is colors.length)) {
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/CTabFolderEvent.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/CTabFolderEvent.d	Tue Mar 24 08:48:41 2009 +0100
@@ -67,7 +67,7 @@
      */
     public int height;
 
-    static final long serialVersionUID = 3760566386225066807L;
+    static const long serialVersionUID = 3760566386225066807L;
 
 /**
  * Constructs a new instance of this class.
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/CTabItem.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/CTabItem.d	Tue Mar 24 08:48:41 2009 +0100
@@ -68,13 +68,13 @@
     bool showing = false;
 
     // internal constants
-    static final int TOP_MARGIN = 2;
-    static final int BOTTOM_MARGIN = 2;
-    static final int LEFT_MARGIN = 4;
-    static final int RIGHT_MARGIN = 4;
-    static final int INTERNAL_SPACING = 4;
-    static final int FLAGS = SWT.DRAW_TRANSPARENT | SWT.DRAW_MNEMONIC;
-    static final String ELLIPSIS = "..."; //$NON-NLS-1$ // could use the ellipsis glyph on some platforms "\u2026"
+    static const int TOP_MARGIN = 2;
+    static const int BOTTOM_MARGIN = 2;
+    static const int LEFT_MARGIN = 4;
+    static const int RIGHT_MARGIN = 4;
+    static const int INTERNAL_SPACING = 4;
+    static const int FLAGS = SWT.DRAW_TRANSPARENT | SWT.DRAW_MNEMONIC;
+    static const String ELLIPSIS = "..."; //$NON-NLS-1$ // could use the ellipsis glyph on some platforms "\u2026"
 
 /**
  * Constructs a new instance of this class given its parent
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/ControlEditor.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/ControlEditor.d	Tue Mar 24 08:48:41 2009 +0100
@@ -117,7 +117,7 @@
     private Listener controlListener;
     private Listener scrollbarListener;
 
-    private final static int [] EVENTS = [SWT.KeyDown, SWT.KeyUp, SWT.MouseDown, SWT.MouseUp, SWT.Resize];
+    private const static int [] EVENTS = [SWT.KeyDown, SWT.KeyUp, SWT.MouseDown, SWT.MouseUp, SWT.Resize];
 /**
 * Creates a ControlEditor for the specified Composite.
 *
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/DefaultContent.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/DefaultContent.d	Tue Mar 24 08:48:41 2009 +0100
@@ -25,7 +25,7 @@
 import org.eclipse.swt.custom.StyledText;
 
 class DefaultContent : StyledTextContent {
-    private final static String LineDelimiter = "\r\n";
+    private const static String LineDelimiter = "\r\n";
 
     StyledTextListener[] textListeners; // stores text listeners for event sending
     char[] textStore; // stores the actual text
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/ExtendedModifyEvent.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/ExtendedModifyEvent.d	Tue Mar 24 08:48:41 2009 +0100
@@ -30,7 +30,7 @@
     /** replaced text or empty string if no text was replaced */
     public String replacedText;
 
-    static final long serialVersionUID = 3258696507027830832L;
+    static const long serialVersionUID = 3258696507027830832L;
 
 /**
  * Constructs a new instance of this class based on the
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/LineBackgroundEvent.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/LineBackgroundEvent.d	Tue Mar 24 08:48:41 2009 +0100
@@ -41,7 +41,7 @@
      */
     public Color lineBackground;
 
-    static final long serialVersionUID = 3978711687853324342L;
+    static const long serialVersionUID = 3978711687853324342L;
 
 /**
  * Constructs a new instance of this class based on the
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/LineStyleEvent.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/LineStyleEvent.d	Tue Mar 24 08:48:41 2009 +0100
@@ -87,7 +87,7 @@
      */
     public int bulletIndex;
 
-    static final long serialVersionUID = 3906081274027192884L;
+    static const long serialVersionUID = 3906081274027192884L;
 
 /**
  * Constructs a new instance of this class based on the
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/MovementEvent.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/MovementEvent.d	Tue Mar 24 08:48:41 2009 +0100
@@ -58,7 +58,7 @@
      */
     public int movement;
 
-    static final long serialVersionUID = 3978765487853324342L;
+    static const long serialVersionUID = 3978765487853324342L;
 
 /**
  * Constructs a new instance of this class based on the
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/PaintObjectEvent.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/PaintObjectEvent.d	Tue Mar 24 08:48:41 2009 +0100
@@ -68,7 +68,7 @@
      */
     public int bulletIndex;
 
-    static final long serialVersionUID = 3906081274027192855L;
+    static const long serialVersionUID = 3906081274027192855L;
 
 /**
  * Constructs a new instance of this class based on the
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/ScrolledCompositeLayout.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/ScrolledCompositeLayout.d	Tue Mar 24 08:48:41 2009 +0100
@@ -32,8 +32,8 @@
 class ScrolledCompositeLayout : Layout {
 
     bool inLayout = false;
-    static final int DEFAULT_WIDTH  = 64;
-    static final int DEFAULT_HEIGHT = 64;
+    static const int DEFAULT_WIDTH  = 64;
+    static const int DEFAULT_HEIGHT = 64;
 
 protected override Point computeSize(Composite composite, int wHint, int hHint, bool flushCache) {
     ScrolledComposite sc = cast(ScrolledComposite)composite;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/StyleRange.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/StyleRange.d	Tue Mar 24 08:48:41 2009 +0100
@@ -121,7 +121,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals(Object object) {
+public override equals_t opEquals(Object object) {
     if (object is this) return true;
     if (auto style = cast(StyleRange) object ) {
         if (start !is style.start) return false;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/StyledText.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/StyledText.d	Tue Mar 24 08:48:41 2009 +0100
@@ -2156,7 +2156,7 @@
     }
 
     Runnable timer = null;
-    final Display disp = getDisplay();
+    Display disp = getDisplay();
     // Set a timer that will simulate the user pressing and holding
     // down a cursor key (i.e., arrowUp, arrowDown).
     if (direction is SWT.UP) {
@@ -5635,7 +5635,7 @@
  * Add accessibility support for the widget.
  */
 void initializeAccessible() {
-    final Accessible accessible = getAccessible();
+    Accessible accessible = getAccessible();
     accessible.addAccessibleListener(new class() AccessibleAdapter {
         public void getName (AccessibleEvent e) {
             String name = null;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/StyledTextDropTargetEffect.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/StyledTextDropTargetEffect.d	Tue Mar 24 08:48:41 2009 +0100
@@ -61,9 +61,9 @@
  * @since 3.3
  */
 public class StyledTextDropTargetEffect : DropTargetEffect {
-    static final int CARET_WIDTH = 2;
-    static final int SCROLL_HYSTERESIS = 100; // milli seconds
-    static final int SCROLL_TOLERANCE = 20; // pixels
+    static const int CARET_WIDTH = 2;
+    static const int SCROLL_HYSTERESIS = 100; // milli seconds
+    static const int SCROLL_TOLERANCE = 20; // pixels
 
     int currentOffset = -1;
     long scrollBeginTime;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/StyledTextPrintOptions.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/StyledTextPrintOptions.d	Tue Mar 24 08:48:41 2009 +0100
@@ -41,12 +41,12 @@
      * Page number placeholder constant for use in <code>header</code>
      * and <code>footer</code>. Value is <code>&lt;page&gt;</code>
      */
-    public static final String PAGE_TAG = "<page>";
+    public static const String PAGE_TAG = "<page>";
     /**
      * Separator constant for use in <code>header</code> and
      * <code>footer</code>. Value is <code>\t</code>
      */
-    public static final String SEPARATOR = "\t";
+    public static const String SEPARATOR = "\t";
     /**
      * Formatted text to print in the header of each page.
      * <p>"left '\t' center '\t' right"</p>
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/StyledTextRenderer.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/StyledTextRenderer.d	Tue Mar 24 08:48:41 2009 +0100
@@ -77,20 +77,20 @@
     StyleRange[] styles;
     StyleRange[] stylesSet;
     int stylesSetCount = 0;
-    final static int BULLET_MARGIN = 8;
+    const static int BULLET_MARGIN = 8;
 
-    final static bool COMPACT_STYLES = true;
-    final static bool MERGE_STYLES = true;
+    const static bool COMPACT_STYLES = true;
+    const static bool MERGE_STYLES = true;
 
-    final static int GROW = 32;
-    final static int IDLE_TIME = 50;
-    final static int CACHE_SIZE = 128;
+    const static int GROW = 32;
+    const static int IDLE_TIME = 50;
+    const static int CACHE_SIZE = 128;
 
-    final static int BACKGROUND = 1 << 0;
-    final static int ALIGNMENT = 1 << 1;
-    final static int INDENT = 1 << 2;
-    final static int JUSTIFY = 1 << 3;
-    final static int SEGMENTS = 1 << 5;
+    const static int BACKGROUND = 1 << 0;
+    const static int ALIGNMENT = 1 << 1;
+    const static int INDENT = 1 << 2;
+    const static int JUSTIFY = 1 << 3;
+    const static int SEGMENTS = 1 << 5;
 
     static class LineInfo {
         int flags;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/TableCursor.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/TableCursor.d	Tue Mar 24 08:48:41 2009 +0100
@@ -167,8 +167,8 @@
     Color foreground = null;
 
     // By default, invert the list selection colors
-    static final int BACKGROUND = SWT.COLOR_LIST_SELECTION_TEXT;
-    static final int FOREGROUND = SWT.COLOR_LIST_SELECTION;
+    static const int BACKGROUND = SWT.COLOR_LIST_SELECTION_TEXT;
+    static const int FOREGROUND = SWT.COLOR_LIST_SELECTION;
 
 /**
  * Constructs a new instance of this class given its parent
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/TableEditor.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/TableEditor.d	Tue Mar 24 08:48:41 2009 +0100
@@ -91,7 +91,7 @@
     int column = -1;
     ControlListener columnListener;
     Runnable timer;
-    static final int TIMEOUT = 1500;
+    static const int TIMEOUT = 1500;
 /**
 * Creates a TableEditor for the specified Table.
 *
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/TableTree.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/TableTree.d	Tue Mar 24 08:48:41 2009 +0100
@@ -83,10 +83,10 @@
     */
     bool inDispose = false;
 
-    static final TableTreeItem[] EMPTY_ITEMS;
-    static final String[] EMPTY_TEXTS;
-    static final Image[] EMPTY_IMAGES;
-    static final String ITEMID = "TableTreeItemID"; //$NON-NLS-1$
+    static const TableTreeItem[] EMPTY_ITEMS;
+    static const String[] EMPTY_TEXTS;
+    static const Image[] EMPTY_IMAGES;
+    static const String ITEMID = "TableTreeItemID"; //$NON-NLS-1$
 
 /**
  * Constructs a new instance of this class given its parent
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/TextChangingEvent.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/TextChangingEvent.d	Tue Mar 24 08:48:41 2009 +0100
@@ -52,7 +52,7 @@
      */
     public int newLineCount;
 
-    static final long serialVersionUID = 3257290210114352439L;
+    static const long serialVersionUID = 3257290210114352439L;
 
 /**
  * Create the TextChangedEvent to be used by the StyledTextContent implementor.
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/ViewForm.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/custom/ViewForm.d	Tue Mar 24 08:48:41 2009 +0100
@@ -132,9 +132,9 @@
 
     Color selectionBackground;
 
-    static final int OFFSCREEN = -200;
-    static final int BORDER1_COLOR = SWT.COLOR_WIDGET_NORMAL_SHADOW;
-    static final int SELECTION_BACKGROUND = SWT.COLOR_LIST_BACKGROUND;
+    static const int OFFSCREEN = -200;
+    static const int BORDER1_COLOR = SWT.COLOR_WIDGET_NORMAL_SHADOW;
+    static const int SELECTION_BACKGROUND = SWT.COLOR_LIST_BACKGROUND;
 
 
     static this(){
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/DND.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/DND.d	Tue Mar 24 08:48:41 2009 +0100
@@ -208,7 +208,7 @@
      * 
      * @since 3.4
      */
-    public static final String DROP_TARGET_KEY = "DropTarget"; //$NON-NLS-1$
+    public static const String DROP_TARGET_KEY = "DropTarget"; //$NON-NLS-1$
     
     /**
      * DragSource Key: The string constant for looking up the drag source 
@@ -218,7 +218,7 @@
      * 
      * @since 3.4
      */
-    public static final String DRAG_SOURCE_KEY = "DragSource"; //$NON-NLS-1$
+    public static const String DRAG_SOURCE_KEY = "DragSource"; //$NON-NLS-1$
 
     static const String INIT_DRAG_MESSAGE = "Cannot initialize Drag"; //$NON-NLS-1$
     static const String INIT_DROP_MESSAGE = "Cannot initialize Drop"; //$NON-NLS-1$
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/DragSource.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/DragSource.d	Tue Mar 24 08:48:41 2009 +0100
@@ -147,7 +147,7 @@
 
     static const String DEFAULT_DRAG_SOURCE_EFFECT = "DEFAULT_DRAG_SOURCE_EFFECT"; //$NON-NLS-1$
     static const int CFSTR_PERFORMEDDROPEFFECT;
-    static final TCHAR[] WindowClass = "#32770\0";
+    static const TCHAR[] WindowClass = "#32770\0";
     static this(){
         CFSTR_PERFORMEDDROPEFFECT  = Transfer.registerType("Performed DropEffect");     //$NON-NLS-1$
     }
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/DropTarget.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/DropTarget.d	Tue Mar 24 08:48:41 2009 +0100
@@ -119,7 +119,7 @@
     _IDropTargetImpl iDropTarget;
     int refCount;
 
-    static final String DEFAULT_DROP_TARGET_EFFECT = "DEFAULT_DROP_TARGET_EFFECT"; //$NON-NLS-1$
+    static const String DEFAULT_DROP_TARGET_EFFECT = "DEFAULT_DROP_TARGET_EFFECT"; //$NON-NLS-1$
 
 /**
  * Creates a new <code>DropTarget</code> to allow data to be dropped on the specified
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/FileTransfer.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/FileTransfer.d	Tue Mar 24 08:48:41 2009 +0100
@@ -45,9 +45,9 @@
 public class FileTransfer : ByteArrayTransfer {
 
     private static FileTransfer _instance;
-    private static final String CF_HDROP = "CF_HDROP "; //$NON-NLS-1$
-    private static final int CF_HDROPID = COM.CF_HDROP;
-    private static final String CF_HDROP_SEPARATOR = "\0"; //$NON-NLS-1$
+    private static const String CF_HDROP = "CF_HDROP "; //$NON-NLS-1$
+    private static const int CF_HDROPID = COM.CF_HDROP;
+    private static const String CF_HDROP_SEPARATOR = "\0"; //$NON-NLS-1$
 
 private this() {}
 
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/TableDropTargetEffect.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/TableDropTargetEffect.d	Tue Mar 24 08:48:41 2009 +0100
@@ -54,7 +54,7 @@
  * @since 3.3
  */
 public class TableDropTargetEffect : DropTargetEffect {
-    static final int SCROLL_HYSTERESIS = 200; // milli seconds
+    static const int SCROLL_HYSTERESIS = 200; // milli seconds
 
     int scrollIndex = -1;
     long scrollBeginTime;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/Transfer.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/Transfer.d	Tue Mar 24 08:48:41 2009 +0100
@@ -37,7 +37,7 @@
  */
 public abstract class Transfer {
 
-private static final int RETRY_LIMIT = 10;
+private static const int RETRY_LIMIT = 10;
 /* 
  * Feature in Windows. When another application has control
  * of the clipboard, the clipboard is locked and it's not
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/TreeDropTargetEffect.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/TreeDropTargetEffect.d	Tue Mar 24 08:48:41 2009 +0100
@@ -59,8 +59,8 @@
  * @since 3.3
  */
 public class TreeDropTargetEffect : DropTargetEffect {
-    static final int SCROLL_HYSTERESIS = 200; // milli seconds
-    static final int EXPAND_HYSTERESIS = 1000; // milli seconds
+    static const int SCROLL_HYSTERESIS = 200; // milli seconds
+    static const int EXPAND_HYSTERESIS = 1000; // milli seconds
 
     int /*long*/ dropIndex;
     int scrollIndex;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Cursor.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Cursor.d	Tue Mar 24 08:48:41 2009 +0100
@@ -405,7 +405,7 @@
  *
  * @see #hashCode
  */
-public override int opEquals (Object object) {
+public override equals_t opEquals (Object object) {
     if (object is this) return true;
     if (!(cast(Cursor)object)) return false;
     Cursor cursor = cast(Cursor) object;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Font.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Font.d	Tue Mar 24 08:48:41 2009 +0100
@@ -170,7 +170,7 @@
  *
  * @see #hashCode
  */
-public int opEquals(Object object) {
+public equals_t opEquals(Object object) {
     if (object is this) return true;
     if ( auto font = cast(Font)object ){
         return device is font.device && handle is font.handle;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/FontData.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/FontData.d	Tue Mar 24 08:48:41 2009 +0100
@@ -287,7 +287,7 @@
  *
  * @see #hashCode
  */
-override public int opEquals (Object object) {
+override public equals_t opEquals (Object object) {
     if (object is this) return true;
     if( auto fd = cast(FontData)object ){
         LOGFONT* lf = &fd.data;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/FontMetrics.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/FontMetrics.d	Tue Mar 24 08:48:41 2009 +0100
@@ -57,7 +57,7 @@
  *
  * @see #hashCode
  */
-override public int opEquals (Object object) {
+override public equals_t opEquals (Object object) {
     if (object is this) return true;
     if( auto metricObj = cast(FontMetrics)object ){
         auto metric = metricObj.handle;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/GC.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/GC.d	Tue Mar 24 08:48:41 2009 +0100
@@ -1219,7 +1219,7 @@
             OS.BitBlt(memHdc, 0, 0, srcWidth, srcHeight, srcHdc, srcX, srcY, OS.SRCCOPY);
             byte[] srcData = new byte[dibBM.bmWidthBytes * dibBM.bmHeight];
             srcData[] = (cast(byte*)dibBM.bmBits)[ 0 .. srcData.length ];
-            final int apinc = imgWidth - srcWidth;
+            int apinc = imgWidth - srcWidth;
             int ap = srcY * imgWidth + srcX, sp = 0;
             byte[] alphaData = srcImage.alphaData;
             for (int y = 0; y < srcHeight; ++y) {
@@ -1298,10 +1298,10 @@
 
     /* Merge the alpha channel in place */
     int alpha = srcImage.alpha;
-    final bool hasAlphaChannel = (srcImage.alpha is -1);
+    bool hasAlphaChannel = (srcImage.alpha is -1);
     if (hasAlphaChannel) {
-        final int apinc = imgWidth - srcWidth;
-        final int spinc = dibBM.bmWidthBytes - srcWidth * 4;
+        int apinc = imgWidth - srcWidth;
+        int spinc = dibBM.bmWidthBytes - srcWidth * 4;
         int ap = srcY * imgWidth + srcX, sp = 3;
         byte[] alphaData = srcImage.alphaData;
         for (int y = 0; y < srcHeight; ++y) {
@@ -1349,7 +1349,7 @@
     srcData[] = (cast(byte*)dibBM.bmBits)[ 0 .. sizeInBytes ];
 
     /* Compose the pixels */
-    final int dpinc = dibBM.bmWidthBytes - destWidth * 4;
+    int dpinc = dibBM.bmWidthBytes - destWidth * 4;
     int dp = 0;
     for (int y = 0; y < destHeight; ++y) {
         for (int x = 0; x < destWidth; ++x) {
@@ -2651,8 +2651,8 @@
         rop2 = OS.GetROP2(handle);
     }
     if (OS.IsWinNT && rop2 !is OS.R2_XORPEN && OS.GetDeviceCaps(handle, OS.TECHNOLOGY) !is OS.DT_RASPRINTER) {
-        final auto hHeap = OS.GetProcessHeap();
-        final auto pMesh = OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, GRADIENT_RECT.sizeof + TRIVERTEX.sizeof * 2);
+        auto hHeap = OS.GetProcessHeap();
+        auto pMesh = OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, GRADIENT_RECT.sizeof + TRIVERTEX.sizeof * 2);
         if (pMesh is null) SWT.error(SWT.ERROR_NO_HANDLES);
         auto pVertex = cast(TRIVERTEX*)( pMesh + GRADIENT_RECT.sizeof );
 
@@ -2682,8 +2682,8 @@
         if (success) return;
     }
 
-    final int depth = OS.GetDeviceCaps(handle, OS.BITSPIXEL);
-    final int bitResolution = (depth >= 24) ? 8 : (depth >= 15) ? 5 : 0;
+    int depth = OS.GetDeviceCaps(handle, OS.BITSPIXEL);
+    int bitResolution = (depth >= 24) ? 8 : (depth >= 15) ? 5 : 0;
     ImageData.fillGradientRectangle(this, data.device,
         x, y, width, height, vertical, fromRGB, toRGB,
         bitResolution, bitResolution, bitResolution);
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/GlyphMetrics.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/GlyphMetrics.d	Tue Mar 24 08:48:41 2009 +0100
@@ -83,7 +83,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals (Object object) {
+public override equals_t opEquals (Object object) {
     if (object is this) return true;
     if (auto metrics = cast(GlyphMetrics)object ){
        return metrics.ascent == ascent && metrics.descent == descent && metrics.width == width;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Image.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Image.d	Tue Mar 24 08:48:41 2009 +0100
@@ -1079,7 +1079,7 @@
  *
  * @see #hashCode
  */
-override public int opEquals (Object object) {
+override public equals_t opEquals (Object object) {
     if (object is this) return true;
     if (!(cast(Image)object)) return false;
     Image image = cast(Image) object;
@@ -1709,10 +1709,10 @@
     * platforms in BI_RGB mode.
     */
     if (i.palette.isDirect) {
-        final PaletteData palette = i.palette;
-        final int redMask = palette.redMask;
-        final int greenMask = palette.greenMask;
-        final int blueMask = palette.blueMask;
+        PaletteData palette = i.palette;
+        int redMask = palette.redMask;
+        int greenMask = palette.greenMask;
+        int blueMask = palette.blueMask;
         int newDepth = i.depth;
         int newOrder = ImageData.MSB_FIRST;
         PaletteData newPalette = null;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Point.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Point.d	Tue Mar 24 08:48:41 2009 +0100
@@ -77,7 +77,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals (Object object) {
+public override equals_t opEquals (Object object) {
     if (object is this) return true;
     if ( auto p = cast(Point)object ){
         return (p.x is this.x) && (p.y is this.y);
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/RGB.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/RGB.d	Tue Mar 24 08:48:41 2009 +0100
@@ -196,7 +196,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals(Object object) {
+public override equals_t opEquals(Object object) {
     if (object is this) return true;
     if( auto rgb = cast(RGB) object ){
         return (rgb.red is this.red) && (rgb.green is this.green) && (rgb.blue is this.blue);
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Rectangle.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Rectangle.d	Tue Mar 24 08:48:41 2009 +0100
@@ -155,7 +155,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals (Object object) {
+public override equals_t opEquals (Object object) {
     if (object is this) return true;
     if( auto r = cast(Rectangle) object ){
         return (r.x is this.x) && (r.y is this.y) && (r.width is this.width) && (r.height is this.height);
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Region.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/Region.d	Tue Mar 24 08:48:41 2009 +0100
@@ -249,7 +249,7 @@
  *
  * @see #hashCode
  */
-override public int opEquals (Object object) {
+override public equals_t opEquals (Object object) {
     if (this is object) return true;
     if (!(cast(Region)object)) return false;
     Region rgn = cast(Region)object;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/TextLayout.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/TextLayout.d	Tue Mar 24 08:48:41 2009 +0100
@@ -2368,7 +2368,7 @@
     int length = segmentsText.length;
     SCRIPT_CONTROL scriptControl;
     SCRIPT_STATE scriptState;
-    final int MAX_ITEM = length + 1;
+    int MAX_ITEM = length + 1;
 
     if ((orientation & SWT.RIGHT_TO_LEFT) !is 0) {
         scriptState.uBidiLevel = 1;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/TextStyle.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/graphics/TextStyle.d	Tue Mar 24 08:48:41 2009 +0100
@@ -204,7 +204,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals(Object object) {
+public override equals_t opEquals(Object object) {
     if (object is this) return true;
     if (object is null) return false;
     if (!(cast(TextStyle)object)) return false;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/ImageList.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/ImageList.d	Tue Mar 24 08:48:41 2009 +0100
@@ -212,7 +212,7 @@
         byte transRed = cast(byte)(background & 0xFF);
         byte transGreen = cast(byte)((background >> 8) & 0xFF);
         byte transBlue = cast(byte)((background >> 16) & 0xFF);
-        final int spinc = dibBM.bmWidthBytes - srcWidth * 4;
+        int spinc = dibBM.bmWidthBytes - srcWidth * 4;
         int sp = 3;
         for (int y = 0; y < srcHeight; ++y) {
             for (int x = 0; x < srcWidth; ++x) {
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/GIFFileFormat.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/GIFFileFormat.d	Tue Mar 24 08:48:41 2009 +0100
@@ -32,15 +32,15 @@
     int transparentPixel = -1;
     int repeatCount = 1;
 
-    static final int GIF_APPLICATION_EXTENSION_BLOCK_ID = 0xFF;
-    static final int GIF_GRAPHICS_CONTROL_BLOCK_ID = 0xF9;
-    static final int GIF_PLAIN_TEXT_BLOCK_ID = 0x01;
-    static final int GIF_COMMENT_BLOCK_ID = 0xFE;
-    static final int GIF_EXTENSION_BLOCK_ID = 0x21;
-    static final int GIF_IMAGE_BLOCK_ID = 0x2C;
-    static final int GIF_TRAILER_ID = 0x3B;
-    static final byte[] GIF89a = cast(byte[])"GIF89a";
-    static final byte[] NETSCAPE2_0 = cast(byte[])"NETSCAPE2.0";
+    static const int GIF_APPLICATION_EXTENSION_BLOCK_ID = 0xFF;
+    static const int GIF_GRAPHICS_CONTROL_BLOCK_ID = 0xF9;
+    static const int GIF_PLAIN_TEXT_BLOCK_ID = 0x01;
+    static const int GIF_COMMENT_BLOCK_ID = 0xFE;
+    static const int GIF_EXTENSION_BLOCK_ID = 0x21;
+    static const int GIF_IMAGE_BLOCK_ID = 0x2C;
+    static const int GIF_TRAILER_ID = 0x3B;
+    static const byte[] GIF89a = cast(byte[])"GIF89a";
+    static const byte[] NETSCAPE2_0 = cast(byte[])"NETSCAPE2.0";
 
     /**
      * Answer a palette containing numGrays
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/JPEGDecoder.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/JPEGDecoder.d	Tue Mar 24 08:48:41 2009 +0100
@@ -2947,9 +2947,9 @@
     }
 }
 
-static final int CONST_BITS = 13;
-static final int PASS1_BITS = 2;
-static final int RANGE_MASK =(MAXJSAMPLE * 4 + 3);
+static const int CONST_BITS = 13;
+static const int PASS1_BITS = 2;
+static const int RANGE_MASK =(MAXJSAMPLE * 4 + 3);
 static void jpeg_idct_islow (jpeg_decompress_struct cinfo, jpeg_component_info compptr,
     short[] coef_block,
     byte[][] output_buf, int output_buf_offset, int output_col)
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/LZWCodec.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/LZWCodec.d	Tue Mar 24 08:48:41 2009 +0100
@@ -35,7 +35,7 @@
     ImageData image;
     ImageLoader loader;
     bool interlaced;
-    static final int[] MASK_TABLE = [
+    static const int[] MASK_TABLE = [
         0x1, 0x3, 0x7, 0xF, 0x1F, 0x3F, 0x7F,
         0xFF, 0x1FF, 0x3FF, 0x7FF, 0xFFF
     ];
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/OS2BMPFileFormat.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/OS2BMPFileFormat.d	Tue Mar 24 08:48:41 2009 +0100
@@ -24,8 +24,8 @@
 
 
 final class OS2BMPFileFormat : FileFormat {
-    static final int BMPFileHeaderSize = 14;
-    static final int BMPHeaderFixedSize = 12;
+    static const int BMPFileHeaderSize = 14;
+    static const int BMPHeaderFixedSize = 12;
     int width, height, bitCount;
 
 override bool isFileFormat(LEDataInputStream stream) {
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/PNGFileFormat.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/PNGFileFormat.d	Tue Mar 24 08:48:41 2009 +0100
@@ -35,8 +35,8 @@
 
 
 final class PNGFileFormat : FileFormat {
-    static final int SIGNATURE_LENGTH = 8;
-    static final int PRIME = 65521;
+    static const int SIGNATURE_LENGTH = 8;
+    static const int PRIME = 65521;
     PngIhdrChunk headerChunk;
     PngPlteChunk paletteChunk;
     ImageData imageData;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/PngDecodingDataStream.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/PngDecodingDataStream.d	Tue Mar 24 08:48:41 2009 +0100
@@ -29,8 +29,8 @@
     PngLzBlockReader lzBlockReader;
     int adlerValue;
 
-    static final int PRIME = 65521;
-    static final int MAX_BIT = 7;
+    static const int PRIME = 65521;
+    static const int MAX_BIT = 7;
 
 this(InputStream stream) {
     super();
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/PngHuffmanTables.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/PngHuffmanTables.d	Tue Mar 24 08:48:41 2009 +0100
@@ -23,8 +23,8 @@
     static PngHuffmanTable FixedLiteralTable;
     static PngHuffmanTable FixedDistanceTable;
 
-    static final int LiteralTableSize = 288;
-    static final int[] FixedLiteralLengths = [
+    static const int LiteralTableSize = 288;
+    static const int[] FixedLiteralLengths = [
         8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
         8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
         8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
@@ -39,14 +39,14 @@
         7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8,
     ];
 
-    static final int DistanceTableSize = 32;
-    static final int[] FixedDistanceLengths = [
+    static const int DistanceTableSize = 32;
+    static const int[] FixedDistanceLengths = [
         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
     ];
 
-    static final int LengthCodeTableSize = 19;
-    static final int[] LengthCodeOrder = [
+    static const int LengthCodeTableSize = 19;
+    static const int[] LengthCodeOrder = [
         16, 17, 18, 0, 8, 7, 9, 6, 10, 5,
         11, 4, 12, 3, 13, 2, 14, 1, 15
     ];
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/PngInputStream.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/PngInputStream.d	Tue Mar 24 08:48:41 2009 +0100
@@ -28,7 +28,7 @@
     PngChunk chunk;
     int offset, length;
 
-    final static int DATA_OFFSET = 8;
+    const static int DATA_OFFSET = 8;
 
 public this(PngIdatChunk chunk, PngChunkReader reader) {
     this.chunk = chunk;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/TIFFModifiedHuffmanCodec.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/TIFFModifiedHuffmanCodec.d	Tue Mar 24 08:48:41 2009 +0100
@@ -22,7 +22,7 @@
 *   (TIFF compression type 3 option 1D)
 */
 final class TIFFModifiedHuffmanCodec {
-    static final short[][][] BLACK_CODE = [
+    static const short[][][] BLACK_CODE = [
         /* 2 bits  */
         [[ cast(short)2, 3], [ cast(short)3, 2]],
         /* 3 bits  */
@@ -60,7 +60,7 @@
         [ cast(short)119, 1216]]
     ];
 
-    static final short[][][] WHITE_CODE = [
+    static const short[][][] WHITE_CODE = [
         /* 4 bits */
         [[ cast(short)7, 2], [ cast(short)8, 3], [ cast(short)11, 4], [ cast(short)12, 5], [ cast(short)14, 6], [ cast(short)15, 7]],
         /* 5 bits */
@@ -91,8 +91,8 @@
         [ cast(short)28, 2368], [ cast(short)29, 2432], [ cast(short)30, 2496], [ cast(short)31, 2560]]
     ];
 
-    static final int BLACK_MIN_BITS = 2;
-    static final int WHITE_MIN_BITS = 4;
+    static const int BLACK_MIN_BITS = 2;
+    static const int WHITE_MIN_BITS = 4;
 
     bool isWhite;
     int whiteValue = 0;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/TIFFRandomFileAccess.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/TIFFRandomFileAccess.d	Tue Mar 24 08:48:41 2009 +0100
@@ -21,8 +21,8 @@
     int start, current, next;
     byte[][] buffers;
 
-    static final int CHUNK_SIZE = 8192;
-    static final int LIST_SIZE = 128;
+    static const int CHUNK_SIZE = 8192;
+    static const int LIST_SIZE = 128;
 
 public this(LEDataInputStream stream) {
     inputStream = stream;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/WinBMPFileFormat.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/image/WinBMPFileFormat.d	Tue Mar 24 08:48:41 2009 +0100
@@ -23,8 +23,8 @@
 
 final class WinBMPFileFormat : FileFormat {
 
-    static final int BMPFileHeaderSize = 14;
-    static final int BMPHeaderFixedSize = 40;
+    static const int BMPFileHeaderSize = 14;
+    static const int BMPHeaderFixedSize = 40;
     int importantColors;
     Point pelsPerMeter;
 
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/ole/win32/COM.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/ole/win32/COM.d	Tue Mar 24 08:48:41 2009 +0100
@@ -273,7 +273,7 @@
     public static const int DROPEFFECT_MOVE = 2;
     public static const int DROPEFFECT_LINK = 4;
     public static const int DROPEFFECT_SCROLL = 0x80000000;
-    public static final int DSH_ALLOWDROPDESCRIPTIONTEXT = 0x1;
+    public static const int DSH_ALLOWDROPDESCRIPTIONTEXT = 0x1;
     public static const int DV_E_FORMATETC = -2147221404;
     public static const int DV_E_STGMEDIUM = -2147221402;
     public static const int DV_E_TYMED = -2147221399;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/win32/OS.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/win32/OS.d	Tue Mar 24 08:48:41 2009 +0100
@@ -20,14 +20,15 @@
 import java.lang.all;
 
 version(Tango){
-static import tango.sys.win32.UserGdi;
 static import tango.sys.SharedLib;
 static import tango.sys.Common;
 
 static import tango.stdc.stdlib;
 static import tango.stdc.string;
+import tango.sys.win32.CodePage : CodePage;
+private import tango.stdc.stringz;
 
-alias tango.sys.win32.UserGdi WINAPI;
+
 } else { // Phobos
 }
 
@@ -3608,9 +3609,6 @@
 alias DWTWINAPI.GetScrollBarInfo GetScrollBarInfo;
 } // END of OS
 //-----------------------------------------------------------------------------
-import tango.sys.win32.CodePage : CodePage;
-private import tango.stdc.stringz;
-
 // convert UTF-8 to MBCS
 alias StrToMBCS StrToMBCSs;
 public CHAR[] StrToMBCS(char[] sc, uint codepage = 0) {
@@ -3665,7 +3663,7 @@
         ret = "";
     }
     if( terminated ){
-        ret ~= \0;
+        ret ~= "\0";
     }
     return ret;
 }
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/win32/WINAPI.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/win32/WINAPI.d	Tue Mar 24 08:48:41 2009 +0100
@@ -8,7 +8,1765 @@
 
 public import org.eclipse.swt.internal.win32.WINTYPES;
 
-import tango.sys.win32.Types;
+version(Tango){
+    import tango.sys.win32.Types;
+    static import tango.sys.win32.UserGdi;
+    public alias tango.sys.win32.UserGdi WINAPI;
+} else { // Phobos
+    struct WINAPI{ static {
+        /+ Functions +/
+        extern(Windows)
+        {
+            BOOL GetWindowInfo(HWND, PWINDOWINFO);
+            BOOL EnumDisplayMonitors(HDC, RECT*, MONITORENUMPROC, LPARAM);
+            BOOL GetMonitorInfoA(HMONITOR, LPMONITORINFO);
+            WINBOOL GetBinaryTypeA(LPCSTR, LPDWORD);
+            DWORD GetShortPathNameA(LPCSTR, LPSTR, DWORD);
+            LPSTR GetEnvironmentStringsA();
+            WINBOOL FreeEnvironmentStringsA(LPSTR);
+            DWORD FormatMessageA(DWORD, LPCVOID, DWORD, DWORD, LPSTR, DWORD, VA_LIST*);
+            HANDLE CreateMailslotA(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
+            int lstrcmpA(LPCSTR, LPCSTR);
+            int lstrcmpiA(LPCSTR, LPCSTR);
+            LPSTR lstrcpynA(LPSTR, LPCSTR, int);
+            LPSTR lstrcpyA(LPSTR, LPCSTR);
+            LPSTR lstrcatA(LPSTR, LPCSTR);
+            int lstrlenA(LPCSTR);
+            HANDLE CreateMutexA(LPSECURITY_ATTRIBUTES, WINBOOL, LPCSTR);
+            HANDLE OpenMutexA(DWORD, WINBOOL, LPCSTR);
+            HANDLE CreateEventA(LPSECURITY_ATTRIBUTES, WINBOOL, WINBOOL, LPCSTR);
+            HANDLE OpenEventA(DWORD, WINBOOL, LPCSTR);
+            HANDLE CreateSemaphoreA(LPSECURITY_ATTRIBUTES, LONG, LONG, LPCSTR);
+            HANDLE OpenSemaphoreA(DWORD, WINBOOL, LPCSTR);
+            HANDLE CreateFileMappingA(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCSTR);
+            HANDLE OpenFileMappingA(DWORD, WINBOOL, LPCSTR);
+            DWORD GetLogicalDriveStringsA(DWORD, LPSTR);
+            HINST LoadLibraryA(LPCSTR);
+            HINST LoadLibraryExA(LPCSTR, HANDLE, DWORD);
+            DWORD GetModuleFileNameA(HINST, LPSTR, DWORD);
+            HMODULE GetModuleHandleA(LPCSTR);
+            void FatalAppExitA(UINT);
+            LPSTR GetCommandLineA();
+            DWORD GetEnvironmentVariableA(LPCSTR, LPSTR, DWORD);
+            WINBOOL SetEnvironmentVariableA(LPCSTR, LPCSTR);
+            DWORD ExpandEnvironmentStringsA(LPCSTR, LPSTR, DWORD);
+            void OutputDebugStringA(LPCSTR);
+            HRSRC FindResourceA(HINST, LPCSTR, LPCSTR);
+            HRSRC FindResourceExA(HINST, LPCSTR, LPCSTR, ushort);
+            WINBOOL EnumResourceTypesA(HINST, ENUMRESTYPEPROC, LONG);
+            WINBOOL EnumResourceNamesA(HINST, LPCSTR, ENUMRESNAMEPROC, LONG);
+            WINBOOL EnumResourceLanguagesA(HINST, LPCSTR, LPCSTR, ENUMRESLANGPROC, LONG);
+            HANDLE BeginUpdateResourceA(LPCSTR, WINBOOL);
+            WINBOOL UpdateResourceA(HANDLE, LPCSTR, LPCSTR, ushort, LPVOID, DWORD);
+            WINBOOL EndUpdateResourceA(HANDLE, WINBOOL);
+            ATOM GlobalAddAtomA(LPCSTR);
+            ATOM GlobalFindAtomA(LPCSTR);
+            UINT GlobalGetAtomNameA(ATOM, LPSTR, int);
+            ATOM AddAtomA(LPCSTR);
+            ATOM FindAtomA(LPCSTR);
+            UINT GetAtomNameA(ATOM, LPSTR, int);
+            UINT GetProfileIntA(LPCSTR, LPCSTR, INT);
+            DWORD GetProfileStringA(LPCSTR, LPCSTR, LPCSTR, LPSTR, DWORD);
+            WINBOOL WriteProfileStringA(LPCSTR, LPCSTR, LPCSTR);
+            DWORD GetProfileSectionA(LPCSTR, LPSTR, DWORD);
+            WINBOOL WriteProfileSectionA(LPCSTR, LPCSTR);
+            UINT GetPrivateProfileIntA(LPCSTR, LPCSTR, INT, LPCSTR);
+            DWORD GetPrivateProfileStringA(LPCSTR, LPCSTR, LPCSTR, LPSTR, DWORD, LPCSTR);
+            WINBOOL WritePrivateProfileStringA(LPCSTR, LPCSTR, LPCSTR, LPCSTR);
+            DWORD GetPrivateProfileSectionA(LPCSTR, LPSTR, DWORD, LPCSTR);
+            WINBOOL WritePrivateProfileSectionA(LPCSTR, LPCSTR, LPCSTR);
+            UINT GetDriveTypeA(LPCSTR);
+            UINT GetSystemDirectoryA(LPSTR, UINT);
+            DWORD GetTempPathA(DWORD, LPSTR);
+            UINT GetTempFileNameA(LPCSTR, LPCSTR, UINT, LPSTR);
+            UINT GetWindowsDirectoryA(LPSTR, UINT);
+            WINBOOL SetCurrentDirectoryA(LPCSTR);
+            DWORD GetCurrentDirectoryA(DWORD, LPSTR);
+            WINBOOL GetDiskFreeSpaceA(LPCSTR, LPDWORD, LPDWORD, LPDWORD, LPDWORD);
+            WINBOOL CreateDirectoryA(LPCSTR, LPSECURITY_ATTRIBUTES);
+            WINBOOL CreateDirectoryExA(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES);
+            WINBOOL RemoveDirectoryA(LPCSTR);
+            DWORD GetFullPathNameA(LPCSTR, DWORD, LPSTR, LPSTR*);
+            WINBOOL DefineDosDeviceA(DWORD, LPCSTR, LPCSTR);
+            DWORD QueryDosDeviceA(LPCSTR, LPSTR, DWORD);
+            HANDLE CreateFileA(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
+            WINBOOL SetFileAttributesA(LPCSTR, DWORD);
+            DWORD GetFileAttributesA(LPCSTR);
+            BOOL GetFileAttributesExA(LPCSTR, DWORD, WIN32_FILE_ATTRIBUTE_DATA*);
+            DWORD GetCompressedFileSizeA(LPCSTR, LPDWORD);
+            WINBOOL DeleteFileA(LPCSTR);
+            DWORD SearchPathA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPSTR);
+            WINBOOL CopyFileA(LPCSTR, LPCSTR, WINBOOL);
+            WINBOOL MoveFileA(LPCSTR, LPCSTR);
+            WINBOOL MoveFileExA(LPCSTR, LPCSTR, DWORD);
+            HANDLE CreateNamedPipeA(LPCSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
+            WINBOOL GetNamedPipeHandleStateA(HANDLE, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPSTR, DWORD);
+            WINBOOL CallNamedPipeA(LPCSTR, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, DWORD);
+            WINBOOL WaitNamedPipeA(LPCSTR, DWORD);
+            WINBOOL SetVolumeLabelA(LPCSTR, LPCSTR);
+            WINBOOL GetVolumeInformationA(LPCSTR, LPSTR, DWORD, LPDWORD, LPDWORD, LPDWORD, LPSTR, DWORD);
+            WINBOOL ClearEventLogA(HANDLE, LPCSTR);
+            WINBOOL BackupEventLogA(HANDLE, LPCSTR);
+            HANDLE OpenEventLogA(LPCSTR, LPCSTR);
+            HANDLE RegisterEventSourceA(LPCSTR, LPCSTR);
+            HANDLE OpenBackupEventLogA(LPCSTR, LPCSTR);
+            WINBOOL ReadEventLogA(HANDLE, DWORD, DWORD, LPVOID, DWORD, LPDWORD, LPDWORD);
+            WINBOOL ReportEventA(HANDLE, ushort, ushort, DWORD, PSID, ushort, DWORD, LPCSTR*, LPVOID);
+            WINBOOL AccessCheckAndAuditAlarmA(LPCSTR, LPVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, WINBOOL, LPDWORD, LPBOOL, LPBOOL);
+            WINBOOL ObjectOpenAuditAlarmA(LPCSTR, LPVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, WINBOOL, WINBOOL, LPBOOL);
+            WINBOOL ObjectPrivilegeAuditAlarmA(LPCSTR, LPVOID, HANDLE, DWORD, PPRIVILEGE_SET, WINBOOL);
+            WINBOOL ObjectCloseAuditAlarmA(LPCSTR, LPVOID, WINBOOL);
+            WINBOOL PrivilegedServiceAuditAlarmA(LPCSTR, LPCSTR, HANDLE, PPRIVILEGE_SET, WINBOOL);
+            WINBOOL SetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR);
+            WINBOOL GetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, LPDWORD);
+            HANDLE FindFirstChangeNotificationA(LPCSTR, WINBOOL, DWORD);
+            WINBOOL IsBadStringPtrA(LPCSTR, UINT);
+            WINBOOL LookupAccountSidA(LPCSTR, PSID, LPSTR, LPDWORD, LPSTR, LPDWORD, PSID_NAME_USE);
+            WINBOOL LookupAccountNameA(LPCSTR, LPCSTR, PSID, LPDWORD, LPSTR, LPDWORD, PSID_NAME_USE);
+            WINBOOL LookupPrivilegeValueA(LPCSTR, LPCSTR, PLUID);
+            WINBOOL LookupPrivilegeNameA(LPCSTR, PLUID, LPSTR, LPDWORD);
+            WINBOOL LookupPrivilegeDisplayNameA(LPCSTR, LPCSTR, LPSTR, LPDWORD, LPDWORD);
+            WINBOOL BuildCommDCBA(LPCSTR, LPDCB);
+            WINBOOL BuildCommDCBAndTimeoutsA(LPCSTR, LPDCB, LPCOMMTIMEOUTS);
+            WINBOOL CommConfigDialogA(LPCSTR, HWND, LPCOMMCONFIG);
+            WINBOOL GetDefaultCommConfigA(LPCSTR, LPCOMMCONFIG, LPDWORD);
+            WINBOOL SetDefaultCommConfigA(LPCSTR, LPCOMMCONFIG, DWORD);
+            WINBOOL GetComputerNameA(LPSTR, LPDWORD);
+            WINBOOL SetComputerNameA(LPCSTR);
+            WINBOOL GetUserNameA(LPSTR, LPDWORD);
+            int wvsprintfA(LPSTR, LPCSTR, VA_LIST*);
+            HKL LoadKeyboardLayoutA(LPCSTR, UINT);
+            WINBOOL GetKeyboardLayoutNameA(LPSTR);
+            HDESK CreateDesktopA(LPSTR, LPSTR, LPDEVMODE, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
+            HDESK OpenDesktopA(LPSTR, DWORD, WINBOOL, DWORD);
+            WINBOOL EnumDesktopsA(HWINSTA, DESKTOPENUMPROC, LPARAM);
+            HWINSTA CreateWindowStationA(LPSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
+            HWINSTA OpenWindowStationA(LPSTR, WINBOOL, DWORD);
+            WINBOOL EnumWindowStationsA(ENUMWINDOWSTATIONPROC, LPARAM);
+            WINBOOL GetUserObjectInformationA(HANDLE, int, PVOID, DWORD, LPDWORD);
+            WINBOOL SetUserObjectInformationA(HANDLE, int, PVOID, DWORD);
+            UINT RegisterWindowMessageA(LPCSTR);
+            WINBOOL GetMessageA(LPMSG, HWND, UINT, UINT);
+            LONG DispatchMessageA(LPMSG);
+            WINBOOL PeekMessageA(LPMSG, HWND, UINT, UINT, UINT);
+            LRESULT SendMessageA(HWND, UINT, WPARAM, LPARAM);
+            LRESULT SendMessageA(HWND, UINT, void*, LPARAM);
+            LRESULT SendMessageA(HWND, UINT, WPARAM, void*);
+            LRESULT SendMessageA(HWND, UINT, void*, void*);
+            LRESULT SendMessageTimeoutA(HWND, UINT, WPARAM, LPARAM, UINT, UINT, LPDWORD);
+            WINBOOL SendNotifyMessageA(HWND, UINT, WPARAM, LPARAM);
+            WINBOOL SendMessageCallbackA(HWND, UINT, WPARAM, LPARAM, SENDASYNCPROC, DWORD);
+            WINBOOL PostMessageA(HWND, UINT, WPARAM, LPARAM);
+            WINBOOL PostThreadMessageA(DWORD, UINT, WPARAM, LPARAM);
+            LRESULT DefWindowProcA(HWND, UINT, WPARAM, LPARAM);
+            LRESULT CallWindowProcA(WNDPROC, HWND, UINT, WPARAM, LPARAM);
+            ATOM RegisterClassA(LPWNDCLASSA);
+            WINBOOL UnregisterClassA(LPCSTR, HINST);
+            WINBOOL GetClassInfoA(HINST, LPCSTR, LPWNDCLASS);
+            ATOM RegisterClassExA(LPWNDCLASSEX);
+            WINBOOL GetClassInfoExA(HINST, LPCSTR, LPWNDCLASSEX);
+            HWND CreateWindowExA(DWORD, LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HMENU, HINST, LPVOID);
+            HWND CreateDialogParamA(HINST, LPCSTR, HWND, DLGPROC, LPARAM);
+            HWND CreateDialogIndirectParamA(HINST, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM);
+            int DialogBoxParamA(HINST, LPCSTR, HWND, DLGPROC, LPARAM);
+            int DialogBoxIndirectParamA(HINST, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM);
+            WINBOOL SetDlgItemTextA(HWND, int, LPCSTR);
+            UINT GetDlgItemTextA(HWND, int, LPSTR, int);
+            LONG SendDlgItemMessageA(HWND, int, UINT, WPARAM, LPARAM);
+            LRESULT DefDlgProcA(HWND, UINT, WPARAM, LPARAM);
+            WINBOOL CallMsgFilterA(LPMSG, int);
+            UINT RegisterClipboardFormatA(LPCSTR);
+            int GetClipboardFormatNameA(UINT, LPSTR, int);
+            WINBOOL CharToOemA(LPCSTR, LPSTR);
+            WINBOOL OemToCharA(LPCSTR, LPSTR);
+            WINBOOL CharToOemBuffA(LPCSTR, LPSTR, DWORD);
+            WINBOOL OemToCharBuffA(LPCSTR, LPSTR, DWORD);
+            LPSTR CharUpperA(LPSTR);
+            DWORD CharUpperBuffA(LPSTR, DWORD);
+            LPSTR CharLowerA(LPSTR);
+            DWORD CharLowerBuffA(LPSTR, DWORD);
+            LPSTR CharNextA(LPCSTR);
+            LPSTR CharPrevA(LPCSTR, LPCSTR);
+            WINBOOL IsCharAlphaA(char);
+            WINBOOL IsCharAlphaNumericA(char);
+            WINBOOL IsCharUpperA(char);
+            WINBOOL IsCharLowerA(char);
+            int GetKeyNameTextA(LONG, LPSTR, int);
+            SHORT VkKeyScanA(char);
+            SHORT VkKeyScanExA(char, HKL);
+            UINT MapVirtualKeyA(UINT, UINT);
+            UINT MapVirtualKeyExA(UINT, UINT, HKL);
+            HACCEL LoadAcceleratorsA(HINST, LPCSTR);
+            HACCEL CreateAcceleratorTableA(LPACCEL, int);
+            int CopyAcceleratorTableA(HACCEL, LPACCEL, int);
+            int TranslateAcceleratorA(HWND, HACCEL, LPMSG);
+            HMENU LoadMenuA(HINST, LPCSTR);
+            HMENU LoadMenuIndirectA(LPMENUTEMPLATE);
+            WINBOOL ChangeMenuA(HMENU, UINT, LPCSTR, UINT, UINT);
+            int GetMenuStringA(HMENU, UINT, LPSTR, int, UINT);
+            WINBOOL InsertMenuA(HMENU, UINT, UINT, UINT, LPCSTR);
+            WINBOOL AppendMenuA(HMENU, UINT, UINT, LPCSTR);
+            WINBOOL ModifyMenuA(HMENU, UINT, UINT, UINT, LPCSTR);
+            WINBOOL InsertMenuItemA(HMENU, UINT, WINBOOL, LPCMENUITEMINFO);
+            WINBOOL GetMenuItemInfoA(HMENU, UINT, WINBOOL, LPMENUITEMINFO);
+            WINBOOL SetMenuItemInfoA(HMENU, UINT, WINBOOL, LPCMENUITEMINFO);
+            int DrawTextA(HDC, LPCSTR, int, LPRECT, UINT);
+            int DrawTextExA(HDC, LPSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS);
+            WINBOOL GrayStringA(HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, int, int, int, int, int);
+            WINBOOL DrawStateA(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT);
+            LONG TabbedTextOutA(HDC, int, int, LPCSTR, int, int, LPINT, int);
+            DWORD GetTabbedTextExtentA(HDC, LPCSTR, int, int, LPINT);
+            WINBOOL SetPropA(HWND, LPCSTR, HANDLE);
+            HANDLE GetPropA(HWND, LPCSTR);
+            HANDLE RemovePropA(HWND, LPCSTR);
+            int EnumPropsExA(HWND, PROPENUMPROCEX, LPARAM);
+            int EnumPropsA(HWND, PROPENUMPROC);
+            WINBOOL SetWindowTextA(HWND, LPCSTR);
+            int GetWindowTextA(HWND, LPSTR, int);
+            int GetWindowTextLengthA(HWND);
+            int MessageBoxA(HWND, LPCSTR, LPCSTR, UINT);
+            int MessageBoxExA(HWND, LPCSTR, LPCSTR, UINT, ushort);
+            int MessageBoxIndirectA(LPMSGBOXPARAMS);
+            LONG GetWindowLongA(HWND, int);
+            LONG SetWindowLongA(HWND, int, LONG);
+            DWORD GetClassLongA(HWND, int);
+            DWORD SetClassLongA(HWND, int, LONG);
+            HWND FindWindowA(LPCSTR, LPCSTR);
+            HWND FindWindowExA(HWND, HWND, LPCSTR, LPCSTR);
+            int GetClassNameA(HWND, LPSTR, int);
+            HHOOK SetWindowsHookExA(int, HOOKPROC, HINST, DWORD);
+            HBITMAP LoadBitmapA(HINST, LPCSTR);
+            HCURSOR LoadCursorA(HINST, LPCSTR);
+            HCURSOR LoadCursorFromFileA(LPCSTR);
+            HICON LoadIconA(HINST, LPCSTR);
+            HANDLE LoadImageA(HINST, LPCSTR, UINT, int, int, UINT);
+            int LoadStringA(HINST, UINT, LPSTR, int);
+            WINBOOL IsDialogMessageA(HWND, LPMSG);
+            int DlgDirListA(HWND, LPSTR, int, int, UINT);
+            WINBOOL DlgDirSelectExA(HWND, LPSTR, int, int);
+            int DlgDirListComboBoxA(HWND, LPSTR, int, int, UINT);
+            WINBOOL DlgDirSelectComboBoxExA(HWND, LPSTR, int, int);
+            LRESULT DefFrameProcA(HWND, HWND, UINT, WPARAM, LPARAM);
+            LRESULT DefMDIChildProcA(HWND, UINT, WPARAM, LPARAM);
+            HWND CreateMDIWindowA(LPSTR, LPSTR, DWORD, int, int, int, int, HWND, HINST, LPARAM);
+            WINBOOL WinHelpA(HWND, LPCSTR, UINT, DWORD);
+            LONG ChangeDisplaySettingsA(LPDEVMODE, DWORD);
+            WINBOOL EnumDisplaySettingsA(LPCSTR, DWORD, LPDEVMODE);
+            WINBOOL SystemParametersInfoA(UINT, UINT, PVOID, UINT);
+            int AddFontResourceA(LPCSTR);
+            HMETAFILE CopyMetaFileA(HMETAFILE, LPCSTR);
+            HFONT CreateFontIndirectA(LPLOGFONT);
+            HDC CreateICA(LPCSTR, LPCSTR, LPCSTR, LPDEVMODE);
+            HDC CreateMetaFileA(LPCSTR);
+            WINBOOL CreateScalableFontResourceA(DWORD, LPCSTR, LPCSTR, LPCSTR);
+            int EnumFontFamiliesExA(HDC, LPLOGFONT, FONTENUMEXPROC, LPARAM, DWORD);
+            int EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROC, LPARAM);
+            int EnumFontsA(HDC, LPCSTR, ENUMFONTSPROC, LPARAM);
+            WINBOOL GetCharWidthA(HDC, UINT, UINT, LPINT);
+            WINBOOL GetCharWidth32A(HDC, UINT, UINT, LPINT);
+            WINBOOL GetCharWidthFloatA(HDC, UINT, UINT, PFLOAT);
+            WINBOOL GetCharABCWidthsA(HDC, UINT, UINT, LPABC);
+            WINBOOL GetCharABCWidthsFloatA(HDC, UINT, UINT, LPABCFLOAT);
+            DWORD GetGlyphOutlineA(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, LPVOID, PMAT2);
+            HMETAFILE GetMetaFileA(LPCSTR);
+            UINT GetOutlineTextMetricsA(HDC, UINT, LPOUTLINETEXTMETRIC);
+            WINBOOL GetTextExtentPointA(HDC, LPCSTR, int, LPSIZE);
+            WINBOOL GetTextExtentPoint32A(HDC, LPCSTR, int, LPSIZE);
+            WINBOOL GetTextExtentExPointA(HDC, LPCSTR, int, int, LPINT, LPINT, LPSIZE);
+            DWORD GetCharacterPlacementA(HDC, LPCSTR, int, int, LPGCP_RESULTS, DWORD);
+            HDC ResetDCA(HDC, LPDEVMODE);
+            WINBOOL RemoveFontResourceA(LPCSTR);
+            HENHMETAFILE CopyEnhMetaFileA(HENHMETAFILE, LPCSTR);
+            HDC CreateEnhMetaFileA(HDC, LPCSTR, LPRECT, LPCSTR);
+            HENHMETAFILE GetEnhMetaFileA(LPCSTR);
+            UINT GetEnhMetaFileDescriptionA(HENHMETAFILE, UINT, LPSTR);
+            WINBOOL GetTextMetricsA(HDC, LPTEXTMETRIC);
+            int StartDocA(HDC, PDOCINFO);
+            int GetObjectA(HGDIOBJ, int, LPVOID);
+            WINBOOL TextOutA(HDC, int, int, LPCSTR, int);
+            WINBOOL ExtTextOutA(HDC, int, int, UINT, LPRECT, LPCSTR, UINT, LPINT);
+            WINBOOL PolyTextOutA(HDC, PPOLYTEXT, int);
+            int GetTextFaceA(HDC, int, LPSTR);
+            DWORD GetKerningPairsA(HDC, DWORD, LPKERNINGPAIR);
+            HCOLORSPACE CreateColorSpaceA(LPLOGCOLORSPACE);
+            WINBOOL GetLogColorSpaceA(HCOLORSPACE, LPLOGCOLORSPACE, DWORD);
+            WINBOOL GetICMProfileA(HDC, DWORD, LPSTR);
+            WINBOOL SetICMProfileA(HDC, LPSTR);
+            WINBOOL UpdateICMRegKeyA(DWORD, DWORD, LPSTR, UINT);
+            int EnumICMProfilesA(HDC, ICMENUMPROC, LPARAM);
+            int PropertySheetA(LPCPROPSHEETHEADER);
+            HIMAGELIST ImageList_LoadImageA(HINST, LPCSTR, int, int, COLORREF, UINT, UINT);
+            HWND CreateStatusWindowA(LONG, LPCSTR, HWND, UINT);
+            void DrawStatusTextA(HDC, LPRECT, LPCSTR);
+            WINBOOL GetOpenFileNameA(LPOPENFILENAME);
+            WINBOOL GetSaveFileNameA(LPOPENFILENAME);
+            int GetFileTitleA(LPCSTR, LPSTR, ushort);
+            WINBOOL ChooseColorA(LPCHOOSECOLOR);
+            HWND FindTextA(LPFINDREPLACE);
+            HWND ReplaceTextA(LPFINDREPLACE);
+            WINBOOL ChooseFontA(LPCHOOSEFONTA);
+            WINBOOL PrintDlgA(LPPRINTDLGA);
+            WINBOOL PageSetupDlgA(LPPAGESETUPDLG);
+            WINBOOL CreateProcessA(LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, WINBOOL, DWORD, LPVOID, LPCSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION);
+            void GetStartupInfoA(LPSTARTUPINFO);
+            HANDLE FindFirstFileA(LPCSTR, LPWIN32_FIND_DATA);
+            WINBOOL FindNextFileA(HANDLE, LPWIN32_FIND_DATA);
+            WINBOOL GetVersionExA(LPOSVERSIONINFO);
+            HDC CreateDCA(LPCSTR, LPCSTR, LPCSTR, PDEVMODE);
+            DWORD VerInstallFileA(DWORD, LPSTR, LPSTR, LPSTR, LPSTR, LPSTR, LPSTR, PUINT);
+            DWORD GetFileVersionInfoSizeA(LPSTR, LPDWORD);
+            WINBOOL GetFileVersionInfoA(LPSTR, DWORD, DWORD, LPVOID);
+            DWORD VerLanguageNameA(DWORD, LPSTR, DWORD);
+            WINBOOL VerQueryValueA(LPVOID, LPSTR, LPVOID, PUINT);
+            DWORD VerFindFileA(DWORD, LPSTR, LPSTR, LPSTR, LPSTR, PUINT, LPSTR, PUINT);
+            LONG RegConnectRegistryA(LPSTR, HKEY, PHKEY);
+            LONG RegCreateKeyA(HKEY, LPCSTR, PHKEY);
+            LONG RegCreateKeyExA(HKEY, LPCSTR, DWORD, LPSTR, DWORD, REGSAM, LPSECURITY_ATTRIBUTES, PHKEY, LPDWORD);
+            LONG RegDeleteKeyA(HKEY, LPCSTR);
+            LONG RegDeleteValueA(HKEY, LPCSTR);
+            LONG RegEnumKeyA(HKEY, DWORD, LPSTR, DWORD);
+            LONG RegEnumKeyExA(HKEY, DWORD, LPSTR, LPDWORD, LPDWORD, LPSTR, LPDWORD, PFILETIME);
+            LONG RegEnumValueA(HKEY, DWORD, LPSTR, LPDWORD, LPDWORD, LPDWORD, LPBYTE, LPDWORD);
+            LONG RegLoadKeyA(HKEY, LPCSTR, LPCSTR);
+            LONG RegOpenKeyA(HKEY, LPCSTR, PHKEY);
+            LONG RegOpenKeyExA(HKEY, LPCSTR, DWORD, REGSAM, PHKEY);
+            LONG RegQueryInfoKeyA(HKEY, LPSTR, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, PFILETIME);
+            LONG RegQueryValueA(HKEY, LPCSTR, LPSTR, PLONG);
+            LONG RegQueryMultipleValuesA(HKEY, PVALENT, DWORD, LPSTR, LPDWORD);
+            LONG RegQueryValueExA(HKEY, LPCSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD);
+            LONG RegReplaceKeyA(HKEY, LPCSTR, LPCSTR, LPCSTR);
+            LONG RegRestoreKeyA(HKEY, LPCSTR, DWORD);
+            LONG RegSaveKeyA(HKEY, LPCSTR, LPSECURITY_ATTRIBUTES);
+            LONG RegSetValueA(HKEY, LPCSTR, DWORD, LPCSTR, DWORD);
+            LONG RegSetValueExA(HKEY, LPCSTR, DWORD, DWORD, LPBYTE, DWORD);
+            LONG RegUnLoadKeyA(HKEY, LPCSTR);
+            WINBOOL InitiateSystemShutdownA(LPSTR, LPSTR, DWORD, WINBOOL, WINBOOL);
+            WINBOOL AbortSystemShutdownA(LPSTR);
+            int CompareStringA(LCID, DWORD, LPCSTR, int, LPCSTR, int);
+            int LCMapStringA(LCID, DWORD, LPCSTR, int, LPSTR, int);
+            int GetLocaleInfoA(LCID, LCTYPE, LPSTR, int);
+            WINBOOL SetLocaleInfoA(LCID, LCTYPE, LPCSTR);
+            int GetTimeFormatA(LCID, DWORD, LPSYSTEMTIME, LPCSTR, LPSTR, int);
+            int GetDateFormatA(LCID, DWORD, LPSYSTEMTIME, LPCSTR, LPSTR, int);
+            int GetNumberFormatA(LCID, DWORD, LPCSTR, PNUMBERFMT, LPSTR, int);
+            int GetCurrencyFormatA(LCID, DWORD, LPCSTR, PCURRENCYFMT, LPSTR, int);
+            WINBOOL EnumCalendarInfoA(CALINFO_ENUMPROC, LCID, CALID, CALTYPE);
+            WINBOOL EnumTimeFormatsA(TIMEFMT_ENUMPROC, LCID, DWORD);
+            WINBOOL EnumDateFormatsA(DATEFMT_ENUMPROC, LCID, DWORD);
+            WINBOOL GetStringTypeExA(LCID, DWORD, LPCSTR, int, LPWORD);
+            WINBOOL GetStringTypeA(LCID, DWORD, LPCSTR, int, LPWORD);
+            int FoldStringA(DWORD, LPCSTR, int, LPSTR, int);
+            WINBOOL EnumSystemLocalesA(LOCALE_ENUMPROC, DWORD);
+            WINBOOL EnumSystemCodePagesA(CODEPAGE_ENUMPROC, DWORD);
+            WINBOOL PeekConsoleInputA(HANDLE, PINPUTRECORD, DWORD, LPDWORD);
+            WINBOOL ReadConsoleInputA(HANDLE, PINPUTRECORD, DWORD, LPDWORD);
+            WINBOOL WriteConsoleInputA(HANDLE, PINPUTRECORD, DWORD, LPDWORD);
+            WINBOOL ReadConsoleOutputA(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT);
+            WINBOOL WriteConsoleOutputA(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT);
+            WINBOOL ReadConsoleOutputCharacterA(HANDLE, LPSTR, DWORD, COORD, LPDWORD);
+            WINBOOL WriteConsoleOutputCharacterA(HANDLE, LPCSTR, DWORD, COORD, LPDWORD);
+            WINBOOL FillConsoleOutputCharacterA(HANDLE, char, DWORD, COORD, LPDWORD);
+            WINBOOL ScrollConsoleScreenBufferA(HANDLE, PSMALL_RECT, PSMALL_RECT, COORD, PCHAR_INFO);
+            DWORD GetConsoleTitleA(LPSTR, DWORD);
+            WINBOOL SetConsoleTitleA(LPCSTR);
+            WINBOOL ReadConsoleA(HANDLE, LPVOID, DWORD, LPDWORD, LPVOID);
+            WINBOOL WriteConsoleA(HANDLE, POINTER, DWORD, LPDWORD, LPVOID);
+            DWORD WNetAddConnectionA(LPCSTR, LPCSTR, LPCSTR);
+            DWORD WNetAddConnection2A(LPNETRESOURCE, LPCSTR, LPCSTR, DWORD);
+            DWORD WNetAddConnection3A(HWND, LPNETRESOURCE, LPCSTR, LPCSTR, DWORD);
+            DWORD WNetCancelConnectionA(LPCSTR, WINBOOL);
+            DWORD WNetCancelConnection2A(LPCSTR, DWORD, WINBOOL);
+            DWORD WNetGetConnectionA(LPCSTR, LPSTR, LPDWORD);
+            DWORD WNetUseConnectionA(HWND, LPNETRESOURCE, LPCSTR, LPCSTR, DWORD, LPSTR, LPDWORD, LPDWORD);
+            DWORD WNetSetConnectionA(LPCSTR, DWORD, LPVOID);
+            DWORD WNetConnectionDialog1A(LPCONNECTDLGSTRUCT);
+            DWORD WNetDisconnectDialog1A(LPDISCDLGSTRUCT);
+            DWORD WNetOpenEnumA(DWORD, DWORD, DWORD, LPNETRESOURCE, LPHANDLE);
+            DWORD WNetEnumResourceA(HANDLE, LPDWORD, LPVOID, LPDWORD);
+            DWORD WNetGetUniversalNameA(LPCSTR, DWORD, LPVOID, LPDWORD);
+            DWORD WNetGetUserA(LPCSTR, LPSTR, LPDWORD);
+            DWORD WNetGetProviderNameA(DWORD, LPSTR, LPDWORD);
+            DWORD WNetGetNetworkInformationA(LPCSTR, LPNETINFOSTRUCT);
+            DWORD WNetGetLastErrorA(LPDWORD, LPSTR, DWORD, LPSTR, DWORD);
+            DWORD MultinetGetConnectionPerformanceA(LPNETRESOURCE, LPNETCONNECTINFOSTRUCT);
+            WINBOOL ChangeServiceConfigA(SC_HANDLE, DWORD, DWORD, DWORD, LPCSTR, LPCSTR, LPDWORD, LPCSTR, LPCSTR, LPCSTR, LPCSTR);
+            SC_HANDLE CreateServiceA(SC_HANDLE, LPCSTR, LPCSTR, DWORD, DWORD, DWORD, DWORD, LPCSTR, LPCSTR, LPDWORD, LPCSTR, LPCSTR, LPCSTR);
+            WINBOOL EnumDependentServicesA(SC_HANDLE, DWORD, LPENUM_SERVICE_STATUS, DWORD, LPDWORD, LPDWORD);
+            WINBOOL EnumServicesStatusA(SC_HANDLE, DWORD, DWORD, LPENUM_SERVICE_STATUS, DWORD, LPDWORD, LPDWORD, LPDWORD);
+            WINBOOL GetServiceKeyNameA(SC_HANDLE, LPCSTR, LPSTR, LPDWORD);
+            WINBOOL GetServiceDisplayNameA(SC_HANDLE, LPCSTR, LPSTR, LPDWORD);
+            SC_HANDLE OpenSCManagerA(LPCSTR, LPCSTR, DWORD);
+            SC_HANDLE OpenServiceA(SC_HANDLE, LPCSTR, DWORD);
+            WINBOOL QueryServiceConfigA(SC_HANDLE, LPQUERY_SERVICE_CONFIG, DWORD, LPDWORD);
+            WINBOOL QueryServiceLockStatusA(SC_HANDLE, LPQUERY_SERVICE_LOCK_STATUS, DWORD, LPDWORD);
+            SERVICE_STATUS_HANDLE RegisterServiceCtrlHandlerA(LPCSTR, LPHANDLER_FUNCTION);
+            WINBOOL StartServiceCtrlDispatcherA(LPSERVICE_TABLE_ENTRY);
+            WINBOOL StartServiceA(SC_HANDLE, DWORD, LPCSTR);
+            uint DragQueryFileA(HDROP, uint, PCHAR, uint);
+            HICON ExtractAssociatedIconA(HINST, PCHAR, LPWORD);
+            HICON ExtractIconA(HINST, PCHAR, uint);
+            HINST FindExecutableA(PCHAR, PCHAR, PCHAR);
+            int ShellAboutA(HWND, PCHAR, PCHAR, HICON);
+            HINST ShellExecuteA(HWND, PCHAR, PCHAR, PCHAR, PCHAR, int);
+            HSZ DdeCreateStringHandleA(DWORD, PCHAR, int);
+            UINT DdeInitializeA(LPDWORD, PFNCALLBACK, DWORD, DWORD);
+            DWORD DdeQueryStringA(DWORD, HSZ, PCHAR, DWORD, int);
+            WINBOOL LogonUserA(LPSTR, LPSTR, LPSTR, DWORD, DWORD, PHANDLE);
+            WINBOOL CreateProcessAsUserA(HANDLE, LPCTSTR, LPTSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, WINBOOL, DWORD, LPVOID, LPCTSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION);
+            WINBOOL GetBinaryTypeW(LPCWSTR, LPDWORD);
+            DWORD GetShortPathNameW(LPCWSTR, LPWSTR, DWORD);
+            LPWSTR GetEnvironmentStringsW();
+            WINBOOL FreeEnvironmentStringsW(LPWSTR);
+            DWORD FormatMessageW(DWORD, LPCVOID, DWORD, DWORD, LPWSTR, DWORD, VA_LIST*);
+            HANDLE CreateMailslotW(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
+            int lstrcmpW(LPCWSTR, LPCWSTR);
+            int lstrcmpiW(LPCWSTR, LPCWSTR);
+            LPWSTR lstrcpynW(LPWSTR, LPCWSTR, int);
+            LPWSTR lstrcpyW(LPWSTR, LPCWSTR);
+            LPWSTR lstrcatW(LPWSTR, LPCWSTR);
+            int lstrlenW(LPCWSTR);
+            HANDLE CreateMutexW(LPSECURITY_ATTRIBUTES, WINBOOL, LPCWSTR);
+            HANDLE OpenMutexW(DWORD, WINBOOL, LPCWSTR);
+            HANDLE CreateEventW(LPSECURITY_ATTRIBUTES, WINBOOL, WINBOOL, LPCWSTR);
+            HANDLE OpenEventW(DWORD, WINBOOL, LPCWSTR);
+            HANDLE CreateSemaphoreW(LPSECURITY_ATTRIBUTES, LONG, LONG, LPCWSTR);
+            HANDLE OpenSemaphoreW(DWORD, WINBOOL, LPCWSTR);
+            HANDLE CreateFileMappingW(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCWSTR);
+            HANDLE OpenFileMappingW(DWORD, WINBOOL, LPCWSTR);
+            DWORD GetLogicalDriveStringsW(DWORD, LPWSTR);
+            HINST LoadLibraryW(LPCWSTR);
+            HINST LoadLibraryExW(LPCWSTR, HANDLE, DWORD);
+            DWORD GetModuleFileNameW(HINST, LPWSTR, DWORD);
+            HMODULE GetModuleHandleW(LPCWSTR);
+            void FatalAppExitW(UINT);
+            LPWSTR GetCommandLineW();
+            DWORD GetEnvironmentVariableW(LPCWSTR, LPWSTR, DWORD);
+            WINBOOL SetEnvironmentVariableW(LPCWSTR, LPCWSTR);
+            DWORD ExpandEnvironmentStringsW(LPCWSTR, LPWSTR, DWORD);
+            void OutputDebugStringW(LPCWSTR);
+            HRSRC FindResourceW(HINST, LPCWSTR, LPCWSTR);
+            HRSRC FindResourceExW(HINST, LPCWSTR, LPCWSTR, ushort);
+            WINBOOL EnumResourceTypesW(HINST, ENUMRESTYPEPROC, LONG);
+            WINBOOL EnumResourceNamesW(HINST, LPCWSTR, ENUMRESNAMEPROC, LONG);
+            WINBOOL EnumResourceLanguagesW(HINST, LPCWSTR, LPCWSTR, ENUMRESLANGPROC, LONG);
+            HANDLE BeginUpdateResourceW(LPCWSTR, WINBOOL);
+            WINBOOL UpdateResourceW(HANDLE, LPCWSTR, LPCWSTR, ushort, LPVOID, DWORD);
+            WINBOOL EndUpdateResourceW(HANDLE, WINBOOL);
+            ATOM GlobalAddAtomW(LPCWSTR);
+            ATOM GlobalFindAtomW(LPCWSTR);
+            UINT GlobalGetAtomNameW(ATOM, LPWSTR, int);
+            ATOM AddAtomW(LPCWSTR);
+            ATOM FindAtomW(LPCWSTR);
+            UINT GetAtomNameW(ATOM, LPWSTR, int);
+            UINT GetProfileIntW(LPCWSTR, LPCWSTR, INT);
+            DWORD GetProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD);
+            WINBOOL WriteProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR);
+            DWORD GetProfileSectionW(LPCWSTR, LPWSTR, DWORD);
+            WINBOOL WriteProfileSectionW(LPCWSTR, LPCWSTR);
+            UINT GetPrivateProfileIntW(LPCWSTR, LPCWSTR, INT, LPCWSTR);
+            DWORD GetPrivateProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD, LPCWSTR);
+            WINBOOL WritePrivateProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR);
+            DWORD GetPrivateProfileSectionW(LPCWSTR, LPWSTR, DWORD, LPCWSTR);
+            WINBOOL WritePrivateProfileSectionW(LPCWSTR, LPCWSTR, LPCWSTR);
+            UINT GetDriveTypeW(LPCWSTR);
+            UINT GetSystemDirectoryW(LPWSTR, UINT);
+            DWORD GetTempPathW(DWORD, LPWSTR);
+            UINT GetTempFileNameW(LPCWSTR, LPCWSTR, UINT, LPWSTR);
+            UINT GetWindowsDirectoryW(LPWSTR, UINT);
+            WINBOOL SetCurrentDirectoryW(LPCWSTR);
+            DWORD GetCurrentDirectoryW(DWORD, LPWSTR);
+            WINBOOL GetDiskFreeSpaceW(LPCWSTR, LPDWORD, LPDWORD, LPDWORD, LPDWORD);
+            WINBOOL CreateDirectoryW(LPCWSTR, LPSECURITY_ATTRIBUTES);
+            WINBOOL CreateDirectoryExW(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES);
+            WINBOOL RemoveDirectoryW(LPCWSTR);
+            DWORD GetFullPathNameW(LPCWSTR, DWORD, LPWSTR, LPWSTR*);
+            WINBOOL DefineDosDeviceW(DWORD, LPCWSTR, LPCWSTR);
+            DWORD QueryDosDeviceW(LPCWSTR, LPWSTR, DWORD);
+            HANDLE CreateFileW(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
+            WINBOOL SetFileAttributesW(LPCWSTR, DWORD);
+            DWORD GetFileAttributesW(LPCWSTR);
+            BOOL GetFileAttributesExW(LPCWSTR, DWORD, WIN32_FILE_ATTRIBUTE_DATA*);
+            DWORD GetCompressedFileSizeW(LPCWSTR, LPDWORD);
+            WINBOOL DeleteFileW(LPCWSTR);
+            DWORD SearchPathW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPWSTR);
+            WINBOOL CopyFileW(LPCWSTR, LPCWSTR, WINBOOL);
+            WINBOOL MoveFileW(LPCWSTR, LPCWSTR);
+            WINBOOL MoveFileExW(LPCWSTR, LPCWSTR, DWORD);
+            HANDLE CreateNamedPipeW(LPCWSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
+            WINBOOL GetNamedPipeHandleStateW(HANDLE, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPWSTR, DWORD);
+            WINBOOL CallNamedPipeW(LPCWSTR, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, DWORD);
+            WINBOOL WaitNamedPipeW(LPCWSTR, DWORD);
+            WINBOOL SetVolumeLabelW(LPCWSTR, LPCWSTR);
+            WINBOOL GetVolumeInformationW(LPCWSTR, LPWSTR, DWORD, LPDWORD, LPDWORD, LPDWORD, LPWSTR, DWORD);
+            WINBOOL ClearEventLogW(HANDLE, LPCWSTR);
+            WINBOOL BackupEventLogW(HANDLE, LPCWSTR);
+            HANDLE OpenEventLogW(LPCWSTR, LPCWSTR);
+            HANDLE RegisterEventSourceW(LPCWSTR, LPCWSTR);
+            HANDLE OpenBackupEventLogW(LPCWSTR, LPCWSTR);
+            WINBOOL ReadEventLogW(HANDLE, DWORD, DWORD, LPVOID, DWORD, LPDWORD, LPDWORD);
+            WINBOOL ReportEventW(HANDLE, ushort, ushort, DWORD, PSID, ushort, DWORD, LPCWSTR*, LPVOID);
+            WINBOOL AccessCheckAndAuditAlarmW(LPCWSTR, LPVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, WINBOOL, LPDWORD, LPBOOL, LPBOOL);
+            WINBOOL ObjectOpenAuditAlarmW(LPCWSTR, LPVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, WINBOOL, WINBOOL, LPBOOL);
+            WINBOOL ObjectPrivilegeAuditAlarmW(LPCWSTR, LPVOID, HANDLE, DWORD, PPRIVILEGE_SET, WINBOOL);
+            WINBOOL ObjectCloseAuditAlarmW(LPCWSTR, LPVOID, WINBOOL);
+            WINBOOL PrivilegedServiceAuditAlarmW(LPCWSTR, LPCWSTR, HANDLE, PPRIVILEGE_SET, WINBOOL);
+            WINBOOL SetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR);
+            WINBOOL GetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, LPDWORD);
+            HANDLE FindFirstChangeNotificationW(LPCWSTR, WINBOOL, DWORD);
+            WINBOOL IsBadStringPtrW(LPCWSTR, UINT);
+            WINBOOL LookupAccountSidW(LPCWSTR, PSID, LPWSTR, LPDWORD, LPWSTR, LPDWORD, PSID_NAME_USE);
+            WINBOOL LookupAccountNameW(LPCWSTR, LPCWSTR, PSID, LPDWORD, LPWSTR, LPDWORD, PSID_NAME_USE);
+            WINBOOL LookupPrivilegeValueW(LPCWSTR, LPCWSTR, PLUID);
+            WINBOOL LookupPrivilegeNameW(LPCWSTR, PLUID, LPWSTR, LPDWORD);
+            WINBOOL LookupPrivilegeDisplayNameW(LPCWSTR, LPCWSTR, LPWSTR, LPDWORD, LPDWORD);
+            WINBOOL BuildCommDCBW(LPCWSTR, LPDCB);
+            WINBOOL BuildCommDCBAndTimeoutsW(LPCWSTR, LPDCB, LPCOMMTIMEOUTS);
+            WINBOOL CommConfigDialogW(LPCWSTR, HWND, LPCOMMCONFIG);
+            WINBOOL GetDefaultCommConfigW(LPCWSTR, LPCOMMCONFIG, LPDWORD);
+            WINBOOL SetDefaultCommConfigW(LPCWSTR, LPCOMMCONFIG, DWORD);
+            WINBOOL GetComputerNameW(LPWSTR, LPDWORD);
+            WINBOOL SetComputerNameW(LPCWSTR);
+            WINBOOL GetUserNameW(LPWSTR, LPDWORD);
+            int wvsprintfW(LPWSTR, LPCWSTR, VA_LIST*);
+            HKL LoadKeyboardLayoutW(LPCWSTR, UINT);
+            WINBOOL GetKeyboardLayoutNameW(LPWSTR);
+            HDESK CreateDesktopW(LPWSTR, LPWSTR, LPDEVMODE, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
+            HDESK OpenDesktopW(LPWSTR, DWORD, WINBOOL, DWORD);
+            WINBOOL EnumDesktopsW(HWINSTA, DESKTOPENUMPROC, LPARAM);
+            HWINSTA CreateWindowStationW(LPWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
+            HWINSTA OpenWindowStationW(LPWSTR, WINBOOL, DWORD);
+            WINBOOL EnumWindowStationsW(ENUMWINDOWSTATIONPROC, LPARAM);
+            WINBOOL GetUserObjectInformationW(HANDLE, int, PVOID, DWORD, LPDWORD);
+            WINBOOL SetUserObjectInformationW(HANDLE, int, PVOID, DWORD);
+            UINT RegisterWindowMessageW(LPCWSTR);
+            WINBOOL GetMessageW(LPMSG, HWND, UINT, UINT);
+            LONG DispatchMessageW(LPMSG);
+            WINBOOL PeekMessageW(LPMSG, HWND, UINT, UINT, UINT);
+            LRESULT SendMessageW(HWND, UINT, WPARAM, LPARAM);
+            LRESULT SendMessageW(HWND, UINT, WPARAM, void*);
+            LRESULT SendMessageW(HWND, UINT, void*, LPARAM);
+            LRESULT SendMessageW(HWND, UINT, void*, void*);
+            LRESULT SendMessageTimeoutW(HWND, UINT, WPARAM, LPARAM, UINT, UINT, LPDWORD);
+            WINBOOL SendNotifyMessageW(HWND, UINT, WPARAM, LPARAM);
+            WINBOOL SendMessageCallbackW(HWND, UINT, WPARAM, LPARAM, SENDASYNCPROC, DWORD);
+            WINBOOL PostMessageW(HWND, UINT, WPARAM, LPARAM);
+            WINBOOL PostThreadMessageW(DWORD, UINT, WPARAM, LPARAM);
+            LRESULT DefWindowProcW(HWND, UINT, WPARAM, LPARAM);
+            LRESULT CallWindowProcW(WNDPROC, HWND, UINT, WPARAM, LPARAM);
+            ATOM RegisterClassW(LPWNDCLASSW);
+            WINBOOL UnregisterClassW(LPCWSTR, HINST);
+            WINBOOL GetClassInfoW(HINST, LPCWSTR, LPWNDCLASS);
+            ATOM RegisterClassExW(LPWNDCLASSEX);
+            WINBOOL GetClassInfoExW(HINST, LPCWSTR, LPWNDCLASSEX);
+            HWND CreateWindowExW(DWORD, LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HMENU, HINST, LPVOID);
+            HWND CreateDialogParamW(HINST, LPCWSTR, HWND, DLGPROC, LPARAM);
+            HWND CreateDialogIndirectParamW(HINST, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM);
+            int DialogBoxParamW(HINST, LPCWSTR, HWND, DLGPROC, LPARAM);
+            int DialogBoxIndirectParamW(HINST, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM);
+            WINBOOL SetDlgItemTextW(HWND, int, LPCWSTR);
+            UINT GetDlgItemTextW(HWND, int, LPWSTR, int);
+            LONG SendDlgItemMessageW(HWND, int, UINT, WPARAM, LPARAM);
+            LRESULT DefDlgProcW(HWND, UINT, WPARAM, LPARAM);
+            WINBOOL CallMsgFilterW(LPMSG, int);
+            UINT RegisterClipboardFormatW(LPCWSTR);
+            int GetClipboardFormatNameW(UINT, LPWSTR, int);
+            WINBOOL CharToOemW(LPCWSTR, LPSTR);
+            WINBOOL OemToCharW(LPCSTR, LPWSTR);
+            WINBOOL CharToOemBuffW(LPCWSTR, LPSTR, DWORD);
+            WINBOOL OemToCharBuffW(LPCSTR, LPWSTR, DWORD);
+            LPWSTR CharUpperW(LPWSTR);
+            DWORD CharUpperBuffW(LPWSTR, DWORD);
+            LPWSTR CharLowerW(LPWSTR);
+            DWORD CharLowerBuffW(LPWSTR, DWORD);
+            LPWSTR CharNextW(LPCWSTR);
+            LPWSTR CharPrevW(LPCWSTR, LPCWSTR);
+            WINBOOL IsCharAlphaW(WCHAR);
+            WINBOOL IsCharAlphaNumericW(WCHAR);
+            WINBOOL IsCharUpperW(WCHAR);
+            WINBOOL IsCharLowerW(WCHAR);
+            int GetKeyNameTextW(LONG, LPWSTR, int);
+            SHORT VkKeyScanW(WCHAR);
+            SHORT VkKeyScanExW(WCHAR, HKL);
+            UINT MapVirtualKeyW(UINT, UINT);
+            UINT MapVirtualKeyExW(UINT, UINT, HKL);
+            HACCEL LoadAcceleratorsW(HINST, LPCWSTR);
+            HACCEL CreateAcceleratorTableW(LPACCEL, int);
+            int CopyAcceleratorTableW(HACCEL, LPACCEL, int);
+            int TranslateAcceleratorW(HWND, HACCEL, LPMSG);
+            HMENU LoadMenuW(HINST, LPCWSTR);
+            HMENU LoadMenuIndirectW(LPMENUTEMPLATE);
+            WINBOOL ChangeMenuW(HMENU, UINT, LPCWSTR, UINT, UINT);
+            int GetMenuStringW(HMENU, UINT, LPWSTR, int, UINT);
+            WINBOOL InsertMenuW(HMENU, UINT, UINT, UINT, LPCWSTR);
+            WINBOOL AppendMenuW(HMENU, UINT, UINT, LPCWSTR);
+            WINBOOL ModifyMenuW(HMENU, UINT, UINT, UINT, LPCWSTR);
+            WINBOOL InsertMenuItemW(HMENU, UINT, WINBOOL, LPCMENUITEMINFO);
+            WINBOOL GetMenuItemInfoW(HMENU, UINT, WINBOOL, LPMENUITEMINFO);
+            WINBOOL SetMenuItemInfoW(HMENU, UINT, WINBOOL, LPCMENUITEMINFO);
+            int DrawTextW(HDC, LPCWSTR, int, LPRECT, UINT);
+            int DrawTextExW(HDC, LPWSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS);
+            WINBOOL GrayStringW(HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, int, int, int, int, int);
+            WINBOOL DrawStateW(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT);
+            LONG TabbedTextOutW(HDC, int, int, LPCWSTR, int, int, LPINT, int);
+            DWORD GetTabbedTextExtentW(HDC, LPCWSTR, int, int, LPINT);
+            WINBOOL SetPropW(HWND, LPCWSTR, HANDLE);
+            HANDLE GetPropW(HWND, LPCWSTR);
+            HANDLE RemovePropW(HWND, LPCWSTR);
+            int EnumPropsExW(HWND, PROPENUMPROCEX, LPARAM);
+            int EnumPropsW(HWND, PROPENUMPROC);
+            WINBOOL SetWindowTextW(HWND, LPCWSTR);
+            int GetWindowTextW(HWND, LPWSTR, int);
+            int GetWindowTextLengthW(HWND);
+            int MessageBoxW(HWND, LPCWSTR, LPCWSTR, UINT);
+            int MessageBoxExW(HWND, LPCWSTR, LPCWSTR, UINT, ushort);
+            int MessageBoxIndirectW(LPMSGBOXPARAMS);
+            LONG GetWindowLongW(HWND, int);
+            LONG SetWindowLongW(HWND, int, LONG);
+            DWORD GetClassLongW(HWND, int);
+            DWORD SetClassLongW(HWND, int, LONG);
+            HWND FindWindowW(LPCWSTR, LPCWSTR);
+            HWND FindWindowExW(HWND, HWND, LPCWSTR, LPCWSTR);
+            int GetClassNameW(HWND, LPWSTR, int);
+            HHOOK SetWindowsHookExW(int, HOOKPROC, HINST, DWORD);
+            HBITMAP LoadBitmapW(HINST, LPCWSTR);
+            HCURSOR LoadCursorW(HINST, LPCWSTR);
+            HCURSOR LoadCursorFromFileW(LPCWSTR);
+            HICON LoadIconW(HINST, LPCWSTR);
+            HANDLE LoadImageW(HINST, LPCWSTR, UINT, int, int, UINT);
+            int LoadStringW(HINST, UINT, LPWSTR, int);
+            WINBOOL IsDialogMessageW(HWND, LPMSG);
+            int DlgDirListW(HWND, LPWSTR, int, int, UINT);
+            WINBOOL DlgDirSelectExW(HWND, LPWSTR, int, int);
+            int DlgDirListComboBoxW(HWND, LPWSTR, int, int, UINT);
+            WINBOOL DlgDirSelectComboBoxExW(HWND, LPWSTR, int, int);
+            LRESULT DefFrameProcW(HWND, HWND, UINT, WPARAM, LPARAM);
+            LRESULT DefMDIChildProcW(HWND, UINT, WPARAM, LPARAM);
+            HWND CreateMDIWindowW(LPWSTR, LPWSTR, DWORD, int, int, int, int, HWND, HINST, LPARAM);
+            WINBOOL WinHelpW(HWND, LPCWSTR, UINT, DWORD);
+            LONG ChangeDisplaySettingsW(LPDEVMODE, DWORD);
+            WINBOOL EnumDisplaySettingsW(LPCWSTR, DWORD, LPDEVMODE);
+            WINBOOL SystemParametersInfoW(UINT, UINT, PVOID, UINT);
+            int AddFontResourceW(LPCWSTR);
+            HMETAFILE CopyMetaFileW(HMETAFILE, LPCWSTR);
+            HFONT CreateFontIndirectW(PLOGFONT);
+            HFONT CreateFontW(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCWSTR);
+            HDC CreateICW(LPCWSTR, LPCWSTR, LPCWSTR, LPDEVMODE);
+            HDC CreateMetaFileW(LPCWSTR);
+            WINBOOL CreateScalableFontResourceW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR);
+            int EnumFontFamiliesExW(HDC, LPLOGFONT, FONTENUMEXPROC, LPARAM, DWORD);
+            int EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROC, LPARAM);
+            int EnumFontsW(HDC, LPCWSTR, ENUMFONTSPROC, LPARAM);
+            WINBOOL GetCharWidthW(HDC, UINT, UINT, LPINT);
+            WINBOOL GetCharWidth32W(HDC, UINT, UINT, LPINT);
+            WINBOOL GetCharWidthFloatW(HDC, UINT, UINT, PFLOAT);
+            WINBOOL GetCharABCWidthsW(HDC, UINT, UINT, LPABC);
+            WINBOOL GetCharABCWidthsFloatW(HDC, UINT, UINT, LPABCFLOAT);
+            DWORD GetGlyphOutlineW(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, LPVOID, PMAT2);
+            HMETAFILE GetMetaFileW(LPCWSTR);
+            UINT GetOutlineTextMetricsW(HDC, UINT, LPOUTLINETEXTMETRIC);
+            WINBOOL GetTextExtentPointW(HDC, LPCWSTR, int, LPSIZE);
+            WINBOOL GetTextExtentPoint32W(HDC, LPCWSTR, int, LPSIZE);
+            WINBOOL GetTextExtentExPointW(HDC, LPCWSTR, int, int, LPINT, LPINT, LPSIZE);
+            DWORD GetCharacterPlacementW(HDC, LPCWSTR, int, int, LPGCP_RESULTS, DWORD);
+            HDC ResetDCW(HDC, LPDEVMODE);
+            WINBOOL RemoveFontResourceW(LPCWSTR);
+            HENHMETAFILE CopyEnhMetaFileW(HENHMETAFILE, LPCWSTR);
+            HDC CreateEnhMetaFileW(HDC, LPCWSTR, LPRECT, LPCWSTR);
+            HENHMETAFILE GetEnhMetaFileW(LPCWSTR);
+            UINT GetEnhMetaFileDescriptionW(HENHMETAFILE, UINT, LPWSTR);
+            WINBOOL GetTextMetricsW(HDC, LPTEXTMETRIC);
+            int StartDocW(HDC, PDOCINFO);
+            int GetObjectW(HGDIOBJ, int, LPVOID);
+            WINBOOL TextOutW(HDC, int, int, LPCWSTR, int);
+            WINBOOL ExtTextOutW(HDC, int, int, UINT, LPRECT, LPCWSTR, UINT, LPINT);
+            WINBOOL PolyTextOutW(HDC, PPOLYTEXT, int);
+            int GetTextFaceW(HDC, int, LPWSTR);
+            DWORD GetKerningPairsW(HDC, DWORD, LPKERNINGPAIR);
+            WINBOOL GetLogColorSpaceW(HCOLORSPACE, LPLOGCOLORSPACE, DWORD);
+            HCOLORSPACE CreateColorSpaceW(LPLOGCOLORSPACE);
+            WINBOOL GetICMProfileW(HDC, DWORD, LPWSTR);
+            WINBOOL SetICMProfileW(HDC, LPWSTR);
+            WINBOOL UpdateICMRegKeyW(DWORD, DWORD, LPWSTR, UINT);
+            int EnumICMProfilesW(HDC, ICMENUMPROC, LPARAM);
+            HPROPSHEETPAGE CreatePropertySheetPageW(LPCPROPSHEETPAGE);
+            int PropertySheetW(LPCPROPSHEETHEADER);
+            HIMAGELIST ImageList_LoadImageW(HINST, LPCWSTR, int, int, COLORREF, UINT, UINT);
+            HWND CreateStatusWindowW(LONG, LPCWSTR, HWND, UINT);
+            void DrawStatusTextW(HDC, LPRECT, LPCWSTR);
+            WINBOOL GetOpenFileNameW(LPOPENFILENAME);
+            WINBOOL GetSaveFileNameW(LPOPENFILENAME);
+            int GetFileTitleW(LPCWSTR, LPWSTR, ushort);
+            WINBOOL ChooseColorW(LPCHOOSECOLOR);
+            HWND ReplaceTextW(LPFINDREPLACE);
+            WINBOOL ChooseFontW(LPCHOOSEFONTW);
+            HWND FindTextW(LPFINDREPLACE);
+            WINBOOL PrintDlgW(LPPRINTDLGW);
+            WINBOOL PageSetupDlgW(LPPAGESETUPDLG);
+            WINBOOL CreateProcessW(LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, WINBOOL, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION);
+            void GetStartupInfoW(LPSTARTUPINFO);
+            HANDLE FindFirstFileW(LPCWSTR, LPWIN32_FIND_DATAW);
+            WINBOOL FindNextFileW(HANDLE, LPWIN32_FIND_DATAW);
+            WINBOOL GetVersionExW(LPOSVERSIONINFO);
+            HDC CreateDCW(LPCWSTR, LPCWSTR, LPCWSTR, PDEVMODE);
+            HFONT CreateFontA(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCSTR);
+            DWORD VerInstallFileW(DWORD, LPWSTR, LPWSTR, LPWSTR, LPWSTR, LPWSTR, LPWSTR, PUINT);
+            DWORD GetFileVersionInfoSizeW(LPWSTR, LPDWORD);
+            WINBOOL GetFileVersionInfoW(LPWSTR, DWORD, DWORD, LPVOID);
+            DWORD VerLanguageNameW(DWORD, LPWSTR, DWORD);
+            WINBOOL VerQueryValueW(LPVOID, LPWSTR, LPVOID, PUINT);
+            DWORD VerFindFileW(DWORD, LPWSTR, LPWSTR, LPWSTR, LPWSTR, PUINT, LPWSTR, PUINT);
+            LONG RegSetValueExW(HKEY, LPCWSTR, DWORD, DWORD, LPBYTE, DWORD);
+            LONG RegUnLoadKeyW(HKEY, LPCWSTR);
+            WINBOOL InitiateSystemShutdownW(LPWSTR, LPWSTR, DWORD, WINBOOL, WINBOOL);
+            WINBOOL AbortSystemShutdownW(LPWSTR);
+            LONG RegRestoreKeyW(HKEY, LPCWSTR, DWORD);
+            LONG RegSaveKeyW(HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES);
+            LONG RegSetValueW(HKEY, LPCWSTR, DWORD, LPCWSTR, DWORD);
+            LONG RegQueryValueW(HKEY, LPCWSTR, LPWSTR, PLONG);
+            LONG RegQueryMultipleValuesW(HKEY, PVALENT, DWORD, LPWSTR, LPDWORD);
+            LONG RegQueryValueExW(HKEY, LPCWSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD);
+            LONG RegReplaceKeyW(HKEY, LPCWSTR, LPCWSTR, LPCWSTR);
+            LONG RegConnectRegistryW(LPWSTR, HKEY, PHKEY);
+            LONG RegCreateKeyW(HKEY, LPCWSTR, PHKEY);
+            LONG RegCreateKeyExW(HKEY, LPCWSTR, DWORD, LPWSTR, DWORD, REGSAM, LPSECURITY_ATTRIBUTES, PHKEY, LPDWORD);
+            LONG RegDeleteKeyW(HKEY, LPCWSTR);
+            LONG RegDeleteValueW(HKEY, LPCWSTR);
+            LONG RegEnumKeyW(HKEY, DWORD, LPWSTR, DWORD);
+            LONG RegEnumKeyExW(HKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPWSTR, LPDWORD, PFILETIME);
+            LONG RegEnumValueW(HKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPDWORD, LPBYTE, LPDWORD);
+            LONG RegLoadKeyW(HKEY, LPCWSTR, LPCWSTR);
+            LONG RegOpenKeyW(HKEY, LPCWSTR, PHKEY);
+            LONG RegOpenKeyExW(HKEY, LPCWSTR, DWORD, REGSAM, PHKEY);
+            LONG RegQueryInfoKeyW(HKEY, LPWSTR, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, PFILETIME);
+            int CompareStringW(LCID, DWORD, LPCWSTR, int, LPCWSTR, int);
+            int LCMapStringW(LCID, DWORD, LPCWSTR, int, LPWSTR, int);
+            int GetLocaleInfoW(LCID, LCTYPE, LPWSTR, int);
+            WINBOOL SetLocaleInfoW(LCID, LCTYPE, LPCWSTR);
+            int GetTimeFormatW(LCID, DWORD, LPSYSTEMTIME, LPCWSTR, LPWSTR, int);
+            int GetDateFormatW(LCID, DWORD, LPSYSTEMTIME, LPCWSTR, LPWSTR, int);
+            int GetNumberFormatW(LCID, DWORD, LPCWSTR, PNUMBERFMT, LPWSTR, int);
+            int GetCurrencyFormatW(LCID, DWORD, LPCWSTR, PCURRENCYFMT, LPWSTR, int);
+            WINBOOL EnumCalendarInfoW(CALINFO_ENUMPROC, LCID, CALID, CALTYPE);
+            WINBOOL EnumTimeFormatsW(TIMEFMT_ENUMPROC, LCID, DWORD);
+            WINBOOL EnumDateFormatsW(DATEFMT_ENUMPROC, LCID, DWORD);
+            WINBOOL GetStringTypeExW(LCID, DWORD, LPCWSTR, int, LPWORD);
+            WINBOOL GetStringTypeW(DWORD, LPCWSTR, int, LPWORD);
+            int FoldStringW(DWORD, LPCWSTR, int, LPWSTR, int);
+            WINBOOL EnumSystemLocalesW(LOCALE_ENUMPROC, DWORD);
+            WINBOOL EnumSystemCodePagesW(CODEPAGE_ENUMPROC, DWORD);
+            WINBOOL PeekConsoleInputW(HANDLE, PINPUTRECORD, DWORD, LPDWORD);
+            WINBOOL ReadConsoleInputW(HANDLE, PINPUTRECORD, DWORD, LPDWORD);
+            WINBOOL WriteConsoleInputW(HANDLE, PINPUTRECORD, DWORD, LPDWORD);
+            WINBOOL ReadConsoleOutputW(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT);
+            WINBOOL WriteConsoleOutputW(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT);
+            WINBOOL ReadConsoleOutputCharacterW(HANDLE, LPWSTR, DWORD, COORD, LPDWORD);
+            WINBOOL WriteConsoleOutputCharacterW(HANDLE, LPCWSTR, DWORD, COORD, LPDWORD);
+            WINBOOL FillConsoleOutputCharacterW(HANDLE, WCHAR, DWORD, COORD, LPDWORD);
+            WINBOOL ScrollConsoleScreenBufferW(HANDLE, PSMALL_RECT, PSMALL_RECT, COORD, PCHAR_INFO);
+            DWORD GetConsoleTitleW(LPWSTR, DWORD);
+            WINBOOL SetConsoleTitleW(LPCWSTR);
+            WINBOOL ReadConsoleW(HANDLE, LPVOID, DWORD, LPDWORD, LPVOID);
+            WINBOOL WriteConsoleW(HANDLE, POINTER, DWORD, LPDWORD, LPVOID);
+            DWORD WNetAddConnectionW(LPCWSTR, LPCWSTR, LPCWSTR);
+            DWORD WNetAddConnection2W(LPNETRESOURCE, LPCWSTR, LPCWSTR, DWORD);
+            DWORD WNetAddConnection3W(HWND, LPNETRESOURCE, LPCWSTR, LPCWSTR, DWORD);
+            DWORD WNetCancelConnectionW(LPCWSTR, WINBOOL);
+            DWORD WNetCancelConnection2W(LPCWSTR, DWORD, WINBOOL);
+            DWORD WNetGetConnectionW(LPCWSTR, LPWSTR, LPDWORD);
+            DWORD WNetUseConnectionW(HWND, LPNETRESOURCE, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPDWORD, LPDWORD);
+            DWORD WNetSetConnectionW(LPCWSTR, DWORD, LPVOID);
+            DWORD WNetConnectionDialog1W(LPCONNECTDLGSTRUCT);
+            DWORD WNetDisconnectDialog1W(LPDISCDLGSTRUCT);
+            DWORD WNetOpenEnumW(DWORD, DWORD, DWORD, LPNETRESOURCE, LPHANDLE);
+            DWORD WNetEnumResourceW(HANDLE, LPDWORD, LPVOID, LPDWORD);
+            DWORD WNetGetUniversalNameW(LPCWSTR, DWORD, LPVOID, LPDWORD);
+            DWORD WNetGetUserW(LPCWSTR, LPWSTR, LPDWORD);
+            DWORD WNetGetProviderNameW(DWORD, LPWSTR, LPDWORD);
+            DWORD WNetGetNetworkInformationW(LPCWSTR, LPNETINFOSTRUCT);
+            DWORD WNetGetLastErrorW(LPDWORD, LPWSTR, DWORD, LPWSTR, DWORD);
+            DWORD MultinetGetConnectionPerformanceW(LPNETRESOURCE, LPNETCONNECTINFOSTRUCT);
+            WINBOOL ChangeServiceConfigW(SC_HANDLE, DWORD, DWORD, DWORD, LPCWSTR, LPCWSTR, LPDWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR);
+            SC_HANDLE CreateServiceW(SC_HANDLE, LPCWSTR, LPCWSTR, DWORD, DWORD, DWORD, DWORD, LPCWSTR, LPCWSTR, LPDWORD, LPCWSTR, LPCWSTR, LPCWSTR);
+            WINBOOL EnumDependentServicesW(SC_HANDLE, DWORD, LPENUM_SERVICE_STATUS, DWORD, LPDWORD, LPDWORD);
+            WINBOOL EnumServicesStatusW(SC_HANDLE, DWORD, DWORD, LPENUM_SERVICE_STATUS, DWORD, LPDWORD, LPDWORD, LPDWORD);
+            WINBOOL GetServiceKeyNameW(SC_HANDLE, LPCWSTR, LPWSTR, LPDWORD);
+            WINBOOL GetServiceDisplayNameW(SC_HANDLE, LPCWSTR, LPWSTR, LPDWORD);
+            SC_HANDLE OpenSCManagerW(LPCWSTR, LPCWSTR, DWORD);
+            SC_HANDLE OpenServiceW(SC_HANDLE, LPCWSTR, DWORD);
+            WINBOOL QueryServiceConfigW(SC_HANDLE, LPQUERY_SERVICE_CONFIG, DWORD, LPDWORD);
+            WINBOOL QueryServiceLockStatusW(SC_HANDLE, LPQUERY_SERVICE_LOCK_STATUS, DWORD, LPDWORD);
+            SERVICE_STATUS_HANDLE RegisterServiceCtrlHandlerW(LPCWSTR, LPHANDLER_FUNCTION);
+            WINBOOL StartServiceCtrlDispatcherW(LPSERVICE_TABLE_ENTRY);
+            WINBOOL StartServiceW(SC_HANDLE, DWORD, LPCWSTR);
+            uint DragQueryFileW(HDROP, uint, LPCWSTR, uint);
+            HICON ExtractAssociatedIconW(HINST, LPCWSTR, LPWORD);
+            HICON ExtractIconW(HINST, LPCWSTR, uint);
+            HINST FindExecutableW(LPCWSTR, LPCWSTR, LPCWSTR);
+            int ShellAboutW(HWND, LPCWSTR, LPCWSTR, HICON);
+            HINST ShellExecuteW(HWND, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, int);
+            HSZ DdeCreateStringHandleW(DWORD, LPCWSTR, int);
+            UINT DdeInitializeW(LPDWORD, PFNCALLBACK, DWORD, DWORD);
+            DWORD DdeQueryStringW(DWORD, HSZ, LPCWSTR, DWORD, int);
+            WINBOOL LogonUserW(LPWSTR, LPWSTR, LPWSTR, DWORD, DWORD, PHANDLE);
+            WINBOOL CreateProcessAsUserW(HANDLE, LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, WINBOOL, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION);
+            WINBOOL AccessCheck(PSECURITY_DESCRIPTOR, HANDLE, DWORD, PGENERIC_MAPPING, PPRIVILEGE_SET, LPDWORD, LPDWORD, LPBOOL);
+            LONG InterlockedIncrement(LPLONG);
+            LONG InterlockedDecrement(LPLONG);
+            LONG InterlockedExchange(LPLONG, LONG);
+            WINBOOL FreeResource(HGLOBAL);
+            LPVOID LockResource(HGLOBAL);
+            WINBOOL FreeLibrary(HINST);
+            void FreeLibraryAndExitThread(HMODULE, DWORD);
+            WINBOOL DisableThreadLibraryCalls(HMODULE);
+            FARPROC GetProcAddress(HINST, LPCSTR);
+            DWORD GetVersion();
+            HGLOBAL GlobalAlloc(UINT, DWORD);
+            HGLOBAL GlobalReAlloc(HGLOBAL, DWORD, UINT);
+            DWORD GlobalSize(HGLOBAL);
+            UINT GlobalFlags(HGLOBAL);
+            LPVOID GlobalLock(HGLOBAL);
+            HGLOBAL GlobalHandle(LPCVOID);
+            WINBOOL GlobalUnlock(HGLOBAL);
+            HGLOBAL GlobalFree(HGLOBAL);
+            UINT GlobalCompact(DWORD);
+            void GlobalFix(HGLOBAL);
+            void GlobalUnfix(HGLOBAL);
+            LPVOID GlobalWire(HGLOBAL);
+            WINBOOL GlobalUnWire(HGLOBAL);
+            void GlobalMemoryStatus(LPMEMORYSTATUS);
+            HLOCAL LocalAlloc(UINT, UINT);
+            HLOCAL LocalReAlloc(HLOCAL, UINT, UINT);
+            LPVOID LocalLock(HLOCAL);
+            HLOCAL LocalHandle(LPCVOID);
+            WINBOOL LocalUnlock(HLOCAL);
+            UINT LocalSize(HLOCAL);
+            UINT LocalFlags(HLOCAL);
+            HLOCAL LocalFree(HLOCAL);
+            UINT LocalShrink(HLOCAL, UINT);
+            UINT LocalCompact(UINT);
+            WINBOOL FlushInstructionCache(HANDLE, LPCVOID, DWORD);
+            LPVOID VirtualAlloc(LPVOID, DWORD, DWORD, DWORD);
+            WINBOOL VirtualFree(LPVOID, DWORD, DWORD);
+            WINBOOL VirtualProtect(LPVOID, DWORD, DWORD, PDWORD);
+            DWORD VirtualQuery(LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD);
+            WINBOOL VirtualProtectEx(HANDLE, LPVOID, DWORD, DWORD, PDWORD);
+            DWORD VirtualQueryEx(HANDLE, LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD);
+            HANDLE HeapCreate(DWORD, DWORD, DWORD);
+            WINBOOL HeapDestroy(HANDLE);
+            LPVOID HeapAlloc(HANDLE, DWORD, DWORD);
+            LPVOID HeapReAlloc(HANDLE, DWORD, LPVOID, DWORD);
+            WINBOOL HeapFree(HANDLE, DWORD, LPVOID);
+            DWORD HeapSize(HANDLE, DWORD, LPCVOID);
+            WINBOOL HeapValidate(HANDLE, DWORD, LPCVOID);
+            UINT HeapCompact(HANDLE, DWORD);
+            HANDLE GetProcessHeap();
+            DWORD GetProcessHeaps(DWORD, PHANDLE);
+            WINBOOL HeapLock(HANDLE);
+            WINBOOL HeapUnlock(HANDLE);
+            WINBOOL HeapWalk(HANDLE, LPPROCESS_HEAP_ENTRY);
+            WINBOOL GetProcessAffinityMask(HANDLE, LPDWORD, LPDWORD);
+            WINBOOL GetProcessTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME);
+            WINBOOL GetProcessWorkingSetSize(HANDLE, LPDWORD, LPDWORD);
+            WINBOOL SetProcessWorkingSetSize(HANDLE, DWORD, DWORD);
+            HANDLE OpenProcess(DWORD, WINBOOL, DWORD);
+            HANDLE GetCurrentProcess();
+            DWORD GetCurrentProcessId();
+            void ExitProcess(UINT);
+            WINBOOL TerminateProcess(HANDLE, UINT);
+            WINBOOL GetExitCodeProcess(HANDLE, LPDWORD);
+            void FatalExit(int);
+            void RaiseException(DWORD, DWORD, DWORD);
+            LONG UnhandledExceptionFilter(EMPTYRECORD*);
+            HANDLE CreateRemoteThread(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD);
+            HANDLE GetCurrentThread();
+            DWORD GetCurrentThreadId();
+            DWORD SetThreadAffinityMask(HANDLE, DWORD);
+            WINBOOL SetThreadPriority(HANDLE, int);
+            int GetThreadPriority(HANDLE);
+            WINBOOL GetThreadTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME);
+            void ExitThread(DWORD);
+            WINBOOL TerminateThread(HANDLE, DWORD);
+            WINBOOL GetExitCodeThread(HANDLE, LPDWORD);
+            WINBOOL GetThreadSelectorEntry(HANDLE, DWORD, LPLDT_ENTRY);
+            DWORD GetLastError();
+            void SetLastError(DWORD);
+            HANDLE CreateIoCompletionPort(HANDLE, HANDLE, DWORD, DWORD);
+            UINT SetErrorMode(UINT);
+            WINBOOL ReadProcessMemory(HANDLE, LPCVOID, LPVOID, DWORD, LPDWORD);
+            WINBOOL WriteProcessMemory(HANDLE, LPVOID, LPVOID, DWORD, LPDWORD);
+            WINBOOL GetThreadContext(HANDLE, LPCONTEXT);
+            DWORD SuspendThread(HANDLE);
+            DWORD ResumeThread(HANDLE);
+            void DebugBreak();
+            WINBOOL WaitForDebugEvent(LPDEBUG_EVENT, DWORD);
+            WINBOOL ContinueDebugEvent(DWORD, DWORD, DWORD);
+            WINBOOL DebugActiveProcess(DWORD);
+            void InitializeCriticalSection(LPCRITICAL_SECTION);
+            void EnterCriticalSection(LPCRITICAL_SECTION);
+            WINBOOL TryEnterCriticalSection(LPCRITICAL_SECTION);
+            void LeaveCriticalSection(LPCRITICAL_SECTION);
+            void DeleteCriticalSection(LPCRITICAL_SECTION);
+            WINBOOL SetEvent(HANDLE);
+            WINBOOL ResetEvent(HANDLE);
+            WINBOOL PulseEvent(HANDLE);
+            WINBOOL ReleaseSemaphore(HANDLE, LONG, LPLONG);
+            WINBOOL ReleaseMutex(HANDLE);
+            DWORD WaitForSingleObject(HANDLE, DWORD);
+            DWORD WaitForMultipleObjects(DWORD, HANDLE*, WINBOOL, DWORD);
+            void Sleep(DWORD);
+            HGLOBAL LoadResource(HINST, HRSRC);
+            DWORD SizeofResource(HINST, HRSRC);
+            ATOM GlobalDeleteAtom(ATOM);
+            WINBOOL InitAtomTable(DWORD);
+            ATOM DeleteAtom(ATOM);
+            UINT SetHandleCount(UINT);
+            DWORD GetLogicalDrives();
+            WINBOOL LockFile(HANDLE, DWORD, DWORD, DWORD, DWORD);
+            WINBOOL UnlockFile(HANDLE, DWORD, DWORD, DWORD, DWORD);
+            WINBOOL LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED);
+            WINBOOL UnlockFileEx(HANDLE, DWORD, DWORD, DWORD, LPOVERLAPPED);
+            WINBOOL GetFileInformationByHandle(HANDLE, LPBY_HANDLE_FILE_INFORMATION);
+            DWORD GetFileType(HANDLE);
+            DWORD GetFileSize(HANDLE, LPDWORD);
+            HANDLE GetStdHandle(DWORD);
+            WINBOOL SetStdHandle(DWORD, HANDLE);
+            WINBOOL FlushFileBuffers(HANDLE);
+            WINBOOL DeviceIoControl(HANDLE, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPOVERLAPPED);
+            WINBOOL SetEndOfFile(HANDLE);
+            DWORD SetFilePointer(HANDLE, LONG, PLONG, DWORD);
+            WINBOOL FindClose(HANDLE);
+            WINBOOL GetFileTime(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME);
+            WINBOOL SetFileTime(HANDLE, FILETIME*, FILETIME*, FILETIME*);
+            WINBOOL CloseHandle(HANDLE);
+            WINBOOL DuplicateHandle(HANDLE, HANDLE, HANDLE, LPHANDLE, DWORD, WINBOOL, DWORD);
+            WINBOOL GetHandleInformation(HANDLE, LPDWORD);
+            WINBOOL SetHandleInformation(HANDLE, DWORD, DWORD);
+            DWORD LoadModule(LPCSTR, LPVOID);
+            UINT WinExec(LPCSTR, UINT);
+            WINBOOL ClearCommBreak(HANDLE);
+            WINBOOL ClearCommError(HANDLE, LPDWORD, LPCOMSTAT);
+            WINBOOL SetupComm(HANDLE, DWORD, DWORD);
+            WINBOOL EscapeCommFunction(HANDLE, DWORD);
+            WINBOOL GetCommConfig(HANDLE, LPCOMMCONFIG, LPDWORD);
+            WINBOOL GetCommProperties(HANDLE, LPCOMMPROP);
+            WINBOOL GetCommModemStatus(HANDLE, PDWORD);
+            WINBOOL GetCommState(HANDLE, PDCB);
+            WINBOOL GetCommTimeouts(HANDLE, PCOMMTIMEOUTS);
+            WINBOOL PurgeComm(HANDLE, DWORD);
+            WINBOOL SetCommBreak(HANDLE);
+            WINBOOL SetCommConfig(HANDLE, LPCOMMCONFIG, DWORD);
+            WINBOOL SetCommMask(HANDLE, DWORD);
+            WINBOOL SetCommState(HANDLE, TDCB*);
+            WINBOOL SetCommTimeouts(HANDLE, TCOMMTIMEOUTS*);
+            WINBOOL TransmitCommChar(HANDLE, char);
+            WINBOOL WaitCommEvent(HANDLE, LPDWORD, LPOVERLAPPED);
+            DWORD SetTapePosition(HANDLE, DWORD, DWORD, DWORD, DWORD, WINBOOL);
+            DWORD GetTapePosition(HANDLE, DWORD, LPDWORD, LPDWORD, LPDWORD);
+            DWORD PrepareTape(HANDLE, DWORD, WINBOOL);
+            DWORD EraseTape(HANDLE, DWORD, WINBOOL);
+            DWORD CreateTapePartition(HANDLE, DWORD, DWORD, DWORD);
+            DWORD WriteTapemark(HANDLE, DWORD, DWORD, WINBOOL);
+            DWORD GetTapeStatus(HANDLE);
+            DWORD GetTapeParameters(HANDLE, DWORD, LPDWORD, LPVOID);
+            DWORD SetTapeParameters(HANDLE, DWORD, LPVOID);
+            WINBOOL Beep(DWORD, DWORD);
+            int MulDiv(int, int, int);
+            void GetSystemTime(LPSYSTEMTIME);
+                void GetSystemTimeAsFileTime(FILETIME*);
+            WINBOOL SetSystemTime(SYSTEMTIME*);
+            void GetLocalTime(LPSYSTEMTIME);
+            WINBOOL SetLocalTime(SYSTEMTIME*);
+            void GetSystemInfo(LPSYSTEM_INFO);
+            WINBOOL SystemTimeToTzSpecificLocalTime(LPTIME_ZONE_INFORMATION, LPSYSTEMTIME, LPSYSTEMTIME);
+            DWORD GetTimeZoneInformation(LPTIME_ZONE_INFORMATION);
+            WINBOOL SetTimeZoneInformation(TIME_ZONE_INFORMATION*);
+            WINBOOL SystemTimeToFileTime(SYSTEMTIME*, LPFILETIME);
+            WINBOOL FileTimeToLocalFileTime(FILETIME*, LPFILETIME);
+            WINBOOL LocalFileTimeToFileTime(FILETIME*, LPFILETIME);
+            WINBOOL FileTimeToSystemTime(FILETIME*, LPSYSTEMTIME);
+            LONG CompareFileTime(FILETIME*, FILETIME*);
+            WINBOOL FileTimeToDosDateTime(FILETIME*, LPWORD, LPWORD);
+            WINBOOL DosDateTimeToFileTime(ushort, ushort, LPFILETIME);
+            DWORD GetTickCount();
+            WINBOOL SetSystemTimeAdjustment(DWORD, WINBOOL);
+            WINBOOL GetSystemTimeAdjustment(PDWORD, PDWORD, PWINBOOL);
+            WINBOOL CreatePipe(PHANDLE, PHANDLE, LPSECURITY_ATTRIBUTES, DWORD);
+            WINBOOL ConnectNamedPipe(HANDLE, LPOVERLAPPED);
+            WINBOOL DisconnectNamedPipe(HANDLE);
+            WINBOOL SetNamedPipeHandleState(HANDLE, LPDWORD, LPDWORD, LPDWORD);
+            WINBOOL GetNamedPipeInfo(HANDLE, LPDWORD, LPDWORD, LPDWORD, LPDWORD);
+            WINBOOL PeekNamedPipe(HANDLE, LPVOID, DWORD, LPDWORD, LPDWORD, LPDWORD);
+            WINBOOL TransactNamedPipe(HANDLE, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPOVERLAPPED);
+            WINBOOL GetMailslotInfo(HANDLE, LPDWORD, LPDWORD, LPDWORD, LPDWORD);
+            WINBOOL SetMailslotInfo(HANDLE, DWORD);
+            LPVOID MapViewOfFile(HANDLE, DWORD, DWORD, DWORD, DWORD);
+            WINBOOL FlushViewOfFile(LPCVOID, DWORD);
+            WINBOOL UnmapViewOfFile(LPVOID);
+            HFILE OpenFile(LPCSTR, LPOFSTRUCT, UINT);
+            HFILE _lopen(LPCSTR, int);
+            HFILE _lcreat(LPCSTR, int);
+            UINT _lread(HFILE, LPVOID, UINT);
+            UINT _lwrite(HFILE, LPCSTR, UINT);
+            int _hread(HFILE, LPVOID, int);
+            int _hwrite(HFILE, LPCSTR, int);
+            HFILE _lclose(HFILE);
+            LONG _llseek(HFILE, LONG, int);
+            WINBOOL IsTextUnicode(LPVOID, int, LPINT);
+            DWORD TlsAlloc();
+            LPVOID TlsGetValue(DWORD);
+            WINBOOL TlsSetValue(DWORD, LPVOID);
+            WINBOOL TlsFree(DWORD);
+            DWORD SleepEx(DWORD, WINBOOL);
+            DWORD WaitForSingleObjectEx(HANDLE, DWORD, WINBOOL);
+            DWORD WaitForMultipleObjectsEx(DWORD, HANDLE*, WINBOOL, DWORD, WINBOOL);
+            WINBOOL ReadFileEx(HANDLE, LPVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE);
+            WINBOOL WriteFileEx(HANDLE, LPCVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE);
+            WINBOOL BackupRead(HANDLE, LPBYTE, DWORD, LPDWORD, WINBOOL, WINBOOL, LPVOID*);
+            WINBOOL BackupSeek(HANDLE, DWORD, DWORD, LPDWORD, LPDWORD, LPVOID*);
+            WINBOOL BackupWrite(HANDLE, LPBYTE, DWORD, LPDWORD, WINBOOL, WINBOOL, LPVOID*);
+            WINBOOL SetProcessShutdownParameters(DWORD, DWORD);
+            WINBOOL GetProcessShutdownParameters(LPDWORD, LPDWORD);
+            void SetFileApisToOEM();
+            void SetFileApisToANSI();
+            WINBOOL AreFileApisANSI();
+            WINBOOL CloseEventLog(HANDLE);
+            WINBOOL DeregisterEventSource(HANDLE);
+            WINBOOL NotifyChangeEventLog(HANDLE, HANDLE);
+            WINBOOL GetNumberOfEventLogRecords(HANDLE, PDWORD);
+            WINBOOL GetOldestEventLogRecord(HANDLE, PDWORD);
+            WINBOOL DuplicateToken(HANDLE, SECURITY_IMPERSONATION_LEVEL, PHANDLE);
+            WINBOOL GetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, LPDWORD);
+            WINBOOL ImpersonateNamedPipeClient(HANDLE);
+            WINBOOL ImpersonateLoggedOnUser(HANDLE);
+            WINBOOL ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);
+            WINBOOL RevertToSelf();
+            WINBOOL SetThreadToken(PHANDLE, HANDLE);
+            WINBOOL OpenProcessToken(HANDLE, DWORD, PHANDLE);
+            WINBOOL OpenThreadToken(HANDLE, DWORD, WINBOOL, PHANDLE);
+            WINBOOL GetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, LPVOID, DWORD, PDWORD);
+            WINBOOL SetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, LPVOID, DWORD);
+            WINBOOL AdjustTokenPrivileges(HANDLE, WINBOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD);
+            WINBOOL AdjustTokenGroups(HANDLE, WINBOOL, PTOKEN_GROUPS, DWORD, PTOKEN_GROUPS, PDWORD);
+            WINBOOL PrivilegeCheck(HANDLE, PPRIVILEGE_SET, LPBOOL);
+            WINBOOL IsValidSid(PSID);
+            WINBOOL EqualSid(PSID, PSID);
+            WINBOOL EqualPrefixSid(PSID, PSID);
+            DWORD GetSidLengthRequired(UCHAR);
+            WINBOOL AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY, ubyte, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, PSID*);
+            PVOID FreeSid(PSID);
+            WINBOOL InitializeSid(PSID, PSID_IDENTIFIER_AUTHORITY, ubyte);
+            PSID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority(PSID);
+            PDWORD GetSidSubAuthority(PSID, DWORD);
+            PUCHAR GetSidSubAuthorityCount(PSID);
+            DWORD GetLengthSid(PSID);
+            WINBOOL CopySid(DWORD, PSID, PSID);
+            WINBOOL AreAllAccessesGranted(DWORD, DWORD);
+            WINBOOL AreAnyAccessesGranted(DWORD, DWORD);
+            void MapGenericMask(PDWORD);
+            WINBOOL IsValidAcl(PACL);
+            WINBOOL InitializeAcl(PACL, DWORD, DWORD);
+            WINBOOL GetAclInformation(PACL, LPVOID, DWORD, ACL_INFORMATION_CLASS);
+            WINBOOL SetAclInformation(PACL, LPVOID, DWORD, ACL_INFORMATION_CLASS);
+            WINBOOL AddAce(PACL, DWORD, DWORD, LPVOID, DWORD);
+            WINBOOL DeleteAce(PACL, DWORD);
+            WINBOOL GetAce(PACL, DWORD, LPVOID*);
+            WINBOOL AddAccessAllowedAce(PACL, DWORD, DWORD, PSID);
+            WINBOOL AddAccessDeniedAce(PACL, DWORD, DWORD, PSID);
+            WINBOOL AddAuditAccessAce(PACL, DWORD, DWORD, PSID, WINBOOL, WINBOOL);
+            WINBOOL FindFirstFreeAce(PACL, LPVOID*);
+            WINBOOL InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR, DWORD);
+            WINBOOL IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
+            DWORD GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR);
+            WINBOOL GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR_CONTROL, LPDWORD);
+            WINBOOL SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, WINBOOL, PACL, WINBOOL);
+            WINBOOL GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, LPBOOL, PACL*, LPBOOL);
+            WINBOOL SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, WINBOOL, PACL, WINBOOL);
+            WINBOOL GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, LPBOOL, PACL*, LPBOOL);
+            WINBOOL SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID, WINBOOL);
+            WINBOOL GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID*, LPBOOL);
+            WINBOOL SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID, WINBOOL);
+            WINBOOL GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID*, LPBOOL);
+            WINBOOL CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR*, WINBOOL, HANDLE, PGENERIC_MAPPING);
+            WINBOOL SetPrivateObjectSecurity(SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR*, PGENERIC_MAPPING, HANDLE);
+            WINBOOL GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD);
+            WINBOOL DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR);
+            WINBOOL MakeSelfRelativeSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, LPDWORD);
+            WINBOOL MakeAbsoluteSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, LPDWORD, PACL, LPDWORD, PACL, LPDWORD, PSID, LPDWORD, PSID, LPDWORD);
+            WINBOOL SetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR);
+            WINBOOL FindNextChangeNotification(HANDLE);
+            WINBOOL FindCloseChangeNotification(HANDLE);
+            WINBOOL VirtualLock(LPVOID, DWORD);
+            WINBOOL VirtualUnlock(LPVOID, DWORD);
+            LPVOID MapViewOfFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPVOID);
+            WINBOOL SetPriorityClass(HANDLE, DWORD);
+            DWORD GetPriorityClass(HANDLE);
+            WINBOOL IsBadReadPtr(POINTER, UINT);
+            WINBOOL IsBadWritePtr(LPVOID, UINT);
+            WINBOOL IsBadHugeReadPtr(POINTER, UINT);
+            WINBOOL IsBadHugeWritePtr(LPVOID, UINT);
+            WINBOOL IsBadCodePtr(FARPROC);
+            WINBOOL AllocateLocallyUniqueId(PLUID);
+            WINBOOL QueryPerformanceCounter(PLARGE_INTEGER);
+            WINBOOL QueryPerformanceFrequency(PLARGE_INTEGER);
+            WINBOOL ActivateKeyboardLayout(HKL, UINT);
+            WINBOOL UnloadKeyboardLayout(HKL);
+            int GetKeyboardLayoutList(int, HKL*);
+            HKL GetKeyboardLayout(DWORD);
+            HDESK OpenInputDesktop(DWORD, WINBOOL, DWORD);
+            WINBOOL EnumDesktopWindows(HDESK, ENUMWINDOWSPROC, LPARAM);
+            WINBOOL SwitchDesktop(HDESK);
+            WINBOOL SetThreadDesktop(HDESK);
+            WINBOOL CloseDesktop(HDESK);
+            HDESK GetThreadDesktop(DWORD);
+            WINBOOL CloseWindowStation(HWINSTA);
+            WINBOOL SetProcessWindowStation(HWINSTA);
+            HWINSTA GetProcessWindowStation();
+            WINBOOL SetUserObjectSecurity(HANDLE, PSECURITY_INFORMATION, PSECURITY_DESCRIPTOR);
+            WINBOOL GetUserObjectSecurity(HANDLE, PSECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, LPDWORD);
+            WINBOOL TranslateMessage(LPMSG);
+            WINBOOL SetMessageQueue(int);
+            WINBOOL RegisterHotKey(HWND, int, UINT, UINT);
+            WINBOOL UnregisterHotKey(HWND, int);
+            WINBOOL ExitWindowsEx(UINT, DWORD);
+            WINBOOL SwapMouseButton(WINBOOL);
+            DWORD GetMessagePos();
+            LONG GetMessageTime();
+            LONG GetMessageExtraInfo();
+            LPARAM SetMessageExtraInfo(LPARAM);
+            int BroadcastSystemMessage(DWORD, LPDWORD, UINT, WPARAM, LPARAM);
+            WINBOOL AttachThreadInput(DWORD, DWORD, WINBOOL);
+            WINBOOL ReplyMessage(LRESULT);
+            WINBOOL WaitMessage();
+            DWORD WaitForInputIdle(HANDLE, DWORD);
+            void PostQuitMessage(int);
+            WINBOOL InSendMessage();
+            UINT GetDoubleClickTime();
+            WINBOOL SetDoubleClickTime(UINT);
+            WINBOOL IsWindow(HWND);
+            WINBOOL IsMenu(HMENU);
+            WINBOOL IsChild(HWND, HWND);
+            WINBOOL DestroyWindow(HWND);
+            WINBOOL ShowWindow(HWND, int);
+            WINBOOL ShowWindowAsync(HWND, int);
+            WINBOOL FlashWindow(HWND, WINBOOL);
+            WINBOOL ShowOwnedPopups(HWND, WINBOOL);
+            WINBOOL OpenIcon(HWND);
+            WINBOOL CloseWindow(HWND);
+            WINBOOL MoveWindow(HWND, int, int, int, int, WINBOOL);
+            WINBOOL SetWindowPos(HWND, HWND, int, int, int, int, UINT);
+            WINBOOL GetWindowPlacement(HWND, WINDOWPLACEMENT*);
+            WINBOOL SetWindowPlacement(HWND, WINDOWPLACEMENT*);
+            HDWP BeginDeferWindowPos(int);
+            HDWP DeferWindowPos(HDWP, HWND, HWND, int, int, int, int, UINT);
+            WINBOOL EndDeferWindowPos(HDWP);
+            WINBOOL IsWindowVisible(HWND);
+            WINBOOL IsIconic(HWND);
+            WINBOOL AnyPopup();
+            WINBOOL BringWindowToTop(HWND);
+            WINBOOL IsZoomed(HWND);
+            WINBOOL EndDialog(HWND, int);
+            HWND GetDlgItem(HWND, int);
+            WINBOOL SetDlgItemInt(HWND, int, UINT, WINBOOL);
+            UINT GetDlgItemInt(HWND, int, WINBOOL*, WINBOOL);
+            WINBOOL CheckDlgButton(HWND, int, UINT);
+            WINBOOL CheckRadioButton(HWND, int, int, int);
+            UINT IsDlgButtonChecked(HWND, int);
+            HWND GetNextDlgGroupItem(HWND, HWND, WINBOOL);
+            HWND GetNextDlgTabItem(HWND, HWND, WINBOOL);
+            int GetDlgCtrlID(HWND);
+            int GetDialogBaseUnits();
+            WINBOOL OpenClipboard(HWND);
+            WINBOOL CloseClipboard();
+            HWND GetClipboardOwner();
+            HWND SetClipboardViewer(HWND);
+            HWND GetClipboardViewer();
+            WINBOOL ChangeClipboardChain(HWND, HWND);
+            HANDLE SetClipboardData(UINT, HANDLE);
+            HANDLE GetClipboardData(UINT);
+            int CountClipboardFormats();
+            UINT EnumClipboardFormats(UINT);
+            WINBOOL EmptyClipboard();
+            WINBOOL IsClipboardFormatAvailable(UINT);
+            int GetPriorityClipboardFormat(UINT*, int);
+            HWND GetOpenClipboardWindow();
+            LPSTR CharNextExA(ushort, LPCSTR, DWORD);
+            LPSTR CharPrevExA(ushort, LPCSTR, LPCSTR, DWORD);
+            HWND SetFocus(HWND);
+            HWND GetActiveWindow();
+            HWND GetFocus();
+            UINT GetKBCodePage();
+            SHORT GetKeyState(int);
+            SHORT GetAsyncKeyState(int);
+            WINBOOL GetKeyboardState(PBYTE);
+            WINBOOL SetKeyboardState(LPBYTE);
+            int GetKeyboardType(int);
+            int ToAscii(UINT, UINT, PBYTE, LPWORD, UINT);
+            int ToAsciiEx(UINT, UINT, PBYTE, LPWORD, UINT, HKL);
+            int ToUnicode(UINT, UINT, PBYTE, LPWSTR, int, UINT);
+            DWORD OemKeyScan(ushort);
+            void keybd_event(ubyte, ubyte, DWORD, POINTER);
+            void mouse_event(DWORD, DWORD, DWORD, DWORD);
+            WINBOOL GetInputState();
+            DWORD GetQueueStatus(UINT);
+            HWND GetCapture();
+            HWND SetCapture(HWND);
+            WINBOOL ReleaseCapture();
+            DWORD MsgWaitForMultipleObjects(DWORD, LPHANDLE, WINBOOL, DWORD, DWORD);
+            UINT SetTimer(HWND, UINT, UINT, TIMERPROC);
+            WINBOOL KillTimer(HWND, UINT);
+            WINBOOL IsWindowUnicode(HWND);
+            WINBOOL EnableWindow(HWND, WINBOOL);
+            WINBOOL IsWindowEnabled(HWND);
+            WINBOOL DestroyAcceleratorTable(HACCEL);
+            int GetSystemMetrics(int);
+            HMENU GetMenu(HWND);
+            WINBOOL SetMenu(HWND, HMENU);
+            WINBOOL HiliteMenuItem(HWND, HMENU, UINT, UINT);
+            UINT GetMenuState(HMENU, UINT, UINT);
+            WINBOOL DrawMenuBar(HWND);
+            HMENU GetSystemMenu(HWND, WINBOOL);
+            HMENU CreateMenu();
+            HMENU CreatePopupMenu();
+            WINBOOL DestroyMenu(HMENU);
+            DWORD CheckMenuItem(HMENU, UINT, UINT);
+            WINBOOL EnableMenuItem(HMENU, UINT, UINT);
+            HMENU GetSubMenu(HMENU, int);
+            UINT GetMenuItemID(HMENU, int);
+            int GetMenuItemCount(HMENU);
+            WINBOOL RemoveMenu(HMENU, UINT, UINT);
+            WINBOOL DeleteMenu(HMENU, UINT, UINT);
+            WINBOOL SetMenuItemBitmaps(HMENU, UINT, UINT, HBITMAP, HBITMAP);
+            LONG GetMenuCheckMarkDimensions();
+            WINBOOL TrackPopupMenu(HMENU, UINT, int, int, int, HWND, RECT*);
+            UINT GetMenuDefaultItem(HMENU, UINT, UINT);
+            WINBOOL SetMenuDefaultItem(HMENU, UINT, UINT);
+            WINBOOL GetMenuItemRect(HWND, HMENU, UINT, LPRECT);
+            int MenuItemFromPoint(HWND, HMENU, POINT);
+            DWORD DragObject(HWND, HWND, UINT, DWORD, HCURSOR);
+            WINBOOL DragDetect(HWND, POINT);
+            WINBOOL DrawIcon(HDC, int, int, HICON);
+            WINBOOL UpdateWindow(HWND);
+            HWND SetActiveWindow(HWND);
+            HWND GetForegroundWindow();
+            WINBOOL PaintDesktop(HDC);
+            WINBOOL SetForegroundWindow(HWND);
+            HWND WindowFromDC(HDC);
+            HDC GetDC(HWND);
+            HDC GetDCEx(HWND, HRGN, DWORD);
+            HDC GetWindowDC(HWND);
+            int ReleaseDC(HWND, HDC);
+            HDC BeginPaint(HWND, LPPAINTSTRUCT);
+            WINBOOL EndPaint(HWND, LPPAINTSTRUCT);
+            WINBOOL GetUpdateRect(HWND, LPRECT, WINBOOL);
+            int GetUpdateRgn(HWND, HRGN, WINBOOL);
+            int SetWindowRgn(HWND, HRGN, WINBOOL);
+            int GetWindowRgn(HWND, HRGN);
+            int ExcludeUpdateRgn(HDC, HWND);
+            WINBOOL InvalidateRect(HWND, RECT*, WINBOOL);
+            WINBOOL ValidateRect(HWND, RECT*);
+            WINBOOL InvalidateRgn(HWND, HRGN, WINBOOL);
+            WINBOOL ValidateRgn(HWND, HRGN);
+            WINBOOL RedrawWindow(HWND, RECT*, HRGN, UINT);
+            WINBOOL LockWindowUpdate(HWND);
+            WINBOOL ScrollWindow(HWND, int, int, RECT*, RECT*);
+            WINBOOL ScrollDC(HDC, int, int, RECT*, RECT*, HRGN, LPRECT);
+            int ScrollWindowEx(HWND, int, int, RECT*, RECT*, HRGN, LPRECT, UINT);
+            int SetScrollPos(HWND, int, int, WINBOOL);
+            int GetScrollPos(HWND, int);
+            WINBOOL SetScrollRange(HWND, int, int, int, WINBOOL);
+            WINBOOL GetScrollRange(HWND, int, LPINT, LPINT);
+            WINBOOL ShowScrollBar(HWND, int, WINBOOL);
+            WINBOOL EnableScrollBar(HWND, UINT, UINT);
+            WINBOOL GetClientRect(HWND, LPRECT);
+            WINBOOL GetWindowRect(HWND, LPRECT);
+            WINBOOL AdjustWindowRect(LPRECT, DWORD, WINBOOL);
+            WINBOOL AdjustWindowRectEx(LPRECT, DWORD, WINBOOL, DWORD);
+            WINBOOL SetWindowContextHelpId(HWND, DWORD);
+            DWORD GetWindowContextHelpId(HWND);
+            WINBOOL SetMenuContextHelpId(HMENU, DWORD);
+            DWORD GetMenuContextHelpId(HMENU);
+            WINBOOL MessageBeep(UINT);
+            int ShowCursor(WINBOOL);
+            WINBOOL SetCursorPos(int, int);
+            HCURSOR SetCursor(HCURSOR);
+            WINBOOL GetCursorPos(LPPOINT);
+            WINBOOL ClipCursor(RECT*);
+            WINBOOL GetClipCursor(LPRECT);
+            HCURSOR GetCursor();
+            WINBOOL CreateCaret(HWND, HBITMAP, int, int);
+            UINT GetCaretBlinkTime();
+            WINBOOL SetCaretBlinkTime(UINT);
+            WINBOOL DestroyCaret();
+            WINBOOL HideCaret(HWND);
+            WINBOOL ShowCaret(HWND);
+            WINBOOL SetCaretPos(int, int);
+            WINBOOL GetCaretPos(LPPOINT);
+            WINBOOL ClientToScreen(HWND, LPPOINT);
+            WINBOOL ScreenToClient(HWND, LPPOINT);
+            int MapWindowPoints(HWND, HWND, LPPOINT, UINT);
+            HWND WindowFromPoint(POINT);
+            HWND ChildWindowFromPoint(HWND, POINT);
+            DWORD GetSysColor(int);
+            HBRUSH GetSysColorBrush(int);
+            WINBOOL SetSysColors(int, WINT*, COLORREF*);
+            WINBOOL DrawFocusRect(HDC, RECT*);
+            int FillRect(HDC, RECT*, HBRUSH);
+            int FrameRect(HDC, RECT*, HBRUSH);
+            WINBOOL InvertRect(HDC, RECT*);
+            WINBOOL SetRect(LPRECT, int, int, int, int);
+            WINBOOL SetRectEmpty(LPRECT);
+            WINBOOL CopyRect(LPRECT, RECT*);
+            WINBOOL InflateRect(LPRECT, int, int);
+            WINBOOL IntersectRect(LPRECT, RECT*, RECT*);
+            WINBOOL UnionRect(LPRECT, RECT*, RECT*);
+            WINBOOL SubtractRect(LPRECT, RECT*, RECT*);
+            WINBOOL OffsetRect(LPRECT, int, int);
+            WINBOOL IsRectEmpty(RECT*);
+            WINBOOL EqualRect(RECT*, RECT*);
+            WINBOOL PtInRect(RECT*, POINT);
+            ushort GetWindowWord(HWND, int);
+            ushort SetWindowWord(HWND, int, ushort);
+            ushort GetClassWord(HWND, int);
+            ushort SetClassWord(HWND, int, ushort);
+            HWND GetDesktopWindow();
+            HWND GetParent(HWND);
+            HWND SetParent(HWND, HWND);
+            WINBOOL EnumChildWindows(HWND, ENUMWINDOWSPROC, LPARAM);
+            WINBOOL EnumWindows(ENUMWINDOWSPROC, LPARAM);
+            WINBOOL EnumThreadWindows(DWORD, ENUMWINDOWSPROC, LPARAM);
+            HWND GetTopWindow(HWND);
+            DWORD GetWindowThreadProcessId(HWND, LPDWORD);
+            HWND GetLastActivePopup(HWND);
+            HWND GetWindow(HWND, UINT);
+            WINBOOL UnhookWindowsHook(int, HOOKPROC);
+            WINBOOL UnhookWindowsHookEx(HHOOK);
+            LRESULT CallNextHookEx(HHOOK, int, WPARAM, LPARAM);
+            WINBOOL CheckMenuRadioItem(HMENU, UINT, UINT, UINT, UINT);
+            HCURSOR CreateCursor(HINST, int, int, int, int, POINTER, POINTER);
+            WINBOOL DestroyCursor(HCURSOR);
+            WINBOOL SetSystemCursor(HCURSOR, DWORD);
+            HICON CreateIcon(HINST, int, int, ubyte, ubyte, ubyte*, ubyte*);
+            WINBOOL DestroyIcon(HICON);
+            int LookupIconIdFromDirectory(PBYTE, WINBOOL);
+            int LookupIconIdFromDirectoryEx(PBYTE, WINBOOL, int, int, UINT);
+            HICON CreateIconFromResource(PBYTE, DWORD, WINBOOL, DWORD);
+            HICON CreateIconFromResourceEx(PBYTE, DWORD, WINBOOL, DWORD, int, int, UINT);
+            HICON CopyImage(HANDLE, UINT, int, int, UINT);
+            HICON CreateIconIndirect(PICONINFO);
+            HICON CopyIcon(HICON);
+            WINBOOL GetIconInfo(HICON, PICONINFO);
+            WINBOOL MapDialogRect(HWND, LPRECT);
+            int SetScrollInfo(HWND, int, LPCSCROLLINFO, WINBOOL);
+            WINBOOL GetScrollInfo(HWND, int, LPSCROLLINFO);
+            WINBOOL TranslateMDISysAccel(HWND, LPMSG);
+            UINT ArrangeIconicWindows(HWND);
+            ushort TileWindows(HWND, UINT, RECT*, UINT, HWND*);
+            ushort CascadeWindows(HWND, UINT, RECT*, UINT, HWND*);
+            void SetLastErrorEx(DWORD);
+            void SetDebugErrorLevel(DWORD);
+            WINBOOL DrawEdge(HDC, LPRECT, UINT, UINT);
+            WINBOOL DrawFrameControl(HDC, LPRECT, UINT, UINT);
+            WINBOOL DrawCaption(HWND, HDC, RECT*, UINT);
+            WINBOOL DrawAnimatedRects(HWND, int, RECT*, RECT*);
+            WINBOOL TrackPopupMenuEx(HMENU, UINT, int, int, HWND, LPTPMPARAMS);
+            HWND ChildWindowFromPointEx(HWND, POINT, UINT);
+            WINBOOL DrawIconEx(HDC, int, int, HICON, int, int, UINT, HBRUSH, UINT);
+            WINBOOL AnimatePalette(HPALETTE, UINT, UINT, PALETTEENTRY*);
+            WINBOOL Arc(HDC, int, int, int, int, int, int, int, int);
+            WINBOOL BitBlt(HDC, int, int, int, int, HDC, int, int, DWORD);
+            WINBOOL CancelDC(HDC);
+            WINBOOL Chord(HDC, int, int, int, int, int, int, int, int);
+            HMETAFILE CloseMetaFile(HDC);
+            int CombineRgn(HRGN, HRGN, HRGN, int);
+            HBITMAP CreateBitmap(int, int, UINT, UINT, POINTER);
+            HBITMAP CreateBitmapIndirect(BITMAP*);
+            HBRUSH CreateBrushIndirect(LOGBRUSH*);
+            HBITMAP CreateCompatibleBitmap(HDC, int, int);
+            HBITMAP CreateDiscardableBitmap(HDC, int, int);
+            HDC CreateCompatibleDC(HDC);
+            HBITMAP CreateDIBitmap(HDC, BITMAPINFOHEADER*, DWORD, POINTER, BITMAPINFO*, UINT);
+            HBRUSH CreateDIBPatternBrush(HGLOBAL, UINT);
+            HBRUSH CreateDIBPatternBrushPt(POINTER, UINT);
+            HRGN CreateEllipticRgn(int, int, int, int);
+            HRGN CreateEllipticRgnIndirect(RECT*);
+            HBRUSH CreateHatchBrush(int, COLORREF);
+            HPALETTE CreatePalette(LOGPALETTE*);
+            HPEN CreatePen(int, int, COLORREF);
+            HPEN CreatePenIndirect(LOGPEN*);
+            HRGN CreatePolyPolygonRgn(POINT*, WINT*, int, int);
+            HBRUSH CreatePatternBrush(HBITMAP);
+            HRGN CreateRectRgn(int, int, int, int);
+            HRGN CreateRectRgnIndirect(RECT*);
+            HRGN CreateRoundRectRgn(int, int, int, int, int, int);
+            HBRUSH CreateSolidBrush(COLORREF);
+            WINBOOL DeleteDC(HDC);
+            WINBOOL DeleteMetaFile(HMETAFILE);
+            WINBOOL DeleteObject(HGDIOBJ);
+            int DrawEscape(HDC, int, int, LPCSTR);
+            WINBOOL Ellipse(HDC, int, int, int, int);
+            int EnumObjects(HDC, int, ENUMOBJECTSPROC, LPARAM);
+            WINBOOL EqualRgn(HRGN, HRGN);
+            int Escape(HDC, int, int, LPCSTR, LPVOID);
+            int ExtEscape(HDC, int, int, LPCSTR, int, LPSTR);
+            int ExcludeClipRect(HDC, int, int, int, int);
+            HRGN ExtCreateRegion(XFORM*, DWORD, RGNDATA*);
+            WINBOOL ExtFloodFill(HDC, int, int, COLORREF, UINT);
+            WINBOOL FillRgn(HDC, HRGN, HBRUSH);
+            WINBOOL FloodFill(HDC, int, int, COLORREF);
+            WINBOOL FrameRgn(HDC, HRGN, HBRUSH, int, int);
+            int GetROP2(HDC);
+            WINBOOL GetAspectRatioFilterEx(HDC, LPSIZE);
+            COLORREF GetBkColor(HDC);
+            int GetBkMode(HDC);
+            LONG GetBitmapBits(HBITMAP, LONG, LPVOID);
+            WINBOOL GetBitmapDimensionEx(HBITMAP, LPSIZE);
+            UINT GetBoundsRect(HDC, LPRECT, UINT);
+            WINBOOL GetBrushOrgEx(HDC, LPPOINT);
+            int GetClipBox(HDC, LPRECT);
+            int GetClipRgn(HDC, HRGN);
+            int GetMetaRgn(HDC, HRGN);
+            HGDIOBJ GetCurrentObject(HDC, UINT);
+            WINBOOL GetCurrentPositionEx(HDC, LPPOINT);
+            int GetDeviceCaps(HDC, int);
+            int GetDIBits(HDC, HBITMAP, UINT, UINT, LPVOID, LPBITMAPINFO, UINT);
+            DWORD GetFontData(HDC, DWORD, DWORD, LPVOID, DWORD);
+            int GetGraphicsMode(HDC);
+            int GetMapMode(HDC);
+            UINT GetMetaFileBitsEx(HMETAFILE, UINT, LPVOID);
+            COLORREF GetNearestColor(HDC, COLORREF);
+            UINT GetNearestPaletteIndex(HPALETTE, COLORREF);
+            DWORD GetObjectType(HGDIOBJ);
+            UINT GetPaletteEntries(HPALETTE, UINT, UINT, LPPALETTEENTRY);
+            COLORREF GetPixel(HDC, int, int);
+            int GetPixelFormat(HDC);
+            int GetPolyFillMode(HDC);
+            WINBOOL GetRasterizerCaps(LPRASTERIZER_STATUS, UINT);
+            DWORD GetRegionData(HRGN, DWORD, LPRGNDATA);
+            int GetRgnBox(HRGN, LPRECT);
+            HGDIOBJ GetStockObject(int);
+            int GetStretchBltMode(HDC);
+            UINT GetSystemPaletteEntries(HDC, UINT, UINT, LPPALETTEENTRY);
+            UINT GetSystemPaletteUse(HDC);
+            int GetTextCharacterExtra(HDC);
+            UINT GetTextAlign(HDC);
+            COLORREF GetTextColor(HDC);
+            int GetTextCharset(HDC);
+            int GetTextCharsetInfo(HDC, LPFONTSIGNATURE, DWORD);
+            WINBOOL TranslateCharsetInfo(DWORD*, LPCHARSETINFO, DWORD);
+            DWORD GetFontLanguageInfo(HDC);
+            WINBOOL GetViewportExtEx(HDC, LPSIZE);
+            WINBOOL GetViewportOrgEx(HDC, LPPOINT);
+            WINBOOL GetWindowExtEx(HDC, LPSIZE);
+            WINBOOL GetWindowOrgEx(HDC, LPPOINT);
+            int IntersectClipRect(HDC, int, int, int, int);
+            WINBOOL InvertRgn(HDC, HRGN);
+            WINBOOL LineDDA(int, int, int, int, LINEDDAPROC, LPARAM);
+            WINBOOL LineTo(HDC, int, int);
+            WINBOOL MaskBlt(HDC, int, int, int, int, HDC, int, int, HBITMAP, int, int, DWORD);
+            WINBOOL PlgBlt(HDC, POINT*, HDC, int, int, int, int, HBITMAP, int, int);
+            int OffsetClipRgn(HDC, int, int);
+            int OffsetRgn(HRGN, int, int);
+            WINBOOL PatBlt(HDC, int, int, int, int, DWORD);
+            WINBOOL Pie(HDC, int, int, int, int, int, int, int, int);
+            WINBOOL PlayMetaFile(HDC, HMETAFILE);
+            WINBOOL PaintRgn(HDC, HRGN);
+            WINBOOL PolyPolygon(HDC, POINT*, WINT*, int);
+            WINBOOL PtInRegion(HRGN, int, int);
+            WINBOOL PtVisible(HDC, int, int);
+            WINBOOL RectInRegion(HRGN, RECT*);
+            WINBOOL RectVisible(HDC, RECT*);
+            WINBOOL Rectangle(HDC, int, int, int, int);
+            WINBOOL RestoreDC(HDC, int);
+            UINT RealizePalette(HDC);
+            WINBOOL RoundRect(HDC, int, int, int, int, int, int);
+            WINBOOL ResizePalette(HPALETTE, UINT);
+            int SaveDC(HDC);
+            int SelectClipRgn(HDC, HRGN);
+            int ExtSelectClipRgn(HDC, HRGN, int);
+            int SetMetaRgn(HDC);
+            HGDIOBJ SelectObject(HDC, HGDIOBJ);
+            HPALETTE SelectPalette(HDC, HPALETTE, WINBOOL);
+            COLORREF SetBkColor(HDC, COLORREF);
+            int SetBkMode(HDC, int);
+            LONG SetBitmapBits(HBITMAP, DWORD, POINTER);
+            UINT SetBoundsRect(HDC, RECT*, UINT);
+            int SetDIBits(HDC, HBITMAP, UINT, UINT, POINTER, PBITMAPINFO, UINT);
+            int SetDIBitsToDevice(HDC, int, int, DWORD, DWORD, int, int, UINT, UINT, POINTER, BITMAPINFO*, UINT);
+            DWORD SetMapperFlags(HDC, DWORD);
+            int SetGraphicsMode(HDC, int);
+            int SetMapMode(HDC, int);
+            HMETAFILE SetMetaFileBitsEx(UINT, ubyte*);
+            UINT SetPaletteEntries(HPALETTE, UINT, UINT, PALETTEENTRY*);
+            COLORREF SetPixel(HDC, int, int, COLORREF);
+            WINBOOL SetPixelV(HDC, int, int, COLORREF);
+            int SetPolyFillMode(HDC, int);
+            WINBOOL StretchBlt(HDC, int, int, int, int, HDC, int, int, int, int, DWORD);
+            WINBOOL SetRectRgn(HRGN, int, int, int, int);
+            int StretchDIBits(HDC, int, int, int, int, int, int, int, int, POINTER, BITMAPINFO*, UINT, DWORD);
+            int SetROP2(HDC, int);
+            int SetStretchBltMode(HDC, int);
+            UINT SetSystemPaletteUse(HDC, UINT);
+            int SetTextCharacterExtra(HDC, int);
+            COLORREF SetTextColor(HDC, COLORREF);
+            UINT SetTextAlign(HDC, UINT);
+            WINBOOL SetTextJustification(HDC, int, int);
+            WINBOOL UpdateColors(HDC);
+            WINBOOL PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, UINT);
+            WINBOOL EnumMetaFile(HDC, HMETAFILE, ENUMMETAFILEPROC, LPARAM);
+            HENHMETAFILE CloseEnhMetaFile(HDC);
+            WINBOOL DeleteEnhMetaFile(HENHMETAFILE);
+            WINBOOL EnumEnhMetaFile(HDC, HENHMETAFILE, ENHMETAFILEPROC, LPVOID, RECT*);
+            UINT GetEnhMetaFileHeader(HENHMETAFILE, UINT, LPENHMETAHEADER);
+            UINT GetEnhMetaFilePaletteEntries(HENHMETAFILE, UINT, LPPALETTEENTRY);
+            UINT GetWinMetaFileBits(HENHMETAFILE, UINT, LPBYTE, WINT, HDC);
+            WINBOOL PlayEnhMetaFile(HDC, HENHMETAFILE, RECT*);
+            WINBOOL PlayEnhMetaFileRecord(HDC, LPHANDLETABLE, ENHMETARECORD*, UINT);
+            HENHMETAFILE SetEnhMetaFileBits(UINT, ubyte*);
+            HENHMETAFILE SetWinMetaFileBits(UINT, ubyte*, HDC, METAFILEPICT*);
+            WINBOOL GdiComment(HDC, UINT, ubyte*);
+            WINBOOL AngleArc(HDC, int, int, DWORD, FLOAT, FLOAT);
+            WINBOOL PolyPolyline(HDC, POINT*, DWORD*, DWORD);
+            WINBOOL GetWorldTransform(HDC, LPXFORM);
+            WINBOOL SetWorldTransform(HDC, XFORM*);
+            WINBOOL ModifyWorldTransform(HDC, XFORM*, DWORD);
+            WINBOOL CombineTransform(LPXFORM, XFORM*, XFORM*);
+            HBITMAP CreateDIBSection(HDC, BITMAPINFO*, UINT, POINTER*, HANDLE, DWORD);
+            UINT GetDIBColorTable(HDC, UINT, UINT, RGBQUAD*);
+            UINT SetDIBColorTable(HDC, UINT, UINT, RGBQUAD*);
+            WINBOOL SetColorAdjustment(HDC, COLORADJUSTMENT*);
+            WINBOOL GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
+            HPALETTE CreateHalftonePalette(HDC);
+            int EndDoc(HDC);
+            int StartPage(HDC);
+            int EndPage(HDC);
+            int AbortDoc(HDC);
+            int SetAbortProc(HDC, TABORTPROC);
+            WINBOOL ArcTo(HDC, int, int, int, int, int, int, int, int);
+            WINBOOL BeginPath(HDC);
+            WINBOOL CloseFigure(HDC);
+            WINBOOL EndPath(HDC);
+            WINBOOL FillPath(HDC);
+            WINBOOL FlattenPath(HDC);
+            int GetPath(HDC, LPPOINT, LPBYTE, int);
+            HRGN PathToRegion(HDC);
+            WINBOOL PolyDraw(HDC, POINT*, ubyte*, int);
+            WINBOOL SelectClipPath(HDC, int);
+            int SetArcDirection(HDC, int);
+            WINBOOL SetMiterLimit(HDC, FLOAT, PFLOAT);
+            WINBOOL StrokeAndFillPath(HDC);
+            WINBOOL StrokePath(HDC);
+            WINBOOL WidenPath(HDC);
+            HPEN ExtCreatePen(DWORD, DWORD, LOGBRUSH*, DWORD, DWORD*);
+            WINBOOL GetMiterLimit(HDC, PFLOAT);
+            int GetArcDirection(HDC);
+            WINBOOL MoveToEx(HDC, int, int, LPPOINT);
+            HRGN CreatePolygonRgn(POINT*, int, int);
+            WINBOOL DPtoLP(HDC, LPPOINT, int);
+            WINBOOL LPtoDP(HDC, LPPOINT, int);
+            WINBOOL Polygon(HDC, POINT*, int);
+            WINBOOL Polyline(HDC, POINT*, int);
+            WINBOOL PolyBezier(HDC, POINT*, DWORD);
+            WINBOOL PolyBezierTo(HDC, POINT*, DWORD);
+            WINBOOL PolylineTo(HDC, POINT*, DWORD);
+            WINBOOL SetViewportExtEx(HDC, int, int, LPSIZE);
+            WINBOOL SetViewportOrgEx(HDC, int, int, LPPOINT);
+            WINBOOL SetWindowExtEx(HDC, int, int, LPSIZE);
+            WINBOOL SetWindowOrgEx(HDC, int, int, LPPOINT);
+            WINBOOL OffsetViewportOrgEx(HDC, int, int, LPPOINT);
+            WINBOOL OffsetWindowOrgEx(HDC, int, int, LPPOINT);
+            WINBOOL ScaleViewportExtEx(HDC, int, int, int, int, LPSIZE);
+            WINBOOL ScaleWindowExtEx(HDC, int, int, int, int, LPSIZE);
+            WINBOOL SetBitmapDimensionEx(HBITMAP, int, int, LPSIZE);
+            WINBOOL SetBrushOrgEx(HDC, int, int, LPPOINT);
+            WINBOOL GetDCOrgEx(HDC, LPPOINT);
+            WINBOOL FixBrushOrgEx(HDC, int, int, LPPOINT);
+            WINBOOL UnrealizeObject(HGDIOBJ);
+            WINBOOL GdiFlush();
+            DWORD GdiSetBatchLimit(DWORD);
+            DWORD GdiGetBatchLimit();
+            int SetICMMode(HDC, int);
+            WINBOOL CheckColorsInGamut(HDC, LPVOID, LPVOID, DWORD);
+            HANDLE GetColorSpace(HDC);
+            WINBOOL SetColorSpace(HDC, HCOLORSPACE);
+            WINBOOL DeleteColorSpace(HCOLORSPACE);
+            WINBOOL GetDeviceGammaRamp(HDC, LPVOID);
+            WINBOOL SetDeviceGammaRamp(HDC, LPVOID);
+            WINBOOL ColorMatchToTarget(HDC, HDC, DWORD);
+            HPROPSHEETPAGE CreatePropertySheetPageA(LPCPROPSHEETPAGE);
+            WINBOOL DestroyPropertySheetPage(HPROPSHEETPAGE);
+            void InitCommonControls();
+            HIMAGELIST ImageList_Create(int, int, UINT, int, int);
+            WINBOOL ImageList_Destroy(HIMAGELIST);
+            int ImageList_GetImageCount(HIMAGELIST);
+            int ImageList_Add(HIMAGELIST, HBITMAP, HBITMAP);
+            int ImageList_ReplaceIcon(HIMAGELIST, int, HICON);
+            COLORREF ImageList_SetBkColor(HIMAGELIST, COLORREF);
+            COLORREF ImageList_GetBkColor(HIMAGELIST);
+            WINBOOL ImageList_SetOverlayImage(HIMAGELIST, int, int);
+            WINBOOL ImageList_Draw(HIMAGELIST, int, HDC, int, int, UINT);
+            WINBOOL ImageList_Replace(HIMAGELIST, int, HBITMAP, HBITMAP);
+            int ImageList_AddMasked(HIMAGELIST, HBITMAP, COLORREF);
+            WINBOOL ImageList_DrawEx(HIMAGELIST, int, HDC, int, int, int, int, COLORREF, COLORREF, UINT);
+            WINBOOL ImageList_Remove(HIMAGELIST, int);
+            HICON ImageList_GetIcon(HIMAGELIST, int, UINT);
+            WINBOOL ImageList_BeginDrag(HIMAGELIST, int, int, int);
+            void ImageList_EndDrag();
+            WINBOOL ImageList_DragEnter(HWND, int, int);
+            WINBOOL ImageList_DragLeave(HWND);
+            WINBOOL ImageList_DragMove(int, int);
+            WINBOOL ImageList_SetDragCursorImage(HIMAGELIST, int, int, int);
+            WINBOOL ImageList_DragShowNolock(WINBOOL);
+            HIMAGELIST ImageList_GetDragImage(POINT*, POINT*);
+            WINBOOL ImageList_GetIconSize(HIMAGELIST, int*, int*);
+            WINBOOL ImageList_SetIconSize(HIMAGELIST, int, int);
+            WINBOOL ImageList_GetImageInfo(HIMAGELIST, int, IMAGEINFO*);
+            HIMAGELIST ImageList_Merge(HIMAGELIST, int, HIMAGELIST, int, int, int);
+            HWND CreateToolbarEx(HWND, DWORD, UINT, int, HINST, UINT, LPCTBBUTTON, int, int, int, int, int, UINT);
+            HBITMAP CreateMappedBitmap(HINST, int, UINT, LPCOLORMAP, int);
+            void MenuHelp(UINT, WPARAM, LPARAM, HMENU, HINST, HWND);
+            WINBOOL ShowHideMenuCtl(HWND, UINT, LPINT);
+            void GetEffectiveClientRect(HWND, LPRECT);
+            WINBOOL MakeDragList(HWND);
+            void DrawInsert(HWND, HWND);
+            int LBItemFromPt(HWND, POINT, WINBOOL);
+            HWND CreateUpDownControl(DWORD, int, int, int, int, HWND, int, HINST, HWND, int, int, int);
+            LONG RegCloseKey(HKEY);
+            LONG RegSetKeySecurity(HKEY, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR);
+            LONG RegFlushKey(HKEY);
+            LONG RegGetKeySecurity(HKEY, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, LPDWORD);
+            LONG RegNotifyChangeKeyValue(HKEY, WINBOOL, DWORD, HANDLE, WINBOOL);
+            WINBOOL IsValidCodePage(UINT);
+            UINT GetACP();
+            UINT GetOEMCP();
+            WINBOOL GetCPInfo(UINT, LPCPINFO);
+            WINBOOL IsDBCSLeadByte(ubyte);
+            WINBOOL IsDBCSLeadByteEx(UINT, ubyte);
+            int MultiByteToWideChar(UINT, DWORD, LPCSTR, int, LPWSTR, int);
+            int WideCharToMultiByte(UINT, DWORD, LPCWSTR, int, LPSTR, int, LPCSTR, LPBOOL);
+            WINBOOL IsValidLocale(LCID, DWORD);
+            LCID ConvertDefaultLocale(LCID);
+            LCID GetThreadLocale();
+            WINBOOL SetThreadLocale(LCID);
+            LANGID GetSystemDefaultLangID();
+            LANGID GetUserDefaultLangID();
+            LCID GetSystemDefaultLCID();
+            LCID GetUserDefaultLCID();
+            WINBOOL ReadConsoleOutputAttribute(HANDLE, LPWORD, DWORD, COORD, LPDWORD);
+            WINBOOL WriteConsoleOutputAttribute(HANDLE, ushort*, DWORD, COORD, LPDWORD);
+            WINBOOL FillConsoleOutputAttribute(HANDLE, ushort, DWORD, COORD, LPDWORD);
+            WINBOOL GetConsoleMode(HANDLE, LPDWORD);
+            WINBOOL GetNumberOfConsoleInputEvents(HANDLE, PDWORD);
+            WINBOOL GetConsoleScreenBufferInfo(HANDLE, PCONSOLE_SCREEN_BUFFER_INFO);
+            COORD GetLargestConsoleWindowSize(HANDLE);
+            WINBOOL GetConsoleCursorInfo(HANDLE, PCONSOLE_CURSOR_INFO);
+            WINBOOL GetNumberOfConsoleMouseButtons(LPDWORD);
+            WINBOOL SetConsoleMode(HANDLE, DWORD);
+            WINBOOL SetConsoleActiveScreenBuffer(HANDLE);
+            WINBOOL FlushConsoleInputBuffer(HANDLE);
+            WINBOOL SetConsoleScreenBufferSize(HANDLE, COORD);
+            WINBOOL SetConsoleCursorPosition(HANDLE, COORD);
+            WINBOOL SetConsoleCursorInfo(HANDLE, PCONSOLE_CURSOR_INFO);
+            WINBOOL SetConsoleWindowInfo(HANDLE, WINBOOL, SMALL_RECT*);
+            WINBOOL SetConsoleTextAttribute(HANDLE, ushort);
+            WINBOOL SetConsoleCtrlHandler(PHANDLER_ROUTINE, WINBOOL);
+            WINBOOL GenerateConsoleCtrlEvent(DWORD, DWORD);
+            WINBOOL AllocConsole();
+            WINBOOL FreeConsole();
+            HANDLE CreateConsoleScreenBuffer(DWORD, DWORD, SECURITY_ATTRIBUTES*, DWORD, LPVOID);
+            UINT GetConsoleCP();
+            WINBOOL SetConsoleCP(UINT);
+            UINT GetConsoleOutputCP();
+            WINBOOL SetConsoleOutputCP(UINT);
+            DWORD WNetConnectionDialog(HWND, DWORD);
+            DWORD WNetDisconnectDialog(HWND, DWORD);
+            DWORD WNetCloseEnum(HANDLE);
+            WINBOOL CloseServiceHandle(SC_HANDLE);
+            WINBOOL ControlService(SC_HANDLE, DWORD, LPSERVICE_STATUS);
+            WINBOOL DeleteService(SC_HANDLE);
+            SC_LOCK LockServiceDatabase(SC_HANDLE);
+            WINBOOL NotifyBootConfigStatus(WINBOOL);
+            WINBOOL QueryServiceObjectSecurity(SC_HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, LPDWORD);
+            WINBOOL QueryServiceStatus(SC_HANDLE, LPSERVICE_STATUS);
+            WINBOOL SetServiceObjectSecurity(SC_HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR);
+            WINBOOL SetServiceStatus(SERVICE_STATUS_HANDLE, LPSERVICE_STATUS);
+            WINBOOL UnlockServiceDatabase(SC_LOCK);
+            int ChoosePixelFormat(HDC, PIXELFORMATDESCRIPTOR*);
+            int DescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESCRIPTOR);
+            WINBOOL SetPixelFormat(HDC, int, PPIXELFORMATDESCRIPTOR);
+            WINBOOL SwapBuffers(HDC);
+            WINBOOL DragQueryPoint(HDROP, LPPOINT);
+            void DragFinish(HDROP);
+            void DragAcceptFiles(HWND, BOOL);
+            HICON DuplicateIcon(HINST, HICON);
+            BOOL DdeAbandonTransaction(DWORD, HCONV, DWORD);
+            PBYTE DdeAccessData(HDDEDATA, PDWORD);
+            HDDEDATA DdeAddData(HDDEDATA, PBYTE, DWORD, DWORD);
+            HDDEDATA DdeClientTransaction(PBYTE, DWORD, HCONV, HSZ, UINT, UINT, DWORD, PDWORD);
+            int DdeCmpStringHandles(HSZ, HSZ);
+            HCONV DdeConnect(DWORD, HSZ, HSZ, CONVCONTEXT*);
+            HCONVLIST DdeConnectList(DWORD, HSZ, HSZ, HCONVLIST, PCONVCONTEXT);
+            HDDEDATA DdeCreateDataHandle(DWORD, LPBYTE, DWORD, DWORD, HSZ, UINT, UINT);
+            WINBOOL DdeDisconnect(HCONV);
+            BOOL DdeDisconnectList(HCONVLIST);
+            BOOL DdeEnableCallback(DWORD, HCONV, UINT);
+            WINBOOL DdeFreeDataHandle(HDDEDATA);
+            WINBOOL DdeFreeStringHandle(DWORD, HSZ);
+            DWORD DdeGetData(HDDEDATA, ubyte*, DWORD, DWORD);
+            UINT DdeGetLastError(DWORD);
+            BOOL DdeImpersonateClient(HCONV);
+            BOOL DdeKeepStringHandle(DWORD, HSZ);
+            HDDEDATA DdeNameService(DWORD, HSZ, HSZ, UINT);
+            WINBOOL DdePostAdvise(DWORD, HSZ, HSZ);
+            UINT DdeQueryConvInfo(HCONV, DWORD, PCONVINFO);
+            HCONV DdeQueryNextServer(HCONVLIST, HCONV);
+            HCONV DdeReconnect(HCONV);
+            BOOL DdeSetUserHandle(HCONV, DWORD, DWORD);
+            BOOL DdeUnaccessData(HDDEDATA);
+            WINBOOL DdeUninitialize(DWORD);
+            void SHAddToRecentDocs(UINT);
+            LPITEMIDLIST SHBrowseForFolder(LPBROWSEINFO);
+            void SHChangeNotify(LONG, UINT, LPCVOID);
+            int SHFileOperationA(LPSHFILEOPSTRUCTA);
+            int SHFileOperationW(LPSHFILEOPSTRUCTW);
+            void SHFreeNameMappings(HANDLE);
+            DWORD SHGetFileInfo(LPCTSTR, DWORD, SHFILEINFO*, UINT, UINT);
+            WINBOOL SHGetPathFromIDList(LPCITEMIDLIST, LPTSTR);
+            HRESULT SHGetSpecialFolderLocation(HWND, int, LPITEMIDLIST*);
+            THANDLE CreateThread(POINTER, DWORD, TFNTHREADSTARTROUTINE, POINTER, DWORD, DWORD*);
+            BOOL DdeSetQualityOfService(HWND, TSECURITYQUALITYOFSERVICE*, PSECURITYQUALITYOFSERVICE);
+            BOOL GetCommMask(THANDLE, DWORD*);
+            BOOL GetDiskFreeSpaceExA(LPCSTR, void*, void*, PLARGEINTEGER);
+            BOOL GetDiskFreeSpaceExW(LPWSTR, void*, void*, PLARGEINTEGER);
+            DWORD GetKerningPairs(HDC, DWORD, void*);
+            BOOL GetOverlappedResult(THANDLE, TOVERLAPPED*, DWORD*, BOOL);
+            BOOL GetQueuedCompletionStatus(THANDLE, DWORD*, DWORD*, POVERLAPPED*, DWORD);
+            BOOL GetSystemPowerStatus(TSYSTEMPOWERSTATUS*);
+            BOOL ReadFile(THANDLE, void*, DWORD, DWORD*, POVERLAPPED);
+            BOOL SetThreadContext(THANDLE, TCONTEXT*);
+            BOOL wglDescribeLayerPlane(HDC, int, int, uint, TLAYERPLANEDESCRIPTOR*);
+            int wglGetLayerPaletteEntries(HDC, int, int, int, void*);
+            int wglSetLayerPaletteEntries(HDC, int, int, int, void*);
+            DWORD WNetGetResourceParentA(PNETRESOURCEA, POINTER, DWORD*);
+            BOOL WriteFile(THANDLE, void*, DWORD, DWORD*, POVERLAPPED);
+
+                BOOL CancelWaitableTimer(HANDLE hTimer);
+                HANDLE OpenWaitableTimerA(DWORD dwDesiredAccess, BOOL bInheritHandle, LPCSTR lpTimerName);
+                HANDLE OpenWaitableTimerW(DWORD dwDesiredAccess, BOOL bInheritHandle, LPCWSTR lpTimerName);
+                HANDLE CreateWaitableTimerA(LPSECURITY_ATTRIBUTES lpTimerAttributes, BOOL bManualReset, LPCSTR lpTimerName);
+                HANDLE CreateWaitableTimerW(LPSECURITY_ATTRIBUTES lpTimerAttributes, BOOL bManualReset, LPCWSTR lpTimerName);
+                BOOL SetWaitableTimer(HANDLE hTimer, LARGE_INTEGER* pDueTime, LONG lPeriod, PTIMERAPCROUTINE pfnCompletionRoutine, LPVOID lpArgToCompletionRoutine, BOOL fResume);
+        }
+
+        version(Win32SansUnicode){
+            alias SHFileOperationA SHFileOperation;
+        }else{
+            alias SHFileOperationW SHFileOperation;
+        }
+
+
+
+    }}
+}
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // org.eclipse.swt
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/win32/WINTYPES.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/win32/WINTYPES.d	Tue Mar 24 08:48:41 2009 +0100
@@ -4,12 +4,14251 @@
 
 module org.eclipse.swt.internal.win32.WINTYPES;
 
-public import tango.sys.win32.Types;
+version(Tango){
+    public import tango.sys.win32.Types;
+} else { // Phobos
+//    public import std.c.windows.windows;
+}
 
 // missing in tango
 //alias TLOGFONTA* LPLOGFONTA;
 //alias TLOGFONTA LOGFONTA;
 //alias char CHAR;
+version(Tango){
+} else { // Phobos
+    /*
+        Module:     Windows Types
+        Author:     Trevor Parscal, Frank Benoit
+    */
+
+    /+ Aliases, Types, and Constants +/
+    const void* NULL = null;
+    alias int SCODE;
+    alias void VOID;
+    alias void* POINTER;
+    alias ushort ATOM;
+    alias int WINBOOL;
+    alias WINBOOL BOOL;
+    alias uint CALTYPE;
+    alias uint CALID;
+    alias char CCHAR;
+    alias char* PCHAR;
+    alias uint COLORREF;
+    alias uint TCOLORREF;
+    alias char CHAR;
+    alias ubyte BYTE;
+    alias short INT16;
+    alias ushort UINT16;
+    alias short SHORT;
+    alias int INT;
+    alias int WINT;
+    alias int LONG;
+    alias ushort WORD;
+    alias uint DWORD;
+    alias int INT_PTR;
+    alias uint UINT_PTR;
+    alias int LONG_PTR;
+    alias uint ULONG_PTR;
+    alias DWORD DWORD_PTR;
+    alias uint PROPID;
+    const BOOL FALSE = 0;
+    const BOOL TRUE = -1;
+    alias char* PANSICHAR;
+    alias wchar* PWIDECHAR;
+    alias int* PINTEGER;
+    alias long LONGLONG;
+    alias LONGLONG* PLONGLONG;
+    alias ulong DWORDLONG;
+    alias DWORDLONG* PDWORDLONG;
+    alias float FLOAT;
+    alias void* HANDLE;
+    alias HANDLE HACCEL;
+    alias HANDLE HBITMAP;
+    alias HANDLE HBRUSH;
+    alias HANDLE HCOLORSPACE;
+    alias HANDLE HCONV;
+    alias HANDLE HCONVLIST;
+    alias HANDLE HCURSOR;
+    alias HANDLE HDBC;
+    alias HANDLE HDC;
+    alias HANDLE HDDEDATA;
+    alias HANDLE HDESK;
+    alias HANDLE HDROP;
+    alias HANDLE HDWP;
+    alias HANDLE HENHMETAFILE;
+    alias HANDLE HENV;
+    alias HANDLE HFILE;
+    alias HANDLE HFONT;
+    alias HANDLE HGDIOBJ;
+    alias HANDLE HGLOBAL;
+    alias HANDLE HGLRC;
+    alias HANDLE HHOOK;
+    alias HANDLE HICON;
+    alias HANDLE HIMAGELIST;
+    alias HANDLE HINST;
+    alias HINST HINSTANCE;
+    alias HANDLE HKEY;
+    alias HANDLE HKL;
+    alias HANDLE HLOCAL;
+    alias HANDLE HMENU;
+    alias HANDLE HMETAFILE;
+    alias HANDLE HMODULE;
+    alias HANDLE HPALETTE;
+    alias HANDLE HPEN;
+    alias HANDLE HRASCONN;
+    alias int HRESULT;
+    alias HANDLE HRGN;
+    alias HANDLE HRSRC;
+    alias HANDLE HSTMT;
+    alias HANDLE HSZ;
+    alias HANDLE HWINSTA;
+    alias HANDLE HWND;
+    alias ushort LANGID;
+    alias DWORD LCID;
+    alias DWORD LCTYPE;
+    alias int LPARAM;
+    alias ushort* LP;
+    alias WINBOOL* LPBOOL;
+    alias ubyte* LPBYTE;
+    alias PCHAR LPCCH;
+    alias PCHAR LPCH;
+    alias COLORREF* LPCOLORREF;
+    alias PCHAR LPCSTR;
+    alias TCHAR* LPCTSTR;
+    alias wchar* LPCWCH;
+    alias wchar* LPCWSTR;
+    alias DWORD* LPDWORD;
+    alias HANDLE* LPHANDLE;
+    alias int* LPINT;
+    alias int* LPLONG;
+    alias PCHAR LPSTR;
+    alias PCHAR LPTCH;
+    alias TCHAR* LPTSTR;
+    alias int LRESULT;
+    alias POINTER LPVOID;
+    alias POINTER LPCVOID;
+    alias wchar* LPWCH;
+    alias wchar* LPWORD;
+    alias wchar* LPWSTR;
+    alias wchar* NWPSTR;
+    alias WINBOOL* PWINBOOL;
+    alias ubyte BOOLEAN;
+    alias ubyte* PBOOLEAN;
+    alias ubyte* PBYTE;
+    alias PCHAR PCCH;
+    alias PCHAR PCH;
+    alias PCHAR PCSTR;
+    alias wchar* PCWCH;
+    alias wchar* PCWSTR;
+    alias DWORD* PDWORD;
+    alias float* PFLOAT;
+    alias HANDLE* PHANDLE;
+    alias HKEY* PHKEY;
+    alias int* PINT;
+    alias int* PLONG;
+    alias int* PSHORT;
+    alias PCHAR PSTR;
+    alias PCHAR PSZ;
+    alias ubyte* PTBYTE;
+    alias PCHAR PTCH;
+    alias PCHAR PTCHAR;
+    alias PCHAR PTSTR;
+    alias ubyte* PUCHAR;
+    alias wchar* PWCH;
+    alias wchar* PWCHAR;
+    alias ushort* PWORD;
+    alias uint* PUINT;
+    alias uint* PULONG;
+    alias ushort* PUSHORT;
+    alias POINTER PVOID;
+    // NOTE: This is defined in sqltypes.  Probably shouldn't be here.  Commenting for now.
+    //alias int RETCODE;
+    alias HANDLE SC_HANDLE;
+    alias LPVOID SC_LOCK;
+    alias SC_HANDLE* LPSC_HANDLE;
+    alias DWORD SERVICE_STATUS_HANDLE;
+    alias ubyte TBYTE;
+
+    version(Win32SansUnicode){
+        // Strictly speaking this should be ubyte since char is UTF-8, but that
+        // fills code with so many casts that it's just not sensible.
+        // (See also DMD Issue 2193.)
+        alias  char TCHAR;
+    }else{
+        alias wchar TCHAR;
+    }
+
+    alias ubyte BCHAR;
+    alias ubyte UCHAR;
+    alias wchar WCHAR;
+    alias uint UINT;
+    alias uint ULONG;
+    alias ushort USHORT;
+    alias uint WPARAM;
+    alias int ACL_INFORMATION_CLASS;
+
+    alias GUID IID;
+    alias IID* REFIID;
+
+    // Cast a string literal to a ubyte*=PCHAR
+    template _PCHAR( char[] a ){
+        const PCHAR _PCHAR = cast(PCHAR)a.ptr;
+    }
+
+    enum { AclRevisionInformation = 1, AclSizeInformation,  };
+    alias ACL_INFORMATION_CLASS _ACL_INFORMATION_CLASS;
+    alias int MEDIA_TYPE;
+    enum { Unknown, F5_1Pt2_512, F3_1Pt44_512, F3_2Pt88_512, F3_20Pt8_512, F3_720_512, F5_360_512, F5_320_512, F5_320_1024, F5_180_512, F5_160_512, RemovableMedia, FixedMedia,  };
+    alias MEDIA_TYPE _MEDIA_TYPE;
+    const int RASCS_DONE = (0x2000);
+    const int RASCS_PAUSED = (0x1000);
+    alias int RASCONNSTATE;
+    enum { RASCS_OpenPort = 0, RASCS_PortOpened, RASCS_ConnectDevice, RASCS_DeviceConnected, RASCS_AllDevicesConnected, RASCS_Authenticate, RASCS_AuthNotify, RASCS_AuthRetry, RASCS_AuthCallback, RASCS_AuthChangePassword, RASCS_AuthProject, RASCS_AuthLinkSpeed, RASCS_AuthAck, RASCS_ReAuthenticate, RASCS_Authenticated, RASCS_PrepareForCallback, RASCS_WaitForModemReset, RASCS_WaitForCallback, RASCS_Projected, RASCS_StartAuthentication, RASCS_CallbackComplete, RASCS_LogonNetwork, RASCS_Interactive = RASCS_PAUSED, RASCS_RetryAuthentication, RASCS_CallbackSetByCaller, RASCS_PasswordExpired, RASCS_Connected = RASCS_DONE, RASCS_Disconnected,  };
+    alias RASCONNSTATE _RASCONNSTATE;
+    alias int RASPROJECTION;
+    enum { RASP_Amb = 0x10000, RASP_PppNbf = 0x803F, RASP_PppIpx = 0x802B, RASP_PppIp = 0x8021,  };
+    alias RASPROJECTION _RASPROJECTION;
+    alias int SECURITY_IMPERSONATION_LEVEL;
+    enum { SecurityAnonymous, SecurityIdentification, SecurityImpersonation, SecurityDelegation,  };
+    alias SECURITY_IMPERSONATION_LEVEL _SECURITY_IMPERSONATION_LEVEL;
+    alias int SID_NAME_USE;
+    enum { SidTypeUser = 1, SidTypeGroup, SidTypeDomain, SidTypeAlias, SidTypeWellKnownGroup, SidTypeDeletedAccount, SidTypeInvalid, SidTypeUnknown,  };
+    alias SID_NAME_USE* PSID_NAME_USE;
+    alias SID_NAME_USE _SID_NAME_USE;
+    alias int TOKEN_INFORMATION_CLASS;
+    enum { TokenUser = 1, TokenGroups, TokenPrivileges, TokenOwner, TokenPrimaryGroup, TokenDefaultDacl, TokenSource, TokenType, TokenImpersonationLevel, TokenStatistics,  };
+    alias TOKEN_INFORMATION_CLASS _TOKEN_INFORMATION_CLASS;
+    alias int TOKEN_TYPE;
+    enum { TokenPrimary = 1, TokenImpersonation,  };
+    alias TOKEN_TYPE TAGTOKEN_TYPE;
+
+    extern(Windows){
+    alias int (*BFFCALLBACK)(HWND, UINT, LPARAM, LPARAM);
+    alias UINT (*LPCCHOOKPROC)(HWND, UINT, WPARAM, LPARAM);
+    alias UINT (*LPCFHOOKPROC)(HWND, UINT, WPARAM, LPARAM);
+    alias POINTER PTHREAD_START_ROUTINE;
+    alias PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
+    alias DWORD (*EDITSTREAMCALLBACK)(DWORD, LPBYTE, LONG, LONG);
+    alias UINT (*LPFRHOOKPROC)(HWND, UINT, WPARAM, LPARAM);
+    alias UINT (*LPOFNHOOKPROC)(HWND, UINT, WPARAM, LPARAM);
+    alias UINT (*LPPRINTHOOKPROC)(HWND, UINT, WPARAM, LPARAM);
+    alias UINT (*LPSETUPHOOKPROC)(HWND, UINT, WPARAM, LPARAM);
+    alias LRESULT (*DLGPROC)(HWND, UINT, WPARAM, LPARAM);
+    alias int (*PFNPROPSHEETCALLBACK)(HWND, UINT, LPARAM);
+    alias void (*LPSERVICE_MAIN_FUNCTION)(DWORD, LPTSTR);
+    alias int (*PFNTVCOMPARE)(LPARAM, LPARAM, LPARAM);
+    alias LRESULT (*WNDPROC)(HWND, UINT, WPARAM, LPARAM);
+    alias POINTER FARPROC;
+    alias FARPROC PROC;
+    alias WINBOOL (*ENUMRESTYPEPROC)(HANDLE, LPTSTR, LONG);
+    alias WINBOOL (*ENUMRESNAMEPROC)(HANDLE, LPCTSTR, LPTSTR, LONG);
+    alias WINBOOL (*ENUMRESLANGPROC)(HANDLE, LPCTSTR, LPCTSTR, ushort, LONG);
+    alias FARPROC DESKTOPENUMPROC;
+    alias WINBOOL (*ENUMWINDOWSPROC)(HWND, LPARAM);
+    alias WINBOOL (*ENUMWINDOWSTATIONPROC)(LPTSTR, LPARAM);
+    alias void (*SENDASYNCPROC)(HWND, UINT, DWORD);
+    alias void (*TIMERPROC)(HWND, UINT, UINT, DWORD);
+    alias BOOL(*MONITORENUMPROC)(HMONITOR, HDC, RECT*, LPARAM);
+    alias FARPROC GRAYSTRINGPROC;
+    alias WINBOOL (*DRAWSTATEPROC)(HDC, LPARAM, WPARAM, int, int);
+    alias WINBOOL (*PROPENUMPROCEX)(HWND, LPCTSTR, HANDLE, DWORD);
+    alias WINBOOL (*PROPENUMPROC)(HWND, LPCTSTR, HANDLE);
+    alias LRESULT (*HOOKPROC)(int, WPARAM, LPARAM);
+    alias void (*ENUMOBJECTSPROC)(LPVOID);
+    alias void (*LINEDDAPROC)(int, int);
+    alias WINBOOL (*TABORTPROC)(HDC, int);
+    alias UINT (*LPPAGEPAINTHOOK)(HWND, UINT, WPARAM, LPARAM);
+    alias UINT (*LPPAGESETUPHOOK)(HWND, UINT, WPARAM, LPARAM);
+    alias int (*ICMENUMPROC)(LPTSTR, LPARAM);
+    alias LONG (*EDITWORDBREAKPROCEX)(PCHAR, LONG, ubyte, INT);
+    alias int (*PFNLVCOMPARE)(LPARAM, LPARAM, LPARAM);
+    alias WINBOOL (*LOCALE_ENUMPROC)(LPTSTR);
+    alias WINBOOL (*CODEPAGE_ENUMPROC)(LPTSTR);
+    alias WINBOOL (*DATEFMT_ENUMPROC)(LPTSTR);
+    alias WINBOOL (*TIMEFMT_ENUMPROC)(LPTSTR);
+    alias WINBOOL (*CALINFO_ENUMPROC)(LPTSTR);
+    alias WINBOOL (*PHANDLER_ROUTINE)(DWORD);
+    alias WINBOOL (*LPHANDLER_FUNCTION)(DWORD);
+    alias void (*PTIMERAPCROUTINE)(LPVOID, DWORD, DWORD);
+    alias UINT (*PFNGETPROFILEPATH)(LPCTSTR, LPSTR, UINT);
+    alias UINT (*PFNRECONCILEPROFILE)(LPCTSTR, LPCTSTR, DWORD);
+    alias WINBOOL (*PFNPROCESSPOLICIES)(HWND, LPCTSTR, LPCTSTR, LPCTSTR, DWORD);
+    }
+
+    const {
+        LPCTSTR SE_CREATE_TOKEN_NAME = ("SeCreateTokenPrivilege");
+        LPCTSTR SE_ASSIGNPRIMARYTOKEN_NAME = ("SeAssignPrimaryTokenPrivilege");
+        LPCTSTR SE_LOCK_MEMORY_NAME = ("SeLockMemoryPrivilege");
+        LPCTSTR SE_INCREASE_QUOTA_NAME = ("SeIncreaseQuotaPrivilege");
+        LPCTSTR SE_UNSOLICITED_INPUT_NAME = ("SeUnsolicitedInputPrivilege");
+        LPCTSTR SE_MACHINE_ACCOUNT_NAME = ("SeMachineAccountPrivilege");
+        LPCTSTR SE_TCB_NAME = ("SeTcbPrivilege");
+        LPCTSTR SE_SECURITY_NAME = ("SeSecurityPrivilege");
+        LPCTSTR SE_TAKE_OWNERSHIP_NAME = ("SeTakeOwnershipPrivilege");
+        LPCTSTR SE_LOAD_DRIVER_NAME = ("SeLoadDriverPrivilege");
+        LPCTSTR SE_SYSTEM_PROFILE_NAME = ("SeSystemProfilePrivilege");
+        LPCTSTR SE_SYSTEMTIME_NAME = ("SeSystemtimePrivilege");
+        LPCTSTR SE_PROF_SINGLE_PROCESS_NAME = ("SeProfileSingleProcessPrivilege");
+        LPCTSTR SE_INC_BASE_PRIORITY_NAME = ("SeIncreaseBasePriorityPrivilege");
+        LPCTSTR SE_CREATE_PAGEFILE_NAME = ("SeCreatePagefilePrivilege");
+        LPCTSTR SE_CREATE_PERMANENT_NAME = ("SeCreatePermanentPrivilege");
+        LPCTSTR SE_BACKUP_NAME = ("SeBackupPrivilege");
+        LPCTSTR SE_RESTORE_NAME = ("SeRestorePrivilege");
+        LPCTSTR SE_SHUTDOWN_NAME = ("SeShutdownPrivilege");
+        LPCTSTR SE_DEBUG_NAME = ("SeDebugPrivilege");
+        LPCTSTR SE_AUDIT_NAME = ("SeAuditPrivilege");
+        LPCTSTR SE_SYSTEM_ENVIRONMENT_NAME = ("SeSystemEnvironmentPrivilege");
+        LPCTSTR SE_CHANGE_NOTIFY_NAME = ("SeChangeNotifyPrivilege");
+        LPCTSTR SE_REMOTE_SHUTDOWN_NAME = ("SeRemoteShutdownPrivilege");
+
+        LPCSTR  SERVICES_ACTIVE_DATABASEA = _PCHAR!("ServicesActive");
+        LPCWSTR SERVICES_ACTIVE_DATABASEW = ("ServicesActive");
+        LPCSTR  SERVICES_FAILED_DATABASEA = _PCHAR!("ServicesFailed");
+        LPCWSTR SERVICES_FAILED_DATABASEW = ("ServicesFailed");
+        LPCSTR  SC_GROUP_IDENTIFIERA = _PCHAR!("+");
+        LPCWSTR SC_GROUP_IDENTIFIERW = ("+");
+        version(Win32SansUnicode){
+            alias SERVICES_ACTIVE_DATABASEA SERVICES_ACTIVE_DATABASE;
+            alias SERVICES_FAILED_DATABASEA SERVICES_FAILED_DATABASE;
+            alias SC_GROUP_IDENTIFIERA SC_GROUP_IDENTIFIER;
+        }
+        else{
+            alias SERVICES_ACTIVE_DATABASEW SERVICES_ACTIVE_DATABASE;
+            alias SERVICES_FAILED_DATABASEW SERVICES_FAILED_DATABASE;
+            alias SC_GROUP_IDENTIFIERW SC_GROUP_IDENTIFIER;
+        }
+    }
+
+    extern(Windows){
+    alias HDDEDATA (*PFNCALLBACK)(UINT, UINT, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD);
+    }
+    alias PFNCALLBACK CALLB;
+    alias WINBOOL SECURITY___FILE___TRACKING_MODE;
+    alias FARPROC WNDENUMPROC;
+    alias FARPROC ENHMFENUMPROC;
+    alias DWORD CCSTYLE;
+    alias CCSTYLE* PCCSTYLE;
+    alias CCSTYLE* LPCCSTYLE;
+    alias DWORD CCSTYLEFLAGA;
+    alias CCSTYLEFLAGA* PCCSTYLEFLAGA;
+    alias CCSTYLEFLAGA* LPCCSTYLEFLAGA;
+
+    const HANDLE INVALID_HANDLE_VALUE = cast(HANDLE) -1;
+
+
+    enum : DWORD {
+        SM_XVIRTUALSCREEN = (76),
+        SM_YVIRTUALSCREEN = (77),
+        SM_CXVIRTUALSCREEN = (78),
+        SM_CYVIRTUALSCREEN = (79),
+        MONITORINFOF_PRIMARY = (1),
+        LZERROR_UNKNOWNALG = -((8)),
+        LZERROR_BADVALUE = -((7)),
+        LZERROR_GLOBLOCK = -((6)),
+        LZERROR_GLOBALLOC = -((5)),
+        LZERROR_WRITE = -((4)),
+        LZERROR_READ = -((3)),
+        LZERROR_BADOUTHANDLE = -((2)),
+        LZERROR_BADINHANDLE = -((1)),
+        NO_ERROR = (0),
+        ERROR_SUCCESS = (0),
+        ERROR_INVALID_FUNCTION = (1),
+        ERROR_FILE_NOT_FOUND = (2),
+        ERROR_PATH_NOT_FOUND = (3),
+        ERROR_TOO_MANY_OPEN_FILES = (4),
+        ERROR_ACCESS_DENIED = (5),
+        ERROR_INVALID_HANDLE = (6),
+        ERROR_ARENA_TRASHED = (7),
+        ERROR_NOT_ENOUGH_MEMORY = (8),
+        ERROR_INVALID_BLOCK = (9),
+        ERROR_BAD_ENVIRONMENT = (10),
+        ERROR_BAD_FORMAT = (11),
+        ERROR_INVALID_ACCESS = (12),
+        ERROR_INVALID_DATA = (13),
+        ERROR_OUTOFMEMORY = (14),
+        ERROR_INVALID_DRIVE = (15),
+        ERROR_CURRENT_DIRECTORY = (16),
+        ERROR_NOT_SAME_DEVICE = (17),
+        ERROR_NO_MORE_FILES = (18),
+        ERROR_WRITE_PROTECT = (19),
+        ERROR_BAD_UNIT = (20),
+        ERROR_NOT_READY = (21),
+        ERROR_BAD_COMMAND = (22),
+        ERROR_CRC = (23),
+        ERROR_BAD_LENGTH = (24),
+        ERROR_SEEK = (25),
+        ERROR_NOT_DOS_DISK = (26),
+        ERROR_SECTOR_NOT_FOUND = (27),
+        ERROR_OUT_OF_PAPER = (28),
+        ERROR_WRITE_FAULT = (29),
+        ERROR_READ_FAULT = (30),
+        ERROR_GEN_FAILURE = (31),
+        ERROR_SHARING_VIOLATION = (32),
+        ERROR_LOCK_VIOLATION = (33),
+        ERROR_WRONG_DISK = (34),
+        ERROR_SHARING_BUFFER_EXCEEDED = (36),
+        ERROR_HANDLE_EOF = (38),
+        ERROR_HANDLE_DISK_FULL = (39),
+        ERROR_NOT_SUPPORTED = (50),
+        ERROR_REM_NOT_LIST = (51),
+        ERROR_DUP_NAME = (52),
+        ERROR_BAD_NETPATH = (53),
+        ERROR_NETWORK_BUSY = (54),
+        ERROR_DEV_NOT_EXIST = (55),
+        ERROR_TOO_MANY_CMDS = (56),
+        ERROR_ADAP_HDW_ERR = (57),
+        ERROR_BAD_NET_RESP = (58),
+        ERROR_UNEXP_NET_ERR = (59),
+        ERROR_BAD_REM_ADAP = (60),
+        ERROR_PRINTQ_FULL = (61),
+        ERROR_NO_SPOOL_SPACE = (62),
+        ERROR_PRINT_CANCELLED = (63),
+        ERROR_NETNAME_DELETED = (64),
+        ERROR_NETWORK_ACCESS_DENIED = (65),
+        ERROR_BAD_DEV_TYPE = (66),
+        ERROR_BAD_NET_NAME = (67),
+        ERROR_TOO_MANY_NAMES = (68),
+        ERROR_TOO_MANY_SESS = (69),
+        ERROR_SHARING_PAUSED = (70),
+        ERROR_REQ_NOT_ACCEP = (71),
+        ERROR_REDIR_PAUSED = (72),
+        ERROR_FILE_EXISTS = (80),
+        ERROR_CANNOT_MAKE = (82),
+        ERROR_FAIL_I24 = (83),
+        ERROR_OUT_OF_STRUCTURES = (84),
+        ERROR_ALREADY_ASSIGNED = (85),
+        ERROR_INVALID_PASSWORD = (86),
+        ERROR_INVALID_PARAMETER = (87),
+        ERROR_NET_WRITE_FAULT = (88),
+        ERROR_NO_PROC_SLOTS = (89),
+        ERROR_TOO_MANY_SEMAPHORES = (100),
+        ERROR_EXCL_SEM_ALREADY_OWNED = (101),
+        ERROR_SEM_IS_SET = (102),
+        ERROR_TOO_MANY_SEM_REQUESTS = (103),
+        ERROR_INVALID_AT_INTERRUPT_TIME = (104),
+        ERROR_SEM_OWNER_DIED = (105),
+        ERROR_SEM_USER_LIMIT = (106),
+        ERROR_DISK_CHANGE = (107),
+        ERROR_DRIVE_LOCKED = (108),
+        ERROR_BROKEN_PIPE = (109),
+        ERROR_OPEN_FAILED = (110),
+        ERROR_BUFFER_OVERFLOW = (111),
+        ERROR_DISK_FULL = (112),
+        ERROR_NO_MORE_SEARCH_HANDLES = (113),
+        ERROR_INVALID_TARGET_HANDLE = (114),
+        ERROR_INVALID_CATEGORY = (117),
+        ERROR_INVALID_VERIFY_SWITCH = (118),
+        ERROR_BAD_DRIVER_LEVEL = (119),
+        ERROR_CALL_NOT_IMPLEMENTED = (120),
+        ERROR_SEM_TIMEOUT = (121),
+        ERROR_INSUFFICIENT_BUFFER = (122),
+        ERROR_INVALID_NAME = (123),
+        ERROR_INVALID_LEVEL = (124),
+        ERROR_NO_VOLUME_LABEL = (125),
+        ERROR_MOD_NOT_FOUND = (126),
+        ERROR_PROC_NOT_FOUND = (127),
+        ERROR_WAIT_NO_CHILDREN = (128),
+        ERROR_CHILD_NOT_COMPLETE = (129),
+        ERROR_DIRECT_ACCESS_HANDLE = (130),
+        ERROR_NEGATIVE_SEEK = (131),
+        ERROR_SEEK_ON_DEVICE = (132),
+        ERROR_IS_JOIN_TARGET = (133),
+        ERROR_IS_JOINED = (134),
+        ERROR_IS_SUBSTED = (135),
+        ERROR_NOT_JOINED = (136),
+        ERROR_NOT_SUBSTED = (137),
+        ERROR_JOIN_TO_JOIN = (138),
+        ERROR_SUBST_TO_SUBST = (139),
+        ERROR_JOIN_TO_SUBST = (140),
+        ERROR_SUBST_TO_JOIN = (141),
+        ERROR_BUSY_DRIVE = (142),
+        ERROR_SAME_DRIVE = (143),
+        ERROR_DIR_NOT_ROOT = (144),
+        ERROR_DIR_NOT_EMPTY = (145),
+        ERROR_IS_SUBST_PATH = (146),
+        ERROR_IS_JOIN_PATH = (147),
+        ERROR_PATH_BUSY = (148),
+        ERROR_IS_SUBST_TARGET = (149),
+        ERROR_SYSTEM_TRACE = (150),
+        ERROR_INVALID_EVENT_COUNT = (151),
+        ERROR_TOO_MANY_MUXWAITERS = (152),
+        ERROR_INVALID_LIST_FORMAT = (153),
+        ERROR_LABEL_TOO_LONG = (154),
+        ERROR_TOO_MANY_TCBS = (155),
+        ERROR_SIGNAL_REFUSED = (156),
+        ERROR_DISCARDED = (157),
+        ERROR_NOT_LOCKED = (158),
+        ERROR_BAD_THREADID_ADDR = (159),
+        ERROR_BAD_ARGUMENTS = (160),
+        ERROR_BAD_PATHNAME = (161),
+        ERROR_SIGNAL_PENDING = (162),
+        ERROR_MAX_THRDS_REACHED = (164),
+        ERROR_LOCK_FAILED = (167),
+        ERROR_BUSY = (170),
+        ERROR_CANCEL_VIOLATION = (173),
+        ERROR_ATOMIC_LOCKS_NOT_SUPPORTED = (174),
+        ERROR_INVALID_SEGMENT_NUMBER = (180),
+        ERROR_INVALID_ORDINAL = (182),
+        ERROR_ALREADY_EXISTS = (183),
+        ERROR_INVALID_FLAG_NUMBER = (186),
+        ERROR_SEM_NOT_FOUND = (187),
+        ERROR_INVALID_STARTING_CODESEG = (188),
+        ERROR_INVALID_STACKSEG = (189),
+        ERROR_INVALID_MODULETYPE = (190),
+        ERROR_INVALID_EXE_SIGNATURE = (191),
+        ERROR_EXE_MARKED_INVALID = (192),
+        ERROR_BAD_EXE_FORMAT = (193),
+        ERROR_ITERATED_DATA_EXCEEDS_64k = (194),
+        ERROR_INVALID_MINALLOCSIZE = (195),
+        ERROR_DYNLINK_FROM_INVALID_RING = (196),
+        ERROR_IOPL_NOT_ENABLED = (197),
+        ERROR_INVALID_SEGDPL = (198),
+        ERROR_AUTODATASEG_EXCEEDS_64k = (199),
+        ERROR_RING2SEG_MUST_BE_MOVABLE = (200),
+        ERROR_RELOC_CHAIN_XEEDS_SEGLIM = (201),
+        ERROR_INFLOOP_IN_RELOC_CHAIN = (202),
+        ERROR_ENVVAR_NOT_FOUND = (203),
+        ERROR_NO_SIGNAL_SENT = (205),
+        ERROR_FILENAME_EXCED_RANGE = (206),
+        ERROR_RING2_STACK_IN_USE = (207),
+        ERROR_META_EXPANSION_TOO_LONG = (208),
+        ERROR_INVALID_SIGNAL_NUMBER = (209),
+        ERROR_THREAD_1_INACTIVE = (210),
+        ERROR_LOCKED = (212),
+        ERROR_TOO_MANY_MODULES = (214),
+        ERROR_NESTING_NOT_ALLOWED = (215),
+        ERROR_BAD_PIPE = (230),
+        ERROR_PIPE_BUSY = (231),
+        ERROR_NO_DATA = (232),
+        ERROR_PIPE_NOT_CONNECTED = (233),
+        ERROR_MORE_DATA = (234),
+        ERROR_VC_DISCONNECTED = (240),
+        ERROR_INVALID_EA_NAME = (254),
+        ERROR_EA_LIST_INCONSISTENT = (255),
+        ERROR_NO_MORE_ITEMS = (259),
+        ERROR_CANNOT_COPY = (266),
+        ERROR_DIRECTORY = (267),
+        ERROR_EAS_DIDNT_FIT = (275),
+        ERROR_EA_FILE_CORRUPT = (276),
+        ERROR_EA_TABLE_FULL = (277),
+        ERROR_INVALID_EA_HANDLE = (278),
+        ERROR_EAS_NOT_SUPPORTED = (282),
+        ERROR_NOT_OWNER = (288),
+        ERROR_TOO_MANY_POSTS = (298),
+        ERROR_PARTIAL_COPY = (299),
+        ERROR_MR_MID_NOT_FOUND = (317),
+        ERROR_INVALID_ADDRESS = (487),
+        ERROR_ARITHMETIC_OVERFLOW = (534),
+        ERROR_PIPE_CONNECTED = (535),
+        ERROR_PIPE_LISTENING = (536),
+        ERROR_EA_ACCESS_DENIED = (994),
+        ERROR_OPERATION_ABORTED = (995),
+        ERROR_IO_INCOMPLETE = (996),
+        ERROR_IO_PENDING = (997),
+        ERROR_NOACCESS = (998),
+        ERROR_SWAPERROR = (999),
+        ERROR_STACK_OVERFLOW = (1001),
+        ERROR_INVALID_MESSAGE = (1002),
+        ERROR_CAN_NOT_COMPLETE = (1003),
+        ERROR_INVALID_FLAGS = (1004),
+        ERROR_UNRECOGNIZED_VOLUME = (1005),
+        ERROR_FILE_INVALID = (1006),
+        ERROR_FULLSCREEN_MODE = (1007),
+        ERROR_NO_TOKEN = (1008),
+        ERROR_BADDB = (1009),
+        ERROR_BADKEY = (1010),
+        ERROR_CANTOPEN = (1011),
+        ERROR_CANTREAD = (1012),
+        ERROR_CANTWRITE = (1013),
+        ERROR_REGISTRY_RECOVERED = (1014),
+        ERROR_REGISTRY_CORRUPT = (1015),
+        ERROR_REGISTRY_IO_FAILED = (1016),
+        ERROR_NOT_REGISTRY_FILE = (1017),
+        ERROR_KEY_DELETED = (1018),
+        ERROR_NO_LOG_SPACE = (1019),
+        ERROR_KEY_HAS_CHILDREN = (1020),
+        ERROR_CHILD_MUST_BE_VOLATILE = (1021),
+        ERROR_NOTIFY_ENUM_DIR = (1022),
+        ERROR_DEPENDENT_SERVICES_RUNNING = (1051),
+        ERROR_INVALID_SERVICE_CONTROL = (1052),
+        ERROR_SERVICE_REQUEST_TIMEOUT = (1053),
+        ERROR_SERVICE_NO_THREAD = (1054),
+        ERROR_SERVICE_DATABASE_LOCKED = (1055),
+        ERROR_SERVICE_ALREADY_RUNNING = (1056),
+        ERROR_INVALID_SERVICE_ACCOUNT = (1057),
+        ERROR_SERVICE_DISABLED = (1058),
+        ERROR_CIRCULAR_DEPENDENCY = (1059),
+        ERROR_SERVICE_DOES_NOT_EXIST = (1060),
+        ERROR_SERVICE_CANNOT_ACCEPT_CTRL = (1061),
+        ERROR_SERVICE_NOT_ACTIVE = (1062),
+        ERROR_FAILED_SERVICE_CONTROLLER_CONNECT = (1063),
+        ERROR_EXCEPTION_IN_SERVICE = (1064),
+        ERROR_DATABASE_DOES_NOT_EXIST = (1065),
+        ERROR_SERVICE_SPECIFIC_ERROR = (1066),
+        ERROR_PROCESS_ABORTED = (1067),
+        ERROR_SERVICE_DEPENDENCY_FAIL = (1068),
+        ERROR_SERVICE_LOGON_FAILED = (1069),
+        ERROR_SERVICE_START_HANG = (1070),
+        ERROR_INVALID_SERVICE_LOCK = (1071),
+        ERROR_SERVICE_MARKED_FOR_DELETE = (1072),
+        ERROR_SERVICE_EXISTS = (1073),
+        ERROR_ALREADY_RUNNING_LKG = (1074),
+        ERROR_SERVICE_DEPENDENCY_DELETED = (1075),
+        ERROR_BOOT_ALREADY_ACCEPTED = (1076),
+        ERROR_SERVICE_NEVER_STARTED = (1077),
+        ERROR_DUPLICATE_SERVICE_NAME = (1078),
+        ERROR_END_OF_MEDIA = (1100),
+        ERROR_FILEMARK_DETECTED = (1101),
+        ERROR_BEGINNING_OF_MEDIA = (1102),
+        ERROR_SETMARK_DETECTED = (1103),
+        ERROR_NO_DATA_DETECTED = (1104),
+        ERROR_PARTITION_FAILURE = (1105),
+        ERROR_INVALID_BLOCK_LENGTH = (1106),
+        ERROR_DEVICE_NOT_PARTITIONED = (1107),
+        ERROR_UNABLE_TO_LOCK_MEDIA = (1108),
+        ERROR_UNABLE_TO_UNLOAD_MEDIA = (1109),
+        ERROR_MEDIA_CHANGED = (1110),
+        ERROR_BUS_RESET = (1111),
+        ERROR_NO_MEDIA_IN_DRIVE = (1112),
+        ERROR_NO_UNICODE_TRANSLATION = (1113),
+        ERROR_DLL_INIT_FAILED = (1114),
+        ERROR_SHUTDOWN_IN_PROGRESS = (1115),
+        ERROR_NO_SHUTDOWN_IN_PROGRESS = (1116),
+        ERROR_IO_DEVICE = (1117),
+        ERROR_SERIAL_NO_DEVICE = (1118),
+        ERROR_IRQ_BUSY = (1119),
+        ERROR_MORE_WRITES = (1120),
+        ERROR_COUNTER_TIMEOUT = (1121),
+        ERROR_FLOPPY_ID_MARK_NOT_FOUND = (1122),
+        ERROR_FLOPPY_WRONG_CYLINDER = (1123),
+        ERROR_FLOPPY_UNKNOWN_ERROR = (1124),
+        ERROR_FLOPPY_BAD_REGISTERS = (1125),
+        ERROR_DISK_RECALIBRATE_FAILED = (1126),
+        ERROR_DISK_OPERATION_FAILED = (1127),
+        ERROR_DISK_RESET_FAILED = (1128),
+        ERROR_EOM_OVERFLOW = (1129),
+        ERROR_NOT_ENOUGH_SERVER_MEMORY = (1130),
+        ERROR_POSSIBLE_DEADLOCK = (1131),
+        ERROR_MAPPED_ALIGNMENT = (1132),
+        ERROR_SET_POWER_STATE_VETOED = (1140),
+        ERROR_SET_POWER_STATE_FAILED = (1141),
+        ERROR_OLD_WIN_VERSION = (1150),
+        ERROR_APP_WRONG_OS = (1151),
+        ERROR_SINGLE_INSTANCE_APP = (1152),
+        ERROR_RMODE_APP = (1153),
+        ERROR_INVALID_DLL = (1154),
+        ERROR_NO_ASSOCIATION = (1155),
+        ERROR_DDE_FAIL = (1156),
+        ERROR_DLL_NOT_FOUND = (1157),
+        ERROR_BAD_USERNAME = (2202),
+        ERROR_NOT_CONNECTED = (2250),
+        ERROR_OPEN_FILES = (2401),
+        ERROR_ACTIVE_CONNECTIONS = (2402),
+        ERROR_DEVICE_IN_USE = (2404),
+        ERROR_BAD_DEVICE = (1200),
+        ERROR_CONNECTION_UNAVAIL = (1201),
+        ERROR_DEVICE_ALREADY_REMEMBERED = (1202),
+        ERROR_NO_NET_OR_BAD_PATH = (1203),
+        ERROR_BAD_PROVIDER = (1204),
+        ERROR_CANNOT_OPEN_PROFILE = (1205),
+        ERROR_BAD_PROFILE = (1206),
+        ERROR_NOT_CONTAINER = (1207),
+        ERROR_EXTENDED_ERROR = (1208),
+        ERROR_INVALID_GROUPNAME = (1209),
+        ERROR_INVALID_COMPUTERNAME = (1210),
+        ERROR_INVALID_EVENTNAME = (1211),
+        ERROR_INVALID_DOMAINNAME = (1212),
+        ERROR_INVALID_SERVICENAME = (1213),
+        ERROR_INVALID_NETNAME = (1214),
+        ERROR_INVALID_SHARENAME = (1215),
+        ERROR_INVALID_PASSWORDNAME = (1216),
+        ERROR_INVALID_MESSAGENAME = (1217),
+        ERROR_INVALID_MESSAGEDEST = (1218),
+        ERROR_SESSION_CREDENTIAL_CONFLICT = (1219),
+        ERROR_REMOTE_SESSION_LIMIT_EXCEEDED = (1220),
+        ERROR_DUP_DOMAINNAME = (1221),
+        ERROR_NO_NETWORK = (1222),
+        ERROR_CANCELLED = (1223),
+        ERROR_USER_MAPPED_FILE = (1224),
+        ERROR_CONNECTION_REFUSED = (1225),
+        ERROR_GRACEFUL_DISCONNECT = (1226),
+        ERROR_ADDRESS_ALREADY_ASSOCIATED = (1227),
+        ERROR_ADDRESS_NOT_ASSOCIATED = (1228),
+        ERROR_CONNECTION_INVALID = (1229),
+        ERROR_CONNECTION_ACTIVE = (1230),
+        ERROR_NETWORK_UNREACHABLE = (1231),
+        ERROR_HOST_UNREACHABLE = (1232),
+        ERROR_PROTOCOL_UNREACHABLE = (1233),
+        ERROR_PORT_UNREACHABLE = (1234),
+        ERROR_REQUEST_ABORTED = (1235),
+        ERROR_CONNECTION_ABORTED = (1236),
+        ERROR_RETRY = (1237),
+        ERROR_CONNECTION_COUNT_LIMIT = (1238),
+        ERROR_LOGIN_TIME_RESTRICTION = (1239),
+        ERROR_LOGIN_WKSTA_RESTRICTION = (1240),
+        ERROR_INCORRECT_ADDRESS = (1241),
+        ERROR_ALREADY_REGISTERED = (1242),
+        ERROR_SERVICE_NOT_FOUND = (1243),
+        ERROR_NOT_AUTHENTICATED = (1244),
+        ERROR_NOT_LOGGED_ON = (1245),
+        ERROR_CONTINUE = (1246),
+        ERROR_ALREADY_INITIALIZED = (1247),
+        ERROR_NO_MORE_DEVICES = (1248),
+        ERROR_NOT_ALL_ASSIGNED = (1300),
+        ERROR_SOME_NOT_MAPPED = (1301),
+        ERROR_NO_QUOTAS_FOR_ACCOUNT = (1302),
+        ERROR_LOCAL_USER_SESSION_KEY = (1303),
+        ERROR_NULL_LM_PASSWORD = (1304),
+        ERROR_UNKNOWN_REVISION = (1305),
+        ERROR_REVISION_MISMATCH = (1306),
+        ERROR_INVALID_OWNER = (1307),
+        ERROR_INVALID_PRIMARY_GROUP = (1308),
+        ERROR_NO_IMPERSONATION_TOKEN = (1309),
+        ERROR_CANT_DISABLE_MANDATORY = (1310),
+        ERROR_NO_LOGON_SERVERS = (1311),
+        ERROR_NO_SUCH_LOGON_SESSION = (1312),
+        ERROR_NO_SUCH_PRIVILEGE = (1313),
+        ERROR_PRIVILEGE_NOT_HELD = (1314),
+        ERROR_INVALID_ACCOUNT_NAME = (1315),
+        ERROR_USER_EXISTS = (1316),
+        ERROR_NO_SUCH_USER = (1317),
+        ERROR_GROUP_EXISTS = (1318),
+        ERROR_NO_SUCH_GROUP = (1319),
+        ERROR_MEMBER_IN_GROUP = (1320),
+        ERROR_MEMBER_NOT_IN_GROUP = (1321),
+        ERROR_LAST_ADMIN = (1322),
+        ERROR_WRONG_PASSWORD = (1323),
+        ERROR_ILL_FORMED_PASSWORD = (1324),
+        ERROR_PASSWORD_RESTRICTION = (1325),
+        ERROR_LOGON_FAILURE = (1326),
+        ERROR_ACCOUNT_RESTRICTION = (1327),
+        ERROR_INVALID_LOGON_HOURS = (1328),
+        ERROR_INVALID_WORKSTATION = (1329),
+        ERROR_PASSWORD_EXPIRED = (1330),
+        ERROR_ACCOUNT_DISABLED = (1331),
+        ERROR_NONE_MAPPED = (1332),
+        ERROR_TOO_MANY_LUIDS_REQUESTED = (1333),
+        ERROR_LUIDS_EXHAUSTED = (1334),
+        ERROR_INVALID_SUB_AUTHORITY = (1335),
+        ERROR_INVALID_ACL = (1336),
+        ERROR_INVALID_SID = (1337),
+        ERROR_INVALID_SECURITY_DESCR = (1338),
+        ERROR_BAD_INHERITANCE_ACL = (1340),
+        ERROR_SERVER_DISABLED = (1341),
+        ERROR_SERVER_NOT_DISABLED = (1342),
+        ERROR_INVALID_ID_AUTHORITY = (1343),
+        ERROR_ALLOTTED_SPACE_EXCEEDED = (1344),
+        ERROR_INVALID_GROUP_ATTRIBUTES = (1345),
+        ERROR_BAD_IMPERSONATION_LEVEL = (1346),
+        ERROR_CANT_OPEN_ANONYMOUS = (1347),
+        ERROR_BAD_VALIDATION_CLASS = (1348),
+        ERROR_BAD_TOKEN_TYPE = (1349),
+        ERROR_NO_SECURITY_ON_OBJECT = (1350),
+        ERROR_CANT_ACCESS_DOMAIN_INFO = (1351),
+        ERROR_INVALID_SERVER_STATE = (1352),
+        ERROR_INVALID_DOMAIN_STATE = (1353),
+        ERROR_INVALID_DOMAIN_ROLE = (1354),
+        ERROR_NO_SUCH_DOMAIN = (1355),
+        ERROR_DOMAIN_EXISTS = (1356),
+        ERROR_DOMAIN_LIMIT_EXCEEDED = (1357),
+        ERROR_INTERNAL_DB_CORRUPTION = (1358),
+        ERROR_INTERNAL_ERROR = (1359),
+        ERROR_GENERIC_NOT_MAPPED = (1360),
+        ERROR_BAD_DESCRIPTOR_FORMAT = (1361),
+        ERROR_NOT_LOGON_PROCESS = (1362),
+        ERROR_LOGON_SESSION_EXISTS = (1363),
+        ERROR_NO_SUCH_PACKAGE = (1364),
+        ERROR_BAD_LOGON_SESSION_STATE = (1365),
+        ERROR_LOGON_SESSION_COLLISION = (1366),
+        ERROR_INVALID_LOGON_TYPE = (1367),
+        ERROR_CANNOT_IMPERSONATE = (1368),
+        ERROR_RXACT_INVALID_STATE = (1369),
+        ERROR_RXACT_COMMIT_FAILURE = (1370),
+        ERROR_SPECIAL_ACCOUNT = (1371),
+        ERROR_SPECIAL_GROUP = (1372),
+        ERROR_SPECIAL_USER = (1373),
+        ERROR_MEMBERS_PRIMARY_GROUP = (1374),
+        ERROR_TOKEN_ALREADY_IN_USE = (1375),
+        ERROR_NO_SUCH_ALIAS = (1376),
+        ERROR_MEMBER_NOT_IN_ALIAS = (1377),
+        ERROR_MEMBER_IN_ALIAS = (1378),
+        ERROR_ALIAS_EXISTS = (1379),
+        ERROR_LOGON_NOT_GRANTED = (1380),
+        ERROR_TOO_MANY_SECRETS = (1381),
+        ERROR_SECRET_TOO_LONG = (1382),
+        ERROR_INTERNAL_DB_ERROR = (1383),
+        ERROR_TOO_MANY___FILE___IDS = (1384),
+        ERROR_LOGON_TYPE_NOT_GRANTED = (1385),
+        ERROR_NT_CROSS_ENCRYPTION_REQUIRED = (1386),
+        ERROR_NO_SUCH_MEMBER = (1387),
+        ERROR_INVALID_MEMBER = (1388),
+        ERROR_TOO_MANY_SIDS = (1389),
+        ERROR_LM_CROSS_ENCRYPTION_REQUIRED = (1390),
+        ERROR_NO_INHERITANCE = (1391),
+        ERROR_FILE_CORRUPT = (1392),
+        ERROR_DISK_CORRUPT = (1393),
+        ERROR_NO_USER_SESSION_KEY = (1394),
+        ERROR_LICENSE_QUOTA_EXCEEDED = (1395),
+        ERROR_INVALID_WINDOW_HANDLE = (1400),
+        ERROR_INVALID_MENU_HANDLE = (1401),
+        ERROR_INVALID_CURSOR_HANDLE = (1402),
+        ERROR_INVALID_ACCEL_HANDLE = (1403),
+        ERROR_INVALID_HOOK_HANDLE = (1404),
+        ERROR_INVALID_DWP_HANDLE = (1405),
+        ERROR_TLW_WITH_WSCHILD = (1406),
+        ERROR_CANNOT_FIND_WND_CLASS = (1407),
+        ERROR_WINDOW_OF_OTHER_THREAD = (1408),
+        ERROR_HOTKEY_ALREADY_REGISTERED = (1409),
+        ERROR_CLASS_ALREADY_EXISTS = (1410),
+        ERROR_CLASS_DOES_NOT_EXIST = (1411),
+        ERROR_CLASS_HAS_WINDOWS = (1412),
+        ERROR_INVALID_INDEX = (1413),
+        ERROR_INVALID_ICON_HANDLE = (1414),
+        ERROR_PRIVATE_DIALOG_INDEX = (1415),
+        ERROR_LISTBOX_ID_NOT_FOUND = (1416),
+        ERROR_NO_WILDCARD_CHARACTERS = (1417),
+        ERROR_CLIPBOARD_NOT_OPEN = (1418),
+        ERROR_HOTKEY_NOT_REGISTERED = (1419),
+        ERROR_WINDOW_NOT_DIALOG = (1420),
+        ERROR_CONTROL_ID_NOT_FOUND = (1421),
+        ERROR_INVALID_COMBOBOX_MESSAGE = (1422),
+        ERROR_WINDOW_NOT_COMBOBOX = (1423),
+        ERROR_INVALID_EDIT_HEIGHT = (1424),
+        ERROR_DC_NOT_FOUND = (1425),
+        ERROR_INVALID_HOOK_FILTER = (1426),
+        ERROR_INVALID_FILTER_PROC = (1427),
+        ERROR_HOOK_NEEDS_HMOD = (1428),
+        ERROR_GLOBAL_ONLY_HOOK = (1429),
+        ERROR_JOURNAL_HOOK_SET = (1430),
+        ERROR_HOOK_NOT_INSTALLED = (1431),
+        ERROR_INVALID_LB_MESSAGE = (1432),
+        ERROR_SETCOUNT_ON_BAD_LB = (1433),
+        ERROR_LB_WITHOUT_TABSTOPS = (1434),
+        ERROR_DESTROY_OBJECT_OF_OTHER_THREAD = (1435),
+        ERROR_CHILD_WINDOW_MENU = (1436),
+        ERROR_NO_SYSTEM_MENU = (1437),
+        ERROR_INVALID_MSGBOX_STYLE = (1438),
+        ERROR_INVALID_SPI_VALUE = (1439),
+        ERROR_SCREEN_ALREADY_LOCKED = (1440),
+        ERROR_HWNDS_HAVE_DIFF_PARENT = (1441),
+        ERROR_NOT_CHILD_WINDOW = (1442),
+        ERROR_INVALID_GW_COMMAND = (1443),
+        ERROR_INVALID_THREAD_ID = (1444),
+        ERROR_NON_MDICHILD_WINDOW = (1445),
+        ERROR_POPUP_ALREADY_ACTIVE = (1446),
+        ERROR_NO_SCROLLBARS = (1447),
+        ERROR_INVALID_SCROLLBAR_RANGE = (1448),
+        ERROR_INVALID_SHOWWIN_COMMAND = (1449),
+        ERROR_NO_SYSTEM_RESOURCES = (1450),
+        ERROR_NONPAGED_SYSTEM_RESOURCES = (1451),
+        ERROR_PAGED_SYSTEM_RESOURCES = (1452),
+        ERROR_WORKING_SET_QUOTA = (1453),
+        ERROR_PAGEFILE_QUOTA = (1454),
+        ERROR_COMMITMENT_LIMIT = (1455),
+        ERROR_MENU_ITEM_NOT_FOUND = (1456),
+        ERROR_EVENTLOG_FILE_CORRUPT = (1500),
+        ERROR_EVENTLOG_CANT_START = (1501),
+        ERROR_LOG_FILE_FULL = (1502),
+        ERROR_EVENTLOG_FILE_CHANGED = (1503),
+        RPC_S_INVALID_STRING_BINDING = (1700),
+        RPC_S_WRONG_KIND_OF_BINDING = (1701),
+        RPC_S_INVALID_BINDING = (1702),
+        RPC_S_PROTSEQ_NOT_SUPPORTED = (1703),
+        RPC_S_INVALID_RPC_PROTSEQ = (1704),
+        RPC_S_INVALID_STRING_UUID = (1705),
+        RPC_S_INVALID_ENDPOINT_FORMAT = (1706),
+        RPC_S_INVALID_NET_ADDR = (1707),
+        RPC_S_NO_ENDPOINT_FOUND = (1708),
+        RPC_S_INVALID_TIMEOUT = (1709),
+        RPC_S_OBJECT_NOT_FOUND = (1710),
+        RPC_S_ALREADY_REGISTERED = (1711),
+        RPC_S_TYPE_ALREADY_REGISTERED = (1712),
+        RPC_S_ALREADY_LISTENING = (1713),
+        RPC_S_NO_PROTSEQS_REGISTERED = (1714),
+        RPC_S_NOT_LISTENING = (1715),
+        RPC_S_UNKNOWN_MGR_TYPE = (1716),
+        RPC_S_UNKNOWN_IF = (1717),
+        RPC_S_NO_BINDINGS = (1718),
+        RPC_S_NO_PROTSEQS = (1719),
+        RPC_S_CANT_CREATE_ENDPOINT = (1720),
+        RPC_S_OUT_OF_RESOURCES = (1721),
+        RPC_S_SERVER_UNAVAILABLE = (1722),
+        RPC_S_SERVER_TOO_BUSY = (1723),
+        RPC_S_INVALID_NETWORK_OPTIONS = (1724),
+        RPC_S_NO_CALL_ACTIVE = (1725),
+        RPC_S_CALL_FAILED = (1726),
+        RPC_S_CALL_FAILED_DNE = (1727),
+        RPC_S_PROTOCOL_ERROR = (1728),
+        RPC_S_UNSUPPORTED_TRANS_SYN = (1730),
+        RPC_S_UNSUPPORTED_TYPE = (1732),
+        RPC_S_INVALID_TAG = (1733),
+        RPC_S_INVALID_BOUND = (1734),
+        RPC_S_NO_ENTRY_NAME = (1735),
+        RPC_S_INVALID_NAME_SYNTAX = (1736),
+        RPC_S_UNSUPPORTED_NAME_SYNTAX = (1737),
+        RPC_S_UUID_NO_ADDRESS = (1739),
+        RPC_S_DUPLICATE_ENDPOINT = (1740),
+        RPC_S_UNKNOWN_AUTHN_TYPE = (1741),
+        RPC_S_MAX_CALLS_TOO_SMALL = (1742),
+        RPC_S_STRING_TOO_LONG = (1743),
+        RPC_S_PROTSEQ_NOT_FOUND = (1744),
+        RPC_S_PROCNUM_OUT_OF_RANGE = (1745),
+        RPC_S_BINDING_HAS_NO_AUTH = (1746),
+        RPC_S_UNKNOWN_AUTHN_SERVICE = (1747),
+        RPC_S_UNKNOWN_AUTHN_LEVEL = (1748),
+        RPC_S_INVALID_AUTH_IDENTITY = (1749),
+        RPC_S_UNKNOWN_AUTHZ_SERVICE = (1750),
+        EPT_S_INVALID_ENTRY = (1751),
+        EPT_S_CANT_PERFORM_OP = (1752),
+        EPT_S_NOT_REGISTERED = (1753),
+        RPC_S_NOTHING_TO_EXPORT = (1754),
+        RPC_S_INCOMPLETE_NAME = (1755),
+        RPC_S_INVALID_VERS_OPTION = (1756),
+        RPC_S_NO_MORE_MEMBERS = (1757),
+        RPC_S_NOT_ALL_OBJS_UNEXPORTED = (1758),
+        RPC_S_INTERFACE_NOT_FOUND = (1759),
+        RPC_S_ENTRY_ALREADY_EXISTS = (1760),
+        RPC_S_ENTRY_NOT_FOUND = (1761),
+        RPC_S_NAME_SERVICE_UNAVAILABLE = (1762),
+        RPC_S_INVALID_NAF_ID = (1763),
+        RPC_S_CANNOT_SUPPORT = (1764),
+        RPC_S_NO___FILE___AVAILABLE = (1765),
+        RPC_S_INTERNAL_ERROR = (1766),
+        RPC_S_ZERO_DIVIDE = (1767),
+        RPC_S_ADDRESS_ERROR = (1768),
+        RPC_S_FP_DIV_ZERO = (1769),
+        RPC_S_FP_UNDERFLOW = (1770),
+        RPC_S_FP_OVERFLOW = (1771),
+        RPC_X_NO_MORE_ENTRIES = (1772),
+        RPC_X_SS_CHAR_TRANS_OPEN_FAIL = (1773),
+        RPC_X_SS_CHAR_TRANS_SHORT_FILE = (1774),
+        RPC_X_SS_IN_NULL___FILE__ = (1775),
+        RPC_X_SS___FILE___DAMAGED = (1777),
+        RPC_X_SS_HANDLES_MISMATCH = (1778),
+        RPC_X_SS_CANNOT_GET_CALL_HANDLE = (1779),
+        RPC_X_NULL_REF_POINTER = (1780),
+        RPC_X_ENUM_VALUE_OUT_OF_RANGE = (1781),
+        RPC_X_BYTE_COUNT_TOO_SMALL = (1782),
+        RPC_X_BAD_STUB_DATA = (1783),
+        ERROR_INVALID_USER_BUFFER = (1784),
+        ERROR_UNRECOGNIZED_MEDIA = (1785),
+        ERROR_NO_TRUST_LSA_SECRET = (1786),
+        ERROR_NO_TRUST_SAM_ACCOUNT = (1787),
+        ERROR_TRUSTED_DOMAIN_FAILURE = (1788),
+        ERROR_TRUSTED_RELATIONSHIP_FAILURE = (1789),
+        ERROR_TRUST_FAILURE = (1790),
+        RPC_S_CALL_IN_PROGRESS = (1791),
+        ERROR_NETLOGON_NOT_STARTED = (1792),
+        ERROR_ACCOUNT_EXPIRED = (1793),
+        ERROR_REDIRECTOR_HAS_OPEN_HANDLES = (1794),
+        ERROR_PRINTER_DRIVER_ALREADY_INSTALLED = (1795),
+        ERROR_UNKNOWN_PORT = (1796),
+        ERROR_UNKNOWN_PRINTER_DRIVER = (1797),
+        ERROR_UNKNOWN_PRINTPROCESSOR = (1798),
+        ERROR_INVALID_SEPARATOR_FILE = (1799),
+        ERROR_INVALID_PRIORITY = (1800),
+        ERROR_INVALID_PRINTER_NAME = (1801),
+        ERROR_PRINTER_ALREADY_EXISTS = (1802),
+        ERROR_INVALID_PRINTER_COMMAND = (1803),
+        ERROR_INVALID_DATATYPE = (1804),
+        ERROR_INVALID_ENVIRONMENT = (1805),
+        RPC_S_NO_MORE_BINDINGS = (1806),
+        ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = (1807),
+        ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT = (1808),
+        ERROR_NOLOGON_SERVER_TRUST_ACCOUNT = (1809),
+        ERROR_DOMAIN_TRUST_INCONSISTENT = (1810),
+        ERROR_SERVER_HAS_OPEN_HANDLES = (1811),
+        ERROR_RESOURCE_DATA_NOT_FOUND = (1812),
+        ERROR_RESOURCE_TYPE_NOT_FOUND = (1813),
+        ERROR_RESOURCE_NAME_NOT_FOUND = (1814),
+        ERROR_RESOURCE_LANG_NOT_FOUND = (1815),
+        ERROR_NOT_ENOUGH_QUOTA = (1816),
+        RPC_S_NO_INTERFACES = (1817),
+        RPC_S_CALL_CANCELLED = (1818),
+        RPC_S_BINDING_INCOMPLETE = (1819),
+        RPC_S_COMM_FAILURE = (1820),
+        RPC_S_UNSUPPORTED_AUTHN_LEVEL = (1821),
+        RPC_S_NO_PRINC_NAME = (1822),
+        RPC_S_NOT_RPC_ERROR = (1823),
+        RPC_S_UUID_LOCAL_ONLY = (1824),
+        RPC_S_SEC_PKG_ERROR = (1825),
+        RPC_S_NOT_CANCELLED = (1826),
+        RPC_X_INVALID_ES_ACTION = (1827),
+        RPC_X_WRONG_ES_VERSION = (1828),
+        RPC_X_WRONG_STUB_VERSION = (1829),
+        RPC_S_GROUP_MEMBER_NOT_FOUND = (1898),
+        EPT_S_CANT_CREATE = (1899),
+        RPC_S_INVALID_OBJECT = (1900),
+        ERROR_INVALID_TIME = (1901),
+        ERROR_INVALID_FORM_NAME = (1902),
+        ERROR_INVALID_FORM_SIZE = (1903),
+        ERROR_ALREADY_WAITING = (1904),
+        ERROR_PRINTER_DELETED = (1905),
+        ERROR_INVALID_PRINTER_STATE = (1906),
+        ERROR_PASSWORD_MUST_CHANGE = (1907),
+        ERROR_DOMAIN_CONTROLLER_NOT_FOUND = (1908),
+        ERROR_ACCOUNT_LOCKED_OUT = (1909),
+        ERROR_NO_BROWSER_SERVERS_FOUND = (6118),
+        ERROR_INVALID_PIXEL_FORMAT = (2000),
+        ERROR_BAD_DRIVER = (2001),
+        ERROR_INVALID_WINDOW_STYLE = (2002),
+        ERROR_METAFILE_NOT_SUPPORTED = (2003),
+        ERROR_TRANSFORM_NOT_SUPPORTED = (2004),
+        ERROR_CLIPPING_NOT_SUPPORTED = (2005),
+        ERROR_UNKNOWN_PRINT_MONITOR = (3000),
+        ERROR_PRINTER_DRIVER_IN_USE = (3001),
+        ERROR_SPOOL_FILE_NOT_FOUND = (3002),
+        ERROR_SPL_NO_STARTDOC = (3003),
+        ERROR_SPL_NO_ADDJOB = (3004),
+        ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED = (3005),
+        ERROR_PRINT_MONITOR_ALREADY_INSTALLED = (3006),
+        ERROR_WINS_INTERNAL = (4000),
+        ERROR_CAN_NOT_DEL_LOCAL_WINS = (4001),
+        ERROR_STATIC_INIT = (4002),
+        ERROR_INC_BACKUP = (4003),
+        ERROR_FULL_BACKUP = (4004),
+        ERROR_REC_NON_EXISTENT = (4005),
+        ERROR_RPL_NOT_ALLOWED = (4006),
+        MAX_PATH = (260),
+        LF_FACESIZE = (32),
+        LF_FULLFACESIZE = (64),
+        ELF_VENDOR_SIZE = (4),
+        SECURITY_STATIC_TRACKING = (0),
+        SECURITY_DYNAMIC_TRACKING = (1),
+        MAX_DEFAULTCHAR = (2),
+        MAX_LEADBYTES = (12),
+        EXCEPTION_MAXIMUM_PARAMETERS = (15),
+        CCHDEVICENAME = (32),
+        CCHFORMNAME = (32),
+        MENU_TEXT_LEN = (40),
+        MAX_LANA = (254),
+        NCBNAMSZ = (16),
+        NETBIOS_NAME_LEN = (16),
+        OFS_MAXPATHNAME = (128),
+        MAX_TAB_STOPS = (32),
+        ANYSIZE_ARRAY = (1),
+        RAS_MaxCallbackNumber = (128),
+        RAS_MaxDeviceName = (128),
+        RAS_MaxDeviceType = (16),
+        RAS_MaxEntryName = (256),
+        RAS_MaxIpAddress = (15),
+        RAS_MaxIpxAddress = (21),
+        RAS_MaxPhoneNumber = (128),
+        UNLEN = (256),
+        PWLEN = (256),
+        CNLEN = (15),
+        DNLEN = (15),
+        MAXDWORD = (0xFFFFFFFF),
+        MAXWORD = (0xFFFF),
+        MAXBYTE = (0xFF),
+        MINCHAR = (0x80),
+        MAXCHAR = (0x7F),
+        MINSHORT = (0x8000),
+        MAXSHORT = (0x7FFF),
+        MINLONG = (0x80000000),
+        MAXLONG = (0x7FFFFFFF),
+        FILE_BEGIN = (0),
+        FILE_CURRENT = (1),
+        FILE_END = (2),
+        OF_READ = (0),
+        OF_READWRITE = (2),
+        OF_WRITE = (1),
+        OF_SHARE_COMPAT = (0),
+        OF_SHARE_DENY_NONE = (64),
+        OF_SHARE_DENY_READ = (48),
+        OF_SHARE_DENY_WRITE = (32),
+        OF_SHARE_EXCLUSIVE = (16),
+        OF_CANCEL = (2048),
+        OF_CREATE = (4096),
+        OF_DELETE = (512),
+        OF_EXIST = (16384),
+        OF_PARSE = (256),
+        OF_PROMPT = (8192),
+        OF_REOPEN = (32768),
+        OF_VERIFY = (1024),
+        HKL_NEXT = (1),
+        HKL_PREV = (0),
+        KLF_REORDER = (8),
+        KLF_UNLOADPREVIOUS = (4),
+        KLF_ACTIVATE = (1),
+        KLF_NOTELLSHELL = (128),
+        KLF_REPLACELANG = (16),
+        KLF_SUBSTITUTE_OK = (2),
+        MF_BITMAP = (0x4),
+        MF_DISABLED = (0x2),
+        MF_ENABLED = (0),
+        MF_GRAYED = (0x1),
+        MF_HELP = (0x4000),
+        MF_MENUBARBREAK = (0x20),
+        MF_MENUBREAK = (0x40),
+        MF_MOUSESELECT = (0x8000),
+        MF_OWNERDRAW = (0x100),
+        MF_POPUP = (0x10),
+        MF_SEPARATOR = (0x800),
+        MF_STRING = (0),
+        MF_SYSMENU = (0x2000),
+        MF_USECHECKBITMAPS = (0x200),
+        BLACKNESS = (0x00000042),
+        NOTSRCERASE = (0x001100A6),
+        NOTSRCCOPY = (0x00330008),
+        SRCERASE = (0x00440328),
+        DSTINVERT = (0x00550009),
+        PATINVERT = (0x005A0049),
+        SRCINVERT = (0x00660046),
+        SRCAND = (0x008800C6),
+        MERGEPAINT = (0x00BB0226),
+        MERGECOPY = (0x00C000CA),
+        SRCCOPY = (0x00CC0020),
+        SRCPAINT = (0x00EE0086),
+        PATCOPY = (0x00F00021),
+        PATPAINT = (0x00FB0A09),
+        WHITENESS = (0x00FF0062),
+        R2_BLACK = (1),
+        R2_COPYPEN = (13),
+        R2_MASKNOTPEN = (3),
+        R2_MASKPEN = (9),
+        R2_MASKPENNOT = (5),
+        R2_MERGENOTPEN = (12),
+        R2_MERGEPEN = (15),
+        R2_MERGEPENNOT = (14),
+        R2_NOP = (11),
+        R2_NOT = (6),
+        R2_NOTCOPYPEN = (4),
+        R2_NOTMASKPEN = (8),
+        R2_NOTMERGEPEN = (2),
+        R2_NOTXORPEN = (10),
+        R2_WHITE = (16),
+        R2_XORPEN = (7),
+        BSF_FLUSHDISK = (4),
+        BSF_FORCEIFHUNG = (32),
+        BSF_IGNORECURRENTTASK = (2),
+        BSF_NOHANG = (8),
+        BSF_POSTMESSAGE = (16),
+        BSF_QUERY = (1),
+        BSM_ALLCOMPONENTS = (0),
+        BSM_APPLICATIONS = (8),
+        BSM_INSTALLABLEDRIVERS = (4),
+        BSM_NETDRIVER = (2),
+        BSM_VXDS = (1),
+        BROADCAST_QUERY_DENY = (1112363332),
+        NMPWAIT_NOWAIT = (1),
+        NMPWAIT_WAIT_FOREVER = -((1)),
+        NMPWAIT_USE_DEFAULT_WAIT = (0),
+        MDITILE_SKIPDISABLED = (2),
+        MDITILE_HORIZONTAL = (1),
+        MDITILE_VERTICAL = (0),
+        HCBT_ACTIVATE = (5),
+        HCBT_CLICKSKIPPED = (6),
+        HCBT_CREATEWND = (3),
+        HCBT_DESTROYWND = (4),
+        HCBT_KEYSKIPPED = (7),
+        HCBT_MINMAX = (1),
+        HCBT_MOVESIZE = (0),
+        HCBT_QS = (2),
+        HCBT_SETFOCUS = (9),
+        HCBT_SYSCOMMAND = (8),
+        DM_BITSPERPEL = (0x40000),
+        DM_PELSWIDTH = (0x80000),
+        DM_PELSHEIGHT = (0x100000),
+        DM_DISPLAYFLAGS = (0x200000),
+        DM_DISPLAYFREQUENCY = (0x400000),
+        CDS_UPDATEREGISTRY = (1),
+        CDS_TEST = (2),
+        DISP_CHANGE_SUCCESSFUL = (0),
+        DISP_CHANGE_RESTART = (1),
+        DISP_CHANGE_BADFLAGS = -((4)),
+        DISP_CHANGE_FAILED = -((1)),
+        DISP_CHANGE_BADMODE = -((2)),
+        DISP_CHANGE_NOTUPDATED = -((3)),
+        SERVICE_NO_CHANGE = -((1)),
+        SERVICE_WIN32_OWN_PROCESS = (16),
+        SERVICE_WIN32_SHARE_PROCESS = (32),
+        SERVICE_KERNEL_DRIVER = (1),
+        SERVICE_FILE_SYSTEM_DRIVER = (2),
+        SERVICE_INTERACTIVE_PROCESS = (256),
+        SERVICE_BOOT_START = (0),
+        SERVICE_SYSTEM_START = (1),
+        SERVICE_AUTO_START = (2),
+        SERVICE_DEMAND_START = (3),
+        SERVICE_DISABLED = (4),
+        SERVICE_STOPPED = (1),
+        SERVICE_START_PENDING = (2),
+        SERVICE_STOP_PENDING = (3),
+        SERVICE_RUNNING = (4),
+        SERVICE_CONTINUE_PENDING = (5),
+        SERVICE_PAUSE_PENDING = (6),
+        SERVICE_PAUSED = (7),
+        SERVICE_ACCEPT_STOP = (1),
+        SERVICE_ACCEPT_PAUSE_CONTINUE = (2),
+        SERVICE_ACCEPT_SHUTDOWN = (4),
+        BST_CHECKED = (1),
+        BST_INDETERMINATE = (2),
+        BST_UNCHECKED = (0),
+        BST_FOCUS = (8),
+        BST_PUSHED = (4),
+        MF_BYCOMMAND = (0),
+        MF_BYPOSITION = (0x400),
+        MF_CHECKED = (0x8),
+        MF_UNCHECKED = (0),
+        MF_HILITE = (0x80),
+        MF_UNHILITE = (0),
+        CWP_ALL = (0),
+        CWP_SKIPINVISIBLE = (1),
+        CWP_SKIPDISABLED = (2),
+        CWP_SKIPTRANSPARENT = (4),
+        CE_BREAK = (16),
+        CE_DNS = (2048),
+        CE_FRAME = (8),
+        CE_IOE = (1024),
+        CE_MODE = (32768),
+        CE_OOP = (4096),
+        CE_OVERRUN = (2),
+        CE_PTO = (512),
+        CE_RXOVER = (1),
+        CE_RXPARITY = (4),
+        CE_TXFULL = (256),
+        RGN_AND = (1),
+        RGN_COPY = (5),
+        RGN_DIFF = (4),
+        RGN_OR = (2),
+        RGN_XOR = (3),
+        NULLREGION = (1),
+        SIMPLEREGION = (2),
+        COMPLEXREGION = (3),
+        ERROR = (0),
+        CDERR_DIALOGFAILURE = (0xffff),
+        CDERR_FINDRESFAILURE = (6),
+        CDERR_INITIALIZATION = (2),
+        CDERR_LOADRESFAILURE = (7),
+        CDERR_LOADSTRFAILURE = (5),
+        CDERR_LOCKRESFAILURE = (8),
+        CDERR_MEMALLOCFAILURE = (9),
+        CDERR_MEMLOCKFAILURE = (10),
+        CDERR_NOHINSTANCE = (4),
+        CDERR_NOHOOK = (11),
+        CDERR_NOTEMPLATE = (3),
+        CDERR_REGISTERMSGFAIL = (12),
+        CDERR_STRUCTSIZE = (1),
+        PDERR_CREATEICFAILURE = (0x1000)+(10),
+        PDERR_DEFAULTDIFFERENT = (0x1000)+(12),
+        PDERR_DNDMMISMATCH = (0x1000)+(9),
+        PDERR_GETDEVMODEFAIL = (0x1000)+(5),
+        PDERR_INITFAILURE = (0x1000)+(6),
+        PDERR_LOADDRVFAILURE = (0x1000)+(4),
+        PDERR_NODEFAULTPRN = (0x1000)+(8),
+        PDERR_NODEVICES = (0x1000)+(7),
+        PDERR_PARSEFAILURE = (0x1000)+(2),
+        PDERR_PRINTERNOTFOUND = (0x1000)+(11),
+        PDERR_RETDEFFAILURE = (0x1000)+(3),
+        PDERR_SETUPFAILURE = (0x1000)+(1),
+        CFERR_MAXLESSTHANMIN = (0x2000)+(2),
+        CFERR_NOFONTS = (0x2000)+(1),
+        FNERR_BUFFERTOOSMALL = (0x3000)+(3),
+        FNERR_INVALIDFILENAME = (0x3000)+(2),
+        FNERR_SUBCLASSFAILURE = (0x3000)+(1),
+        FRERR_BUFFERLENGTHZERO = (0x4000)+(1),
+        LOCALE_SYSTEM_DEFAULT = (0x800),
+        LOCALE_USER_DEFAULT = (0x400),
+        NORM_IGNORECASE = (1),
+        NORM_IGNOREKANATYPE = (65536),
+        NORM_IGNORENONSPACE = (2),
+        NORM_IGNORESYMBOLS = (4),
+        NORM_IGNOREWIDTH = (131072),
+        SORT_STRINGSORT = (4096),
+        LCMAP_BYTEREV = (2048),
+        LCMAP_FULLWIDTH = (8388608),
+        LCMAP_HALFWIDTH = (4194304),
+        LCMAP_HIRAGANA = (1048576),
+        LCMAP_KATAKANA = (2097152),
+        LCMAP_LOWERCASE = (256),
+        LCMAP_SORTKEY = (1024),
+        LCMAP_UPPERCASE = (512),
+        DBG_CONTINUE = (0x10002),
+        DBG_CONTROL_BREAK = (0x40010008),
+        DBG_CONTROL_C = (0x40010005),
+        DBG_EXCEPTION_NOT_HANDLED = (0x80010001),
+        DBG_TERMINATE_THREAD = (0x40010003),
+        DBG_TERMINATE_PROCESS = (0x40010004),
+        SERVICE_CONTROL_STOP = (1),
+        SERVICE_CONTROL_PAUSE = (2),
+        SERVICE_CONTROL_CONTINUE = (3),
+        SERVICE_CONTROL_INTERROGATE = (4),
+        SERVICE_CONTROL_SHUTDOWN = (5),
+        IMAGE_BITMAP = (0),
+        IMAGE_CURSOR = (2),
+        IMAGE_ENHMETAFILE = (1),
+        IMAGE_ICON = (1),
+        LR_COPYDELETEORG = (8),
+        LR_COPYRETURNORG = (4),
+        LR_MONOCHROME = (1),
+        LR_CREATEDIBSECTION = (8192),
+        LR_DEFAULTSIZE = (64),
+        DF_ALLOWOTHERACCOUNTHOOK = (0x1),
+        DESKTOP_CREATEMENU = (0x4),
+        DESKTOP_CREATEWINDOW = (0x2),
+        DESKTOP_ENUMERATE = (0x40),
+        DESKTOP_HOOKCONTROL = (0x8),
+        DESKTOP_JOURNALPLAYBACK = (0x20),
+        DESKTOP_JOURNALRECORD = (0x10),
+        DESKTOP_READOBJECTS = (0x1),
+        DESKTOP_SWITCHDESKTOP = (0x100),
+        DESKTOP_WRITEOBJECTS = (0x80),
+        WSF_VISIBLE = (0x1),
+        CBM_INIT = (0x4),
+        DIB_PAL_COLORS = (1),
+        DIB_RGB_COLORS = (0),
+        GENERIC_READ = (0x80000000),
+        GENERIC_WRITE = (0x40000000),
+        GENERIC_EXECUTE = (0x20000000),
+        FILE_READ_DATA = (0x0001),
+        FILE_LIST_DIRECTORY = (0x0001),
+        FILE_WRITE_DATA = (0x0002),
+        FILE_ADD_FILE = (0x0002),
+        FILE_APPEND_DATA = (0x0004),
+        FILE_ADD_SUBDIRECTORY = (0x0004),
+        FILE_CREATE_PIPE_INSTANCE = (0x0004),
+        FILE_READ_EA = (0x0008),
+        FILE_READ_PROPERTIES = (FILE_READ_EA),
+        FILE_WRITE_EA = (0x0010),
+        FILE_WRITE_PROPERTIES = (FILE_WRITE_EA),
+        FILE_EXECUTE = (0x0020),
+        FILE_TRAVERSE = (0x0020),
+        FILE_DELETE_CHILD = (0x0040),
+        FILE_READ_ATTRIBUTES = (0x0080),
+        FILE_WRITE_ATTRIBUTES = (0x0100),
+        FILE_SHARE_DELETE = (4),
+        FILE_SHARE_READ = (1),
+        FILE_SHARE_WRITE = (2),
+        CONSOLE_TEXTMODE_BUFFER = (1),
+        CREATE_NEW = (1),
+        CREATE_ALWAYS = (2),
+        OPEN_EXISTING = (3),
+        OPEN_ALWAYS = (4),
+        TRUNCATE_EXISTING = (5),
+        INVALID_FILE_ATTRIBUTE = (-1),
+        FILE_ATTRIBUTE_ARCHIVE = (32),
+        FILE_ATTRIBUTE_COMPRESSED = (2048),
+        FILE_ATTRIBUTE_NORMAL = (128),
+        FILE_ATTRIBUTE_DIRECTORY = (16),
+        FILE_ATTRIBUTE_HIDDEN = (2),
+        FILE_ATTRIBUTE_READONLY = (1),
+        FILE_ATTRIBUTE_SYSTEM = (4),
+        FILE_ATTRIBUTE_TEMPORARY = (256),
+        FILE_FLAG_WRITE_THROUGH = (2147483648),
+        FILE_FLAG_OVERLAPPED = (1073741824),
+        FILE_FLAG_NO_BUFFERING = (536870912),
+        FILE_FLAG_RANDOM_ACCESS = (268435456),
+        FILE_FLAG_SEQUENTIAL_SCAN = (134217728),
+        FILE_FLAG_DELETE_ON_CLOSE = (67108864),
+        FILE_FLAG_BACKUP_SEMANTICS = (33554432),
+        FILE_FLAG_POSIX_SEMANTICS = (16777216),
+        SECURITY_ANONYMOUS = (0),
+        SECURITY_IDENTIFICATION = (65536),
+        SECURITY_IMPERSONATION = (131072),
+        SECURITY_DELEGATION = (196608),
+        SECURITY___FILE___TRACKING = (262144),
+        SECURITY_EFFECTIVE_ONLY = (524288),
+        SECURITY_SQOS_PRESENT = (1048576),
+        SEC_COMMIT = (134217728),
+        SEC_IMAGE = (16777216),
+        SEC_NOCACHE = (268435456),
+        SEC_RESERVE = (67108864),
+        PAGE_READONLY = (2),
+        PAGE_READWRITE = (4),
+        PAGE_WRITECOPY = (8),
+        PAGE_EXECUTE = (16),
+        PAGE_EXECUTE_READ = (32),
+        PAGE_EXECUTE_READWRITE = (64),
+        PAGE_EXECUTE_WRITECOPY = (128),
+        PAGE_GUARD = (256),
+        PAGE_NOACCESS = (1),
+        PAGE_NOCACHE = (512),
+        MEM_COMMIT = (4096),
+        MEM_FREE = (65536),
+        MEM_RESERVE = (8192),
+        MEM_IMAGE = (16777216),
+        MEM_MAPPED = (262144),
+        MEM_PRIVATE = (131072),
+        MEM_DECOMMIT = (16384),
+        MEM_RELEASE = (32768),
+        MEM_TOP_DOWN = (1048576),
+        EXCEPTION_GUARD_PAGE = (0x80000001),
+        SECTION_EXTEND_SIZE = (0x10),
+        SECTION_MAP_READ = (0x4),
+        SECTION_MAP_WRITE = (0x2),
+        SECTION_QUERY = (0x1),
+        SECTION_ALL_ACCESS = (0xf001f),
+        FW_DONTCARE = (0),
+        FW_THIN = (100),
+        FW_EXTRALIGHT = (200),
+        FW_LIGHT = (300),
+        FW_NORMAL = (400),
+        FW_REGULAR = (FW_NORMAL),
+        FW_MEDIUM = (500),
+        FW_SEMIBOLD = (600),
+        FW_BOLD = (700),
+        FW_EXTRABOLD = (800),
+        FW_HEAVY = (900),
+        ANSI_CHARSET = (0),
+        DEFAULT_CHARSET = (1),
+        SYMBOL_CHARSET = (2),
+        SHIFTJIS_CHARSET = (128),
+        HANGEUL_CHARSET = (129),
+        GB2312_CHARSET = (134),
+        CHINESEBIG5_CHARSET = (136),
+        GREEK_CHARSET = (161),
+        TURKISH_CHARSET = (162),
+        HEBREW_CHARSET = (177),
+        ARABIC_CHARSET = (178),
+        BALTIC_CHARSET = (186),
+        RUSSIAN_CHARSET = (204),
+        THAI_CHARSET = (222),
+        EASTEUROPE_CHARSET = (238),
+        OEM_CHARSET = (255),
+        OUT_DEFAULT_PRECIS = (0),
+        OUT_STRING_PRECIS = (1),
+        OUT_CHARACTER_PRECIS = (2),
+        OUT_STROKE_PRECIS = (3),
+        OUT_TT_PRECIS = (4),
+        OUT_DEVICE_PRECIS = (5),
+        OUT_RASTER_PRECIS = (6),
+        OUT_TT_ONLY_PRECIS = (7),
+        OUT_OUTLINE_PRECIS = (8),
+        CLIP_DEFAULT_PRECIS = (0),
+        CLIP_CHARACTER_PRECIS = (1),
+        CLIP_STROKE_PRECIS = (2),
+        CLIP_MASK = (15),
+        CLIP_LH_ANGLES = (16),
+        CLIP_TT_ALWAYS = (32),
+        CLIP_EMBEDDED = (128),
+        DEFAULT_QUALITY = (0),
+        DRAFT_QUALITY = (1),
+        PROOF_QUALITY = (2),
+        DEFAULT_PITCH = (0),
+        FIXED_PITCH = (1),
+        VARIABLE_PITCH = (2),
+        FF_DECORATIVE = (80),
+        FF_DONTCARE = (0),
+        FF_MODERN = (48),
+        FF_ROMAN = (16),
+        FF_SCRIPT = (64),
+        FF_SWISS = (32),
+        HS_BDIAGONAL = (3),
+        HS_CROSS = (4),
+        HS_DIAGCROSS = (5),
+        HS_FDIAGONAL = (2),
+        HS_HORIZONTAL = (0),
+        HS_VERTICAL = (1),
+        LR_DEFAULTCOLOR = (0),
+        LR_LOADREALSIZE = (128),
+        MAILSLOT_WAIT_FOREVER = (0xffffffff),
+        MAILSLOT_NO_MESSAGE = (0xffffffff),
+        CMB_MASKED = (2),
+        PIPE_ACCESS_DUPLEX = (3),
+        PIPE_ACCESS_INBOUND = (1),
+        PIPE_ACCESS_OUTBOUND = (2),
+        WRITE_DAC = (0x40000),
+        WRITE_OWNER = (0x80000),
+        ACCESS_SYSTEM_SECURITY = (0x1000000),
+        PIPE_TYPE_BYTE = (0),
+        PIPE_TYPE_MESSAGE = (4),
+        PIPE_READMODE_BYTE = (0),
+        PIPE_READMODE_MESSAGE = (2),
+        PIPE_WAIT = (0),
+        PIPE_NOWAIT = (1),
+        PS_GEOMETRIC = (65536),
+        PS_COSMETIC = (0),
+        PS_ALTERNATE = (8),
+        PS_SOLID = (0),
+        PS_DASH = (1),
+        PS_DOT = (2),
+        PS_DASHDOT = (3),
+        PS_DASHDOTDOT = (4),
+        PS_NULL = (5),
+        PS_USERSTYLE = (7),
+        PS_INSIDEFRAME = (6),
+        PS_ENDCAP_ROUND = (0),
+        PS_ENDCAP_SQUARE = (256),
+        PS_ENDCAP_FLAT = (512),
+        PS_JOIN_BEVEL = (4096),
+        PS_JOIN_MITER = (8192),
+        PS_JOIN_ROUND = (0),
+        PS_STYLE_MASK = (15),
+        PS_ENDCAP_MASK = (3840),
+        PS_TYPE_MASK = (983040),
+        ALTERNATE = (1),
+        WINDING = (2),
+        CREATE_DEFAULT_ERROR_MODE = (67108864),
+        CREATE_NEW_CONSOLE = (16),
+        CREATE_NEW_PROCESS_GROUP = (512),
+        CREATE_NO_WINDOW = (0x8000000),
+        CREATE_SEPARATE_WOW_VDM = (2048),
+        CREATE_SUSPENDED = (4),
+        CREATE_UNICODE_ENVIRONMENT = (1024),
+        DEBUG_PROCESS = (1),
+        DEBUG_ONLY_THIS_PROCESS = (2),
+        DETACHED_PROCESS = (8),
+        HIGH_PRIORITY_CLASS = (128),
+        IDLE_PRIORITY_CLASS = (64),
+        NORMAL_PRIORITY_CLASS = (32),
+        REALTIME_PRIORITY_CLASS = (256),
+        SERVICE_ALL_ACCESS = (0xf01ff),
+        SERVICE_CHANGE_CONFIG = (2),
+        SERVICE_ENUMERATE_DEPENDENTS = (8),
+        SERVICE_INTERROGATE = (128),
+        SERVICE_PAUSE_CONTINUE = (64),
+        SERVICE_QUERY_CONFIG = (1),
+        SERVICE_QUERY_STATUS = (4),
+        SERVICE_START = (16),
+        SERVICE_STOP = (32),
+        SERVICE_USER_DEFINED_CONTROL = (256),
+        SERVICE_DELETE = (0x10000),
+        SERVICE_READ_CONTROL = (0x20000),
+        SERVICE_GENERIC_EXECUTE = (0x20000000),
+        SERVICE_ERROR_IGNORE = (0),
+        SERVICE_ERROR_NORMAL = (1),
+        SERVICE_ERROR_SEVERE = (2),
+        SERVICE_ERROR_CRITICAL = (3),
+        TAPE_FIXED_PARTITIONS = (0),
+        TAPE_INITIATOR_PARTITIONS = (0x2),
+        TAPE_SELECT_PARTITIONS = (0x1),
+        TAPE_FILEMARKS = (0x1),
+        TAPE_LONG_FILEMARKS = (0x3),
+        TAPE_SETMARKS = (0),
+        TAPE_SHORT_FILEMARKS = (0x2),
+        CW_USEDEFAULT = (0x80000000),
+        WS_BORDER = (0x800000),
+        WS_CAPTION = (0xc00000),
+        WS_CHILD = (0x40000000),
+        WS_CHILDWINDOW = (0x40000000),
+        WS_CLIPCHILDREN = (0x2000000),
+        WS_CLIPSIBLINGS = (0x4000000),
+        WS_DISABLED = (0x8000000),
+        WS_DLGFRAME = (0x400000),
+        WS_GROUP = (0x20000),
+        WS_HSCROLL = (0x100000),
+        WS_ICONIC = (0x20000000),
+        WS_MAXIMIZE = (0x1000000),
+        WS_MAXIMIZEBOX = (0x10000),
+        WS_MINIMIZE = (0x20000000),
+        WS_MINIMIZEBOX = (0x20000),
+        WS_OVERLAPPED = (0),
+        WS_OVERLAPPEDWINDOW = (0xcf0000),
+        WS_POPUP = (0x80000000),
+        WS_POPUPWINDOW = (0x80880000),
+        WS_SIZEBOX = (0x40000),
+        WS_SYSMENU = (0x80000),
+        WS_TABSTOP = (0x10000),
+        WS_THICKFRAME = (0x40000),
+        WS_TILED = (0),
+        WS_TILEDWINDOW = (0xcf0000),
+        WS_VISIBLE = (0x10000000),
+        WS_VSCROLL = (0x200000),
+        MDIS_ALLCHILDSTYLES = (0x1),
+        BS_3STATE = (0x5),
+        BS_AUTO3STATE = (0x6),
+        BS_AUTOCHECKBOX = (0x3),
+        BS_AUTORADIOBUTTON = (0x9),
+        BS_BITMAP = (0x80),
+        BS_BOTTOM = (0x800),
+        BS_CENTER = (0x300),
+        BS_CHECKBOX = (0x2),
+        BS_DEFPUSHBUTTON = (0x1),
+        BS_GROUPBOX = (0x7),
+        BS_ICON = (0x40),
+        BS_LEFT = (0x100),
+        BS_LEFTTEXT = (0x20),
+        BS_MULTILINE = (0x2000),
+        BS_NOTIFY = (0x4000),
+        BS_OWNERDRAW = (0xb),
+        BS_PUSHBUTTON = (0),
+        BS_PUSHLIKE = (0x1000),
+        BS_RADIOBUTTON = (0x4),
+        BS_RIGHT = (0x200),
+        BS_RIGHTBUTTON = (0x20),
+        BS_TEXT = (0),
+        BS_TOP = (0x400),
+        BS_USERBUTTON = (0x8),
+        BS_VCENTER = (0xc00),
+        CBS_AUTOHSCROLL = (0x40),
+        CBS_DISABLENOSCROLL = (0x800),
+        CBS_DROPDOWN = (0x2),
+        CBS_DROPDOWNLIST = (0x3),
+        CBS_HASSTRINGS = (0x200),
+        CBS_LOWERCASE = (0x4000),
+        CBS_NOINTEGRALHEIGHT = (0x400),
+        CBS_OEMCONVERT = (0x80),
+        CBS_OWNERDRAWFIXED = (0x10),
+        CBS_OWNERDRAWVARIABLE = (0x20),
+        CBS_SIMPLE = (0x1),
+        CBS_SORT = (0x100),
+        CBS_UPPERCASE = (0x2000),
+        ES_AUTOHSCROLL = (0x80),
+        ES_AUTOVSCROLL = (0x40),
+        ES_CENTER = (0x1),
+        ES_LEFT = (0),
+        ES_LOWERCASE = (0x10),
+        ES_MULTILINE = (0x4),
+        ES_NOHIDESEL = (0x100),
+        ES_NUMBER = (0x2000),
+        ES_OEMCONVERT = (0x400),
+        ES_PASSWORD = (0x20),
+        ES_READONLY = (0x800),
+        ES_RIGHT = (0x2),
+        ES_UPPERCASE = (0x8),
+        ES_WANTRETURN = (0x1000),
+        LBS_DISABLENOSCROLL = (0x1000),
+        LBS_EXTENDEDSEL = (0x800),
+        LBS_HASSTRINGS = (0x40),
+        LBS_MULTICOLUMN = (0x200),
+        LBS_MULTIPLESEL = (0x8),
+        LBS_NODATA = (0x2000),
+        LBS_NOINTEGRALHEIGHT = (0x100),
+        LBS_NOREDRAW = (0x4),
+        LBS_NOSEL = (0x4000),
+        LBS_NOTIFY = (0x1),
+        LBS_OWNERDRAWFIXED = (0x10),
+        LBS_OWNERDRAWVARIABLE = (0x20),
+        LBS_SORT = (0x2),
+        LBS_STANDARD = (0xa00003),
+        LBS_USETABSTOPS = (0x80),
+        LBS_WANTKEYBOARDINPUT = (0x400),
+        SBS_BOTTOMALIGN = (0x4),
+        SBS_HORZ = (0),
+        SBS_LEFTALIGN = (0x2),
+        SBS_RIGHTALIGN = (0x4),
+        SBS_SIZEBOX = (0x8),
+        SBS_SIZEBOXBOTTOMRIGHTALIGN = (0x4),
+        SBS_SIZEBOXTOPLEFTALIGN = (0x2),
+        SBS_SIZEGRIP = (0x10),
+        SBS_TOPALIGN = (0x2),
+        SBS_VERT = (0x1),
+        SS_BITMAP = (0xe),
+        SS_BLACKFRAME = (0x7),
+        SS_BLACKRECT = (0x4),
+        SS_CENTER = (0x1),
+        SS_CENTERIMAGE = (0x200),
+        SS_ENHMETAFILE = (0xf),
+        SS_ETCHEDFRAME = (0x12),
+        SS_ETCHEDHORZ = (0x10),
+        SS_ETCHEDVERT = (0x11),
+        SS_GRAYFRAME = (0x8),
+        SS_GRAYRECT = (0x5),
+        SS_ICON = (0x3),
+        SS_LEFT = (0),
+        SS_LEFTNOWORDWRAP = (0xc),
+        SS_NOPREFIX = (0x80),
+        SS_NOTIFY = (0x100),
+        SS_OWNERDRAW = (0xd),
+        SS_REALSIZEIMAGE = (0x800),
+        SS_RIGHT = (0x2),
+        SS_RIGHTJUST = (0x400),
+        SS_SIMPLE = (0xb),
+        SS_SUNKEN = (0x1000),
+        SS_USERITEM = (0xa),
+        SS_WHITEFRAME = (0x9),
+        SS_WHITERECT = (0x6),
+        DS_3DLOOK = (0x4),
+        DS_ABSALIGN = (0x1),
+        DS_CENTER = (0x800),
+        DS_CENTERMOUSE = (0x1000),
+        DS___FILE__HELP = (0x2000),
+        DS_CONTROL = (0x400),
+        DS_FIXEDSYS = (0x8),
+        DS_LOCALEDIT = (0x20),
+        DS_MODALFRAME = (0x80),
+        DS_NOFAILCREATE = (0x10),
+        DS_NOIDLEMSG = (0x100),
+        DS_SETFONT = (0x40),
+        DS_SETFOREGROUND = (0x200),
+        DS_SYSMODAL = (0x2),
+        WS_EX_ACCEPTFILES = (0x10),
+        WS_EX_APPWINDOW = (0x40000),
+        WS_EX_CLIENTEDGE = (0x200),
+        WS_EX___FILE__HELP = (0x400),
+        WS_EX_CONTROLPARENT = (0x10000),
+        WS_EX_DLGMODALFRAME = (0x1),
+        WS_EX_LEFT = (0),
+        WS_EX_LEFTSCROLLBAR = (0x4000),
+        WS_EX_LTRREADING = (0),
+        WS_EX_MDICHILD = (0x40),
+        WS_EX_NOPARENTNOTIFY = (0x4),
+        WS_EX_OVERLAPPEDWINDOW = (0x300),
+        WS_EX_PALETTEWINDOW = (0x188),
+        WS_EX_RIGHT = (0x1000),
+        WS_EX_RIGHTSCROLLBAR = (0),
+        WS_EX_RTLREADING = (0x2000),
+        WS_EX_STATICEDGE = (0x20000),
+        WS_EX_TOOLWINDOW = (0x80),
+        WS_EX_TOPMOST = (0x8),
+        WS_EX_TRANSPARENT = (0x20),
+        WS_EX_WINDOWEDGE = (0x100),
+        WINSTA_ACCESSCLIPBOARD = (0x4),
+        WINSTA_ACCESSGLOBALATOMS = (0x20),
+        WINSTA_CREATEDESKTOP = (0x8),
+        WINSTA_ENUMDESKTOPS = (0x1),
+        WINSTA_ENUMERATE = (0x100),
+        WINSTA_EXITWINDOWS = (0x40),
+        WINSTA_READATTRIBUTES = (0x2),
+        WINSTA_READSCREEN = (0x200),
+        WINSTA_WRITEATTRIBUTES = (0x10),
+        WH_CALLWNDPROC = (4),
+        WH_CALLWNDPROCRET = (12),
+        WH_CBT = (5),
+        WH_DEBUG = (9),
+        WH_GETMESSAGE = (3),
+        WH_JOURNALPLAYBACK = (1),
+        WH_JOURNALRECORD = (0),
+        WH_KEYBOARD = (2),
+        WH_MOUSE = (7),
+        WH_MSGFILTER = -((1)),
+        WH_SHELL = (10),
+        WH_SYSMSGFILTER = (6),
+        WH_FOREGROUNDIDLE = (11),
+        DDD_RAW_TARGET_PATH = (1),
+        DDD_REMOVE_DEFINITION = (2),
+        DDD_EXACT_MATCH_ON_REMOVE = (4),
+        DC_BINNAMES = (12),
+        DC_BINS = (6),
+        DC_COPIES = (18),
+        DC_DRIVER = (11),
+        DC_DATATYPE_PRODUCED = (21),
+        DC_DUPLEX = (7),
+        DC_EMF_COMPLIANT = (20),
+        DC_ENUMRESOLUTIONS = (13),
+        DC_EXTRA = (9),
+        DC_FIELDS = (1),
+        DC_FILEDEPENDENCIES = (14),
+        DC_MAXEXTENT = (5),
+        DC_MINEXTENT = (4),
+        DC_ORIENTATION = (17),
+        DC_PAPERNAMES = (16),
+        DC_PAPERS = (2),
+        DC_PAPERSIZE = (3),
+        DC_SIZE = (8),
+        DC_TRUETYPE = (15),
+        DCTT_BITMAP = (0x1),
+        DCTT_DOWNLOAD = (0x2),
+        DCTT_SUBDEV = (0x4),
+        DC_VERSION = (10),
+        DC_BINADJUST = (19),
+        DDL_ARCHIVE = (32),
+        DDL_DIRECTORY = (16),
+        DDL_DRIVES = (16384),
+        DDL_EXCLUSIVE = (32768),
+        DDL_HIDDEN = (2),
+        DDL_READONLY = (1),
+        DDL_READWRITE = (0),
+        DDL_SYSTEM = (4),
+        DDL_POSTMSGS = (8192),
+        DLL_PROCESS_ATTACH = (1),
+        DLL_THREAD_ATTACH = (2),
+        DLL_PROCESS_DETACH = (0),
+        DLL_THREAD_DETACH = (3),
+        DM_IN_BUFFER = (8),
+        DM_MODIFY = (8),
+        DM_IN_PROMPT = (4),
+        DM_PROMPT = (4),
+        DM_OUT_BUFFER = (2),
+        DM_COPY = (2),
+        DM_UPDATE = (1),
+        IDANI_OPEN = (1),
+        IDANI_CLOSE = (2),
+        DC_ACTIVE = (1),
+        DC_SMALLCAP = (2),
+        BDR_RAISEDINNER = (4),
+        BDR_SUNKENINNER = (8),
+        BDR_RAISEDOUTER = (1),
+        BDR_SUNKENOUTER = (1),
+        EDGE_BUMP = (9),
+        EDGE_ETCHED = (6),
+        EDGE_RAISED = (5),
+        EDGE_SUNKEN = (10),
+        BF_ADJUST = (8192),
+        BF_BOTTOM = (8),
+        BF_BOTTOMLEFT = (9),
+        BF_BOTTOMRIGHT = (12),
+        BF_DIAGONAL = (16),
+        BF_DIAGONAL_ENDBOTTOMLEFT = (25),
+        BF_DIAGONAL_ENDBOTTOMRIGHT = (28),
+        BF_DIAGONAL_ENDTOPLEFT = (19),
+        BF_DIAGONAL_ENDTOPRIGHT = (22),
+        BF_FLAT = (16384),
+        BF_LEFT = (1),
+        BF_MIDDLE = (2048),
+        BF_MONO = (32768),
+        BF_RECT = (15),
+        BF_RIGHT = (4),
+        BF_SOFT = (4096),
+        BF_TOP = (2),
+        BF_TOPLEFT = (3),
+        BF_TOPRIGHT = (6),
+        DFC_BUTTON = (4),
+        DFC_CAPTION = (1),
+        DFC_MENU = (2),
+        DFC_SCROLL = (3),
+        DFCS_BUTTON3STATE = (8),
+        DFCS_BUTTONCHECK = (0),
+        DFCS_BUTTONPUSH = (16),
+        DFCS_BUTTONRADIO = (4),
+        DFCS_BUTTONRADIOIMAGE = (1),
+        DFCS_BUTTONRADIOMASK = (2),
+        DFCS_CAPTIONCLOSE = (0),
+        DFCS_CAPTIONHELP = (4),
+        DFCS_CAPTIONMAX = (2),
+        DFCS_CAPTIONMIN = (1),
+        DFCS_CAPTIONRESTORE = (3),
+        DFCS_MENUARROW = (0),
+        DFCS_MENUBULLET = (2),
+        DFCS_MENUCHECK = (1),
+        DFCS_SCROLLCOMBOBOX = (5),
+        DFCS_SCROLLDOWN = (1),
+        DFCS_SCROLLLEFT = (2),
+        DFCS_SCROLLRIGHT = (3),
+        DFCS_SCROLLSIZEGRIP = (8),
+        DFCS_SCROLLUP = (0),
+        DFCS_ADJUSTRECT = (8192),
+        DFCS_CHECKED = (1024),
+        DFCS_FLAT = (16384),
+        DFCS_INACTIVE = (256),
+        DFCS_MONO = (32768),
+        DFCS_PUSHED = (512),
+        DI_COMPAT = (4),
+        DI_DEFAULTSIZE = (8),
+        DI_IMAGE = (2),
+        DI_MASK = (1),
+        DI_NORMAL = (3),
+        DST_BITMAP = (4),
+        DST_COMPLEX = (0),
+        DST_ICON = (3),
+        DST_PREFIXTEXT = (2),
+        DST_TEXT = (1),
+        DSS_NORMAL = (0),
+        DSS_UNION = (16),
+        DSS_DISABLED = (32),
+        DSS_MONO = (128),
+        SBT_NOBORDERS = (256),
+        SBT_OWNERDRAW = (4096),
+        SBT_POPOUT = (512),
+        SBT_RTLREADING = (1024),
+        DT_BOTTOM = (8),
+        DT_CALCRECT = (1024),
+        DT_CENTER = (1),
+        DT_EDITCONTROL = (8192),
+        DT_END_ELLIPSIS = (32768),
+        DT_PATH_ELLIPSIS = (16384),
+        DT_EXPANDTABS = (64),
+        DT_EXTERNALLEADING = (512),
+        DT_LEFT = (0),
+        DT_MODIFYSTRING = (65536),
+        DT_NOCLIP = (256),
+        DT_NOPREFIX = (2048),
+        DT_RIGHT = (2),
+        DT_RTLREADING = (131072),
+        DT_SINGLELINE = (32),
+        DT_TABSTOP = (128),
+        DT_TOP = (0),
+        DT_VCENTER = (4),
+        DT_WORDBREAK = (16),
+        DT_INTERNAL = (4096),
+        DUPLICATE_CLOSE_SOURCE = (1),
+        DUPLICATE_SAME_ACCESS = (2),
+        FILE_MAP_ALL_ACCESS = (0xf001f),
+        FILE_MAP_READ = (4),
+        FILE_MAP_WRITE = (2),
+        FILE_MAP_COPY = (1),
+        FILE_MAP_EXECUTE = (0x20),
+        MUTEX_ALL_ACCESS = (0x1f0001),
+        MUTEX_MODIFY_STATE = (1),
+        SYNCHRONIZE = (0x100000),
+        SEMAPHORE_ALL_ACCESS = (0x1f0003),
+        SEMAPHORE_MODIFY_STATE = (2),
+        EVENT_ALL_ACCESS = (0x1f0003),
+        EVENT_MODIFY_STATE = (2),
+        KEY_ALL_ACCESS = (0xf003f),
+        KEY_CREATE_LINK = (32),
+        KEY_CREATE_SUB_KEY = (4),
+        KEY_ENUMERATE_SUB_KEYS = (8),
+        KEY_EXECUTE = (0x20019),
+        KEY_NOTIFY = (16),
+        KEY_QUERY_VALUE = (1),
+        KEY_READ = (0x20019),
+        KEY_SET_VALUE = (2),
+        KEY_WRITE = (0x20006),
+        PROCESS_ALL_ACCESS = (0x1f0fff),
+        PROCESS_CREATE_PROCESS = (128),
+        PROCESS_CREATE_THREAD = (2),
+        PROCESS_DUP_HANDLE = (64),
+        PROCESS_QUERY_INFORMATION = (1024),
+        PROCESS_SET_INFORMATION = (512),
+        PROCESS_TERMINATE = (1),
+        PROCESS_VM_OPERATION = (8),
+        PROCESS_VM_READ = (16),
+        PROCESS_VM_WRITE = (32),
+        THREAD_ALL_ACCESS = (0x1f03ff),
+        THREAD_DIRECT_IMPERSONATION = (512),
+        THREAD_GET___FILE__ = (8),
+        THREAD_IMPERSONATE = (256),
+        THREAD_QUERY_INFORMATION = (64),
+        THREAD_SET___FILE__ = (16),
+        THREAD_SET_INFORMATION = (32),
+        THREAD_SET_THREAD_TOKEN = (128),
+        THREAD_SUSPEND_RESUME = (2),
+        THREAD_TERMINATE = (1),
+        WB_ISDELIMITER = (2),
+        WB_LEFT = (0),
+        WB_RIGHT = (1),
+        SB_BOTH = (3),
+        SB_CTL = (2),
+        SB_HORZ = (0),
+        SB_VERT = (1),
+        ESB_DISABLE_BOTH = (3),
+        ESB_DISABLE_DOWN = (2),
+        ESB_DISABLE_LEFT = (1),
+        ESB_DISABLE_LTUP = (1),
+        ESB_DISABLE_RIGHT = (2),
+        ESB_DISABLE_RTDN = (2),
+        ESB_DISABLE_UP = (1),
+        ESB_ENABLE_BOTH = (0),
+        SB_LINEUP = (0),
+        SB_LINEDOWN = (1),
+        SB_LINELEFT = (0),
+        SB_LINERIGHT = (1),
+        SB_PAGEUP = (2),
+        SB_PAGEDOWN = (3),
+        SB_PAGELEFT = (2),
+        SB_PAGERIGHT = (3),
+        SB_THUMBPOSITION = (4),
+        SB_THUMBTRACK = (5),
+        SB_ENDSCROLL = (8),
+        SB_LEFT = (6),
+        SB_RIGHT = (7),
+        SB_BOTTOM = (7),
+        SB_TOP = (6),
+        ENUM_ALL_CALENDARS = -((1)),
+        DATE_SHORTDATE = (1),
+        DATE_LONGDATE = (2),
+        SERVICE_ACTIVE = (1),
+        SERVICE_INACTIVE = (2),
+        DEVICE_FONTTYPE = (2),
+        RASTER_FONTTYPE = (1),
+        TRUETYPE_FONTTYPE = (4),
+        OBJ_BRUSH = (2),
+        OBJ_PEN = (1),
+        OBJ_PAL = (5),
+        OBJ_FONT = (6),
+        OBJ_BITMAP = (7),
+        OBJ_EXTPEN = (11),
+        OBJ_REGION = (8),
+        OBJ_DC = (3),
+        OBJ_MEMDC = (10),
+        OBJ_METAFILE = (9),
+        OBJ_METADC = (4),
+        OBJ_ENHMETAFILE = (13),
+        OBJ_ENHMETADC = (12),
+        SERVICE_WIN32 = (48),
+        SERVICE_DRIVER = (11),
+        CP_INSTALLED = (1),
+        CP_SUPPORTED = (2),
+        LCID_INSTALLED = (1),
+        LCID_SUPPORTED = (2),
+        TAPE_ERASE_LONG = (0x1),
+        TAPE_ERASE_SHORT = (0),
+        SP_ERROR = -((1)),
+        SP_OUTOFDISK = -((4)),
+        SP_OUTOFMEMORY = -((5)),
+        SP_USERABORT = -((3)),
+        PHYSICALWIDTH = (110),
+        PHYSICALHEIGHT = (111),
+        PHYSICALOFFSETX = (112),
+        PHYSICALOFFSETY = (113),
+        SCALINGFACTORX = (114),
+        SCALINGFACTORY = (115),
+        QUERYESCSUPPORT = (8),
+        cABORTDOC = (2),
+        cENDDOC = (11),
+        GETPHYSPAGESIZE = (12),
+        GETPRINTINGOFFSET = (13),
+        GETSCALINGFACTOR = (14),
+        NEWFRAME = (1),
+        NEXTBAND = (3),
+        PASSTHROUGH = (19),
+        cSETABORTPROC = (9),
+        cSTARTDOC = (10),
+        CLRDTR = (6),
+        CLRRTS = (4),
+        SETDTR = (5),
+        SETRTS = (3),
+        SETXOFF = (1),
+        SETXON = (2),
+        SETBREAK = (8),
+        CLRBREAK = (9),
+        EWX_FORCE = (4),
+        EWX_LOGOFF = (0),
+        EWX_POWEROFF = (8),
+        EWX_REBOOT = (2),
+        EWX_SHUTDOWN = (1),
+        FLOODFILLBORDER = (0),
+        FLOODFILLSURFACE = (1),
+        ETO_CLIPPED = (4),
+        ETO_GLYPH_INDEX = (16),
+        ETO_OPAQUE = (2),
+        ETO_RTLREADING = (128),
+        FOREGROUND_BLUE = (1),
+        FOREGROUND_GREEN = (2),
+        FOREGROUND_RED = (4),
+        FOREGROUND_INTENSITY = (8),
+        BACKGROUND_BLUE = (16),
+        BACKGROUND_GREEN = (32),
+        BACKGROUND_RED = (64),
+        BACKGROUND_INTENSITY = (128),
+        FILE_NOTIFY_CHANGE_FILE_NAME = (1),
+        FILE_NOTIFY_CHANGE_DIR_NAME = (2),
+        FILE_NOTIFY_CHANGE_ATTRIBUTES = (4),
+        FILE_NOTIFY_CHANGE_SIZE = (8),
+        FILE_NOTIFY_CHANGE_LAST_WRITE = (16),
+        FILE_NOTIFY_CHANGE_SECURITY = (256),
+        MAP_FOLDCZONE = (16),
+        MAP_FOLDDIGITS = (128),
+        MAP_PRECOMPOSED = (32),
+        MAP_COMPOSITE = (64),
+        HC_ACTION = (0),
+        FORMAT_MESSAGE_ALLOCATE_BUFFER = (256),
+        FORMAT_MESSAGE_IGNORE_INSERTS = (512),
+        FORMAT_MESSAGE_FROM_STRING = (1024),
+        FORMAT_MESSAGE_FROM_HMODULE = (2048),
+        FORMAT_MESSAGE_FROM_SYSTEM = (4096),
+        FORMAT_MESSAGE_ARGUMENT_ARRAY = (8192),
+        FORMAT_MESSAGE_MAX_WIDTH_MASK = (255),
+        GDICOMMENT_WINDOWS_METAFILE = -((2147483647)),
+        GDICOMMENT_BEGINGROUP = (2),
+        GDICOMMENT_ENDGROUP = (3),
+        GDICOMMENT_MULTIFORMATS = (1073741828),
+        GDICOMMENT_IDENTIFIER = (1128875079),
+        CTRL_C_EVENT = (0),
+        CTRL_BREAK_EVENT = (1),
+        CTRL_CLOSE_EVENT = (2),
+        CTRL_LOGOFF_EVENT = (5),
+        CTRL_SHUTDOWN_EVENT = (6),
+        AD_COUNTERCLOCKWISE = (1),
+        AD_CLOCKWISE = (2),
+        SCS_32BIT_BINARY = (0),
+        SCS_DOS_BINARY = (1),
+        SCS_OS216_BINARY = (5),
+        SCS_PIF_BINARY = (3),
+        SCS_POSIX_BINARY = (4),
+        SCS_WOW_BINARY = (2),
+        DCB_DISABLE = (8),
+        DCB_ENABLE = (4),
+        DCB_RESET = (1),
+        DCB_SET = (3),
+        DCB_ACCUMULATE = (2),
+        GCP_DBCS = (1),
+        GCP_ERROR = (0x8000),
+        GCP_CLASSIN = (0x80000),
+        GCP_DIACRITIC = (256),
+        GCP_DISPLAYZWG = (0x400000),
+        GCP_GLYPHSHAPE = (16),
+        GCP_JUSTIFY = (0x10000),
+        GCP_JUSTIFYIN = (0x200000),
+        GCP_KASHIDA = (1024),
+        GCP_LIGATE = (32),
+        GCP_MAXEXTENT = (0x100000),
+        GCP_NEUTRALOVERRIDE = (0x2000000),
+        GCP_NUMERICOVERRIDE = (0x1000000),
+        GCP_NUMERICSLATIN = (0x4000000),
+        GCP_NUMERICSLOCAL = (0x8000000),
+        GCP_REORDER = (2),
+        GCP_SYMSWAPOFF = (0x800000),
+        GCP_USEKERNING = (8),
+        FLI_GLYPHS = (0x40000),
+        FLI_MASK = (0x103b),
+        GCW_ATOM = -((32)),
+        GCL_CBCLSEXTRA = -((20)),
+        GCL_CBWNDEXTRA = -((18)),
+        GCL_HBRBACKGROUND = -((10)),
+        GCL_HCURSOR = -((12)),
+        GCL_HICON = -((14)),
+        GCL_HICONSM = -((34)),
+        GCL_HMODULE = -((16)),
+        GCL_MENUNAME = -((8)),
+        GCL_STYLE = -((26)),
+        GCL_WNDPROC = -((24)),
+        CF_BITMAP = (2),
+        CF_DIB = (8),
+        CF_PALETTE = (9),
+        CF_ENHMETAFILE = (14),
+        CF_METAFILEPICT = (3),
+        CF_OEMTEXT = (7),
+        CF_TEXT = (1),
+        CF_UNICODETEXT = (13),
+        CF_DIF = (5),
+        CF_DSPBITMAP = (130),
+        CF_DSPENHMETAFILE = (142),
+        CF_DSPMETAFILEPICT = (131),
+        CF_DSPTEXT = (129),
+        CF_GDIOBJFIRST = (768),
+        CF_GDIOBJLAST = (1023),
+        CF_HDROP = (15),
+        CF_LOCALE = (16),
+        CF_OWNERDISPLAY = (128),
+        CF_PENDATA = (10),
+        CF_PRIVATEFIRST = (512),
+        CF_PRIVATELAST = (767),
+        CF_RIFF = (11),
+        CF_SYLK = (4),
+        CF_WAVE = (12),
+        CF_TIFF = (6),
+        EV_BREAK = (64),
+        EV_CTS = (8),
+        EV_DSR = (16),
+        EV_ERR = (128),
+        EV_EVENT1 = (2048),
+        EV_EVENT2 = (4096),
+        EV_PERR = (512),
+        EV_RING = (256),
+        EV_RLSD = (32),
+        EV_RX80FULL = (1024),
+        EV_RXCHAR = (1),
+        EV_RXFLAG = (2),
+        EV_TXEMPTY = (4),
+        MS_CTS_ON = (0x10),
+        MS_DSR_ON = (0x20),
+        MS_RING_ON = (0x40),
+        MS_RLSD_ON = (0x80),
+        MAX_COMPUTERNAME_LENGTH = (15),
+        ENABLE_LINE_INPUT = (2),
+        ENABLE_ECHO_INPUT = (4),
+        ENABLE_PROCESSED_INPUT = (1),
+        ENABLE_WINDOW_INPUT = (8),
+        ENABLE_MOUSE_INPUT = (16),
+        ENABLE_PROCESSED_OUTPUT = (1),
+        ENABLE_WRAP_AT_EOL_OUTPUT = (2),
+        CP_ACP = (0),
+        CP_MACCP = (2),
+        CP_OEMCP = (1),
+        CP_UTF8 = 65001,
+        DATE_USE_ALT_CALENDAR = (4),
+        DCX_WINDOW = (0x1),
+        DCX_CACHE = (0x2),
+        DCX_PARENTCLIP = (0x20),
+        DCX_CLIPSIBLINGS = (0x10),
+        DCX_CLIPCHILDREN = (0x8),
+        DCX_NORESETATTRS = (0x4),
+        DCX_LOCKWINDOWUPDATE = (0x400),
+        DCX_EXCLUDERGN = (0x40),
+        DCX_INTERSECTRGN = (0x80),
+        DCX_VALIDATE = (0x200000),
+        DRIVERVERSION = (0),
+        TECHNOLOGY = (2),
+        DT_PLOTTER = (0),
+        DT_RASDISPLAY = (1),
+        DT_RASPRINTER = (2),
+        DT_RASCAMERA = (3),
+        DT_CHARSTREAM = (4),
+        DT_METAFILE = (5),
+        DT_DISPFILE = (6),
+        HORZSIZE = (4),
+        VERTSIZE = (6),
+        HORZRES = (8),
+        VERTRES = (10),
+        LOGPIXELSX = (88),
+        LOGPIXELSY = (90),
+        BITSPIXEL = (12),
+        PLANES = (14),
+        NUMBRUSHES = (16),
+        NUMPENS = (18),
+        NUMFONTS = (22),
+        NUMCOLORS = (24),
+        ASPECTX = (40),
+        ASPECTY = (42),
+        ASPECTXY = (44),
+        PDEVICESIZE = (26),
+        CLIPCAPS = (36),
+        SIZEPALETTE = (104),
+        NUMRESERVED = (106),
+        COLORRES = (108),
+        VREFRESH = (116),
+        DESKTOPHORZRES = (118),
+        DESKTOPVERTRES = (117),
+        BLTALIGNMENT = (119),
+        RASTERCAPS = (38),
+        RC_BANDING = (2),
+        RC_BITBLT = (1),
+        RC_BITMAP64 = (8),
+        RC_DI_BITMAP = (128),
+        RC_DIBTODEV = (512),
+        RC_FLOODFILL = (4096),
+        RC_GDI20_OUTPUT = (16),
+        RC_PALETTE = (256),
+        RC_SCALING = (4),
+        RC_STRETCHBLT = (2048),
+        RC_STRETCHDIB = (8192),
+        CURVECAPS = (28),
+        CC_NONE = (0),
+        CC_CIRCLES = (1),
+        CC_PIE = (2),
+        CC_CHORD = (4),
+        CC_ELLIPSES = (8),
+        CC_WIDE = (16),
+        CC_STYLED = (32),
+        CC_WIDESTYLED = (64),
+        CC_INTERIORS = (128),
+        CC_ROUNDRECT = (256),
+        LINECAPS = (30),
+        LC_NONE = (0),
+        LC_POLYLINE = (2),
+        LC_MARKER = (4),
+        LC_POLYMARKER = (8),
+        LC_WIDE = (16),
+        LC_STYLED = (32),
+        LC_WIDESTYLED = (64),
+        LC_INTERIORS = (128),
+        POLYGONALCAPS = (32),
+        PC_NONE = (0),
+        PC_POLYGON = (1),
+        PC_RECTANGLE = (2),
+        PC_WINDPOLYGON = (4),
+        PC_SCANLINE = (8),
+        PC_WIDE = (16),
+        PC_STYLED = (32),
+        PC_WIDESTYLED = (64),
+        PC_INTERIORS = (128),
+        TEXTCAPS = (34),
+        TC_OP_CHARACTER = (1),
+        TC_OP_STROKE = (2),
+        TC_CP_STROKE = (4),
+        TC_CR_90 = (8),
+        TC_CR_ANY = (16),
+        TC_SF_X_YINDEP = (32),
+        TC_SA_DOUBLE = (64),
+        TC_SA_INTEGER = (128),
+        TC_SA_CONTIN = (256),
+        TC_EA_DOUBLE = (512),
+        TC_IA_ABLE = (1024),
+        TC_UA_ABLE = (2048),
+        TC_SO_ABLE = (4096),
+        TC_RA_ABLE = (8192),
+        TC_VA_ABLE = (16384),
+        TC_RESERVED = (32768),
+        TC_SCROLLBLT = (65536),
+        PC_PATHS = (512),
+        DRIVE_REMOVABLE = (2),
+        DRIVE_FIXED = (3),
+        DRIVE_REMOTE = (4),
+        DRIVE_CDROM = (5),
+        DRIVE_RAMDISK = (6),
+        DRIVE_UNKNOWN = (0),
+        DRIVE_NO_ROOT_DIR = (1),
+        EXCEPTION_ACCESS_VIOLATION = (0xc0000005),
+        EXCEPTION_BREAKPOINT = (0x80000003),
+        EXCEPTION_DATATYPE_MISALIGNMENT = (0x80000002),
+        EXCEPTION_SINGLE_STEP = (0x80000004),
+        EXCEPTION_ARRAY_BOUNDS_EXCEEDED = (0xc000008c),
+        EXCEPTION_FLT_DENORMAL_OPERAND = (0xc000008d),
+        EXCEPTION_FLT_DIVIDE_BY_ZERO = (0xc000008e),
+        EXCEPTION_FLT_INEXACT_RESULT = (0xc000008f),
+        EXCEPTION_FLT_INVALID_OPERATION = (0xc0000090),
+        EXCEPTION_FLT_OVERFLOW = (0xc0000091),
+        EXCEPTION_FLT_STACK_CHECK = (0xc0000092),
+        EXCEPTION_FLT_UNDERFLOW = (0xc0000093),
+        EXCEPTION_INT_DIVIDE_BY_ZERO = (0xc0000094),
+        EXCEPTION_INT_OVERFLOW = (0xc0000095),
+        EXCEPTION_INVALID_HANDLE = (0xc0000008),
+        EXCEPTION_PRIV_INSTRUCTION = (0xc0000096),
+        EXCEPTION_NONCONTINUABLE_EXCEPTION = (0xc0000025),
+        EXCEPTION_NONCONTINUABLE = (0x1),
+        EXCEPTION_STACK_OVERFLOW = (0xc00000fd),
+        EXCEPTION_INVALID_DISPOSITION = (0xc0000026),
+        FILE_TYPE_UNKNOWN = (0),
+        FILE_TYPE_DISK = (1),
+        FILE_TYPE_CHAR = (2),
+        FILE_TYPE_PIPE = (3),
+        GGO_BITMAP = (1),
+        GGO_NATIVE = (2),
+        GGO_METRICS = (0),
+        GGO_GRAY2_BITMAP = (4),
+        GGO_GRAY4_BITMAP = (5),
+        GGO_GRAY8_BITMAP = (6),
+        GDI_ERROR = (0xffffffff),
+        GM_COMPATIBLE = (1),
+        GM_ADVANCED = (2),
+        HANDLE_FLAG_INHERIT = (1),
+        HANDLE_FLAG_PROTECT_FROM_CLOSE = (2),
+    }
+    char* RT_ACCELERATOR = cast(char*) ((9));
+    char* RT_BITMAP = cast(char*) ((2));
+    char* RT_DIALOG = cast(char*) ((5));
+    char* RT_FONT = cast(char*) ((8));
+    char* RT_FONTDIR = cast(char*) ((7));
+    char* RT_MENU = cast(char*) ((4));
+    char* RT_RCDATA = cast(char*) ((10));
+    char* RT_STRING = cast(char*) ((6));
+    char* RT_MESSAGETABLE = cast(char*) ((11));
+    char* RT_CURSOR = cast(char*) ((1));
+    char* RT_GROUP_CURSOR = cast(char*) ((12));
+    char* RT_ICON = cast(char*) ((3));
+    char* RT_GROUP_ICON = cast(char*) ((13));
+    char* RT_VERSION = cast(char*) ((16));
+    char* IDC_ARROW = cast(char*) ((32512));
+    char* IDC_IBEAM = cast(char*) ((32513));
+    char* IDC_WAIT = cast(char*) ((32514));
+    char* IDC_CROSS = cast(char*) ((32515));
+    char* IDC_UPARROW = cast(char*) ((32516));
+    char* IDC_SIZENWSE = cast(char*) ((32642));
+    char* IDC_SIZENESW = cast(char*) ((32643));
+    char* IDC_SIZEWE = cast(char*) ((32644));
+    char* IDC_SIZENS = cast(char*) ((32645));
+    char* IDC_SIZEALL = cast(char*) ((32646));
+    char* IDC_NO = cast(char*) ((32648));
+    char* IDC_APPSTARTING = cast(char*) ((32650));
+    char* IDC_HELP = cast(char*) ((32651));
+    char* IDI_APPLICATION = cast(char*) ((32512));
+    char* IDI_HAND = cast(char*) ((32513));
+    char* IDI_QUESTION = cast(char*) ((32514));
+    char* IDI_EXCLAMATION = cast(char*) ((32515));
+    char* IDI_ASTERISK = cast(char*) ((32516));
+    char* IDI_WINLOGO = cast(char*) ((32517));
+    char* IDC_SIZE = cast(char*) ((32640));
+    char* IDC_ICON = cast(char*) ((32641));
+    enum : DWORD {
+        MM_ANISOTROPIC = (8),
+        MM_HIENGLISH = (5),
+        MM_HIMETRIC = (3),
+        MM_ISOTROPIC = (7),
+        MM_LOENGLISH = (4),
+        MM_LOMETRIC = (2),
+        MM_TEXT = (1),
+        MM_TWIPS = (6),
+        GMDI_GOINTOPOPUPS = (0x2),
+        GMDI_USEDISABLED = (0x1),
+        PM_NOREMOVE = (0),
+        PM_REMOVE = (1),
+        PM_NOYIELD = (2),
+        PIPE_CLIENT_END = (0),
+        PIPE_SERVER_END = (1),
+        GW_HWNDNEXT = (2),
+        GW_HWNDPREV = (3),
+        GW_CHILD = (5),
+        GW_HWNDFIRST = (0),
+        GW_HWNDLAST = (1),
+        GW_OWNER = (4),
+        PT_MOVETO = (6),
+        PT_LINETO = (2),
+        PT_BEZIERTO = (4),
+        PT_CLOSEFIGURE = (1),
+        SHUTDOWN_NORETRY = (1),
+        QS_ALLEVENTS = (191),
+        QS_ALLINPUT = (255),
+        QS_HOTKEY = (128),
+        QS_INPUT = (7),
+        QS_KEY = (1),
+        QS_MOUSE = (6),
+        QS_MOUSEBUTTON = (4),
+        QS_MOUSEMOVE = (2),
+        QS_PAINT = (32),
+        QS_POSTMESSAGE = (8),
+        QS_SENDMESSAGE = (64),
+        QS_TIMER = (16),
+        SIF_ALL = (23),
+        SIF_PAGE = (2),
+        SIF_POS = (4),
+        SIF_RANGE = (1),
+        SIF_DISABLENOSCROLL = (8),
+        STD_INPUT_HANDLE = -(10),
+        STD_OUTPUT_HANDLE = -(11),
+        STD_ERROR_HANDLE = -(12),
+        BLACK_BRUSH = (4),
+        DKGRAY_BRUSH = (3),
+        GRAY_BRUSH = (2),
+        HOLLOW_BRUSH = (5),
+        LTGRAY_BRUSH = (1),
+        NULL_BRUSH = (5),
+        WHITE_BRUSH = (0),
+        BLACK_PEN = (7),
+        NULL_PEN = (8),
+        WHITE_PEN = (6),
+        ANSI_FIXED_FONT = (11),
+        ANSI_VAR_FONT = (12),
+        DEVICE_DEFAULT_FONT = (14),
+        DEFAULT_GUI_FONT = (17),
+        OEM_FIXED_FONT = (10),
+        SYSTEM_FONT = (13),
+        SYSTEM_FIXED_FONT = (16),
+        DEFAULT_PALETTE = (15),
+        CT_CTYPE1 = (1),
+        CT_CTYPE2 = (2),
+        CT_CTYPE3 = (4),
+        C1_UPPER = (1),
+        C1_LOWER = (2),
+        C1_DIGIT = (4),
+        C1_SPACE = (8),
+        C1_PUNCT = (16),
+        C1_CNTRL = (32),
+        C1_BLANK = (64),
+        C1_XDIGIT = (128),
+        C1_ALPHA = (256),
+        C2_LEFTTORIGHT = (1),
+        C2_RIGHTTOLEFT = (2),
+        C2_EUROPENUMBER = (3),
+        C2_EUROPESEPARATOR = (4),
+        C2_EUROPETERMINATOR = (5),
+        C2_ARABICNUMBER = (6),
+        C2_COMMONSEPARATOR = (7),
+        C2_BLOCKSEPARATOR = (8),
+        C2_SEGMENTSEPARATOR = (9),
+        C2_WHITESPACE = (10),
+        C2_OTHERNEUTRAL = (11),
+        C2_NOTAPPLICABLE = (0),
+        C3_NONSPACING = (1),
+        C3_DIACRITIC = (2),
+        C3_VOWELMARK = (4),
+        C3_SYMBOL = (8),
+        C3_KATAKANA = (16),
+        C3_HIRAGANA = (32),
+        C3_HALFWIDTH = (64),
+        C3_FULLWIDTH = (128),
+        C3_IDEOGRAPH = (256),
+        C3_KASHIDA = (512),
+        C3_ALPHA = (32768),
+        C3_NOTAPPLICABLE = (0),
+        COLOR_3DDKSHADOW = (21),
+        COLOR_3DFACE = (15),
+        COLOR_3DHILIGHT = (20),
+        COLOR_3DLIGHT = (22),
+        COLOR_BTNHILIGHT = (20),
+        COLOR_3DSHADOW = (16),
+        COLOR_ACTIVEBORDER = (10),
+        COLOR_ACTIVECAPTION = (2),
+        COLOR_APPWORKSPACE = (12),
+        COLOR_BACKGROUND = (1),
+        COLOR_DESKTOP = (1),
+        COLOR_BTNFACE = (15),
+        COLOR_BTNHIGHLIGHT = (20),
+        COLOR_BTNSHADOW = (16),
+        COLOR_BTNTEXT = (18),
+        COLOR_CAPTIONTEXT = (9),
+        COLOR_GRAYTEXT = (17),
+        COLOR_HIGHLIGHT = (13),
+        COLOR_HIGHLIGHTTEXT = (14),
+        COLOR_INACTIVEBORDER = (11),
+        COLOR_INACTIVECAPTION = (3),
+        COLOR_INACTIVECAPTIONTEXT = (19),
+        COLOR_INFOBK = (24),
+        COLOR_INFOTEXT = (23),
+        COLOR_MENU = (4),
+        COLOR_MENUTEXT = (7),
+        COLOR_SCROLLBAR = (0),
+        COLOR_WINDOW = (5),
+        COLOR_WINDOWFRAME = (6),
+        COLOR_WINDOWTEXT = (8),
+        SM_CYMIN = (29),
+        SM_CXMIN = (28),
+        SM_ARRANGE = (56),
+        SM_CLEANBOOT = (67),
+        SM_CMETRICS = (76),
+        SM_CMOUSEBUTTONS = (43),
+        SM_CXBORDER = (5),
+        SM_CYBORDER = (6),
+        SM_CXCURSOR = (13),
+        SM_CYCURSOR = (14),
+        SM_CXDLGFRAME = (7),
+        SM_CYDLGFRAME = (8),
+        SM_CXDOUBLECLK = (36),
+        SM_CYDOUBLECLK = (37),
+        SM_CXDRAG = (68),
+        SM_CYDRAG = (69),
+        SM_CXEDGE = (45),
+        SM_CYEDGE = (46),
+        SM_CXFIXEDFRAME = (7),
+        SM_CYFIXEDFRAME = (8),
+        SM_CXFRAME = (32),
+        SM_CYFRAME = (33),
+        SM_CXFULLSCREEN = (16),
+        SM_CYFULLSCREEN = (17),
+        SM_CXHSCROLL = (21),
+        SM_CYHSCROLL = (3),
+        SM_CXHTHUMB = (10),
+        SM_CXICON = (11),
+        SM_CYICON = (12),
+        SM_CXICONSPACING = (38),
+        SM_CYICONSPACING = (39),
+        SM_CXMAXIMIZED = (61),
+        SM_CYMAXIMIZED = (62),
+        SM_CXMAXTRACK = (59),
+        SM_CYMAXTRACK = (60),
+        SM_CXMENUCHECK = (71),
+        SM_CYMENUCHECK = (72),
+        SM_CXMENUSIZE = (54),
+        SM_CYMENUSIZE = (55),
+        SM_CXMINIMIZED = (57),
+        SM_CYMINIMIZED = (58),
+        SM_CXMINSPACING = (47),
+        SM_CYMINSPACING = (48),
+        SM_CXMINTRACK = (34),
+        SM_CYMINTRACK = (35),
+        SM_CXSCREEN = (0),
+        SM_CYSCREEN = (1),
+        SM_CXSIZE = (30),
+        SM_CYSIZE = (31),
+        SM_CXSIZEFRAME = (32),
+        SM_CYSIZEFRAME = (33),
+        SM_CXSMICON = (49),
+        SM_CYSMICON = (50),
+        SM_CXSMSIZE = (52),
+        SM_CYSMSIZE = (53),
+        SM_CXVSCROLL = (2),
+        SM_CYVSCROLL = (20),
+        SM_CYVTHUMB = (9),
+        SM_CYCAPTION = (4),
+        SM_CYKANJIWINDOW = (18),
+        SM_CYMENU = (15),
+        SM_CYSMCAPTION = (51),
+        SM_DBCSENABLED = (42),
+        SM_DEBUG = (22),
+        SM_MENUDROPALIGNMENT = (40),
+        SM_MIDEASTENABLED = (74),
+        SM_MOUSEPRESENT = (19),
+        SM_MOUSEWHEELPRESENT = (75),
+        SM_NETWORK = (63),
+        SM_PENWINDOWS = (41),
+        SM_SECURE = (44),
+        SM_SHOWSOUNDS = (70),
+        SM_SLOWMACHINE = (73),
+        SM_SWAPBUTTON = (23),
+        ARW_BOTTOMLEFT = (0),
+        ARW_BOTTOMRIGHT = (0x1),
+        ARW_HIDE = (0x8),
+        ARW_TOPLEFT = (0x2),
+        ARW_TOPRIGHT = (0x3),
+        ARW_DOWN = (0x4),
+        ARW_LEFT = (0),
+        ARW_RIGHT = (0),
+        ARW_UP = (0x4),
+        SYSPAL_NOSTATIC = (2),
+        SYSPAL_STATIC = (1),
+        SYSPAL_ERROR = (0),
+        GET_TAPE_MEDIA_INFORMATION = (0),
+        GET_TAPE_DRIVE_INFORMATION = (1),
+        SET_TAPE_MEDIA_INFORMATION = (0),
+        SET_TAPE_DRIVE_INFORMATION = (1),
+        TAPE_ABSOLUTE_POSITION = (0),
+        TAPE_LOGICAL_POSITION = (0x1),
+        TA_BASELINE = (24),
+        TA_BOTTOM = (8),
+        TA_TOP = (0),
+        TA_CENTER = (6),
+        TA_LEFT = (0),
+        TA_RIGHT = (2),
+        TA_RTLREADING = (256),
+        TA_NOUPDATECP = (0),
+        TA_UPDATECP = (1),
+        VTA_BASELINE = (24),
+        VTA_CENTER = (6),
+        THREAD_PRIORITY_ABOVE_NORMAL = (1),
+        THREAD_PRIORITY_BELOW_NORMAL = -((1)),
+        THREAD_PRIORITY_HIGHEST = (2),
+        THREAD_PRIORITY_IDLE = -((15)),
+        THREAD_PRIORITY_LOWEST = -((2)),
+        THREAD_PRIORITY_NORMAL = (0),
+        THREAD_PRIORITY_TIME_CRITICAL = (15),
+        THREAD_PRIORITY_ERROR_RETURN = (2147483647),
+        TLS_MINIMUM_AVAILABLE = (64),
+        TIME_NOMINUTESORSECONDS = (1),
+        TIME_NOSECONDS = (2),
+        TIME_NOTIMEMARKER = (4),
+        TIME_FORCE24HOURFORMAT = (8),
+        TIME_ZONE_ID_INVALID = -(1),
+        TIME_ZONE_ID_UNKNOWN = (0),
+        TIME_ZONE_ID_STANDARD = (1),
+        TIME_ZONE_ID_DAYLIGHT = (2),
+        UOI_FLAGS = (1),
+        UOI_NAME = (2),
+        UOI_TYPE = (3),
+        FS_CASE_IS_PRESERVED = (2),
+        FS_CASE_SENSITIVE = (1),
+        FS_UNICODE_STORED_ON_DISK = (4),
+        FS_PERSISTENT_ACLS = (8),
+        FS_FILE_COMPRESSION = (16),
+        FS_VOL_IS_COMPRESSED = (32768),
+        GWL_EXSTYLE = -((20)),
+        GWL_STYLE = -((16)),
+        GWL_WNDPROC = -((4)),
+        GWL_HINSTANCE = -((6)),
+        GWL_HWNDPARENT = -((8)),
+        GWL_ID = -((12)),
+        GWL_USERDATA = -((21)),
+        DWL_DLGPROC = (4),
+        DWL_MSGRESULT = (0),
+        DWL_USER = (8),
+        GMEM_FIXED = (0),
+        GMEM_MOVEABLE = (2),
+        GPTR = (64),
+        GHND = (66),
+        GMEM_DDESHARE = (8192),
+        GMEM_DISCARDABLE = (256),
+        GMEM_LOWER = (4096),
+        GMEM_NOCOMPACT = (16),
+        GMEM_NODISCARD = (32),
+        GMEM_NOT_BANKED = (4096),
+        GMEM_NOTIFY = (16384),
+        GMEM_SHARE = (8192),
+        GMEM_ZEROINIT = (64),
+        GMEM_DISCARDED = (16384),
+        GMEM_INVALID_HANDLE = (32768),
+        GMEM_LOCKCOUNT = (255),
+        HEAP_GENERATE_EXCEPTIONS = (4),
+        HEAP_NO_SERIALIZE = (1),
+        HEAP_ZERO_MEMORY = (8),
+        STATUS_NO_MEMORY = (0xc0000017),
+        STATUS_ACCESS_VIOLATION = (0xc0000005),
+        HEAP_REALLOC_IN_PLACE_ONLY = (16),
+        ILC_COLOR = (0),
+        ILC_COLOR4 = (4),
+        ILC_COLOR8 = (8),
+        ILC_COLOR16 = (16),
+        ILC_COLOR24 = (24),
+        ILC_COLOR32 = (32),
+        ILC_COLORDDB = (254),
+        ILC_MASK = (1),
+        ILC_PALETTE = (2048),
+        ILD_BLEND25 = (2),
+        ILD_BLEND50 = (4),
+        ILD_SELECTED = (4),
+        ILD_BLEND = (4),
+        ILD_FOCUS = (2),
+        ILD_MASK = (16),
+        ILD_NORMAL = (0),
+        ILD_TRANSPARENT = (1),
+        CLR_NONE = (0xffffffff),
+        CLR_DEFAULT = (0xff000000),
+        CLR_INVALID = (0xFFFFFFFF),
+        LR_LOADFROMFILE = (16),
+        LR_LOADMAP3DCOLORS = (4096),
+        LR_LOADTRANSPARENT = (32),
+        IME_CONFIG_GENERAL = (1),
+        IME_CONFIG_REGISTERWORD = (2),
+        IME_CONFIG_SELECTDICTIONARY = (3),
+        GCL_CONVERSION = (1),
+        GCL_REVERSECONVERSION = (2),
+        GCL_REVERSE_LENGTH = (3),
+        GGL_LEVEL = (1),
+        GGL_INDEX = (2),
+        GGL_STRING = (3),
+        GGL_PRIVATE = (4),
+        GL_LEVEL_ERROR = (2),
+        GL_LEVEL_FATAL = (1),
+        GL_LEVEL_INFORMATION = (4),
+        GL_LEVEL_NOGUIDELINE = (0),
+        GL_LEVEL_WARNING = (3),
+        GL_ID_CANNOTSAVE = (17),
+        GL_ID_NOCONVERT = (32),
+        GL_ID_NODICTIONARY = (16),
+        GL_ID_NOMODULE = (1),
+        GL_ID_READINGCONFLICT = (35),
+        GL_ID_TOOMANYSTROKE = (34),
+        GL_ID_TYPINGERROR = (33),
+        GL_ID_UNKNOWN = (0),
+        GL_ID_INPUTREADING = (36),
+        GL_ID_INPUTRADICAL = (37),
+        GL_ID_INPUTCODE = (38),
+        GL_ID_CHOOSECANDIDATE = (40),
+        GL_ID_REVERSECONVERSION = (41),
+        IGP_PROPERTY = (4),
+        IGP_CONVERSION = (8),
+        IGP_SENTENCE = (12),
+        IGP_UI = (16),
+        IGP_SETCOMPSTR = (20),
+        IGP_SELECT = (24),
+        IME_PROP_AT_CARET = (65536),
+        IME_PROP_SPECIAL_UI = (131072),
+        IME_PROP_CANDLIST_START_FROM_1 = (262144),
+        IME_PROP_UNICODE = (524288),
+        UI_CAP_2700 = (1),
+        UI_CAP_ROT90 = (2),
+        UI_CAP_ROTANY = (4),
+        SCS_CAP_COMPSTR = (1),
+        SCS_CAP_MAKEREAD = (2),
+        SELECT_CAP_CONVERSION = (1),
+        SELECT_CAP_SENTENCE = (2),
+        NI_CHANGECANDIDATELIST = (19),
+        NI_CLOSECANDIDATE = (17),
+        NI_COMPOSITIONSTR = (21),
+        NI_OPENCANDIDATE = (16),
+        NI_SELECTCANDIDATESTR = (18),
+        NI_SETCANDIDATE_PAGESIZE = (23),
+        NI_SETCANDIDATE_PAGESTART = (22),
+        CPS_CANCEL = (4),
+        CPS_COMPLETE = (1),
+        CPS_CONVERT = (2),
+        CPS_REVERT = (3),
+        SCS_SETSTR = (9),
+        SCS_CHANGEATTR = (18),
+        SCS_CHANGECLAUSE = (36),
+        IME_REGWORD_STYLE_EUDC = (1),
+        IME_REGWORD_STYLE_USER_FIRST = (0x80000000),
+        IME_REGWORD_STYLE_USER_LAST = -((1)),
+        SECURITY_DESCRIPTOR_REVISION = (1),
+        IS_TEXT_UNICODE_ASCII16 = (1),
+        IS_TEXT_UNICODE_REVERSE_ASCII16 = (16),
+        IS_TEXT_UNICODE_STATISTICS = (2),
+        IS_TEXT_UNICODE_REVERSE_STATISTICS = (32),
+        IS_TEXT_UNICODE_CONTROLS = (4),
+        IS_TEXT_UNICODE_REVERSE_CONTROLS = (64),
+        IS_TEXT_UNICODE_SIGNATURE = (8),
+        IS_TEXT_UNICODE_REVERSE_SIGNATURE = (128),
+        IS_TEXT_UNICODE_ILLEGAL_CHARS = (256),
+        IS_TEXT_UNICODE_ODD_LENGTH = (512),
+        IS_TEXT_UNICODE_NULL_BYTES = (4096),
+        IS_TEXT_UNICODE_UNICODE_MASK = (15),
+        IS_TEXT_UNICODE_REVERSE_MASK = (240),
+        IS_TEXT_UNICODE_NOT_UNICODE_MASK = (3840),
+        IS_TEXT_UNICODE_NOT_ASCII_MASK = (61440),
+        HC_GETNEXT = (1),
+        HC_SKIP = (2),
+        HC_SYSMODALOFF = (5),
+        HC_SYSMODALON = (4),
+        HC_NOREMOVE = (3),
+        KEYEVENTF_EXTENDEDKEY = (1),
+        KEYEVENTF_KEYUP = (2),
+        OBM_BTNCORNERS = (32758),
+        OBM_BTSIZE = (32761),
+        OBM_CHECK = (32760),
+        OBM_CHECKBOXES = (32759),
+        OBM_CLOSE = (32754),
+        OBM_COMBO = (32738),
+        OBM_DNARROW = (32752),
+        OBM_DNARROWD = (32742),
+        OBM_DNARROWI = (32736),
+        OBM_LFARROW = (32750),
+        OBM_LFARROWI = (32734),
+        OBM_LFARROWD = (32740),
+        OBM_MNARROW = (32739),
+        OBM_OLD_CLOSE = (32767),
+        OBM_OLD_DNARROW = (32764),
+        OBM_OLD_LFARROW = (32762),
+        OBM_OLD_REDUCE = (32757),
+        OBM_OLD_RESTORE = (32755),
+        OBM_OLD_RGARROW = (32763),
+        OBM_OLD_UPARROW = (32765),
+        OBM_OLD_ZOOM = (32756),
+        OBM_REDUCE = (32749),
+        OBM_REDUCED = (32746),
+        OBM_RESTORE = (32747),
+        OBM_RESTORED = (32744),
+        OBM_RGARROW = (32751),
+        OBM_RGARROWD = (32741),
+        OBM_RGARROWI = (32735),
+        OBM_SIZE = (32766),
+        OBM_UPARROW = (32753),
+        OBM_UPARROWD = (32743),
+        OBM_UPARROWI = (32737),
+        OBM_ZOOM = (32748),
+        OBM_ZOOMD = (32745),
+        DONT_RESOLVE_DLL_REFERENCES = (1),
+        LOAD_LIBRARY_AS_DATAFILE = (2),
+        LOAD_WITH_ALTERED_SEARCH_PATH = (8),
+        LPTR = (64),
+        LHND = (66),
+        NONZEROLHND = (2),
+        NONZEROLPTR = (0),
+        LMEM_NONZEROLHND = (2),
+        LMEM_NONZEROLPTR = (0),
+        LMEM_FIXED = (0),
+        LMEM_MOVEABLE = (2),
+        LMEM_NOCOMPACT = (16),
+        LMEM_NODISCARD = (32),
+        LMEM_ZEROINIT = (64),
+        LMEM_MODIFY = (128),
+        LMEM_LOCKCOUNT = (255),
+        LMEM_DISCARDABLE = (3840),
+        LMEM_DISCARDED = (16384),
+        LMEM_INVALID_HANDLE = (32768),
+        LOCKFILE_FAIL_IMMEDIATELY = (1),
+        LOCKFILE_EXCLUSIVE_LOCK = (2),
+        MB_USERICON = (0x80),
+        MB_ICONASTERISK = (0x40),
+        MB_ICONEXCLAMATION = (0x30),
+        MB_ICONWARNING = (0x30),
+        MB_ICONERROR = (0x10),
+        MB_ICONHAND = (0x10),
+        MB_ICONQUESTION = (0x20),
+        MB_OK = (0),
+        MB_ABORTRETRYIGNORE = (0x2),
+        MB_APPLMODAL = (0),
+        MB_DEFAULT_DESKTOP_ONLY = (0x20000),
+        MB_HELP = (0x4000),
+        MB_RIGHT = (0x80000),
+        MB_RTLREADING = (0x100000),
+        MB_TOPMOST = (0x40000),
+        MB_DEFBUTTON1 = (0),
+        MB_DEFBUTTON2 = (0x100),
+        MB_DEFBUTTON3 = (0x200),
+        MB_DEFBUTTON4 = (0x300),
+        MB_ICONINFORMATION = (0x40),
+        MB_ICONSTOP = (0x10),
+        MB_OKCANCEL = (0x1),
+        MB_RETRYCANCEL = (0x5),
+        MB_SERVICE_NOTIFICATION = (0x40000),
+        MB_SETFOREGROUND = (0x10000),
+        MB_SYSTEMMODAL = (0x1000),
+        MB_TASKMODAL = (0x2000),
+        MB_YESNO = (0x4),
+        MB_YESNOCANCEL = (0x3),
+        IDABORT = (3),
+        IDCANCEL = (2),
+        IDCLOSE = (8),
+        IDHELP = (9),
+        IDIGNORE = (5),
+        IDNO = (7),
+        IDOK = (1),
+        IDRETRY = (4),
+        IDYES = (6),
+        MSGF_DIALOGBOX = (0),
+        MSGF_MENU = (2),
+        MSGF_NEXTWINDOW = (6),
+        MSGF_SCROLLBAR = (5),
+        MSGF_MAINLOOP = (8),
+        MSGF_USER = (4096),
+        MWT_IDENTITY = (1),
+        MWT_LEFTMULTIPLY = (2),
+        MWT_RIGHTMULTIPLY = (3),
+        MOUSEEVENTF_ABSOLUTE = (32768),
+        MOUSEEVENTF_MOVE = (1),
+        MOUSEEVENTF_LEFTDOWN = (2),
+        MOUSEEVENTF_LEFTUP = (4),
+        MOUSEEVENTF_RIGHTDOWN = (8),
+        MOUSEEVENTF_RIGHTUP = (16),
+        MOUSEEVENTF_MIDDLEDOWN = (32),
+        MOUSEEVENTF_MIDDLEUP = (64),
+        MOVEFILE_REPLACE_EXISTING = (1),
+        MOVEFILE_COPY_ALLOWED = (2),
+        MOVEFILE_DELAY_UNTIL_REBOOT = (4),
+        MOVEFILE_WRITE_THROUGH = (8),
+        WAIT_OBJECT_0 = (0),
+        WAIT_ABANDONED_0 = (0x80),
+        WAIT_TIMEOUT = (0x102),
+        WAIT_IO_COMPLETION = (0xc0),
+        WAIT_ABANDONED = (0x80),
+        WAIT_FAILED = (0xffffffff),
+        MAXIMUM_WAIT_OBJECTS = (0x40),
+        MAXIMUM_SUSPEND_COUNT = (0x7f),
+        MB_PRECOMPOSED = (1),
+        MB_COMPOSITE = (2),
+        MB_ERR_INVALID_CHARS = (8),
+        MB_USEGLYPHCHARS = (4),
+        TOKEN_ADJUST_DEFAULT = (128),
+        TOKEN_ADJUST_GROUPS = (64),
+        TOKEN_ADJUST_PRIVILEGES = (32),
+        TOKEN_ALL_ACCESS = (0xf00ff),
+        TOKEN_ASSIGN_PRIMARY = (1),
+        TOKEN_DUPLICATE = (2),
+        TOKEN_EXECUTE = (0x20000),
+        TOKEN_IMPERSONATE = (4),
+        TOKEN_QUERY = (8),
+        TOKEN_QUERY_SOURCE = (16),
+        TOKEN_READ = (0x20008),
+        TOKEN_WRITE = (0x200e0),
+        SC_MANAGER_ALL_ACCESS = (0xf003f),
+        SC_MANAGER_CONNECT = (1),
+        SC_MANAGER_CREATE_SERVICE = (2),
+        SC_MANAGER_ENUMERATE_SERVICE = (4),
+        SC_MANAGER_LOCK = (8),
+        SC_MANAGER_QUERY_LOCK_STATUS = (16),
+        SC_MANAGER_MODIFY_BOOT_CONFIG = (32),
+        TAPE_FORMAT = (0x5),
+        TAPE_LOAD = (0),
+        TAPE_LOCK = (0x3),
+        TAPE_TENSION = (0x2),
+        TAPE_UNLOAD = (0x1),
+        TAPE_UNLOCK = (0x4),
+        IS_PSREBOOTSYSTEM = (3),
+        IS_PSRESTARTWINDOWS = (2),
+        PSPCB_CREATE = (2),
+        PSPCB_RELEASE = (1),
+        PURGE_TXABORT = (1),
+        PURGE_RXABORT = (2),
+        PURGE_TXCLEAR = (4),
+        PURGE_RXCLEAR = (8),
+        OWNER_SECURITY_INFORMATION = (0x1),
+        GROUP_SECURITY_INFORMATION = (0x2),
+        DACL_SECURITY_INFORMATION = (0x4),
+        SACL_SECURITY_INFORMATION = (0x8),
+        EVENTLOG_FORWARDS_READ = (4),
+        EVENTLOG_BACKWARDS_READ = (8),
+        EVENTLOG_SEEK_READ = (2),
+        EVENTLOG_SEQUENTIAL_READ = (1),
+        EVENTLOG_ERROR_TYPE = (1),
+        EVENTLOG_WARNING_TYPE = (2),
+        EVENTLOG_INFORMATION_TYPE = (4),
+        EVENTLOG_AUDIT_SUCCESS = (8),
+        EVENTLOG_AUDIT_FAILURE = (16),
+        RDW_ERASE = (4),
+        RDW_FRAME = (1024),
+        RDW_INTERNALPAINT = (2),
+        RDW_INVALIDATE = (1),
+        RDW_NOERASE = (32),
+        RDW_NOFRAME = (2048),
+        RDW_NOINTERNALPAINT = (16),
+        RDW_VALIDATE = (8),
+        RDW_ERASENOW = (512),
+        RDW_UPDATENOW = (256),
+        RDW_ALLCHILDREN = (128),
+        RDW_NOCHILDREN = (64),
+    /*
+        //
+        HKEY_CLASSES_ROOT = (0x80000000),
+        HKEY_CURRENT_USER = (0x80000001),
+        HKEY_LOCAL_MACHINE = (0x80000002),
+        HKEY_USERS = (0x80000003),
+        HKEY_PERFORMANCE_DATA = (0x80000004),
+        HKEY_CURRENT_CONFIG = (0x80000005),
+        HKEY_DYN_DATA = (0x80000006),
+    */
+        REG_OPTION_VOLATILE = (0x1),
+        REG_OPTION_NON_VOLATILE = (0),
+        REG_CREATED_NEW_KEY = (0x1),
+        REG_OPENED_EXISTING_KEY = (0x2),
+        REG_BINARY = (3),
+        REG_DWORD = (4),
+        REG_DWORD_LITTLE_ENDIAN = (4),
+        REG_DWORD_BIG_ENDIAN = (5),
+        REG_EXPAND_SZ = (2),
+        REG_FULL_RESOURCE_DESCRIPTOR = (9),
+        REG_LINK = (6),
+        REG_MULTI_SZ = (7),
+        REG_NONE = (0),
+        REG_RESOURCE_LIST = (8),
+        REG_RESOURCE_REQUIREMENTS_LIST = (10),
+        REG_SZ = (1),
+        MOD_ALT = (1),
+        MOD_CONTROL = (2),
+        MOD_SHIFT = (4),
+        MOD_WIN = (8),
+        IDHOT_SNAPDESKTOP = -((2)),
+        IDHOT_SNAPWINDOW = -((1)),
+        REG_NOTIFY_CHANGE_NAME = (0x1),
+        REG_NOTIFY_CHANGE_ATTRIBUTES = (0x2),
+        REG_NOTIFY_CHANGE_LAST_SET = (0x4),
+        REG_NOTIFY_CHANGE_SECURITY = (0x8),
+        SW_ERASE = (4),
+        SW_INVALIDATE = (2),
+        SW_SCROLLCHILDREN = (1),
+        SMTO_ABORTIFHUNG = (2),
+        SMTO_BLOCK = (1),
+        SMTO_NORMAL = (0),
+        OPAQUE = (2),
+        TRANSPARENT = (1),
+        SLE_ERROR = (1),
+        SLE_MINORERROR = (2),
+        SLE_WARNING = (3),
+        SEM_FAILCRITICALERRORS = (1),
+        SEM_NOALIGNMENTFAULTEXCEPT = (4),
+        SEM_NOGPFAULTERRORBOX = (2),
+        SEM_NOOPENFILEERRORBOX = (32768),
+        ICM_ON = (2),
+        ICM_OFF = (1),
+        ICM_QUERY = (3),
+        LOCALE_ILANGUAGE = (1),
+        LOCALE_SLANGUAGE = (2),
+        LOCALE_SENGLANGUAGE = (4097),
+        LOCALE_SABBREVLANGNAME = (3),
+        LOCALE_SNATIVELANGNAME = (4),
+        LOCALE_ICOUNTRY = (5),
+        LOCALE_SCOUNTRY = (6),
+        LOCALE_SENGCOUNTRY = (4098),
+        LOCALE_SABBREVCTRYNAME = (7),
+        LOCALE_SNATIVECTRYNAME = (8),
+        LOCALE_IDEFAULTLANGUAGE = (9),
+        LOCALE_IDEFAULTCOUNTRY = (10),
+        LOCALE_IDEFAULTANSICODEPAGE = (4100),
+        LOCALE_IDEFAULTCODEPAGE = (11),
+        LOCALE_SLIST = (12),
+        LOCALE_IMEASURE = (13),
+        LOCALE_SDECIMAL = (14),
+        LOCALE_STHOUSAND = (15),
+        LOCALE_SGROUPING = (16),
+        LOCALE_IDIGITS = (17),
+        LOCALE_ILZERO = (18),
+        LOCALE_INEGNUMBER = (4112),
+        LOCALE_SCURRENCY = (20),
+        LOCALE_SMONDECIMALSEP = (22),
+        LOCALE_SMONTHOUSANDSEP = (23),
+        LOCALE_SMONGROUPING = (24),
+        LOCALE_ICURRDIGITS = (25),
+        LOCALE_ICURRENCY = (27),
+        LOCALE_INEGCURR = (28),
+        LOCALE_SDATE = (29),
+        LOCALE_STIME = (30),
+        LOCALE_STIMEFORMAT = (4099),
+        LOCALE_SSHORTDATE = (31),
+        LOCALE_SLONGDATE = (32),
+        LOCALE_IDATE = (33),
+        LOCALE_ILDATE = (34),
+        LOCALE_ITIME = (35),
+        LOCALE_ITLZERO = (37),
+        LOCALE_IDAYLZERO = (38),
+        LOCALE_IMONLZERO = (39),
+        LOCALE_S1159 = (40),
+        LOCALE_S2359 = (41),
+        LOCALE_ICALENDARTYPE = (4105),
+        LOCALE_IOPTIONALCALENDAR = (4107),
+        LOCALE_IFIRSTDAYOFWEEK = (4108),
+        LOCALE_IFIRSTWEEKOFYEAR = (4109),
+        LOCALE_SDAYNAME1 = (42),
+        LOCALE_SDAYNAME2 = (43),
+        LOCALE_SDAYNAME3 = (44),
+        LOCALE_SDAYNAME4 = (45),
+        LOCALE_SDAYNAME5 = (46),
+        LOCALE_SDAYNAME6 = (47),
+        LOCALE_SDAYNAME7 = (48),
+        LOCALE_SABBREVDAYNAME1 = (49),
+        LOCALE_SABBREVDAYNAME2 = (50),
+        LOCALE_SABBREVDAYNAME3 = (51),
+        LOCALE_SABBREVDAYNAME4 = (52),
+        LOCALE_SABBREVDAYNAME5 = (53),
+        LOCALE_SABBREVDAYNAME6 = (54),
+        LOCALE_SABBREVDAYNAME7 = (55),
+        LOCALE_SMONTHNAME1 = (56),
+        LOCALE_SMONTHNAME2 = (57),
+        LOCALE_SMONTHNAME3 = (58),
+        LOCALE_SMONTHNAME4 = (59),
+        LOCALE_SMONTHNAME5 = (60),
+        LOCALE_SMONTHNAME6 = (61),
+        LOCALE_SMONTHNAME7 = (62),
+        LOCALE_SMONTHNAME8 = (63),
+        LOCALE_SMONTHNAME9 = (64),
+        LOCALE_SMONTHNAME10 = (65),
+        LOCALE_SMONTHNAME11 = (66),
+        LOCALE_SMONTHNAME12 = (67),
+        LOCALE_SMONTHNAME13 = (4110),
+        LOCALE_SABBREVMONTHNAME1 = (68),
+        LOCALE_SABBREVMONTHNAME2 = (69),
+        LOCALE_SABBREVMONTHNAME3 = (70),
+        LOCALE_SABBREVMONTHNAME4 = (71),
+        LOCALE_SABBREVMONTHNAME5 = (72),
+        LOCALE_SABBREVMONTHNAME6 = (73),
+        LOCALE_SABBREVMONTHNAME7 = (74),
+        LOCALE_SABBREVMONTHNAME8 = (75),
+        LOCALE_SABBREVMONTHNAME9 = (76),
+        LOCALE_SABBREVMONTHNAME10 = (77),
+        LOCALE_SABBREVMONTHNAME11 = (78),
+        LOCALE_SABBREVMONTHNAME12 = (79),
+        LOCALE_SABBREVMONTHNAME13 = (4111),
+        LOCALE_SPOSITIVESIGN = (80),
+        LOCALE_SNEGATIVESIGN = (81),
+        LOCALE_IPOSSIGNPOSN = (82),
+        LOCALE_INEGSIGNPOSN = (83),
+        LOCALE_IPOSSYMPRECEDES = (84),
+        LOCALE_IPOSSEPBYSPACE = (85),
+        LOCALE_INEGSYMPRECEDES = (86),
+        LOCALE_INEGSEPBYSPACE = (87),
+        LOCALE_NOUSEROVERRIDE = (0x80000000),
+        CAL_ICALINTVALUE = (1),
+        CAL_IYEAROFFSETRANGE = (3),
+        CAL_SABBREVDAYNAME1 = (14),
+        CAL_SABBREVDAYNAME2 = (15),
+        CAL_SABBREVDAYNAME3 = (16),
+        CAL_SABBREVDAYNAME4 = (17),
+        CAL_SABBREVDAYNAME5 = (18),
+        CAL_SABBREVDAYNAME6 = (19),
+        CAL_SABBREVDAYNAME7 = (20),
+        CAL_SABBREVMONTHNAME1 = (34),
+        CAL_SABBREVMONTHNAME2 = (35),
+        CAL_SABBREVMONTHNAME3 = (36),
+        CAL_SABBREVMONTHNAME4 = (37),
+        CAL_SABBREVMONTHNAME5 = (38),
+        CAL_SABBREVMONTHNAME6 = (39),
+        CAL_SABBREVMONTHNAME7 = (40),
+        CAL_SABBREVMONTHNAME8 = (41),
+        CAL_SABBREVMONTHNAME9 = (42),
+        CAL_SABBREVMONTHNAME10 = (43),
+        CAL_SABBREVMONTHNAME11 = (44),
+        CAL_SABBREVMONTHNAME12 = (45),
+        CAL_SABBREVMONTHNAME13 = (46),
+        CAL_SCALNAME = (2),
+        CAL_SDAYNAME1 = (7),
+        CAL_SDAYNAME2 = (8),
+        CAL_SDAYNAME3 = (9),
+        CAL_SDAYNAME4 = (10),
+        CAL_SDAYNAME5 = (11),
+        CAL_SDAYNAME6 = (12),
+        CAL_SDAYNAME7 = (13),
+        CAL_SERASTRING = (4),
+        CAL_SLONGDATE = (6),
+        CAL_SMONTHNAME1 = (21),
+        CAL_SMONTHNAME2 = (22),
+        CAL_SMONTHNAME3 = (23),
+        CAL_SMONTHNAME4 = (24),
+        CAL_SMONTHNAME5 = (25),
+        CAL_SMONTHNAME6 = (26),
+        CAL_SMONTHNAME7 = (27),
+        CAL_SMONTHNAME8 = (28),
+        CAL_SMONTHNAME9 = (29),
+        CAL_SMONTHNAME10 = (30),
+        CAL_SMONTHNAME11 = (31),
+        CAL_SMONTHNAME12 = (32),
+        CAL_SMONTHNAME13 = (33),
+        CAL_SSHORTDATE = (5),
+        PROCESS_SET_QUOTA = (256),
+        BLACKONWHITE = (1),
+        COLORONCOLOR = (3),
+        HALFTONE = (4),
+        STRETCH_ANDSCANS = (1),
+        STRETCH_DELETESCANS = (3),
+        STRETCH_HALFTONE = (4),
+        STRETCH_ORSCANS = (2),
+        WHITEONBLACK = (2),
+        OCR_NORMAL = (32512),
+        OCR_IBEAM = (32513),
+        OCR_WAIT = (32514),
+        OCR_CROSS = (32515),
+        OCR_UP = (32516),
+        OCR_SIZE = (32640),
+        OCR_ICON = (32641),
+        OCR_SIZENWSE = (32642),
+        OCR_SIZENESW = (32643),
+        OCR_SIZEWE = (32644),
+        OCR_SIZENS = (32645),
+        OCR_SIZEALL = (32646),
+        OCR_NO = (32648),
+        OCR_APPSTARTING = (32650),
+        TAPE_ABSOLUTE_BLOCK = (0x1),
+        TAPE_LOGICAL_BLOCK = (0x2),
+        TAPE_REWIND = (0),
+        TAPE_SPACE_END_OF_DATA = (0x4),
+        TAPE_SPACE_FILEMARKS = (0x6),
+        TAPE_SPACE_RELATIVE_BLOCKS = (0x5),
+        TAPE_SPACE_SEQUENTIAL_FMKS = (0x7),
+        TAPE_SPACE_SEQUENTIAL_SMKS = (0x9),
+        TAPE_SPACE_SETMARKS = (0x8),
+        EXCEPTION_EXECUTE_HANDLER = (1),
+        EXCEPTION_CONTINUE_EXECUTION = -((1)),
+        EXCEPTION_CONTINUE_SEARCH = (0),
+        SWP_DRAWFRAME = (32),
+        SWP_FRAMECHANGED = (32),
+        SWP_HIDEWINDOW = (128),
+        SWP_NOACTIVATE = (16),
+        SWP_NOCOPYBITS = (256),
+        SWP_NOMOVE = (2),
+        SWP_NOSIZE = (1),
+        SWP_NOREDRAW = (8),
+        SWP_NOZORDER = (4),
+        SWP_SHOWWINDOW = (64),
+        SWP_NOOWNERZORDER = (512),
+        SWP_NOREPOSITION = (512),
+        SWP_NOSENDCHANGING = (1024),
+        HSHELL_ACTIVATESHELLWINDOW = (3),
+        HSHELL_GETMINRECT = (5),
+        HSHELL_LANGUAGE = (8),
+        HSHELL_REDRAW = (6),
+        HSHELL_TASKMAN = (7),
+        HSHELL_WINDOWACTIVATED = (4),
+        HSHELL_WINDOWCREATED = (1),
+        HSHELL_WINDOWDESTROYED = (2),
+        SW_HIDE = (0),
+        SW_MAXIMIZE = (3),
+        SW_MINIMIZE = (6),
+        SW_NORMAL = (1),
+        SW_RESTORE = (9),
+        SW_SHOW = (5),
+        SW_SHOWDEFAULT = (10),
+        SW_SHOWMAXIMIZED = (3),
+        SW_SHOWMINIMIZED = (2),
+        SW_SHOWMINNOACTIVE = (7),
+        SW_SHOWNA = (8),
+        SW_SHOWNOACTIVATE = (4),
+        SW_SHOWNORMAL = (1),
+        WPF_RESTORETOMAXIMIZED = (2),
+        WPF_SETMINPOSITION = (1),
+        INFINITE = (0xFFFFFFFF),
+        SPI_GETACCESSTIMEOUT = (60),
+        SPI_GETANIMATION = (72),
+        SPI_GETBEEP = (1),
+        SPI_GETBORDER = (5),
+        SPI_GETDEFAULTINPUTLANG = (89),
+        SPI_GETDRAGFULLWINDOWS = (38),
+        SPI_GETFASTTASKSWITCH = (35),
+        SPI_GETFILTERKEYS = (50),
+        SPI_GETFONTSMOOTHING = (74),
+        SPI_GETGRIDGRANULARITY = (18),
+        SPI_GETHIGHCONTRAST = (66),
+        SPI_GETICONMETRICS = (45),
+        SPI_GETICONTITLELOGFONT = (31),
+        SPI_GETICONTITLEWRAP = (25),
+        SPI_GETKEYBOARDDELAY = (22),
+        SPI_GETKEYBOARDPREF = (68),
+        SPI_GETKEYBOARDSPEED = (10),
+        SPI_GETLOWPOWERACTIVE = (83),
+        SPI_GETLOWPOWERTIMEOUT = (79),
+        SPI_GETMENUDROPALIGNMENT = (27),
+        SPI_GETMINIMIZEDMETRICS = (43),
+        SPI_GETMOUSE = (3),
+        SPI_GETMOUSEKEYS = (54),
+        SPI_GETMOUSETRAILS = (94),
+        SPI_GETNONCLIENTMETRICS = (41),
+        SPI_GETPOWEROFFACTIVE = (84),
+        SPI_GETPOWEROFFTIMEOUT = (80),
+        SPI_GETSCREENREADER = (70),
+        SPI_GETSCREENSAVEACTIVE = (16),
+        SPI_GETSCREENSAVETIMEOUT = (14),
+        SPI_GETSERIALKEYS = (62),
+        SPI_GETSHOWSOUNDS = (56),
+        SPI_GETSOUNDSENTRY = (64),
+        SPI_GETSTICKYKEYS = (58),
+        SPI_GETTOGGLEKEYS = (52),
+        SPI_GETWINDOWSEXTENSION = (92),
+        SPI_GETWORKAREA = (48),
+        SPI_ICONHORIZONTALSPACING = (13),
+        SPI_ICONVERTICALSPACING = (24),
+        SPI_LANGDRIVER = (12),
+        SPI_SCREENSAVERRUNNING = (97),
+        SPI_SETACCESSTIMEOUT = (61),
+        SPI_SETANIMATION = (73),
+        SPI_SETBEEP = (2),
+        SPI_SETBORDER = (6),
+        SPI_SETDEFAULTINPUTLANG = (90),
+        SPI_SETDESKPATTERN = (21),
+        SPI_SETDESKWALLPAPER = (20),
+        SPI_SETDOUBLECLICKTIME = (32),
+        SPI_SETDOUBLECLKHEIGHT = (30),
+        SPI_SETDOUBLECLKWIDTH = (29),
+        SPI_SETDRAGFULLWINDOWS = (37),
+        SPI_SETDRAGHEIGHT = (77),
+        SPI_SETDRAGWIDTH = (76),
+        SPI_SETFASTTASKSWITCH = (36),
+        SPI_SETFILTERKEYS = (51),
+        SPI_SETFONTSMOOTHING = (75),
+        SPI_SETGRIDGRANULARITY = (19),
+        SPI_SETHANDHELD = (78),
+        SPI_SETHIGHCONTRAST = (67),
+        SPI_SETICONMETRICS = (46),
+        SPI_SETICONTITLELOGFONT = (34),
+        SPI_SETICONTITLEWRAP = (26),
+        SPI_SETKEYBOARDDELAY = (23),
+        SPI_SETKEYBOARDPREF = (69),
+        SPI_SETKEYBOARDSPEED = (11),
+        SPI_SETLANGTOGGLE = (91),
+        SPI_SETLOWPOWERACTIVE = (85),
+        SPI_SETLOWPOWERTIMEOUT = (81),
+        SPI_SETMENUDROPALIGNMENT = (28),
+        SPI_SETMINIMIZEDMETRICS = (44),
+        SPI_SETMOUSE = (4),
+        SPI_SETMOUSEBUTTONSWAP = (33),
+        SPI_SETMOUSEKEYS = (55),
+        SPI_SETMOUSETRAILS = (93),
+        SPI_SETNONCLIENTMETRICS = (42),
+        SPI_SETPENWINDOWS = (49),
+        SPI_SETPOWEROFFACTIVE = (86),
+        SPI_SETPOWEROFFTIMEOUT = (82),
+        SPI_SETSCREENREADER = (71),
+        SPI_SETSCREENSAVEACTIVE = (17),
+        SPI_SETSCREENSAVETIMEOUT = (15),
+        SPI_SETSERIALKEYS = (63),
+        SPI_SETSHOWSOUNDS = (57),
+        SPI_SETSOUNDSENTRY = (65),
+        SPI_SETSTICKYKEYS = (59),
+        SPI_SETTOGGLEKEYS = (53),
+        SPI_SETWORKAREA = (47),
+        SPIF_UPDATEINIFILE = (1),
+        SPIF_SENDWININICHANGE = (2),
+        SPIF_SENDCHANGE = (2),
+        TPM_CENTERALIGN = (0x4),
+        TPM_LEFTALIGN = (0),
+        TPM_RIGHTALIGN = (0x8),
+        TPM_LEFTBUTTON = (0),
+        TPM_RIGHTBUTTON = (0x2),
+        TPM_HORIZONTAL = (0),
+        TPM_VERTICAL = (0x40),
+        TCI_SRCCHARSET = (1),
+        TCI_SRCCODEPAGE = (2),
+        TCI_SRCFONTSIG = (3),
+        VFFF_ISSHAREDFILE = (1),
+        VFF_CURNEDEST = (1),
+        VFF_FILEINUSE = (2),
+        VFF_BUFFTOOSMALL = (4),
+        VIFF_FORCEINSTALL = (1),
+        VIFF_DONTDELETEOLD = (2),
+        VIF_TEMPFILE = (0x1),
+        VIF_MISMATCH = (0x2),
+        VIF_SRCOLD = (0x4),
+        VIF_DIFFLANG = (0x8),
+        VIF_DIFFCODEPG = (0x10),
+        VIF_DIFFTYPE = (0x20),
+        VIF_WRITEPROT = (0x40),
+        VIF_FILEINUSE = (0x80),
+        VIF_OUTOFSPACE = (0x100),
+        VIF_ACCESSVIOLATION = (0x200),
+        VIF_SHARINGVIOLATION = (0x400),
+        VIF_CANNOTCREATE = (0x800),
+        VIF_CANNOTDELETE = (0x1000),
+        VIF_CANNOTDELETECUR = (0x4000),
+        VIF_CANNOTRENAME = (0x2000),
+        VIF_OUTOFMEMORY = (0x8000),
+        VIF_CANNOTREADSRC = (0x10000),
+        VIF_CANNOTREADDST = (0x20000),
+        VIF_BUFFTOOSMALL = (0x40000),
+        WC_COMPOSITECHECK = (512),
+        WC_DISCARDNS = (16),
+        WC_SEPCHARS = (32),
+        WC_DEFAULTCHAR = (64),
+        HELP_COMMAND = (0x102),
+        HELP_CONTENTS = (0x3),
+        HELP___FILE__ = (0x1),
+        HELP___FILE__POPUP = (0x8),
+        HELP_FORCEFILE = (0x9),
+        HELP_HELPONHELP = (0x4),
+        HELP_INDEX = (0x3),
+        HELP_KEY = (0x101),
+        HELP_MULTIKEY = (0x201),
+        HELP_PARTIALKEY = (0x105),
+        HELP_QUIT = (0x2),
+        HELP_SETCONTENTS = (0x5),
+        HELP_SETINDEX = (0x5),
+        HELP___FILE__MENU = (0xa),
+        HELP_FINDER = (0xb),
+        HELP_WM_HELP = (0xc),
+        HELP_TCARD = (0x8000),
+        HELP_TCARD_DATA = (0x10),
+        HELP_TCARD_OTHER_CALLER = (0x11),
+        CONNECT_UPDATE_PROFILE = (1),
+        RESOURCETYPE_DISK = (1),
+        RESOURCETYPE_PRINT = (2),
+        RESOURCETYPE_ANY = (0),
+        RESOURCE_CONNECTED = (1),
+        RESOURCE_GLOBALNET = (2),
+        RESOURCE_REMEMBERED = (3),
+        RESOURCEUSAGE_CONNECTABLE = (1),
+        RESOURCEUSAGE_CONTAINER = (2),
+        WN_BAD_NETNAME = (0x43),
+        WN_EXTENDED_ERROR = (0x4b8),
+        WN_MORE_DATA = (0xea),
+        WN_NO_NETWORK = (0x4c6),
+        WN_SUCCESS = (0),
+        WN_ACCESS_DENIED = (0x5),
+        WN_BAD_PROVIDER = (0x4b4),
+        WN_NOT_AUTHENTICATED = (0x4dc),
+        UNIVERSAL_NAME_INFO_LEVEL = (1),
+        REMOTE_NAME_INFO_LEVEL = (2),
+        STILL_ACTIVE = (0x103),
+        SP_SERIALCOMM = (0x1),
+        BAUD_075 = (0x1),
+        BAUD_110 = (0x2),
+        BAUD_134_5 = (0x4),
+        BAUD_150 = (0x8),
+        BAUD_300 = (0x10),
+        BAUD_600 = (0x20),
+        BAUD_1200 = (0x40),
+        BAUD_1800 = (0x80),
+        BAUD_2400 = (0x100),
+        BAUD_4800 = (0x200),
+        BAUD_7200 = (0x400),
+        BAUD_9600 = (0x800),
+        BAUD_14400 = (0x1000),
+        BAUD_19200 = (0x2000),
+        BAUD_38400 = (0x4000),
+        BAUD_56K = (0x8000),
+        BAUD_57600 = (0x40000),
+        BAUD_115200 = (0x20000),
+        BAUD_128K = (0x10000),
+        BAUD_USER = (0x10000000),
+        PST_FAX = (0x21),
+        PST_LAT = (0x101),
+        PST_MODEM = (0x6),
+        PST_NETWORK_BRIDGE = (0x100),
+        PST_PARALLELPORT = (0x2),
+        PST_RS232 = (0x1),
+        PST_RS422 = (0x3),
+        PST_RS423 = (0x4),
+        PST_RS449 = (0x5),
+        PST_SCANNER = (0x22),
+        PST_TCPIP_TELNET = (0x102),
+        PST_UNSPECIFIED = (0),
+        PST_X25 = (0x103),
+        PCF_16BITMODE = (0x200),
+        PCF_DTRDSR = (0x1),
+        PCF_INTTIMEOUTS = (0x80),
+        PCF_PARITY_CHECK = (0x8),
+        PCF_RLSD = (0x4),
+        PCF_RTSCTS = (0x2),
+        PCF_SETXCHAR = (0x20),
+        PCF_SPECIALCHARS = (0x100),
+        PCF_TOTALTIMEOUTS = (0x40),
+        PCF_XONXOFF = (0x10),
+        SP_BAUD = (0x2),
+        SP_DATABITS = (0x4),
+        SP_HANDSHAKING = (0x10),
+        SP_PARITY = (0x1),
+        SP_PARITY_CHECK = (0x20),
+        SP_RLSD = (0x40),
+        SP_STOPBITS = (0x8),
+        DATABITS_5 = (1),
+        DATABITS_6 = (2),
+        DATABITS_7 = (4),
+        DATABITS_8 = (8),
+        DATABITS_16 = (16),
+        DATABITS_16X = (32),
+        STOPBITS_10 = (1),
+        STOPBITS_15 = (2),
+        STOPBITS_20 = (4),
+        PARITY_NONE = (256),
+        PARITY_ODD = (512),
+        PARITY_EVEN = (1024),
+        PARITY_MARK = (2048),
+        PARITY_SPACE = (4096),
+        COMMPROP_INITIALIZED = (0xe73cf52e),
+        CBR_110 = (110),
+        CBR_300 = (300),
+        CBR_600 = (600),
+        CBR_1200 = (1200),
+        CBR_2400 = (2400),
+        CBR_4800 = (4800),
+        CBR_9600 = (9600),
+        CBR_14400 = (14400),
+        CBR_19200 = (19200),
+        CBR_38400 = (38400),
+        CBR_56000 = (56000),
+        CBR_57600 = (57600),
+        CBR_115200 = (115200),
+        CBR_128000 = (128000),
+        CBR_256000 = (256000),
+        DTR_CONTROL_DISABLE = (0),
+        DTR_CONTROL_ENABLE = (1),
+        DTR_CONTROL_HANDSHAKE = (2),
+        RTS_CONTROL_DISABLE = (0),
+        RTS_CONTROL_ENABLE = (1),
+        RTS_CONTROL_HANDSHAKE = (2),
+        RTS_CONTROL_TOGGLE = (3),
+        EVENPARITY = (2),
+        MARKPARITY = (3),
+        NOPARITY = (0),
+        ODDPARITY = (1),
+        SPACEPARITY = (4),
+        ONESTOPBIT = (0),
+        ONE5STOPBITS = (1),
+        TWOSTOPBITS = (2),
+        CREATE_PROCESS_DEBUG_EVENT = (3),
+        CREATE_THREAD_DEBUG_EVENT = (2),
+        EXCEPTION_DEBUG_EVENT = (1),
+        EXIT_PROCESS_DEBUG_EVENT = (5),
+        EXIT_THREAD_DEBUG_EVENT = (4),
+        LOAD_DLL_DEBUG_EVENT = (6),
+        OUTPUT_DEBUG_STRING_EVENT = (8),
+        UNLOAD_DLL_DEBUG_EVENT = (7),
+        RIP_EVENT = (9),
+        PROCESS_HEAP_REGION = (1),
+        PROCESS_HEAP_UNCOMMITTED_RANGE = (2),
+        PROCESS_HEAP_ENTRY_BUSY = (4),
+        PROCESS_HEAP_ENTRY_MOVEABLE = (16),
+        PROCESS_HEAP_ENTRY_DDESHARE = (32),
+        HINSTANCE_ERROR = (32),
+        BACKUP_DATA = (1),
+        BACKUP_EA_DATA = (2),
+        BACKUP_SECURITY_DATA = (3),
+        BACKUP_ALTERNATE_DATA = (4),
+        BACKUP_LINK = (5),
+        STREAM_MODIFIED_WHEN_READ = (1),
+        STREAM_CONTAINS_SECURITY = (2),
+        STARTF_USESHOWWINDOW = (1),
+        STARTF_USEPOSITION = (4),
+        STARTF_USESIZE = (2),
+        STARTF_USECOUNTCHARS = (8),
+        STARTF_USEFILLATTRIBUTE = (16),
+        STARTF_RUNFULLSCREEN = (32),
+        STARTF_FORCEONFEEDBACK = (64),
+        STARTF_FORCEOFFFEEDBACK = (128),
+        STARTF_USESTDHANDLES = (256),
+        STARTF_USEHOTKEY = (512),
+        VER_PLATFORM_WIN32s = (0),
+        VER_PLATFORM_WIN32_WINDOWS = (1),
+        VER_PLATFORM_WIN32_NT = (2),
+        MAXPROPPAGES = (100),
+        PSP_DEFAULT = (0),
+        PSP_DLGINDIRECT = (1),
+        PSP_HASHELP = (32),
+        PSP_USECALLBACK = (128),
+        PSP_USEHICON = (2),
+        PSP_USEICONID = (4),
+        PSP_USEREFPARENT = (64),
+        PSP_USETITLE = (8),
+        PSP_RTLREADING = (16),
+        PSH_DEFAULT = (0),
+        PSH_HASHELP = (512),
+        PSH_MODELESS = (1024),
+        PSH_NOAPPLYNOW = (128),
+        PSH_PROPSHEETPAGE = (8),
+        PSH_PROPTITLE = (1),
+        PSH_USECALLBACK = (256),
+        PSH_USEHICON = (2),
+        PSH_USEICONID = (4),
+        PSH_USEPSTARTPAGE = (64),
+        PSH_WIZARD = (32),
+        PSH_RTLREADING = (2048),
+        PSCB_INITIALIZED = (1),
+        PSCB_PRECREATE = (2),
+        PSNRET_NOERROR = (0),
+        PSNRET_INVALID_NOCHANGEPAGE = (2),
+        PSBTN_APPLYNOW = (4),
+        PSBTN_BACK = (0),
+        PSBTN_CANCEL = (5),
+        PSBTN_FINISH = (2),
+        PSBTN_HELP = (6),
+        PSBTN_NEXT = (1),
+        PSBTN_OK = (3),
+        PSWIZB_BACK = (1),
+        PSWIZB_NEXT = (2),
+        PSWIZB_FINISH = (4),
+        PSWIZB_DISABLEDFINISH = (8),
+        ID_PSREBOOTSYSTEM = (3),
+        ID_PSRESTARTWINDOWS = (2),
+        WIZ_BODYCX = (184),
+        WIZ_BODYX = (92),
+        WIZ_CXBMP = (80),
+        WIZ_CXDLG = (276),
+        WIZ_CYDLG = (140),
+    }
+    char* VS_FILE_INFO = cast(char*) ((16));
+    enum : DWORD {
+        VS_VERSION_INFO = (1),
+        VS_FF_DEBUG = (0x1),
+        VS_FF_INFOINFERRED = (0x10),
+        VS_FF_PATCHED = (0x4),
+        VS_FF_PRERELEASE = (0x2),
+        VS_FF_PRIVATEBUILD = (0x8),
+        VS_FF_SPECIALBUILD = (0x20),
+        VOS_UNKNOWN = (0),
+        VOS_DOS = (0x10000),
+        VOS_OS216 = (0x20000),
+        VOS_OS232 = (0x30000),
+        VOS_NT = (0x40000),
+        VOS_DOS_WINDOWS16 = (0x10001),
+        VOS_DOS_WINDOWS32 = (0x10004),
+        VOS_OS216_PM16 = (0x20002),
+        VOS_OS232_PM32 = (0x30003),
+        VOS_NT_WINDOWS32 = (0x40004),
+        VFT_UNKNOWN = (0),
+        VFT_APP = (0x1),
+        VFT_DLL = (0x2),
+        VFT_DRV = (0x3),
+        VFT_FONT = (0x4),
+        VFT_VXD = (0x5),
+        VFT_STATIC_LIB = (0x7),
+        VFT2_UNKNOWN = (0),
+        VFT2_DRV_PRINTER = (0x1),
+        VFT2_DRV_KEYBOARD = (0x2),
+        VFT2_DRV_LANGUAGE = (0x3),
+        VFT2_DRV_DISPLAY = (0x4),
+        VFT2_DRV_MOUSE = (0x5),
+        VFT2_DRV_NETWORK = (0x6),
+        VFT2_DRV_SYSTEM = (0x7),
+        VFT2_DRV_INSTALLABLE = (0x8),
+        VFT2_DRV_SOUND = (0x9),
+        VFT2_FONT_RASTER = (0x1),
+        VFT2_FONT_VECTOR = (0x2),
+        VFT2_FONT_TRUETYPE = (0x3),
+        PAN_ANY = (0),
+        PAN_NO_FIT = (1),
+        PAN_FAMILY_TEXT_DISPLAY = (2),
+        PAN_FAMILY_SCRIPT = (3),
+        PAN_FAMILY_DECORATIVE = (4),
+        PAN_FAMILY_PICTORIAL = (5),
+        PAN_SERIF_COVE = (2),
+        PAN_SERIF_OBTUSE_COVE = (3),
+        PAN_SERIF_SQUARE_COVE = (4),
+        PAN_SERIF_OBTUSE_SQUARE_COVE = (5),
+        PAN_SERIF_SQUARE = (6),
+        PAN_SERIF_THIN = (7),
+        PAN_SERIF_BONE = (8),
+        PAN_SERIF_EXAGGERATED = (9),
+        PAN_SERIF_TRIANGLE = (10),
+        PAN_SERIF_NORMAL_SANS = (11),
+        PAN_SERIF_OBTUSE_SANS = (12),
+        PAN_SERIF_PERP_SANS = (13),
+        PAN_SERIF_FLARED = (14),
+        PAN_SERIF_ROUNDED = (15),
+        PAN_WEIGHT_VERY_LIGHT = (2),
+        PAN_WEIGHT_LIGHT = (3),
+        PAN_WEIGHT_THIN = (4),
+        PAN_WEIGHT_BOOK = (5),
+        PAN_WEIGHT_MEDIUM = (6),
+        PAN_WEIGHT_DEMI = (7),
+        PAN_WEIGHT_BOLD = (8),
+        PAN_WEIGHT_HEAVY = (9),
+        PAN_WEIGHT_BLACK = (10),
+        PAN_WEIGHT_NORD = (11),
+        PAN_PROP_OLD_STYLE = (2),
+        PAN_PROP_MODERN = (3),
+        PAN_PROP_EVEN_WIDTH = (4),
+        PAN_PROP_EXPANDED = (5),
+        PAN_PROP_CONDENSED = (6),
+        PAN_PROP_VERY_EXPANDED = (7),
+        PAN_PROP_VERY_CONDENSED = (8),
+        PAN_PROP_MONOSPACED = (9),
+        PAN_CONTRAST_NONE = (2),
+        PAN_CONTRAST_VERY_LOW = (3),
+        PAN_CONTRAST_LOW = (4),
+        PAN_CONTRAST_MEDIUM_LOW = (5),
+        PAN_CONTRAST_MEDIUM = (6),
+        PAN_CONTRAST_MEDIUM_HIGH = (7),
+        PAN_CONTRAST_HIGH = (8),
+        PAN_CONTRAST_VERY_HIGH = (9),
+        PAN_STROKE_GRADUAL_DIAG = (2),
+        PAN_STROKE_GRADUAL_TRAN = (3),
+        PAN_STROKE_GRADUAL_VERT = (4),
+        PAN_STROKE_GRADUAL_HORZ = (5),
+        PAN_STROKE_RAPID_VERT = (6),
+        PAN_STROKE_RAPID_HORZ = (7),
+        PAN_STROKE_INSTANT_VERT = (8),
+        PAN_STRAIGHT_ARMS_HORZ = (2),
+        PAN_STRAIGHT_ARMS_WEDGE = (3),
+        PAN_STRAIGHT_ARMS_VERT = (4),
+        PAN_STRAIGHT_ARMS_SINGLE_SERIF = (5),
+        PAN_STRAIGHT_ARMS_DOUBLE_SERIF = (6),
+        PAN_BENT_ARMS_HORZ = (7),
+        PAN_BENT_ARMS_VERT = (9),
+        PAN_BENT_ARMS_WEDGE = (8),
+        PAN_BENT_ARMS_SINGLE_SERIF = (10),
+        PAN_BENT_ARMS_DOUBLE_SERIF = (11),
+        PAN_LETT_NORMAL_CONTACT = (2),
+        PAN_LETT_NORMAL_WEIGHTED = (3),
+        PAN_LETT_NORMAL_BOXED = (4),
+        PAN_LETT_NORMAL_FLATTENED = (5),
+        PAN_LETT_NORMAL_ROUNDED = (6),
+        PAN_LETT_NORMAL_OFF_CENTER = (7),
+        PAN_LETT_NORMAL_SQUARE = (8),
+        PAN_LETT_OBLIQUE_CONTACT = (9),
+        PAN_LETT_OBLIQUE_WEIGHTED = (10),
+        PAN_LETT_OBLIQUE_BOXED = (11),
+        PAN_LETT_OBLIQUE_FLATTENED = (12),
+        PAN_LETT_OBLIQUE_ROUNDED = (13),
+        PAN_LETT_OBLIQUE_OFF_CENTER = (14),
+        PAN_LETT_OBLIQUE_SQUARE = (15),
+        PAN_MIDLINE_STANDARD_TRIMMED = (2),
+        PAN_MIDLINE_STANDARD_POINTED = (3),
+        PAN_MIDLINE_STANDARD_SERIFED = (4),
+        PAN_MIDLINE_HIGH_TRIMMED = (5),
+        PAN_MIDLINE_HIGH_POINTED = (6),
+        PAN_MIDLINE_HIGH_SERIFED = (7),
+        PAN_MIDLINE_CONSTANT_TRIMMED = (8),
+        PAN_MIDLINE_CONSTANT_POINTED = (9),
+        PAN_MIDLINE_CONSTANT_SERIFED = (10),
+        PAN_MIDLINE_LOW_TRIMMED = (11),
+        PAN_MIDLINE_LOW_POINTED = (12),
+        PAN_MIDLINE_LOW_SERIFED = (13),
+        PAN_XHEIGHT_CONSTANT_SMALL = (2),
+        PAN_XHEIGHT_CONSTANT_STD = (3),
+        PAN_XHEIGHT_CONSTANT_LARGE = (4),
+        PAN_XHEIGHT_DUCKING_SMALL = (5),
+        PAN_XHEIGHT_DUCKING_STD = (6),
+        PAN_XHEIGHT_DUCKING_LARGE = (7),
+        PC_EXPLICIT = (2),
+        PC_NOCOLLAPSE = (4),
+        PC_RESERVED = (1),
+        BS_DIBPATTERN = (5),
+        BS_DIBPATTERN8X8 = (8),
+        BS_DIBPATTERNPT = (6),
+        BS_HATCHED = (2),
+        BS_HOLLOW = (1),
+        BS_NULL = (1),
+        BS_PATTERN = (3),
+        BS_PATTERN8X8 = (7),
+        BS_SOLID = (0),
+        DM_ORIENTATION = (0x1),
+        DM_PAPERSIZE = (0x2),
+        DM_PAPERLENGTH = (0x4),
+        DM_PAPERWIDTH = (0x8),
+        DM_SCALE = (0x10),
+        DM_COPIES = (0x100),
+        DM_DEFAULTSOURCE = (0x200),
+        DM_PRINTQUALITY = (0x400),
+        DM_COLOR = (0x800),
+        DM_DUPLEX = (0x1000),
+        DM_YRESOLUTION = (0x2000),
+        DM_TTOPTION = (0x4000),
+        DM_COLLATE = (0x8000),
+        DM_FORMNAME = (0x10000),
+        DM_LOGPIXELS = (0x20000),
+        DM_ICMMETHOD = (0x800000),
+        DM_ICMINTENT = (0x1000000),
+        DM_MEDIATYPE = (0x2000000),
+        DM_DITHERTYPE = (0x4000000),
+        DMORIENT_LANDSCAPE = (2),
+        DMORIENT_PORTRAIT = (1),
+        DMPAPER_LETTER = (1),
+        DMPAPER_LEGAL = (5),
+        DMPAPER_A4 = (9),
+        DMPAPER_CSHEET = (24),
+        DMPAPER_DSHEET = (25),
+        DMPAPER_ESHEET = (26),
+        DMPAPER_LETTERSMALL = (2),
+        DMPAPER_TABLOID = (3),
+        DMPAPER_LEDGER = (4),
+        DMPAPER_STATEMENT = (6),
+        DMPAPER_EXECUTIVE = (7),
+        DMPAPER_A3 = (8),
+        DMPAPER_A4SMALL = (10),
+        DMPAPER_A5 = (11),
+        DMPAPER_B4 = (12),
+        DMPAPER_B5 = (13),
+        DMPAPER_FOLIO = (14),
+        DMPAPER_QUARTO = (15),
+        DMPAPER_10X14 = (16),
+        DMPAPER_11X17 = (17),
+        DMPAPER_NOTE = (18),
+        DMPAPER_ENV_9 = (19),
+        DMPAPER_ENV_10 = (20),
+        DMPAPER_ENV_11 = (21),
+        DMPAPER_ENV_12 = (22),
+        DMPAPER_ENV_14 = (23),
+        DMPAPER_ENV_DL = (27),
+        DMPAPER_ENV_C5 = (28),
+        DMPAPER_ENV_C3 = (29),
+        DMPAPER_ENV_C4 = (30),
+        DMPAPER_ENV_C6 = (31),
+        DMPAPER_ENV_C65 = (32),
+        DMPAPER_ENV_B4 = (33),
+        DMPAPER_ENV_B5 = (34),
+        DMPAPER_ENV_B6 = (35),
+        DMPAPER_ENV_ITALY = (36),
+        DMPAPER_ENV_MONARCH = (37),
+        DMPAPER_ENV_PERSONAL = (38),
+        DMPAPER_FANFOLD_US = (39),
+        DMPAPER_FANFOLD_STD_GERMAN = (40),
+        DMPAPER_FANFOLD_LGL_GERMAN = (41),
+        DMRES_HIGH = -((4)),
+        DMRES_MEDIUM = -((3)),
+        DMRES_LOW = -((2)),
+        DMRES_DRAFT = -((1)),
+        DMCOLOR_COLOR = (2),
+        DMCOLOR_MONOCHROME = (1),
+        DMDUP_SIMPLEX = (1),
+        DMDUP_HORIZONTAL = (3),
+        DMDUP_VERTICAL = (2),
+        DMTT_BITMAP = (1),
+        DMTT_DOWNLOAD = (2),
+        DMTT_SUBDEV = (3),
+        DMCOLLATE_TRUE = (1),
+        DMCOLLATE_FALSE = (0),
+        DM_GRAYSCALE = (1),
+        DM_INTERLACED = (2),
+        DMICMMETHOD_NONE = (1),
+        DMICMMETHOD_SYSTEM = (2),
+        DMICMMETHOD_DRIVER = (3),
+        DMICMMETHOD_DEVICE = (4),
+        DMICMMETHOD_USER = (256),
+        DMICM_SATURATE = (1),
+        DMICM_CONTRAST = (2),
+        DMICM_COLORMETRIC = (3),
+        DMICM_USER = (256),
+        DMMEDIA_STANDARD = (1),
+        DMMEDIA_GLOSSY = (3),
+        DMMEDIA_TRANSPARENCY = (2),
+        DMMEDIA_USER = (256),
+        DMDITHER_NONE = (1),
+        DMDITHER_COARSE = (2),
+        DMDITHER_FINE = (3),
+        DMDITHER_LINEART = (4),
+        DMDITHER_GRAYSCALE = (10),
+        DMDITHER_USER = (256),
+        RDH_RECTANGLES = (1),
+        TT_POLYGON_TYPE = (24),
+        TT_PRIM_LINE = (1),
+        TT_PRIM_QSPLINE = (2),
+        GCPCLASS_ARABIC = (2),
+        GCPCLASS_HEBREW = (2),
+        GCPCLASS_LATIN = (1),
+        GCPCLASS_LATINNUMBER = (5),
+        GCPCLASS_LOCALNUMBER = (4),
+        GCPCLASS_LATINNUMERICSEPARATOR = (7),
+        GCPCLASS_LATINNUMERICTERMINATOR = (6),
+        GCPCLASS_NEUTRAL = (3),
+        GCPCLASS_NUMERICSEPARATOR = (8),
+        GCPCLASS_PREBOUNDLTR = (128),
+        GCPCLASS_PREBOUNDRTL = (64),
+        GCPCLASS_POSTBOUNDLTR = (32),
+        GCPCLASS_POSTBOUNDRTL = (16),
+        GCPGLYPH_LINKBEFORE = (32768),
+        GCPGLYPH_LINKAFTER = (16384),
+        TT_AVAILABLE = (1),
+        TT_ENABLED = (2),
+        CA_NEGATIVE = (1),
+        CA_LOG_FILTER = (2),
+        ILLUMINANT_DEVICE_DEFAULT = (0),
+        ILLUMINANT_A = (1),
+        ILLUMINANT_B = (2),
+        ILLUMINANT_C = (3),
+        ILLUMINANT_D50 = (4),
+        ILLUMINANT_D55 = (5),
+        ILLUMINANT_D65 = (6),
+        ILLUMINANT_D75 = (7),
+        ILLUMINANT_F2 = (8),
+        ILLUMINANT_TUNGSTEN = (1),
+        ILLUMINANT_DAYLIGHT = (3),
+        ILLUMINANT_FLUORESCENT = (8),
+        ILLUMINANT_NTSC = (3),
+        DI_APPBANDING = (1),
+        EMR_HEADER = (1),
+        ENHMETA_SIGNATURE = (1179469088),
+        ENM_CHANGE = (1),
+        ENM_CORRECTTEXT = (4194304),
+        ENM_DROPFILES = (1048576),
+        ENM_KEYEVENTS = (65536),
+        ENM_MOUSEEVENTS = (131072),
+        ENM_PROTECTED = (2097152),
+        ENM_REQUESTRESIZE = (262144),
+        ENM_SCROLL = (4),
+        ENM_SELCHANGE = (524288),
+        ENM_UPDATE = (2),
+        ENM_NONE = (0),
+        ES_DISABLENOSCROLL = (8192),
+        ES_EX_NOCALLOLEINIT = (16777216),
+        ES_NOIME = (524288),
+        ES_SAVESEL = (32768),
+        ES_SELFIME = (262144),
+        ES_SUNKEN = (16384),
+        ES_VERTICAL = (4194304),
+        ES_SELECTIONBAR = (16777216),
+        ECOOP_SET = (1),
+        ECOOP_OR = (2),
+        ECOOP_AND = (3),
+        ECOOP_XOR = (4),
+        ECO_AUTOWORDSELECTION = (1),
+        ECO_AUTOVSCROLL = (64),
+        ECO_AUTOHSCROLL = (128),
+        ECO_NOHIDESEL = (256),
+        ECO_READONLY = (2048),
+        ECO_WANTRETURN = (4096),
+        ECO_SAVESEL = (32768),
+        ECO_SELECTIONBAR = (16777216),
+        ECO_VERTICAL = (4194304),
+        SCF_WORD = (2),
+        SCF_SELECTION = (1),
+        SF_TEXT = (1),
+        SF_RTF = (2),
+        SF_RTFNOOBJS = (3),
+        SF_TEXTIZED = (4),
+        SFF_SELECTION = (32768),
+        SFF_PLAINRTF = (16384),
+        WB_CLASSIFY = (3),
+        WB_LEFTBREAK = (6),
+        WB_PREVBREAK = (6),
+        WB_MOVEWORDLEFT = (4),
+        WB_MOVEWORDPREV = (4),
+        WB_MOVEWORDRIGHT = (5),
+        WB_MOVEWORDNEXT = (5),
+        WB_RIGHTBREAK = (7),
+        WB_NEXTBREAK = (7),
+        PC_LEADING = (2),
+        PC_FOLLOWING = (1),
+        PC_DELIMITER = (4),
+        PC_OVERFLOW = (3),
+        WBF_WORDWRAP = (16),
+        WBF_WORDBREAK = (32),
+        WBF_OVERFLOW = (64),
+        WBF_LEVEL1 = (128),
+        WBF_LEVEL2 = (256),
+        WBF_CUSTOM = (512),
+        WBF_BREAKAFTER = (64),
+        WBF_BREAKLINE = (32),
+        WBF_ISWHITE = (16),
+        CFM_BOLD = (1),
+        CFM_COLOR = (1073741824),
+        CFM_FACE = (536870912),
+        CFM_ITALIC = (2),
+        CFM_OFFSET = (268435456),
+        CFM_PROTECTED = (16),
+        CFM_SIZE = (0x80000000),
+        CFM_STRIKEOUT = (8),
+        CFM_UNDERLINE = (4),
+        CFE_AUTOCOLOR = (1073741824),
+        CFE_BOLD = (1),
+        CFE_ITALIC = (2),
+        CFE_STRIKEOUT = (8),
+        CFE_UNDERLINE = (4),
+        CFE_PROTECTED = (16),
+        PFM_ALIGNMENT = (8),
+        PFM_NUMBERING = (32),
+        PFM_OFFSET = (4),
+        PFM_OFFSETINDENT = (0x80000000),
+        PFM_RIGHTINDENT = (2),
+        PFM_STARTINDENT = (1),
+        PFM_TABSTOPS = (16),
+        PFN_BULLET = (1),
+        PFA_LEFT = (1),
+        PFA_RIGHT = (2),
+        PFA_CENTER = (3),
+        SEL_EMPTY = (0),
+        SEL_TEXT = (1),
+        SEL_OBJECT = (2),
+        SEL_MULTICHAR = (4),
+        SEL_MULTIOBJECT = (8),
+    }
+    const {
+    char* CF_RTF = ("Rich Text Format");
+    char* CF_RETEXTOBJ = ("RichEdit Text and Objects");
+    }
+    enum : DWORD {
+        ODT_BUTTON = (4),
+        ODT_COMBOBOX = (3),
+        ODT_LISTBOX = (2),
+        ODT_LISTVIEW = (102),
+        ODT_MENU = (1),
+        ODT_STATIC = (5),
+        ODT_TAB = (101),
+        ODT_HEADER = (100),
+        ODA_DRAWENTIRE = (1),
+        ODA_FOCUS = (4),
+        ODA_SELECT = (2),
+        ODS_CHECKED = (8),
+        ODS_COMBOBOXEDIT = (4096),
+        ODS_DEFAULT = (32),
+        ODS_DISABLED = (4),
+        ODS_FOCUS = (16),
+        ODS_GRAYED = (2),
+        ODS_SELECTED = (1),
+    }
+    const {
+    char* ANIMATE_CLASSW = ("SysAnimate32");
+    char* HOTKEY_CLASSW = ("msctls_hotkey32");
+    char* PROGRESS_CLASSW = ("msctls_progress32");
+    char* STATUSCLASSNAMEW = ("msctls_statusbar32");
+    char* TOOLBARCLASSNAMEW = ("ToolbarWindow32");
+    char* TOOLTIPS_CLASSW = ("tooltips_class32");
+    char* TRACKBAR_CLASSW = ("msctls_trackbar32");
+    char* UPDOWN_CLASSW = ("msctls_updown32");
+    char* WC_HEADERW = ("SysHeader32");
+    char* WC_LISTVIEWW = ("SysListView32");
+    char* WC_TABCONTROLW = ("SysTabControl32");
+    char* WC_TREEVIEWW = ("SysTreeView32");
+    }
+    enum : DWORD {
+        CCS_ADJUSTABLE = (0x20),
+        CCS_BOTTOM = (0x3),
+        CCS_NODIVIDER = (0x40),
+        CCS_NOMOVEY = (0x2),
+        CCS_NOPARENTALIGN = (0x8),
+        CCS_NORESIZE = (0x4),
+        CCS_TOP = (0x1),
+    }
+    const {
+    char* ANIMATE_CLASSA = ("SysAnimate32");
+    char* HOTKEY_CLASSA = ("msctls_hotkey32");
+    char* PROGRESS_CLASSA = ("msctls_progress32");
+    char* STATUSCLASSNAMEA = ("msctls_statusbar32");
+    char* TOOLBARCLASSNAMEA = ("ToolbarWindow32");
+    char* TOOLTIPS_CLASSA = ("tooltips_class32");
+    char* TRACKBAR_CLASSA = ("msctls_trackbar32");
+    char* UPDOWN_CLASSA = ("msctls_updown32");
+    char* WC_HEADERA = ("SysHeader32");
+    char* WC_LISTVIEWA = ("SysListView32");
+    char* WC_TABCONTROLA = ("SysTabControl32");
+    char* WC_TREEVIEWA = ("SysTreeView32");
+    char* ANIMATE_CLASS = (ANIMATE_CLASSA);
+    char* HOTKEY_CLASS = (HOTKEY_CLASSA);
+    char* PROGRESS_CLASS = (PROGRESS_CLASSA);
+    char* STATUSCLASSNAME = (STATUSCLASSNAMEA);
+    char* TOOLBARCLASSNAME = (TOOLBARCLASSNAMEA);
+    char* TOOLTIPS_CLASS = (TOOLTIPS_CLASSA);
+    char* TRACKBAR_CLASS = (TRACKBAR_CLASSA);
+    char* UPDOWN_CLASS = (UPDOWN_CLASSA);
+    char* WC_HEADER = (WC_HEADERA);
+    char* WC_LISTVIEW = (WC_LISTVIEWA);
+    char* WC_TABCONTROL = (WC_TABCONTROLA);
+    char* WC_TREEVIEW = (WC_TREEVIEWA);
+    }
+    enum : DWORD {
+        HDS_BUTTONS = (2),
+        HDS_HIDDEN = (8),
+        HDS_HORZ = (0),
+        HDI_BITMAP = (16),
+        HDI_FORMAT = (4),
+        HDI_HEIGHT = (1),
+        HDI_LPARAM = (8),
+        HDI_TEXT = (2),
+        HDI_WIDTH = (1),
+        HDF_CENTER = (2),
+        HDF_LEFT = (0),
+        HDF_RIGHT = (1),
+        HDF_RTLREADING = (4),
+        HDF_BITMAP = (8192),
+        HDF_OWNERDRAW = (32768),
+        HDF_STRING = (16384),
+        HDF_JUSTIFYMASK = (3),
+        HHT_NOWHERE = (1),
+        HHT_ONDIVIDER = (4),
+        HHT_ONDIVOPEN = (8),
+        HHT_ONHEADER = (2),
+        HHT_TOLEFT = (2048),
+        HHT_TORIGHT = (1024),
+        HINST_COMMCTRL = -(1),
+        IDB_STD_LARGE_COLOR = (1),
+        IDB_STD_SMALL_COLOR = (0),
+        IDB_VIEW_LARGE_COLOR = (5),
+        IDB_VIEW_SMALL_COLOR = (4),
+        STD_COPY = (1),
+        STD_CUT = (0),
+        STD_DELETE = (5),
+        STD_FILENEW = (6),
+        STD_FILEOPEN = (7),
+        STD_FILESAVE = (8),
+        STD_FIND = (12),
+        STD_HELP = (11),
+        STD_PASTE = (2),
+        STD_PRINT = (14),
+        STD_PRINTPRE = (9),
+        STD_PROPERTIES = (10),
+        STD_REDOW = (4),
+        STD_REPLACE = (13),
+        STD_UNDO = (3),
+        VIEW_LARGEICONS = (0),
+        VIEW_SMALLICONS = (1),
+        VIEW_LIST = (2),
+        VIEW_DETAILS = (3),
+        VIEW_SORTNAME = (4),
+        VIEW_SORTSIZE = (5),
+        VIEW_SORTDATE = (6),
+        VIEW_SORTTYPE = (7),
+        TBSTYLE_ALTDRAG = (1024),
+        TBSTYLE_TOOLTIPS = (256),
+        TBSTYLE_WRAPABLE = (512),
+        TBSTYLE_BUTTON = (0),
+        TBSTYLE_CHECK = (2),
+        TBSTYLE_CHECKGROUP = (6),
+        TBSTYLE_GROUP = (4),
+        TBSTYLE_SEP = (1),
+        TBSTATE_CHECKED = (1),
+        TBSTATE_ENABLED = (4),
+        TBSTATE_HIDDEN = (8),
+        TBSTATE_INDETERMINATE = (16),
+        TBSTATE_PRESSED = (2),
+        TBSTATE_WRAP = (32),
+        TTS_ALWAYSTIP = (1),
+        TTS_NOPREFIX = (2),
+        TTF_IDISHWND = (1),
+        TTF_CENTERTIP = (2),
+        TTF_RTLREADING = (4),
+        TTF_SUBCLASS = (16),
+        TTDT_AUTOMATIC = (0),
+        TTDT_AUTOPOP = (2),
+        TTDT_INITIAL = (3),
+        TTDT_RESHOW = (1),
+        SBARS_SIZEGRIP = (256),
+        DL_MOVECURSOR = (3),
+        DL_COPYCURSOR = (2),
+        DL_STOPCURSOR = (1),
+        UDS_ALIGNLEFT = (8),
+        UDS_ALIGNRIGHT = (4),
+        UDS_ARROWKEYS = (32),
+        UDS_AUTOBUDDY = (16),
+        UDS_HORZ = (64),
+        UDS_NOTHOUSANDS = (128),
+        UDS_SETBUDDYINT = (2),
+        UDS_WRAP = (1),
+        UD_MAXVAL = (32767),
+        UD_MINVAL = -((32767)),
+        HOTKEYF_ALT = (4),
+        HOTKEYF_CONTROL = (2),
+        HOTKEYF_EXT = (8),
+        HOTKEYF_SHIFT = (1),
+        HKCOMB_A = (8),
+        HKCOMB_C = (4),
+        HKCOMB_CA = (64),
+        HKCOMB_NONE = (1),
+        HKCOMB_S = (2),
+        HKCOMB_SA = (32),
+        HKCOMB_SC = (16),
+        HKCOMB_SCA = (128),
+        TBS_HORZ = (0),
+        TBS_VERT = (2),
+        TBS_AUTOTICKS = (1),
+        TBS_NOTICKS = (16),
+        TBS_TOP = (4),
+        TBS_BOTTOM = (0),
+        TBS_LEFT = (4),
+        TBS_RIGHT = (0),
+        TBS_BOTH = (8),
+        TBS_ENABLESELRANGE = (32),
+        TBS_FIXEDLENGTH = (64),
+        TBS_NOTHUMB = (128),
+        TB_BOTTOM = (7),
+        TB_ENDTRACK = (8),
+        TB_LINEDOWN = (1),
+        TB_LINEUP = (0),
+        TB_PAGEDOWN = (3),
+        TB_PAGEUP = (2),
+        TB_THUMBPOSITION = (4),
+        TB_THUMBTRACK = (5),
+        TB_TOP = (6),
+        LVS_ALIGNLEFT = (2048),
+        LVS_ALIGNTOP = (0),
+        LVS_AUTOARRANGE = (256),
+        LVS_EDITLABELS = (512),
+        LVS_ICON = (0),
+        LVS_LIST = (3),
+        LVS_NOCOLUMNHEADER = (16384),
+        LVS_NOLABELWRAP = (128),
+        LVS_NOSCROLL = (8192),
+        LVS_NOSORTHEADER = (32768),
+        LVS_OWNERDRAWFIXED = (1024),
+        LVS_REPORT = (1),
+        LVS_SHAREIMAGELISTS = (64),
+        LVS_SHOWSELALWAYS = (8),
+        LVS_SINGLESEL = (4),
+        LVS_SMALLICON = (2),
+        LVS_SORTASCENDING = (16),
+        LVS_SORTDESCENDING = (32),
+        LVS_TYPESTYLEMASK = (64512),
+        LVSIL_NORMAL = (0),
+        LVSIL_SMALL = (1),
+        LVSIL_STATE = (2),
+        LVIS_CUT = (4),
+        LVIS_DROPHILITED = (8),
+        LVIS_FOCUSED = (1),
+        LVIS_SELECTED = (2),
+        LVIS_OVERLAYMASK = (3840),
+        LVIS_STATEIMAGEMASK = (61440),
+    }
+    const {
+        LPWSTR LPSTR_TEXTCALLBACKW = cast(LPWSTR)(-(1));
+        LPSTR  LPSTR_TEXTCALLBACKA = cast(LPSTR)(-(1));
+        version(Win32SansUnicode){
+            alias LPSTR_TEXTCALLBACKA LPSTR_TEXTCALLBACK;
+        }
+        else{
+            alias LPSTR_TEXTCALLBACKW LPSTR_TEXTCALLBACK;
+        }
+    }
+    enum : DWORD {
+        LVIF_TEXT = (1),
+        LVIF_IMAGE = (2),
+        LVIF_PARAM = (4),
+        LVIF_STATE = (8),
+        LVIF_DI_SETITEM = (4096),
+        LVNI_ABOVE = (256),
+        LVNI_ALL = (0),
+        LVNI_BELOW = (512),
+        LVNI_TOLEFT = (1024),
+        LVNI_TORIGHT = (2048),
+        LVNI_CUT = (4),
+        LVNI_DROPHILITED = (8),
+        LVNI_FOCUSED = (1),
+        LVNI_SELECTED = (2),
+        LVFI_PARAM = (1),
+        LVFI_PARTIAL = (8),
+        LVFI_STRING = (2),
+        LVFI_WRAP = (32),
+        LVFI_NEARESTXY = (64),
+        LVHT_ABOVE = (8),
+        LVHT_BELOW = (16),
+        LVHT_NOWHERE = (1),
+        LVHT_ONITEMICON = (2),
+        LVHT_ONITEMLABEL = (4),
+        LVHT_ONITEMSTATEICON = (8),
+        LVHT_TOLEFT = (64),
+        LVHT_TORIGHT = (32),
+        LVCF_FMT = (1),
+        LVCF_SUBITEM = (8),
+        LVCF_TEXT = (4),
+        LVCF_WIDTH = (2),
+        LVCFMT_CENTER = (2),
+        LVCFMT_LEFT = (0),
+        LVCFMT_RIGHT = (1),
+        LVIR_BOUNDS = (0),
+        LVIR_ICON = (1),
+        LVIR_LABEL = (2),
+        LVIR_SELECTBOUNDS = (3),
+        LVA_ALIGNLEFT = (1),
+        LVA_ALIGNTOP = (2),
+        LVA_DEFAULT = (0),
+        LVA_SNAPTOGRID = (5),
+        LVSCW_AUTOSIZE = -((1)),
+        LVSCW_AUTOSIZE_USEHEADER = -((2)),
+        TVS_DISABLEDRAGDROP = (16),
+        TVS_EDITLABELS = (8),
+        TVS_HASBUTTONS = (1),
+        TVS_HASLINES = (2),
+        TVS_LINESATROOT = (4),
+        TVS_SHOWSELALWAYS = (32),
+        TVIS_BOLD = (16),
+        TVIS_CUT = (4),
+        TVIS_DROPHILITED = (8),
+        TVIS_EXPANDED = (32),
+        TVIS_EXPANDEDONCE = (64),
+        TVIS_FOCUSED = (1),
+        TVIS_OVERLAYMASK = (3840),
+        TVIS_SELECTED = (2),
+        TVIS_STATEIMAGEMASK = (61440),
+        TVIS_USERMASK = (61440),
+        TVIF_CHILDREN = (64),
+        TVIF_HANDLE = (16),
+        TVIF_IMAGE = (2),
+        TVIF_PARAM = (4),
+        TVIF_SELECTEDIMAGE = (32),
+        TVIF_STATE = (8),
+        TVIF_TEXT = (1),
+        I_CHILDRENCALLBACK = -((1)),
+        I_IMAGECALLBACK = -((1)),
+    }
+
+    struct TREEITEM
+    {
+    }
+
+    alias TREEITEM* HTREEITEM;
+    alias TREEITEM TTREEITEM;
+    alias TREEITEM* PTREEITEM;
+    enum : DWORD {
+        TVI_ROOT = (0xFFFF0000),
+        TVI_FIRST = (0xFFFF0001),
+        TVI_LAST = (0xFFFF0002),
+        TVI_SORT = (0xFFFF0003),
+        TVHT_ABOVE = (256),
+        TVHT_BELOW = (512),
+        TVHT_NOWHERE = (1),
+        TVHT_ONITEM = (70),
+        TVHT_ONITEMBUTTON = (16),
+        TVHT_ONITEMICON = (2),
+        TVHT_ONITEMINDENT = (8),
+        TVHT_ONITEMLABEL = (4),
+        TVHT_ONITEMRIGHT = (32),
+        TVHT_ONITEMSTATEICON = (64),
+        TVHT_TOLEFT = (2048),
+        TVHT_TORIGHT = (1024),
+        TVE_COLLAPSE = (1),
+        TVE_COLLAPSERESET = (32768),
+        TVE_EXPAND = (2),
+        TVE_TOGGLE = (3),
+        TVSIL_NORMAL = (0),
+        TVSIL_STATE = (2),
+        TVGN_CARET = (9),
+        TVGN_CHILD = (4),
+        TVGN_DROPHILITE = (8),
+        TVGN_FIRSTVISIBLE = (5),
+        TVGN_NEXT = (1),
+        TVGN_NEXTVISIBLE = (6),
+        TVGN_PARENT = (3),
+        TVGN_PREVIOUS = (2),
+        TVGN_PREVIOUSVISIBLE = (7),
+        TVGN_ROOT = (0),
+        TVC_BYKEYBOARD = (2),
+        TVC_BYMOUSE = (1),
+        TVC_UNKNOWN = (0),
+        TCS_BUTTONS = (256),
+        TCS_FIXEDWIDTH = (1024),
+        TCS_FOCUSNEVER = (32768),
+        TCS_FOCUSONBUTTONDOWN = (4096),
+        TCS_FORCEICONLEFT = (16),
+        TCS_FORCELABELLEFT = (32),
+        TCS_MULTILINE = (512),
+        TCS_OWNERDRAWFIXED = (8192),
+        TCS_RAGGEDRIGHT = (2048),
+        TCS_RIGHTJUSTIFY = (0),
+        TCS_SINGLELINE = (0),
+        TCS_TABS = (0),
+        TCS_TOOLTIPS = (16384),
+        TCIF_TEXT = (1),
+        TCIF_IMAGE = (2),
+        TCIF_PARAM = (8),
+        TCIF_RTLREADING = (4),
+        TCHT_NOWHERE = (1),
+        TCHT_ONITEM = (6),
+        TCHT_ONITEMICON = (2),
+        TCHT_ONITEMLABEL = (4),
+        ACS_AUTOPLAY = (4),
+        ACS_CENTER = (1),
+        ACS_TRANSPARENT = (2),
+        DIALOPTION_BILLING = (64),
+        DIALOPTION_QUIET = (128),
+        DIALOPTION_DIALTONE = (256),
+        MDMVOLFLAG_LOW = (1),
+        MDMVOLFLAG_MEDIUM = (2),
+        MDMVOLFLAG_HIGH = (4),
+        MDMVOL_LOW = (0),
+        MDMVOL_MEDIUM = (1),
+        MDMVOL_HIGH = (2),
+        MDMSPKRFLAG_OFF = (1),
+        MDMSPKRFLAG_DIAL = (2),
+        MDMSPKRFLAG_ON = (4),
+        MDMSPKRFLAG_CALLSETUP = (8),
+        MDMSPKR_OFF = (0),
+        MDMSPKR_DIAL = (1),
+        MDMSPKR_ON = (2),
+        MDMSPKR_CALLSETUP = (3),
+        MDM_BLIND_DIAL = (512),
+        MDM_CCITT_OVERRIDE = (64),
+        MDM_CELLULAR = (8),
+        MDM_COMPRESSION = (1),
+        MDM_ERROR_CONTROL = (2),
+        MDM_FLOWCONTROL_HARD = (16),
+        MDM_FLOWCONTROL_SOFT = (32),
+        MDM_FORCED_EC = (4),
+        MDM_SPEED_ADJUST = (128),
+        MDM_TONE_DIAL = (256),
+        MDM_V23_OVERRIDE = (1024),
+        LANG_BULGARIAN = (2),
+        LANG_CHINESE = (4),
+        LANG_CROATIAN = (26),
+        LANG_CZECH = (5),
+        LANG_DANISH = (6),
+        LANG_DUTCH = (19),
+        LANG_ENGLISH = (9),
+        LANG_FINNISH = (11),
+        LANG_FRENCH = (12),
+        LANG_GERMAN = (7),
+        LANG_GREEK = (8),
+        LANG_HUNGARIAN = (14),
+        LANG_ICELANDIC = (15),
+        LANG_ITALIAN = (16),
+        LANG_JAPANESE = (17),
+        LANG_KOREAN = (18),
+        LANG_NEUTRAL = (0),
+        LANG_NORWEGIAN = (20),
+        LANG_POLISH = (21),
+        LANG_PORTUGUESE = (22),
+        LANG_ROMANIAN = (24),
+        LANG_RUSSIAN = (25),
+        LANG_SLOVAK = (27),
+        LANG_SLOVENIAN = (36),
+        LANG_SPANISH = (10),
+        LANG_SWEDISH = (29),
+        LANG_TURKISH = (31),
+        SUBLANG_CHINESE_SIMPLIFIED = (2),
+        SUBLANG_CHINESE_TRADITIONAL = (1),
+        SUBLANG_CHINESE_HONGKONG = (3),
+        SUBLANG_CHINESE_SINGAPORE = (4),
+        SUBLANG_DEFAULT = (1),
+        SUBLANG_DUTCH = (1),
+        SUBLANG_DUTCH_BELGIAN = (2),
+        SUBLANG_ENGLISH_AUS = (3),
+        SUBLANG_ENGLISH_CAN = (4),
+        SUBLANG_ENGLISH_EIRE = (6),
+        SUBLANG_ENGLISH_NZ = (5),
+        SUBLANG_ENGLISH_UK = (2),
+        SUBLANG_ENGLISH_US = (1),
+        SUBLANG_FRENCH = (1),
+        SUBLANG_FRENCH_BELGIAN = (2),
+        SUBLANG_FRENCH_CANADIAN = (3),
+        SUBLANG_FRENCH_SWISS = (4),
+        SUBLANG_GERMAN = (1),
+        SUBLANG_GERMAN_AUSTRIAN = (3),
+        SUBLANG_GERMAN_SWISS = (2),
+        SUBLANG_ITALIAN = (1),
+        SUBLANG_ITALIAN_SWISS = (2),
+        SUBLANG_NEUTRAL = (0),
+        SUBLANG_NORWEGIAN_BOKMAL = (1),
+        SUBLANG_NORWEGIAN_NYNORSK = (2),
+        SUBLANG_PORTUGUESE = (2),
+        SUBLANG_PORTUGUESE_BRAZILIAN = (1),
+        SUBLANG_SPANISH = (1),
+        SUBLANG_SPANISH_MEXICAN = (2),
+        SUBLANG_SPANISH_MODERN = (3),
+        SUBLANG_SYS_DEFAULT = (2),
+        NLS_VALID_LOCALE_MASK = (1048575),
+        SORT_DEFAULT = (0),
+        SORT_JAPANESE_XJIS = (0),
+        SORT_JAPANESE_UNICODE = (1),
+        SORT_CHINESE_BIG5 = (0),
+        SORT_CHINESE_UNICODE = (1),
+        SORT_KOREAN_KSC = (0),
+        SORT_KOREAN_UNICODE = (1),
+        PROCESSOR_INTEL_386 = (386),
+        PROCESSOR_INTEL_486 = (486),
+        PROCESSOR_INTEL_PENTIUM = (586),
+        PROCESSOR_MIPS_R4000 = (4000),
+        PROCESSOR_ALPHA_21064 = (21064),
+        COMPRESSION_FORMAT_NONE = (0),
+        COMPRESSION_FORMAT_DEFAULT = (1),
+        COMPRESSION_FORMAT_LZNT1 = (2),
+        TAPE_DRIVE_COMPRESSION = (131072),
+        TAPE_DRIVE_ECC = (65536),
+        TAPE_DRIVE_ERASE_BOP_ONLY = (64),
+        TAPE_DRIVE_ERASE_LONG = (32),
+        TAPE_DRIVE_ERASE_IMMEDIATE = (128),
+        TAPE_DRIVE_ERASE_SHORT = (16),
+        TAPE_DRIVE_FIXED = (1),
+        TAPE_DRIVE_FIXED_BLOCK = (1024),
+        TAPE_DRIVE_INITIATOR = (4),
+        TAPE_DRIVE_PADDING = (262144),
+        TAPE_DRIVE_GET_ABSOLUTE_BLK = (1048576),
+        TAPE_DRIVE_GET_LOGICAL_BLK = (2097152),
+        TAPE_DRIVE_REPORT_SMKS = (524288),
+        TAPE_DRIVE_SELECT = (2),
+        TAPE_DRIVE_SET_EOT_WZ_SIZE = (4194304),
+        TAPE_DRIVE_TAPE_CAPACITY = (256),
+        TAPE_DRIVE_TAPE_REMAINING = (512),
+        TAPE_DRIVE_VARIABLE_BLOCK = (2048),
+        TAPE_DRIVE_WRITE_PROTECT = (4096),
+        TAPE_DRIVE_ABS_BLK_IMMED = -((2147475456)),
+        TAPE_DRIVE_ABSOLUTE_BLK = -((2147479552)),
+        TAPE_DRIVE_END_OF_DATA = -((2147418112)),
+        TAPE_DRIVE_FILEMARKS = -((2147221504)),
+        TAPE_DRIVE_LOAD_UNLOAD = -((2147483647)),
+        TAPE_DRIVE_LOAD_UNLD_IMMED = -((2147483616)),
+        TAPE_DRIVE_LOCK_UNLOCK = -((2147483644)),
+        TAPE_DRIVE_LOCK_UNLK_IMMED = -((2147483520)),
+        TAPE_DRIVE_LOG_BLK_IMMED = -((2147450880)),
+        TAPE_DRIVE_LOGICAL_BLK = -((2147467264)),
+        TAPE_DRIVE_RELATIVE_BLKS = -((2147352576)),
+        TAPE_DRIVE_REVERSE_POSITION = -((2143289344)),
+        TAPE_DRIVE_REWIND_IMMEDIATE = -((2147483640)),
+        TAPE_DRIVE_SEQUENTIAL_FMKS = -((2146959360)),
+        TAPE_DRIVE_SEQUENTIAL_SMKS = -((2145386496)),
+        TAPE_DRIVE_SET_BLOCK_SIZE = -((2147483632)),
+        TAPE_DRIVE_SET_COMPRESSION = -((2147483136)),
+        TAPE_DRIVE_SET_ECC = -((2147483392)),
+        TAPE_DRIVE_SET_PADDING = -((2147482624)),
+        TAPE_DRIVE_SET_REPORT_SMKS = -((2147481600)),
+        TAPE_DRIVE_SETMARKS = -((2146435072)),
+        TAPE_DRIVE_SPACE_IMMEDIATE = -((2139095040)),
+        TAPE_DRIVE_TENSION = -((2147483646)),
+        TAPE_DRIVE_TENSION_IMMED = -((2147483584)),
+        TAPE_DRIVE_WRITE_FILEMARKS = -((2113929216)),
+        TAPE_DRIVE_WRITE_LONG_FMKS = -((2013265920)),
+        TAPE_DRIVE_WRITE_MARK_IMMED = -((1879048192)),
+        TAPE_DRIVE_WRITE_SETMARKS = -((2130706432)),
+        TAPE_DRIVE_WRITE_SHORT_FMKS = -((2080374784)),
+        STANDARD_RIGHTS_REQUIRED = (0xf0000),
+        STANDARD_RIGHTS_WRITE = (0x20000),
+        STANDARD_RIGHTS_READ = (0x20000),
+        STANDARD_RIGHTS_EXECUTE = (0x20000),
+        STANDARD_RIGHTS_ALL = (0x1f0000),
+        SPECIFIC_RIGHTS_ALL = (0xffff),
+        MAXIMUM_ALLOWED = (0x2000000),
+        GENERIC_ALL = (0x10000000),
+        SECURITY_NULL_RID = (0),
+        SECURITY_WORLD_RID = (0),
+        SECURITY_LOCAL_RID = (0),
+        SECURITY_CREATOR_OWNER_RID = (0),
+        SECURITY_CREATOR_GROUP_RID = (0x1),
+        SECURITY_DIALUP_RID = (0x1),
+        SECURITY_NETWORK_RID = (0x2),
+        SECURITY_BATCH_RID = (0x3),
+        SECURITY_INTERACTIVE_RID = (0x4),
+        SECURITY_LOGON_IDS_RID = (0x5),
+        SECURITY_LOGON_IDS_RID_COUNT = (0x3),
+        SECURITY_SERVICE_RID = (0x6),
+        SECURITY_LOCAL_SYSTEM_RID = (0x12),
+        SECURITY_BUILTIN_DOMAIN_RID = (0x20),
+        DOMAIN_USER_RID_ADMIN = (0x1f4),
+        DOMAIN_USER_RID_GUEST = (0x1f5),
+        DOMAIN_GROUP_RID_ADMINS = (0x200),
+        DOMAIN_GROUP_RID_USERS = (0x201),
+        DOMAIN_ALIAS_RID_ADMINS = (0x220),
+        DOMAIN_ALIAS_RID_USERS = (0x221),
+        DOMAIN_ALIAS_RID_GUESTS = (0x222),
+        DOMAIN_ALIAS_RID_POWER_USERS = (0x223),
+        DOMAIN_ALIAS_RID_ACCOUNT_OPS = (0x224),
+        DOMAIN_ALIAS_RID_SYSTEM_OPS = (0x225),
+        DOMAIN_ALIAS_RID_PRINT_OPS = (0x226),
+        DOMAIN_ALIAS_RID_BACKUP_OPS = (0x227),
+        DOMAIN_ALIAS_RID_REPLICATOR = (0x228),
+        SE_GROUP_MANDATORY = (0x1),
+        SE_GROUP_ENABLED_BY_DEFAULT = (0x2),
+        SE_GROUP_ENABLED = (0x4),
+        SE_GROUP_OWNER = (0x8),
+        SE_GROUP_LOGON_ID = (0xc0000000),
+        ACL_REVISION = (2),
+        ACCESS_ALLOWED_ACE_TYPE = (0x0),
+        ACCESS_DENIED_ACE_TYPE = (0x1),
+        SYSTEM_AUDIT_ACE_TYPE = (0x2),
+        SYSTEM_ALARM_ACE_TYPE = (0x3),
+        OBJECT_INHERIT_ACE = (0x1),
+        CONTAINER_INHERIT_ACE = (0x2),
+        NO_PROPAGATE_INHERIT_ACE = (0x4),
+        INHERIT_ONLY_ACE = (0x8),
+        SUCCESSFUL_ACCESS_ACE_FLAG = (0x40),
+        FAILED_ACCESS_ACE_FLAG = (0x80),
+        SECURITY_DESCRIPTOR_MIN_LENGTH = (20),
+        SE_OWNER_DEFAULTED = (1),
+        SE_GROUP_DEFAULTED = (2),
+        SE_DACL_PRESENT = (4),
+        SE_DACL_DEFAULTED = (8),
+        SE_SACL_PRESENT = (16),
+        SE_SACL_DEFAULTED = (32),
+        SE_SELF_RELATIVE = (32768),
+        SE_PRIVILEGE_ENABLED_BY_DEFAULT = (0x1),
+        SE_PRIVILEGE_ENABLED = (0x2),
+        SE_PRIVILEGE_USED_FOR_ACCESS = (0x80000000),
+        PRIVILEGE_SET_ALL_NECESSARY = (0x1),
+        OFN_ALLOWMULTISELECT = (0x200),
+        OFN_CREATEPROMPT = (0x2000),
+        OFN_ENABLEHOOK = (0x20),
+        OFN_ENABLETEMPLATE = (0x40),
+        OFN_ENABLETEMPLATEHANDLE = (0x80),
+        OFN_EXPLORER = (0x80000),
+        OFN_EXTENSIONDIFFERENT = (0x400),
+        OFN_FILEMUSTEXIST = (0x1000),
+        OFN_HIDEREADONLY = (0x4),
+        OFN_LONGNAMES = (0x200000),
+        OFN_NOCHANGEDIR = (0x8),
+        OFN_NODEREFERENCELINKS = (0x100000),
+        OFN_NOLONGNAMES = (0x40000),
+        OFN_NONETWORKBUTTON = (0x20000),
+        OFN_NOREADONLYRETURN = (0x8000),
+        OFN_NOTESTFILECREATE = (0x10000),
+        OFN_NOVALIDATE = (0x100),
+        OFN_OVERWRITEPROMPT = (0x2),
+        OFN_PATHMUSTEXIST = (0x800),
+        OFN_READONLY = (0x1),
+        OFN_SHAREAWARE = (0x4000),
+        OFN_SHOWHELP = (0x10),
+        OFN_SHAREFALLTHROUGH = (0x2),
+        OFN_SHARENOWARN = (0x1),
+        OFN_SHAREWARN = (0),
+        CDN_INITDONE = (0xfffffda7),
+        CDN_SELCHANGE = (0xfffffda6),
+        CDN_FOLDERCHANGE = (0xfffffda5),
+        CDN_SHAREVIOLATION = (0xfffffda4),
+        CDN_HELP = (0xfffffda3),
+        CDN_FILEOK = (0xfffffda2),
+        CDN_TYPECHANGE = (0xfffffda1),
+        CDM_GETFILEPATH = (0x465),
+        CDM_GETFOLDERIDLIST = (0x467),
+        CDM_GETFOLDERPATH = (0x466),
+        CDM_GETSPEC = (0x464),
+        CDM_HIDECONTROL = (0x469),
+        CDM_SETCONTROLTEXT = (0x468),
+        CDM_SETDEFEXT = (0x46a),
+        CC_ENABLEHOOK = (0x10),
+        CC_ENABLETEMPLATE = (0x20),
+        CC_ENABLETEMPLATEHANDLE = (0x40),
+        CC_FULLOPEN = (0x2),
+        CC_PREVENTFULLOPEN = (0x4),
+        CC_RGBINIT = (0x1),
+        CC_SHOWHELP = (0x8),
+        CC_SOLIDCOLOR = (0x80),
+        FR_DIALOGTERM = (0x40),
+        FR_DOWN = (0x1),
+        FR_ENABLEHOOK = (0x100),
+        FR_ENABLETEMPLATE = (0x200),
+        FR_ENABLETEMPLATEHANDLE = (0x2000),
+        FR_FINDNEXT = (0x8),
+        FR_HIDEUPDOWN = (0x4000),
+        FR_HIDEMATCHCASE = (0x8000),
+        FR_HIDEWHOLEWORD = (0x10000),
+        FR_MATCHCASE = (0x4),
+        FR_NOMATCHCASE = (0x800),
+        FR_NOUPDOWN = (0x400),
+        FR_NOWHOLEWORD = (0x1000),
+        FR_REPLACE = (0x10),
+        FR_REPLACEALL = (0x20),
+        FR_SHOWHELP = (0x80),
+        FR_WHOLEWORD = (0x2),
+        CF_APPLY = (0x200),
+        CF_ANSIONLY = (0x400),
+        CF_BOTH = (0x3),
+        CF_TTONLY = (0x40000),
+        CF_EFFECTS = (0x100),
+        CF_ENABLEHOOK = (0x8),
+        CF_ENABLETEMPLATE = (0x10),
+        CF_ENABLETEMPLATEHANDLE = (0x20),
+        CF_FIXEDPITCHONLY = (0x4000),
+        CF_FORCEFONTEXIST = (0x10000),
+        CF_INITTOLOGFONTSTRUCT = (0x40),
+        CF_LIMITSIZE = (0x2000),
+        CF_NOOEMFONTS = (0x800),
+        CF_NOFACESEL = (0x80000),
+        CF_NOSCRIPTSEL = (0x800000),
+        CF_NOSTYLESEL = (0x100000),
+        CF_NOSIZESEL = (0x200000),
+        CF_NOSIMULATIONS = (0x1000),
+        CF_NOVECTORFONTS = (0x800),
+        CF_NOVERTFONTS = (0x1000000),
+        CF_PRINTERFONTS = (0x2),
+        CF_SCALABLEONLY = (0x20000),
+        CF_SCREENFONTS = (0x1),
+        CF_SCRIPTSONLY = (0x400),
+        CF_SELECTSCRIPT = (0x400000),
+        CF_SHOWHELP = (0x4),
+        CF_USESTYLE = (0x80),
+        CF_WYSIWYG = (0x8000),
+        BOLD_FONTTYPE = (0x100),
+        ITALIC_FONTTYPE = (0x200),
+        PRINTER_FONTTYPE = (0x4000),
+        REGULAR_FONTTYPE = (0x400),
+        SCREEN_FONTTYPE = (0x2000),
+        SIMULATED_FONTTYPE = (0x8000),
+    }
+    const {
+    char* COLOROKSTRINGW = ("commdlg_ColorOK");
+    char* FILEOKSTRINGW = ("commdlg_FileNameOK");
+    char* FINDMSGSTRINGW = ("commdlg_FindReplace");
+    char* HELPMSGSTRINGW = ("commdlg_help");
+    char* LBSELCHSTRINGW = ("commdlg_LBSelChangedNotify");
+    char* SETRGBSTRINGW = ("commdlg_SetRGBColor");
+    char* SHAREVISTRINGW = ("commdlg_ShareViolation");
+    char* COLOROKSTRINGA = ("commdlg_ColorOK");
+    char* FILEOKSTRINGA = ("commdlg_FileNameOK");
+    char* FINDMSGSTRINGA = ("commdlg_FindReplace");
+    char* HELPMSGSTRINGA = ("commdlg_help");
+    char* LBSELCHSTRINGA = ("commdlg_LBSelChangedNotify");
+    char* SETRGBSTRINGA = ("commdlg_SetRGBColor");
+    char* SHAREVISTRINGA = ("commdlg_ShareViolation");
+    char* COLOROKSTRING = (COLOROKSTRINGA);
+    char* FILEOKSTRING = (FILEOKSTRINGA);
+    char* FINDMSGSTRING = (FINDMSGSTRINGA);
+    char* HELPMSGSTRING = (HELPMSGSTRINGA);
+    char* LBSELCHSTRING = (LBSELCHSTRINGA);
+    char* SETRGBSTRING = (SETRGBSTRINGA);
+    char* SHAREVISTRING = (SHAREVISTRINGA);
+    }
+
+    const {
+    HWND HWND_DESKTOP = cast(HWND) 0;
+    HWND HWND_BOTTOM = cast(HWND) 1;
+    HWND HWND_NOTOPMOST = cast(HWND) -2;
+    HWND HWND_TOP = cast(HWND) 0;
+    HWND HWND_TOPMOST = cast(HWND) -1;
+    HWND HWND_BROADCAST = cast(HWND) 0xFFFF;
+    }
+
+    enum : DWORD {
+        CD_LBSELCHANGE = (0),
+        CD_LBSELADD = (2),
+        CD_LBSELSUB = (1),
+        CD_LBSELNOITEMS = -((1)),
+        DN_DEFAULTPRN = (1),
+        PD_ALLPAGES = (0),
+        PD_COLLATE = (16),
+        PD_DISABLEPRINTTOFILE = (524288),
+        PD_ENABLEPRINTHOOK = (4096),
+        PD_ENABLEPRINTTEMPLATE = (16384),
+        PD_ENABLEPRINTTEMPLATEHANDLE = (65536),
+        PD_ENABLESETUPHOOK = (8192),
+        PD_ENABLESETUPTEMPLATE = (32768),
+        PD_ENABLESETUPTEMPLATEHANDLE = (131072),
+        PD_HIDEPRINTTOFILE = (1048576),
+        PD_NOPAGENUMS = (8),
+        PD_NOSELECTION = (4),
+        PD_NOWARNING = (128),
+        PD_PAGENUMS = (2),
+        PD_PRINTSETUP = (64),
+        PD_PRINTTOFILE = (32),
+        PD_RETURNDC = (256),
+        PD_RETURNDEFAULT = (1024),
+        PD_RETURNIC = (512),
+        PD_SELECTION = (1),
+        PD_SHOWHELP = (2048),
+        PD_USEDEVMODECOPIES = (262144),
+        PD_USEDEVMODECOPIESANDCOLLATE = (262144),
+        PSD_DEFAULTMINMARGINS = (0),
+        PSD_DISABLEMARGINS = (16),
+        PSD_DISABLEORIENTATION = (256),
+        PSD_DISABLEPAGEPAINTING = (524288),
+        PSD_DISABLEPAPER = (512),
+        PSD_DISABLEPRINTER = (32),
+        PSD_ENABLEPAGEPAINTHOOK = (262144),
+        PSD_ENABLEPAGESETUPHOOK = (8192),
+        PSD_ENABLEPAGESETUPTEMPLATE = (32768),
+        PSD_ENABLEPAGESETUPTEMPLATEHANDLE = (131072),
+        PSD_INHUNDREDTHSOFMILLIMETERS = (8),
+        PSD_INTHOUSANDTHSOFINCHES = (4),
+        PSD_INWININIINTLMEASURE = (0),
+        PSD_MARGINS = (2),
+        PSD_MINMARGINS = (1),
+        PSD_NOWARNING = (128),
+        PSD_RETURNDEFAULT = (1024),
+        PSD_SHOWHELP = (2048),
+        SW_OTHERUNZOOM = (4),
+        SW_OTHERZOOM = (2),
+        SW_PARENTCLOSING = (1),
+        SW_PARENTOPENING = (3),
+        VK_LBUTTON = (1),
+        VK_RBUTTON = (2),
+        VK_CANCEL = (3),
+        VK_MBUTTON = (4),
+        VK_BACK = (8),
+        VK_TAB = (9),
+        VK_CLEAR = (12),
+        VK_RETURN = (13),
+        VK_SHIFT = (16),
+        VK_CONTROL = (17),
+        VK_MENU = (18),
+        VK_PAUSE = (19),
+        VK_CAPITAL = (20),
+        VK_ESCAPE = (27),
+        VK_SPACE = (32),
+        VK_PRIOR = (33),
+        VK_NEXT = (34),
+        VK_END = (35),
+        VK_HOME = (36),
+        VK_LEFT = (37),
+        VK_UP = (38),
+        VK_RIGHT = (39),
+        VK_DOWN = (40),
+        VK_SELECT = (41),
+        VK_PRINT = (42),
+        VK_EXECUTE = (43),
+        VK_SNAPSHOT = (44),
+        VK_INSERT = (45),
+        VK_DELETE = (46),
+        VK_HELP = (47),
+        VK_0 = (48),
+        VK_1 = (49),
+        VK_2 = (50),
+        VK_3 = (51),
+        VK_4 = (52),
+        VK_5 = (53),
+        VK_6 = (54),
+        VK_7 = (55),
+        VK_8 = (56),
+        VK_9 = (57),
+        VK_A = (65),
+        VK_B = (66),
+        VK_C = (67),
+        VK_D = (68),
+        VK_E = (69),
+        VK_F = (70),
+        VK_G = (71),
+        VK_H = (72),
+        VK_I = (73),
+        VK_J = (74),
+        VK_K = (75),
+        VK_L = (76),
+        VK_M = (77),
+        VK_N = (78),
+        VK_O = (79),
+        VK_P = (80),
+        VK_Q = (81),
+        VK_R = (82),
+        VK_S = (83),
+        VK_T = (84),
+        VK_U = (85),
+        VK_V = (86),
+        VK_W = (87),
+        VK_X = (88),
+        VK_Y = (89),
+        VK_Z = (90),
+        VK_NUMPAD0 = (96),
+        VK_NUMPAD1 = (97),
+        VK_NUMPAD2 = (98),
+        VK_NUMPAD3 = (99),
+        VK_NUMPAD4 = (100),
+        VK_NUMPAD5 = (101),
+        VK_NUMPAD6 = (102),
+        VK_NUMPAD7 = (103),
+        VK_NUMPAD8 = (104),
+        VK_NUMPAD9 = (105),
+        VK_MULTIPLY = (106),
+        VK_ADD = (107),
+        VK_SEPARATOR = (108),
+        VK_SUBTRACT = (109),
+        VK_DECIMAL = (110),
+        VK_DIVIDE = (111),
+        VK_F1 = (112),
+        VK_F2 = (113),
+        VK_F3 = (114),
+        VK_F4 = (115),
+        VK_F5 = (116),
+        VK_F6 = (117),
+        VK_F7 = (118),
+        VK_F8 = (119),
+        VK_F9 = (120),
+        VK_F10 = (121),
+        VK_F11 = (122),
+        VK_F12 = (123),
+        VK_F13 = (124),
+        VK_F14 = (125),
+        VK_F15 = (126),
+        VK_F16 = (127),
+        VK_F17 = (128),
+        VK_F18 = (129),
+        VK_F19 = (130),
+        VK_F20 = (131),
+        VK_F21 = (132),
+        VK_F22 = (133),
+        VK_F23 = (134),
+        VK_F24 = (135),
+        VK_NUMLOCK = (144),
+        VK_SCROLL = (145),
+        VK_LSHIFT = (160),
+        VK_LCONTROL = (162),
+        VK_LMENU = (164),
+        VK_RSHIFT = (161),
+        VK_RCONTROL = (163),
+        VK_RMENU = (165),
+        VK_PROCESSKEY = (229),
+        KF_ALTDOWN = (8192),
+        KF_DLGMODE = (2048),
+        KF_EXTENDED = (256),
+        KF_MENUMODE = (4096),
+        KF_REPEAT = (16384),
+        KF_UP = (32768),
+        KL_NAMELENGTH = (9),
+        WA_ACTIVE = (1),
+        WA_CLICKACTIVE = (2),
+        WA_INACTIVE = (0),
+        PWR_CRITICALRESUME = (3),
+        PWR_SUSPENDREQUEST = (1),
+        PWR_SUSPENDRESUME = (2),
+        PWR_FAIL = -((1)),
+        PWR_OK = (1),
+        NF_QUERY = (3),
+        NF_REQUERY = (4),
+        NFR_ANSI = (1),
+        NFR_UNICODE = (2),
+        WMSZ_BOTTOM = (6),
+        WMSZ_BOTTOMLEFT = (7),
+        WMSZ_BOTTOMRIGHT = (8),
+        WMSZ_LEFT = (1),
+        WMSZ_RIGHT = (2),
+        WMSZ_TOP = (3),
+        WMSZ_TOPLEFT = (4),
+        WMSZ_TOPRIGHT = (5),
+        MA_ACTIVATE = (1),
+        MA_ACTIVATEANDEAT = (2),
+        MA_NOACTIVATE = (3),
+        MA_NOACTIVATEANDEAT = (4),
+        SIZE_MAXHIDE = (4),
+        SIZE_MAXIMIZED = (2),
+        SIZE_MAXSHOW = (3),
+        SIZE_MINIMIZED = (1),
+        SIZE_RESTORED = (0),
+        WVR_ALIGNTOP = (16),
+        WVR_ALIGNLEFT = (32),
+        WVR_ALIGNBOTTOM = (64),
+        WVR_ALIGNRIGHT = (128),
+        WVR_HREDRAW = (256),
+        WVR_VREDRAW = (512),
+        WVR_REDRAW = (768),
+        WVR_VALIDRECTS = (1024),
+        HTBOTTOM = (15),
+        HTBOTTOMLEFT = (16),
+        HTBOTTOMRIGHT = (17),
+        HTCAPTION = (2),
+        HTCLIENT = (1),
+        HTERROR = -((2)),
+        HTGROWBOX = (4),
+        HTHSCROLL = (6),
+        HTLEFT = (10),
+        HTMENU = (5),
+        HTNOWHERE = (0),
+        HTREDUCE = (8),
+        HTRIGHT = (11),
+        HTSIZE = (4),
+        HTSYSMENU = (3),
+        HTTOP = (12),
+        HTTOPLEFT = (13),
+        HTTOPRIGHT = (14),
+        HTTRANSPARENT = -((1)),
+        HTVSCROLL = (7),
+        HTZOOM = (9),
+        MK_CONTROL = (8),
+        MK_LBUTTON = (1),
+        MK_MBUTTON = (16),
+        MK_RBUTTON = (2),
+        MK_SHIFT = (4),
+        CS_BYTEALIGNCLIENT = (4096),
+        CS_BYTEALIGNWINDOW = (8192),
+        CS_CLASSDC = (64),
+        CS_DBLCLKS = (8),
+        CS_GLOBALCLASS = (16384),
+        CS_HREDRAW = (2),
+        CS_KEYCVTWINDOW = (4),
+        CS_NOCLOSE = (512),
+        CS_NOKEYCVT = (256),
+        CS_OWNDC = (32),
+        CS_PARENTDC = (128),
+        CS_SAVEBITS = (2048),
+        CS_VREDRAW = (1),
+        DLGWINDOWEXTRA = (30),
+        FALT = (16),
+        FCONTROL = (8),
+        FNOINVERT = (2),
+        FSHIFT = (4),
+        FVIRTKEY = (1),
+        MIIM_CHECKMARKS = (8),
+        MIIM_DATA = (32),
+        MIIM_ID = (2),
+        MIIM_STATE = (1),
+        MIIM_SUBMENU = (4),
+        MIIM_TYPE = (16),
+        MFT_BITMAP = (0x4),
+        MFT_MENUBARBREAK = (0x20),
+        MFT_MENUBREAK = (0x40),
+        MFT_OWNERDRAW = (0x100),
+        MFT_RADIOCHECK = (0x200),
+        MFT_RIGHTJUSTIFY = (0x4000),
+        MFT_SEPARATOR = (0x800),
+        MFT_STRING = (0),
+        MFS_CHECKED = (0x8),
+        MFS_DEFAULT = (0x1000),
+        MFS_DISABLED = (0x3),
+        MFS_ENABLED = (0),
+        MFS_GRAYED = (0x3),
+        MFS_HILITE = (0x80),
+        MFS_UNCHECKED = (0),
+        MFS_UNHILITE = (0),
+        SERKF_AVAILABLE = (2),
+        SERKF_INDICATOR = (4),
+        SERKF_SERIALKEYSON = (1),
+        FKF_AVAILABLE = (2),
+        FKF_CLICKON = (64),
+        FKF_FILTERKEYSON = (1),
+        FKF_HOTKEYACTIVE = (4),
+        FKF_HOTKEYSOUND = (16),
+        FKF_CONFIRMHOTKEY = (8),
+        FKF_INDICATOR = (32),
+        HELPINFO_MENUITEM = (2),
+        HELPINFO_WINDOW = (1),
+        PRF_CHECKVISIBLE = (0x1),
+        PRF_CHILDREN = (0x10),
+        PRF_CLIENT = (0x4),
+        PRF_ERASEBKGND = (0x8),
+        PRF_NONCLIENT = (0x2),
+        PRF_OWNED = (0x20),
+        SC_CLOSE = (61536),
+        SC___FILE__HELP = (61824),
+        SC_DEFAULT = (61792),
+        SC_HOTKEY = (61776),
+        SC_HSCROLL = (61568),
+        SC_KEYMENU = (61696),
+        SC_MAXIMIZE = (61488),
+        SC_ZOOM = (61488),
+        SC_MINIMIZE = (61472),
+        SC_ICON = (61472),
+        SC_MONITORPOWER = (61808),
+        SC_MOUSEMENU = (61584),
+        SC_MOVE = (61456),
+        SC_NEXTWINDOW = (61504),
+        SC_PREVWINDOW = (61520),
+        SC_RESTORE = (61728),
+        SC_SCREENSAVE = (61760),
+        SC_SIZE = (61440),
+        SC_TASKLIST = (61744),
+        SC_VSCROLL = (61552),
+        DC_HASDEFID = (21323),
+        DLGC_BUTTON = (8192),
+        DLGC_DEFPUSHBUTTON = (16),
+        DLGC_HASSETSEL = (8),
+        DLGC_RADIOBUTTON = (64),
+        DLGC_STATIC = (256),
+        DLGC_UNDEFPUSHBUTTON = (32),
+        DLGC_WANTALLKEYS = (4),
+        DLGC_WANTARROWS = (1),
+        DLGC_WANTCHARS = (128),
+        DLGC_WANTMESSAGE = (4),
+        DLGC_WANTTAB = (2),
+        EC_LEFTMARGIN = (1),
+        EC_RIGHTMARGIN = (2),
+        EC_USEFONTINFO = (65535),
+        LB_ERR = -((1)),
+        LB_ERRSPACE = -((2)),
+        LB_OKAY = (0),
+        CB_ERR = -((1)),
+        CB_ERRSPACE = -((2)),
+        IMC_GETCANDIDATEPOS = (7),
+        IMC_GETCOMPOSITIONFONT = (9),
+        IMC_GETCOMPOSITIONWINDOW = (11),
+        IMC_GETSTATUSWINDOWPOS = (15),
+        IMC_CLOSESTATUSWINDOW = (33),
+        IMC_OPENSTATUSWINDOW = (34),
+        IMC_SETCANDIDATEPOS = (8),
+        IMC_SETCOMPOSITIONFONT = (10),
+        IMC_SETCOMPOSITIONWINDOW = (12),
+        IMC_SETSTATUSWINDOWPOS = (16),
+        IMN_CHANGECANDIDATE = (3),
+        IMN_CLOSECANDIDATE = (4),
+        IMN_CLOSESTATUSWINDOW = (1),
+        IMN_GUIDELINE = (13),
+        IMN_OPENCANDIDATE = (5),
+        IMN_OPENSTATUSWINDOW = (2),
+        IMN_SETCANDIDATEPOS = (9),
+        IMN_SETCOMPOSITIONFONT = (10),
+        IMN_SETCOMPOSITIONWINDOW = (11),
+        IMN_SETCONVERSIONMODE = (6),
+        IMN_SETOPENSTATUS = (8),
+        IMN_SETSENTENCEMODE = (7),
+        IMN_SETSTATUSWINDOWPOS = (12),
+        IMN_PRIVATE = (14),
+        SKF_AUDIBLEFEEDBACK = (64),
+        SKF_AVAILABLE = (2),
+        SKF_CONFIRMHOTKEY = (8),
+        SKF_HOTKEYACTIVE = (4),
+        SKF_HOTKEYSOUND = (16),
+        SKF_INDICATOR = (32),
+        SKF_STICKYKEYSON = (1),
+        SKF_TRISTATE = (128),
+        SKF_TWOKEYSOFF = (256),
+        MKF_AVAILABLE = (2),
+        MKF_CONFIRMHOTKEY = (8),
+        MKF_HOTKEYACTIVE = (4),
+        MKF_HOTKEYSOUND = (16),
+        MKF_INDICATOR = (32),
+        MKF_MOUSEKEYSON = (1),
+        MKF_MODIFIERS = (64),
+        MKF_REPLACENUMBERS = (128),
+        SSF_AVAILABLE = (2),
+        SSF_SOUNDSENTRYON = (1),
+        SSTF_BORDER = (2),
+        SSTF_CHARS = (1),
+        SSTF_DISPLAY = (3),
+        SSTF_NONE = (0),
+        SSGF_DISPLAY = (3),
+        SSGF_NONE = (0),
+        SSWF_CUSTOM = (4),
+        SSWF_DISPLAY = (3),
+        SSWF_NONE = (0),
+        SSWF_TITLE = (1),
+        SSWF_WINDOW = (2),
+        ATF_ONOFFFEEDBACK = (2),
+        ATF_TIMEOUTON = (1),
+        HCF_AVAILABLE = (2),
+        HCF_CONFIRMHOTKEY = (8),
+        HCF_HIGHCONTRASTON = (1),
+        HCF_HOTKEYACTIVE = (4),
+        HCF_HOTKEYAVAILABLE = (64),
+        HCF_HOTKEYSOUND = (16),
+        HCF_INDICATOR = (32),
+        TKF_AVAILABLE = (2),
+        TKF_CONFIRMHOTKEY = (8),
+        TKF_HOTKEYACTIVE = (4),
+        TKF_HOTKEYSOUND = (16),
+        TKF_TOGGLEKEYSON = (1),
+        PP_DISPLAYERRORS = (1),
+        RESOURCEDISPLAYTYPE_DOMAIN = (1),
+        RESOURCEDISPLAYTYPE_FILE = (4),
+        RESOURCEDISPLAYTYPE_GENERIC = (0),
+        RESOURCEDISPLAYTYPE_GROUP = (5),
+        RESOURCEDISPLAYTYPE_SERVER = (2),
+        RESOURCEDISPLAYTYPE_SHARE = (3),
+        CAPSLOCK_ON = (128),
+        ENHANCED_KEY = (256),
+        LEFT_ALT_PRESSED = (2),
+        LEFT_CTRL_PRESSED = (8),
+        NUMLOCK_ON = (32),
+        RIGHT_ALT_PRESSED = (1),
+        RIGHT_CTRL_PRESSED = (4),
+        SCROLLLOCK_ON = (64),
+        SHIFT_PRESSED = (16),
+        FROM_LEFT_1ST_BUTTON_PRESSED = (1),
+        RIGHTMOST_BUTTON_PRESSED = (2),
+        FROM_LEFT_2ND_BUTTON_PRESSED = (4),
+        FROM_LEFT_3RD_BUTTON_PRESSED = (8),
+        FROM_LEFT_4TH_BUTTON_PRESSED = (16),
+        DOUBLE_CLICK = (2),
+        MOUSE_MOVED = (1),
+        KEY_EVENT = (1),
+        _MOUSE_EVENT = (2),
+        cMOUSE_EVENT = (2),
+        WINDOW_BUFFER_SIZE_EVENT = (4),
+        MENU_EVENT = (8),
+        FOCUS_EVENT = (16),
+        BI_RGB = (0),
+        BI_RLE8 = (1),
+        BI_RLE4 = (2),
+        BI_BITFIELDS = (3),
+        PFD_DRAW_TO_WINDOW = (0x4),
+        PFD_DRAW_TO_BITMAP = (0x8),
+        PFD_SUPPORT_GDI = (0x10),
+        PFD_SUPPORT_OPENGL = (0x20),
+        PFD_DOUBLEBUFFER = (0x1),
+        PFD_STEREO = (0x2),
+        PFD_DOUBLEBUFFER_DONTCARE = (0x40000000),
+        PFD_STEREO_DONTCARE = (0x80000000),
+        PFD_TYPE_RGBA = (0),
+        PFD_TYPE_COLORINDEX = (1),
+        PFD_MAIN_PLANE = (0),
+        PFD_OVERLAY_PLANE = (1),
+        PFD_UNDERLAY_PLANE = -((1)),
+        WGL_FONT_LINES = (0),
+        WGL_FONT_POLYGONS = (1),
+        PFD_GENERIC_FORMAT = (0x40),
+        PFD_NEED_PALETTE = (0x80),
+        PFD_NEED_SYSTEM_PALETTE = (0x100),
+        PFD_SWAP_COPY = (0x400),
+        PFD_SWAP_EXCHANGE = (0x200),
+        TMPF_FIXED_PITCH = (0x1),
+        TMPF_VECTOR = (0x2),
+        TMPF_TRUETYPE = (0x4),
+        TMPF_DEVICE = (0x8),
+        SE_ERR_SHARE = (26),
+        SE_ERR_ASSOCINCOMPLETE = (27),
+        SE_ERR_DDETIMEOUT = (28),
+        SE_ERR_DDEFAIL = (29),
+        SE_ERR_DDEBUSY = (30),
+        SE_ERR_NOASSOC = (31),
+        XCLASS_BOOL = (0x1000),
+        XCLASS_DATA = (0x2000),
+        XCLASS_FLAGS = (0x4000),
+        XCLASS_MASK = (0xfc00),
+        XCLASS_NOTIFICATION = (0x8000),
+        XTYPF_NOBLOCK = (0x0002),
+        XTYP_ADVDATA = (0x4010),
+        XTYP_ADVREQ = (0x2022),
+        XTYP_ADVSTART = (0x1030),
+        XTYP_ADVSTOP = (0x8040),
+        XTYP_CONNECT = (0x1062),
+        XTYP_CONNECT_CONFIRM = (0x8072),
+        XTYP_DISCONNECT = (0x80c2),
+        XTYP_EXECUTE = (0x4050),
+        XTYP_POKE = (0x4090),
+        XTYP_REQUEST = (0x20b0),
+        XTYP_WILDCONNECT = (0x20E2),
+        XTYP_REGISTER = (0x80A2),
+        XTYP_ERROR = (0x8002),
+        XTYP_XACT_COMPLETE = (0x8080),
+        XTYP_UNREGISTER = (0x80D2),
+        DMLERR_DLL_USAGE = (0x4004),
+        DMLERR_INVALIDPARAMETER = (0x4006),
+        DMLERR_NOTPROCESSED = (0x4009),
+        DMLERR_POSTMSG_FAILED = (0x400c),
+        DMLERR_SERVER_DIED = (0x400e),
+        DMLERR_SYS_ERROR = (0x400f),
+        DMLERR_BUSY = (0x4001),
+        DMLERR_DATAACKTIMEOUT = (0x4002),
+        DMLERR_ADVACKTIMEOUT = (0x4000),
+        DMLERR_DLL_NOT_INITIALIZED = (0x4003),
+        DMLERR_LOW_MEMORY = (0x4007),
+        DMLERR_MEMORY_ERROR = (0x4008),
+        DMLERR_POKEACKTIMEOUT = (0x400b),
+        DMLERR_NO_CONV_ESTABLISHED = (0x400a),
+        DMLERR_REENTRANCY = (0x400d),
+        DMLERR_UNFOUND_QUEUE_ID = (0x4011),
+        DMLERR_UNADVACKTIMEOUT = (0x4010),
+        DMLERR_EXECACKTIMEOUT = (0x4005),
+        DDE_FACK = (0x8000),
+        DDE_FNOTPROCESSED = (0x0000),
+        DNS_REGISTER = (0x0001),
+        DNS_UNREGISTER = (0x0002),
+        CP_WINANSI = (1004),
+        CP_WINUNICODE = (1200),
+        APPCLASS_STANDARD = (0x00000000),
+        BKMODE_LAST = (2),
+        CTLCOLOR_MSGBOX = (0),
+        CTLCOLOR_EDIT = (1),
+        CTLCOLOR_LISTBOX = (2),
+        CTLCOLOR_BTN = (3),
+        CTLCOLOR_DLG = (4),
+        CTLCOLOR_SCROLLBAR = (5),
+        CTLCOLOR_STATIC = (6),
+        CTLCOLOR_MAX = (7),
+        META_SETMAPMODE = (0x0103),
+        META_SETWINDOWORG = (0x020B),
+        META_SETWINDOWEXT = (0x020C),
+        POLYFILL_LAST = (2),
+        STATUS_WAIT_0 = (0x00000000),
+        STATUS_ABANDONED_WAIT_0 = (0x00000080),
+        STATUS_USER_APC = (0x000000C0),
+        STATUS_TIMEOUT = (0x00000102),
+        STATUS_PENDING = (0x00000103),
+        STATUS_GUARD_PAGE_VIOLATION = (0x80000001),
+        STATUS_DATATYPE_MISALIGNMENT = (0x80000002),
+        STATUS_BREAKPOINT = (0x80000003),
+        STATUS_SINGLE_STEP = (0x80000004),
+        STATUS_IN_PAGE_ERROR = (0xC0000006),
+        STATUS_INVALID_HANDLE = (0xC0000008),
+        STATUS_ILLEGAL_INSTRUCTION = (0xC000001D),
+        STATUS_NONCONTINUABLE_EXCEPTION = (0xC0000025),
+        STATUS_INVALID_DISPOSITION = (0xC0000026),
+        STATUS_ARRAY_BOUNDS_EXCEEDED = (0xC000008C),
+        STATUS_FLOAT_DENORMAL_OPERAND = (0xC000008D),
+        STATUS_FLOAT_DIVIDE_BY_ZERO = (0xC000008E),
+        STATUS_FLOAT_INEXACT_RESULT = (0xC000008F),
+        STATUS_FLOAT_INVALID_OPERATION = (0xC0000090),
+        STATUS_FLOAT_OVERFLOW = (0xC0000091),
+        STATUS_FLOAT_STACK_CHECK = (0xC0000092),
+        STATUS_FLOAT_UNDERFLOW = (0xC0000093),
+        STATUS_INTEGER_DIVIDE_BY_ZERO = (0xC0000094),
+        STATUS_INTEGER_OVERFLOW = (0xC0000095),
+        STATUS_PRIVILEGED_INSTRUCTION = (0xC0000096),
+        STATUS_STACK_OVERFLOW = (0xC00000FD),
+        STATUS_CONTROL_C_EXIT = (0xC000013A),
+        PROCESSOR_ARCHITECTURE_INTEL = (0),
+        PROCESSOR_ARCHITECTURE_MIPS = (1),
+        PROCESSOR_ARCHITECTURE_ALPHA = (2),
+        PROCESSOR_ARCHITECTURE_PPC = (3),
+        SIZEFULLSCREEN = (SIZE_MAXIMIZED),
+        SIZENORMAL = (SIZE_RESTORED),
+        SIZEICONIC = (SIZE_MINIMIZED),
+        SIZE_OF_80387_REGISTERS = (80),
+        __FILE___i386 = (0x10000),
+        __FILE___CONTROL = (__FILE___i386) | (1),
+        __FILE___INTEGER = (__FILE___i386) | (2),
+        __FILE___SEGMENTS = (__FILE___i386) | (4),
+        __FILE___FLOATING_POINT = (__FILE___i386) | (8),
+        __FILE___DEBUG_REGISTERS = (__FILE___i386) | (0x10),
+        __FILE___FULL = ((__FILE___CONTROL) | (__FILE___INTEGER)) | (__FILE___SEGMENTS),
+        FLAG_TRACE_BIT = (0x100),
+        __FILE___DEBUGGER = (__FILE___FULL) | (__FILE___FLOATING_POINT),
+        FILTER_TEMP_DUPLICATE_ACCOUNT = (0x0001),
+        FILTER_NORMAL_ACCOUNT = (0x0002),
+        FILTER_INTERDOMAIN_TRUST_ACCOUNT = (0x0008),
+        FILTER_WORKSTATION_TRUST_ACCOUNT = (0x0010),
+        FILTER_SERVER_TRUST_ACCOUNT = (0x0020),
+        LOGON32_LOGON_INTERACTIVE = (0x02),
+        LOGON32_LOGON_BATCH = (0x04),
+        LOGON32_LOGON_SERVICE = (0x05),
+        LOGON32_PROVIDER_DEFAULT = (0x00),
+        LOGON32_PROVIDER_WINNT35 = (0x01),
+        QID_SYNC = (0xFFFFFFFF),
+        IMAGE_DOS_SIGNATURE = (0x5a4d),
+        IMAGE_NT_SIGNATURE = (0x4550),
+        SEVERITY_SUCCESS = (0),
+        SEVERITY_ERROR = (1),
+        VT_EMPTY = (0),
+        VT_NULL = (1),
+        VT_I2 = (2),
+        VT_I4 = (3),
+        VT_R4 = (4),
+        VT_R8 = (5),
+        VT_BSTR = (8),
+        VT_ERROR = (10),
+        VT_BOOL = (11),
+        VT_UI1 = (17),
+        VT_BYREF = (0x4000),
+        VT_RESERVED = (0x8000),
+        FACILITY_WINDOWS = (8),
+        FACILITY_STORAGE = (3),
+        FACILITY_RPC = (1),
+        FACILITY_SSPI = (9),
+        FACILITY_WIN32 = (7),
+        FACILITY_CONTROL = (10),
+        FACILITY_NULL = (0),
+        FACILITY_INTERNET = (12),
+        FACILITY_ITF = (4),
+        FACILITY_DISPATCH = (2),
+        FACILITY_CERT = (11),
+        ACM_OPENW = (1127),
+        ACM_OPENA = (1124),
+        ACM_OPEN = (ACM_OPENA),
+        ACM_PLAY = (1125),
+        ACM_STOP = (1126),
+        ACN_START = (1),
+        ACN_STOP = (2),
+        BM_CLICK = (245),
+        BM_GETCHECK = (240),
+        BM_GETIMAGE = (246),
+        BM_GETSTATE = (242),
+        BM_SETCHECK = (241),
+        BM_SETIMAGE = (247),
+        BM_SETSTATE = (243),
+        BM_SETSTYLE = (244),
+        BN_CLICKED = (0),
+        BN_DBLCLK = (5),
+        BN_DISABLE = (4),
+        BN_DOUBLECLICKED = (5),
+        BN_HILITE = (2),
+        BN_KILLFOCUS = (7),
+        BN_PAINT = (1),
+        BN_PUSHED = (2),
+        BN_SETFOCUS = (6),
+        BN_UNHILITE = (3),
+        BN_UNPUSHED = (3),
+        CB_ADDSTRING = (323),
+        CB_DELETESTRING = (324),
+        CB_DIR = (325),
+        CB_FINDSTRING = (332),
+        CB_FINDSTRINGEXACT = (344),
+        CB_GETCOUNT = (326),
+        CB_GETCURSEL = (327),
+        CB_GETDROPPEDCONTROLRECT = (338),
+        CB_GETDROPPEDSTATE = (343),
+        CB_GETDROPPEDWIDTH = (351),
+        CB_GETEDITSEL = (320),
+        CB_GETEXTENDEDUI = (342),
+        CB_GETHORIZONTALEXTENT = (349),
+        CB_GETITEMDATA = (336),
+        CB_GETITEMHEIGHT = (340),
+        CB_GETLBTEXT = (328),
+        CB_GETLBTEXTLEN = (329),
+        CB_GETLOCALE = (346),
+        CB_GETTOPINDEX = (347),
+        CB_INITSTORAGE = (353),
+        CB_INSERTSTRING = (330),
+        CB_LIMITTEXT = (321),
+        CB_RESETCONTENT = (331),
+        CB_SELECTSTRING = (333),
+        CB_SETCURSEL = (334),
+        CB_SETDROPPEDWIDTH = (352),
+        CB_SETEDITSEL = (322),
+        CB_SETEXTENDEDUI = (341),
+        CB_SETHORIZONTALEXTENT = (350),
+        CB_SETITEMDATA = (337),
+        CB_SETITEMHEIGHT = (339),
+        CB_SETLOCALE = (345),
+        CB_SETTOPINDEX = (348),
+        CB_SHOWDROPDOWN = (335),
+        CBN_CLOSEUP = (8),
+        CBN_DBLCLK = (2),
+        CBN_DROPDOWN = (7),
+        CBN_EDITCHANGE = (5),
+        CBN_EDITUPDATE = (6),
+        CBN_ERRSPACE = -((1)),
+        CBN_KILLFOCUS = (4),
+        CBN_SELCHANGE = (1),
+        CBN_SELENDCANCEL = (10),
+        CBN_SELENDOK = (9),
+        CBN_SETFOCUS = (3),
+        DL_BEGINDRAG = (1157),
+        DL_CANCELDRAG = (1160),
+        DL_DRAGGING = (1158),
+        DL_DROPPED = (1159),
+        DM_GETDEFID = (1024),
+        DM_REPOSITION = (1026),
+        DM_SETDEFID = (1025),
+        EM_CANPASTE = (1074),
+        EM_CANUNDO = (198),
+        EM_CHARFROMPOS = (215),
+        EM_DISPLAYBAND = (1075),
+        EM_EMPTYUNDOBUFFER = (205),
+        EM_EXGETSEL = (1076),
+        EM_EXLIMITTEXT = (1077),
+        EM_EXLINEFROMCHAR = (1078),
+        EM_EXSETSEL = (1079),
+        EM_FINDTEXT = (1080),
+        EM_FINDTEXTEX = (1103),
+        EM_FINDWORDBREAK = (1100),
+        EM_FMTLINES = (200),
+        EM_FORMATRANGE = (1081),
+        EM_GETCHARFORMAT = (1082),
+        EM_GETEVENTMASK = (1083),
+        EM_GETFIRSTVISIBLELINE = (206),
+        EM_GETHANDLE = (189),
+        EM_GETLIMITTEXT = (213),
+        EM_GETLINE = (196),
+        EM_GETLINECOUNT = (186),
+        EM_GETMARGINS = (212),
+        EM_GETMODIFY = (184),
+        EM_GETIMECOLOR = (1129),
+        EM_GETIMEOPTIONS = (1131),
+        EM_GETOPTIONS = (1102),
+        EM_GETOLEINTERFACE = (1084),
+        EM_GETPARAFORMAT = (1085),
+        EM_GETPASSWORDCHAR = (210),
+        EM_GETPUNCTUATION = (1125),
+        EM_GETRECT = (178),
+        EM_GETSEL = (176),
+        EM_GETSELTEXT = (1086),
+        EM_GETTEXTRANGE = (1099),
+        EM_GETTHUMB = (190),
+        EM_GETWORDBREAKPROC = (209),
+        EM_GETWORDBREAKPROCEX = (1104),
+        EM_GETWORDWRAPMODE = (1127),
+        EM_HIDESELECTION = (1087),
+        EM_LIMITTEXT = (197),
+        EM_LINEFROMCHAR = (201),
+        EM_LINEINDEX = (187),
+        EM_LINELENGTH = (193),
+        EM_LINESCROLL = (182),
+        EM_PASTESPECIAL = (1088),
+        EM_POSFROMCHAR = (214),
+        EM_REPLACESEL = (194),
+        EM_REQUESTRESIZE = (1089),
+        EM_SCROLL = (181),
+        EM_SCROLLCARET = (183),
+        EM_SELECTIONTYPE = (1090),
+        EM_SETBKGNDCOLOR = (1091),
+        EM_SETCHARFORMAT = (1092),
+        EM_SETEVENTMASK = (1093),
+        EM_SETHANDLE = (188),
+        EM_SETIMECOLOR = (1128),
+        EM_SETIMEOPTIONS = (1130),
+        EM_SETLIMITTEXT = (197),
+        EM_SETMARGINS = (211),
+        EM_SETMODIFY = (185),
+        EM_SETOLECALLBACK = (1094),
+        EM_SETOPTIONS = (1101),
+        EM_SETPARAFORMAT = (1095),
+        EM_SETPASSWORDCHAR = (204),
+        EM_SETPUNCTUATION = (1124),
+        EM_SETREADONLY = (207),
+        EM_SETRECT = (179),
+        EM_SETRECTNP = (180),
+        EM_SETSEL = (177),
+        EM_SETTABSTOPS = (203),
+        EM_SETTARGETDEVICE = (1096),
+        EM_SETWORDBREAKPROC = (208),
+        EM_SETWORDBREAKPROCEX = (1105),
+        EM_SETWORDWRAPMODE = (1126),
+        EM_STREAMIN = (1097),
+        EM_STREAMOUT = (1098),
+        EM_UNDO = (199),
+        EN_CHANGE = (768),
+        EN_CORRECTTEXT = (1797),
+        EN_DROPFILES = (1795),
+        EN_ERRSPACE = (1280),
+        EN_HSCROLL = (1537),
+        EN_IMECHANGE = (1799),
+        EN_KILLFOCUS = (512),
+        EN_MAXTEXT = (1281),
+        EN_MSGFILTER = (1792),
+        EN_OLEOPFAILED = (1801),
+        EN_PROTECTED = (1796),
+        EN_REQUESTRESIZE = (1793),
+        EN_SAVECLIPBOARD = (1800),
+        EN_SELCHANGE = (1794),
+        EN_SETFOCUS = (256),
+        EN_STOPNOUNDO = (1798),
+        EN_UPDATE = (1024),
+        EN_VSCROLL = (1538),
+        HDM_DELETEITEM = (4610),
+        HDM_GETITEMW = (4619),
+        HDM_INSERTITEMW = (4618),
+        HDM_SETITEMW = (4620),
+        HDM_GETITEMA = (4611),
+        HDM_INSERTITEMA = (4609),
+        HDM_SETITEMA = (4612),
+        HDM_GETITEM = (HDM_GETITEMA),
+        HDM_INSERTITEM = (HDM_INSERTITEMA),
+        HDM_SETITEM = (HDM_SETITEMA),
+        HDM_GETITEMCOUNT = (4608),
+        HDM_HITTEST = (4614),
+        HDM_LAYOUT = (4613),
+        HDN_BEGINTRACKW = -((326)),
+        HDN_DIVIDERDBLCLICKW = -((325)),
+        HDN_ENDTRACKW = -((327)),
+        HDN_ITEMCHANGEDW = -((321)),
+        HDN_ITEMCHANGINGW = -((320)),
+        HDN_ITEMCLICKW = -((322)),
+        HDN_ITEMDBLCLICKW = -((323)),
+        HDN_TRACKW = -((328)),
+        HDN_BEGINTRACKA = -((306)),
+        HDN_DIVIDERDBLCLICKA = -((305)),
+        HDN_ENDTRACKA = -((307)),
+        HDN_ITEMCHANGEDA = -((301)),
+        HDN_ITEMCHANGINGA = -((300)),
+        HDN_ITEMCLICKA = -((302)),
+        HDN_ITEMDBLCLICKA = -((303)),
+        HDN_TRACKA = -((308)),
+        HDN_BEGINTRACK = (HDN_BEGINTRACKA),
+        HDN_DIVIDERDBLCLICK = (HDN_DIVIDERDBLCLICKA),
+        HDN_ENDTRACK = (HDN_ENDTRACKA),
+        HDN_ITEMCHANGED = (HDN_ITEMCHANGEDA),
+        HDN_ITEMCHANGING = (HDN_ITEMCHANGINGA),
+        HDN_ITEMCLICK = (HDN_ITEMCLICKA),
+        HDN_ITEMDBLCLICK = (HDN_ITEMDBLCLICKA),
+        HDN_TRACK = (HDN_TRACKA),
+        HKM_GETHOTKEY = (1026),
+        HKM_SETHOTKEY = (1025),
+        HKM_SETRULES = (1027),
+        LB_ADDFILE = (406),
+        LB_ADDSTRING = (384),
+        LB_DELETESTRING = (386),
+        LB_DIR = (397),
+        LB_FINDSTRING = (399),
+        LB_FINDSTRINGEXACT = (418),
+        LB_GETANCHORINDEX = (413),
+        LB_GETCARETINDEX = (415),
+        LB_GETCOUNT = (395),
+        LB_GETCURSEL = (392),
+        LB_GETHORIZONTALEXTENT = (403),
+        LB_GETITEMDATA = (409),
+        LB_GETITEMHEIGHT = (417),
+        LB_GETITEMRECT = (408),
+        LB_GETLOCALE = (422),
+        LB_GETSEL = (391),
+        LB_GETSELCOUNT = (400),
+        LB_GETSELITEMS = (401),
+        LB_GETTEXT = (393),
+        LB_GETTEXTLEN = (394),
+        LB_GETTOPINDEX = (398),
+        LB_INITSTORAGE = (424),
+        LB_INSERTSTRING = (385),
+        LB_ITEMFROMPOINT = (425),
+        LB_RESETCONTENT = (388),
+        LB_SELECTSTRING = (396),
+        LB_SELITEMRANGE = (411),
+        LB_SELITEMRANGEEX = (387),
+        LB_SETANCHORINDEX = (412),
+        LB_SETCARETINDEX = (414),
+        LB_SETCOLUMNWIDTH = (405),
+        LB_SETCOUNT = (423),
+        LB_SETCURSEL = (390),
+        LB_SETHORIZONTALEXTENT = (404),
+        LB_SETITEMDATA = (410),
+        LB_SETITEMHEIGHT = (416),
+        LB_SETLOCALE = (421),
+        LB_SETSEL = (389),
+        LB_SETTABSTOPS = (402),
+        LB_SETTOPINDEX = (407),
+        LBN_DBLCLK = (2),
+        LBN_ERRSPACE = -((2)),
+        LBN_KILLFOCUS = (5),
+        LBN_SELCANCEL = (3),
+        LBN_SELCHANGE = (1),
+        LBN_SETFOCUS = (4),
+        LVM_ARRANGE = (4118),
+        LVM_CREATEDRAGIMAGE = (4129),
+        LVM_DELETEALLITEMS = (4105),
+        LVM_DELETECOLUMN = (4124),
+        LVM_DELETEITEM = (4104),
+        LVM_ENSUREVISIBLE = (4115),
+        LVM_GETBKCOLOR = (4096),
+        LVM_GETCALLBACKMASK = (4106),
+        LVM_GETCOLUMNWIDTH = (4125),
+        LVM_GETCOUNTPERPAGE = (4136),
+        LVM_GETEDITCONTROL = (4120),
+        LVM_GETIMAGELIST = (4098),
+        LVM_EDITLABELW = (4214),
+        LVM_FINDITEMW = (4179),
+        LVM_GETCOLUMNW = (4191),
+        LVM_GETISEARCHSTRINGW = (4213),
+        LVM_GETITEMW = (4171),
+        LVM_GETITEMTEXTW = (4211),
+        LVM_GETSTRINGWIDTHW = (4183),
+        LVM_INSERTCOLUMNW = (4193),
+        LVM_INSERTITEMW = (4173),
+        LVM_SETCOLUMNW = (4192),
+        LVM_SETITEMW = (4172),
+        LVM_SETITEMTEXTW = (4212),
+        LVM_EDITLABELA = (4119),
+        LVM_FINDITEMA = (4109),
+        LVM_GETCOLUMNA = (4121),
+        LVM_GETISEARCHSTRINGA = (4148),
+        LVM_GETITEMA = (4101),
+        LVM_GETITEMTEXTA = (4141),
+        LVM_GETSTRINGWIDTHA = (4113),
+        LVM_INSERTCOLUMNA = (4123),
+        LVM_INSERTITEMA = (4103),
+        LVM_SETCOLUMNA = (4122),
+        LVM_SETITEMA = (4102),
+        LVM_SETITEMTEXTA = (4142),
+        LVM_EDITLABEL = (LVM_EDITLABELA),
+        LVM_FINDITEM = (LVM_FINDITEMA),
+        LVM_GETCOLUMN = (LVM_GETCOLUMNA),
+        LVM_GETISEARCHSTRING = (LVM_GETISEARCHSTRINGA),
+        LVM_GETITEM = (LVM_GETITEMA),
+        LVM_GETITEMTEXT = (LVM_GETITEMTEXTA),
+        LVM_GETSTRINGWIDTH = (LVM_GETSTRINGWIDTHA),
+        LVM_INSERTCOLUMN = (LVM_INSERTCOLUMNA),
+        LVM_INSERTITEM = (LVM_INSERTITEMA),
+        LVM_SETCOLUMN = (LVM_SETCOLUMNA),
+        LVM_SETITEM = (LVM_SETITEMA),
+        LVM_SETITEMTEXT = (LVM_SETITEMTEXTA),
+        LVM_GETITEMCOUNT = (4100),
+        LVM_GETITEMPOSITION = (4112),
+        LVM_GETITEMRECT = (4110),
+        LVM_GETITEMSPACING = (4147),
+        LVM_GETITEMSTATE = (4140),
+        LVM_GETNEXTITEM = (4108),
+        LVM_GETORIGIN = (4137),
+        LVM_GETSELECTEDCOUNT = (4146),
+        LVM_GETTEXTBKCOLOR = (4133),
+        LVM_GETTEXTCOLOR = (4131),
+        LVM_GETTOPINDEX = (4135),
+        LVM_GETVIEWRECT = (4130),
+        LVM_HITTEST = (4114),
+        LVM_REDRAWITEMS = (4117),
+        LVM_SCROLL = (4116),
+        LVM_SETBKCOLOR = (4097),
+        LVM_SETCALLBACKMASK = (4107),
+        LVM_SETCOLUMNWIDTH = (4126),
+        LVM_SETIMAGELIST = (4099),
+        LVM_SETITEMCOUNT = (4143),
+        LVM_SETITEMPOSITION = (4111),
+        LVM_SETITEMPOSITION32 = (4145),
+        LVM_SETITEMSTATE = (4139),
+        LVM_SETTEXTBKCOLOR = (4134),
+        LVM_SETTEXTCOLOR = (4132),
+        LVM_SORTITEMS = (4144),
+        LVM_UPDATE = (4138),
+        LVN_BEGINDRAG = -((109)),
+        LVN_BEGINRDRAG = -((111)),
+        LVN_COLUMNCLICK = -((108)),
+        LVN_DELETEALLITEMS = -((104)),
+        LVN_DELETEITEM = -((103)),
+        LVN_BEGINLABELEDITW = -((175)),
+        LVN_ENDLABELEDITW = -((176)),
+        LVN_GETDISPINFOW = -((177)),
+        LVN_SETDISPINFOW = -((178)),
+        LVN_BEGINLABELEDITA = -((105)),
+        LVN_ENDLABELEDITA = -((106)),
+        LVN_GETDISPINFOA = -((150)),
+        LVN_SETDISPINFOA = -((151)),
+        LVN_BEGINLABELEDIT = (LVN_BEGINLABELEDITA),
+        LVN_ENDLABELEDIT = (LVN_ENDLABELEDITA),
+        LVN_GETDISPINFO = (LVN_GETDISPINFOA),
+        LVN_SETDISPINFO = (LVN_SETDISPINFOA),
+        LVN_INSERTITEM = -((102)),
+        LVN_ITEMCHANGED = -((101)),
+        LVN_ITEMCHANGING = -((100)),
+        LVN_KEYDOWN = -((155)),
+        NM_CLICK = -((2)),
+        NM_DBLCLK = -((3)),
+        NM_KILLFOCUS = -((8)),
+        NM_OUTOFMEMORY = -((1)),
+        NM_RCLICK = -((5)),
+        NM_RDBLCLK = -((6)),
+        NM_RETURN = -((4)),
+        NM_SETFOCUS = -((7)),
+        PBM_DELTAPOS = (1027),
+        PBM_SETPOS = (1026),
+        PBM_SETRANGE = (1025),
+        PBM_SETSTEP = (1028),
+        PBM_STEPIT = (1029),
+        PSM_ADDPAGE = (1127),
+        PSM_APPLY = (1134),
+        PSM_CANCELTOCLOSE = (1131),
+        PSM_CHANGED = (1128),
+        PSM_GETTABCONTROL = (1140),
+        PSM_GETCURRENTPAGEHWND = (1142),
+        PSM_ISDIALOGMESSAGE = (1141),
+        PSM_PRESSBUTTON = (1137),
+        PSM_QUERYSIBLINGS = (1132),
+        PSM_REBOOTSYSTEM = (1130),
+        PSM_REMOVEPAGE = (1126),
+        PSM_RESTARTWINDOWS = (1129),
+        PSM_SETCURSEL = (1125),
+        PSM_SETCURSELID = (1138),
+        PSM_SETFINISHTEXTW = (1145),
+        PSM_SETTITLEW = (1144),
+        PSM_SETFINISHTEXTA = (1139),
+        PSM_SETTITLEA = (1135),
+        PSM_SETFINISHTEXT = (PSM_SETFINISHTEXTA),
+        PSM_SETTITLE = (PSM_SETTITLEA),
+        PSM_SETWIZBUTTONS = (1136),
+        PSM_UNCHANGED = (1133),
+        PSN_APPLY = -((202)),
+        PSN_HELP = -((205)),
+        PSN_KILLACTIVE = -((201)),
+        PSN_QUERYCANCEL = -((209)),
+        PSN_RESET = -((203)),
+        PSN_SETACTIVE = -((200)),
+        PSN_WIZBACK = -((206)),
+        PSN_WIZFINISH = -((208)),
+        PSN_WIZNEXT = -((207)),
+        SB_GETBORDERS = (1031),
+        SB_GETPARTS = (1030),
+        SB_GETRECT = (1034),
+        SB_GETTEXTW = (1037),
+        SB_GETTEXTLENGTHW = (1036),
+        SB_SETTEXTW = (1035),
+        SB_GETTEXTA = (1026),
+        SB_GETTEXTLENGTHA = (1027),
+        SB_SETTEXTA = (1025),
+        SB_GETTEXT = (SB_GETTEXTA),
+        SB_GETTEXTLENGTH = (SB_GETTEXTLENGTHA),
+        SB_SETTEXT = (SB_SETTEXTA),
+        SB_SETMINHEIGHT = (1032),
+        SB_SETPARTS = (1028),
+        SB_SIMPLE = (1033),
+        SBM_ENABLE_ARROWS = (228),
+        SBM_GETPOS = (225),
+        SBM_GETRANGE = (227),
+        SBM_GETSCROLLINFO = (234),
+        SBM_SETPOS = (224),
+        SBM_SETRANGE = (226),
+        SBM_SETRANGEREDRAW = (230),
+        SBM_SETSCROLLINFO = (233),
+        STM_GETICON = (369),
+        STM_GETIMAGE = (371),
+        STM_SETICON = (368),
+        STM_SETIMAGE = (370),
+        STN_CLICKED = (0),
+        STN_DBLCLK = (1),
+        STN_DISABLE = (3),
+        STN_ENABLE = (2),
+        TB_ADDBITMAP = (1043),
+        TB_ADDBUTTONS = (1044),
+        TB_AUTOSIZE = (1057),
+        TB_BUTTONCOUNT = (1048),
+        TB_BUTTONSTRUCTSIZE = (1054),
+        TB_CHANGEBITMAP = (1067),
+        TB_CHECKBUTTON = (1026),
+        TB_COMMANDTOINDEX = (1049),
+        TB_CUSTOMIZE = (1051),
+        TB_DELETEBUTTON = (1046),
+        TB_ENABLEBUTTON = (1025),
+        TB_GETBITMAP = (1068),
+        TB_GETBITMAPFLAGS = (1065),
+        TB_GETBUTTON = (1047),
+        TB_ADDSTRINGW = (1101),
+        TB_GETBUTTONTEXTW = (1099),
+        TB_SAVERESTOREW = (1100),
+        TB_ADDSTRINGA = (1052),
+        TB_GETBUTTONTEXTA = (1069),
+        TB_SAVERESTOREA = (1050),
+        TB_ADDSTRING = (TB_ADDSTRINGA),
+        TB_GETBUTTONTEXT = (TB_GETBUTTONTEXTA),
+        TB_SAVERESTORE = (TB_SAVERESTOREA),
+        TB_GETITEMRECT = (1053),
+        TB_GETROWS = (1064),
+        TB_GETSTATE = (1042),
+        TB_GETTOOLTIPS = (1059),
+        TB_HIDEBUTTON = (1028),
+        TB_INDETERMINATE = (1029),
+        TB_INSERTBUTTON = (1045),
+        TB_ISBUTTONCHECKED = (1034),
+        TB_ISBUTTONENABLED = (1033),
+        TB_ISBUTTONHIDDEN = (1036),
+        TB_ISBUTTONINDETERMINATE = (1037),
+        TB_ISBUTTONPRESSED = (1035),
+        TB_PRESSBUTTON = (1027),
+        TB_SETBITMAPSIZE = (1056),
+        TB_SETBUTTONSIZE = (1055),
+        TB_SETCMDID = (1066),
+        TB_SETPARENT = (1061),
+        TB_SETROWS = (1063),
+        TB_SETSTATE = (1041),
+        TB_SETTOOLTIPS = (1060),
+        TBM_CLEARSEL = (1043),
+        TBM_CLEARTICS = (1033),
+        TBM_GETCHANNELRECT = (1050),
+        TBM_GETLINESIZE = (1048),
+        TBM_GETNUMTICS = (1040),
+        TBM_GETPAGESIZE = (1046),
+        TBM_GETPOS = (1024),
+        TBM_GETPTICS = (1038),
+        TBM_GETRANGEMAX = (1026),
+        TBM_GETRANGEMIN = (1025),
+        TBM_GETSELEND = (1042),
+        TBM_GETSELSTART = (1041),
+        TBM_GETTHUMBLENGTH = (1052),
+        TBM_GETTHUMBRECT = (1049),
+        TBM_GETTIC = (1027),
+        TBM_GETTICPOS = (1039),
+        TBM_SETLINESIZE = (1047),
+        TBM_SETPAGESIZE = (1045),
+        TBM_SETPOS = (1029),
+        TBM_SETRANGE = (1030),
+        TBM_SETRANGEMAX = (1032),
+        TBM_SETRANGEMIN = (1031),
+        TBM_SETSEL = (1034),
+        TBM_SETSELEND = (1036),
+        TBM_SETSELSTART = (1035),
+        TBM_SETTHUMBLENGTH = (1051),
+        TBM_SETTIC = (1028),
+        TBM_SETTICFREQ = (1044),
+        TBN_BEGINADJUST = -((703)),
+        TBN_BEGINDRAG = -((701)),
+        TBN_CUSTHELP = -((709)),
+        TBN_ENDADJUST = -((704)),
+        TBN_ENDDRAG = -((702)),
+        TBN_GETBUTTONINFOW = -((720)),
+        TBN_GETBUTTONINFOA = -((700)),
+        TBN_GETBUTTONINFO = (TBN_GETBUTTONINFOA),
+        TBN_QUERYDELETE = -((707)),
+        TBN_QUERYINSERT = -((706)),
+        TBN_RESET = -((705)),
+        TBN_TOOLBARCHANGE = -((708)),
+        TCM_ADJUSTRECT = (4904),
+        TCM_DELETEALLITEMS = (4873),
+        TCM_DELETEITEM = (4872),
+        TCM_GETCURFOCUS = (4911),
+        TCM_GETCURSEL = (4875),
+        TCM_GETIMAGELIST = (4866),
+        TCM_GETITEMW = (4924),
+        TCM_INSERTITEMW = (4926),
+        TCM_SETITEMW = (4925),
+        TCM_GETITEMA = (4869),
+        TCM_INSERTITEMA = (4871),
+        TCM_SETITEMA = (4870),
+        TCM_GETITEM = (TCM_GETITEMA),
+        TCM_INSERTITEM = (TCM_INSERTITEMA),
+        TCM_SETITEM = (TCM_SETITEMA),
+        TCM_GETITEMCOUNT = (4868),
+        TCM_GETITEMRECT = (4874),
+        TCM_GETROWCOUNT = (4908),
+        TCM_GETTOOLTIPS = (4909),
+        TCM_HITTEST = (4877),
+        TCM_REMOVEIMAGE = (4906),
+        TCM_SETCURFOCUS = (4912),
+        TCM_SETCURSEL = (4876),
+        TCM_SETIMAGELIST = (4867),
+        TCM_SETITEMEXTRA = (4878),
+        TCM_SETITEMSIZE = (4905),
+        TCM_SETPADDING = (4907),
+        TCM_SETTOOLTIPS = (4910),
+        TCN_KEYDOWN = -((550)),
+        TCN_SELCHANGE = -((551)),
+        TCN_SELCHANGING = -((552)),
+        TTM_ACTIVATE = (1025),
+        TTM_ADDTOOLW = (1074),
+        TTM_DELTOOLW = (1075),
+        TTM_ENUMTOOLSW = (1082),
+        TTM_GETCURRENTTOOLW = (1083),
+        TTM_GETTEXTW = (1080),
+        TTM_GETTOOLINFOW = (1077),
+        TTM_HITTESTW = (1079),
+        TTM_NEWTOOLRECTW = (1076),
+        TTM_SETTOOLINFOW = (1078),
+        TTM_UPDATETIPTEXTW = (1081),
+        TTM_ADDTOOLA = (1028),
+        TTM_DELTOOLA = (1029),
+        TTM_ENUMTOOLSA = (1038),
+        TTM_GETCURRENTTOOLA = (1039),
+        TTM_GETTEXTA = (1035),
+        TTM_GETTOOLINFOA = (1032),
+        TTM_HITTESTA = (1034),
+        TTM_NEWTOOLRECTA = (1030),
+        TTM_SETTOOLINFOA = (1033),
+        TTM_UPDATETIPTEXTA = (1036),
+        TTM_ADDTOOL = (TTM_ADDTOOLA),
+        TTM_DELTOOL = (TTM_DELTOOLA),
+        TTM_ENUMTOOLS = (TTM_ENUMTOOLSA),
+        TTM_GETCURRENTTOOL = (TTM_GETCURRENTTOOLA),
+        TTM_GETTEXT = (TTM_GETTEXTA),
+        TTM_GETTOOLINFO = (TTM_GETTOOLINFOA),
+        TTM_HITTEST = (TTM_HITTESTA),
+        TTM_NEWTOOLRECT = (TTM_NEWTOOLRECTA),
+        TTM_SETTOOLINFO = (TTM_SETTOOLINFOA),
+        TTM_UPDATETIPTEXT = (TTM_UPDATETIPTEXTA),
+        TTM_GETTOOLCOUNT = (1037),
+        TTM_RELAYEVENT = (1031),
+        TTM_SETDELAYTIME = (1027),
+        TTM_WINDOWFROMPOINT = (1040),
+        TTN_NEEDTEXTW = -((530)),
+        TTN_NEEDTEXTA = -((520)),
+        TTN_NEEDTEXT = (TTN_NEEDTEXTA),
+        TTN_POP = -((522)),
+        TTN_SHOW = -((521)),
+        TVM_CREATEDRAGIMAGE = (4370),
+        TVM_DELETEITEM = (4353),
+        TVM_ENDEDITLABELNOW = (4374),
+        TVM_ENSUREVISIBLE = (4372),
+        TVM_EXPAND = (4354),
+        TVM_GETCOUNT = (4357),
+        TVM_GETEDITCONTROL = (4367),
+        TVM_GETIMAGELIST = (4360),
+        TVM_GETINDENT = (4358),
+        TVM_GETITEMRECT = (4356),
+        TVM_GETNEXTITEM = (4362),
+        TVM_GETVISIBLECOUNT = (4368),
+        TVM_HITTEST = (4369),
+        TVM_EDITLABELW = (4417),
+        TVM_GETISEARCHSTRINGW = (4416),
+        TVM_GETITEMW = (4414),
+        TVM_INSERTITEMW = (4402),
+        TVM_SETITEMW = (4415),
+        TVM_EDITLABELA = (4366),
+        TVM_GETISEARCHSTRINGA = (4375),
+        TVM_GETITEMA = (4364),
+        TVM_INSERTITEMA = (4352),
+        TVM_SETITEMA = (4365),
+        TVM_EDITLABEL = (TVM_EDITLABELA),
+        TVM_GETISEARCHSTRING = (TVM_GETISEARCHSTRINGA),
+        TVM_GETITEM = (TVM_GETITEMA),
+        TVM_INSERTITEM = (TVM_INSERTITEMA),
+        TVM_SETITEM = (TVM_SETITEMA),
+        TVM_SELECTITEM = (4363),
+        TVM_SETIMAGELIST = (4361),
+        TVM_SETINDENT = (4359),
+        TVM_SORTCHILDREN = (4371),
+        TVM_SORTCHILDRENCB = (4373),
+        TVN_KEYDOWN = -((412)),
+        TVN_BEGINDRAGW = -((456)),
+        TVN_BEGINLABELEDITW = -((459)),
+        TVN_BEGINRDRAGW = -((457)),
+        TVN_DELETEITEMW = -((458)),
+        TVN_ENDLABELEDITW = -((460)),
+        TVN_GETDISPINFOW = -((452)),
+        TVN_ITEMEXPANDEDW = -((455)),
+        TVN_ITEMEXPANDINGW = -((454)),
+        TVN_SELCHANGEDW = -((451)),
+        TVN_SELCHANGINGW = -((450)),
+        TVN_SETDISPINFOW = -((453)),
+        TVN_BEGINDRAGA = -((407)),
+        TVN_BEGINLABELEDITA = -((410)),
+        TVN_BEGINRDRAGA = -((408)),
+        TVN_DELETEITEMA = -((409)),
+        TVN_ENDLABELEDITA = -((411)),
+        TVN_GETDISPINFOA = -((403)),
+        TVN_ITEMEXPANDEDA = -((406)),
+        TVN_ITEMEXPANDINGA = -((405)),
+        TVN_SELCHANGEDA = -((402)),
+        TVN_SELCHANGINGA = -((401)),
+        TVN_SETDISPINFOA = -((404)),
+        TVN_BEGINDRAG = (TVN_BEGINDRAGA),
+        TVN_BEGINLABELEDIT = (TVN_BEGINLABELEDITA),
+        TVN_BEGINRDRAG = (TVN_BEGINRDRAGA),
+        TVN_DELETEITEM = (TVN_DELETEITEMA),
+        TVN_ENDLABELEDIT = (TVN_ENDLABELEDITA),
+        TVN_GETDISPINFO = (TVN_GETDISPINFOA),
+        TVN_ITEMEXPANDED = (TVN_ITEMEXPANDEDA),
+        TVN_ITEMEXPANDING = (TVN_ITEMEXPANDINGA),
+        TVN_SELCHANGED = (TVN_SELCHANGEDA),
+        TVN_SELCHANGING = (TVN_SELCHANGINGA),
+        TVN_SETDISPINFO = (TVN_SETDISPINFOA),
+        UDM_GETACCEL = (1132),
+        UDM_GETBASE = (1134),
+        UDM_GETBUDDY = (1130),
+        UDM_GETPOS = (1128),
+        UDM_GETRANGE = (1126),
+        UDM_SETACCEL = (1131),
+        UDM_SETBASE = (1133),
+        UDM_SETBUDDY = (1129),
+        UDM_SETPOS = (1127),
+        UDM_SETRANGE = (1125),
+        UDN_DELTAPOS = -((722)),
+        WM_ACTIVATE = (6),
+        WM_ACTIVATEAPP = (28),
+        WM_ASKCBFORMATNAME = (780),
+        WM_CANCELJOURNAL = (75),
+        WM_CANCELMODE = (31),
+        WM_CAPTURECHANGED = (533),
+        WM_CHANGECBCHAIN = (781),
+        WM_CHAR = (258),
+        WM_CHARTOITEM = (47),
+        WM_CHILDACTIVATE = (34),
+        WM_CHOOSEFONT_GETLOGFONT = (1025),
+        WM_CHOOSEFONT_SETLOGFONT = (1125),
+        WM_CHOOSEFONT_SETFLAGS = (1126),
+        WM_CLEAR = (771),
+        WM_CLOSE = (16),
+        WM_COMMAND = (273),
+        WM_COMPACTING = (65),
+        WM_COMPAREITEM = (57),
+        WM___FILE__MENU = (123),
+        WM_COPY = (769),
+        WM_COPYDATA = (74),
+        WM_CREATE = (1),
+        WM_CTLCOLORBTN = (309),
+        WM_CTLCOLORDLG = (310),
+        WM_CTLCOLOREDIT = (307),
+        WM_CTLCOLORLISTBOX = (308),
+        WM_CTLCOLORMSGBOX = (306),
+        WM_CTLCOLORSCROLLBAR = (311),
+        WM_CTLCOLORSTATIC = (312),
+        WM_CUT = (768),
+        WM_DEADCHAR = (259),
+        WM_DELETEITEM = (45),
+        WM_DESTROY = (2),
+        WM_DESTROYCLIPBOARD = (775),
+        WM_DEVICECHANGE = (537),
+        WM_DEVMODECHANGE = (27),
+        WM_DISPLAYCHANGE = (126),
+        WM_DRAWCLIPBOARD = (776),
+        WM_DRAWITEM = (43),
+        WM_DROPFILES = (563),
+        WM_ENABLE = (10),
+        WM_ENDSESSION = (22),
+        WM_ENTERIDLE = (289),
+        WM_ENTERMENULOOP = (529),
+        WM_ENTERSIZEMOVE = (561),
+        WM_ERASEBKGND = (20),
+        WM_EXITMENULOOP = (530),
+        WM_EXITSIZEMOVE = (562),
+        WM_FONTCHANGE = (29),
+        WM_GETDLGCODE = (135),
+        WM_GETFONT = (49),
+        WM_GETHOTKEY = (51),
+        WM_GETICON = (127),
+        WM_GETMINMAXINFO = (36),
+        WM_GETTEXT = (13),
+        WM_GETTEXTLENGTH = (14),
+        WM_HELP = (83),
+        WM_HOTKEY = (786),
+        WM_HSCROLL = (276),
+        WM_HSCROLLCLIPBOARD = (782),
+        WM_ICONERASEBKGND = (39),
+        WM_IME_CHAR = (646),
+        WM_IME_COMPOSITION = (271),
+        WM_IME_COMPOSITIONFULL = (644),
+        WM_IME_CONTROL = (643),
+        WM_IME_ENDCOMPOSITION = (270),
+        WM_IME_KEYDOWN = (656),
+        WM_IME_KEYUP = (657),
+        WM_IME_NOTIFY = (642),
+        WM_IME_SELECT = (645),
+        WM_IME_SET__FILE__ = (641),
+        WM_IME_STARTCOMPOSITION = (269),
+        WM_INITDIALOG = (272),
+        WM_INITMENU = (278),
+        WM_INITMENUPOPUP = (279),
+        WM_INPUTLANGCHANGE = (81),
+        WM_INPUTLANGCHANGEREQUEST = (80),
+        WM_KEYDOWN = (256),
+        WM_KEYUP = (257),
+        WM_KILLFOCUS = (8),
+        WM_LBUTTONDBLCLK = (515),
+        WM_LBUTTONDOWN = (513),
+        WM_LBUTTONUP = (514),
+        WM_MBUTTONDBLCLK = (521),
+        WM_MBUTTONDOWN = (519),
+        WM_MBUTTONUP = (520),
+        WM_MDIACTIVATE = (546),
+        WM_MDICASCADE = (551),
+        WM_MDICREATE = (544),
+        WM_MDIDESTROY = (545),
+        WM_MDIGETACTIVE = (553),
+        WM_MDIICONARRANGE = (552),
+        WM_MDIMAXIMIZE = (549),
+        WM_MDINEXT = (548),
+        WM_MDIREFRESHMENU = (564),
+        WM_MDIRESTORE = (547),
+        WM_MDISETMENU = (560),
+        WM_MDITILE = (550),
+        WM_MEASUREITEM = (44),
+        WM_MENUCHAR = (288),
+        WM_MENUSELECT = (287),
+        WM_MOUSEACTIVATE = (33),
+        WM_MOUSEMOVE = (512),
+        WM_MOUSEWHEEL = 0x020A,
+        WM_MOVE = (3),
+        WM_MOVING = (534),
+        WM_NCACTIVATE = (134),
+        WM_NCCALCSIZE = (131),
+        WM_NCCREATE = (129),
+        WM_NCDESTROY = (130),
+        WM_NCHITTEST = (132),
+        WM_NCLBUTTONDBLCLK = (163),
+        WM_NCLBUTTONDOWN = (161),
+        WM_NCLBUTTONUP = (162),
+        WM_NCMBUTTONDBLCLK = (169),
+        WM_NCMBUTTONDOWN = (167),
+        WM_NCMBUTTONUP = (168),
+        WM_NCMOUSEMOVE = (160),
+        WM_NCPAINT = (133),
+        WM_NCRBUTTONDBLCLK = (166),
+        WM_NCRBUTTONDOWN = (164),
+        WM_NCRBUTTONUP = (165),
+        WM_NEXTDLGCTL = (40),
+        WM_NOTIFY = (78),
+        WM_NOTIFYFORMAT = (85),
+        WM_NULL = (0),
+        WM_PAINT = (15),
+        WM_PAINTCLIPBOARD = (777),
+        WM_PAINTICON = (38),
+        WM_PALETTECHANGED = (785),
+        WM_PALETTEISCHANGING = (784),
+        WM_PARENTNOTIFY = (528),
+        WM_PASTE = (770),
+        WM_PENWINFIRST = (896),
+        WM_PENWINLAST = (911),
+        WM_POWER = (72),
+        WM_POWERBROADCAST = (536),
+        WM_PRINT = (791),
+        WM_PRINTCLIENT = (792),
+        WM_PSD_ENVSTAMPRECT = (1029),
+        WM_PSD_FULLPAGERECT = (1025),
+        WM_PSD_GREEKTEXTRECT = (1028),
+        WM_PSD_MARGINRECT = (1027),
+        WM_PSD_MINMARGINRECT = (1026),
+        WM_PSD_PAGESETUPDLG = (1024),
+        WM_PSD_YAFULLPAGERECT = (1030),
+        WM_QUERYDRAGICON = (55),
+        WM_QUERYENDSESSION = (17),
+        WM_QUERYNEWPALETTE = (783),
+        WM_QUERYOPEN = (19),
+        WM_QUEUESYNC = (35),
+        WM_QUIT = (18),
+        WM_RBUTTONDBLCLK = (518),
+        WM_RBUTTONDOWN = (516),
+        WM_RBUTTONUP = (517),
+        WM_RENDERALLFORMATS = (774),
+        WM_RENDERFORMAT = (773),
+        WM_SETCURSOR = (32),
+        WM_SETFOCUS = (7),
+        WM_SETFONT = (48),
+        WM_SETHOTKEY = (50),
+        WM_SETICON = (128),
+        WM_SETREDRAW = (11),
+        WM_SETTEXT = (12),
+        WM_SETTINGCHANGE = (26),
+        WM_SHOWWINDOW = (24),
+        WM_SIZE = (5),
+        WM_SIZECLIPBOARD = (779),
+        WM_SIZING = (532),
+        WM_SPOOLERSTATUS = (42),
+        WM_STYLECHANGED = (125),
+        WM_STYLECHANGING = (124),
+        WM_SYSCHAR = (262),
+        WM_SYSCOLORCHANGE = (21),
+        WM_SYSCOMMAND = (274),
+        WM_SYSDEADCHAR = (263),
+        WM_SYSKEYDOWN = (260),
+        WM_SYSKEYUP = (261),
+        WM_TCARD = (82),
+        WM_TIMECHANGE = (30),
+        WM_TIMER = (275),
+        WM_UNDO = (772),
+        WM_USER = (1024),
+        WM_USERCHANGED = (84),
+        WM_VKEYTOITEM = (46),
+        WM_VSCROLL = (277),
+        WM_VSCROLLCLIPBOARD = (778),
+        WM_WINDOWPOSCHANGED = (71),
+        WM_WINDOWPOSCHANGING = (70),
+        WM_WININICHANGE = (26),
+        WM_KEYFIRST = (256),
+        WM_KEYLAST = (264),
+        WM_MOUSEFIRST = (512),
+        WM_MOUSELAST = (521),
+    }
+    struct VA_LIST
+    {
+    }
+
+
+    struct ABC
+    {
+        int abcA;
+        UINT abcB;
+        int abcC;
+    }
+
+    alias ABC* LPABC;
+    alias ABC _ABC;
+    alias ABC TABC;
+    alias ABC* PABC;
+
+    struct ABCFLOAT
+    {
+        FLOAT abcfA;
+        FLOAT abcfB;
+        FLOAT abcfC;
+    }
+
+    alias ABCFLOAT* LPABCFLOAT;
+    alias ABCFLOAT _ABCFLOAT;
+    alias ABCFLOAT TABCFLOAT;
+    alias ABCFLOAT* PABCFLOAT;
+
+    struct ACCEL
+    {
+        ubyte fVirt;
+        ushort key;
+        ushort cmd;
+    }
+
+    alias ACCEL* LPACCEL;
+    alias ACCEL _ACCEL;
+    alias ACCEL TACCEL;
+    alias ACCEL* PACCEL;
+
+    struct ACE_HEADER
+    {
+        ubyte AceType;
+        ubyte AceFlags;
+        ushort AceSize;
+    }
+
+    alias ACE_HEADER _ACE_HEADER;
+    alias ACE_HEADER TACE_HEADER;
+    alias ACE_HEADER* PACE_HEADER;
+    alias DWORD ACCESS_MASK;
+    alias ACCESS_MASK REGSAM;
+
+    struct ACCESS_ALLOWED_ACE
+    {
+        ACE_HEADER Header;
+        ACCESS_MASK Mask;
+        DWORD SidStart;
+    }
+
+    alias ACCESS_ALLOWED_ACE _ACCESS_ALLOWED_ACE;
+    alias ACCESS_ALLOWED_ACE TACCESS_ALLOWED_ACE;
+    alias ACCESS_ALLOWED_ACE* PACCESS_ALLOWED_ACE;
+
+    struct ACCESS_DENIED_ACE
+    {
+        ACE_HEADER Header;
+        ACCESS_MASK Mask;
+        DWORD SidStart;
+    }
+
+    alias ACCESS_DENIED_ACE _ACCESS_DENIED_ACE;
+    alias ACCESS_DENIED_ACE TACCESS_DENIED_ACE;
+
+    struct ACCESSTIMEOUT
+    {
+        UINT cbSize;
+        DWORD dwFlags;
+        DWORD iTimeOutMSec;
+    }
+
+    alias ACCESSTIMEOUT _ACCESSTIMEOUT;
+    alias ACCESSTIMEOUT TACCESSTIMEOUT;
+    alias ACCESSTIMEOUT* PACCESSTIMEOUT;
+
+    struct ACL
+    {
+        ubyte AclRevision;
+        ubyte Sbz1;
+        ushort AclSize;
+        ushort AceCount;
+        ushort Sbz2;
+    }
+
+    alias ACL* PACL;
+    alias ACL _ACL;
+    alias ACL TACL;
+
+    struct ACL_REVISION_INFORMATION
+    {
+        DWORD AclRevision;
+    }
+
+    alias ACL_REVISION_INFORMATION _ACL_REVISION_INFORMATION;
+    alias ACL_REVISION_INFORMATION TACLREVISIONINFORMATION;
+    alias ACL_REVISION_INFORMATION* PACLREVISIONINFORMATION;
+
+    struct ACL_SIZE_INFORMATION
+    {
+        DWORD AceCount;
+        DWORD AclBytesInUse;
+        DWORD AclBytesFree;
+    }
+
+    alias ACL_SIZE_INFORMATION _ACL_SIZE_INFORMATION;
+    alias ACL_SIZE_INFORMATION TACLSIZEINFORMATION;
+    alias ACL_SIZE_INFORMATION* PACLSIZEINFORMATION;
+
+    struct ACTION_HEADER
+    {
+        ULONG transport_id;
+        USHORT action_code;
+        USHORT reserved;
+    }
+
+    alias ACTION_HEADER _ACTION_HEADER;
+    alias ACTION_HEADER TACTIONHEADER;
+    alias ACTION_HEADER* PACTIONHEADER;
+
+    struct ADAPTER_STATUS
+    {
+        UCHAR[1 + 5] adapter_address;
+        UCHAR rev_major;
+        UCHAR reserved0;
+        UCHAR adapter_type;
+        UCHAR rev_minor;
+        ushort duration;
+        ushort frmr_recv;
+        ushort frmr_xmit;
+        ushort iframe_recv_err;
+        ushort xmit_aborts;
+        DWORD xmit_success;
+        DWORD recv_success;
+        ushort iframe_xmit_err;
+        ushort recv_buff_unavail;
+        ushort t1_timeouts;
+        ushort ti_timeouts;
+        DWORD reserved1;
+        ushort free_ncbs;
+        ushort max_cfg_ncbs;
+        ushort max_ncbs;
+        ushort xmit_buf_unavail;
+        ushort max_dgram_size;
+        ushort pending_sess;
+        ushort max_cfg_sess;
+        ushort max_sess;
+        ushort max_sess_pkt_size;
+        ushort name_count;
+    }
+
+    alias ADAPTER_STATUS _ADAPTER_STATUS;
+    alias ADAPTER_STATUS TADAPTERSTATUS;
+    alias ADAPTER_STATUS* PADAPTERSTATUS;
+
+    struct ADDJOB_INFO_1
+    {
+        LPTSTR Path;
+        DWORD JobId;
+    }
+
+    alias ADDJOB_INFO_1 _ADDJOB_INFO_1;
+    alias ADDJOB_INFO_1 TADDJOB_INFO_1;
+    alias ADDJOB_INFO_1* PADDJOB_INFO_1;
+
+    struct ANIMATIONINFO
+    {
+        UINT cbSize;
+        int iMinAnimate;
+    }
+
+    alias ANIMATIONINFO* LPANIMATIONINFO;
+    alias ANIMATIONINFO _ANIMATIONINFO;
+    alias ANIMATIONINFO TANIMATIONINFO;
+    alias ANIMATIONINFO* PANIMATIONINFO;
+
+    struct RECT
+    {
+        LONG left;
+        LONG top;
+        LONG right;
+        LONG bottom;
+    }
+
+    alias RECT* LPCRECT;
+    alias RECT* LPRECT;
+    alias RECT _RECT;
+    alias RECT TRECT;
+    alias RECT* PRECT;
+
+    struct RECTL
+    {
+        LONG left;
+        LONG top;
+        LONG right;
+        LONG bottom;
+    }
+
+    alias RECTL _RECTL;
+    alias RECTL TRECTL;
+    alias RECTL* PRECTL;
+    alias RECTL* LPRECTL;
+    alias RECTL* LPCRECTL;
+
+    struct APPBARDATA
+    {
+        DWORD cbSize;
+        HWND hWnd;
+        UINT uCallbackMessage;
+        UINT uEdge;
+        RECT rc;
+        LPARAM lParam;
+    }
+
+    alias APPBARDATA _APPBARDATA;
+    alias APPBARDATA TAPPBARDATA;
+    alias APPBARDATA* PAPPBARDATA;
+
+    struct BITMAP
+    {
+        LONG bmType;
+        LONG bmWidth;
+        LONG bmHeight;
+        LONG bmWidthBytes;
+        ushort bmPlanes;
+        ushort bmBitsPixel;
+        LPVOID bmBits;
+    }
+
+    alias BITMAP* PBITMAP;
+    alias BITMAP* NPBITMAP;
+    alias BITMAP* LPBITMAP;
+    alias BITMAP TAGBITMAP;
+    alias BITMAP TBITMAP;
+
+    struct BITMAPCOREHEADER
+    {
+        DWORD bcSize;
+        ushort bcWidth;
+        ushort bcHeight;
+        ushort bcPlanes;
+        ushort bcBitCount;
+    }
+
+    alias BITMAPCOREHEADER TAGBITMAPCOREHEADER;
+    alias BITMAPCOREHEADER TBITMAPCOREHEADER;
+    alias BITMAPCOREHEADER* PBITMAPCOREHEADER;
+
+    struct RGBTRIPLE
+    {
+        ubyte rgbtBlue;
+        ubyte rgbtGreen;
+        ubyte rgbtRed;
+    }
+
+    alias RGBTRIPLE TAGRGBTRIPLE;
+    alias RGBTRIPLE TRGBTRIPLE;
+    alias RGBTRIPLE* PRGBTRIPLE;
+
+    struct BITMAPCOREINFO
+    {
+        BITMAPCOREHEADER bmciHeader;
+        RGBTRIPLE[1 + 0] bmciColors;
+    }
+
+    alias BITMAPCOREINFO* PBITMAPCOREINFO;
+    alias BITMAPCOREINFO* LPBITMAPCOREINFO;
+    alias BITMAPCOREINFO _BITMAPCOREINFO;
+    alias BITMAPCOREINFO TBITMAPCOREINFO;
+
+    struct BITMAPINFOHEADER
+    {
+        DWORD biSize;
+        LONG biWidth;
+        LONG biHeight;
+        ushort biPlanes;
+        ushort biBitCount;
+        DWORD biCompression;
+        DWORD biSizeImage;
+        LONG biXPelsPerMeter;
+        LONG biYPelsPerMeter;
+        DWORD biClrUsed;
+        DWORD biClrImportant;
+    }
+
+    alias BITMAPINFOHEADER* LPBITMAPINFOHEADER;
+    alias BITMAPINFOHEADER TBITMAPINFOHEADER;
+    alias BITMAPINFOHEADER* PBITMAPINFOHEADER;
+
+    struct RGBQUAD
+    {
+        ubyte rgbBlue;
+        ubyte rgbGreen;
+        ubyte rgbRed;
+        ubyte rgbReserved;
+    }
+
+    alias RGBQUAD TAGRGBQUAD;
+    alias RGBQUAD TRGBQUAD;
+    alias RGBQUAD* PRGBQUAD;
+
+    struct BITMAPINFO
+    {
+        BITMAPINFOHEADER bmiHeader;
+        RGBQUAD[1 + 0] bmiColors;
+    }
+
+    alias BITMAPINFO* LPBITMAPINFO;
+    alias BITMAPINFO* PBITMAPINFO;
+    alias BITMAPINFO TBITMAPINFO;
+    alias int FXPT2DOT30;
+    alias FXPT2DOT30* LPFXPT2DOT30;
+    alias FXPT2DOT30 TPFXPT2DOT30;
+    alias FXPT2DOT30* PPFXPT2DOT30;
+
+    struct CIEXYZ
+    {
+        FXPT2DOT30 ciexyzX;
+        FXPT2DOT30 ciexyzY;
+        FXPT2DOT30 ciexyzZ;
+    }
+
+    alias CIEXYZ TAGCIEXYZ;
+    alias CIEXYZ* LPCIEXYZ;
+    alias CIEXYZ TPCIEXYZ;
+    alias CIEXYZ* PCIEXYZ;
+
+    struct CIEXYZTRIPLE
+    {
+        CIEXYZ ciexyzRed;
+        CIEXYZ ciexyzGreen;
+        CIEXYZ ciexyzBlue;
+    }
+
+    alias CIEXYZTRIPLE TAGCIEXYZTRIPLE;
+    alias CIEXYZTRIPLE* LPCIEXYZTRIPLE;
+    alias CIEXYZTRIPLE TCIEXYZTRIPLE;
+    alias CIEXYZTRIPLE* PCIEXYZTRIPLE;
+
+    struct BITMAPV4HEADER
+    {
+        DWORD bV4Size;
+        LONG bV4Width;
+        LONG bV4Height;
+        ushort bV4Planes;
+        ushort bV4BitCount;
+        DWORD bV4V4Compression;
+        DWORD bV4SizeImage;
+        LONG bV4XPelsPerMeter;
+        LONG bV4YPelsPerMeter;
+        DWORD bV4ClrUsed;
+        DWORD bV4ClrImportant;
+        DWORD bV4RedMask;
+        DWORD bV4GreenMask;
+        DWORD bV4BlueMask;
+        DWORD bV4AlphaMask;
+        DWORD bV4CSType;
+        CIEXYZTRIPLE bV4Endpoints;
+        DWORD bV4GammaRed;
+        DWORD bV4GammaGreen;
+        DWORD bV4GammaBlue;
+    }
+
+    alias BITMAPV4HEADER* LPBITMAPV4HEADER;
+    alias BITMAPV4HEADER TBITMAPV4HEADER;
+    alias BITMAPV4HEADER* PBITMAPV4HEADER;
+
+    align(1) struct BITMAPFILEHEADER
+    {
+        ushort bfType;
+        DWORD bfSize;
+        ushort bfReserved1;
+        ushort bfReserved2;
+        DWORD bfOffBits;
+    }
+
+
+    struct BLOB
+    {
+        ULONG cbSize;
+        ubyte* pBlobData;
+    }
+
+    alias BLOB _BLOB;
+    alias BLOB TBLOB;
+    alias BLOB* PBLOB;
+
+    align(1) struct SHITEMID
+    {
+        USHORT cb;
+        ubyte[1 + 0] abID;
+    }
+
+    alias SHITEMID* LPSHITEMID;
+    alias SHITEMID* LPCSHITEMID;
+    alias SHITEMID _SHITEMID;
+    alias SHITEMID TSHITEMID;
+    alias SHITEMID* PSHITEMID;
+
+    struct ITEMIDLIST
+    {
+        SHITEMID mkid;
+    }
+
+    alias ITEMIDLIST* LPITEMIDLIST;
+    alias ITEMIDLIST* LPCITEMIDLIST;
+    alias ITEMIDLIST _ITEMIDLIST;
+    alias ITEMIDLIST TITEMIDLIST;
+    alias ITEMIDLIST* PITEMIDLIST;
+
+    struct BROWSEINFOA
+    {
+        HWND hwndOwner;
+        LPCITEMIDLIST pidlRoot;
+        LPSTR pszDisplayName;
+        LPCSTR lpszTitle;
+        UINT ulFlags;
+        BFFCALLBACK lpfn;
+        LPARAM lParam;
+        int iImage;
+    }
+    struct BROWSEINFOW
+    {
+        HWND hwndOwner;
+        LPCITEMIDLIST pidlRoot;
+        LPWSTR pszDisplayName;
+        LPCWSTR lpszTitle;
+        UINT ulFlags;
+        BFFCALLBACK lpfn;
+        LPARAM lParam;
+        int iImage;
+    }
+    version( Win32SansUnicode )
+    {
+        alias BROWSEINFOA BROWSEINFO;
+    }
+    else
+    {
+        alias BROWSEINFOW BROWSEINFO;
+    }
+    alias BROWSEINFO* PBROWSEINFO, LPBROWSEINFO;
+
+    struct FILETIME
+    {
+        DWORD dwLowDateTime;
+        DWORD dwHighDateTime;
+    }
+
+    alias FILETIME* LPFILETIME;
+    alias FILETIME _FILETIME;
+    alias FILETIME TFILETIME;
+    alias FILETIME* PFILETIME;
+
+    struct BY_HANDLE_FILE_INFORMATION
+    {
+        DWORD dwFileAttributes;
+        FILETIME ftCreationTime;
+        FILETIME ftLastAccessTime;
+        FILETIME ftLastWriteTime;
+        DWORD dwVolumeSerialNumber;
+        DWORD nFileSizeHigh;
+        DWORD nFileSizeLow;
+        DWORD nNumberOfLinks;
+        DWORD nFileIndexHigh;
+        DWORD nFileIndexLow;
+    }
+
+    alias BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION;
+    alias BY_HANDLE_FILE_INFORMATION _BY_HANDLE_FILE_INFORMATION;
+    alias BY_HANDLE_FILE_INFORMATION TBYHANDLEFILEINFORMATION;
+    alias BY_HANDLE_FILE_INFORMATION* PBYHANDLEFILEINFORMATION;
+
+    struct FIXED
+    {
+        ushort fract;
+        short value;
+    }
+
+    alias FIXED _FIXED;
+    alias FIXED TFIXED;
+    alias FIXED* PFIXED;
+
+    struct POINT
+    {
+        LONG x;
+        LONG y;
+    }
+
+    alias POINT* LPPOINT;
+    alias POINT TAGPOINT;
+    alias POINT TPOINT;
+    alias POINT* PPOINT;
+
+    struct POINTFX
+    {
+        FIXED x;
+        FIXED y;
+    }
+
+    alias POINTFX TAGPOINTFX;
+    alias POINTFX TPOINTFX;
+    alias POINTFX* PPOINTFX;
+
+    struct POINTL
+    {
+        LONG x;
+        LONG y;
+    }
+
+    alias POINTL _POINTL;
+    alias POINTL TPOINTL;
+    alias POINTL* PPOINTL;
+
+    struct TSMALLPOINT
+    {
+        byte X, Y;
+    }
+
+
+    struct POINTS
+    {
+        SHORT x;
+        SHORT y;
+    }
+
+    alias POINTS TAGPOINTS;
+    alias POINTS TPOINTS;
+    alias POINTS* PPOINTS;
+
+    struct CANDIDATEFORM
+    {
+        DWORD dwIndex;
+        DWORD dwStyle;
+        POINT ptCurrentPos;
+        RECT rcArea;
+    }
+
+    alias CANDIDATEFORM* LPCANDIDATEFORM;
+    alias CANDIDATEFORM _TAGCANDIDATEFORM;
+    alias CANDIDATEFORM TCANDIDATEFORM;
+    alias CANDIDATEFORM* PCANDIDATEFORM;
+
+    struct CANDIDATELIST
+    {
+        DWORD dwSize;
+        DWORD dwStyle;
+        DWORD dwCount;
+        DWORD dwSelection;
+        DWORD dwPageStart;
+        DWORD dwPageSize;
+        DWORD[1 + 0] dwOffset;
+    }
+
+    alias CANDIDATELIST* LPCANDIDATELIST;
+    alias CANDIDATELIST _TAGCANDIDATELIST;
+    alias CANDIDATELIST TCANDIDATELIST;
+    alias CANDIDATELIST* PCANDIDATELIST;
+
+    struct CREATESTRUCT
+    {
+        LPVOID lpCreateParams;
+        HINST hInstance;
+        HMENU hMenu;
+        HWND hwndParent;
+        int cy;
+        int cx;
+        int y;
+        int x;
+        LONG style;
+        LPCTSTR lpszName;
+        LPCTSTR lpszClass;
+        DWORD dwExStyle;
+    }
+
+    alias CREATESTRUCT* LPCREATESTRUCT;
+    alias CREATESTRUCT TAGCREATESTRUCT;
+    alias CREATESTRUCT TCREATESTRUCT;
+    alias CREATESTRUCT* PCREATESTRUCT;
+
+    struct CBT_CREATEWND
+    {
+        LPCREATESTRUCT lpcs;
+        HWND hwndInsertAfter;
+    }
+
+    alias CBT_CREATEWND TAGCBT_CREATEWND;
+    alias CBT_CREATEWND TCBT_CREATEWND;
+    alias CBT_CREATEWND* PCBT_CREATEWND;
+
+    struct CBTACTIVATESTRUCT
+    {
+        WINBOOL fMouse;
+        HWND hWndActive;
+    }
+
+    alias CBTACTIVATESTRUCT TAGCBTACTIVATESTRUCT;
+    alias CBTACTIVATESTRUCT TCBTACTIVATESTRUCT;
+    alias CBTACTIVATESTRUCT* PCBTACTIVATESTRUCT;
+
+    struct CHAR_INFO
+    {
+
+        union
+        {
+            struct
+            {
+                WCHAR UnicodeChar;
+                ushort Attributes;
+            }
+            struct
+            {
+                char AsciiChar;
+            }
+        }
+    }
+
+    alias CHAR_INFO _CHAR_INFO;
+    alias CHAR_INFO TCHAR_INFO;
+    alias CHAR_INFO* PCHAR_INFO;
+
+    struct CHARFORMAT
+    {
+        UINT cbSize;
+        DWORD dwMask;
+        DWORD dwEffects;
+        LONG yHeight;
+        LONG yOffset;
+        COLORREF crTextColor;
+        ubyte bCharSet;
+        ubyte bPitchAndFamily;
+        TCHAR[1 + LF_FACESIZE-1] szFaceName;
+    }
+
+    alias CHARFORMAT _CHARFORMAT;
+    alias CHARFORMAT TCHARFORMAT;
+    alias CHARFORMAT* PCHARFORMAT;
+
+    struct CHARRANGE
+    {
+        LONG cpMin;
+        LONG cpMax;
+    }
+
+    alias CHARRANGE _CHARRANGE;
+    alias CHARRANGE TCHARRANGE;
+    alias CHARRANGE* PCHARRANGE;
+
+    struct CHARSET
+    {
+        DWORD[1 + 2] aflBlock;
+        DWORD flLang;
+    }
+
+    alias CHARSET TAGCHARSET;
+    alias CHARSET TCHARSET;
+    alias CHARSET* PCHARSET;
+
+    struct FONTSIGNATURE
+    {
+        DWORD[1 + 3] fsUsb;
+        DWORD[1 + 1] fsCsb;
+    }
+
+    alias FONTSIGNATURE* LPFONTSIGNATURE;
+    alias FONTSIGNATURE TAGFONTSIGNATURE;
+    alias FONTSIGNATURE TFONTSIGNATURE;
+    alias FONTSIGNATURE* PFONTSIGNATURE;
+
+    struct CHARSETINFO
+    {
+        UINT ciCharset;
+        UINT ciACP;
+        FONTSIGNATURE fs;
+    }
+
+    alias CHARSETINFO* LPCHARSETINFO;
+    alias CHARSETINFO TCHARSETINFO;
+    alias CHARSETINFO* PCHARSETINFO;
+
+    struct CHOOSECOLORA {
+        DWORD        lStructSize;
+        HWND         hwndOwner;
+        HWND         hInstance;
+        COLORREF     rgbResult;
+        COLORREF*    lpCustColors;
+        DWORD        Flags;
+        LPARAM       lCustData;
+        LPCCHOOKPROC lpfnHook;
+        LPCSTR      lpTemplateName;
+    }
+    alias CHOOSECOLORA* PCHOOSECOLORA, LPCHOOSECOLORA;
+    struct CHOOSECOLORW {
+        DWORD        lStructSize;
+        HWND         hwndOwner;
+        HWND         hInstance;
+        COLORREF     rgbResult;
+        COLORREF*    lpCustColors;
+        DWORD        Flags;
+        LPARAM       lCustData;
+        LPCCHOOKPROC lpfnHook;
+        LPCWSTR      lpTemplateName;
+    }
+    alias CHOOSECOLORW* PCHOOSECOLORW, LPCHOOSECOLORW;
+    version(Win32SansUnicode)
+    {
+        alias CHOOSECOLORA CHOOSECOLOR;
+    }
+    else
+    {
+        alias CHOOSECOLORW CHOOSECOLOR;
+    }
+    alias CHOOSECOLOR* PCHOOSECOLOR, LPCHOOSECOLOR;
+
+    struct LOGFONTA
+    {
+        LONG lfHeight;
+        LONG lfWidth;
+        LONG lfEscapement;
+        LONG lfOrientation;
+        LONG lfWeight;
+        ubyte lfItalic;
+        ubyte lfUnderline;
+        ubyte lfStrikeOut;
+        ubyte lfCharSet;
+        ubyte lfOutPrecision;
+        ubyte lfClipPrecision;
+        ubyte lfQuality;
+        ubyte lfPitchAndFamily;
+        ubyte[1 + LF_FACESIZE-1] lfFaceName;
+    }
+
+    alias LOGFONTA  TLOGFONTA;
+    alias LOGFONTA* PLOGFONTA;
+    alias LOGFONTA* LPLOGFONTA;
+
+    struct LOGFONTW
+    {
+        LONG lfHeight;
+        LONG lfWidth;
+        LONG lfEscapement;
+        LONG lfOrientation;
+        LONG lfWeight;
+        ubyte lfItalic;
+        ubyte lfUnderline;
+        ubyte lfStrikeOut;
+        ubyte lfCharSet;
+        ubyte lfOutPrecision;
+        ubyte lfClipPrecision;
+        ubyte lfQuality;
+        ubyte lfPitchAndFamily;
+        WCHAR lfFaceName[LF_FACESIZE] = 0;
+    };
+
+    alias LOGFONTW  TLOGFONTW;
+    alias LOGFONTW* LPLOGFONTW;
+    alias LOGFONTW* PLOGFONTW;
+
+    version( Win32SansUnicode ){
+        alias LOGFONTA  LOGFONT;
+        alias LOGFONTA  TLOGFONT;
+        alias LOGFONTA* PLOGFONT;
+        alias LOGFONTA* LPLOGFONT;
+    }
+    else{
+        alias LOGFONTW  LOGFONT;
+        alias LOGFONTW  TLOGFONT;
+        alias LOGFONTW* PLOGFONT;
+        alias LOGFONTW* LPLOGFONT;
+    }
+
+    struct CHOOSEFONTA {
+        DWORD        lStructSize;
+        HWND         hwndOwner;
+        HDC          hDC;
+        LPLOGFONTA   lpLogFont;
+        INT          iPointSize;
+        DWORD        Flags;
+        DWORD        rgbColors;
+        LPARAM       lCustData;
+        LPCFHOOKPROC lpfnHook;
+        LPCSTR       lpTemplateName;
+        HINSTANCE    hInstance;
+        LPSTR        lpszStyle;
+        WORD         nFontType;
+        WORD         ___MISSING_ALIGNMENT__;
+        INT          nSizeMin;
+        INT          nSizeMax;
+    }
+    alias CHOOSEFONTA* PCHOOSEFONTA;
+    alias CHOOSEFONTA* LPCHOOSEFONTA;
+
+    struct CHOOSEFONTW {
+        DWORD        lStructSize;
+        HWND         hwndOwner;
+        HDC          hDC;
+        LOGFONTW*    lpLogFont;
+        INT          iPointSize;
+        DWORD        Flags;
+        DWORD        rgbColors;
+        LPARAM       lCustData;
+        LPCFHOOKPROC lpfnHook;
+        LPCWSTR      lpTemplateName;
+        HINSTANCE    hInstance;
+        LPWSTR       lpszStyle;
+        WORD         nFontType;
+        WORD         ___MISSING_ALIGNMENT__;
+        INT          nSizeMin;
+        INT          nSizeMax;
+    }
+    alias CHOOSEFONTW* PCHOOSEFONTW;
+    alias CHOOSEFONTW* LPCHOOSEFONTW;
+
+    version(Win32SansUnicode){
+        alias CHOOSEFONTA CHOOSEFONT;
+    }else{
+        alias CHOOSEFONTW CHOOSEFONT;
+    }
+
+    alias CHOOSEFONT* LPCHOOSEFONT;
+    alias CHOOSEFONT* PCHOOSEFONT;
+    alias CHOOSEFONT TCHOOSEFONT;
+
+    struct CIDA
+    {
+        UINT cidl;
+        UINT[1 + 0] aoffset;
+    }
+
+    alias CIDA* LPIDA;
+    alias CIDA _IDA;
+    alias CIDA TIDA;
+    alias CIDA* PIDA;
+
+    struct CLIENTCREATESTRUCT
+    {
+        HANDLE hWindowMenu;
+        UINT idFirstChild;
+    }
+
+    alias CLIENTCREATESTRUCT* LPCLIENTCREATESTRUCT;
+    alias CLIENTCREATESTRUCT TAGCLIENTCREATESTRUCT;
+    alias CLIENTCREATESTRUCT TCLIENTCREATESTRUCT;
+    alias CLIENTCREATESTRUCT* PCLIENTCREATESTRUCT;
+
+    struct CMINVOKECOMMANDINFO
+    {
+        DWORD cbSize;
+        DWORD fMask;
+        HWND hwnd;
+        LPCSTR lpVerb;
+        LPCSTR lpParameters;
+        LPCSTR lpDirectory;
+        int nShow;
+        DWORD dwHotKey;
+        HANDLE hIcon;
+    }
+
+    alias CMINVOKECOMMANDINFO* LPCMINVOKECOMMANDINFO;
+    alias CMINVOKECOMMANDINFO _CMINVOKECOMMANDINFO;
+    alias CMINVOKECOMMANDINFO TCMINVOKECOMMANDINFO;
+    alias CMINVOKECOMMANDINFO* PCMINVOKECOMMANDINFO;
+
+    struct COLORADJUSTMENT
+    {
+        ushort caSize;
+        ushort caFlags;
+        ushort caIlluminantIndex;
+        ushort caRedGamma;
+        ushort caGreenGamma;
+        ushort caBlueGamma;
+        ushort caReferenceBlack;
+        ushort caReferenceWhite;
+        SHORT caContrast;
+        SHORT caBrightness;
+        SHORT caColorfulness;
+        SHORT caRedGreenTint;
+    }
+
+    alias COLORADJUSTMENT* LPCOLORADJUSTMENT;
+    alias COLORADJUSTMENT TAGCOLORADJUSTMENT;
+    alias COLORADJUSTMENT TCOLORADJUSTMENT;
+    alias COLORADJUSTMENT* PCOLORADJUSTMENT;
+
+    struct COLORMAP
+    {
+        COLORREF from;
+        COLORREF _to;
+    }
+
+    alias COLORMAP* LPCOLORMAP;
+    alias COLORMAP _COLORMAP;
+    alias COLORMAP TCOLORMAP;
+    alias COLORMAP* PCOLORMAP;
+
+    struct DCB
+    {
+        DWORD DCBlength;
+        DWORD BaudRate;
+        int flag0;
+        ushort wReserved;
+        ushort XonLim;
+        ushort XoffLim;
+        ubyte ByteSize;
+        ubyte Parity;
+        ubyte StopBits;
+        char XonChar;
+        char XoffChar;
+        char ErrorChar;
+        char EofChar;
+        char EvtChar;
+        ushort wReserved1;
+    }
+
+    alias DCB* LPDCB;
+    alias DCB _DCB;
+    alias DCB TDCB;
+    alias DCB* PDCB;
+    enum : DWORD {
+        bm_DCB_fBinary = (0x1),
+        bp_DCB_fBinary = (0),
+        bm_DCB_fParity = (0x2),
+        bp_DCB_fParity = (1),
+        bm_DCB_fOutxCtsFlow = (0x4),
+        bp_DCB_fOutxCtsFlow = (2),
+        bm_DCB_fOutxDsrFlow = (0x8),
+        bp_DCB_fOutxDsrFlow = (3),
+        bm_DCB_fDtrControl = (0x30),
+        bp_DCB_fDtrControl = (4),
+        bm_DCB_fDsrSensitivity = (0x40),
+        bp_DCB_fDsrSensitivity = (6),
+        bm_DCB_fTXContinueOnXoff = (0x80),
+        bp_DCB_fTXContinueOnXoff = (7),
+        bm_DCB_fOutX = (0x100),
+        bp_DCB_fOutX = (8),
+        bm_DCB_fInX = (0x200),
+        bp_DCB_fInX = (9),
+        bm_DCB_fErrorChar = (0x400),
+        bp_DCB_fErrorChar = (10),
+        bm_DCB_fNull = (0x800),
+        bp_DCB_fNull = (11),
+        bm_DCB_fRtsControl = (0x3000),
+        bp_DCB_fRtsControl = (12),
+        bm_DCB_fAbortOnError = (0x4000),
+        bp_DCB_fAbortOnError = (14),
+        bm_DCB_fDummy2 = (0xFFFF8000),
+        bp_DCB_fDummy2 = (15),
+    }
+
+    struct COMMCONFIG
+    {
+        DWORD dwSize;
+        ushort wVersion;
+        ushort wReserved;
+        DCB dcb;
+        DWORD dwProviderSubType;
+        DWORD dwProviderOffset;
+        DWORD dwProviderSize;
+        WCHAR[1 + 0] wcProviderData;
+    }
+
+    alias COMMCONFIG* LPCOMMCONFIG;
+    alias COMMCONFIG _COMM_CONFIG;
+    alias COMMCONFIG TCOMMCONFIG;
+    alias COMMCONFIG* PCOMMCONFIG;
+
+    struct COMMPROP
+    {
+        ushort wPacketLength;
+        ushort wPacketVersion;
+        DWORD dwServiceMask;
+        DWORD dwReserved1;
+        DWORD dwMaxTxQueue;
+        DWORD dwMaxRxQueue;
+        DWORD dwMaxBaud;
+        DWORD dwProvSubType;
+        DWORD dwProvCapabilities;
+        DWORD dwSettableParams;
+        DWORD dwSettableBaud;
+        ushort wSettableData;
+        ushort wSettableStopParity;
+        DWORD dwCurrentTxQueue;
+        DWORD dwCurrentRxQueue;
+        DWORD dwProvSpec1;
+        DWORD dwProvSpec2;
+        WCHAR[1 + 0] wcProvChar;
+    }
+
+    alias COMMPROP* LPCOMMPROP;
+    alias COMMPROP _COMMPROP;
+    alias COMMPROP TCOMMPROP;
+    alias COMMPROP* PCOMMPROP;
+
+    struct COMMTIMEOUTS
+    {
+        DWORD ReadIntervalTimeout;
+        DWORD ReadTotalTimeoutMultiplier;
+        DWORD ReadTotalTimeoutConstant;
+        DWORD WriteTotalTimeoutMultiplier;
+        DWORD WriteTotalTimeoutConstant;
+    }
+
+    alias COMMTIMEOUTS* LPCOMMTIMEOUTS;
+    alias COMMTIMEOUTS _COMMTIMEOUTS;
+    alias COMMTIMEOUTS TCOMMTIMEOUTS;
+    alias COMMTIMEOUTS* PCOMMTIMEOUTS;
+
+    struct COMPAREITEMSTRUCT
+    {
+        UINT CtlType;
+        UINT CtlID;
+        HWND hwndItem;
+        UINT itemID1;
+        ULONG_PTR itemData1;
+        UINT itemID2;
+        ULONG_PTR itemData2;
+        DWORD dwLocaleId;
+    }
+
+    alias COMPAREITEMSTRUCT TAGCOMPAREITEMSTRUCT;
+    alias COMPAREITEMSTRUCT TCOMPAREITEMSTRUCT;
+    alias COMPAREITEMSTRUCT* PCOMPAREITEMSTRUCT;
+
+    struct COMPCOLOR
+    {
+        COLORREF crText;
+        COLORREF crBackground;
+        DWORD dwEffects;
+    }
+
+    alias COMPCOLOR TCOMPCOLOR;
+    alias COMPCOLOR* PCOMPCOLOR;
+
+    struct COMPOSITIONFORM
+    {
+        DWORD dwStyle;
+        POINT ptCurrentPos;
+        RECT rcArea;
+    }
+
+    alias COMPOSITIONFORM* LPCOMPOSITIONFORM;
+    alias COMPOSITIONFORM _TAGCOMPOSITIONFORM;
+    alias COMPOSITIONFORM TCOMPOSITIONFORM;
+    alias COMPOSITIONFORM* PCOMPOSITIONFORM;
+
+    struct COMSTAT
+    {
+        int flag0;
+        DWORD cbInQue;
+        DWORD cbOutQue;
+    }
+
+    alias COMSTAT* LPCOMSTAT;
+    alias COMSTAT _COMSTAT;
+    alias COMSTAT TCOMSTAT;
+    alias COMSTAT* PCOMSTAT;
+    enum : DWORD {
+        bm_COMSTAT_fCtsHold = (0x1),
+        bp_COMSTAT_fCtsHold = (0),
+        bm_COMSTAT_fDsrHold = (0x2),
+        bp_COMSTAT_fDsrHold = (1),
+        bm_COMSTAT_fRlsdHold = (0x4),
+        bp_COMSTAT_fRlsdHold = (2),
+        bm_COMSTAT_fXoffHold = (0x8),
+        bp_COMSTAT_fXoffHold = (3),
+        bm_COMSTAT_fXoffSent = (0x10),
+        bp_COMSTAT_fXoffSent = (4),
+        bm_COMSTAT_fEof = (0x20),
+        bp_COMSTAT_fEof = (5),
+        bm_COMSTAT_fTxim = (0x40),
+        bp_COMSTAT_fTxim = (6),
+        bm_COMSTAT_fReserved = (0xFFFFFF80),
+        bp_COMSTAT_fReserved = (7),
+    }
+    struct CONSOLE_CURSOR_INFO
+    {
+        DWORD dwSize;
+        WINBOOL bVisible;
+    }
+
+    alias CONSOLE_CURSOR_INFO* PCONSOLE_CURSOR_INFO;
+    alias CONSOLE_CURSOR_INFO _CONSOLE_CURSOR_INFO;
+    alias CONSOLE_CURSOR_INFO TCONSOLECURSORINFO;
+    alias CONSOLE_CURSOR_INFO* PCONSOLECURSORINFO;
+    alias CONSOLE_CURSOR_INFO TCURSORINFO;
+
+    struct COORD
+    {
+        SHORT X;
+        SHORT Y;
+    }
+
+    alias COORD _COORD;
+    alias COORD TCOORD;
+    alias COORD* PCOORD;
+
+    struct SMALL_RECT
+    {
+        SHORT Left;
+        SHORT Top;
+        SHORT Right;
+        SHORT Bottom;
+    }
+
+    alias SMALL_RECT _SMALL_RECT;
+    alias SMALL_RECT TSMALL_RECT;
+    alias SMALL_RECT* PSMALL_RECT;
+
+    align(1) struct CONSOLE_SCREEN_BUFFER_INFO
+    {
+        COORD dwSize;
+        COORD dwCursorPosition;
+        ushort wAttributes;
+        SMALL_RECT srWindow;
+        COORD dwMaximumWindowSize;
+    }
+
+    alias CONSOLE_SCREEN_BUFFER_INFO* PCONSOLE_SCREEN_BUFFER_INFO;
+    alias CONSOLE_SCREEN_BUFFER_INFO _CONSOLE_SCREEN_BUFFER_INFO;
+    alias CONSOLE_SCREEN_BUFFER_INFO TCONSOLESCREENBUFFERINFO;
+    alias CONSOLE_SCREEN_BUFFER_INFO* PCONSOLESCREENBUFFERINFO;
+
+    struct FLOATING_SAVE_AREA
+    {
+        DWORD ControlWord;
+        DWORD StatusWord;
+        DWORD TagWord;
+        DWORD ErrorOffset;
+        DWORD ErrorSelector;
+        DWORD DataOffset;
+        DWORD DataSelector;
+        ubyte[1 + 79] RegisterArea;
+        DWORD Cr0NpxState;
+    }
+
+    alias FLOATING_SAVE_AREA _FLOATING_SAVE_AREA;
+    alias FLOATING_SAVE_AREA TFLOATINGSAVEAREA;
+    alias FLOATING_SAVE_AREA* PFLOATINGSAVEAREA;
+
+    enum : DWORD
+    {
+    //
+    // The following flags control the contents of the CONTEXT structure.
+    //
+        CONTEXT_i386 = 0x00010000,    // this assumes that i386 and
+        CONTEXT_i486 = 0x00010000,    // i486 have identical context records
+
+        CONTEXT_CONTROL =         (CONTEXT_i386 | 0x00000001), // SS:SP, CS:IP, FLAGS, BP
+        CONTEXT_INTEGER =         (CONTEXT_i386 | 0x00000002), // AX, BX, CX, DX, SI, DI
+        CONTEXT_SEGMENTS =        (CONTEXT_i386 | 0x00000004), // DS, ES, FS, GS
+        CONTEXT_FLOATING_POINT =  (CONTEXT_i386 | 0x00000008), // 387 state
+        CONTEXT_DEBUG_REGISTERS = (CONTEXT_i386 | 0x00000010), // DB 0-3,6,7
+
+        CONTEXT_FULL = (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS),
+    }
+
+    struct CONTEXT
+    {
+        DWORD ContextFlags;
+        DWORD Dr0;
+        DWORD Dr1;
+        DWORD Dr2;
+        DWORD Dr3;
+        DWORD Dr6;
+        DWORD Dr7;
+        FLOATING_SAVE_AREA FloatSave;
+        DWORD SegGs;
+        DWORD SegFs;
+        DWORD SegEs;
+        DWORD SegDs;
+        DWORD Edi;
+        DWORD Esi;
+        DWORD Ebx;
+        DWORD Edx;
+        DWORD Ecx;
+        DWORD Eax;
+        DWORD Ebp;
+        DWORD Eip;
+        DWORD SegCs;
+        DWORD EFlags;
+        DWORD Esp;
+        DWORD SegSs;
+    }
+
+    alias CONTEXT* LPCONTEXT;
+    alias CONTEXT _CONTEXT;
+    alias CONTEXT TCONTEXT;
+    alias CONTEXT* PCONTEXT;
+
+    struct LIST_ENTRY
+    {
+        _LIST_ENTRY* Flink;
+        _LIST_ENTRY* Blink;
+    }
+
+    alias LIST_ENTRY _LIST_ENTRY;
+    alias LIST_ENTRY TLISTENTRY;
+    alias LIST_ENTRY* PLISTENTRY;
+
+    align(1) struct CRITICAL_SECTION_DEBUG
+    {
+        WORD _Type;
+        WORD CreatorBackTraceIndex;
+        _CRITICAL_SECTION* CriticalSection;
+        LIST_ENTRY ProcessLocksList;
+        DWORD EntryCount;
+        DWORD ContentionCount;
+        DWORD Flags;
+        WORD   CreatorBackTraceIndexHigh;
+        WORD   SpareWORD  ;
+    }
+
+    alias CRITICAL_SECTION_DEBUG* LPCRITICAL_SECTION_DEBUG;
+    alias CRITICAL_SECTION_DEBUG* PCRITICAL_SECTION_DEBUG;
+    alias CRITICAL_SECTION_DEBUG _CRITICAL_SECTION_DEBUG;
+    alias CRITICAL_SECTION_DEBUG TCRITICALSECTIONDEBUG;
+    alias CRITICAL_SECTION_DEBUG* PCRITICALSECTIONDEBUG;
+
+    align(1) struct CRITICAL_SECTION
+    {
+        PCRITICAL_SECTION_DEBUG DebugInfo;
+        LONG LockCount;
+        LONG RecursionCount;
+        HANDLE OwningThread;
+        HANDLE LockSemaphore;
+        DWORD Reserved;
+    }
+
+    alias CRITICAL_SECTION* LPCRITICAL_SECTION;
+    alias CRITICAL_SECTION* PCRITICAL_SECTION;
+    alias CRITICAL_SECTION _CRITICAL_SECTION;
+    alias CRITICAL_SECTION TCRITICALSECTION;
+    alias CRITICAL_SECTION* PCRITICALSECTION;
+
+    alias ubyte SECURITY_CONTEXT_TRACKING_MODE;
+    struct SECURITY_QUALITY_OF_SERVICE
+    {
+        DWORD Length;
+        SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
+        SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
+        BOOLEAN EffectiveOnly;
+    }
+
+    alias SECURITY_QUALITY_OF_SERVICE* PSECURITY_QUALITY_OF_SERVICE;
+    alias SECURITY_QUALITY_OF_SERVICE _SECURITY_QUALITY_OF_SERVICE;
+    alias SECURITY_QUALITY_OF_SERVICE TSECURITYQUALITYOFSERVICE;
+    alias SECURITY_QUALITY_OF_SERVICE* PSECURITYQUALITYOFSERVICE;
+
+    struct CONVCONTEXT
+    {
+        UINT cb;
+        UINT wFlags;
+        UINT wCountryID;
+        int iCodePage;
+        DWORD dwLangID;
+        DWORD dwSecurity;
+        SECURITY_QUALITY_OF_SERVICE qos;
+    }
+
+    alias CONVCONTEXT TAGCONVCONTEXT;
+    alias CONVCONTEXT TCONVCONTEXT;
+    alias CONVCONTEXT* PCONVCONTEXT;
+
+    struct CONVINFO
+    {
+        DWORD cb;
+        DWORD hUser;
+        HCONV hConvPartner;
+        HSZ hszSvcPartner;
+        HSZ hszServiceReq;
+        HSZ hszTopic;
+        HSZ hszItem;
+        UINT wFmt;
+        UINT wType;
+        UINT wStatus;
+        UINT wConvst;
+        UINT wLastError;
+        HCONVLIST hConvList;
+        CONVCONTEXT ConvCtxt;
+        HWND _hwnd;
+        HWND hwndPartner;
+    }
+
+    alias CONVINFO TAGCONVINFO;
+    alias CONVINFO TCONVINFO;
+    alias CONVINFO* PCONVINFO;
+
+    struct COPYDATASTRUCT
+    {
+        DWORD dwData;
+        DWORD cbData;
+        PVOID lpData;
+    }
+
+    alias COPYDATASTRUCT TAGCOPYDATASTRUCT;
+    alias COPYDATASTRUCT TCOPYDATASTRUCT;
+    alias COPYDATASTRUCT* PCOPYDATASTRUCT;
+
+    struct CPINFO
+    {
+        UINT MaxCharSize;
+        ubyte[1 + MAX_DEFAULTCHAR-1] DefaultChar;
+        ubyte[1 + MAX_LEADBYTES-1] LeadByte;
+    }
+
+    alias CPINFO* LPCPINFO;
+    alias CPINFO _CPINFO;
+    alias CPINFO TCPINFO;
+    alias CPINFO* PCPINFO;
+
+    struct CPLINFO
+    {
+        int idIcon;
+        int idName;
+        int idInfo;
+        LONG lData;
+    }
+
+    alias CPLINFO TAGCPLINFO;
+    alias CPLINFO TCPLINFO;
+    alias CPLINFO* PCPLINFO;
+
+    struct CREATE_PROCESS_DEBUG_INFO
+    {
+        HANDLE hFile;
+        HANDLE hProcess;
+        HANDLE hThread;
+        LPVOID lpBaseOfImage;
+        DWORD dwDebugInfoFileOffset;
+        DWORD nDebugInfoSize;
+        LPVOID lpThreadLocalBase;
+        LPTHREAD_START_ROUTINE lpStartAddress;
+        LPVOID lpImageName;
+        ushort fUnicode;
+    }
+
+    alias CREATE_PROCESS_DEBUG_INFO _CREATE_PROCESS_DEBUG_INFO;
+    alias CREATE_PROCESS_DEBUG_INFO TCREATEPROCESSDEBUGINFO;
+    alias CREATE_PROCESS_DEBUG_INFO* PCREATEPROCESSDEBUGINFO;
+
+    struct CREATE_THREAD_DEBUG_INFO
+    {
+        HANDLE hThread;
+        LPVOID lpThreadLocalBase;
+        LPTHREAD_START_ROUTINE lpStartAddress;
+    }
+
+    alias CREATE_THREAD_DEBUG_INFO _CREATE_THREAD_DEBUG_INFO;
+    alias CREATE_THREAD_DEBUG_INFO TCREATETHREADDEBUGINFO;
+    alias CREATE_THREAD_DEBUG_INFO* PCREATETHREADDEBUGINFO;
+
+    struct CURRENCYFMT
+    {
+        UINT NumDigits;
+        UINT LeadingZero;
+        UINT Grouping;
+        LPTSTR lpDecimalSep;
+        LPTSTR lpThousandSep;
+        UINT NegativeOrder;
+        UINT PositiveOrder;
+        LPTSTR lpCurrencySymbol;
+    }
+
+    alias CURRENCYFMT _CURRENCYFMT;
+    alias CURRENCYFMT TCURRENCYFMT;
+    alias CURRENCYFMT* PCURRENCYFMT;
+
+    struct CURSORSHAPE
+    {
+        int xHotSpot;
+        int yHotSpot;
+        int cx;
+        int cy;
+        int cbWidth;
+        ubyte Planes;
+        ubyte BitsPixel;
+    }
+
+    alias CURSORSHAPE* LPCURSORSHAPE;
+    alias CURSORSHAPE TAGCURSORSHAPE;
+    alias CURSORSHAPE TCURSORSHAPE;
+    alias CURSORSHAPE* PCURSORSHAPE;
+
+    struct CWPRETSTRUCT
+    {
+        LRESULT lResult;
+        LPARAM lParam;
+        WPARAM wParam;
+        DWORD message;
+        HWND hwnd;
+    }
+
+    alias CWPRETSTRUCT TAGCWPRETSTRUCT;
+    alias CWPRETSTRUCT TCWPRETSTRUCT;
+    alias CWPRETSTRUCT* PCWPRETSTRUCT;
+
+    struct CWPSTRUCT
+    {
+        LPARAM lParam;
+        WPARAM wParam;
+        UINT message;
+        HWND hwnd;
+    }
+
+    alias CWPSTRUCT TAGCWPSTRUCT;
+    alias CWPSTRUCT TCWPSTRUCT;
+    alias CWPSTRUCT* PCWPSTRUCT;
+
+    struct DATATYPES_INFO_1
+    {
+        LPTSTR pName;
+    }
+
+    alias DATATYPES_INFO_1 _DATATYPES_INFO_1;
+    alias DATATYPES_INFO_1 TDATATYPESINFO1;
+    alias DATATYPES_INFO_1* PDATATYPESINFO1;
+
+    struct DDEACK
+    {
+        ushort flag0;
+    }
+
+    alias DDEACK TDDEACK;
+    alias DDEACK* PDDEACK;
+    enum : DWORD {
+        bm_DDEACK_bAppReturnCode = (0xFF),
+        bp_DDEACK_bAppReturnCode = (0),
+        bm_DDEACK_reserved = (0x3F00),
+        bp_DDEACK_reserved = (8),
+        bm_DDEACK_fBusy = (0x4000),
+        bp_DDEACK_fBusy = (14),
+        bm_DDEACK_fAck = (0x8000),
+        bp_DDEACK_fAck = (15),
+    }
+
+    struct DDEADVISE
+    {
+        ushort flag0;
+        short cfFormat;
+    }
+
+    alias DDEADVISE TDDEADVISE;
+    alias DDEADVISE* PDDEADVISE;
+    enum : DWORD {
+        bm_DDEADVISE_reserved = (0x3FFF),
+        bp_DDEADVISE_reserved = (0),
+        bm_DDEADVISE_fDeferUpd = (0x4000),
+        bp_DDEADVISE_fDeferUpd = (14),
+        bm_DDEADVISE_fAckReq = (0x8000),
+        bp_DDEADVISE_fAckReq = (15),
+    }
+
+    struct DDEDATA
+    {
+        ushort flag0;
+        short  cfFormat;
+        ubyte[1 + 0] Value;
+    }
+
+    alias DDEDATA* PDDEDATA;
+    enum : DWORD {
+        bm_DDEDATA_unused = (0xFFF),
+        bp_DDEDATA_unused = (0),
+        bm_DDEDATA_fResponse = (0x1000),
+        bp_DDEDATA_fResponse = (12),
+        bm_DDEDATA_fRelease = (0x2000),
+        bp_DDEDATA_fRelease = (13),
+        bm_DDEDATA_reserved = (0x4000),
+        bp_DDEDATA_reserved = (14),
+        bm_DDEDATA_fAckReq = (0x8000),
+        bp_DDEDATA_fAckReq = (15),
+    }
+
+    struct DDELN
+    {
+        ushort flag0;
+        short cfFormat;
+    }
+
+    alias DDELN TDDELN;
+    alias DDELN* PDDELN;
+    enum : DWORD {
+        bm_DDELN_unused = (0x1FFF),
+        bp_DDELN_unused = (0),
+        bm_DDELN_fRelease = (0x2000),
+        bp_DDELN_fRelease = (13),
+        bm_DDELN_fDeferUpd = (0x4000),
+        bp_DDELN_fDeferUpd = (14),
+        bm_DDELN_fAckReq = (0x8000),
+        bp_DDELN_fAckReq = (15),
+    }
+
+    struct DDEML_MSG_HOOK_DATA
+    {
+        UINT uiLo;
+        UINT uiHi;
+        DWORD cbData;
+        DWORD[1 + 7] Data;
+    }
+
+    alias DDEML_MSG_HOOK_DATA TAGDDEML_MSG_HOOK_DATA;
+    alias DDEML_MSG_HOOK_DATA TDDEMLMSGHOOKDATA;
+    alias DDEML_MSG_HOOK_DATA* PDDEMLMSGHOOKDATA;
+
+    struct DDEPOKE
+    {
+        ushort flag0;
+        short cfFormat;
+        ubyte[1 + 0] Value;
+    }
+
+    alias DDEPOKE TDDEPOKE;
+    alias DDEPOKE* PDDEPOKE;
+    enum : DWORD {
+        bm_DDEPOKE_unused = (0x1FFF),
+        bp_DDEPOKE_unused = (0),
+        bm_DDEPOKE_fRelease = (0x2000),
+        bp_DDEPOKE_fRelease = (13),
+        bm_DDEPOKE_fReserved = (0xC000),
+        bp_DDEPOKE_fReserved = (14),
+    }
+    struct DDEUP
+    {
+        ushort flag0;
+        short cfFormat;
+        ubyte[1 + 0] rgb;
+    }
+
+    alias DDEUP TDDEUP;
+    alias DDEUP* PDDEUP;
+
+    enum : DWORD {
+        bm_DDEUP_unused = (0xFFF),
+        bp_DDEUP_unused = (0),
+        bm_DDEUP_fAck = (0x1000),
+        bp_DDEUP_fAck = (12),
+        bm_DDEUP_fRelease = (0x2000),
+        bp_DDEUP_fRelease = (13),
+        bm_DDEUP_fReserved = (0x4000),
+        bp_DDEUP_fReserved = (14),
+        bm_DDEUP_fAckReq = (0x8000),
+        bp_DDEUP_fAckReq = (15),
+    }
+
+    struct EXCEPTION_RECORD
+    {
+        DWORD ExceptionCode;
+        DWORD ExceptionFlags;
+        _EXCEPTION_RECORD* ExceptionRecord;
+        PVOID ExceptionAddress;
+        DWORD NumberParameters;
+        DWORD[1 + EXCEPTION_MAXIMUM_PARAMETERS-1] ExceptionInformation;
+    }
+
+    alias EXCEPTION_RECORD* PEXCEPTION_RECORD;
+    alias EXCEPTION_RECORD _EXCEPTION_RECORD;
+    alias EXCEPTION_RECORD TEXCEPTIONRECORD;
+    alias EXCEPTION_RECORD* PEXCEPTIONRECORD;
+
+    struct EXCEPTION_DEBUG_INFO
+    {
+        EXCEPTION_RECORD ExceptionRecord;
+        DWORD dwFirstChance;
+    }
+
+    alias EXCEPTION_DEBUG_INFO* PEXCEPTION_DEBUG_INFO;
+    alias EXCEPTION_DEBUG_INFO _EXCEPTION_DEBUG_INFO;
+    alias EXCEPTION_DEBUG_INFO TEXCEPTIONDEBUGINFO;
+    alias EXCEPTION_DEBUG_INFO* PEXCEPTIONDEBUGINFO;
+
+    struct EXIT_PROCESS_DEBUG_INFO
+    {
+        DWORD dwExitCode;
+    }
+
+    alias EXIT_PROCESS_DEBUG_INFO _EXIT_PROCESS_DEBUG_INFO;
+    alias EXIT_PROCESS_DEBUG_INFO TEXITPROCESSDEBUGINFO;
+    alias EXIT_PROCESS_DEBUG_INFO* PEXITPROCESSDEBUGINFO;
+
+    struct EXIT_THREAD_DEBUG_INFO
+    {
+        DWORD dwExitCode;
+    }
+
+    alias EXIT_THREAD_DEBUG_INFO _EXIT_THREAD_DEBUG_INFO;
+    alias EXIT_THREAD_DEBUG_INFO TEXITTHREADDEBUGINFO;
+    alias EXIT_THREAD_DEBUG_INFO* PEXITTHREADDEBUGINFO;
+
+    struct LOAD_DLL_DEBUG_INFO
+    {
+        HANDLE hFile;
+        LPVOID lpBaseOfDll;
+        DWORD dwDebugInfoFileOffset;
+        DWORD nDebugInfoSize;
+        LPVOID lpImageName;
+        ushort fUnicode;
+    }
+
+    alias LOAD_DLL_DEBUG_INFO _LOAD_DLL_DEBUG_INFO;
+    alias LOAD_DLL_DEBUG_INFO TLOADDLLDEBUGINFO;
+    alias LOAD_DLL_DEBUG_INFO* PLOADDLLDEBUGINFO;
+
+    struct UNLOAD_DLL_DEBUG_INFO
+    {
+        LPVOID lpBaseOfDll;
+    }
+
+    alias UNLOAD_DLL_DEBUG_INFO _UNLOAD_DLL_DEBUG_INFO;
+    alias UNLOAD_DLL_DEBUG_INFO TUNLOADDLLDEBUGINFO;
+    alias UNLOAD_DLL_DEBUG_INFO* PUNLOADDLLDEBUGINFO;
+
+    struct OUTPUT_DEBUG_STRING_INFO
+    {
+        LPSTR lpDebugStringData;
+        ushort fUnicode;
+        ushort nDebugStringLength;
+    }
+
+    alias OUTPUT_DEBUG_STRING_INFO _OUTPUT_DEBUG_STRING_INFO;
+    alias OUTPUT_DEBUG_STRING_INFO TOUTPUTDEBUGSTRINGINFO;
+    alias OUTPUT_DEBUG_STRING_INFO* POUTPUTDEBUGSTRINGINFO;
+
+    struct RIP_INFO
+    {
+        DWORD dwError;
+        DWORD dwType;
+    }
+
+    alias RIP_INFO _RIP_INFO;
+    alias RIP_INFO TRIPINFO;
+    alias RIP_INFO* PRIPINFO;
+
+    struct DEBUG_EVENT
+    {
+        DWORD dwDebugEventCode;
+        DWORD dwProcessId;
+        DWORD dwThreadId;
+
+        union
+        {
+            struct
+            {
+                EXCEPTION_DEBUG_INFO Exception;
+            }
+            struct
+            {
+                CREATE_THREAD_DEBUG_INFO CreateThread;
+            }
+            struct
+            {
+                CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
+            }
+            struct
+            {
+                EXIT_THREAD_DEBUG_INFO ExitThread;
+            }
+            struct
+            {
+                EXIT_PROCESS_DEBUG_INFO ExitProcess;
+            }
+            struct
+            {
+                LOAD_DLL_DEBUG_INFO LoadDll;
+            }
+            struct
+            {
+                UNLOAD_DLL_DEBUG_INFO UnloadDll;
+            }
+            struct
+            {
+                OUTPUT_DEBUG_STRING_INFO DebugString;
+            }
+            struct
+            {
+                RIP_INFO RipInfo;
+            }
+        }
+    }
+
+    alias DEBUG_EVENT* LPDEBUG_EVENT;
+    alias DEBUG_EVENT _DEBUG_EVENT;
+    alias DEBUG_EVENT TDEBUGEVENT;
+    alias DEBUG_EVENT* PDEBUGEVENT;
+
+    struct DEBUGHOOKINFO
+    {
+        DWORD idThread;
+        DWORD idThreadInstaller;
+        LPARAM lParam;
+        WPARAM wParam;
+        int code;
+    }
+
+    alias DEBUGHOOKINFO TAGDEBUGHOOKINFO;
+    alias DEBUGHOOKINFO TDEBUGHOOKINFO;
+    alias DEBUGHOOKINFO* PDEBUGHOOKINFO;
+
+    struct DELETEITEMSTRUCT
+    {
+        UINT CtlType;
+        UINT CtlID;
+        UINT itemID;
+        HWND hwndItem;
+        UINT itemData;
+    }
+
+    alias DELETEITEMSTRUCT TAGDELETEITEMSTRUCT;
+    alias DELETEITEMSTRUCT TDELETEITEMSTRUCT;
+    alias DELETEITEMSTRUCT* PDELETEITEMSTRUCT;
+
+    struct DEV_BROADCAST_HDR
+    {
+        ULONG dbch_size;
+        ULONG dbch_devicetype;
+        ULONG dbch_reserved;
+    }
+
+    alias DEV_BROADCAST_HDR* PDEV_BROADCAST_HDR;
+    alias DEV_BROADCAST_HDR _DEV_BROADCAST_HDR;
+    alias DEV_BROADCAST_HDR TDEVBROADCASTHDR;
+    alias DEV_BROADCAST_HDR* PDEVBROADCASTHDR;
+
+    struct DEV_BROADCAST_OEM
+    {
+        ULONG dbco_size;
+        ULONG dbco_devicetype;
+        ULONG dbco_reserved;
+        ULONG dbco_identifier;
+        ULONG dbco_suppfunc;
+    }
+
+    alias DEV_BROADCAST_OEM* PDEV_BROADCAST_OEM;
+    alias DEV_BROADCAST_OEM _DEV_BROADCAST_OEM;
+    alias DEV_BROADCAST_OEM TDEVBROADCASTOEM;
+    alias DEV_BROADCAST_OEM* PDEVBROADCASTOEM;
+
+    struct DEV_BROADCAST_PORT
+    {
+        ULONG dbcp_size;
+        ULONG dbcp_devicetype;
+        ULONG dbcp_reserved;
+        char[1 + 0] dbcp_name;
+    }
+
+    alias DEV_BROADCAST_PORT* PDEV_BROADCAST_PORT;
+    alias DEV_BROADCAST_PORT _DEV_BROADCAST_PORT;
+    alias DEV_BROADCAST_PORT TDEVBROADCASTPORT;
+    alias DEV_BROADCAST_PORT* PDEVBROADCASTPORT;
+
+    struct _DEV_BROADCAST_USERDEFINED
+    {
+        _DEV_BROADCAST_HDR dbud_dbh;
+        char[1 + 0] dbud_szName;
+        ubyte[1 + 0] dbud_rgbUserDefined;
+    }
+
+    alias _DEV_BROADCAST_USERDEFINED TDEVBROADCASTUSERDEFINED;
+    alias _DEV_BROADCAST_USERDEFINED* PDEVBROADCASTUSERDEFINED;
+
+    struct DEV_BROADCAST_VOLUME
+    {
+        ULONG dbcv_size;
+        ULONG dbcv_devicetype;
+        ULONG dbcv_reserved;
+        ULONG dbcv_unitmask;
+        USHORT dbcv_flags;
+    }
+
+    alias DEV_BROADCAST_VOLUME* PDEV_BROADCAST_VOLUME;
+    alias DEV_BROADCAST_VOLUME _DEV_BROADCAST_VOLUME;
+    alias DEV_BROADCAST_VOLUME TDEVBROADCASTVOLUME;
+    alias DEV_BROADCAST_VOLUME* PDEVBROADCASTVOLUME;
+
+    struct DEVMODE
+    {
+        BCHAR[1 + CCHDEVICENAME-1] dmDeviceName;
+        ushort dmSpecVersion;
+        ushort dmDriverVersion;
+        ushort dmSize;
+        ushort dmDriverExtra;
+        DWORD dmFields;
+        int dmOrientation;
+        int dmPaperSize;
+        int dmPaperLength;
+        int dmPaperWidth;
+        int dmScale;
+        int dmCopies;
+        int dmDefaultSource;
+        int dmPrintQuality;
+        int dmColor;
+        int dmDuplex;
+        int dmYResolution;
+        int dmTTOption;
+        int dmCollate;
+        BCHAR[1 + CCHFORMNAME-1] dmFormName;
+        ushort dmLogPixels;
+        DWORD dmBitsPerPel;
+        DWORD dmPelsWidth;
+        DWORD dmPelsHeight;
+        DWORD dmDisplayFlags;
+        DWORD dmDisplayFrequency;
+        DWORD dmICMMethod;
+        DWORD dmICMIntent;
+        DWORD dmMediaType;
+        DWORD dmDitherType;
+        DWORD dmICCManufacturer;
+        DWORD dmICCModel;
+    }
+
+    alias DEVMODE* LPDEVMODE;
+    alias DEVMODE _DEVICEMODE;
+    alias DEVMODE DEVICEMODE;
+    alias DEVMODE TDEVICEMODE;
+    alias DEVMODE TDEVICEMODEA;
+    alias DEVMODE TDEVMODE;
+    alias DEVMODE* PDEVMODE;
+
+    struct DEVNAMES
+    {
+        ushort wDriverOffset;
+        ushort wDeviceOffset;
+        ushort wOutputOffset;
+        ushort wDefault;
+    }
+
+    alias DEVNAMES* LPDEVNAMES;
+    alias DEVNAMES TAGDEVNAMES;
+    alias DEVNAMES TDEVNAMES;
+    alias DEVNAMES* PDEVNAMES;
+
+    struct DIBSECTION
+    {
+        BITMAP dsBm;
+        BITMAPINFOHEADER dsBmih;
+        DWORD[1 + 2] dsBitfields;
+        HANDLE dshSection;
+        DWORD dsOffset;
+    }
+
+    alias DIBSECTION TAGDIBSECTION;
+    alias DIBSECTION TDIBSECTION;
+    alias DIBSECTION* PDIBSECTION;
+
+    union LARGE_INTEGER
+    {
+        struct
+        {
+            DWORD LowPart;
+            LONG HighPart;
+        };
+        struct u
+        {
+            DWORD LowPart;
+            LONG HighPart;
+        };
+        LONGLONG QuadPart;
+    }
+
+    alias LARGE_INTEGER* PLARGE_INTEGER;
+    alias LARGE_INTEGER _LARGE_INTEGER;
+    alias LARGE_INTEGER TLARGEINTEGER;
+    alias LARGE_INTEGER* PLARGEINTEGER;
+
+    struct DISK_GEOMETRY
+    {
+        LARGE_INTEGER Cylinders;
+        MEDIA_TYPE MediaType;
+        DWORD TracksPerCylinder;
+        DWORD SectorsPerTrack;
+        DWORD BytesPerSector;
+    }
+
+    alias DISK_GEOMETRY _DISK_GEOMETRY;
+    alias DISK_GEOMETRY TDISKGEOMETRY;
+    alias DISK_GEOMETRY* PDISKGEOMETRY;
+
+    struct DISK_PERFORMANCE
+    {
+        LARGE_INTEGER BytesRead;
+        LARGE_INTEGER BytesWritten;
+        LARGE_INTEGER ReadTime;
+        LARGE_INTEGER WriteTime;
+        LARGE_INTEGER IdleTime;
+        DWORD ReadCount;
+        DWORD WriteCount;
+        DWORD QueueDepth;
+        DWORD SplitCount;
+        LARGE_INTEGER QueryTime;
+        DWORD StorageDeviceNumber;
+        WCHAR StorageManagerName[8];
+    }
+
+    alias DISK_PERFORMANCE _DISK_PERFORMANCE;
+    alias DISK_PERFORMANCE TDISKPERFORMANCE;
+    alias DISK_PERFORMANCE* PDISKPERFORMANCE;
+
+    align(1) struct DLGITEMTEMPLATE
+    {
+        DWORD style;
+        DWORD dwExtendedStyle;
+        short x;
+        short y;
+        short cx;
+        short cy;
+        WORD id;
+    }
+
+    alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATE;
+    alias DLGITEMTEMPLATE TDLGITEMTEMPLATE;
+    alias DLGITEMTEMPLATE* PDLGITEMTEMPLATE;
+
+    align(1) struct DLGTEMPLATE
+    {
+        DWORD style;
+        DWORD dwExtendedStyle;
+        WORD cdit;
+        short x;
+        short y;
+        short cx;
+        short cy;
+    }
+
+    alias DLGTEMPLATE* LPDLGTEMPLATE;
+    alias DLGTEMPLATE* LPCDLGTEMPLATE;
+    alias DLGTEMPLATE TDLGTEMPLATE;
+    alias DLGTEMPLATE* PDLGTEMPLATE;
+
+    struct DOC_INFO_1
+    {
+        LPTSTR pDocName;
+        LPTSTR pOutputFile;
+        LPTSTR pDatatype;
+    }
+
+    alias DOC_INFO_1 _DOC_INFO_1;
+    alias DOC_INFO_1 TDOCINFO1;
+    alias DOC_INFO_1* PDOCINFO1;
+
+    struct DOC_INFO_2
+    {
+        LPTSTR pDocName;
+        LPTSTR pOutputFile;
+        LPTSTR pDatatype;
+        DWORD dwMode;
+        DWORD JobId;
+    }
+
+    alias DOC_INFO_2 _DOC_INFO_2;
+    alias DOC_INFO_2 TDOCINFO2;
+    alias DOC_INFO_2* PDOCINFO2;
+
+    struct DOCINFOA
+    {
+        int     cbSize;
+        LPCSTR   lpszDocName;
+        LPCSTR   lpszOutput;
+        LPCSTR   lpszDatatype;
+        DWORD    fwType;
+    }
+    alias DOCINFOA TDOCINFOA;
+
+    struct DOCINFOW
+    {
+        int     cbSize;
+        LPCWSTR  lpszDocName;
+        LPCWSTR  lpszOutput;
+        LPCWSTR  lpszDatatype;
+        DWORD    fwType;
+    }
+    alias DOCINFOW TDOCINFOW;
+
+    version(Win32SansUnicode)
+    {
+        alias DOCINFOA DOCINFO;
+    }
+    else
+    {
+        alias DOCINFOW DOCINFO;
+    }
+    alias DOCINFO TDOCINFO;
+    alias DOCINFO* LPDOCINFO;
+    alias DOCINFO* PDOCINFO;
+
+
+    struct DRAGLISTINFO
+    {
+        UINT uNotification;
+        HWND hWnd;
+        POINT ptCursor;
+    }
+
+    alias DRAGLISTINFO* LPDRAGLISTINFO;
+    alias DRAGLISTINFO TDRAGLISTINFO;
+    alias DRAGLISTINFO* PDRAGLISTINFO;
+
+    struct DRAWITEMSTRUCT
+    {
+        UINT CtlType;
+        UINT CtlID;
+        UINT itemID;
+        UINT itemAction;
+        UINT itemState;
+        HWND hwndItem;
+        HDC hDC;
+        RECT rcItem;
+        DWORD itemData;
+    }
+
+    alias DRAWITEMSTRUCT* LPDRAWITEMSTRUCT;
+    alias DRAWITEMSTRUCT TAGDRAWITEMSTRUCT;
+    alias DRAWITEMSTRUCT TDRAWITEMSTRUCT;
+    alias DRAWITEMSTRUCT* PDRAWITEMSTRUCT;
+
+    struct DRAWTEXTPARAMS
+    {
+        UINT cbSize;
+        int iTabLength;
+        int iLeftMargin;
+        int iRightMargin;
+        UINT uiLengthDrawn;
+    }
+
+    alias DRAWTEXTPARAMS* LPDRAWTEXTPARAMS;
+    alias DRAWTEXTPARAMS TDRAWTEXTPARAMS;
+    alias DRAWTEXTPARAMS* PDRAWTEXTPARAMS;
+
+    struct PARTITION_INFORMATION
+    {
+        ubyte PartitionType;
+        ubyte BootIndicator;
+        ubyte RecognizedPartition;
+        ubyte RewritePartition;
+        LARGE_INTEGER StartingOffset;
+        LARGE_INTEGER PartitionLength;
+        LARGE_INTEGER HiddenSectors;
+    }
+
+    alias PARTITION_INFORMATION _PARTITION_INFORMATION;
+    alias PARTITION_INFORMATION TPARTITIONINFORMATION;
+    alias PARTITION_INFORMATION* PPARTITIONINFORMATION;
+
+    struct DRIVE_LAYOUT_INFORMATION
+    {
+        DWORD PartitionCount;
+        DWORD Signature;
+        PARTITION_INFORMATION[1 + 0] PartitionEntry;
+    }
+
+    alias DRIVE_LAYOUT_INFORMATION _DRIVE_LAYOUT_INFORMATION;
+    alias DRIVE_LAYOUT_INFORMATION TDRIVELAYOUTINFORMATION;
+    alias DRIVE_LAYOUT_INFORMATION* PDRIVELAYOUTINFORMATION;
+
+    struct DRIVER_INFO_1
+    {
+        LPTSTR pName;
+    }
+
+    alias DRIVER_INFO_1 _DRIVER_INFO_1;
+    alias DRIVER_INFO_1 TDRIVERINFO1;
+    alias DRIVER_INFO_1* PDRIVERINFO1;
+
+    struct DRIVER_INFO_2
+    {
+        DWORD cVersion;
+        LPTSTR pName;
+        LPTSTR pEnvironment;
+        LPTSTR pDriverPath;
+        LPTSTR pDataFile;
+        LPTSTR pConfigFile;
+    }
+
+    alias DRIVER_INFO_2 _DRIVER_INFO_2;
+    alias DRIVER_INFO_2 TDRIVERINFO2;
+    alias DRIVER_INFO_2* PDRIVERINFO2;
+
+    struct DRIVER_INFO_3
+    {
+        DWORD cVersion;
+        LPTSTR pName;
+        LPTSTR pEnvironment;
+        LPTSTR pDriverPath;
+        LPTSTR pDataFile;
+        LPTSTR pConfigFile;
+        LPTSTR pHelpFile;
+        LPTSTR pDependentFiles;
+        LPTSTR pMonitorName;
+        LPTSTR pDefaultDataType;
+    }
+
+    alias DRIVER_INFO_3 _DRIVER_INFO_3;
+    alias DRIVER_INFO_3 TDRIVERINFO3;
+    alias DRIVER_INFO_3* PDRIVERINFO3;
+
+    struct EDITSTREAM
+    {
+        DWORD dwCookie;
+        DWORD dwError;
+        EDITSTREAMCALLBACK pfnCallback;
+    }
+
+    alias EDITSTREAM _EDITSTREAM;
+    alias EDITSTREAM TEDITSTREAM;
+    alias EDITSTREAM* PEDITSTREAM;
+
+    struct EMR
+    {
+        DWORD iType;
+        DWORD nSize;
+    }
+
+    alias EMR TAGEMR;
+    alias EMR TEMR;
+    alias EMR* PEMR;
+
+    struct EMRANGLEARC
+    {
+        EMR emr;
+        POINTL ptlCenter;
+        DWORD nRadius;
+        FLOAT eStartAngle;
+        FLOAT eSweepAngle;
+    }
+
+    alias EMRANGLEARC TAGEMRANGLEARC;
+    alias EMRANGLEARC TEMRANGLEARC;
+    alias EMRANGLEARC* PEMRANGLEARC;
+
+    struct EMRARC
+    {
+        EMR emr;
+        RECTL rclBox;
+        POINTL ptlStart;
+        POINTL ptlEnd;
+    }
+
+    alias EMRARC TAGEMRARC;
+    alias EMRARC TEMRARC;
+    alias EMRARC* PEMRARC;
+    alias EMRARC EMRARCTO;
+    alias EMRARC TEMRARCTO;
+    alias EMRARC* PEMRARCTO;
+    alias EMRARC EMRCHORD;
+    alias EMRARC TEMRCHORD;
+    alias EMRARC* PEMRCHORD;
+    alias EMRARC EMRPIE;
+    alias EMRARC TEMRPIE;
+    alias EMRARC* PEMRPIE;
+
+    struct XFORM
+    {
+        FLOAT eM11;
+        FLOAT eM12;
+        FLOAT eM21;
+        FLOAT eM22;
+        FLOAT eDx;
+        FLOAT eDy;
+    }
+
+    alias XFORM* LPXFORM;
+    alias XFORM _XFORM;
+    alias XFORM TXFORM;
+    alias XFORM* PXFORM;
+
+    struct EMRBITBLT
+    {
+        EMR emr;
+        RECTL rclBounds;
+        LONG xDest;
+        LONG yDest;
+        LONG cxDest;
+        LONG cyDest;
+        DWORD dwRop;
+        LONG xSrc;
+        LONG ySrc;
+        XFORM xformSrc;
+        COLORREF crBkColorSrc;
+        DWORD iUsageSrc;
+        DWORD offBmiSrc;
+        DWORD cbBmiSrc;
+        DWORD offBitsSrc;
+        DWORD cbBitsSrc;
+    }
+
+    alias EMRBITBLT TAGEMRBITBLT;
+    alias EMRBITBLT TEMRBITBLT;
+    alias EMRBITBLT* PEMRBITBLT;
+
+    struct LOGBRUSH
+    {
+        UINT lbStyle;
+        COLORREF lbColor;
+        LONG lbHatch;
+    }
+
+    alias LOGBRUSH TAGLOGBRUSH;
+    alias LOGBRUSH TLOGBRUSH;
+    alias LOGBRUSH* PLOGBRUSH;
+
+    struct EMRCREATEBRUSHINDIRECT
+    {
+        EMR emr;
+        DWORD ihBrush;
+        LOGBRUSH lb;
+    }
+
+    alias EMRCREATEBRUSHINDIRECT TAGEMRCREATEBRUSHINDIRECT;
+    alias EMRCREATEBRUSHINDIRECT TEMRCREATEBRUSHINDIRECT;
+    alias EMRCREATEBRUSHINDIRECT* PEMRCREATEBRUSHINDIRECT;
+    alias LONG LCSCSTYPE;
+    alias LONG LCSGAMUTMATCH;
+
+    struct LOGCOLORSPACEA
+    {
+        DWORD lcsSignature;
+        DWORD lcsVersion;
+        DWORD lcsSize;
+        LCSCSTYPE lcsCSType;
+        LCSGAMUTMATCH lcsIntent;
+        CIEXYZTRIPLE lcsEndpoints;
+        DWORD lcsGammaRed;
+        DWORD lcsGammaGreen;
+        DWORD lcsGammaBlue;
+        CHAR[1 + MAX_PATH-1] lcsFilename;
+    }
+    struct LOGCOLORSPACEW
+    {
+        DWORD lcsSignature;
+        DWORD lcsVersion;
+        DWORD lcsSize;
+        LCSCSTYPE lcsCSType;
+        LCSGAMUTMATCH lcsIntent;
+        CIEXYZTRIPLE lcsEndpoints;
+        DWORD lcsGammaRed;
+        DWORD lcsGammaGreen;
+        DWORD lcsGammaBlue;
+        WCHAR[1 + MAX_PATH-1] lcsFilename;
+    }
+    version(Win32SansUnicode) {
+        alias LOGCOLORSPACEA LOGCOLORSPACE;
+    }
+    else {
+        alias LOGCOLORSPACEW LOGCOLORSPACE;
+    }
+
+    alias LOGCOLORSPACE* LPLOGCOLORSPACE;
+    alias LOGCOLORSPACE TAGLOGCOLORSPACE;
+    alias LOGCOLORSPACE TLOGCOLORSPACE;
+    alias LOGCOLORSPACE TLOGCOLORSPACEA;
+    alias LOGCOLORSPACE* PLOGCOLORSPACE;
+
+    struct EMRCREATECOLORSPACE {
+        EMR            emr;
+        DWORD          ihCS;
+        LOGCOLORSPACEA lcs;
+    }
+
+    alias EMRCREATECOLORSPACE TAGEMRCREATECOLORSPACE;
+    alias EMRCREATECOLORSPACE TEMRCREATECOLORSPACE;
+    alias EMRCREATECOLORSPACE* PEMRCREATECOLORSPACE;
+
+    struct EMRCREATEDIBPATTERNBRUSHPT
+    {
+        EMR emr;
+        DWORD ihBrush;
+        DWORD iUsage;
+        DWORD offBmi;
+        DWORD cbBmi;
+        DWORD offBits;
+        DWORD cbBits;
+    }
+
+    alias EMRCREATEDIBPATTERNBRUSHPT TAGEMRCREATEDIBPATTERNBRUSHPT;
+    alias EMRCREATEDIBPATTERNBRUSHPT TEMRCREATEDIBPATTERNBRUSHPT;
+    alias EMRCREATEDIBPATTERNBRUSHPT PEMRCREATEDIBPATTERNBRUSHPT;
+
+    struct EMRCREATEMONOBRUSH
+    {
+        EMR emr;
+        DWORD ihBrush;
+        DWORD iUsage;
+        DWORD offBmi;
+        DWORD cbBmi;
+        DWORD offBits;
+        DWORD cbBits;
+    }
+
+    alias EMRCREATEMONOBRUSH TAGEMRCREATEMONOBRUSH;
+    alias EMRCREATEMONOBRUSH TEMRCREATEMONOBRUSH;
+    alias EMRCREATEMONOBRUSH* PEMRCREATEMONOBRUSH;
+
+    struct PALETTEENTRY
+    {
+        ubyte peRed;
+        ubyte peGreen;
+        ubyte peBlue;
+        ubyte peFlags;
+    }
+
+    alias PALETTEENTRY* LPPALETTEENTRY;
+    alias PALETTEENTRY TAGPALETTEENTRY;
+    alias PALETTEENTRY TPALETTEENTRY;
+    alias PALETTEENTRY* PPALETTEENTRY;
+
+    struct LOGPALETTE
+    {
+        ushort palVersion;
+        ushort palNumEntries;
+        PALETTEENTRY[1 + 0] palPalEntry;
+    }
+
+    alias LOGPALETTE* LPLOGPALETTE;
+    alias LOGPALETTE TAGLOGPALETTE;
+    alias LOGPALETTE TLOGPALETTE;
+    alias LOGPALETTE* PLOGPALETTE;
+
+    struct EMRCREATEPALETTE
+    {
+        EMR emr;
+        DWORD ihPal;
+        LOGPALETTE lgpl;
+    }
+
+    alias EMRCREATEPALETTE TAGEMRCREATEPALETTE;
+    alias EMRCREATEPALETTE TEMRCREATEPALETTE;
+    alias EMRCREATEPALETTE* PEMRCREATEPALETTE;
+
+    struct LOGPEN
+    {
+        UINT lopnStyle;
+        POINT lopnWidth;
+        COLORREF lopnColor;
+    }
+
+    alias LOGPEN TAGLOGPEN;
+    alias LOGPEN TLOGPEN;
+    alias LOGPEN* PLOGPEN;
+
+    struct EMRCREATEPEN
+    {
+        EMR emr;
+        DWORD ihPen;
+        LOGPEN lopn;
+    }
+
+    alias EMRCREATEPEN TAGEMRCREATEPEN;
+    alias EMRCREATEPEN TEMRCREATEPEN;
+    alias EMRCREATEPEN* PEMRCREATEPEN;
+
+    struct EMRELLIPSE
+    {
+        EMR emr;
+        RECTL rclBox;
+    }
+
+    alias EMRELLIPSE TAGEMRELLIPSE;
+    alias EMRELLIPSE TEMRELLIPSE;
+    alias EMRELLIPSE* PEMRELLIPSE;
+    alias EMRELLIPSE EMRRECTANGLE;
+    alias EMRELLIPSE TEMRRECTANGLE;
+    alias EMRELLIPSE* PEMRRECTANGLE;
+
+    struct EMREOF
+    {
+        EMR emr;
+        DWORD nPalEntries;
+        DWORD offPalEntries;
+        DWORD nSizeLast;
+    }
+
+    alias EMREOF TAGEMREOF;
+    alias EMREOF TEMREOF;
+    alias EMREOF* PEMREOF;
+
+    struct EMREXCLUDECLIPRECT
+    {
+        EMR emr;
+        RECTL rclClip;
+    }
+
+    alias EMREXCLUDECLIPRECT TAGEMREXCLUDECLIPRECT;
+    alias EMREXCLUDECLIPRECT TEMREXCLUDECLIPRECT;
+    alias EMREXCLUDECLIPRECT* PEMREXCLUDECLIPRECT;
+    alias EMREXCLUDECLIPRECT EMRINTERSECTCLIPRECT;
+    alias EMREXCLUDECLIPRECT TEMRINTERSECTCLIPRECT;
+    alias EMREXCLUDECLIPRECT* PEMRINTERSECTCLIPRECT;
+
+    struct PANOSE
+    {
+        ubyte bFamilyType;
+        ubyte bSerifStyle;
+        ubyte bWeight;
+        ubyte bProportion;
+        ubyte bContrast;
+        ubyte bStrokeVariation;
+        ubyte bArmStyle;
+        ubyte bLetterform;
+        ubyte bMidline;
+        ubyte bXHeight;
+    }
+
+    alias PANOSE TAGPANOSE;
+    alias PANOSE TPANOSE;
+    alias PANOSE* PPANOSE;
+
+    struct EXTLOGFONT
+    {
+        LOGFONT elfLogFont;
+        TCHAR[1 + LF_FULLFACESIZE-1] elfFullName = 0;
+        TCHAR[1 + LF_FACESIZE-1] elfStyle = 0;
+        DWORD elfVersion;
+        DWORD elfStyleSize;
+        DWORD elfMatch;
+        DWORD elfReserved;
+        ubyte[1 + ELF_VENDOR_SIZE-1] elfVendorId;
+        DWORD elfCulture;
+        PANOSE elfPanose;
+    }
+
+    alias EXTLOGFONT TAGEXTLOGFONT;
+    alias EXTLOGFONT TEXTLOGFONT;
+    alias EXTLOGFONT* PEXTLOGFONT;
+
+    struct EMREXTCREATEFONTINDIRECTW
+    {
+        EMR emr;
+        DWORD ihFont;
+        EXTLOGFONT elfw;
+    }
+
+    alias EMREXTCREATEFONTINDIRECTW TAGEMREXTCREATEFONTINDIRECTW;
+    alias EMREXTCREATEFONTINDIRECTW TEMREXTCREATEFONTINDIRECTW;
+    alias EMREXTCREATEFONTINDIRECTW* PEMREXTCREATEFONTINDIRECTW;
+
+    struct EXTLOGPEN
+    {
+        UINT elpPenStyle;
+        UINT elpWidth;
+        UINT elpBrushStyle;
+        COLORREF elpColor;
+        LONG elpHatch;
+        DWORD elpNumEntries;
+        DWORD[1 + 0] elpStyleEntry;
+    }
+
+    alias EXTLOGPEN TAGEXTLOGPEN;
+    alias EXTLOGPEN TEXTLOGPEN;
+    alias EXTLOGPEN* PEXTLOGPEN;
+
+    struct EMREXTCREATEPEN
+    {
+        EMR emr;
+        DWORD ihPen;
+        DWORD offBmi;
+        DWORD cbBmi;
+        DWORD offBits;
+        DWORD cbBits;
+        EXTLOGPEN elp;
+    }
+
+    alias EMREXTCREATEPEN TAGEMREXTCREATEPEN;
+    alias EMREXTCREATEPEN TEMREXTCREATEPEN;
+    alias EMREXTCREATEPEN* PEMREXTCREATEPEN;
+
+    struct EMREXTFLOODFILL
+    {
+        EMR emr;
+        POINTL ptlStart;
+        COLORREF crColor;
+        DWORD iMode;
+    }
+
+    alias EMREXTFLOODFILL TAGEMREXTFLOODFILL;
+    alias EMREXTFLOODFILL TEMREXTFLOODFILL;
+    alias EMREXTFLOODFILL* PEMREXTFLOODFILL;
+
+    struct EMREXTSELECTCLIPRGN
+    {
+        EMR emr;
+        DWORD cbRgnData;
+        DWORD iMode;
+        ubyte[1 + 0] RgnData;
+    }
+
+    alias EMREXTSELECTCLIPRGN TAGEMREXTSELECTCLIPRGN;
+    alias EMREXTSELECTCLIPRGN TEMREXTSELECTCLIPRGN;
+    alias EMREXTSELECTCLIPRGN* PEMREXTSELECTCLIPRGN;
+
+    struct EMRTEXT
+    {
+        POINTL ptlReference;
+        DWORD nChars;
+        DWORD offString;
+        DWORD fOptions;
+        RECTL rcl;
+        DWORD offDx;
+    }
+
+    alias EMRTEXT TAGEMRTEXT;
+    alias EMRTEXT TEMRTEXT;
+    alias EMRTEXT* PEMRTEXT;
+
+    struct EMREXTTEXTOUTA
+    {
+        EMR emr;
+        RECTL rclBounds;
+        DWORD iGraphicsMode;
+        FLOAT exScale;
+        FLOAT eyScale;
+        EMRTEXT emrtext;
+    }
+
+    alias EMREXTTEXTOUTA TAGEMREXTTEXTOUTA;
+    alias EMREXTTEXTOUTA TEMREXTTEXTOUTA;
+    alias EMREXTTEXTOUTA* PEMREXTTEXTOUTA;
+    alias EMREXTTEXTOUTA EMREXTTEXTOUTW;
+    alias EMREXTTEXTOUTA TEMREXTTEXTOUTW;
+    alias EMREXTTEXTOUTA* PEMREXTTEXTOUTW;
+
+    struct EMRFILLPATH
+    {
+        EMR emr;
+        RECTL rclBounds;
+    }
+
+    alias EMRFILLPATH TAGEMRFILLPATH;
+    alias EMRFILLPATH TEMRFILLPATH;
+    alias EMRFILLPATH* PEMRFILLPATH;
+    alias EMRFILLPATH EMRSTROKEANDFILLPATH;
+    alias EMRFILLPATH TEMRSTROKEANDFILLPATH;
+    alias EMRFILLPATH* PEMRSTROKEANDFILLPATH;
+    alias EMRFILLPATH EMRSTROKEPATH;
+    alias EMRFILLPATH TEMRSTROKEPATH;
+    alias EMRFILLPATH* PEMRSTROKEPATH;
+
+    struct EMRFILLRGN
+    {
+        EMR emr;
+        RECTL rclBounds;
+        DWORD cbRgnData;
+        DWORD ihBrush;
+        ubyte[1 + 0] RgnData;
+    }
+
+    alias EMRFILLRGN TAGEMRFILLRGN;
+    alias EMRFILLRGN TEMRFILLRGN;
+    alias EMRFILLRGN* PEMRFILLRGN;
+
+    struct EMRFORMAT
+    {
+        DWORD dSignature;
+        DWORD nVersion;
+        DWORD cbData;
+        DWORD offData;
+    }
+
+    alias EMRFORMAT TAGEMRFORMAT;
+    alias EMRFORMAT TEMRFORMAT;
+    alias EMRFORMAT* PEMRFORMAT;
+
+    struct SIZE
+    {
+        LONG cx;
+        LONG cy;
+    }
+
+    alias SIZE* LPSIZE;
+    alias SIZE TAGSIZE;
+    alias SIZE TSIZE;
+    alias SIZE* PSIZE;
+    alias SIZE SIZEL;
+    alias SIZE TSIZEL;
+    alias SIZE* PSIZEL;
+    alias SIZE* LPSIZEL;
+
+    struct EMRFRAMERGN
+    {
+        EMR emr;
+        RECTL rclBounds;
+        DWORD cbRgnData;
+        DWORD ihBrush;
+        SIZEL szlStroke;
+        ubyte[1 + 0] RgnData;
+    }
+
+    alias EMRFRAMERGN TAGEMRFRAMERGN;
+    alias EMRFRAMERGN TEMRFRAMERGN;
+    alias EMRFRAMERGN* PEMRFRAMERGN;
+
+    struct EMRGDICOMMENT
+    {
+        EMR emr;
+        DWORD cbData;
+        ubyte[1 + 0] Data;
+    }
+
+    alias EMRGDICOMMENT TAGEMRGDICOMMENT;
+    alias EMRGDICOMMENT TEMRGDICOMMENT;
+    alias EMRGDICOMMENT* PEMRGDICOMMENT;
+
+    struct EMRINVERTRGN
+    {
+        EMR emr;
+        RECTL rclBounds;
+        DWORD cbRgnData;
+        ubyte[1 + 0] RgnData;
+    }
+
+    alias EMRINVERTRGN TAGEMRINVERTRGN;
+    alias EMRINVERTRGN TEMRINVERTRGN;
+    alias EMRINVERTRGN* PEMRINVERTRGN;
+    alias EMRINVERTRGN EMRPAINTRGN;
+    alias EMRINVERTRGN TEMRPAINTRGN;
+    alias EMRINVERTRGN* PEMRPAINTRGN;
+
+    struct EMRLINETO
+    {
+        EMR emr;
+        POINTL ptl;
+    }
+
+    alias EMRLINETO TAGEMRLINETO;
+    alias EMRLINETO TEMRLINETO;
+    alias EMRLINETO* PEMRLINETO;
+    alias EMRLINETO EMRMOVETOEX;
+    alias EMRLINETO TEMRMOVETOEX;
+    alias EMRLINETO* PEMRMOVETOEX;
+
+    struct EMRMASKBLT
+    {
+        EMR emr;
+        RECTL rclBounds;
+        LONG xDest;
+        LONG yDest;
+        LONG cxDest;
+        LONG cyDest;
+        DWORD dwRop;
+        LONG xSrc;
+        LONG ySrc;
+        XFORM xformSrc;
+        COLORREF crBkColorSrc;
+        DWORD iUsageSrc;
+        DWORD offBmiSrc;
+        DWORD cbBmiSrc;
+        DWORD offBitsSrc;
+        DWORD cbBitsSrc;
+        LONG xMask;
+        LONG yMask;
+        DWORD iUsageMask;
+        DWORD offBmiMask;
+        DWORD cbBmiMask;
+        DWORD offBitsMask;
+        DWORD cbBitsMask;
+    }
+
+    alias EMRMASKBLT TAGEMRMASKBLT;
+    alias EMRMASKBLT TEMRMASKBLT;
+    alias EMRMASKBLT* PEMRMASKBLT;
+
+    struct EMRMODIFYWORLDTRANSFORM
+    {
+        EMR emr;
+        XFORM xform;
+        DWORD iMode;
+    }
+
+    alias EMRMODIFYWORLDTRANSFORM TAGEMRMODIFYWORLDTRANSFORM;
+    alias EMRMODIFYWORLDTRANSFORM TEMRMODIFYWORLDTRANSFORM;
+    alias EMRMODIFYWORLDTRANSFORM PEMRMODIFYWORLDTRANSFORM;
+
+    struct EMROFFSETCLIPRGN
+    {
+        EMR emr;
+        POINTL ptlOffset;
+    }
+
+    alias EMROFFSETCLIPRGN TAGEMROFFSETCLIPRGN;
+    alias EMROFFSETCLIPRGN TEMROFFSETCLIPRGN;
+    alias EMROFFSETCLIPRGN* PEMROFFSETCLIPRGN;
+
+    struct EMRPLGBLT
+    {
+        EMR emr;
+        RECTL rclBounds;
+        POINTL[1 + 2] aptlDest;
+        LONG xSrc;
+        LONG ySrc;
+        LONG cxSrc;
+        LONG cySrc;
+        XFORM xformSrc;
+        COLORREF crBkColorSrc;
+        DWORD iUsageSrc;
+        DWORD offBmiSrc;
+        DWORD cbBmiSrc;
+        DWORD offBitsSrc;
+        DWORD cbBitsSrc;
+        LONG xMask;
+        LONG yMask;
+        DWORD iUsageMask;
+        DWORD offBmiMask;
+        DWORD cbBmiMask;
+        DWORD offBitsMask;
+        DWORD cbBitsMask;
+    }
+
+    alias EMRPLGBLT TAGEMRPLGBLT;
+    alias EMRPLGBLT TEMRPLGBLT;
+    alias EMRPLGBLT* PEMRPLGBLT;
+
+    struct EMRPOLYDRAW
+    {
+        EMR emr;
+        RECTL rclBounds;
+        DWORD cptl;
+        POINTL[1 + 0] aptl;
+        ubyte[1 + 0] abTypes;
+    }
+
+    alias EMRPOLYDRAW TAGEMRPOLYDRAW;
+    alias EMRPOLYDRAW TEMRPOLYDRAW;
+    alias EMRPOLYDRAW* PEMRPOLYDRAW;
+
+    struct EMRPOLYDRAW16
+    {
+        EMR emr;
+        RECTL rclBounds;
+        DWORD cpts;
+        POINTS[1 + 0] apts;
+        ubyte[1 + 0] abTypes;
+    }
+
+    alias EMRPOLYDRAW16 TAGEMRPOLYDRAW16;
+    alias EMRPOLYDRAW16 TEMRPOLYDRAW16;
+    alias EMRPOLYDRAW16* PEMRPOLYDRAW16;
+
+    struct EMRPOLYLINE
+    {
+        EMR emr;
+        RECTL rclBounds;
+        DWORD cptl;
+        POINTL[1 + 0] aptl;
+    }
+
+    alias EMRPOLYLINE TAGEMRPOLYLINE;
+    alias EMRPOLYLINE TEMRPOLYLINE;
+    alias EMRPOLYLINE* PEMRPOLYLINE;
+    alias EMRPOLYLINE EMRPOLYBEZIER;
+    alias EMRPOLYLINE TEMRPOLYBEZIER;
+    alias EMRPOLYLINE* PEMRPOLYBEZIER;
+    alias EMRPOLYLINE EMRPOLYGON;
+    alias EMRPOLYLINE TEMRPOLYGON;
+    alias EMRPOLYLINE* PEMRPOLYGON;
+    alias EMRPOLYLINE EMRPOLYBEZIERTO;
+    alias EMRPOLYLINE TEMRPOLYBEZIERTO;
+    alias EMRPOLYLINE* PEMRPOLYBEZIERTO;
+    alias EMRPOLYLINE EMRPOLYLINETO;
+    alias EMRPOLYLINE TEMRPOLYLINETO;
+    alias EMRPOLYLINE* PEMRPOLYLINETO;
+
+    struct EMRPOLYLINE16
+    {
+        EMR emr;
+        RECTL rclBounds;
+        DWORD cpts;
+        POINTS[1 + 0] apts;
+    }
+
+    alias EMRPOLYLINE16 TAGEMRPOLYLINE16;
+    alias EMRPOLYLINE16 TEMRPOLYLINE16;
+    alias EMRPOLYLINE16* PEMRPOLYLINE16;
+    alias EMRPOLYLINE16 EMRPOLYBEZIER16;
+    alias EMRPOLYLINE16 TEMRPOLYBEZIER16;
+    alias EMRPOLYLINE16* PEMRPOLYBEZIER16;
+    alias EMRPOLYLINE16 EMRPOLYGON16;
+    alias EMRPOLYLINE16 TEMRPOLYGON16;
+    alias EMRPOLYLINE16* PEMRPOLYGON16;
+    alias EMRPOLYLINE16 EMRPOLYBEZIERTO16;
+    alias EMRPOLYLINE16 TEMRPOLYBEZIERTO16;
+    alias EMRPOLYLINE16* PEMRPOLYBEZIERTO16;
+    alias EMRPOLYLINE16 EMRPOLYLINETO16;
+    alias EMRPOLYLINE16 TEMRPOLYLINETO16;
+    alias EMRPOLYLINE16* PEMRPOLYLINETO16;
+
+    struct EMRPOLYPOLYLINE
+    {
+        EMR emr;
+        RECTL rclBounds;
+        DWORD nPolys;
+        DWORD cptl;
+        DWORD[1 + 0] aPolyCounts;
+        POINTL[1 + 0] aptl;
+    }
+
+    alias EMRPOLYPOLYLINE TAGEMRPOLYPOLYLINE;
+    alias EMRPOLYPOLYLINE TEMRPOLYPOLYLINE;
+    alias EMRPOLYPOLYLINE* PEMRPOLYPOLYLINE;
+    alias EMRPOLYPOLYLINE EMRPOLYPOLYGON;
+    alias EMRPOLYPOLYLINE TEMRPOLYPOLYGON;
+    alias EMRPOLYPOLYLINE* PEMRPOLYPOLYGON;
+
+    struct EMRPOLYPOLYLINE16
+    {
+        EMR emr;
+        RECTL rclBounds;
+        DWORD nPolys;
+        DWORD cpts;
+        DWORD[1 + 0] aPolyCounts;
+        POINTS[1 + 0] apts;
+    }
+
+    alias EMRPOLYPOLYLINE16 TAGEMRPOLYPOLYLINE16;
+    alias EMRPOLYPOLYLINE16 TEMRPOLYPOLYLINE16;
+    alias EMRPOLYPOLYLINE16* PEMRPOLYPOLYLINE16;
+    alias EMRPOLYPOLYLINE16 EMRPOLYPOLYGON16;
+    alias EMRPOLYPOLYLINE16 TEMRPOLYPOLYGON16;
+    alias EMRPOLYPOLYLINE16* PEMRPOLYPOLYGON16;
+
+    struct EMRPOLYTEXTOUTA
+    {
+        EMR emr;
+        RECTL rclBounds;
+        DWORD iGraphicsMode;
+        FLOAT exScale;
+        FLOAT eyScale;
+        LONG cStrings;
+        EMRTEXT[1 + 0] aemrtext;
+    }
+
+    alias EMRPOLYTEXTOUTA TAGEMRPOLYTEXTOUTA;
+    alias EMRPOLYTEXTOUTA TEMRPOLYTEXTOUTA;
+    alias EMRPOLYTEXTOUTA* PEMRPOLYTEXTOUTA;
+    alias EMRPOLYTEXTOUTA EMRPOLYTEXTOUTW;
+    alias EMRPOLYTEXTOUTA TEMRPOLYTEXTOUTW;
+    alias EMRPOLYTEXTOUTA* PEMRPOLYTEXTOUTW;
+
+    struct EMRRESIZEPALETTE
+    {
+        EMR emr;
+        DWORD ihPal;
+        DWORD cEntries;
+    }
+
+    alias EMRRESIZEPALETTE TAGEMRRESIZEPALETTE;
+    alias EMRRESIZEPALETTE TEMRRESIZEPALETTE;
+    alias EMRRESIZEPALETTE* PEMRRESIZEPALETTE;
+
+    struct EMRRESTOREDC
+    {
+        EMR emr;
+        LONG iRelative;
+    }
+
+    alias EMRRESTOREDC TAGEMRRESTOREDC;
+    alias EMRRESTOREDC TEMRRESTOREDC;
+    alias EMRRESTOREDC* PEMRRESTOREDC;
+
+    struct EMRROUNDRECT
+    {
+        EMR emr;
+        RECTL rclBox;
+        SIZEL szlCorner;
+    }
+
+    alias EMRROUNDRECT TAGEMRROUNDRECT;
+    alias EMRROUNDRECT TEMRROUNDRECT;
+    alias EMRROUNDRECT* PEMRROUNDRECT;
+
+    struct EMRSCALEVIEWPORTEXTEX
+    {
+        EMR emr;
+        LONG xNum;
+        LONG xDenom;
+        LONG yNum;
+        LONG yDenom;
+    }
+
+    alias EMRSCALEVIEWPORTEXTEX TAGEMRSCALEVIEWPORTEXTEX;
+    alias EMRSCALEVIEWPORTEXTEX TEMRSCALEVIEWPORTEXTEX;
+    alias EMRSCALEVIEWPORTEXTEX* PEMRSCALEVIEWPORTEXTEX;
+    alias EMRSCALEVIEWPORTEXTEX EMRSCALEWINDOWEXTEX;
+    alias EMRSCALEVIEWPORTEXTEX TEMRSCALEWINDOWEXTEX;
+    alias EMRSCALEVIEWPORTEXTEX* PEMRSCALEWINDOWEXTEX;
+
+    struct EMRSELECTCOLORSPACE
+    {
+        EMR emr;
+        DWORD ihCS;
+    }
+
+    alias EMRSELECTCOLORSPACE TAGEMRSELECTCOLORSPACE;
+    alias EMRSELECTCOLORSPACE TEMRSELECTCOLORSPACE;
+    alias EMRSELECTCOLORSPACE* PEMRSELECTCOLORSPACE;
+    alias EMRSELECTCOLORSPACE EMRDELETECOLORSPACE;
+    alias EMRSELECTCOLORSPACE TEMRDELETECOLORSPACE;
+    alias EMRSELECTCOLORSPACE* PEMRDELETECOLORSPACE;
+
+    struct EMRSELECTOBJECT
+    {
+        EMR emr;
+        DWORD ihObject;
+    }
+
+    alias EMRSELECTOBJECT TAGEMRSELECTOBJECT;
+    alias EMRSELECTOBJECT TEMRSELECTOBJECT;
+    alias EMRSELECTOBJECT* PEMRSELECTOBJECT;
+    alias EMRSELECTOBJECT EMRDELETEOBJECT;
+    alias EMRSELECTOBJECT TEMRDELETEOBJECT;
+    alias EMRSELECTOBJECT* PEMRDELETEOBJECT;
+
+    struct EMRSELECTPALETTE
+    {
+        EMR emr;
+        DWORD ihPal;
+    }
+
+    alias EMRSELECTPALETTE TAGEMRSELECTPALETTE;
+    alias EMRSELECTPALETTE TEMRSELECTPALETTE;
+    alias EMRSELECTPALETTE* PEMRSELECTPALETTE;
+
+    struct EMRSETARCDIRECTION
+    {
+        EMR emr;
+        DWORD iArcDirection;
+    }
+
+    alias EMRSETARCDIRECTION TAGEMRSETARCDIRECTION;
+    alias EMRSETARCDIRECTION TEMRSETARCDIRECTION;
+    alias EMRSETARCDIRECTION* PEMRSETARCDIRECTION;
+
+    struct EMRSETBKCOLOR
+    {
+        EMR emr;
+        COLORREF crColor;
+    }
+
+    alias EMRSETBKCOLOR TAGEMRSETTEXTCOLOR;
+    alias EMRSETBKCOLOR TEMRSETBKCOLOR;
+    alias EMRSETBKCOLOR* PEMRSETBKCOLOR;
+    alias EMRSETBKCOLOR EMRSETTEXTCOLOR;
+    alias EMRSETBKCOLOR TEMRSETTEXTCOLOR;
+    alias EMRSETBKCOLOR* PEMRSETTEXTCOLOR;
+
+    struct EMRSETCOLORADJUSTMENT
+    {
+        EMR emr;
+        COLORADJUSTMENT ColorAdjustment;
+    }
+
+    alias EMRSETCOLORADJUSTMENT TAGEMRSETCOLORADJUSTMENT;
+    alias EMRSETCOLORADJUSTMENT TEMRSETCOLORADJUSTMENT;
+    alias EMRSETCOLORADJUSTMENT* PEMRSETCOLORADJUSTMENT;
+
+    struct EMRSETDIBITSTODEVICE
+    {
+        EMR emr;
+        RECTL rclBounds;
+        LONG xDest;
+        LONG yDest;
+        LONG xSrc;
+        LONG ySrc;
+        LONG cxSrc;
+        LONG cySrc;
+        DWORD offBmiSrc;
+        DWORD cbBmiSrc;
+        DWORD offBitsSrc;
+        DWORD cbBitsSrc;
+        DWORD iUsageSrc;
+        DWORD iStartScan;
+        DWORD cScans;
+    }
+
+    alias EMRSETDIBITSTODEVICE TAGEMRSETDIBITSTODEVICE;
+    alias EMRSETDIBITSTODEVICE TEMRSETDIBITSTODEVICE;
+    alias EMRSETDIBITSTODEVICE* PEMRSETDIBITSTODEVICE;
+
+    struct EMRSETMAPPERFLAGS
+    {
+        EMR emr;
+        DWORD dwFlags;
+    }
+
+    alias EMRSETMAPPERFLAGS TAGEMRSETMAPPERFLAGS;
+    alias EMRSETMAPPERFLAGS TEMRSETMAPPERFLAGS;
+    alias EMRSETMAPPERFLAGS* PEMRSETMAPPERFLAGS;
+
+    struct EMRSETMITERLIMIT
+    {
+        EMR emr;
+        FLOAT eMiterLimit;
+    }
+
+    alias EMRSETMITERLIMIT TAGEMRSETMITERLIMIT;
+    alias EMRSETMITERLIMIT TEMRSETMITERLIMIT;
+    alias EMRSETMITERLIMIT* PEMRSETMITERLIMIT;
+
+    struct EMRSETPALETTEENTRIES
+    {
+        EMR emr;
+        DWORD ihPal;
+        DWORD iStart;
+        DWORD cEntries;
+        PALETTEENTRY[1 + 0] aPalEntries;
+    }
+
+    alias EMRSETPALETTEENTRIES TAGEMRSETPALETTEENTRIES;
+    alias EMRSETPALETTEENTRIES TEMRSETPALETTEENTRIES;
+    alias EMRSETPALETTEENTRIES* PEMRSETPALETTEENTRIES;
+
+    struct EMRSETPIXELV
+    {
+        EMR emr;
+        POINTL ptlPixel;
+        COLORREF crColor;
+    }
+
+    alias EMRSETPIXELV TAGEMRSETPIXELV;
+    alias EMRSETPIXELV TEMRSETPIXELV;
+    alias EMRSETPIXELV* PEMRSETPIXELV;
+
+    struct EMRSETVIEWPORTEXTEX
+    {
+        EMR emr;
+        SIZEL szlExtent;
+    }
+
+    alias EMRSETVIEWPORTEXTEX TAGEMRSETVIEWPORTEXTEX;
+    alias EMRSETVIEWPORTEXTEX TEMRSETVIEWPORTEXTEX;
+    alias EMRSETVIEWPORTEXTEX* PEMRSETVIEWPORTEXTEX;
+    alias EMRSETVIEWPORTEXTEX EMRSETWINDOWEXTEX;
+    alias EMRSETVIEWPORTEXTEX TEMRSETWINDOWEXTEX;
+    alias EMRSETVIEWPORTEXTEX* PEMRSETWINDOWEXTEX;
+
+    struct EMRSETVIEWPORTORGEX
+    {
+        EMR emr;
+        POINTL ptlOrigin;
+    }
+
+    alias EMRSETVIEWPORTORGEX TAGEMRSETVIEWPORTORGEX;
+    alias EMRSETVIEWPORTORGEX TEMRSETVIEWPORTORGEX;
+    alias EMRSETVIEWPORTORGEX* PEMRSETVIEWPORTORGEX;
+    alias EMRSETVIEWPORTORGEX EMRSETWINDOWORGEX;
+    alias EMRSETVIEWPORTORGEX TEMRSETWINDOWORGEX;
+    alias EMRSETVIEWPORTORGEX* PEMRSETWINDOWORGEX;
+    alias EMRSETVIEWPORTORGEX EMRSETBRUSHORGEX;
+    alias EMRSETVIEWPORTORGEX TEMRSETBRUSHORGEX;
+    alias EMRSETVIEWPORTORGEX* PEMRSETBRUSHORGEX;
+
+    struct EMRSETWORLDTRANSFORM
+    {
+        EMR emr;
+        XFORM xform;
+    }
+
+    alias EMRSETWORLDTRANSFORM TAGEMRSETWORLDTRANSFORM;
+    alias EMRSETWORLDTRANSFORM TEMRSETWORLDTRANSFORM;
+    alias EMRSETWORLDTRANSFORM* PEMRSETWORLDTRANSFORM;
+
+    struct EMRSTRETCHBLT
+    {
+        EMR emr;
+        RECTL rclBounds;
+        LONG xDest;
+        LONG yDest;
+        LONG cxDest;
+        LONG cyDest;
+        DWORD dwRop;
+        LONG xSrc;
+        LONG ySrc;
+        XFORM xformSrc;
+        COLORREF crBkColorSrc;
+        DWORD iUsageSrc;
+        DWORD offBmiSrc;
+        DWORD cbBmiSrc;
+        DWORD offBitsSrc;
+        DWORD cbBitsSrc;
+        LONG cxSrc;
+        LONG cySrc;
+    }
+
+    alias EMRSTRETCHBLT TAGEMRSTRETCHBLT;
+    alias EMRSTRETCHBLT TEMRSTRETCHBLT;
+    alias EMRSTRETCHBLT* PEMRSTRETCHBLT;
+
+    struct EMRSTRETCHDIBITS
+    {
+        EMR emr;
+        RECTL rclBounds;
+        LONG xDest;
+        LONG yDest;
+        LONG xSrc;
+        LONG ySrc;
+        LONG cxSrc;
+        LONG cySrc;
+        DWORD offBmiSrc;
+        DWORD cbBmiSrc;
+        DWORD offBitsSrc;
+        DWORD cbBitsSrc;
+        DWORD iUsageSrc;
+        DWORD dwRop;
+        LONG cxDest;
+        LONG cyDest;
+    }
+
+    alias EMRSTRETCHDIBITS TAGEMRSTRETCHDIBITS;
+    alias EMRSTRETCHDIBITS TEMRSTRETCHDIBITS;
+    alias EMRSTRETCHDIBITS* PEMRSTRETCHDIBITS;
+
+    struct EMRABORTPATH
+    {
+        EMR emr;
+    }
+
+    alias EMRABORTPATH TEMRABORTPATH;
+    alias EMRABORTPATH* PEMRABORTPATH;
+    alias EMRABORTPATH TAGABORTPATH;
+    alias EMRABORTPATH TABORTPATH;
+    alias EMRABORTPATH EMRBEGINPATH;
+    alias EMRABORTPATH TEMRBEGINPATH;
+    alias EMRABORTPATH* PEMRBEGINPATH;
+    alias EMRABORTPATH EMRENDPATH;
+    alias EMRABORTPATH TEMRENDPATH;
+    alias EMRABORTPATH* PEMRENDPATH;
+    alias EMRABORTPATH EMRCLOSEFIGURE;
+    alias EMRABORTPATH TEMRCLOSEFIGURE;
+    alias EMRABORTPATH* PEMRCLOSEFIGURE;
+    alias EMRABORTPATH EMRFLATTENPATH;
+    alias EMRABORTPATH TEMRFLATTENPATH;
+    alias EMRABORTPATH* PEMRFLATTENPATH;
+    alias EMRABORTPATH EMRWIDENPATH;
+    alias EMRABORTPATH TEMRWIDENPATH;
+    alias EMRABORTPATH* PEMRWIDENPATH;
+    alias EMRABORTPATH EMRSETMETARGN;
+    alias EMRABORTPATH TEMRSETMETARGN;
+    alias EMRABORTPATH* PEMRSETMETARGN;
+    alias EMRABORTPATH EMRSAVEDC;
+    alias EMRABORTPATH TEMRSAVEDC;
+    alias EMRABORTPATH* PEMRSAVEDC;
+    alias EMRABORTPATH EMRREALIZEPALETTE;
+    alias EMRABORTPATH TEMRREALIZEPALETTE;
+    alias EMRABORTPATH* PEMRREALIZEPALETTE;
+
+    struct EMRSELECTCLIPPATH
+    {
+        EMR emr;
+        DWORD iMode;
+    }
+
+    alias EMRSELECTCLIPPATH TAGEMRSELECTCLIPPATH;
+    alias EMRSELECTCLIPPATH TEMRSELECTCLIPPATH;
+    alias EMRSELECTCLIPPATH* PEMRSELECTCLIPPATH;
+    alias EMRSELECTCLIPPATH EMRSETBKMODE;
+    alias EMRSELECTCLIPPATH TEMRSETBKMODE;
+    alias EMRSELECTCLIPPATH* PEMRSETBKMODE;
+    alias EMRSELECTCLIPPATH EMRSETMAPMODE;
+    alias EMRSELECTCLIPPATH TEMRSETMAPMODE;
+    alias EMRSELECTCLIPPATH* PEMRSETMAPMODE;
+    alias EMRSELECTCLIPPATH EMRSETPOLYFILLMODE;
+    alias EMRSELECTCLIPPATH TEMRSETPOLYFILLMODE;
+    alias EMRSELECTCLIPPATH* PEMRSETPOLYFILLMODE;
+    alias EMRSELECTCLIPPATH EMRSETROP2;
+    alias EMRSELECTCLIPPATH TEMRSETROP2;
+    alias EMRSELECTCLIPPATH* PEMRSETROP2;
+    alias EMRSELECTCLIPPATH EMRSETSTRETCHBLTMODE;
+    alias EMRSELECTCLIPPATH TEMRSETSTRETCHBLTMODE;
+    alias EMRSELECTCLIPPATH* PEMRSETSTRETCHBLTMODE;
+    alias EMRSELECTCLIPPATH EMRSETTEXTALIGN;
+    alias EMRSELECTCLIPPATH TEMRSETTEXTALIGN;
+    alias EMRSELECTCLIPPATH* PEMRSETTEXTALIGN;
+    alias EMRSELECTCLIPPATH EMRENABLEICM;
+    alias EMRSELECTCLIPPATH TEMRENABLEICM;
+    alias EMRSELECTCLIPPATH* PEMRENABLEICM;
+
+    struct NMHDR
+    {
+        HWND hwndFrom;
+        UINT idFrom;
+        UINT code;
+    }
+
+    alias NMHDR TAGNMHDR;
+    alias NMHDR TNMHDR;
+    alias NMHDR* PNMHDR;
+
+    struct ENCORRECTTEXT
+    {
+        NMHDR nmhdr;
+        CHARRANGE chrg;
+        ushort seltyp;
+    }
+
+    alias ENCORRECTTEXT _ENCORRECTTEXT;
+    alias ENCORRECTTEXT TENCORRECTTEXT;
+    alias ENCORRECTTEXT* PENCORRECTTEXT;
+
+    struct ENDROPFILES
+    {
+        NMHDR nmhdr;
+        HANDLE hDrop;
+        LONG cp;
+        WINBOOL fProtected;
+    }
+
+    alias ENDROPFILES _ENDROPFILES;
+    alias ENDROPFILES TENDROPFILES;
+    alias ENDROPFILES* PENDROPFILES;
+
+    struct ENSAVECLIPBOARD
+    {
+        NMHDR nmhdr;
+        LONG cObjectCount;
+        LONG cch;
+    }
+
+    alias ENSAVECLIPBOARD TENSAVECLIPBOARD;
+    alias ENSAVECLIPBOARD* PENSAVECLIPBOARD;
+
+    struct ENOLEOPFAILED
+    {
+        NMHDR nmhdr;
+        LONG iob;
+        LONG lOper;
+        HRESULT hr;
+    }
+
+    alias ENOLEOPFAILED TENOLEOPFAILED;
+    alias ENOLEOPFAILED* PENOLEOPFAILED;
+
+    align(2) struct ENHMETAHEADER
+    {
+        DWORD iType;
+        DWORD nSize;
+        RECTL rclBounds;
+        RECTL rclFrame;
+        DWORD dSignature;
+        DWORD nVersion;
+        DWORD nBytes;
+        DWORD nRecords;
+        ushort nHandles;
+        ushort sReserved;
+        DWORD nDescription;
+        DWORD offDescription;
+        DWORD nPalEntries;
+        SIZEL szlDevice;
+        SIZEL szlMillimeters;
+    //#if (WINVER >= 0x0400)
+        DWORD cbPixelFormat;
+        DWORD offPixelFormat;
+        DWORD bOpenGL;
+    //#endif /* WINVER >= 0x0400 */
+    //#if (WINVER >= 0x0500)
+        SIZEL szlMicrometers;
+    //#endif /* WINVER >= 0x0500 */
+    }
+
+    alias ENHMETAHEADER* LPENHMETAHEADER;
+    alias ENHMETAHEADER TAGENHMETAHEADER;
+    alias ENHMETAHEADER TENHMETAHEADER;
+    alias ENHMETAHEADER* PENHMETAHEADER;
+
+    struct ENHMETARECORD
+    {
+        DWORD iType;
+        DWORD nSize;
+        DWORD[1 + 0] dParm;
+    }
+
+    alias ENHMETARECORD* LPENHMETARECORD;
+    alias ENHMETARECORD TAGENHMETARECORD;
+    alias ENHMETARECORD TENHMETARECORD;
+    alias ENHMETARECORD* PENHMETARECORD;
+
+    struct ENPROTECTED
+    {
+        NMHDR nmhdr;
+        UINT msg;
+        WPARAM wParam;
+        LPARAM lParam;
+        CHARRANGE chrg;
+    }
+
+    alias ENPROTECTED _ENPROTECTED;
+    alias ENPROTECTED TENPROTECTED;
+    alias ENPROTECTED* PENPROTECTED;
+
+    struct SERVICE_STATUS
+    {
+        DWORD dwServiceType;
+        DWORD dwCurrentState;
+        DWORD dwControlsAccepted;
+        DWORD dwWin32ExitCode;
+        DWORD dwServiceSpecificExitCode;
+        DWORD dwCheckPoint;
+        DWORD dwWaitHint;
+    }
+
+    alias SERVICE_STATUS* LPSERVICE_STATUS;
+    alias SERVICE_STATUS _SERVICE_STATUS;
+    alias SERVICE_STATUS TSERVICESTATUS;
+    alias SERVICE_STATUS* PSERVICESTATUS;
+
+    struct ENUM_SERVICE_STATUS
+    {
+        LPTSTR lpServiceName;
+        LPTSTR lpDisplayName;
+        SERVICE_STATUS ServiceStatus;
+    }
+
+    alias ENUM_SERVICE_STATUS* LPENUM_SERVICE_STATUS;
+    alias ENUM_SERVICE_STATUS _ENUM_SERVICE_STATUS;
+    alias ENUM_SERVICE_STATUS TENUMSERVICESTATUS;
+    alias ENUM_SERVICE_STATUS* PENUMSERVICESTATUS;
+
+    struct ENUMLOGFONTA {
+      LOGFONTA elfLogFont;
+      BYTE     elfFullName[LF_FULLFACESIZE];
+      BYTE     elfStyle[LF_FACESIZE];
+    }
+    struct ENUMLOGFONTW {
+      LOGFONTW elfLogFont;
+      WCHAR    elfFullName[LF_FULLFACESIZE];
+      WCHAR    elfStyle[LF_FACESIZE];
+    }
+    struct ENUMLOGFONTEXA {
+        LOGFONTA  elfLogFont;
+        BYTE      elfFullName[LF_FULLFACESIZE];
+        BYTE      elfStyle[LF_FACESIZE];
+        BYTE      elfScript[LF_FACESIZE];
+    }
+    struct ENUMLOGFONTEXW {
+        LOGFONTW  elfLogFont;
+        WCHAR     elfFullName[LF_FULLFACESIZE];
+        WCHAR     elfStyle[LF_FACESIZE];
+        WCHAR     elfScript[LF_FACESIZE];
+    }
+    version(Win32SansUnicode){
+        alias ENUMLOGFONTA ENUMLOGFONT;
+        alias ENUMLOGFONTEXA ENUMLOGFONTEX;
+    }else {
+        alias ENUMLOGFONTW ENUMLOGFONT;
+        alias ENUMLOGFONTEXW ENUMLOGFONTEX;
+    }
+    alias ENUMLOGFONT TAGENUMLOGFONT;
+    alias ENUMLOGFONT TENUMLOGFONT;
+    alias ENUMLOGFONT* PENUMLOGFONT;
+    alias ENUMLOGFONTEX TAGENUMLOGFONTEX;
+    alias ENUMLOGFONTEX TENUMLOGFONTEX;
+    alias ENUMLOGFONTEX* PENUMLOGFONTEX;
+
+    struct EVENTLOGRECORD
+    {
+        DWORD Length;
+        DWORD Reserved;
+        DWORD RecordNumber;
+        DWORD TimeGenerated;
+        DWORD TimeWritten;
+        DWORD EventID;
+        ushort EventType;
+        ushort NumStrings;
+        ushort EventCategory;
+        ushort ReservedFlags;
+        DWORD ClosingRecordNumber;
+        DWORD StringOffset;
+        DWORD UserSidLength;
+        DWORD UserSidOffset;
+        DWORD DataLength;
+        DWORD DataOffset;
+    }
+
+    alias EVENTLOGRECORD _EVENTLOGRECORD;
+    alias EVENTLOGRECORD TEVENTLOGRECORD;
+    alias EVENTLOGRECORD* PEVENTLOGRECORD;
+
+    struct EVENTMSG
+    {
+        UINT message;
+        UINT paramL;
+        UINT paramH;
+        DWORD time;
+        HWND hwnd;
+    }
+
+    alias EVENTMSG TAGEVENTMSG;
+    alias EVENTMSG TEVENTMSG;
+    alias EVENTMSG* PEVENTMSG;
+
+    struct EXCEPTION_POINTERS
+    {
+        PEXCEPTION_RECORD ExceptionRecord;
+        PCONTEXT ContextRecord;
+    }
+
+    alias EXCEPTION_POINTERS* LPEXCEPTION_POINTERS;
+    alias EXCEPTION_POINTERS* PEXCEPTION_POINTERS;
+    alias EXCEPTION_POINTERS _EXCEPTION_POINTERS;
+    alias EXCEPTION_POINTERS TEXCEPTIONPOINTERS;
+    alias EXCEPTION_POINTERS* PEXCEPTIONPOINTERS;
+
+    struct EXT_BUTTON
+    {
+        ushort idCommand;
+        ushort idsHelp;
+        ushort fsStyle;
+    }
+
+    alias EXT_BUTTON* LPEXT_BUTTON;
+    alias EXT_BUTTON _EXT_BUTTON;
+    alias EXT_BUTTON TEXTBUTTON;
+    alias EXT_BUTTON* PEXTBUTTON;
+
+    struct FILTERKEYS
+    {
+        UINT cbSize;
+        DWORD dwFlags;
+        DWORD iWaitMSec;
+        DWORD iDelayMSec;
+        DWORD iRepeatMSec;
+        DWORD iBounceMSec;
+    }
+
+    alias FILTERKEYS TAGFILTERKEYS;
+    alias FILTERKEYS TFILTERKEYS;
+    alias FILTERKEYS* PFILTERKEYS;
+
+    struct FIND_NAME_BUFFER
+    {
+        UCHAR length;
+        UCHAR access_control;
+        UCHAR frame_control;
+        UCHAR[1 + 5] destination_addr;
+        UCHAR[1 + 5] source_addr;
+        UCHAR[1 + 17] routing_info;
+    }
+
+    alias FIND_NAME_BUFFER _FIND_NAME_BUFFER;
+    alias FIND_NAME_BUFFER TFINDNAMEBUFFER;
+    alias FIND_NAME_BUFFER* PFINDNAMEBUFFER;
+
+    struct FIND_NAME_HEADER
+    {
+        ushort node_count;
+        UCHAR reserved;
+        UCHAR unique_group;
+    }
+
+    alias FIND_NAME_HEADER _FIND_NAME_HEADER;
+    alias FIND_NAME_HEADER TFINDNAMEHEADER;
+    alias FIND_NAME_HEADER* PFINDNAMEHEADER;
+
+    struct FINDREPLACE
+    {
+        DWORD lStructSize;
+        HWND hwndOwner;
+        HINST hInstance;
+        DWORD Flags;
+        LPTSTR lpstrFindWhat;
+        LPTSTR lpstrReplaceWith;
+        ushort wFindWhatLen;
+        ushort wReplaceWithLen;
+        LPARAM lCustData;
+        LPFRHOOKPROC lpfnHook;
+        LPCTSTR lpTemplateName;
+    }
+
+    alias FINDREPLACE* LPFINDREPLACE;
+    alias FINDREPLACE TFINDREPLACE;
+    alias FINDREPLACE* PFINDREPLACE;
+
+    struct TFINDTEXT
+    {
+        CHARRANGE chrg;
+        LPSTR lpstrText;
+    }
+
+    alias TFINDTEXT _FINDTEXT;
+    alias TFINDTEXT FINDTEXT;
+    alias TFINDTEXT* PFINDTEXT;
+
+    struct FINDTEXTEX
+    {
+        CHARRANGE chrg;
+        LPSTR lpstrText;
+        CHARRANGE chrgText;
+    }
+
+    alias FINDTEXTEX _FINDTEXTEX;
+    alias FINDTEXTEX TFINDTEXTEX;
+    alias FINDTEXTEX* PFINDTEXTEX;
+
+    struct FMS_GETDRIVEINFO
+    {
+        DWORD dwTotalSpace;
+        DWORD dwFreeSpace;
+        TCHAR[1 + 259] szPath;
+        TCHAR[1 + 13] szVolume;
+        TCHAR[1 + 127] szShare;
+    }
+
+    alias FMS_GETDRIVEINFO _FMS_GETDRIVEINFO;
+    alias FMS_GETDRIVEINFO TFMSGETDRIVEINFO;
+    alias FMS_GETDRIVEINFO* PFMSGETDRIVEINFO;
+
+    struct FMS_GETFILESEL
+    {
+        FILETIME ftTime;
+        DWORD dwSize;
+        ubyte bAttr;
+        TCHAR[1 + 259] szName;
+    }
+
+    alias FMS_GETFILESEL _FMS_GETFILESEL;
+    alias FMS_GETFILESEL TFMSGETFILESEL;
+    alias FMS_GETFILESEL* PFMSGETFILESEL;
+
+    struct FMS_LOAD
+    {
+        DWORD dwSize;
+        TCHAR[1 + MENU_TEXT_LEN-1] szMenuName;
+        HMENU hMenu;
+        UINT wMenuDelta;
+    }
+
+    alias FMS_LOAD _FMS_LOAD;
+    alias FMS_LOAD TFMSLOAD;
+    alias FMS_LOAD* PFMSLOAD;
+
+    struct FMS_TOOLBARLOAD
+    {
+        DWORD dwSize;
+        LPEXT_BUTTON lpButtons;
+        ushort cButtons;
+        ushort cBitmaps;
+        ushort idBitmap;
+        HBITMAP hBitmap;
+    }
+
+    alias FMS_TOOLBARLOAD _FMS_TOOLBARLOAD;
+    alias FMS_TOOLBARLOAD TFMSTOOLBARLOAD;
+    alias FMS_TOOLBARLOAD* PFMSTOOLBARLOAD;
+
+    struct FOCUS_EVENT_RECORD
+    {
+        WINBOOL bSetFocus;
+    }
+
+    alias FOCUS_EVENT_RECORD _FOCUS_EVENT_RECORD;
+    alias FOCUS_EVENT_RECORD TFOCUSEVENTRECORD;
+    alias FOCUS_EVENT_RECORD* PFOCUSEVENTRECORD;
+
+    struct FORM_INFO_1
+    {
+        DWORD Flags;
+        LPTSTR pName;
+        SIZEL Size;
+        RECTL ImageableArea;
+    }
+
+    alias FORM_INFO_1 _FORM_INFO_1;
+    alias FORM_INFO_1 TFORMINFO1;
+    alias FORM_INFO_1* PFORMINFO1;
+
+    struct FORMAT_PARAMETERS
+    {
+        MEDIA_TYPE MediaType;
+        DWORD StartCylinderNumber;
+        DWORD EndCylinderNumber;
+        DWORD StartHeadNumber;
+        DWORD EndHeadNumber;
+    }
+
+    alias FORMAT_PARAMETERS _FORMAT_PARAMETERS;
+    alias FORMAT_PARAMETERS TFORMATPARAMETERS;
+    alias FORMAT_PARAMETERS* PFORMATPARAMETERS;
+
+    struct FORMATRANGE
+    {
+        HDC _hdc;
+        HDC hdcTarget;
+        RECT rc;
+        RECT rcPage;
+        CHARRANGE chrg;
+    }
+
+    alias FORMATRANGE _FORMATRANGE;
+    alias FORMATRANGE TFORMATRANGE;
+    alias FORMATRANGE* PFORMATRANGE;
+
+    struct GCP_RESULTSA
+    {
+        DWORD   lStructSize;
+        LPSTR   lpOutString;
+        UINT  * lpOrder;
+        int   * lpDx;
+        int   * lpCaretPos;
+        LPSTR   lpClass;
+        LPWSTR  lpGlyphs;
+        UINT    nGlyphs;
+        int     nMaxFit;
+    }
+
+    struct GCP_RESULTSW
+    {
+        DWORD   lStructSize;
+        LPWSTR  lpOutString;
+        UINT  * lpOrder;
+        int   * lpDx;
+        int   * lpCaretPos;
+        LPSTR   lpClass;
+        LPWSTR  lpGlyphs;
+        UINT    nGlyphs;
+        int     nMaxFit;
+    }
+    version(Win32SansUnicode)
+    {
+        alias GCP_RESULTSA GCP_RESULTS;
+    }
+    else
+    {
+        alias GCP_RESULTSW GCP_RESULTS;
+    }
+    alias GCP_RESULTS* LPGCP_RESULTS;
+    alias GCP_RESULTS TAGGCP_RESULTS;
+    alias GCP_RESULTS TGCPRESULTS;
+    alias GCP_RESULTS* PGCPRESULTS;
+
+    struct GENERIC_MAPPING
+    {
+        ACCESS_MASK GenericRead;
+        ACCESS_MASK GenericWrite;
+        ACCESS_MASK GenericExecute;
+        ACCESS_MASK GenericAll;
+    }
+
+    alias GENERIC_MAPPING* PGENERIC_MAPPING;
+    alias GENERIC_MAPPING _GENERIC_MAPPING;
+    alias GENERIC_MAPPING TGENERICMAPPING;
+    alias GENERIC_MAPPING* PGENERICMAPPING;
+
+    struct GLYPHMETRICS
+    {
+        UINT gmBlackBoxX;
+        UINT gmBlackBoxY;
+        POINT gmptGlyphOrigin;
+        short gmCellIncX;
+        short gmCellIncY;
+    }
+
+    alias GLYPHMETRICS* LPGLYPHMETRICS;
+    alias GLYPHMETRICS _GLYPHMETRICS;
+    alias GLYPHMETRICS TGLYPHMETRICS;
+    alias GLYPHMETRICS* PGLYPHMETRICS;
+
+    struct HANDLETABLE
+    {
+        HGDIOBJ[1 + 0] objectHandle;
+    }
+
+    alias HANDLETABLE TAGHANDLETABLE;
+    alias HANDLETABLE THANDLETABLE;
+    alias HANDLETABLE* LPHANDLETABLE;
+
+    struct HD_HITTESTINFO
+    {
+        POINT pt;
+        UINT flags;
+        int iItem;
+    }
+
+    alias HD_HITTESTINFO _HD_HITTESTINFO;
+    alias HD_HITTESTINFO THDHITTESTINFO;
+    alias HD_HITTESTINFO  HDHITTESTINFO;
+    alias HD_HITTESTINFO* PHDHITTESTINFO;
+
+    struct HD_ITEM
+    {
+        UINT mask;
+        int cxy;
+        LPTSTR pszText;
+        HBITMAP hbm;
+        int cchTextMax;
+        int fmt;
+        LPARAM lParam;
+        // _WIN32_IE >= 0x300
+        int iImage;
+        int iOrder;
+        // _WIN32_IE >= 0x500
+        UINT type;
+        void* pvFilter;
+        // _WIN32_WINNT >= 0x600
+        //UINT state;
+    }
+
+    alias HD_ITEM _HD_ITEM;
+    alias HD_ITEM THDITEM;
+    alias HD_ITEM* PHDITEM;
+
+    struct WINDOWPOS
+    {
+        HWND _hwnd;
+        HWND hwndInsertAfter;
+        int x;
+        int y;
+        int cx;
+        int cy;
+        UINT flags;
+    }
+
+    alias WINDOWPOS* LPWINDOWPOS;
+    alias WINDOWPOS _WINDOWPOS;
+    alias WINDOWPOS TWINDOWPOS;
+    alias WINDOWPOS* PWINDOWPOS;
+
+    struct HD_LAYOUT
+    {
+        RECT* prc;
+        WINDOWPOS* pwpos;
+    }
+
+    alias HD_LAYOUT _HD_LAYOUT;
+    alias HD_LAYOUT THDLAYOUT;
+    alias HD_LAYOUT  HDLAYOUT;
+    alias HD_LAYOUT* PHDLAYOUT;
+
+    struct HD_NOTIFY
+    {
+        NMHDR hdr;
+        int iItem;
+        int iButton;
+        HD_ITEM* pitem;
+    }
+
+    alias HD_NOTIFY _HD_NOTIFY;
+    alias HD_NOTIFY THDNOTIFY;
+    alias HD_NOTIFY* PHDNOTIFY;
+
+    struct HELPINFO
+    {
+        UINT cbSize;
+        int iContextType;
+        int iCtrlId;
+        HANDLE hItemHandle;
+        DWORD dwContextId;
+        POINT MousePos;
+    }
+
+    alias HELPINFO* LPHELPINFO;
+    alias HELPINFO TAGHELPINFO;
+    alias HELPINFO THELPINFO;
+    alias HELPINFO* PHELPINFO;
+
+    struct HELPWININFO
+    {
+        int wStructSize;
+        int x;
+        int y;
+        int dx;
+        int dy;
+        int wMax;
+        TCHAR[1 + 1] rgchMember;
+    }
+
+    alias HELPWININFO THELPWININFO;
+    alias HELPWININFO* PHELPWININFO;
+
+    struct HIGHCONTRASTA
+    {
+        UINT             cbSize;
+        DWORD            dwFlags;
+        LPSTR            lpszDefaultScheme;
+    }
+    struct HIGHCONTRASTW
+    {
+        UINT             cbSize;
+        DWORD            dwFlags;
+        LPWSTR           lpszDefaultScheme;
+    }
+    version(Win32SansUnicode)
+    {
+        alias HIGHCONTRASTA HIGHCONTRAST;
+    }
+    else
+    {
+        alias HIGHCONTRASTW HIGHCONTRAST;
+    }
+    alias HIGHCONTRAST* LPHIGHCONTRAST;
+    alias HIGHCONTRAST TAGHIGHCONTRAST;
+    alias HIGHCONTRAST THIGHCONTRAST;
+    alias HIGHCONTRAST* PHIGHCONTRAST;
+
+    struct HSZPAIR
+    {
+        HSZ hszSvc;
+        HSZ hszTopic;
+    }
+
+    alias HSZPAIR TAGHSZPAIR;
+    alias HSZPAIR THSZPAIR;
+    alias HSZPAIR* PHSZPAIR;
+
+    struct ICONINFO
+    {
+        WINBOOL fIcon;
+        DWORD xHotspot;
+        DWORD yHotspot;
+        HBITMAP hbmMask;
+        HBITMAP hbmColor;
+    }
+
+    alias ICONINFO _ICONINFO;
+    alias ICONINFO TICONINFO;
+    alias ICONINFO* PICONINFO;
+
+    struct ICONMETRICS
+    {
+        UINT cbSize;
+        int iHorzSpacing;
+        int iVertSpacing;
+        int iTitleWrap;
+        LOGFONT lfFont;
+    }
+
+    alias ICONMETRICS* LPICONMETRICS;
+    alias ICONMETRICS TAGICONMETRICS;
+    alias ICONMETRICS TICONMETRICS;
+    alias ICONMETRICS* PICONMETRICS;
+
+    struct IMAGEINFO
+    {
+        HBITMAP hbmImage;
+        HBITMAP hbmMask;
+        int Unused1;
+        int Unused2;
+        RECT rcImage;
+    }
+
+    alias IMAGEINFO _IMAGEINFO;
+    alias IMAGEINFO TIMAGEINFO;
+    alias IMAGEINFO* PIMAGEINFO;
+
+    align(1) struct KEY_EVENT_RECORD
+    {
+        WINBOOL bKeyDown;
+        ushort wRepeatCount;
+        ushort wVirtualKeyCode;
+        ushort wVirtualScanCode;
+
+        union
+        {
+            struct
+            {
+                WCHAR UnicodeChar;
+                DWORD dwControlKeyState;
+            }
+            struct
+            {
+                char AsciiChar;
+            }
+        }
+    }
+
+    alias KEY_EVENT_RECORD _KEY_EVENT_RECORD;
+    alias KEY_EVENT_RECORD TKEYEVENTRECORD;
+    alias KEY_EVENT_RECORD* PKEYEVENTRECORD;
+
+    struct MOUSE_EVENT_RECORD
+    {
+        COORD dwMousePosition;
+        DWORD dwButtonState;
+        DWORD dwControlKeyState;
+        DWORD dwEventFlags;
+    }
+
+    alias MOUSE_EVENT_RECORD _MOUSE_EVENT_RECORD;
+    alias MOUSE_EVENT_RECORD TMOUSEEVENTRECORD;
+    alias MOUSE_EVENT_RECORD* PMOUSEEVENTRECORD;
+
+    struct WINDOW_BUFFER_SIZE_RECORD
+    {
+        COORD dwSize;
+    }
+
+    alias WINDOW_BUFFER_SIZE_RECORD _WINDOW_BUFFER_SIZE_RECORD;
+    alias WINDOW_BUFFER_SIZE_RECORD TWINDOWBUFFERSIZERECORD;
+    alias WINDOW_BUFFER_SIZE_RECORD* PWINDOWBUFFERSIZERECORD;
+
+    struct MENU_EVENT_RECORD
+    {
+        UINT dwCommandId;
+    }
+
+    alias MENU_EVENT_RECORD* PMENU_EVENT_RECORD;
+    alias MENU_EVENT_RECORD _MENU_EVENT_RECORD;
+    alias MENU_EVENT_RECORD TMENUEVENTRECORD;
+    alias MENU_EVENT_RECORD* PMENUEVENTRECORD;
+
+    struct INPUT_RECORD
+    {
+        ushort EventType;
+
+        union
+        {
+            struct
+            {
+                KEY_EVENT_RECORD KeyEvent;
+            }
+            struct
+            {
+                MOUSE_EVENT_RECORD MouseEvent;
+            }
+            struct
+            {
+                WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
+            }
+            struct
+            {
+                MENU_EVENT_RECORD MenuEvent;
+            }
+            struct
+            {
+                FOCUS_EVENT_RECORD FocusEvent;
+            }
+        }
+    }
+
+    alias INPUT_RECORD* PINPUT_RECORD;
+    alias INPUT_RECORD _INPUT_RECORD;
+    alias INPUT_RECORD TINPUTRECORD;
+    alias INPUT_RECORD* PINPUTRECORD;
+
+    struct SYSTEMTIME
+    {
+        ushort wYear;
+        ushort wMonth;
+        ushort wDayOfWeek;
+        ushort wDay;
+        ushort wHour;
+        ushort wMinute;
+        ushort wSecond;
+        ushort wMilliseconds;
+    }
+
+    alias SYSTEMTIME* LPSYSTEMTIME;
+    alias SYSTEMTIME _SYSTEMTIME;
+    alias SYSTEMTIME TSYSTEMTIME;
+    alias SYSTEMTIME* PSYSTEMTIME;
+
+    struct JOB_INFO_1
+    {
+        DWORD JobId;
+        LPTSTR pPrinterName;
+        LPTSTR pMachineName;
+        LPTSTR pUserName;
+        LPTSTR pDocument;
+        LPTSTR pDatatype;
+        LPTSTR pStatus;
+        DWORD Status;
+        DWORD Priority;
+        DWORD Position;
+        DWORD TotalPages;
+        DWORD PagesPrinted;
+        SYSTEMTIME Submitted;
+    }
+
+    alias JOB_INFO_1 _JOB_INFO_1;
+    alias JOB_INFO_1 TJOBINFO1;
+    alias JOB_INFO_1* PJOBINFO1;
+
+    struct SID_IDENTIFIER_AUTHORITY
+    {
+        ubyte[1 + 5] Value;
+    }
+
+    alias SID_IDENTIFIER_AUTHORITY* LPSID_IDENTIFIER_AUTHORITY;
+    alias SID_IDENTIFIER_AUTHORITY* PSID_IDENTIFIER_AUTHORITY;
+    alias SID_IDENTIFIER_AUTHORITY _SID_IDENTIFIER_AUTHORITY;
+    alias SID_IDENTIFIER_AUTHORITY TSIDIDENTIFIERAUTHORITY;
+    alias SID_IDENTIFIER_AUTHORITY* PSIDIDENTIFIERAUTHORITY;
+
+    struct SID
+    {
+        ubyte Revision;
+        ubyte SubAuthorityCount;
+        SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
+        DWORD[1 + ANYSIZE_ARRAY-1] SubAuthority;
+    }
+
+    alias SID _SID;
+    alias SID TSID;
+    alias SID* PSID;
+    alias ushort SECURITY_DESCRIPTOR_CONTROL;
+    alias SECURITY_DESCRIPTOR_CONTROL* PSECURITY_DESCRIPTOR_CONTROL;
+    alias SECURITY_DESCRIPTOR_CONTROL TSECURITYDESCRIPTORCONTROL;
+    alias SECURITY_DESCRIPTOR_CONTROL* PSECURITYDESCRIPTORCONTROL;
+
+    struct SECURITY_DESCRIPTOR
+    {
+        ubyte Revision;
+        ubyte Sbz1;
+        SECURITY_DESCRIPTOR_CONTROL Control;
+        PSID Owner;
+        PSID Group;
+        PACL Sacl;
+        PACL Dacl;
+    }
+
+    alias SECURITY_DESCRIPTOR* PSECURITY_DESCRIPTOR;
+    alias SECURITY_DESCRIPTOR _SECURITY_DESCRIPTOR;
+    alias SECURITY_DESCRIPTOR TSECURITYDESCRIPTOR;
+    alias SECURITY_DESCRIPTOR* PSECURITYDESCRIPTOR;
+
+    struct JOB_INFO_2
+    {
+        DWORD JobId;
+        LPTSTR pPrinterName;
+        LPTSTR pMachineName;
+        LPTSTR pUserName;
+        LPTSTR pDocument;
+        LPTSTR pNotifyName;
+        LPTSTR pDatatype;
+        LPTSTR pPrintProcessor;
+        LPTSTR pParameters;
+        LPTSTR pDriverName;
+        LPDEVMODE pDevMode;
+        LPTSTR pStatus;
+        PSECURITY_DESCRIPTOR pSecurityDescriptor;
+        DWORD Status;
+        DWORD Priority;
+        DWORD Position;
+        DWORD StartTime;
+        DWORD UntilTime;
+        DWORD TotalPages;
+        DWORD Size;
+        SYSTEMTIME Submitted;
+        DWORD Time;
+        DWORD PagesPrinted;
+    }
+
+    alias JOB_INFO_2 _JOB_INFO_2;
+    alias JOB_INFO_2 TJOBINFO2;
+    alias JOB_INFO_2* PJOBINFO2;
+
+    struct KERNINGPAIR
+    {
+        ushort wFirst;
+        ushort wSecond;
+        int iKernAmount;
+    }
+
+    alias KERNINGPAIR* LPKERNINGPAIR;
+    alias KERNINGPAIR TAGKERNINGPAIR;
+    alias KERNINGPAIR TKERNINGPAIR;
+    alias KERNINGPAIR* PKERNINGPAIR;
+
+    struct LANA_ENUM
+    {
+        UCHAR length;
+        UCHAR[1 + MAX_LANA] lana;
+    }
+
+    alias LANA_ENUM _LANA_ENUM;
+    alias LANA_ENUM TLANAENUM;
+    alias LANA_ENUM* PLANAENUM;
+
+    struct LDT_ENTRY
+    {
+        ushort LimitLow;
+        ushort BaseLow;
+
+        union
+        {
+            struct
+            {
+                ubyte BaseMid;
+                ubyte Flags1;
+                ubyte Flags2;
+                ubyte BaseHi;
+            }
+            struct
+            {
+                int flag0;
+            }
+        }
+    }
+
+    alias LDT_ENTRY* LPLDT_ENTRY;
+    alias LDT_ENTRY* PLDT_ENTRY;
+    alias LDT_ENTRY _LDT_ENTRY;
+    alias LDT_ENTRY TLDTENTRY;
+    alias LDT_ENTRY* PLDTENTRY;
+    enum : DWORD {
+        bm_LDT_ENTRY_BaseMid = (0xFF),
+        bp_LDT_ENTRY_BaseMid = (0),
+        bm_LDT_ENTRY_Type = (0x1F00),
+        bp_LDT_ENTRY_Type = (8),
+        bm_LDT_ENTRY_Dpl = (0x6000),
+        bp_LDT_ENTRY_Dpl = (13),
+        bm_LDT_ENTRY_Pres = (0x8000),
+        bp_LDT_ENTRY_Pres = (15),
+        bm_LDT_ENTRY_LimitHi = (0xF0000),
+        bp_LDT_ENTRY_LimitHi = (16),
+        bm_LDT_ENTRY_Sys = (0x100000),
+        bp_LDT_ENTRY_Sys = (20),
+        bm_LDT_ENTRY_Reserved_0 = (0x200000),
+        bp_LDT_ENTRY_Reserved_0 = (21),
+        bm_LDT_ENTRY_Default_Big = (0x400000),
+        bp_LDT_ENTRY_Default_Big = (22),
+        bm_LDT_ENTRY_Granularity = (0x800000),
+        bp_LDT_ENTRY_Granularity = (23),
+        bm_LDT_ENTRY_BaseHi = (0xFF000000),
+        bp_LDT_ENTRY_BaseHi = (24),
+    }
+
+    struct LOCALESIGNATURE
+    {
+        DWORD[1 + 3] lsUsb;
+        DWORD[1 + 1] lsCsbDefault;
+        DWORD[1 + 1] lsCsbSupported;
+    }
+
+    alias LOCALESIGNATURE TAGLOCALESIGNATURE;
+    alias LOCALESIGNATURE TLOCALESIGNATURE;
+    alias LOCALESIGNATURE* PLOCALESIGNATURE;
+
+    struct LOCALGROUP_MEMBERS_INFO_0
+    {
+        PSID lgrmi0_sid;
+    }
+
+    alias LOCALGROUP_MEMBERS_INFO_0 _LOCALGROUP_MEMBERS_INFO_0;
+    alias LOCALGROUP_MEMBERS_INFO_0 TLOCALGROUPMEMBERSINFO0;
+    alias LOCALGROUP_MEMBERS_INFO_0* PLOCALGROUPMEMBERSINFO0;
+
+    struct LOCALGROUP_MEMBERS_INFO_3
+    {
+        LPWSTR lgrmi3_domainandname;
+    }
+
+    alias LOCALGROUP_MEMBERS_INFO_3 _LOCALGROUP_MEMBERS_INFO_3;
+    alias LOCALGROUP_MEMBERS_INFO_3 TLOCALGROUPMEMBERSINFO3;
+    alias LOCALGROUP_MEMBERS_INFO_3* PLOCALGROUPMEMBERSINFO3;
+    alias int FXPT16DOT16;
+    alias FXPT16DOT16* LPFXPT16DOT16;
+    alias FXPT16DOT16 TFXPT16DOT16;
+    alias FXPT16DOT16* PFXPT16DOT16;
+    struct LUID {
+        DWORD LowPart;
+        LONG  HighPart;
+    }
+    alias LUID TLUID;
+    alias LUID* PLUID;
+
+    struct LUID_AND_ATTRIBUTES
+    {
+        LUID Luid;
+        DWORD Attributes;
+    }
+
+    alias LUID_AND_ATTRIBUTES _LUID_AND_ATTRIBUTES;
+    alias LUID_AND_ATTRIBUTES TLUIDANDATTRIBUTES;
+    alias LUID_AND_ATTRIBUTES* PLUIDANDATTRIBUTES;
+    alias LUID_AND_ATTRIBUTES[1 + ANYSIZE_ARRAY-1] LUID_AND_ATTRIBUTES_ARRAY;
+    alias LUID_AND_ATTRIBUTES_ARRAY* PLUID_AND_ATTRIBUTES_ARRAY;
+    alias LUID_AND_ATTRIBUTES_ARRAY TLUIDANDATTRIBUTESARRAY;
+    alias LUID_AND_ATTRIBUTES_ARRAY* PLUIDANDATTRIBUTESARRAY;
+
+    struct LVCOLUMNA {
+        UINT mask;
+        int fmt;
+        int cx;
+        LPSTR pszText;
+        int cchTextMax;
+        int iSubItem;
+        int iImage;
+        //if (_WIN32_IE >= 0x0300)
+        int iOrder;
+        //endif
+        //if (_WIN32_WINNT >= 0x0600)
+        //int cxMin;
+        //int cxDefault;
+        //int cxIdeal;
+        //endif
+    }
+    struct LVCOLUMNW {
+        UINT mask;
+        int fmt;
+        int cx;
+        LPWSTR pszText;
+        int cchTextMax;
+        int iSubItem;
+        int iImage;
+        //if (_WIN32_IE >= 0x0300)
+        int iOrder;
+        //endif
+        //if (_WIN32_WINNT >= 0x0600)
+        //int cxMin;
+        //int cxDefault;
+        //int cxIdeal;
+        //endif
+    }
+    version(Win32SansUnicode){
+        alias LVCOLUMNA LVCOLUMN;
+    }else{
+        alias LVCOLUMNW LVCOLUMN;
+    }
+    alias LVCOLUMN* LPLVCOLUMN;
+    alias LVCOLUMN LV_COLUMN;
+    alias LV_COLUMN _LV_COLUMN;
+    alias LV_COLUMN TLVCOLUMN;
+    alias LV_COLUMN* PLVCOLUMN;
+
+    struct LVITEMA {
+        UINT   mask;
+        int    iItem;
+        int    iSubItem;
+        UINT   state;
+        UINT   stateMask;
+        LPSTR  pszText;
+        int    cchTextMax;
+        int    iImage;
+        LPARAM lParam;
+    //if (_WIN32_IE >= 0x0300)
+        int iIndent;
+    //endif
+    //if (_WIN32_WINNT >= 0x560)
+        int iGroupId;
+        UINT cColumns; // tile view columns
+        PUINT puColumns;
+    //endif
+    //if (_WIN32_WINNT >= 0x0600)
+    //    int* piColFmt;
+    //    int iGroup;
+    //endif
+    }
+    struct LVITEMW {
+        UINT   mask;
+        int    iItem;
+        int    iSubItem;
+        UINT   state;
+        UINT   stateMask;
+        LPWSTR  pszText;
+        int    cchTextMax;
+        int    iImage;
+        LPARAM lParam;
+    //if (_WIN32_IE >= 0x0300)
+        int iIndent;
+    //endif
+    //if (_WIN32_WINNT >= 0x560)
+        int iGroupId;
+        UINT cColumns; // tile view columns
+        PUINT puColumns;
+    //endif
+    //if (_WIN32_WINNT >= 0x0600)
+    //    int* piColFmt;
+    //    int iGroup;
+    //endif
+    }
+    version(Win32SansUnicode){
+        alias LVITEMA LVITEM;
+    }else{
+        alias LVITEMW LVITEM;
+    }
+    alias LVITEM* LPLVITEM;
+    alias LVITEM LV_ITEM;
+
+    alias LV_ITEM _LV_ITEM;
+    alias LV_ITEM TLVITEM;
+    alias LV_ITEM* PLVITEM;
+
+    struct LV_DISPINFO
+    {
+        NMHDR hdr;
+        LV_ITEM item;
+    }
+
+    alias LV_DISPINFO TAGLV_DISPINFO;
+    alias LV_DISPINFO TLVDISPINFO;
+    alias LV_DISPINFO* PLVDISPINFO;
+
+    struct LV_FINDINFO
+    {
+        UINT flags;
+        LPCTSTR psz;
+        LPARAM lParam;
+        POINT pt;
+        UINT vkDirection;
+    }
+
+    alias LV_FINDINFO _LV_FINDINFO;
+    alias LV_FINDINFO TLVFINDINFO;
+    alias LV_FINDINFO* PLVFINDINFO;
+
+    struct LVHITTESTINFO
+    {
+        POINT pt;
+        UINT flags;
+        int iItem;
+        int iSubItem;
+    //#if _WIN32_WINNT >= 0x0600
+    //    int iGroup;
+    //#endif
+    }
+
+    alias LVHITTESTINFO LV_HITTESTINFO;
+
+    alias LV_HITTESTINFO _LV_HITTESTINFO;
+    alias LV_HITTESTINFO TLVHITTESTINFO;
+    alias LV_HITTESTINFO* PLVHITTESTINFO;
+
+    align(2) struct LV_KEYDOWN
+    {
+        NMHDR hdr;
+        ushort wVKey;
+        UINT flags;
+    }
+
+    alias LV_KEYDOWN TAGLV_KEYDOWN;
+    alias LV_KEYDOWN TLVKEYDOWN;
+    alias LV_KEYDOWN* PLVKEYDOWN;
+
+    struct MAT2
+    {
+        FIXED eM11;
+        FIXED eM12;
+        FIXED eM21;
+        FIXED eM22;
+    }
+
+    alias MAT2 _MAT2;
+    alias MAT2 TMAT2;
+    alias MAT2* PMAT2;
+
+    struct MDICREATESTRUCT
+    {
+        LPCTSTR szClass;
+        LPCTSTR szTitle;
+        HANDLE hOwner;
+        int x;
+        int y;
+        int cx;
+        int cy;
+        DWORD style;
+        LPARAM lParam;
+    }
+
+    alias MDICREATESTRUCT* LPMDICREATESTRUCT;
+    alias MDICREATESTRUCT TAGMDICREATESTRUCT;
+    alias MDICREATESTRUCT TMDICREATESTRUCT;
+    alias MDICREATESTRUCT* PMDICREATESTRUCT;
+
+    struct MEASUREITEMSTRUCT
+    {
+        UINT CtlType;
+        UINT CtlID;
+        UINT itemID;
+        UINT itemWidth;
+        UINT itemHeight;
+        DWORD itemData;
+    }
+
+    alias MEASUREITEMSTRUCT* LPMEASUREITEMSTRUCT;
+    alias MEASUREITEMSTRUCT TAGMEASUREITEMSTRUCT;
+    alias MEASUREITEMSTRUCT TMEASUREITEMSTRUCT;
+    alias MEASUREITEMSTRUCT* PMEASUREITEMSTRUCT;
+
+    struct MEMORY_BASIC_INFORMATION
+    {
+        PVOID BaseAddress;
+        PVOID AllocationBase;
+        DWORD AllocationProtect;
+        DWORD RegionSize;
+        DWORD State;
+        DWORD Protect;
+        DWORD _Type;
+    }
+
+    alias MEMORY_BASIC_INFORMATION* PMEMORY_BASIC_INFORMATION;
+    alias MEMORY_BASIC_INFORMATION _MEMORY_BASIC_INFORMATION;
+    alias MEMORY_BASIC_INFORMATION TMEMORYBASICINFORMATION;
+    alias MEMORY_BASIC_INFORMATION* PMEMORYBASICINFORMATION;
+
+    struct MEMORYSTATUS
+    {
+        DWORD dwLength;
+        DWORD dwMemoryLoad;
+        DWORD dwTotalPhys;
+        DWORD dwAvailPhys;
+        DWORD dwTotalPageFile;
+        DWORD dwAvailPageFile;
+        DWORD dwTotalVirtual;
+        DWORD dwAvailVirtual;
+    }
+
+    alias MEMORYSTATUS* LPMEMORYSTATUS;
+    alias MEMORYSTATUS _MEMORYSTATUS;
+    alias MEMORYSTATUS TMEMORYSTATUS;
+    alias MEMORYSTATUS* PMEMORYSTATUS;
+
+    struct MENUEX_TEMPLATE_HEADER
+    {
+        ushort wVersion;
+        ushort wOffset;
+        DWORD dwHelpId;
+    }
+
+    alias MENUEX_TEMPLATE_HEADER TMENUXTEMPLATEHEADER;
+    alias MENUEX_TEMPLATE_HEADER* PMENUXTEMPLATEHEADER;
+
+    struct MENUEX_TEMPLATE_ITEM
+    {
+        DWORD dwType;
+        DWORD dwState;
+        UINT uId;
+        ubyte bResInfo;
+        WCHAR[1 + 0] szText;
+        DWORD dwHelpId;
+    }
+
+    alias MENUEX_TEMPLATE_ITEM TMENUEXTEMPLATEITEM;
+    alias MENUEX_TEMPLATE_ITEM* PMENUEXTEMPLATEITEM;
+
+    /*
+    * Feature in Windows.  The hbmpItem field requires Windows 4.10
+    * or greater.  On Windows NT 4.0, passing in a larger struct size
+    * in the cbSize field does nothing.  On Windows 95, the MENUITEMINFO
+    * calls fail when the struct size is too large.  The fix is to ensure
+    * that the correct struct size is used for the Windows platform.
+    */
+    struct MENUITEMINFOA
+    {
+        UINT    cbSize;
+        UINT    fMask;
+        UINT    fType;          // used if MIIM_TYPE
+        UINT    fState;         // used if MIIM_STATE
+        UINT    wID;            // used if MIIM_ID
+        HMENU   hSubMenu;       // used if MIIM_SUBMENU
+        HBITMAP hbmpChecked;    // used if MIIM_CHECKMARKS
+        HBITMAP hbmpUnchecked;  // used if MIIM_CHECKMARKS
+        DWORD   dwItemData;     // used if MIIM_DATA
+        LPSTR   dwTypeData;     // used if MIIM_TYPE
+        UINT    cch;            // used if MIIM_TYPE
+        HBITMAP hbmpItem;
+    }
+    alias MENUITEMINFOA* PMENUITEMINFOA, LPMENUITEMINFOA;
+    struct MENUITEMINFOW
+    {
+        UINT    cbSize;
+        UINT    fMask;
+        UINT    fType;          // used if MIIM_TYPE
+        UINT    fState;         // used if MIIM_STATE
+        UINT    wID;            // used if MIIM_ID
+        HMENU   hSubMenu;       // used if MIIM_SUBMENU
+        HBITMAP hbmpChecked;    // used if MIIM_CHECKMARKS
+        HBITMAP hbmpUnchecked;  // used if MIIM_CHECKMARKS
+        DWORD   dwItemData;     // used if MIIM_DATA
+        LPWSTR  dwTypeData;     // used if MIIM_TYPE
+        UINT    cch;            // used if MIIM_TYPE
+        HBITMAP hbmpItem;
+    }   alias MENUITEMINFOW* PMENUITEMINFOW, LPMENUITEMINFOW;
+    version(Win32SansUnicode)
+    {
+        alias MENUITEMINFOA MENUITEMINFO;
+    }
+    else
+    {
+        alias MENUITEMINFOW MENUITEMINFO;
+    }
+    alias MENUITEMINFO * LPMENUITEMINFO;
+    alias MENUITEMINFO * LPCMENUITEMINFO;
+    alias MENUITEMINFO TAGMENUITEMINFO;
+    alias MENUITEMINFO TMENUITEMINFO;
+    alias MENUITEMINFO TMENUITEMINFOA;
+    alias MENUITEMINFO* PMENUITEMINFO;
+
+    struct MENUITEMTEMPLATE
+    {
+        ushort mtOption;
+        ushort mtID;
+        WCHAR[1 + 0] mtString;
+    }
+
+    alias MENUITEMTEMPLATE TMENUITEMTEMPLATE;
+    alias MENUITEMTEMPLATE* PMENUITEMTEMPLATE;
+
+    struct MENUITEMTEMPLATEHEADER
+    {
+        ushort versionNumber;
+        ushort offset;
+    }
+
+    alias MENUITEMTEMPLATEHEADER TMENUITEMTEMPLATEHEADER;
+    alias MENUITEMTEMPLATEHEADER* PMENUITEMTEMPLATEHEADER;
+
+    struct MENUTEMPLATE
+    {
+    }
+
+    alias MENUTEMPLATE* LPMENUTEMPLATE;
+    alias MENUTEMPLATE TMENUTEMPLATE;
+    alias MENUTEMPLATE* PMENUTEMPLATE;
+
+    struct METAFILEPICT
+    {
+        LONG mm;
+        LONG xExt;
+        LONG yExt;
+        HMETAFILE hMF;
+    }
+
+    alias METAFILEPICT* LPMETAFILEPICT;
+    alias METAFILEPICT TAGMETAFILEPICT;
+    alias METAFILEPICT TMETAFILEPICT;
+    alias METAFILEPICT* PMETAFILEPICT;
+
+    align(1) struct METAHEADER
+    {
+        ushort mtType;
+        ushort mtHeaderSize;
+        ushort mtVersion;
+        DWORD mtSize;
+        ushort mtNoObjects;
+        DWORD mtMaxRecord;
+        ushort mtNoParameters;
+    }
+
+    alias METAHEADER TAGMETAHEADER;
+    alias METAHEADER TMETAHEADER;
+    alias METAHEADER* PMETAHEADER;
+
+    struct METARECORD
+    {
+        DWORD rdSize;
+        ushort rdFunction;
+        ushort[1 + 0] rdParm;
+    }
+
+    alias METARECORD* LPMETARECORD;
+    alias METARECORD TAGMETARECORD;
+    alias METARECORD TMETARECORD;
+    alias METARECORD* PMETARECORD;
+
+    struct MINIMIZEDMETRICS
+    {
+        UINT cbSize;
+        int iWidth;
+        int iHorzGap;
+        int iVertGap;
+        int iArrange;
+    }
+
+    alias MINIMIZEDMETRICS* LPMINIMIZEDMETRICS;
+    alias MINIMIZEDMETRICS TAGMINIMIZEDMETRICS;
+    alias MINIMIZEDMETRICS TMINIMIZEDMETRICS;
+    alias MINIMIZEDMETRICS* PMINIMIZEDMETRICS;
+
+    struct MINMAXINFO
+    {
+        POINT ptReserved;
+        POINT ptMaxSize;
+        POINT ptMaxPosition;
+        POINT ptMinTrackSize;
+        POINT ptMaxTrackSize;
+    }
+
+    alias MINMAXINFO TAGMINMAXINFO;
+    alias MINMAXINFO TMINMAXINFO;
+    alias MINMAXINFO* PMINMAXINFO;
+
+    struct MODEMDEVCAPS
+    {
+        DWORD dwActualSize;
+        DWORD dwRequiredSize;
+        DWORD dwDevSpecificOffset;
+        DWORD dwDevSpecificSize;
+        DWORD dwModemProviderVersion;
+        DWORD dwModemManufacturerOffset;
+        DWORD dwModemManufacturerSize;
+        DWORD dwModemModelOffset;
+        DWORD dwModemModelSize;
+        DWORD dwModemVersionOffset;
+        DWORD dwModemVersionSize;
+        DWORD dwDialOptions;
+        DWORD dwCallSetupFailTimer;
+        DWORD dwInactivityTimeout;
+        DWORD dwSpeakerVolume;
+        DWORD dwSpeakerMode;
+        DWORD dwModemOptions;
+        DWORD dwMaxDTERate;
+        DWORD dwMaxDCERate;
+        ubyte[1 + 0] abVariablePortion;
+    }
+
+    alias MODEMDEVCAPS* LPMODEMDEVCAPS;
+    alias MODEMDEVCAPS TMODEMDEVCAPS;
+    alias MODEMDEVCAPS* PMODEMDEVCAPS;
+    alias MODEMDEVCAPS MODEMDEVCAPS_TAG;
+
+    struct MODEMSETTINGS
+    {
+        DWORD dwActualSize;
+        DWORD dwRequiredSize;
+        DWORD dwDevSpecificOffset;
+        DWORD dwDevSpecificSize;
+        DWORD dwCallSetupFailTimer;
+        DWORD dwInactivityTimeout;
+        DWORD dwSpeakerVolume;
+        DWORD dwSpeakerMode;
+        DWORD dwPreferredModemOptions;
+        DWORD dwNegotiatedModemOptions;
+        DWORD dwNegotiatedDCERate;
+        ubyte[1 + 0] abVariablePortion;
+    }
+
+    alias MODEMSETTINGS* LPMODEMSETTINGS;
+    alias MODEMSETTINGS TMODEMSETTINGS;
+    alias MODEMSETTINGS* PMODEMSETTINGS;
+    alias MODEMSETTINGS MODEMSETTINGS_TAG;
+
+    struct MONCBSTRUCT
+    {
+        UINT cb;
+        DWORD dwTime;
+        HANDLE hTask;
+        DWORD dwRet;
+        UINT wType;
+        UINT wFmt;
+        HCONV hConv;
+        HSZ hsz1;
+        HSZ hsz2;
+        HDDEDATA hData;
+        DWORD dwData1;
+        DWORD dwData2;
+        CONVCONTEXT cc;
+        DWORD cbData;
+        DWORD[1 + 7] Data;
+    }
+
+    alias MONCBSTRUCT TAGMONCBSTRUCT;
+    alias MONCBSTRUCT TMONCBSTRUCT;
+    alias MONCBSTRUCT* PMONCBSTRUCT;
+
+    struct MONCONVSTRUCT
+    {
+        UINT cb;
+        WINBOOL fConnect;
+        DWORD dwTime;
+        HANDLE hTask;
+        HSZ hszSvc;
+        HSZ hszTopic;
+        HCONV hConvClient;
+        HCONV hConvServer;
+    }
+
+    alias MONCONVSTRUCT TAGMONCONVSTRUCT;
+    alias MONCONVSTRUCT TMONCONVSTRUCT;
+    alias MONCONVSTRUCT* PMONCONVSTRUCT;
+
+    struct MONERRSTRUCT
+    {
+        UINT cb;
+        UINT wLastError;
+        DWORD dwTime;
+        HANDLE hTask;
+    }
+
+    alias MONERRSTRUCT TAGMONERRSTRUCT;
+    alias MONERRSTRUCT TMONERRSTRUCT;
+    alias MONERRSTRUCT* PMONERRSTRUCT;
+
+    struct MONHSZSTRUCT
+    {
+        UINT cb;
+        WINBOOL fsAction;
+        DWORD dwTime;
+        HSZ hsz;
+        HANDLE hTask;
+        TCHAR[1 + 0] str;
+    }
+
+    alias MONHSZSTRUCT TAGMONHSZSTRUCT;
+    alias MONHSZSTRUCT TMONHSZSTRUCT;
+    alias MONHSZSTRUCT* PMONHSZSTRUCT;
+
+    struct MONITOR_INFO_1
+    {
+        LPTSTR pName;
+    }
+
+    alias MONITOR_INFO_1 _MONITOR_INFO_1;
+    alias MONITOR_INFO_1 TMONITORINFO1;
+    alias MONITOR_INFO_1* PMONITORINFO1;
+
+    struct MONITOR_INFO_2
+    {
+        LPTSTR pName;
+        LPTSTR pEnvironment;
+        LPTSTR pDLLName;
+    }
+
+    alias MONITOR_INFO_2 _MONITOR_INFO_2;
+    alias MONITOR_INFO_2 TMONITORINFO2;
+    alias MONITOR_INFO_2* PMONITORINFO2;
+
+    struct MONLINKSTRUCT
+    {
+        UINT cb;
+        DWORD dwTime;
+        HANDLE hTask;
+        WINBOOL fEstablished;
+        WINBOOL fNoData;
+        HSZ hszSvc;
+        HSZ hszTopic;
+        HSZ hszItem;
+        UINT wFmt;
+        WINBOOL fServer;
+        HCONV hConvServer;
+        HCONV hConvClient;
+    }
+
+    alias MONLINKSTRUCT TAGMONLINKSTRUCT;
+    alias MONLINKSTRUCT TMONLINKSTRUCT;
+    alias MONLINKSTRUCT* PMONLINKSTRUCT;
+
+    struct MONMSGSTRUCT
+    {
+        UINT cb;
+        HWND hwndTo;
+        DWORD dwTime;
+        HANDLE hTask;
+        UINT wMsg;
+        WPARAM wParam;
+        LPARAM lParam;
+        DDEML_MSG_HOOK_DATA dmhd;
+    }
+
+    alias MONMSGSTRUCT TAGMONMSGSTRUCT;
+    alias MONMSGSTRUCT TMONMSGSTRUCT;
+    alias MONMSGSTRUCT* PMONMSGSTRUCT;
+
+    struct MOUSEHOOKSTRUCT
+    {
+        POINT pt;
+        HWND hwnd;
+        UINT wHitTestCode;
+        DWORD dwExtraInfo;
+    }
+
+    alias MOUSEHOOKSTRUCT* LPMOUSEHOOKSTRUCT;
+    alias MOUSEHOOKSTRUCT TAGMOUSEHOOKSTRUCT;
+    alias MOUSEHOOKSTRUCT TMOUSEHOOKSTRUCT;
+    alias MOUSEHOOKSTRUCT* PMOUSEHOOKSTRUCT;
+
+    struct MOUSEKEYS
+    {
+        DWORD cbSize;
+        DWORD dwFlags;
+        DWORD iMaxSpeed;
+        DWORD iTimeToMaxSpeed;
+        DWORD iCtrlSpeed;
+        DWORD dwReserved1;
+        DWORD dwReserved2;
+    }
+
+    alias MOUSEKEYS TMOUSEKEYS;
+    alias MOUSEKEYS* PMOUSEKEYS;
+
+    struct MSG
+    {
+        HWND hwnd;
+        UINT message;
+        WPARAM wParam;
+        LPARAM lParam;
+        DWORD time;
+        POINT pt;
+    }
+
+    alias MSG* LPMSG;
+    alias MSG TAGMSG;
+    alias MSG TMSG;
+    alias MSG* PMSG;
+    extern(Windows){
+    alias void (*MSGBOXCALLBACK)(LPHELPINFO);
+    }
+    alias MSGBOXCALLBACK TMSGBOXCALLBACK;
+
+    struct MSGBOXPARAMS
+    {
+        UINT cbSize;
+        HWND hwndOwner;
+        HINST hInstance;
+        LPCSTR lpszText;
+        LPCSTR lpszCaption;
+        DWORD dwStyle;
+        LPCSTR lpszIcon;
+        DWORD dwContextHelpId;
+        MSGBOXCALLBACK lpfnMsgBoxCallback;
+        DWORD dwLanguageId;
+    }
+
+    alias MSGBOXPARAMS* LPMSGBOXPARAMS;
+    alias MSGBOXPARAMS TMSGBOXPARAMS;
+    alias MSGBOXPARAMS TMSGBOXPARAMSA;
+    alias MSGBOXPARAMS* PMSGBOXPARAMS;
+
+    struct MSGFILTER
+    {
+        NMHDR nmhdr;
+        UINT msg;
+        WPARAM wParam;
+        LPARAM lParam;
+    }
+
+    alias MSGFILTER _MSGFILTER;
+    alias MSGFILTER TMSGFILTER;
+    alias MSGFILTER* PMSGFILTER;
+
+    struct MULTIKEYHELP
+    {
+        DWORD mkSize;
+        TCHAR mkKeylist;
+        TCHAR[1 + 0] szKeyphrase;
+    }
+
+    alias MULTIKEYHELP TAGMULTIKEYHELP;
+    alias MULTIKEYHELP TMULTIKEYHELP;
+    alias MULTIKEYHELP* PMULTIKEYHELP;
+
+    struct NAME_BUFFER
+    {
+        UCHAR[1 + NCBNAMSZ-1] name;
+        UCHAR name_num;
+        UCHAR name_flags;
+    }
+
+    alias NAME_BUFFER _NAME_BUFFER;
+    alias NAME_BUFFER TNAMEBUFFER;
+    alias NAME_BUFFER* PNAMEBUFFER;
+    alias _NCB* P_NCB;
+
+    struct NCB
+    {
+        UCHAR ncb_command;
+        UCHAR ncb_retcode;
+        UCHAR ncb_lsn;
+        UCHAR ncb_num;
+        PUCHAR ncb_buffer;
+        ushort ncb_length;
+        UCHAR[1 + NCBNAMSZ-1] ncb_callname;
+        UCHAR[1 + NCBNAMSZ-1] ncb_name;
+        UCHAR ncb_rto;
+        UCHAR ncb_sto;
+        POINTER ncb_post;
+        UCHAR ncb_lana_num;
+        UCHAR ncb_cmd_cplt;
+        UCHAR[1 + 9] ncb_reserve;
+        HANDLE ncb_event;
+    }
+
+    alias NCB _NCB;
+    alias NCB TNCB;
+    alias NCB* PNCB;
+
+    struct NCCALCSIZE_PARAMS
+    {
+        RECT[1 + 2] rgrc;
+        PWINDOWPOS lppos;
+    }
+
+    alias NCCALCSIZE_PARAMS _NCCALCSIZE_PARAMS;
+    alias NCCALCSIZE_PARAMS TNCCALCSIZEPARAMS;
+    alias NCCALCSIZE_PARAMS* PNCCALCSIZEPARAMS;
+
+    struct NDDESHAREINFO
+    {
+        LONG lRevision;
+        LPTSTR lpszShareName;
+        LONG lShareType;
+        LPTSTR lpszAppTopicList;
+        LONG fSharedFlag;
+        LONG fService;
+        LONG fStartAppFlag;
+        LONG nCmdShow;
+        LONG[1 + 1] qModifyId;
+        LONG cNumItems;
+        LPTSTR lpszItemList;
+    }
+
+    alias NDDESHAREINFO _NDDESHAREINFO;
+    alias NDDESHAREINFO TNDDESHAREINFO;
+    alias NDDESHAREINFO* PNDDESHAREINFO;
+
+    struct NETRESOURCE
+    {
+        DWORD dwScope;
+        DWORD dwType;
+        DWORD dwDisplayType;
+        DWORD dwUsage;
+        LPTSTR lpLocalName;
+        LPTSTR lpRemoteName;
+        LPTSTR lpComment;
+        LPTSTR lpProvider;
+    }
+
+    alias NETRESOURCE* LPNETRESOURCE;
+    alias NETRESOURCE _NETRESOURCE;
+    alias NETRESOURCE TNETRESOURCE;
+    alias NETRESOURCE TNETRESOURCEA;
+    alias NETRESOURCE* PNETRESOURCE;
+    alias NETRESOURCE* PNETRESOURCEA;
+
+    struct NEWCPLINFO
+    {
+        DWORD dwSize;
+        DWORD dwFlags;
+        DWORD dwHelpContext;
+        LONG lData;
+        HICON hIcon;
+        TCHAR[1 + 31] szName;
+        TCHAR[1 + 63] szInfo;
+        TCHAR[1 + 127] szHelpFile;
+    }
+
+    alias NEWCPLINFO TAGNEWCPLINFO;
+    alias NEWCPLINFO TNEWCPLINFO;
+    alias NEWCPLINFO* PNEWCPLINFO;
+
+    struct NEWTEXTMETRICA {
+        LONG   tmHeight;
+        LONG   tmAscent;
+        LONG   tmDescent;
+        LONG   tmInternalLeading;
+        LONG   tmExternalLeading;
+        LONG   tmAveCharWidth;
+        LONG   tmMaxCharWidth;
+        LONG   tmWeight;
+        LONG   tmOverhang;
+        LONG   tmDigitizedAspectX;
+        LONG   tmDigitizedAspectY;
+        BYTE  tmFirstChar;
+        BYTE  tmLastChar;
+        BYTE  tmDefaultChar;
+        BYTE  tmBreakChar;
+        BYTE   tmItalic;
+        BYTE   tmUnderlined;
+        BYTE   tmStruckOut;
+        BYTE   tmPitchAndFamily;
+        BYTE   tmCharSet;
+        DWORD  ntmFlags;
+        UINT   ntmSizeEM;
+        UINT   ntmCellHeight;
+        UINT   ntmAvgWidth;
+    }
+    struct NEWTEXTMETRICW {
+        LONG   tmHeight;
+        LONG   tmAscent;
+        LONG   tmDescent;
+        LONG   tmInternalLeading;
+        LONG   tmExternalLeading;
+        LONG   tmAveCharWidth;
+        LONG   tmMaxCharWidth;
+        LONG   tmWeight;
+        LONG   tmOverhang;
+        LONG   tmDigitizedAspectX;
+        LONG   tmDigitizedAspectY;
+        WCHAR  tmFirstChar;
+        WCHAR  tmLastChar;
+        WCHAR  tmDefaultChar;
+        WCHAR  tmBreakChar;
+        BYTE   tmItalic;
+        BYTE   tmUnderlined;
+        BYTE   tmStruckOut;
+        BYTE   tmPitchAndFamily;
+        BYTE   tmCharSet;
+        DWORD  ntmFlags;
+        UINT   ntmSizeEM;
+        UINT   ntmCellHeight;
+        UINT   ntmAvgWidth;
+    }
+
+    struct NEWTEXTMETRICEXA
+    {
+        NEWTEXTMETRICA  ntmentm;
+        FONTSIGNATURE  ntmeFontSignature;
+    }
+    struct NEWTEXTMETRICEXW
+    {
+        NEWTEXTMETRICW  ntmentm;
+        FONTSIGNATURE  ntmeFontSignature;
+    }
+
+
+    version(Win32SansUnicode)
+    {
+        alias NEWTEXTMETRICA NEWTEXTMETRIC;
+        alias NEWTEXTMETRICEXA NEWTEXTMETRICEX;
+    }
+    else
+    {
+        alias NEWTEXTMETRICW NEWTEXTMETRIC;
+        alias NEWTEXTMETRICEXW NEWTEXTMETRICEX;
+    }
+
+    alias NEWTEXTMETRIC TNEWTEXTMETRIC;
+    alias NEWTEXTMETRIC* PNEWTEXTMETRIC;
+    alias NEWTEXTMETRIC* LPNEWTEXTMETRIC;
+    alias NEWTEXTMETRIC TAGNEWTEXTMETRIC;
+    alias NEWTEXTMETRICEX TAGNEWTEXTMETRICEX;
+    alias NEWTEXTMETRICEX TNEWTEXTMETRICEX;
+    alias NEWTEXTMETRICEX* PNEWTEXTMETRICEX;
+
+    struct NM_LISTVIEW
+    {
+        NMHDR hdr;
+        int iItem;
+        int iSubItem;
+        UINT uNewState;
+        UINT uOldState;
+        UINT uChanged;
+        POINT ptAction;
+        LPARAM lParam;
+    }
+
+    alias NM_LISTVIEW TAGNM_LISTVIEW;
+    alias NM_LISTVIEW TNMLISTVIEW;
+    alias NM_LISTVIEW* PNMLISTVIEW;
+
+    struct TVITEMA
+    {
+        UINT      mask;
+        HTREEITEM hItem;
+        UINT      state;
+        UINT      stateMask;
+        LPSTR     pszText;
+        int       cchTextMax;
+        int       iImage;
+        int       iSelectedImage;
+        int       cChildren;
+        LPARAM    lParam;
+    }
+    struct TVITEMW
+    {
+        UINT      mask;
+        HTREEITEM hItem;
+        UINT      state;
+        UINT      stateMask;
+        LPWSTR    pszText;
+        int       cchTextMax;
+        int       iImage;
+        int       iSelectedImage;
+        int       cChildren;
+        LPARAM    lParam;
+    }
+    version(Win32SansUnicode)
+    {
+        alias TVITEMA TVITEM;
+    }
+    else
+    {
+        alias TVITEMW TVITEM;
+    }
+    alias TVITEM* LPTVITEM;
+    alias TVITEM* LPTV_ITEM;
+    alias TVITEM _TV_ITEM;
+    alias TVITEM TTVITEM;
+    alias TVITEM TV_ITEM;
+    alias TVITEM* PTVITEM;
+
+    struct TVITEMEXA {
+        UINT      mask;
+        HTREEITEM hItem;
+        UINT      state;
+        UINT      stateMask;
+        LPSTR     pszText;
+        int       cchTextMax;
+        int       iImage;
+        int       iSelectedImage;
+        int       cChildren;
+        LPARAM    lParam;
+        int       iIntegral;
+    //#if (_WIN32_IE >= 0x0600)
+    //    UINT      uStateEx;
+    //    HWND      hwnd;
+    //    int       iExpandedImage;
+    //#endif
+    }
+    struct TVITEMEXW {
+        UINT      mask;
+        HTREEITEM hItem;
+        UINT      state;
+        UINT      stateMask;
+        LPWSTR    pszText;
+        int       cchTextMax;
+        int       iImage;
+        int       iSelectedImage;
+        int       cChildren;
+        LPARAM    lParam;
+        int       iIntegral;
+    //#if (_WIN32_IE >= 0x0600)
+    //    UINT      uStateEx;
+    //    HWND      hwnd;
+    //    int       iExpandedImage;
+    //#endif
+    }
+    version(Win32SansUnicode)
+    {
+        alias TVITEMEXA TVITEMEX;
+    }
+    else
+    {
+        alias TVITEMEXW TVITEMEX;
+    }
+    alias TVITEMEX * LPTVITEMEX;
+
+    struct NMTREEVIEW
+    {
+        NMHDR hdr;
+        UINT action;
+        TVITEM itemOld;
+        TVITEM itemNew;
+        POINT ptDrag;
+    }
+    alias NMTREEVIEW* PNMTREEVIEW;
+    alias NMTREEVIEW* LPNMTREEVIEW;
+    alias NMTREEVIEW  NM_TREEVIEW;
+    alias NM_TREEVIEW* LPNM_TREEVIEW;
+    alias NM_TREEVIEW _NM_TREEVIEW;
+    alias NM_TREEVIEW TNMTREEVIEW;
+
+    struct NM_UPDOWNW
+    {
+        NMHDR hdr;
+        int iPos;
+        int iDelta;
+    }
+
+    alias NM_UPDOWNW _NM_UPDOWN;
+    alias NM_UPDOWNW TNMUPDOWN;
+    alias NM_UPDOWNW* PNMUPDOWN;
+    alias NM_UPDOWNW NMUPDOWN;
+
+    struct NONCLIENTMETRICSA {
+        int cbSize;
+        int iBorderWidth;
+        int iScrollWidth;
+        int iScrollHeight;
+        int iCaptionWidth;
+        int iCaptionHeight;
+        LOGFONTA lfCaptionFont;
+        int iSmCaptionWidth;
+        int iSmCaptionHeight;
+        LOGFONTA lfSmCaptionFont;
+        int iMenuWidth;
+        int iMenuHeight;
+        LOGFONTA lfMenuFont;
+        LOGFONTA lfStatusFont;
+        LOGFONTA lfMessageFont;
+    //if (WINVER >= 0x0600)
+    //  int iPaddedBorderWidth;
+    //endif 
+
+    }
+    struct NONCLIENTMETRICSW {
+        int cbSize;
+        int iBorderWidth;
+        int iScrollWidth;
+        int iScrollHeight;
+        int iCaptionWidth;
+        int iCaptionHeight;
+        LOGFONTW lfCaptionFont;
+        int iSmCaptionWidth;
+        int iSmCaptionHeight;
+        LOGFONTW lfSmCaptionFont;
+        int iMenuWidth;
+        int iMenuHeight;
+        LOGFONTW lfMenuFont;
+        LOGFONTW lfStatusFont;
+        LOGFONTW lfMessageFont;
+    //if (WINVER >= 0x0600)
+    //  int iPaddedBorderWidth;
+    //endif 
+    }
+    version(Win32SansUnicode)
+    {
+        alias NONCLIENTMETRICSA NONCLIENTMETRICS;
+    }
+    else
+    {
+        alias NONCLIENTMETRICSW NONCLIENTMETRICS;
+    }
+    alias NONCLIENTMETRICS* LPNONCLIENTMETRICS;
+    alias NONCLIENTMETRICS TAGNONCLIENTMETRICS;
+    alias NONCLIENTMETRICS TNONCLIENTMETRICS;
+    alias NONCLIENTMETRICS* PNONCLIENTMETRICS;
+
+    struct SERVICE_ADDRESS
+    {
+        DWORD dwAddressType;
+        DWORD dwAddressFlags;
+        DWORD dwAddressLength;
+        DWORD dwPrincipalLength;
+        ubyte* lpAddress;
+        ubyte* lpPrincipal;
+    }
+
+    alias SERVICE_ADDRESS _SERVICE_ADDRESS;
+    alias SERVICE_ADDRESS TSERVICEADDRESS;
+    alias SERVICE_ADDRESS* PSERVICEADDRESS;
+
+    struct SERVICE_ADDRESSES
+    {
+        DWORD dwAddressCount;
+        SERVICE_ADDRESS[1 + 0] Addresses;
+    }
+
+    alias SERVICE_ADDRESSES* LPSERVICE_ADDRESSES;
+    alias SERVICE_ADDRESSES _SERVICE_ADDRESSES;
+    alias SERVICE_ADDRESSES TSERVICEADDRESSES;
+    alias SERVICE_ADDRESSES* PSERVICEADDRESSES;
+
+    align(1) struct __GUID
+    {
+
+        union
+        {
+            struct
+            {
+                uint Data1;
+                ushort Data2;
+                ushort Data3;
+                ubyte[1 + 7] Data4;
+            }
+            struct
+            {
+                uint D1;
+                ushort D2;
+                ushort D3;
+                ubyte[1 + 7] D4;
+            }
+        }
+    }
+
+    alias __GUID* LPGUID;
+    alias __GUID _GUID;
+    alias __GUID GUID;
+    alias __GUID TGUID;
+    alias __GUID* PGUID;
+    alias __GUID __CLSID;
+    alias __CLSID* LPCLSID;
+    alias __CLSID TCLSID;
+    alias __CLSID* PCLSID;
+
+    struct SERVICE_INFO
+    {
+        LPGUID lpServiceType;
+        LPTSTR lpServiceName;
+        LPTSTR lpComment;
+        LPTSTR lpLocale;
+        DWORD dwDisplayHint;
+        DWORD dwVersion;
+        DWORD dwTime;
+        LPTSTR lpMachineName;
+        LPSERVICE_ADDRESSES lpServiceAddress;
+        BLOB ServiceSpecificInfo;
+    }
+
+    alias SERVICE_INFO _SERVICE_INFO;
+    alias SERVICE_INFO TSERVICEINFO;
+    alias SERVICE_INFO* PSERVICEINFO;
+
+    struct NS_SERVICE_INFO
+    {
+        DWORD dwNameSpace;
+        SERVICE_INFO ServiceInfo;
+    }
+
+    alias NS_SERVICE_INFO _NS_SERVICE_INFO;
+    alias NS_SERVICE_INFO TNSSERVICEINFO;
+    alias NS_SERVICE_INFO* PNSSERVICEINFO;
+
+    struct NUMBERFMT
+    {
+        UINT NumDigits;
+        UINT LeadingZero;
+        UINT Grouping;
+        LPTSTR lpDecimalSep;
+        LPTSTR lpThousandSep;
+        UINT NegativeOrder;
+    }
+
+    alias NUMBERFMT _NUMBERFMT;
+    alias NUMBERFMT TNUMBERFMT;
+    alias NUMBERFMT* PNUMBERFMT;
+
+    struct OFSTRUCT
+    {
+        ubyte cBytes;
+        ubyte fFixedDisk;
+        ushort nErrCode;
+        ushort Reserved1;
+        ushort Reserved2;
+        char[1 + OFS_MAXPATHNAME-1] szPathName;
+    }
+
+    alias OFSTRUCT* LPOFSTRUCT;
+    alias OFSTRUCT _OFSTRUCT;
+    alias OFSTRUCT TOFSTRUCT;
+    alias OFSTRUCT* POFSTRUCT;
+
+    struct OPENFILENAME
+    {
+        DWORD lStructSize;
+        HWND hwndOwner;
+        HINST hInstance;
+        LPCTSTR lpstrFilter;
+        LPTSTR lpstrCustomFilter;
+        DWORD nMaxCustFilter;
+        DWORD nFilterIndex;
+        LPTSTR lpstrFile;
+        DWORD nMaxFile;
+        LPTSTR lpstrFileTitle;
+        DWORD nMaxFileTitle;
+        LPCTSTR lpstrInitialDir;
+        LPCTSTR lpstrTitle;
+        DWORD Flags;
+        ushort nFileOffset;
+        ushort nFileExtension;
+        LPCTSTR lpstrDefExt;
+        DWORD lCustData;
+        LPOFNHOOKPROC lpfnHook;
+        LPCTSTR lpTemplateName;
+    //if (_WIN32_WINNT >= 0x0500)
+      void *        pvReserved;
+      DWORD         dwReserved;
+      DWORD         FlagsEx;
+    //endif // (_WIN32_WINNT >= 0x0500)
+    }
+
+    alias OPENFILENAME* LPOPENFILENAME;
+    alias OPENFILENAME TOPENFILENAME;
+    alias OPENFILENAME* POPENFILENAME;
+    alias OPENFILENAME TAGOFN;
+    alias OPENFILENAME TOFN;
+    alias OPENFILENAME* POFN;
+
+    struct OFNOTIFY
+    {
+        NMHDR hdr;
+        LPOPENFILENAME lpOFN;
+        LPTSTR pszFile;
+    }
+
+    alias OFNOTIFY* LPOFNOTIFY;
+    alias OFNOTIFY _OFNOTIFY;
+    alias OFNOTIFY TOFNOTIFY;
+    alias OFNOTIFY* POFNOTIFY;
+
+    struct OSVERSIONINFOA
+    {
+        DWORD dwOSVersionInfoSize;
+        DWORD dwMajorVersion;
+        DWORD dwMinorVersion;
+        DWORD dwBuildNumber;
+        DWORD dwPlatformId;
+        CHAR szCSDVersion[ 128 ];
+    }
+    alias OSVERSIONINFOA* POSVERSIONINFOA, LPOSVERSIONINFOA;
+
+    struct OSVERSIONINFOW
+    {
+        DWORD dwOSVersionInfoSize;
+        DWORD dwMajorVersion;
+        DWORD dwMinorVersion;
+        DWORD dwBuildNumber;
+        DWORD dwPlatformId;
+        WCHAR szCSDVersion[ 128 ];
+    }
+    alias OSVERSIONINFOW* POSVERSIONINFOW, LPOSVERSIONINFOW;
+    version(Win32SansUnicode)
+    {
+        alias OSVERSIONINFOA OSVERSIONINFO;
+    }
+    else
+    {
+        alias OSVERSIONINFOW OSVERSIONINFO;
+    }
+    alias OSVERSIONINFO* LPOSVERSIONINFO;
+    alias OSVERSIONINFO _OSVERSIONINFO;
+    alias OSVERSIONINFO TOSVERSIONINFO;
+    alias OSVERSIONINFO* POSVERSIONINFO;
+
+    struct TEXTMETRICA {
+        LONG tmHeight;
+        LONG tmAscent;
+        LONG tmDescent;
+        LONG tmInternalLeading;
+        LONG tmExternalLeading;
+        LONG tmAveCharWidth;
+        LONG tmMaxCharWidth;
+        LONG tmWeight;
+        LONG tmOverhang;
+        LONG tmDigitizedAspectX;
+        LONG tmDigitizedAspectY;
+
+        BYTE tmFirstChar;
+        BYTE tmLastChar;
+        BYTE tmDefaultChar;
+        BYTE tmBreakChar;
+
+        BYTE tmItalic;
+        BYTE tmUnderlined;
+        BYTE tmStruckOut;
+        BYTE tmPitchAndFamily;
+        BYTE tmCharSet;
+    }
+    struct TEXTMETRICW {
+        LONG tmHeight;
+        LONG tmAscent;
+        LONG tmDescent;
+        LONG tmInternalLeading;
+        LONG tmExternalLeading;
+        LONG tmAveCharWidth;
+        LONG tmMaxCharWidth;
+        LONG tmWeight;
+        LONG tmOverhang;
+        LONG tmDigitizedAspectX;
+        LONG tmDigitizedAspectY;
+
+        WCHAR tmFirstChar;
+        WCHAR tmLastChar;
+        WCHAR tmDefaultChar;
+        WCHAR tmBreakChar;
+
+        BYTE tmItalic;
+        BYTE tmUnderlined;
+        BYTE tmStruckOut;
+        BYTE tmPitchAndFamily;
+        BYTE tmCharSet;
+    }
+    version(Win32SansUnicode)
+    {
+        alias TEXTMETRICA TEXTMETRIC;
+    }
+    else
+    {
+        alias TEXTMETRICW TEXTMETRIC;
+    }
+    alias TEXTMETRIC* LPTEXTMETRIC;
+    alias TEXTMETRIC TAGTEXTMETRIC;
+    alias TEXTMETRIC TTEXTMETRIC;
+    alias TEXTMETRIC* PTEXTMETRIC;
+
+    struct OUTLINETEXTMETRICA
+    {
+        UINT       otmSize;
+        TEXTMETRICA otmTextMetrics;
+        BYTE       otmFiller;
+        PANOSE     otmPanoseNumber;
+        UINT       otmfsSelection;
+        UINT       otmfsType;
+        int        otmsCharSlopeRise;
+        int        otmsCharSlopeRun;
+        int        otmItalicAngle;
+        UINT       otmEMSquare;
+        int        otmAscent;
+        int        otmDescent;
+        UINT       otmLineGap;
+        UINT       otmsCapEmHeight;
+        UINT       otmsXHeight;
+        RECT       otmrcFontBox;
+        int        otmMacAscent;
+        int        otmMacDescent;
+        UINT       otmMacLineGap;
+        UINT       otmusMinimumPPEM;
+        POINT      otmptSubscriptSize;
+        POINT      otmptSubscriptOffset;
+        POINT      otmptSuperscriptSize;
+        POINT      otmptSuperscriptOffset;
+        UINT       otmsStrikeoutSize;
+        int        otmsStrikeoutPosition;
+        int        otmsUnderscoreSize;
+        int        otmsUnderscorePosition;
+        PSTR       otmpFamilyName;
+        PSTR       otmpFaceName;
+        PSTR       otmpStyleName;
+        PSTR       otmpFullName;
+    }
+    struct OUTLINETEXTMETRICW
+    {
+        UINT       otmSize;
+        TEXTMETRICW otmTextMetrics;
+        BYTE       otmFiller;
+        PANOSE     otmPanoseNumber;
+        UINT       otmfsSelection;
+        UINT       otmfsType;
+        int        otmsCharSlopeRise;
+        int        otmsCharSlopeRun;
+        int        otmItalicAngle;
+        UINT       otmEMSquare;
+        int        otmAscent;
+        int        otmDescent;
+        UINT       otmLineGap;
+        UINT       otmsCapEmHeight;
+        UINT       otmsXHeight;
+        RECT       otmrcFontBox;
+        int        otmMacAscent;
+        int        otmMacDescent;
+        UINT       otmMacLineGap;
+        UINT       otmusMinimumPPEM;
+        POINT      otmptSubscriptSize;
+        POINT      otmptSubscriptOffset;
+        POINT      otmptSuperscriptSize;
+        POINT      otmptSuperscriptOffset;
+        UINT       otmsStrikeoutSize;
+        int        otmsStrikeoutPosition;
+        int        otmsUnderscoreSize;
+        int        otmsUnderscorePosition;
+        PSTR       otmpFamilyName;
+        PSTR       otmpFaceName;
+        PSTR       otmpStyleName;
+        PSTR       otmpFullName;
+    }
+
+    alias OUTLINETEXTMETRIC* LPOUTLINETEXTMETRIC;
+    alias OUTLINETEXTMETRIC _OUTLINETEXTMETRIC;
+    alias OUTLINETEXTMETRIC TOUTLINETEXTMETRIC;
+    alias OUTLINETEXTMETRIC* POUTLINETEXTMETRIC;
+    version(Win32SansUnicode)
+    {
+        alias OUTLINETEXTMETRICA OUTLINETEXTMETRIC;
+        alias OUTLINETEXTMETRICA* LPOUTLINETEXTMETRICA;
+    }
+    else
+    {
+        alias OUTLINETEXTMETRICW OUTLINETEXTMETRIC;
+        alias OUTLINETEXTMETRICW* LPOUTLINETEXTMETRICW;
+    }
+
+    struct OVERLAPPED
+    {
+        DWORD Internal;
+        DWORD InternalHigh;
+        DWORD Offset;
+        DWORD OffsetHigh;
+        HANDLE hEvent;
+    }
+
+    alias OVERLAPPED* LPOVERLAPPED;
+    alias OVERLAPPED _OVERLAPPED;
+    alias OVERLAPPED TOVERLAPPED;
+    alias OVERLAPPED* POVERLAPPED;
+
+    struct TPAGESETUPDLG
+    {
+        DWORD lStructSize;
+        HWND hwndOwner;
+        HGLOBAL hDevMode;
+        HGLOBAL hDevNames;
+        DWORD Flags;
+        POINT ptPaperSize;
+        RECT rtMinMargin;
+        RECT rtMargin;
+        HINST hInstance;
+        LPARAM lCustData;
+        LPPAGESETUPHOOK lpfnPageSetupHook;
+        LPPAGEPAINTHOOK lpfnPagePaintHook;
+        LPCTSTR lpPageSetupTemplateName;
+        HGLOBAL hPageSetupTemplate;
+    }
+
+    alias TPAGESETUPDLG PAGESETUPDLG;
+    alias TPAGESETUPDLG* LPPAGESETUPDLG;
+    alias TPAGESETUPDLG* PPAGESETUPDLG;
+    alias TPAGESETUPDLG TAGPSD;
+    alias TPAGESETUPDLG TPSD;
+    alias TPAGESETUPDLG* PPSD;
+
+    struct PAINTSTRUCT
+    {
+        HDC hdc;
+        WINBOOL fErase;
+        RECT rcPaint;
+        WINBOOL fRestore;
+        WINBOOL fIncUpdate;
+        ubyte[1 + 31] rgbReserved;
+    }
+
+    alias PAINTSTRUCT* LPPAINTSTRUCT;
+    alias PAINTSTRUCT TAGPAINTSTRUCT;
+    alias PAINTSTRUCT TPAINTSTRUCT;
+    alias PAINTSTRUCT* PPAINTSTRUCT;
+
+    struct PARAFORMAT
+    {
+        UINT cbSize;
+        DWORD dwMask;
+        ushort wNumbering;
+        ushort wReserved;
+        LONG dxStartIndent;
+        LONG dxRightIndent;
+        LONG dxOffset;
+        ushort wAlignment;
+        SHORT cTabCount;
+        LONG[1 + MAX_TAB_STOPS-1] rgxTabs;
+    }
+
+    alias PARAFORMAT _PARAFORMAT;
+    alias PARAFORMAT TPARAFORMAT;
+    alias PARAFORMAT* PPARAFORMAT;
+
+    struct PERF_COUNTER_BLOCK
+    {
+        DWORD ByteLength;
+    }
+
+    alias PERF_COUNTER_BLOCK _PERF_COUNTER_BLOCK;
+    alias PERF_COUNTER_BLOCK TPERFCOUNTERBLOCK;
+    alias PERF_COUNTER_BLOCK* PPERFCOUNTERBLOCK;
+
+    struct PERF_COUNTER_DEFINITION
+    {
+        DWORD ByteLength;
+        DWORD CounterNameTitleIndex;
+        LPWSTR CounterNameTitle;
+        DWORD CounterHelpTitleIndex;
+        LPWSTR CounterHelpTitle;
+        DWORD DefaultScale;
+        DWORD DetailLevel;
+        DWORD CounterType;
+        DWORD CounterSize;
+        DWORD CounterOffset;
+    }
+
+    alias PERF_COUNTER_DEFINITION _PERF_COUNTER_DEFINITION;
+    alias PERF_COUNTER_DEFINITION TPERFCOUNTERDEFINITION;
+    alias PERF_COUNTER_DEFINITION* PPERFCOUNTERDEFINITION;
+
+    struct PERF_DATA_BLOCK
+    {
+        WCHAR[1 + 3] Signature;
+        DWORD LittleEndian;
+        DWORD Version;
+        DWORD Revision;
+        DWORD TotalByteLength;
+        DWORD HeaderLength;
+        DWORD NumObjectTypes;
+        DWORD DefaultObject;
+        SYSTEMTIME SystemTime;
+        LARGE_INTEGER PerfTime;
+        LARGE_INTEGER PerfFreq;
+        LARGE_INTEGER PerfTime100nSec;
+        DWORD SystemNameLength;
+        DWORD SystemNameOffset;
+    }
+
+    alias PERF_DATA_BLOCK _PERF_DATA_BLOCK;
+    alias PERF_DATA_BLOCK TPERFDATABLOCK;
+    alias PERF_DATA_BLOCK* PPERFDATABLOCK;
+
+    struct PERF_INSTANCE_DEFINITION
+    {
+        DWORD ByteLength;
+        DWORD ParentObjectTitleIndex;
+        DWORD ParentObjectInstance;
+        DWORD UniqueID;
+        DWORD NameOffset;
+        DWORD NameLength;
+    }
+
+    alias PERF_INSTANCE_DEFINITION _PERF_INSTANCE_DEFINITION;
+    alias PERF_INSTANCE_DEFINITION TPERFINSTANCEDEFINITION;
+    alias PERF_INSTANCE_DEFINITION PPERFINSTANCEDEFINITION;
+
+    struct PERF_OBJECT_TYPE
+    {
+        DWORD TotalByteLength;
+        DWORD DefinitionLength;
+        DWORD HeaderLength;
+        DWORD ObjectNameTitleIndex;
+        LPWSTR ObjectNameTitle;
+        DWORD ObjectHelpTitleIndex;
+        LPWSTR ObjectHelpTitle;
+        DWORD DetailLevel;
+        DWORD NumCounters;
+        DWORD DefaultCounter;
+        DWORD NumInstances;
+        DWORD CodePage;
+        LARGE_INTEGER PerfTime;
+        LARGE_INTEGER PerfFreq;
+    }
+
+    alias PERF_OBJECT_TYPE _PERF_OBJECT_TYPE;
+    alias PERF_OBJECT_TYPE TPERFOBJECTTYPE;
+    alias PERF_OBJECT_TYPE* PPERFOBJECTTYPE;
+
+    struct POLYTEXT
+    {
+        int x;
+        int y;
+        UINT n;
+        LPCTSTR lpstr;
+        UINT uiFlags;
+        RECT rcl;
+        int* pdx;
+    }
+
+    alias POLYTEXT _POLYTEXT;
+    alias POLYTEXT TPOLYTEXT;
+    alias POLYTEXT* PPOLYTEXT;
+
+    struct PORT_INFO_1
+    {
+        LPTSTR pName;
+    }
+
+    alias PORT_INFO_1 _PORT_INFO_1;
+    alias PORT_INFO_1 TPORTINFO1;
+    alias PORT_INFO_1* PPORTINFO1;
+
+    struct PORT_INFO_2
+    {
+        LPSTR pPortName;
+        LPSTR pMonitorName;
+        LPSTR pDescription;
+        DWORD fPortType;
+        DWORD Reserved;
+    }
+
+    alias PORT_INFO_2 _PORT_INFO_2;
+    alias PORT_INFO_2 TPORTINFO2;
+    alias PORT_INFO_2* PPORTINFO2;
+
+    struct PREVENT_MEDIA_REMOVAL
+    {
+        ubyte PreventMediaRemoval;
+    }
+
+    alias PREVENT_MEDIA_REMOVAL _PREVENT_MEDIA_REMOVAL;
+    alias PREVENT_MEDIA_REMOVAL TPREVENTMEDIAREMOVAL;
+    alias PREVENT_MEDIA_REMOVAL* PPREVENTMEDIAREMOVAL;
+
+    align(2) struct PRINTDLGA {  // pd
+        DWORD     lStructSize;
+        HWND      hwndOwner;
+        HANDLE    hDevMode;
+        HANDLE    hDevNames;
+        HDC       hDC;
+        DWORD     Flags;
+        WORD      nFromPage;
+        WORD      nToPage;
+        WORD      nMinPage;
+        WORD      nMaxPage;
+        WORD      nCopies;
+        HINSTANCE hInstance;
+        DWORD     lCustData;
+        LPPRINTHOOKPROC lpfnPrintHook;
+        LPSETUPHOOKPROC lpfnSetupHook;
+        LPCSTR    lpPrintTemplateName;
+        LPCSTR    lpSetupTemplateName;
+        HANDLE    hPrintTemplate;
+        HANDLE    hSetupTemplate;
+    }
+    alias PRINTDLGA* PPRINTDLGA;
+    alias PRINTDLGA* LPPRINTDLGA;
+    align(2) struct PRINTDLGW {  // pd
+        DWORD     lStructSize;
+        HWND      hwndOwner;
+        HANDLE    hDevMode;
+        HANDLE    hDevNames;
+        HDC       hDC;
+        DWORD     Flags;
+        WORD      nFromPage;
+        WORD      nToPage;
+        WORD      nMinPage;
+        WORD      nMaxPage;
+        WORD      nCopies;
+        HINSTANCE hInstance;
+        DWORD     lCustData;
+        LPPRINTHOOKPROC lpfnPrintHook;
+        LPSETUPHOOKPROC lpfnSetupHook;
+        LPCWSTR    lpPrintTemplateName;
+        LPCWSTR    lpSetupTemplateName;
+        HANDLE    hPrintTemplate;
+        HANDLE    hSetupTemplate;
+    }
+    alias PRINTDLGW* PPRINTDLGW;
+    alias PRINTDLGW* LPPRINTDLGW;
+
+    version(Win32SansUnicode){
+        alias PRINTDLGA PRINTDLG;
+    }else{
+        alias PRINTDLGW PRINTDLG;
+    }
+
+
+    alias PRINTDLG* LPPRINTDLG;
+    alias PRINTDLG* PPRINTDLG;
+    alias PRINTDLG TAGPD;
+    alias PRINTDLG TPD;
+    alias PRINTDLG* PPD;
+
+    struct PRINTER_DEFAULTS
+    {
+        LPTSTR pDatatype;
+        LPDEVMODE pDevMode;
+        ACCESS_MASK DesiredAccess;
+    }
+
+    alias PRINTER_DEFAULTS _PRINTER_DEFAULTS;
+    alias PRINTER_DEFAULTS TPRINTERDEFAULTS;
+    alias PRINTER_DEFAULTS* PPRINTERDEFAULTS;
+
+    struct PRINTER_INFO_1
+    {
+        DWORD Flags;
+        LPTSTR pDescription;
+        LPTSTR pName;
+        LPTSTR pComment;
+    }
+
+    alias PRINTER_INFO_1* LPPRINTER_INFO_1;
+    alias PRINTER_INFO_1* PPRINTER_INFO_1;
+    alias PRINTER_INFO_1 _PRINTER_INFO_1;
+    alias PRINTER_INFO_1 TPRINTERINFO1;
+    alias PRINTER_INFO_1* PPRINTERINFO1;
+
+    struct PRINTER_INFO_2
+    {
+        LPTSTR pServerName;
+        LPTSTR pPrinterName;
+        LPTSTR pShareName;
+        LPTSTR pPortName;
+        LPTSTR pDriverName;
+        LPTSTR pComment;
+        LPTSTR pLocation;
+        LPDEVMODE pDevMode;
+        LPTSTR pSepFile;
+        LPTSTR pPrintProcessor;
+        LPTSTR pDatatype;
+        LPTSTR pParameters;
+        PSECURITY_DESCRIPTOR pSecurityDescriptor;
+        DWORD Attributes;
+        DWORD Priority;
+        DWORD DefaultPriority;
+        DWORD StartTime;
+        DWORD UntilTime;
+        DWORD Status;
+        DWORD cJobs;
+        DWORD AveragePPM;
+    }
+
+    alias PRINTER_INFO_2 _PRINTER_INFO_2;
+    alias PRINTER_INFO_2 TPRINTERINFO2;
+    alias PRINTER_INFO_2* PPRINTERINFO2;
+
+    struct PRINTER_INFO_3
+    {
+        PSECURITY_DESCRIPTOR pSecurityDescriptor;
+    }
+
+    alias PRINTER_INFO_3 _PRINTER_INFO_3;
+    alias PRINTER_INFO_3 TPRINTERINFO3;
+    alias PRINTER_INFO_3* PPRINTERINFO3;
+
+    struct PRINTER_INFO_4
+    {
+        LPTSTR pPrinterName;
+        LPTSTR pServerName;
+        DWORD Attributes;
+    }
+
+    alias PRINTER_INFO_4 _PRINTER_INFO_4;
+    alias PRINTER_INFO_4 TPRINTERINFO4;
+    alias PRINTER_INFO_4* PPRINTERINFO4;
+
+    struct PRINTER_INFO_5
+    {
+        LPTSTR pPrinterName;
+        LPTSTR pPortName;
+        DWORD Attributes;
+        DWORD DeviceNotSelectedTimeout;
+        DWORD TransmissionRetryTimeout;
+    }
+
+    alias PRINTER_INFO_5 _PRINTER_INFO_5;
+    alias PRINTER_INFO_5 TPRINTERINFO5;
+    alias PRINTER_INFO_5* PPRINTERINFO5;
+
+    struct PRINTER_NOTIFY_INFO_DATA
+    {
+        ushort _Type;
+        ushort Field;
+        DWORD Reserved;
+        DWORD Id;
+
+        union
+        {
+            struct
+            {
+                DWORD[1 + 1] adwData;
+            }
+            struct
+            {
+                DWORD cbBuf;
+                LPVOID pBuf;
+            }
+        }
+    }
+
+    alias PRINTER_NOTIFY_INFO_DATA _PRINTER_NOTIFY_INFO_DATA;
+    alias PRINTER_NOTIFY_INFO_DATA TPRINTERNOTIFYINFODATA;
+    alias PRINTER_NOTIFY_INFO_DATA* PPRINTERNOTIFYINFODATA;
+
+    struct PRINTER_NOTIFY_INFO
+    {
+        DWORD Version;
+        DWORD Flags;
+        DWORD Count;
+        PRINTER_NOTIFY_INFO_DATA[1 + 0] aData;
+    }
+
+    alias PRINTER_NOTIFY_INFO _PRINTER_NOTIFY_INFO;
+    alias PRINTER_NOTIFY_INFO TPRINTERNOTIFYINFO;
+    alias PRINTER_NOTIFY_INFO* PPRINTERNOTIFYINFO;
+
+    struct PRINTER_NOTIFY_OPTIONS_TYPE
+    {
+        ushort _Type;
+        ushort Reserved0;
+        DWORD Reserved1;
+        DWORD Reserved2;
+        DWORD Count;
+        PWORD pFields;
+    }
+
+    alias PRINTER_NOTIFY_OPTIONS_TYPE* PPRINTER_NOTIFY_OPTIONS_TYPE;
+    alias PRINTER_NOTIFY_OPTIONS_TYPE _PRINTER_NOTIFY_OPTIONS_TYPE;
+    alias PRINTER_NOTIFY_OPTIONS_TYPE TPRINTERNOTIFYOPTIONSTYPE;
+    alias PRINTER_NOTIFY_OPTIONS_TYPE* PPRINTERNOTIFYOPTIONSTYPE;
+
+    struct PRINTER_NOTIFY_OPTIONS
+    {
+        DWORD Version;
+        DWORD Flags;
+        DWORD Count;
+        PPRINTER_NOTIFY_OPTIONS_TYPE pTypes;
+    }
+
+    alias PRINTER_NOTIFY_OPTIONS _PRINTER_NOTIFY_OPTIONS;
+    alias PRINTER_NOTIFY_OPTIONS TPRINTERNOTIFYOPTIONS;
+    alias PRINTER_NOTIFY_OPTIONS* PPRINTERNOTIFYOPTIONS;
+
+    struct PRINTPROCESSOR_INFO_1
+    {
+        LPTSTR pName;
+    }
+
+    alias PRINTPROCESSOR_INFO_1 _PRINTPROCESSOR_INFO_1;
+    alias PRINTPROCESSOR_INFO_1 TPRINTPROCESSORINFO1;
+    alias PRINTPROCESSOR_INFO_1* PPRINTPROCESSORINFO1;
+
+    struct PRIVILEGE_SET
+    {
+        DWORD PrivilegeCount;
+        DWORD Control;
+        LUID_AND_ATTRIBUTES[1 + ANYSIZE_ARRAY-1] Privilege;
+    }
+
+    alias PRIVILEGE_SET* LPPRIVILEGE_SET;
+    alias PRIVILEGE_SET* PPRIVILEGE_SET;
+    alias PRIVILEGE_SET _PRIVILEGE_SET;
+    alias PRIVILEGE_SET TPRIVILEGESET;
+    alias PRIVILEGE_SET* PPRIVILEGESET;
+
+    struct PROCESS_HEAPENTRY
+    {
+        PVOID lpData;
+        DWORD cbData;
+        ubyte cbOverhead;
+        ubyte iRegionIndex;
+        ushort wFlags;
+        DWORD dwCommittedSize;
+        DWORD dwUnCommittedSize;
+        LPVOID lpFirstBlock;
+        LPVOID lpLastBlock;
+        HANDLE hMem;
+    }
+
+    alias PROCESS_HEAPENTRY* LPPROCESS_HEAP_ENTRY;
+    alias PROCESS_HEAPENTRY _PROCESS_HEAP_ENTRY;
+    alias PROCESS_HEAPENTRY TPROCESSHEAPENTRY;
+    alias PROCESS_HEAPENTRY* PPROCESSHEAPENTRY;
+
+    struct PROCESS_INFORMATION
+    {
+        HANDLE hProcess;
+        HANDLE hThread;
+        DWORD dwProcessId;
+        DWORD dwThreadId;
+    }
+
+    alias PROCESS_INFORMATION* LPPROCESS_INFORMATION;
+    alias PROCESS_INFORMATION _PROCESS_INFORMATION;
+    alias PROCESS_INFORMATION TPROCESSINFORMATION;
+    alias PROCESS_INFORMATION* PPROCESSINFORMATION;
+    extern(Windows){alias UINT (*LPFNPSPCALLBACK)(HWND, UINT, LPVOID);}
+    alias LPFNPSPCALLBACK TFNPSPCALLBACK;
+
+
+    struct PROPSHEETPAGE
+    {
+        DWORD dwSize;
+        DWORD dwFlags;
+        HINST hInstance;
+        union {
+            LPCTSTR pszTemplate;
+            LPCDLGTEMPLATE pResource;
+        }
+        union {
+            HICON hIcon;
+            LPCTSTR pszIcon;
+        }
+        LPCTSTR pszTitle;
+        DLGPROC pfnDlgProc;
+        LPARAM lParam;
+        LPFNPSPCALLBACK pfnCallback;
+        UINT* pcRefParent;
+    //if (_WIN32_IE >= 0x0500)
+        LPCTSTR pszHeaderTitle;
+        LPCTSTR pszHeaderSubTitle;
+    //endif
+    //if (_WIN32_WINNT >= 0x0501)
+        HANDLE hActCtx;
+    //endif
+    }
+
+    alias PROPSHEETPAGE* LPPROPSHEETPAGE;
+    alias PROPSHEETPAGE* LPCPROPSHEETPAGE;
+    alias PROPSHEETPAGE _PROPSHEETPAGE;
+    alias PROPSHEETPAGE TPROPSHEETPAGE;
+    alias PROPSHEETPAGE* PPROPSHEETPAGE;
+
+    struct EMPTYRECORD
+    {
+    }
+
+    alias EMPTYRECORD* HPROPSHEETPAGE;
+
+    struct PROPSHEETHEADER_U1
+    {
+
+        union
+        {
+            struct
+            {
+                HICON hIcon;
+            }
+            struct
+            {
+                LPCTSTR pszIcon;
+            }
+        }
+    }
+
+
+    struct PROPSHEETHEADER_U2
+    {
+
+        union
+        {
+            struct
+            {
+                UINT nStartPage;
+            }
+            struct
+            {
+                LPCTSTR pStartPage;
+            }
+        }
+    }
+
+
+    struct PROPSHEETHEADER_U3
+    {
+
+        union
+        {
+            struct
+            {
+                LPCPROPSHEETPAGE ppsp;
+            }
+            struct
+            {
+                HPROPSHEETPAGE* phpage;
+            }
+        }
+    }
+
+
+    struct PROPSHEETHEADER
+    {
+        DWORD dwSize;
+        DWORD dwFlags;
+        HWND hwndParent;
+        HINST hInstance;
+        PROPSHEETHEADER_U1 u1;
+        LPCTSTR pszCaption;
+        UINT nPages;
+        PROPSHEETHEADER_U2 u2;
+        PROPSHEETHEADER_U3 u3;
+        PFNPROPSHEETCALLBACK pfnCallback;
+    //if (_WIN32_IE >= 0x0400)
+        union {
+            HBITMAP hbmWatermark;
+            LPCTSTR pszbmWatermark;
+        }
+        HPALETTE hplWatermark;
+        union {
+            HBITMAP hbmHeader; 
+            LPCSTR pszbmHeader;
+        }
+    //endif
+    }
+
+    alias PROPSHEETHEADER* LPPROPSHEETHEADER;
+    alias PROPSHEETHEADER* LPCPROPSHEETHEADER;
+    alias PROPSHEETHEADER _PROPSHEETHEADER;
+    alias PROPSHEETHEADER TPROPSHEETHEADER;
+    alias PROPSHEETHEADER* PPROPSHEETHEADER;
+    extern(Windows){
+    alias WINBOOL (*LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM);
+    alias WINBOOL (*LPFNADDPROPSHEETPAGES)(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM);
+    }
+    alias LPFNADDPROPSHEETPAGE TFNADDPROPSHEETPAGE;
+    alias LPFNADDPROPSHEETPAGES TFNADDPROPSHEETPAGES;
+
+    struct PROTOCOL_INFO
+    {
+        DWORD dwServiceFlags;
+        INT iAddressFamily;
+        INT iMaxSockAddr;
+        INT iMinSockAddr;
+        INT iSocketType;
+        INT iProtocol;
+        DWORD dwMessageSize;
+        LPTSTR lpProtocol;
+    }
+
+    alias PROTOCOL_INFO _PROTOCOL_INFO;
+    alias PROTOCOL_INFO TPROTOCOLINFO;
+    alias PROTOCOL_INFO* PPROTOCOLINFO;
+
+    struct PROVIDOR_INFO_1
+    {
+        LPTSTR pName;
+        LPTSTR pEnvironment;
+        LPTSTR pDLLName;
+    }
+
+    alias PROVIDOR_INFO_1 _PROVIDOR_INFO_1;
+    alias PROVIDOR_INFO_1 TPROVIDORINFO1;
+    alias PROVIDOR_INFO_1* PPROVIDORINFO1;
+
+    struct PSHNOTIFY
+    {
+        NMHDR hdr;
+        LPARAM lParam;
+    }
+
+    alias PSHNOTIFY* LPPSHNOTIFY;
+    alias PSHNOTIFY _PSHNOTIFY;
+    alias PSHNOTIFY TPSHNOTIFY;
+    alias PSHNOTIFY* PPSHNOTIFY;
+
+    struct PUNCTUATION
+    {
+        UINT iSize;
+        LPSTR szPunctuation;
+    }
+
+    alias PUNCTUATION _PUNCTUATION;
+    alias PUNCTUATION TPUNCTUATION;
+    alias PUNCTUATION* PPUNCTUATION;
+
+    struct QUERY_SERVICE_CONFIG
+    {
+        DWORD dwServiceType;
+        DWORD dwStartType;
+        DWORD dwErrorControl;
+        LPTSTR lpBinaryPathName;
+        LPTSTR lpLoadOrderGroup;
+        DWORD dwTagId;
+        LPTSTR lpDependencies;
+        LPTSTR lpServiceStartName;
+        LPTSTR lpDisplayName;
+    }
+
+    alias QUERY_SERVICE_CONFIG* LPQUERY_SERVICE_CONFIG;
+    alias QUERY_SERVICE_CONFIG _QUERY_SERVICE_CONFIG;
+    alias QUERY_SERVICE_CONFIG TQUERYSERVICECONFIG;
+    alias QUERY_SERVICE_CONFIG* PQUERYSERVICECONFIG;
+
+    struct QUERY_SERVICE_LOCK_STATUS
+    {
+        DWORD fIsLocked;
+        LPTSTR lpLockOwner;
+        DWORD dwLockDuration;
+    }
+
+    alias QUERY_SERVICE_LOCK_STATUS* LPQUERY_SERVICE_LOCK_STATUS;
+    alias QUERY_SERVICE_LOCK_STATUS _QUERY_SERVICE_LOCK_STATUS;
+    alias QUERY_SERVICE_LOCK_STATUS TQUERYSERVICELOCKSTATUS;
+    alias QUERY_SERVICE_LOCK_STATUS* PQUERYSERVICELOCKSTATUS;
+
+    struct RASAMB
+    {
+        DWORD dwSize;
+        DWORD dwError;
+        TCHAR[1 + NETBIOS_NAME_LEN+1-1] szNetBiosError;
+        ubyte bLana;
+    }
+
+    alias RASAMB _RASAMB;
+    alias RASAMB TRASAMB;
+    alias RASAMB* PRASAMB;
+
+    struct RASCONN
+    {
+        DWORD dwSize;
+        HRASCONN hrasconn;
+        TCHAR[1 + RAS_MaxEntryName+1-1] szEntryName;
+        char[1 + RAS_MaxDeviceType+1-1] szDeviceType;
+        char[1 + RAS_MaxDeviceName+1-1] szDeviceName;
+    }
+
+    alias RASCONN _RASCONN;
+    alias RASCONN TRASCONN;
+    alias RASCONN* PRASCONN;
+
+    struct RASCONNSTATUS
+    {
+        DWORD dwSize;
+        RASCONNSTATE rasconnstate;
+        DWORD dwError;
+        TCHAR[1 + RAS_MaxDeviceType+1-1] szDeviceType;
+        TCHAR[1 + RAS_MaxDeviceName+1-1] szDeviceName;
+    }
+
+    alias RASCONNSTATUS _RASCONNSTATUS;
+    alias RASCONNSTATUS TRASCONNSTATUS;
+    alias RASCONNSTATUS* PRASCONNSTATUS;
+
+    struct RASDIALEXTENSIONS
+    {
+        DWORD dwSize;
+        DWORD dwfOptions;
+        HWND hwndParent;
+        DWORD reserved;
+    }
+
+    alias RASDIALEXTENSIONS _RASDIALEXTENSIONS;
+    alias RASDIALEXTENSIONS TRASDIALEXTENSIONS;
+    alias RASDIALEXTENSIONS* PRASDIALEXTENSIONS;
+
+    struct RASDIALPARAMS
+    {
+        DWORD dwSize;
+        TCHAR[1 + RAS_MaxEntryName+1-1] szEntryName;
+        TCHAR[1 + RAS_MaxPhoneNumber+1-1] szPhoneNumber;
+        TCHAR[1 + (RAS_MaxCallbackNumber+1)-1] szCallbackNumber;
+        TCHAR[1 + (UNLEN+1)-1] szUserName;
+        TCHAR[1 + (PWLEN+1)-1] szPassword;
+        TCHAR[1 + (DNLEN+1)-1] szDomain;
+    }
+
+    alias RASDIALPARAMS _RASDIALPARAMS;
+    alias RASDIALPARAMS TRASDIALPARAMS;
+    alias RASDIALPARAMS* PRASDIALPARAMS;
+
+    struct RASENTRYNAME
+    {
+        DWORD dwSize;
+        TCHAR[1 + (RAS_MaxEntryName+1)-1] szEntryName;
+    }
+
+    alias RASENTRYNAME _RASENTRYNAME;
+    alias RASENTRYNAME TRASENTRYNAME;
+    alias RASENTRYNAME* PRASENTRYNAME;
+
+    struct RASPPPIP
+    {
+        DWORD dwSize;
+        DWORD dwError;
+        TCHAR[RAS_MaxIpAddress+1] szIpAddress;
+    }
+
+    alias RASPPPIP _RASPPPIP;
+    alias RASPPPIP TRASPPPIP;
+    alias RASPPPIP* PRASPPPIP;
+
+    struct RASPPPIPX
+    {
+        DWORD dwSize;
+        DWORD dwError;
+        TCHAR[1 + (RAS_MaxIpxAddress+1)-1] szIpxAddress;
+    }
+
+    alias RASPPPIPX _RASPPPIPX;
+    alias RASPPPIPX TRASPPPIPX;
+    alias RASPPPIPX* PRASPPPIPX;
+
+    struct RASPPPNBF
+    {
+        DWORD dwSize;
+        DWORD dwError;
+        DWORD dwNetBiosError;
+        TCHAR[1 + (NETBIOS_NAME_LEN+1)-1] szNetBiosError;
+        TCHAR[1 + (NETBIOS_NAME_LEN+1)-1] szWorkstationName;
+        ubyte bLana;
+    }
+
+    alias RASPPPNBF _RASPPPNBF;
+    alias RASPPPNBF TRASPPPNBF;
+    alias RASPPPNBF* PRASPPPNBF;
+
+    struct RASTERIZER_STATUS
+    {
+        short nSize;
+        short wFlags;
+        short nLanguageID;
+    }
+
+    alias RASTERIZER_STATUS* LPRASTERIZER_STATUS;
+    alias RASTERIZER_STATUS _RASTERIZER_STATUS;
+    alias RASTERIZER_STATUS TRASTERIZERSTATUS;
+    alias RASTERIZER_STATUS* PRASTERIZERSTATUS;
+
+    struct REASSIGN_BLOCKS
+    {
+        ushort Reserved;
+        ushort Count;
+        DWORD[1 + 0] BlockNumber;
+    }
+
+    alias REASSIGN_BLOCKS _REASSIGN_BLOCKS;
+    alias REASSIGN_BLOCKS TREASSIGNBLOCKS;
+    alias REASSIGN_BLOCKS* PREASSIGNBLOCKS;
+
+    struct REMOTE_NAME_INFO
+    {
+        LPTSTR lpUniversalName;
+        LPTSTR lpConnectionName;
+        LPTSTR lpRemainingPath;
+    }
+
+    alias REMOTE_NAME_INFO _REMOTE_NAME_INFO;
+    alias REMOTE_NAME_INFO TREMOTENAMEINFO;
+    alias REMOTE_NAME_INFO* PREMOTENAMEINFO;
+
+    struct REPASTESPECIAL
+    {
+        DWORD dwAspect;
+        DWORD dwParam;
+    }
+
+    alias REPASTESPECIAL _REPASTESPECIAL;
+    alias REPASTESPECIAL TREPASTESPECIAL;
+    alias REPASTESPECIAL* PREPASTESPECIAL;
+
+    struct REQRESIZE
+    {
+        NMHDR nmhdr;
+        RECT rc;
+    }
+
+    alias REQRESIZE _REQRESIZE;
+    alias REQRESIZE TREQRESIZE;
+    alias REQRESIZE* PREQRESIZE;
+
+    struct RGNDATAHEADER
+    {
+        DWORD dwSize;
+        DWORD iType;
+        DWORD nCount;
+        DWORD nRgnSize;
+        RECT rcBound;
+    }
+
+    alias RGNDATAHEADER _RGNDATAHEADER;
+    alias RGNDATAHEADER TRGNDATAHEADER;
+    alias RGNDATAHEADER* PRGNDATAHEADER;
+    alias RGNDATAHEADER* LPRGNDATAHEADER;
+
+    struct RGNDATA
+    {
+        RGNDATAHEADER rdh;
+        char[1 + 0] Buffer;
+    }
+
+    alias RGNDATA* LPRGNDATA;
+    alias RGNDATA _RGNDATA;
+    alias RGNDATA TRGNDATA;
+    alias RGNDATA* PRGNDATA;
+
+    struct SCROLLINFO
+    {
+        UINT cbSize;
+        UINT fMask;
+        int nMin;
+        int nMax;
+        UINT nPage;
+        int nPos;
+        int nTrackPos;
+    }
+
+    alias SCROLLINFO* LPSCROLLINFO;
+    alias SCROLLINFO* LPCSCROLLINFO;
+    alias SCROLLINFO TAGSCROLLINFO;
+    alias SCROLLINFO TSCROLLINFO;
+    alias SCROLLINFO* PSCROLLINFO;
+
+    struct SECURITY_ATTRIBUTES
+    {
+        DWORD nLength;
+        LPVOID lpSecurityDescriptor;
+        WINBOOL bInheritHandle;
+    }
+
+    alias SECURITY_ATTRIBUTES* LPSECURITY_ATTRIBUTES;
+    alias SECURITY_ATTRIBUTES _SECURITY_ATTRIBUTES;
+    alias SECURITY_ATTRIBUTES TSECURITYATTRIBUTES;
+    alias SECURITY_ATTRIBUTES* PSECURITYATTRIBUTES;
+    alias DWORD SECURITY_INFORMATION;
+    alias SECURITY_INFORMATION* PSECURITY_INFORMATION;
+    alias SECURITY_INFORMATION TSECURITYINFORMATION;
+    alias SECURITY_INFORMATION* PSECURITYINFORMATION;
+
+    struct SELCHANGE
+    {
+        NMHDR nmhdr;
+        CHARRANGE chrg;
+        ushort seltyp;
+    }
+
+    alias SELCHANGE _SELCHANGE;
+    alias SELCHANGE TSELCHANGE;
+    alias SELCHANGE* PSELCHANGE;
+
+    struct SERIALKEYS
+    {
+        DWORD cbSize;
+        DWORD dwFlags;
+        LPSTR lpszActivePort;
+        LPSTR lpszPort;
+        DWORD iBaudRate;
+        DWORD iPortState;
+        UINT  iActive;
+    }
+
+    alias SERIALKEYS* LPSERIALKEYS;
+    alias SERIALKEYS TAGSERIALKEYS;
+    alias SERIALKEYS TSERIALKEYS;
+    alias SERIALKEYS* PSERIALKEYS;
+
+    struct SERVICE_TABLE_ENTRY
+    {
+        LPTSTR lpServiceName;
+        LPSERVICE_MAIN_FUNCTION lpServiceProc;
+    }
+
+    alias SERVICE_TABLE_ENTRY* LPSERVICE_TABLE_ENTRY;
+    alias SERVICE_TABLE_ENTRY _SERVICE_TABLE_ENTRY;
+    alias SERVICE_TABLE_ENTRY TSERVICETABLEENTRY;
+    alias SERVICE_TABLE_ENTRY* PSERVICETABLEENTRY;
+
+    struct SERVICE_TYPE_VALUE_ABS
+    {
+        DWORD dwNameSpace;
+        DWORD dwValueType;
+        DWORD dwValueSize;
+        LPTSTR lpValueName;
+        PVOID lpValue;
+    }
+
+    alias SERVICE_TYPE_VALUE_ABS _SERVICE_TYPE_VALUE_ABS;
+    alias SERVICE_TYPE_VALUE_ABS TSERVICETYPEVALUEABS;
+    alias SERVICE_TYPE_VALUE_ABS* PSERVICETYPEVALUEABS;
+
+    struct SERVICE_TYPE_INFO_ABS
+    {
+        LPTSTR lpTypeName;
+        DWORD dwValueCount;
+        SERVICE_TYPE_VALUE_ABS[1 + 0] Values;
+    }
+
+    alias SERVICE_TYPE_INFO_ABS _SERVICE_TYPE_INFO_ABS;
+    alias SERVICE_TYPE_INFO_ABS TSERVICETYPEINFOABS;
+    alias SERVICE_TYPE_INFO_ABS* PSERVICETYPEINFOABS;
+
+    struct SESSION_BUFFER
+    {
+        UCHAR lsn;
+        UCHAR state;
+        UCHAR[1 + NCBNAMSZ-1] local_name;
+        UCHAR[1 + NCBNAMSZ-1] remote_name;
+        UCHAR rcvs_outstanding;
+        UCHAR sends_outstanding;
+    }
+
+    alias SESSION_BUFFER _SESSION_BUFFER;
+    alias SESSION_BUFFER TSESSIONBUFFER;
+    alias SESSION_BUFFER* PSESSIONBUFFER;
+
+    struct SESSION_HEADER
+    {
+        UCHAR sess_name;
+        UCHAR num_sess;
+        UCHAR rcv_dg_outstanding;
+        UCHAR rcv_any_outstanding;
+    }
+
+    alias SESSION_HEADER _SESSION_HEADER;
+    alias SESSION_HEADER TSESSIONHEADER;
+    alias SESSION_HEADER* PSESSIONHEADER;
+
+    struct SET_PARTITION_INFORMATION
+    {
+        ubyte PartitionType;
+    }
+
+    alias SET_PARTITION_INFORMATION _SET_PARTITION_INFORMATION;
+    alias SET_PARTITION_INFORMATION TSETPARTITIONINFORMATION;
+    alias SET_PARTITION_INFORMATION* PSETPARTITIONINFORMATION;
+    alias int SHCONTF;
+    enum { SHCONTF_FOLDERS = 32, SHCONTF_NONFOLDERS = 64, SHCONTF_INCLUDEHIDDEN = 128,  };
+    alias SHCONTF TAGSHCONTF;
+    alias SHCONTF TSHCONTF;
+
+    struct SHFILEINFOA
+    {
+        HICON hIcon;
+        int iIcon;
+        DWORD dwAttributes;
+        CHAR[MAX_PATH] szDisplayName;
+        CHAR[80] szTypeName;
+    }
+    struct SHFILEINFOW
+    {
+        HICON hIcon;
+        int iIcon;
+        DWORD dwAttributes;
+        WCHAR[MAX_PATH] szDisplayName;
+        WCHAR[80] szTypeName;
+    }
+    version(Win32SansUnicode)
+    {
+        alias SHFILEINFOA SHFILEINFO;
+    }
+    else
+    {
+        alias SHFILEINFOW SHFILEINFO;
+    }
+
+    alias SHFILEINFO _SHFILEINFO;
+    alias SHFILEINFO TSHFILEINFO;
+    alias SHFILEINFO* PSHFILEINFO;
+
+    alias ushort FILEOP_FLAGS;
+    alias FILEOP_FLAGS TFILEOPFLAGS;
+    alias FILEOP_FLAGS* PFILEOPFLAGS;
+
+    const FILEOP_FLAGS
+        FOF_MULTIDESTFILES        = 0x0001,
+        FOF_CONFIRMMOUSE          = 0x0002,
+        FOF_SILENT                = 0x0004,
+        FOF_RENAMEONCOLLISION     = 0x0008,
+        FOF_NOCONFIRMATION        = 0x0010,
+        FOF_WANTMAPPINGHANDLE     = 0x0020,
+        FOF_ALLOWUNDO             = 0x0040,
+        FOF_FILESONLY             = 0x0080,
+        FOF_SIMPLEPROGRESS        = 0x0100,
+        FOF_NOCONFIRMMKDIR        = 0x0200,
+        FOF_NOERRORUI             = 0x0400,
+        FOF_NOCOPYSECURITYATTRIBS = 0x0800;
+
+    enum : UINT {
+        FO_MOVE = 1,
+        FO_COPY,
+        FO_DELETE,
+        FO_RENAME
+    }
+
+    align(2) struct SHFILEOPSTRUCTA {
+        HWND         hwnd;
+        UINT         wFunc;
+        LPCSTR       pFrom;
+        LPCSTR       pTo;
+        FILEOP_FLAGS fFlags;
+        BOOL         fAnyOperationsAborted;
+        PVOID        hNameMappings;
+        LPCSTR       lpszProgressTitle;
+    }
+    alias SHFILEOPSTRUCTA* LPSHFILEOPSTRUCTA;
+
+    align(2) struct SHFILEOPSTRUCTW {
+        HWND         hwnd;
+        UINT         wFunc;
+        LPCWSTR      pFrom;
+        LPCWSTR      pTo;
+        FILEOP_FLAGS fFlags;
+        BOOL         fAnyOperationsAborted;
+        PVOID        hNameMappings;
+        LPCWSTR      lpszProgressTitle;
+    }
+    alias SHFILEOPSTRUCTW* LPSHFILEOPSTRUCTW;
+
+    version(Win32SansUnicode) {
+        alias SHFILEOPSTRUCTA* LPSHFILEOPSTRUCT;
+        alias SHFILEOPSTRUCTA _SHFILEOPSTRUCT;
+        alias SHFILEOPSTRUCTA TSHFILEOPSTRUCT;
+        alias SHFILEOPSTRUCTA* PSHFILEOPSTRUCT;
+        alias SHFILEOPSTRUCTA SHFILEOPSTRUCT;
+    }
+    else {
+        alias SHFILEOPSTRUCTW* LPSHFILEOPSTRUCT;
+        alias SHFILEOPSTRUCTW _SHFILEOPSTRUCT;
+        alias SHFILEOPSTRUCTW TSHFILEOPSTRUCT;
+        alias SHFILEOPSTRUCTW* PSHFILEOPSTRUCT;
+        alias SHFILEOPSTRUCTW SHFILEOPSTRUCT;
+    }
+
+    alias int SHGNO;
+    enum { SHGDN_NORMAL = 0, SHGDN_INFOLDER = 1, SHGDN_FORPARSING = 0x8000,  };
+    alias SHGNO TAGSHGDN;
+    alias SHGNO TSHGDN;
+
+    struct SHNAMEMAPPING
+    {
+        LPSTR pszOldPath;
+        LPSTR pszNewPath;
+        int cchOldPath;
+        int cchNewPath;
+    }
+
+    alias SHNAMEMAPPING* LPSHNAMEMAPPING;
+    alias SHNAMEMAPPING _SHNAMEMAPPING;
+    alias SHNAMEMAPPING TSHNAMEMAPPING;
+    alias SHNAMEMAPPING* PSHNAMEMAPPING;
+
+    struct SID_AND_ATTRIBUTES
+    {
+        PSID Sid;
+        DWORD Attributes;
+    }
+
+    alias SID_AND_ATTRIBUTES _SID_AND_ATTRIBUTES;
+    alias SID_AND_ATTRIBUTES TSIDANDATTRIBUTES;
+    alias SID_AND_ATTRIBUTES* PSIDANDATTRIBUTES;
+    alias SID_AND_ATTRIBUTES[1 + ANYSIZE_ARRAY-1] SID_AND_ATTRIBUTES_ARRAY;
+    alias SID_AND_ATTRIBUTES_ARRAY* PSID_AND_ATTRIBUTES_ARRAY;
+    alias SID_AND_ATTRIBUTES_ARRAY TSIDANDATTRIBUTESARRAY;
+    alias SID_AND_ATTRIBUTES_ARRAY* PSIDANDATTRIBUTESARRAY;
+
+    struct SINGLE_LIST_ENTRY
+    {
+        _SINGLE_LIST_ENTRY* Next;
+    }
+
+    alias SINGLE_LIST_ENTRY _SINGLE_LIST_ENTRY;
+    alias SINGLE_LIST_ENTRY TSINGLELISTENTRY;
+    alias SINGLE_LIST_ENTRY* PSINGLELISTENTRY;
+
+    struct SOUNDSENTRY
+    {
+        UINT cbSize;
+        DWORD dwFlags;
+        DWORD iFSTextEffect;
+        DWORD iFSTextEffectMSec;
+        DWORD iFSTextEffectColorBits;
+        DWORD iFSGrafEffect;
+        DWORD iFSGrafEffectMSec;
+        DWORD iFSGrafEffectColor;
+        DWORD iWindowsEffect;
+        DWORD iWindowsEffectMSec;
+        LPTSTR lpszWindowsEffectDLL;
+        DWORD iWindowsEffectOrdinal;
+    }
+
+    alias SOUNDSENTRY* LPSOUNDSENTRY;
+    alias SOUNDSENTRY TAGSOUNDSENTRY;
+    alias SOUNDSENTRY TSOUNDSENTRY;
+    alias SOUNDSENTRY* PSOUNDSENTRY;
+
+    struct STARTUPINFO
+    {
+        DWORD cb;
+        LPTSTR lpReserved;
+        LPTSTR lpDesktop;
+        LPTSTR lpTitle;
+        DWORD dwX;
+        DWORD dwY;
+        DWORD dwXSize;
+        DWORD dwYSize;
+        DWORD dwXCountChars;
+        DWORD dwYCountChars;
+        DWORD dwFillAttribute;
+        DWORD dwFlags;
+        ushort wShowWindow;
+        ushort cbReserved2;
+        LPBYTE lpReserved2;
+        HANDLE hStdInput;
+        HANDLE hStdOutput;
+        HANDLE hStdError;
+    }
+
+    alias STARTUPINFO* LPSTARTUPINFO;
+    alias STARTUPINFO _STARTUPINFO;
+    alias STARTUPINFO TSTARTUPINFO;
+    alias STARTUPINFO* PSTARTUPINFO;
+
+    struct STICKYKEYS
+    {
+        DWORD cbSize;
+        DWORD dwFlags;
+    }
+
+    alias STICKYKEYS* LPSTICKYKEYS;
+    alias STICKYKEYS TAGSTICKYKEYS;
+    alias STICKYKEYS TSTICKYKEYS;
+    alias STICKYKEYS* PSTICKYKEYS;
+
+    struct STRRET
+    {
+        UINT uType;
+
+        union
+        {
+            struct
+            {
+                LPWSTR pOleStr;
+            }
+            struct
+            {
+                UINT uOffset;
+            }
+            struct
+            {
+                char[1 + MAX_PATH-1] cStr;
+            }
+        }
+    }
+
+    alias STRRET* LPSTRRET;
+    alias STRRET _STRRET;
+    alias STRRET TSTRRET;
+    alias STRRET* PSTRRET;
+
+    struct STYLEBUF
+    {
+        DWORD dwStyle;
+        TCHAR[1 + 31] szDescription;
+    }
+
+    alias STYLEBUF* LPSTYLEBUF;
+    alias STYLEBUF _TAGSTYLEBUF;
+    alias STYLEBUF TSTYLEBUF;
+    alias STYLEBUF* PSTYLEBUF;
+
+    struct STYLESTRUCT
+    {
+        DWORD styleOld;
+        DWORD styleNew;
+    }
+
+    alias STYLESTRUCT* LPSTYLESTRUCT;
+    alias STYLESTRUCT TAGSTYLESTRUCT;
+    alias STYLESTRUCT TSTYLESTRUCT;
+    alias STYLESTRUCT* PSTYLESTRUCT;
+
+    struct SYSTEM_AUDIT_ACE
+    {
+        ACE_HEADER Header;
+        ACCESS_MASK Mask;
+        DWORD SidStart;
+    }
+
+    alias SYSTEM_AUDIT_ACE _SYSTEM_AUDIT_ACE;
+    alias SYSTEM_AUDIT_ACE TSYSTEMAUDITACE;
+    alias SYSTEM_AUDIT_ACE* PSYSTEMAUDITACE;
+
+    struct SYSTEM_INFO {
+        union {
+            DWORD dwOemId;
+            struct {
+                WORD wProcessorArchitecture;
+                WORD wReserved;
+            }
+        }
+        DWORD dwPageSize;
+        LPVOID lpMinimumApplicationAddress;
+        LPVOID lpMaximumApplicationAddress;
+        DWORD_PTR dwActiveProcessorMask;
+        DWORD dwNumberOfProcessors;
+        DWORD dwProcessorType;
+        DWORD dwAllocationGranularity;
+        WORD wProcessorLevel;
+        WORD wProcessorRevision;
+    }
+
+    alias SYSTEM_INFO* LPSYSTEM_INFO;
+    alias SYSTEM_INFO _SYSTEM_INFO;
+    alias SYSTEM_INFO TSYSTEMINFO;
+    alias SYSTEM_INFO* PSYSTEMINFO;
+
+    struct SYSTEM_POWER_STATUS
+    {
+        ubyte ACLineStatus;
+        ubyte BatteryFlag;
+        ubyte BatteryLifePercent;
+        ubyte Reserved1;
+        DWORD BatteryLifeTime;
+        DWORD BatteryFullLifeTime;
+    }
+
+    alias SYSTEM_POWER_STATUS _SYSTEM_POWER_STATUS;
+    alias SYSTEM_POWER_STATUS TSYSTEMPOWERSTATUS;
+    alias SYSTEM_POWER_STATUS* PSYSTEMPOWERSTATUS;
+    alias EMPTYRECORD* LPSYSTEM_POWER_STATUS;
+
+    struct TAPE_ERASE
+    {
+        DWORD Type;
+        BOOLEAN Immediate;
+    }
+
+    alias TAPE_ERASE _TAPE_ERASE;
+    alias TAPE_ERASE TTAPEERASE;
+    alias TAPE_ERASE* PTAPEERASE;
+
+    struct TAPE_GET_DRIVE_PARAMETERS
+    {
+        ubyte ECC;
+        ubyte Compression;
+        ubyte DataPadding;
+        ubyte ReportSetmarks;
+        ULONG DefaultBlockSize;
+        ULONG MaximumBlockSize;
+        ULONG MinimumBlockSize;
+        ULONG MaximumPartitionCount;
+        ULONG FeaturesLow;
+        ULONG FeaturesHigh;
+        ULONG EOTWarningZoneSize;
+    }
+
+    alias TAPE_GET_DRIVE_PARAMETERS _TAPE_GET_DRIVE_PARAMETERS;
+    alias TAPE_GET_DRIVE_PARAMETERS TTAPEGETDRIVEPARAMETERS;
+    alias TAPE_GET_DRIVE_PARAMETERS* PTAPEGETDRIVEPARAMETERS;
+
+    struct TAPE_GET_MEDIA_PARAMETERS
+    {
+        LARGE_INTEGER Capacity;
+        LARGE_INTEGER Remaining;
+        DWORD BlockSize;
+        DWORD PartitionCount;
+        ubyte WriteProtected;
+    }
+
+    alias TAPE_GET_MEDIA_PARAMETERS _TAPE_GET_MEDIA_PARAMETERS;
+    alias TAPE_GET_MEDIA_PARAMETERS TTAPEGETMEDIAPARAMETERS;
+    alias TAPE_GET_MEDIA_PARAMETERS* PTAPEGETMEDIAPARAMETERS;
+
+    struct TAPE_GET_POSITION
+    {
+        ULONG _Type;
+        ULONG Partition;
+        ULONG OffsetLow;
+        ULONG OffsetHigh;
+    }
+
+    alias TAPE_GET_POSITION _TAPE_GET_POSITION;
+    alias TAPE_GET_POSITION TTAPEGETPOSITION;
+    alias TAPE_GET_POSITION* PTAPEGETPOSITION;
+
+    struct TAPE_PREPARE
+    {
+        DWORD    Operation;
+        BOOLEAN  Immediate;
+    }
+
+    alias TAPE_PREPARE _TAPE_PREPARE;
+    alias TAPE_PREPARE TTAPEPREPARE;
+    alias TAPE_PREPARE* PTAPEPREPARE;
+
+    struct TAPE_SET_DRIVE_PARAMETERS
+    {
+        ubyte ECC;
+        ubyte Compression;
+        ubyte DataPadding;
+        ubyte ReportSetmarks;
+        ULONG EOTWarningZoneSize;
+    }
+
+    alias TAPE_SET_DRIVE_PARAMETERS _TAPE_SET_DRIVE_PARAMETERS;
+    alias TAPE_SET_DRIVE_PARAMETERS TTAPESETDRIVEPARAMETERS;
+    alias TAPE_SET_DRIVE_PARAMETERS* PTAPESETDRIVEPARAMETERS;
+
+    struct TAPE_SET_MEDIA_PARAMETERS
+    {
+        ULONG BlockSize;
+    }
+
+    alias TAPE_SET_MEDIA_PARAMETERS _TAPE_SET_MEDIA_PARAMETERS;
+    alias TAPE_SET_MEDIA_PARAMETERS TTAPESETMEDIAPARAMETERS;
+    alias TAPE_SET_MEDIA_PARAMETERS* PTAPESETMEDIAPARAMETERS;
+
+    struct TAPE_SET_POSITION
+    {
+        ULONG Method;
+        ULONG Partition;
+        LARGE_INTEGER Offset;
+        BOOLEAN Immediate;
+    }
+
+    alias TAPE_SET_POSITION _TAPE_SET_POSITION;
+    alias TAPE_SET_POSITION TTAPESETPOSITION;
+    alias TAPE_SET_POSITION* PTAPESETPOSITION;
+
+    struct TAPE_WRITE_MARKS
+    {
+        ULONG _Type;
+        ULONG Count;
+        BOOLEAN Immediate;
+    }
+
+    alias TAPE_WRITE_MARKS _TAPE_WRITE_MARKS;
+    alias TAPE_WRITE_MARKS TTAPEWRITEMARKS;
+    alias TAPE_WRITE_MARKS* PTAPEWRITEMARKS;
+
+    struct TBADDBITMAP
+    {
+        HINST hInst;
+        UINT nID;
+    }
+
+    alias TBADDBITMAP* LPTBADDBITMAP;
+    alias TBADDBITMAP TTBADDBITMAP;
+    alias TBADDBITMAP* PTBADDBITMAP;
+
+    struct TBBUTTON {
+        align(2):
+        int     iBitmap;
+        int     idCommand;
+        BYTE    fsState;
+        BYTE    fsStyle;
+    //#ifdef _WIN64
+    //    BYTE     bReserved[6];     // padding for alignment
+    //#elif defined(_WIN32)
+        BYTE     bReserved[2];     // padding for alignment
+    //#endif
+        DWORD_PTR   dwData;
+        INT_PTR     iString;
+    }
+
+    alias TBBUTTON* LPTBBUTTON;
+    alias TBBUTTON* LPCTBBUTTON;
+    alias TBBUTTON _TBBUTTON;
+    alias TBBUTTON TTBBUTTON;
+    alias TBBUTTON* PTBBUTTON;
+
+    struct NMTOOLBARA {
+        align(2):
+        NMHDR    hdr;
+        int      iItem;
+        TBBUTTON tbButton;
+        int      cchText;
+        LPSTR   pszText;
+        RECT     rcButton;
+    }
+    struct NMTOOLBARW {
+        align(2):
+        NMHDR    hdr;
+        int      iItem;
+        TBBUTTON tbButton;
+        int      cchText;
+        LPWSTR   pszText;
+        RECT     rcButton;
+    }
+    version(Win32SansUnicode){
+        alias NMTOOLBARA NMTOOLBAR;
+    }else{
+        alias NMTOOLBARW NMTOOLBAR;
+    }
+    alias NMTOOLBAR* LPNMTOOLBAR;
+
+    alias NMTOOLBAR TBNOTIFY;
+
+    alias TBNOTIFY* LPTBNOTIFY;
+    alias TBNOTIFY TTBNOTIFY;
+    alias TBNOTIFY* PTBNOTIFY;
+
+    struct TBSAVEPARAMS
+    {
+        HKEY hkr;
+        LPCTSTR pszSubKey;
+        LPCTSTR pszValueName;
+    }
+
+    alias TBSAVEPARAMS TTBSAVEPARAMS;
+    alias TBSAVEPARAMS* PTBSAVEPARAMS;
+
+    struct TC_HITTESTINFO
+    {
+        POINT pt;
+        UINT flags;
+    }
+
+    alias TC_HITTESTINFO TCHITTESTINFO;
+    alias TC_HITTESTINFO _TC_HITTESTINFO;
+    alias TC_HITTESTINFO TTCHITTESTINFO;
+    alias TC_HITTESTINFO* PTCHITTESTINFO;
+
+    struct TC_ITEM
+    {
+        UINT mask;
+        UINT lpReserved1;
+        UINT lpReserved2;
+        LPTSTR pszText;
+        int cchTextMax;
+        int iImage;
+        LPARAM lParam;
+    }
+
+    alias TC_ITEM _TC_ITEM;
+    alias TC_ITEM TTCITEM;
+    alias TC_ITEM* PTCITEM;
+
+    struct TC_ITEMHEADER
+    {
+        UINT mask;
+        UINT lpReserved1;
+        UINT lpReserved2;
+        LPTSTR pszText;
+        int cchTextMax;
+        int iImage;
+    }
+
+    alias TC_ITEMHEADER _TC_ITEMHEADER;
+    alias TC_ITEMHEADER TTCITEMHEADER;
+    alias TC_ITEMHEADER* PTCITEMHEADER;
+
+    align(1) struct NMTCKEYDOWN
+    {
+        NMHDR hdr;
+        WORD wVKey;
+        UINT flags;
+    }
+
+    alias NMTCKEYDOWN TC_KEYDOWN;
+    alias TC_KEYDOWN _TC_KEYDOWN;
+    alias TC_KEYDOWN TTCKEYDOWN;
+    alias TC_KEYDOWN* PTCKEYDOWN;
+
+    struct TEXTRANGE
+    {
+        CHARRANGE chrg;
+        LPSTR lpstrText;
+    }
+
+    alias TEXTRANGE _TEXTRANGE;
+    alias TEXTRANGE TTEXTRANGE;
+    alias TEXTRANGE* PTEXTRANGE;
+
+    struct TIME_ZONE_INFORMATION
+    {
+        LONG Bias;
+        WCHAR[1 + 31] StandardName;
+        SYSTEMTIME StandardDate;
+        LONG StandardBias;
+        WCHAR[1 + 31] DaylightName;
+        SYSTEMTIME DaylightDate;
+        LONG DaylightBias;
+    }
+
+    alias TIME_ZONE_INFORMATION* LPTIME_ZONE_INFORMATION;
+    alias TIME_ZONE_INFORMATION _TIME_ZONE_INFORMATION;
+    alias TIME_ZONE_INFORMATION TTIMEZONEINFORMATION;
+    alias TIME_ZONE_INFORMATION* PTIMEZONEINFORMATION;
+
+    struct TOGGLEKEYS
+    {
+        DWORD cbSize;
+        DWORD dwFlags;
+    }
+
+    alias TOGGLEKEYS TAGTOGGLEKEYS;
+    alias TOGGLEKEYS TTOGGLEKEYS;
+    alias TOGGLEKEYS* PTOGGLEKEYS;
+
+    struct TOKEN_SOURCE
+    {
+        char[1 + 7] SourceName;
+        LUID SourceIdentifier;
+    }
+
+    alias TOKEN_SOURCE _TOKEN_SOURCE;
+    alias TOKEN_SOURCE TTOKENSOURCE;
+    alias TOKEN_SOURCE* PTOKENSOURCE;
+
+    struct TOKEN_CONTROL
+    {
+        LUID TokenId;
+        LUID AuthenticationId;
+        LUID ModifiedId;
+        TOKEN_SOURCE TokenSource;
+    }
+
+    alias TOKEN_CONTROL _TOKEN_CONTROL;
+    alias TOKEN_CONTROL TTOKENCONTROL;
+    alias TOKEN_CONTROL* PTOKENCONTROL;
+
+    struct TOKEN_DEFAULT_DACL
+    {
+        PACL DefaultDacl;
+    }
+
+    alias TOKEN_DEFAULT_DACL _TOKEN_DEFAULT_DACL;
+    alias TOKEN_DEFAULT_DACL TTOKENDEFAULTDACL;
+    alias TOKEN_DEFAULT_DACL* PTOKENDEFAULTDACL;
+
+    struct TOKEN_GROUPS
+    {
+        DWORD GroupCount;
+        SID_AND_ATTRIBUTES[1 + ANYSIZE_ARRAY-1] Groups;
+    }
+
+    alias TOKEN_GROUPS* PTOKEN_GROUPS;
+    alias TOKEN_GROUPS* LPTOKEN_GROUPS;
+    alias TOKEN_GROUPS _TOKEN_GROUPS;
+    alias TOKEN_GROUPS TTOKENGROUPS;
+    alias TOKEN_GROUPS* PTOKENGROUPS;
+
+    struct TOKEN_OWNER
+    {
+        PSID Owner;
+    }
+
+    alias TOKEN_OWNER _TOKEN_OWNER;
+    alias TOKEN_OWNER TTOKENOWNER;
+    alias TOKEN_OWNER* PTOKENOWNER;
+
+    struct TOKEN_PRIMARY_GROUP
+    {
+        PSID PrimaryGroup;
+    }
+
+    alias TOKEN_PRIMARY_GROUP _TOKEN_PRIMARY_GROUP;
+    alias TOKEN_PRIMARY_GROUP TTOKENPRIMARYGROUP;
+    alias TOKEN_PRIMARY_GROUP* PTOKENPRIMARYGROUP;
+
+    struct TOKEN_PRIVILEGES
+    {
+        DWORD PrivilegeCount;
+        LUID_AND_ATTRIBUTES[ANYSIZE_ARRAY] Privileges;
+    }
+
+    alias TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES;
+    alias TOKEN_PRIVILEGES* LPTOKEN_PRIVILEGES;
+    alias TOKEN_PRIVILEGES _TOKEN_PRIVILEGES;
+    alias TOKEN_PRIVILEGES TTOKENPRIVILEGES;
+    alias TOKEN_PRIVILEGES* PTOKENPRIVILEGES;
+
+    struct TOKEN_STATISTICS
+    {
+        LUID TokenId;
+        LUID AuthenticationId;
+        LARGE_INTEGER ExpirationTime;
+        TOKEN_TYPE TokenType;
+        SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
+        DWORD DynamicCharged;
+        DWORD DynamicAvailable;
+        DWORD GroupCount;
+        DWORD PrivilegeCount;
+        LUID ModifiedId;
+    }
+
+    alias TOKEN_STATISTICS _TOKEN_STATISTICS;
+    alias TOKEN_STATISTICS TTOKENSTATISTICS;
+    alias TOKEN_STATISTICS* PTOKENSTATISTICS;
+
+    struct TOKEN_USER
+    {
+        SID_AND_ATTRIBUTES User;
+    }
+
+    alias TOKEN_USER _TOKEN_USER;
+    alias TOKEN_USER TTOKENUSER;
+    alias TOKEN_USER* PTOKENUSER;
+
+    struct TOOLINFOA
+    {
+        UINT cbSize;
+        UINT uFlags;
+        HWND hwnd;
+        UINT uId;
+        RECT rect;
+        HINST hinst;
+        LPSTR lpszText;
+    //if (_WIN32_IE >= 0x0300)
+        LPARAM lParam;
+    //endif
+    //if (_WIN32_WINNT >= 0x0501)
+        void *lpReserved;
+    //endif
+    }
+    struct TOOLINFOW
+    {
+        UINT cbSize;
+        UINT uFlags;
+        HWND hwnd;
+        UINT uId;
+        RECT rect;
+        HINST hinst;
+        LPWSTR lpszText;
+    //if (_WIN32_IE >= 0x0300)
+        LPARAM lParam;
+    //endif
+    //if (_WIN32_WINNT >= 0x0501)
+        void *lpReserved;
+    //endif
+
+    }
+    version(Win32SansUnicode)
+    {
+        alias TOOLINFOA TOOLINFO;
+    }
+    else
+    {
+        alias TOOLINFOW TOOLINFO;
+    }
+    alias TOOLINFO* LPTOOLINFO;
+    alias TOOLINFO TTOOLINFO;
+    alias TOOLINFO* PTOOLINFO;
+
+    struct NMTTDISPINFOA {
+        NMHDR hdr;
+        LPSTR lpszText;
+        char szText[80];
+        HINSTANCE hinst;
+        UINT uFlags;
+        LPARAM lParam;
+    }
+
+    struct NMTTDISPINFOW {
+        NMHDR hdr;
+        LPWSTR lpszText;
+        WCHAR szText[80];
+        HINSTANCE hinst;
+        UINT uFlags;
+        LPARAM lParam;
+    }
+    version(Win32SansUnicode){
+        alias NMTTDISPINFOA NMTTDISPINFO;
+    } else {
+        alias NMTTDISPINFOW NMTTDISPINFO;
+    }
+
+
+    alias NMTTDISPINFOA TOOLTIPTEXTA;
+    alias NMTTDISPINFOW TOOLTIPTEXTW;
+    version(Win32SansUnicode)
+    {
+        alias TOOLTIPTEXTA TOOLTIPTEXT;
+    }
+    else
+    {
+        alias TOOLTIPTEXTW TOOLTIPTEXT;
+    }
+    alias TOOLTIPTEXT* LPTOOLTIPTEXT;
+    alias TOOLTIPTEXT TTOOLTIPTEXT;
+    alias TOOLTIPTEXT* PTOOLTIPTEXT;
+
+    struct TPMPARAMS
+    {
+        UINT cbSize;
+        RECT rcExclude;
+    }
+
+    alias TPMPARAMS* LPTPMPARAMS;
+    alias TPMPARAMS TAGTPMPARAMS;
+    alias TPMPARAMS TTPMPARAMS;
+    alias TPMPARAMS* PTPMPARAMS;
+
+    struct TRANSMIT_FILE_BUFFERS
+    {
+        PVOID Head;
+        DWORD HeadLength;
+        PVOID Tail;
+        DWORD TailLength;
+    }
+
+    alias TRANSMIT_FILE_BUFFERS _TRANSMIT_FILE_BUFFERS;
+    alias TRANSMIT_FILE_BUFFERS TTRANSMITFILEBUFFERS;
+    alias TRANSMIT_FILE_BUFFERS* PTRANSMITFILEBUFFERS;
+
+    struct TTHITTESTINFO
+    {
+        HWND hwnd;
+        POINT pt;
+        TOOLINFO ti;
+    }
+
+    alias TTHITTESTINFO* LPHITTESTINFO;
+    alias TTHITTESTINFO _TT_HITTESTINFO;
+    alias TTHITTESTINFO TTTHITTESTINFO;
+    alias TTHITTESTINFO* PTTHITTESTINFO;
+
+    struct TTPOLYCURVE
+    {
+        ushort wType;
+        ushort cpfx;
+        POINTFX[1 + 0] apfx;
+    }
+
+    alias TTPOLYCURVE* LPTTPOLYCURVE;
+    alias TTPOLYCURVE TAGTTPOLYCURVE;
+    alias TTPOLYCURVE TTTPOLYCURVE;
+    alias TTPOLYCURVE* PTTPOLYCURVE;
+
+    struct TTPOLYGONHEADER
+    {
+        DWORD cb;
+        DWORD dwType;
+        POINTFX pfxStart;
+    }
+
+    alias TTPOLYGONHEADER* LPTTPOLYGONHEADER;
+    alias TTPOLYGONHEADER _TTPOLYGONHEADER;
+    alias TTPOLYGONHEADER TTTPOLYGONHEADER;
+    alias TTPOLYGONHEADER* PTTPOLYGONHEADER;
+
+    struct TV_DISPINFO
+    {
+        NMHDR hdr;
+        TV_ITEM item;
+    }
+
+    alias TV_DISPINFO _TV_DISPINFO;
+    alias TV_DISPINFO TTVDISPINFO;
+    alias TV_DISPINFO* PTVDISPINFO;
+
+    struct TV_HITTESTINFO
+    {
+        POINT pt;
+        UINT flags;
+        HTREEITEM hItem;
+    }
+
+    alias TV_HITTESTINFO* LPTV_HITTESTINFO;
+    alias TV_HITTESTINFO _TVHITTESTINFO;
+    alias TV_HITTESTINFO TTVHITTESTINFO;
+    alias TV_HITTESTINFO* PTVHITTESTINFO;
+
+    struct TVINSERTSTRUCTA
+    {
+        HTREEITEM hParent;
+        HTREEITEM hInsertAfter;
+        union {
+            TVITEMEXA itemex;
+            TVITEMA item;
+        }
+    }
+    struct TVINSERTSTRUCTW
+    {
+        HTREEITEM hParent;
+        HTREEITEM hInsertAfter;
+        union {
+            TVITEMEXW itemex;
+            TVITEMW item;
+        }
+    }
+    version(Win32SansUnicode)
+    {
+        alias TVINSERTSTRUCTA TVINSERTSTRUCT;
+    }
+    else
+    {
+        alias TVINSERTSTRUCTW TVINSERTSTRUCT;
+    }
+
+    alias TVINSERTSTRUCT  TV_INSERTSTRUCT;
+    alias TVINSERTSTRUCT* LPTV_INSERTSTRUCT;
+    alias TVINSERTSTRUCT _TV_INSERTSTRUCT;
+    alias TVINSERTSTRUCT TTVINSERTSTRUCT;
+    alias TVINSERTSTRUCT* PTVINSERTSTRUCT;
+
+    align(2) struct TV_KEYDOWN
+    {
+        NMHDR hdr;
+        ushort wVKey;
+        UINT flags;
+    }
+
+    alias TV_KEYDOWN _TV_KEYDOWN;
+    alias TV_KEYDOWN TTVKEYDOWN;
+    alias TV_KEYDOWN* PTVKEYDOWN;
+
+    struct TV_SORTCB
+    {
+        HTREEITEM hParent;
+        PFNTVCOMPARE lpfnCompare;
+        LPARAM lParam;
+    }
+
+    alias TV_SORTCB* LPTV_SORTCB;
+    alias TV_SORTCB _TV_SORTCB;
+    alias TV_SORTCB TTVSORTCB;
+    alias TV_SORTCB* PTVSORTCB;
+
+    struct UDACCEL
+    {
+        UINT nSec;
+        UINT nInc;
+    }
+
+    alias UDACCEL TUDACCEL;
+    alias UDACCEL* PUDACCEL;
+
+    union ULARGE_INTEGER
+    {
+        struct
+        {
+            DWORD LowPart;
+            DWORD HighPart;
+        };
+        struct u
+        {
+            DWORD LowPart;
+            DWORD HighPart;
+        };
+        DWORDLONG QuadPart;
+    }
+    alias ULARGE_INTEGER* PULARGE_INTEGER;
+    alias ULARGE_INTEGER _ULARGE_INTEGER;
+    alias ULARGE_INTEGER TULARGEINTEGER;
+    alias ULARGE_INTEGER* PULARGEINTEGER;
+
+    struct UNIVERSAL_NAME_INFO
+    {
+        LPTSTR lpUniversalName;
+    }
+
+    alias UNIVERSAL_NAME_INFO _UNIVERSAL_NAME_INFO;
+    alias UNIVERSAL_NAME_INFO TUNIVERSALNAMEINFO;
+    alias UNIVERSAL_NAME_INFO* PUNIVERSALNAMEINFO;
+
+    struct USEROBJECTFLAGS
+    {
+        WINBOOL fInherit;
+        WINBOOL fReserved;
+        DWORD dwFlags;
+    }
+
+    alias USEROBJECTFLAGS TAGUSEROBJECTFLAGS;
+    alias USEROBJECTFLAGS TUSEROBJECTFLAGS;
+    alias USEROBJECTFLAGS* PUSEROBJECTFLAGS;
+
+    struct VALENT
+    {
+        LPTSTR ve_valuename;
+        DWORD ve_valuelen;
+        DWORD ve_valueptr;
+        DWORD ve_type;
+    }
+
+    alias VALENT TVALENT;
+    alias VALENT* PVALENT;
+    alias VALENT VALUE_ENT;
+    alias VALENT TVALUE_ENT;
+    alias VALENT* PVALUE_ENT;
+
+    struct VERIFY_INFORMATION
+    {
+        LARGE_INTEGER StartingOffset;
+        DWORD Length;
+    }
+
+    alias VERIFY_INFORMATION _VERIFY_INFORMATION;
+    alias VERIFY_INFORMATION TVERIFYINFORMATION;
+    alias VERIFY_INFORMATION* PVERIFYINFORMATION;
+
+    struct VS_FIXEDFILEINFO
+    {
+        DWORD dwSignature;
+        DWORD dwStrucVersion;
+        DWORD dwFileVersionMS;
+        DWORD dwFileVersionLS;
+        DWORD dwProductVersionMS;
+        DWORD dwProductVersionLS;
+        DWORD dwFileFlagsMask;
+        DWORD dwFileFlags;
+        DWORD dwFileOS;
+        DWORD dwFileType;
+        DWORD dwFileSubtype;
+        DWORD dwFileDateMS;
+        DWORD dwFileDateLS;
+    }
+
+    alias VS_FIXEDFILEINFO _VS_FIXEDFILEINFO;
+    alias VS_FIXEDFILEINFO TVSFIXEDFILEINFO;
+    alias VS_FIXEDFILEINFO* PVSFIXEDFILEINFO;
+
+    struct WIN32_FIND_DATA
+    {
+        DWORD dwFileAttributes;
+        FILETIME ftCreationTime;
+        FILETIME ftLastAccessTime;
+        FILETIME ftLastWriteTime;
+        DWORD nFileSizeHigh;
+        DWORD nFileSizeLow;
+        DWORD dwReserved0;
+        DWORD dwReserved1;
+        TCHAR[1 + MAX_PATH-1] cFileName;
+        TCHAR[1 + 13] cAlternateFileName;
+    }
+
+    alias WIN32_FIND_DATA* LPWIN32_FIND_DATA;
+    alias WIN32_FIND_DATA* PWIN32_FIND_DATA;
+    alias WIN32_FIND_DATA _WIN32_FIND_DATA;
+    alias WIN32_FIND_DATA TWIN32FINDDATA;
+    alias WIN32_FIND_DATA TWIN32FINDDATAA;
+    alias WIN32_FIND_DATA* PWIN32FINDDATA;
+
+    struct WIN32_FIND_DATAW {
+        DWORD dwFileAttributes;
+        FILETIME ftCreationTime;
+        FILETIME ftLastAccessTime;
+        FILETIME ftLastWriteTime;
+        DWORD nFileSizeHigh;
+        DWORD nFileSizeLow;
+        DWORD dwReserved0;
+        DWORD dwReserved1;
+        WCHAR  cFileName[MAX_PATH];
+        WCHAR  cAlternateFileName[14];
+    }
+
+    alias WIN32_FIND_DATAW* LPWIN32_FIND_DATAW;
+    alias WIN32_FIND_DATAW* PWIN32_FIND_DATAW;
+
+    struct WIN32_FILE_ATTRIBUTE_DATA {
+      DWORD dwFileAttributes;
+      FILETIME ftCreationTime;
+      FILETIME ftLastAccessTime;
+      FILETIME ftLastWriteTime;
+      DWORD nFileSizeHigh;
+      DWORD nFileSizeLow;
+    }
+
+    enum {
+        GetFileInfoLevelStandard,
+        GetFileInfoLevelMax
+    }
+
+    struct WIN32_STREAM_ID
+    {
+        DWORD dwStreamId;
+        DWORD dwStreamAttributes;
+        LARGE_INTEGER Size;
+        DWORD dwStreamNameSize;
+        WCHAR* cStreamName;
+    }
+
+    alias WIN32_STREAM_ID _WIN32_STREAM_ID;
+    alias WIN32_STREAM_ID TWIN32STREAMID;
+    alias WIN32_STREAM_ID* PWIN32STREAMID;
+
+    struct WINDOWPLACEMENT
+    {
+        UINT length;
+        UINT flags;
+        UINT showCmd;
+        POINT ptMinPosition;
+        POINT ptMaxPosition;
+        RECT rcNormalPosition;
+    }
+
+    alias WINDOWPLACEMENT _WINDOWPLACEMENT;
+    alias WINDOWPLACEMENT TWINDOWPLACEMENT;
+    alias WINDOWPLACEMENT* PWINDOWPLACEMENT;
+
+    struct WNDCLASSA
+    {
+        UINT style;
+        WNDPROC lpfnWndProc;
+        int cbClsExtra;
+        int cbWndExtra;
+        HANDLE hInstance;
+        HICON hIcon;
+        HCURSOR hCursor;
+        HBRUSH hbrBackground;
+        LPCSTR lpszMenuName;
+        LPCSTR lpszClassName;
+    }
+
+    alias WNDCLASSA* PWNDCLASSA, LPWNDCLASSA;
+
+    struct WNDCLASSW
+    {
+        UINT        style;
+        WNDPROC     lpfnWndProc;
+        int         cbClsExtra;
+        int         cbWndExtra;
+        HINSTANCE   hInstance;
+        HICON       hIcon;
+        HCURSOR     hCursor;
+        HBRUSH      hbrBackground;
+        LPCWSTR     lpszMenuName;
+        LPCWSTR     lpszClassName;
+    }
+
+    alias WNDCLASSW* PWNDCLASSW, LPWNDCLASSW;
+
+    version(Win32SansUnicode)
+    {
+        alias WNDCLASSA WNDCLASS;
+    }
+    else
+    {
+        alias WNDCLASSW WNDCLASS;
+    }
+    alias WNDCLASS* LPWNDCLASS;
+    alias WNDCLASS _WNDCLASS;
+    alias WNDCLASS TWNDCLASS;
+    alias WNDCLASS WNDCLASS_T;
+    alias WNDCLASS* PWNDCLASS;
+
+    struct WNDCLASSEX
+    {
+        UINT cbSize;
+        UINT style;
+        WNDPROC lpfnWndProc;
+        int cbClsExtra;
+        int cbWndExtra;
+        HANDLE hInstance;
+        HICON hIcon;
+        HCURSOR hCursor;
+        HBRUSH hbrBackground;
+        LPCTSTR lpszMenuName;
+        LPCTSTR lpszClassName;
+        HANDLE hIconSm;
+    }
+
+    alias WNDCLASSEX* LPWNDCLASSEX;
+    alias WNDCLASSEX _WNDCLASSEX;
+    alias WNDCLASSEX TWNDCLASSEX;
+    alias WNDCLASSEX TWNDCLASSEXA;
+    alias WNDCLASSEX* PWNDCLASSEX;
+
+    struct CONNECTDLGSTRUCT
+    {
+        DWORD cbStructure;
+        HWND hwndOwner;
+        LPNETRESOURCE lpConnRes;
+        DWORD dwFlags;
+        DWORD dwDevNum;
+    }
+
+    alias CONNECTDLGSTRUCT* LPCONNECTDLGSTRUCT;
+    alias CONNECTDLGSTRUCT _CONNECTDLGSTRUCT;
+    alias CONNECTDLGSTRUCT TCONNECTDLGSTRUCT;
+    alias CONNECTDLGSTRUCT* PCONNECTDLGSTRUCT;
+
+    struct DISCDLGSTRUCT
+    {
+        DWORD cbStructure;
+        HWND hwndOwner;
+        LPTSTR lpLocalName;
+        LPTSTR lpRemoteName;
+        DWORD dwFlags;
+    }
+
+    alias DISCDLGSTRUCT* LPDISCDLGSTRUCT;
+    alias DISCDLGSTRUCT _DISCDLGSTRUCT;
+    alias DISCDLGSTRUCT TDISCDLGSTRUCT;
+    alias DISCDLGSTRUCT TDISCDLGSTRUCTA;
+    alias DISCDLGSTRUCT* PDISCDLGSTRUCT;
+
+    struct NETINFOSTRUCT
+    {
+        DWORD cbStructure;
+        DWORD dwProviderVersion;
+        DWORD dwStatus;
+        DWORD dwCharacteristics;
+        DWORD dwHandle;
+        ushort wNetType;
+        DWORD dwPrinters;
+        DWORD dwDrives;
+    }
+
+    alias NETINFOSTRUCT* LPNETINFOSTRUCT;
+    alias NETINFOSTRUCT _NETINFOSTRUCT;
+    alias NETINFOSTRUCT TNETINFOSTRUCT;
+    alias NETINFOSTRUCT* PNETINFOSTRUCT;
+
+    struct NETCONNECTINFOSTRUCT
+    {
+        DWORD cbStructure;
+        DWORD dwFlags;
+        DWORD dwSpeed;
+        DWORD dwDelay;
+        DWORD dwOptDataSize;
+    }
+
+    alias NETCONNECTINFOSTRUCT* LPNETCONNECTINFOSTRUCT;
+    alias NETCONNECTINFOSTRUCT _NETCONNECTINFOSTRUCT;
+    alias NETCONNECTINFOSTRUCT TNETCONNECTINFOSTRUCT;
+    alias NETCONNECTINFOSTRUCT* PNETCONNECTINFOSTRUCT;
+    extern(Windows){
+    alias int (*ENUMMETAFILEPROC)(HDC, HANDLETABLE*, METARECORD*, int, LPARAM);
+    alias int (*ENHMETAFILEPROC)(HDC, HANDLETABLE*, ENHMETARECORD*, int, LPARAM);
+    alias int (*ENUMFONTSPROC)(LPLOGFONT, LPTEXTMETRIC, DWORD, LPARAM);
+    alias int (*FONTENUMPROC)(ENUMLOGFONT*, NEWTEXTMETRIC*, int, LPARAM);
+    alias int (*FONTENUMEXPROC)(ENUMLOGFONTEX*, NEWTEXTMETRICEX*, int, LPARAM);
+    alias void (*LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD, DWORD);
+    }
+
+    struct POINTFLOAT
+    {
+        FLOAT x;
+        FLOAT y;
+    }
+
+    alias POINTFLOAT _POINTFLOAT;
+    alias POINTFLOAT TPOINTFLOAT;
+    alias POINTFLOAT* PPOINTFLOAT;
+
+    struct GLYPHMETRICSFLOAT
+    {
+        FLOAT gmfBlackBoxX;
+        FLOAT gmfBlackBoxY;
+        POINTFLOAT gmfptGlyphOrigin;
+        FLOAT gmfCellIncX;
+        FLOAT gmfCellIncY;
+    }
+
+    alias GLYPHMETRICSFLOAT* LPGLYPHMETRICSFLOAT;
+    alias GLYPHMETRICSFLOAT _GLYPHMETRICSFLOAT;
+    alias GLYPHMETRICSFLOAT TGLYPHMETRICSFLOAT;
+    alias GLYPHMETRICSFLOAT* PGLYPHMETRICSFLOAT;
+
+    struct LAYERPLANEDESCRIPTOR
+    {
+        ushort nSize;
+        ushort nVersion;
+        DWORD dwFlags;
+        ubyte iPixelType;
+        ubyte cColorBits;
+        ubyte cRedBits;
+        ubyte cRedShift;
+        ubyte cGreenBits;
+        ubyte cGreenShift;
+        ubyte cBlueBits;
+        ubyte cBlueShift;
+        ubyte cAlphaBits;
+        ubyte cAlphaShift;
+        ubyte cAccumBits;
+        ubyte cAccumRedBits;
+        ubyte cAccumGreenBits;
+        ubyte cAccumBlueBits;
+        ubyte cAccumAlphaBits;
+        ubyte cDepthBits;
+        ubyte cStencilBits;
+        ubyte cAuxBuffers;
+        ubyte iLayerPlane;
+        ubyte bReserved;
+        COLORREF crTransparent;
+    }
+
+    alias LAYERPLANEDESCRIPTOR* LPLAYERPLANEDESCRIPTOR;
+    alias LAYERPLANEDESCRIPTOR TAGLAYERPLANEDESCRIPTOR;
+    alias LAYERPLANEDESCRIPTOR TLAYERPLANEDESCRIPTOR;
+    alias LAYERPLANEDESCRIPTOR* PLAYERPLANEDESCRIPTOR;
+
+    struct PIXELFORMATDESCRIPTOR
+    {
+        ushort nSize;
+        ushort nVersion;
+        DWORD dwFlags;
+        ubyte iPixelType;
+        ubyte cColorBits;
+        ubyte cRedBits;
+        ubyte cRedShift;
+        ubyte cGreenBits;
+        ubyte cGreenShift;
+        ubyte cBlueBits;
+        ubyte cBlueShift;
+        ubyte cAlphaBits;
+        ubyte cAlphaShift;
+        ubyte cAccumBits;
+        ubyte cAccumRedBits;
+        ubyte cAccumGreenBits;
+        ubyte cAccumBlueBits;
+        ubyte cAccumAlphaBits;
+        ubyte cDepthBits;
+        ubyte cStencilBits;
+        ubyte cAuxBuffers;
+        ubyte iLayerType;
+        ubyte bReserved;
+        DWORD dwLayerMask;
+        DWORD dwVisibleMask;
+        DWORD dwDamageMask;
+    }
+
+    alias PIXELFORMATDESCRIPTOR* LPPIXELFORMATDESCRIPTOR;
+    alias PIXELFORMATDESCRIPTOR TAGPIXELFORMATDESCRIPTOR;
+    alias PIXELFORMATDESCRIPTOR TPIXELFORMATDESCRIPTOR;
+    alias PIXELFORMATDESCRIPTOR* PPIXELFORMATDESCRIPTOR;
+
+    struct USER_INFO_2
+    {
+        LPWSTR usri2_name;
+        LPWSTR usri2_password;
+        DWORD usri2_password_age;
+        DWORD usri2_priv;
+        LPWSTR usri2_home_dir;
+        LPWSTR usri2_comment;
+        DWORD usri2_flags;
+        LPWSTR usri2_script_path;
+        DWORD usri2_auth_flags;
+        LPWSTR usri2_full_name;
+        LPWSTR usri2_usr_comment;
+        LPWSTR usri2_parms;
+        LPWSTR usri2_workstations;
+        DWORD usri2_last_logon;
+        DWORD usri2_last_logoff;
+        DWORD usri2_acct_expires;
+        DWORD usri2_max_storage;
+        DWORD usri2_units_per_week;
+        PBYTE usri2_logon_hours;
+        DWORD usri2_bad_pw_count;
+        DWORD usri2_num_logons;
+        LPWSTR usri2_logon_server;
+        DWORD usri2_country_code;
+        DWORD usri2_code_page;
+    }
+
+    alias USER_INFO_2* PUSER_INFO_2;
+    alias USER_INFO_2* LPUSER_INFO_2;
+    alias USER_INFO_2 TUSERINFO2;
+    alias USER_INFO_2* PUSERINFO2;
+
+    struct USER_INFO_0
+    {
+        LPWSTR usri0_name;
+    }
+
+    alias USER_INFO_0* PUSER_INFO_0;
+    alias USER_INFO_0* LPUSER_INFO_0;
+    alias USER_INFO_0 TUSERINFO0;
+    alias USER_INFO_0* PUSERINFO0;
+
+    struct USER_INFO_3
+    {
+        LPWSTR usri3_name;
+        LPWSTR usri3_password;
+        DWORD usri3_password_age;
+        DWORD usri3_priv;
+        LPWSTR usri3_home_dir;
+        LPWSTR usri3_comment;
+        DWORD usri3_flags;
+        LPWSTR usri3_script_path;
+        DWORD usri3_auth_flags;
+        LPWSTR usri3_full_name;
+        LPWSTR usri3_usr_comment;
+        LPWSTR usri3_parms;
+        LPWSTR usri3_workstations;
+        DWORD usri3_last_logon;
+        DWORD usri3_last_logoff;
+        DWORD usri3_acct_expires;
+        DWORD usri3_max_storage;
+        DWORD usri3_units_per_week;
+        PBYTE usri3_logon_hours;
+        DWORD usri3_bad_pw_count;
+        DWORD usri3_num_logons;
+        LPWSTR usri3_logon_server;
+        DWORD usri3_country_code;
+        DWORD usri3_code_page;
+        DWORD usri3_user_id;
+        DWORD usri3_primary_group_id;
+        LPWSTR usri3_profile;
+        LPWSTR usri3_home_dir_drive;
+        DWORD usri3_password_expired;
+    }
+
+    alias USER_INFO_3* PUSER_INFO_3;
+    alias USER_INFO_3* LPUSER_INFO_3;
+    alias USER_INFO_3 TUSERINFO3;
+    alias USER_INFO_3* PUSERINFO3;
+
+    struct GROUP_INFO_2
+    {
+        LPWSTR grpi2_name;
+        LPWSTR grpi2_comment;
+        DWORD grpi2_group_id;
+        DWORD grpi2_attributes;
+    }
+
+    alias GROUP_INFO_2* PGROUP_INFO_2;
+    alias GROUP_INFO_2 TGROUPINFO2;
+    alias GROUP_INFO_2* PGROUPINFO2;
+
+    struct LOCALGROUP_INFO_0
+    {
+        LPWSTR lgrpi0_name;
+    }
+
+    alias LOCALGROUP_INFO_0* PLOCALGROUP_INFO_0;
+    alias LOCALGROUP_INFO_0* LPLOCALGROUP_INFO_0;
+    alias LOCALGROUP_INFO_0 TLOCALGROUPINFO0;
+    alias LOCALGROUP_INFO_0* PLOCALGROUPINFO0;
+
+    struct IMAGE_DOS_HEADER
+    {
+        ushort e_magic;
+        ushort e_cblp;
+        ushort e_cp;
+        ushort e_crlc;
+        ushort e_cparhdr;
+        ushort e_minalloc;
+        ushort e_maxalloc;
+        ushort e_ss;
+        ushort e_sp;
+        ushort e_csum;
+        ushort e_ip;
+        ushort e_cs;
+        ushort e_lfarlc;
+        ushort e_ovno;
+        ushort[1 + 3] e_res;
+        ushort e_oemid;
+        ushort e_oeminfo;
+        ushort[1 + 9] e_res2;
+        LONG e_lfanew;
+    }
+
+    alias IMAGE_DOS_HEADER* PIMAGE_DOS_HEADER;
+    alias IMAGE_DOS_HEADER TIMAGEDOSHEADER;
+    alias IMAGE_DOS_HEADER* PIMAGEDOSHEADER;
+    alias ushort TVARTYPE;
+    alias TVARIANT* PVARIANT;
+
+    struct TVARIANT
+    {
+        TVARTYPE vt;
+        ushort wReserved1;
+        ushort wReserved2;
+        ushort wReserved3;
+
+        union
+        {
+            struct
+            {
+                ubyte bVal;
+            }
+            struct
+            {
+                byte iVal;
+            }
+            struct
+            {
+                int lVal;
+            }
+            struct
+            {
+                float fltVal;
+            }
+            struct
+            {
+                double dblVal;
+            }
+            struct
+            {
+                ushort vbool;
+            }
+            struct
+            {
+                HRESULT scode;
+            }
+            struct
+            {
+                ubyte* pbVal;
+            }
+            struct
+            {
+                byte* piVal;
+            }
+            struct
+            {
+                int* plVal;
+            }
+            struct
+            {
+                float* pfltVal;
+            }
+            struct
+            {
+                double* pdblVal;
+            }
+            struct
+            {
+                ushort* pbool;
+            }
+            struct
+            {
+                HRESULT* pscode;
+            }
+            struct
+            {
+                POINTER byRef;
+            }
+        }
+    }
+
+    alias TVARIANT VARIANT;
+    alias int MMRESULT;
+    alias TWAVEFORMATEX* PWAVEFORMATEX;
+    alias TWAVEFORMATEX WAVEFORMATEX;
+
+    align(1) struct TWAVEFORMATEX
+    {
+        ushort wFormatTag;
+        ushort nChannels;
+        DWORD nSamplesPerSec;
+        DWORD nAvgBytesPerSec;
+        ushort nBlockAlign;
+        ushort wBitsPerSample;
+        ushort cbSize;
+    }
+
+    alias CRITICAL_SECTION TRTLCRITICALSECTION;
+    alias PCRITICAL_SECTION PRTLCRITICALSECTION;
+    alias PGUID PIID;
+    alias TGUID TIID;
+    alias HANDLE THANDLE;
+    alias TSMALLRECT* PSMALLRECT;
+    alias SMALL_RECT TSMALLRECT;
+    alias TCHARINFO* PCHARINFO;
+    alias _CHAR_INFO TCHARINFO;
+    alias POINTER TFARPROC;
+    alias POINTER TFNDLGPROC;
+    alias POINTER TFNTHREADSTARTROUTINE;
+
+    struct _OBJECT_TYPE_LIST
+    {
+        ushort Level;
+        ushort Sbz;
+        PGUID ObjectType;
+    }
+
+    alias _OBJECT_TYPE_LIST TOBJECTTYPELIST;
+    alias TOBJECTTYPELIST* POBJECTTYPELIST;
+    alias _OBJECT_TYPE_LIST OBJECT_TYPE_LIST;
+    alias DWORD AUDIT_EVENT_TYPE;
+
+    align(1) struct _BLENDFUNCTION
+    {
+        ubyte BlendOp;
+        ubyte BlendFlags;
+        ubyte SourceConstantAlpha;
+        ubyte AlphaFormat;
+    }
+
+    alias _BLENDFUNCTION TBLENDFUNCTION;
+    alias TBLENDFUNCTION* PBLENDFUNCTION;
+    alias _BLENDFUNCTION BLENDFUNCTION;
+
+    alias HANDLE HMONITOR;
+
+    struct MONITORINFOEX
+    {
+        DWORD  cbSize;
+        RECT   rcMonitor;
+        RECT   rcWork;
+        DWORD  dwFlags;
+        TCHAR  szDevice[CCHDEVICENAME];
+    }
+    alias MONITORINFOEX* LPMONITORINFOEX;
+
+    struct MONITORINFO
+    {
+        DWORD  cbSize;
+        RECT   rcMonitor;
+        RECT   rcWork;
+        DWORD  dwFlags;
+    }
+    alias MONITORINFO* LPMONITORINFO;
+
+    struct WINDOWINFO
+    {
+        DWORD cbSize;
+        RECT rcWindow;
+        RECT rcClient;
+        DWORD dwStyle;
+        DWORD dwExStyle;
+        DWORD dwWindowStatus;
+        UINT cxWindowBorders;
+        UINT cyWindowBorders;
+        ATOM atomWindowType;
+        short wCreatorVersion;
+    };
+    alias WINDOWINFO* PWINDOWINFO;
+    alias WINDOWINFO* LPWINDOWINFO;
+
+    enum : HRESULT
+    {
+        S_OK            = 0x00000000,
+        S_FALSE         = 0x00000001,
+        E_UNEXPECTED    = 0x8000FFFF,
+        E_NOTIMPL       = 0x80004001,
+        E_OUTOFMEMORY   = 0x8007000E,
+        E_INVALIDARG    = 0x80070057,
+        E_NOINTERFACE   = 0x80004002,
+        E_POINTER       = 0x80004003,
+        E_HANDLE        = 0x80070006,
+        E_ABORT         = 0x80004004,
+        E_FAIL          = 0x80004005,
+        E_ACCESSDENIED  = 0x80070005,
+        E_PENDING       = 0x8000000A,
+    }
+
+    /*
+    int CO_E_INIT_TLS = (DWORD)((0x80004006));
+    int CO_E_INIT_MEMORY_ALLOCATOR = (DWORD)((0x80004008));
+    int CO_E_INIT_CLASS_CACHE = (DWORD)((0x80004009));
+    int CO_E_INIT_RPC_CHANNEL = (DWORD)((0x8000400A));
+    int CO_E_INIT_TLS_SET_CHANNEL_CONTROL = (DWORD)((0x8000400B));
+    int CO_E_INIT_TLS_CHANNEL_CONTROL = (DWORD)((0x8000400C));
+    int CO_E_INIT_UNACCEPTED_USER_ALLOCATOR = (DWORD)((0x8000400D));
+    int CO_E_INIT_SCM_MUTEX_EXISTS = (DWORD)((0x8000400E));
+    int CO_E_INIT_SCM_FILE_MAPPING_EXISTS = (DWORD)((0x8000400F));
+    int CO_E_INIT_SCM_MAP_VIEW_OF_FILE = (DWORD)((0x80004010));
+    int CO_E_INIT_SCM_EXEC_FAILURE = (DWORD)((0x80004011));
+    int CO_E_INIT_ONLY_SINGLE_THREADED = (DWORD)((0x80004012));
+    int CO_E_CANT_REMOTE = (DWORD)((0x80004013));
+    int CO_E_BAD_SERVER_NAME = (DWORD)((0x80004014));
+    int CO_E_WRONG_SERVER_IDENTITY = (DWORD)((0x80004015));
+    int CO_E_OLE1DDE_DISABLED = (DWORD)((0x80004016));
+    int CO_E_RUNAS_SYNTAX = (DWORD)((0x80004017));
+    int CO_E_CREATEPROCESS_FAILURE = (DWORD)((0x80004018));
+    int CO_E_RUNAS_CREATEPROCESS_FAILURE = (DWORD)((0x80004019));
+    int CO_E_RUNAS_LOGON_FAILURE = (DWORD)((0x8000401A));
+    int CO_E_LAUNCH_PERMSSION_DENIED = (DWORD)((0x8000401B));
+    int CO_E_START_SERVICE_FAILURE = (DWORD)((0x8000401C));
+    int CO_E_REMOTE_COMMUNICATION_FAILURE = (DWORD)((0x8000401D));
+    int CO_E_SERVER_START_TIMEOUT = (DWORD)((0x8000401E));
+    int CO_E_CLSREG_INCONSISTENT = (DWORD)((0x8000401F));
+    int CO_E_IIDREG_INCONSISTENT = (DWORD)((0x80004020));
+    int CO_E_NOT_SUPPORTED = (DWORD)((0x80004021));
+    int CO_E_FIRST = (DWORD)((0x800401F0));
+    int CO_E_LAST = (DWORD)((0x800401FF));
+    int CO_S_FIRST = (0x401F0);
+    int CO_E_NOTINITIALIZED = (DWORD)((0x800401F0));
+    int CO_E_ALREADYINITIALIZED = (DWORD)((0x800401F1));
+    int CO_E_CANTDETERMINECLASS = (DWORD)((0x800401F2));
+    int CO_E_CLASSSTRING = (DWORD)((0x800401F3));
+    int CO_E_IIDSTRING = (DWORD)((0x800401F4));
+    int CO_E_APPNOTFOUND = (DWORD)((0x800401F5));
+    int CO_E_APPSINGLEUSE = (DWORD)((0x800401F6));
+    int CO_E_ERRORINAPP = (DWORD)((0x800401F7));
+    int CO_E_DLLNOTFOUND = (DWORD)((0x800401F8));
+    int CO_E_ERRORINDLL = (DWORD)((0x800401F9));
+    int CO_E_WRONGOSFORAPP = (DWORD)((0x800401FA));
+    int CO_E_OBJNOTREG = (DWORD)((0x800401FB));
+    int CO_E_OBJISREG = (DWORD)((0x800401FC));
+    int CO_E_OBJNOTCONNECTED = (DWORD)((0x800401FD));
+    int CO_E_APPDIDNTREG = (DWORD)((0x800401FE));
+    int CO_E_RELEASED = (DWORD)((0x800401FF));
+    */
+}
 alias OPENFILENAME OPENFILENAMEW;
 alias OPENFILENAME OPENFILENAMEA;
 //alias WNDCLASS_T   WNDCLASS;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/program/Program.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/program/Program.d	Tue Mar 24 08:48:41 2009 +0100
@@ -398,7 +398,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals(Object other) {
+public override equals_t opEquals(Object other) {
     if (this is other) return true;
     if ( auto program = cast(Program)other ) {
         return name.equals(program.name) && command.equals(program.command)
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Decorations.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Decorations.d	Tue Mar 24 08:48:41 2009 +0100
@@ -323,7 +323,7 @@
     if (!isValidSubclass ()) error (SWT.ERROR_INVALID_SUBCLASS);
 }
 
-override override int callWindowProc (HWND hwnd, int msg, int wParam, int lParam) {
+override int callWindowProc (HWND hwnd, int msg, int wParam, int lParam) {
     if (handle is null) return 0;
     return OS.DefMDIChildProc (hwnd, msg, wParam, lParam);
 }
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Display.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Display.d	Tue Mar 24 08:48:41 2009 +0100
@@ -247,7 +247,7 @@
     Synchronizer synchronizer;
     bool runMessages = true, runMessagesInIdle = false, runMessagesInMessageProc = true;
     static const String RUN_MESSAGES_IN_IDLE_KEY = "org.eclipse.swt.internal.win32.runMessagesInIdle"; //$NON-NLS-1$
-    static final String RUN_MESSAGES_IN_MESSAGE_PROC_KEY = "org.eclipse.swt.internal.win32.runMessagesInMessageProc"; //$NON-NLS-1$
+    static const String RUN_MESSAGES_IN_MESSAGE_PROC_KEY = "org.eclipse.swt.internal.win32.runMessagesInMessageProc"; //$NON-NLS-1$
     Thread thread;
 
     /* Display Shutdown */
@@ -313,7 +313,7 @@
 
     /* Resize and move recursion */
     int resizeCount;
-    static final int RESIZE_LIMIT = 4;
+    static const int RESIZE_LIMIT = 4;
 
     /* Display Data */
     Object data;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/EventTable.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/EventTable.d	Tue Mar 24 08:48:41 2009 +0100
@@ -32,7 +32,7 @@
     int [] types;
     Listener [] listeners;
     int level;
-    static final int GROW_SIZE = 4;
+    static const int GROW_SIZE = 4;
     
 public Listener [] getListeners (int eventType) {
     if (types is null) return new Listener [0];
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Monitor.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Monitor.d	Tue Mar 24 08:48:41 2009 +0100
@@ -45,7 +45,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals (Object object) {
+public override equals_t opEquals (Object object) {
     if (object is this) return true;
     if ( auto mon = cast(org.eclipse.swt.widgets.Monitor.Monitor)object ){
        return handle is mon.handle;
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Shell.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Shell.d	Tue Mar 24 08:48:41 2009 +0100
@@ -172,7 +172,7 @@
         OS.COLOR_HIGHLIGHT,
         OS.COLOR_SCROLLBAR,
     ];
-    final static int BRUSHES_SIZE = 32;
+    const static int BRUSHES_SIZE = 32;
 
     private static bool static_this_completed = false;
     private static void static_this() {
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Synchronizer.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Synchronizer.d	Tue Mar 24 08:48:41 2009 +0100
@@ -46,11 +46,11 @@
     RunnableLock [] messages;
     Object messageLock;
     Thread syncThread;
-    static final int GROW_SIZE = 4;
-    static final int MESSAGE_LIMIT = 64;
+    static const int GROW_SIZE = 4;
+    static const int MESSAGE_LIMIT = 64;
 
     //TEMPORARY CODE
-    static final bool IS_CARBON = false;//"carbon".equals (SWT.getPlatform ());
+    static const bool IS_CARBON = false;//"carbon".equals (SWT.getPlatform ());
 
 /**
  * Constructs a new instance of this class.
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Tracker.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Tracker.d	Tue Mar 24 08:48:41 2009 +0100
@@ -69,8 +69,8 @@
     /*
     * The following values mirror step sizes on Windows
     */
-    final static int STEPSIZE_SMALL = 1;
-    final static int STEPSIZE_LARGE = 9;
+    const static int STEPSIZE_SMALL = 1;
+    const static int STEPSIZE_LARGE = 9;
 
 /**
  * Constructs a new instance of this class given its parent
--- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Widget.d	Mon Mar 23 18:28:04 2009 +0100
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/widgets/Widget.d	Tue Mar 24 08:48:41 2009 +0100
@@ -97,13 +97,13 @@
     static const int DRAG_DETECT    = 1<<15;
 
     /* Move and resize state flags */
-    static final int MOVE_OCCURRED      = 1<<16;
-    static final int MOVE_DEFERRED      = 1<<17;
-    static final int RESIZE_OCCURRED    = 1<<18;
-    static final int RESIZE_DEFERRED    = 1<<19;
+    static const int MOVE_OCCURRED      = 1<<16;
+    static const int MOVE_DEFERRED      = 1<<17;
+    static const int RESIZE_OCCURRED    = 1<<18;
+    static const int RESIZE_DEFERRED    = 1<<19;
 
     /* Ignore WM_CHANGEUISTATE */
-    static final int IGNORE_WM_CHANGEUISTATE = 1<<20;
+    static const int IGNORE_WM_CHANGEUISTATE = 1<<20;
 
     /* Default size for widgets */
     static const int DEFAULT_WIDTH  = 64;
--- a/rakefile	Mon Mar 23 18:28:04 2009 +0100
+++ b/rakefile	Tue Mar 24 08:48:41 2009 +0100
@@ -1,39 +1,12 @@
-#
-# RSP : Create a response file for the compiler, which lists all files from the packages
-# Compile and create Headers
-# Move objects to unique names
+##########################################################################
+# DWT2
 #
 require 'find'
 require 'fileutils'
 
-#DMD="c:\\project\\dmd-2.026\\dmd\\windows\\bin\\dmd.exe"
-DMD="dmd"
-OBJDIR  =File.expand_path("obj")
-DIMPDIR =File.expand_path("imp")
-LIBDIR  =File.expand_path("lib")
-BINDIR  =File.expand_path("bin")
-RSPNAME =File.expand_path("rsp")
-ALL_RESDIRS= [ "base/res", "res" ]
-
-LOG_STDOUT = File.expand_path("olog.txt")
-LOG_STDERR = File.expand_path("elog.txt")
-
-def isWindows
-    Config::CONFIG['host_os'] =~ /mswin/
-end
-
-if isWindows
-    ALL_RESDIRS << "org.eclipse.swt.win32.win32.x86/res"
-    LIBEXT = ".lib"
-    OBJEXT = ".obj"
-    EXEEXT = ".exe"
-else
-    ALL_RESDIRS << "org.eclipse.swt.gtk.linux.x86/res"
-    LIBEXT = ".a"
-    OBJEXT = ".o"
-    EXEEXT = ""
-end
-
+##########################################################################
+# Helpers
+#
 class String
     def to_path
         if isWindows
@@ -44,8 +17,83 @@
     end
 end
 
+def isWindows
+    Config::CONFIG['host_os'] =~ /mswin/
+end
+
+##########################################################################
+# Constants
+#
+DMD         = "dmd"
+OBJDIR      = File.expand_path("obj")
+DIMPDIR     = File.expand_path("imp")
+LIBDIR      = File.expand_path("lib")
+BINDIR      = File.expand_path("bin")
+RSPNAME     = File.expand_path("rsp")
+ALL_RESDIRS = [ "base/res", "res" ]
+
+LOG_STDOUT  = File.expand_path("olog.txt")
+LOG_STDERR  = File.expand_path("elog.txt")
+
+
+if isWindows
+    BASEDIR_SWT = "org.eclipse.swt.win32.win32.x86"
+    LIBEXT = ".lib"
+    OBJEXT = ".obj"
+    EXEEXT = ".exe"
+else
+    BASEDIR_SWT = "org.eclipse.swt.gtk.linux.x86"
+    LIBEXT = ".a"
+    OBJEXT = ".o"
+    EXEEXT = ""
+end
+
+ALL_RESDIRS << File.join(BASEDIR_SWT, "res" )
+
+if isWindows
+    LIBNAMES_BASIC  = [ "advapi32", "comctl32", "comdlg32", "gdi32", "kernel32",
+                        "shell32", "ole32", "oleaut32", "olepro32", "oleacc",
+                        "user32", "usp10", "msimg32", "opengl32", "shlwapi",
+                        "dwt-base" ]
+
+else
+    LIBNAMES_BASIC  = [ "gtk-x11-2.0", "gdk-x11-2.0", "atk-1.0", "gdk_pixbuf-2.0",
+                        "gthread-2.0", "pangocairo-1.0", "fontconfig", "Xtst",
+                        "Xext", "Xrender", "Xinerama", "Xi", "Xrandr", "Xcursor",
+                        "Xcomposite", "Xdamage", "X11", "Xfixes", "pango-1.0",
+                        "gobject-2.0", "gmodule-2.0", "dl", "glib-2.0", "cairo",
+                        "dwt-base" ]
+
+end
+LIBNAMES_SWT        = [ BASEDIR_SWT ]
+LIBNAMES_EQUINOX    = [ "org.eclipse.osgi",
+                        "org.eclipse.osgi.supplement",
+                        "org.eclipse.equinox.common" ]
+
+LIBNAMES_CORE       = [ "org.eclipse.core.runtime",
+                        "org.eclipse.core.commands",
+                        "org.eclipse.core.jobs" ]
+
+LIBNAMES_JFACE      = [ "org.eclipse.jface" ]
+
+LIBNAMES_JFACETEXT  = [ "org.eclipse.text",
+                        "org.eclipse.jface.text.projection",
+                        "org.eclipse.jface.text", ]
+
+LIBNAMES_UIFORMS    = [ "org.eclipse.ui.forms" ]
+
+LIBNAMES_DRAW2D     = [ "org.eclipse.draw2d" ]
+
+
+##########################################################################
+# Routines
+#
+
 def buildTree( basedir, srcdir, resdir, dcargs=nil, libname=nil )
-    puts "Building #{basedir}/#{srcdir}"
+    if libname == nil
+        libname = basedir
+    end
+    puts "Building #{libname}"
 
     resdir_abs = File.expand_path( File.join( basedir, resdir ))
     srcdir_abs = File.expand_path( File.join( basedir, srcdir ))
@@ -110,9 +158,6 @@
         end
     end
 
-    if libname == nil
-        libname = basedir
-    end
     createLib( libobjs, libname )
 end
 
@@ -133,6 +178,63 @@
 
 end
 
+def buildApp( basedir, srcdir, resdir, dflags, appname, filelist, libnames )
+    puts "Building #{basedir}[#{appname}]"
+    if filelist == nil
+        filelist = FileList[ "**/#{appname}.d" ]
+    end
+
+    srcdir_abs = File.expand_path( File.join( basedir, srcdir))
+    resdir_abs = File.expand_path( File.join( basedir, resdir))
+
+    rsp = File.new( RSPNAME, "w+" )
+    rsp.puts "-I#{srcdir_abs.to_path}"
+    rsp.puts "-I#{DIMPDIR.to_path}"
+    rsp.puts "-J#{resdir_abs.to_path}"
+    if dflags.size > 0 then
+        rsp.puts dflags
+    end
+    ALL_RESDIRS.each do | dir |
+        rsp.puts "-J#{File.expand_path(dir).to_path}"
+    end
+
+    rsp.puts "-L/NOM"
+    libnames.each do | libname |
+        rsp.puts "-L+#{libname}#{LIBEXT}"
+    end
+    rsp.puts "-L+tango-user-dmd.lib"
+    rsp.puts "-L+zlib.lib"
+    rsp.puts "-L+dwt-base.lib"
+    rsp.puts "-L+#{BASEDIR_SWT}.lib"
+    rsp.puts "-L+#{LIBDIR.to_path}\\"
+
+    rsp.puts "-op"
+    rsp.puts "-od#{OBJDIR.to_path}"
+    applfile = File.join(BINDIR,appname+EXEEXT)
+    rsp.puts "-of#{applfile.to_path}"
+    filelist.each do |path|
+        rsp.puts File.expand_path(path).to_path
+    end
+    rsp.close
+
+    Dir.chdir(basedir) do
+        if isWindows
+            cmd = "#{DMD} @#{RSPNAME.to_path}"
+        else
+            cmd = "cat #{RSPNAME.to_path} | xargs #{DMD}"
+        end
+        sh cmd, :verbose => false do |ok, res|
+            if !ok then
+                raise "compile error"
+            end
+        end
+    end
+
+end
+
+##########################################################################
+# Targets
+#
 desc "Clean"
 task :clean do
     puts "Cleaning"
@@ -151,16 +253,7 @@
 
 desc "Build SWT"
 task :swt do
-    if isWindows
-        buildTree( "org.eclipse.swt.win32.win32.x86", "src", "res" )
-    else
-        buildTree( "org.eclipse.swt.gtk.linux.x86", "src", "res" )
-    end
-end
-if isWindows
-    LIBNAMES_SWT = [ "org.eclipse.swt.win32.win32.x86" ]
-else
-    LIBNAMES_SWT = [ "org.eclipse.swt.gtk.linux.x86" ]
+    buildTree( BASEDIR_SWT, "src", "res" )
 end
 
 desc "Build Equinox"
@@ -169,7 +262,6 @@
     buildTree( "org.eclipse.osgi", "supplement/src", "res", nil, "org.eclipse.osgi.supplement")
     buildTree( "org.eclipse.equinox.common", "src", "res" )
 end
-LIBNAMES_EQUINOX = [ "org.eclipse.osgi", "org.eclipse.osgi.supplement", "org.eclipse.equinox.common" ]
 
 desc "Build Eclipse Core"
 task :core do
@@ -177,13 +269,11 @@
     buildTree( "org.eclipse.core.commands", "src", "res" )
     buildTree( "org.eclipse.core.jobs", "src", "res" )
 end
-LIBNAMES_CORE = [ "org.eclipse.core.runtime", "org.eclipse.core.commands", "org.eclipse.core.jobs" ]
 
 desc "Build JFace"
 task :jface do
     buildTree( "org.eclipse.jface", "src", "res" )
 end
-LIBNAMES_JFACE = [ "org.eclipse.jface" ]
 
 desc "Build JFace.Text"
 task :jfacetext do
@@ -191,23 +281,20 @@
     buildTree( "org.eclipse.jface.text", "projection", "res", "-Isrc", "org.eclipse.jface.text.projection" )
     buildTree( "org.eclipse.jface.text", "src", "res" )
 end
-LIBNAMES_JFACETEXT = [ "org.eclipse.text", "org.eclipse.jface.text.projection", "org.eclipse.jface.text", ]
 
 desc "Build UI Forms"
 task :uiforms do
     buildTree( "org.eclipse.ui.forms", "src", "res" )
 end
-LIBNAMES_UIFORMS = [ "org.eclipse.ui.forms" ]
 
 desc "Build Draw2D"
 task :draw2d do
     buildTree( "org.eclipse.draw2d", "src", "res" )
 end
-LIBNAMES_DRAW2D = [ "org.eclipse.draw2d" ]
 
 desc "Build ALL"
 task :all => [ :base, :swt, :equinox, :core, :jface, :jfacetext, :uiforms,
-    :draw2d ]
+    :draw2d, :swtsnippets, :jfacesnippets ]
 
 desc "Clean, then build ALL"
 task :default => [ :clean, :all ]
@@ -266,62 +353,5 @@
     end
 end
 
-LIBNAMES_BASIC = [ "advapi32", "comctl32", "comdlg32", "gdi32", "kernel32",
-    "shell32", "ole32", "oleaut32", "olepro32", "oleacc", "user32", "usp10",
-    "msimg32", "opengl32", "shlwapi", "dwt-base" ]
-
-def buildApp( basedir, srcdir, resdir, dflags, appname, filelist, libnames )
-    if filelist == nil
-        filelist = FileList[ "**/#{appname}.d" ]
-    end
-
-    srcdir_abs = File.expand_path( File.join( basedir, srcdir))
-    resdir_abs = File.expand_path( File.join( basedir, resdir))
-
-    rsp = File.new( RSPNAME, "w+" )
-    rsp.puts "-I#{srcdir_abs.to_path}"
-    rsp.puts "-I#{DIMPDIR.to_path}"
-    rsp.puts "-J#{resdir_abs.to_path}"
-    if dflags.size > 0 then
-        rsp.puts dflags
-    end
-    ALL_RESDIRS.each do | dir |
-        rsp.puts "-J#{File.expand_path(dir).to_path}"
-    end
-
-    rsp.puts "-L/NOM"
-    libnames.each do | libname |
-        rsp.puts "-L+#{libname}#{LIBEXT}"
-    end
-    rsp.puts "-L+tango-user-dmd.lib"
-    rsp.puts "-L+zlib.lib"
-    rsp.puts "-L+dwt-base.lib"
-    rsp.puts "-L+org.eclipse.swt.win32.win32.x86.lib"
-    rsp.puts "-L+#{LIBDIR.to_path}\\"
-
-    rsp.puts "-op"
-    rsp.puts "-od#{OBJDIR.to_path}"
-    applfile = File.join(BINDIR,appname+EXEEXT)
-    rsp.puts "-of#{applfile.to_path}"
-    filelist.each do |path|
-        rsp.puts File.expand_path(path).to_path
-    end
-    rsp.close
-
-    Dir.chdir(basedir) do
-        if isWindows
-            cmd = "#{DMD} @#{RSPNAME.to_path}"
-        else
-            cmd = "cat #{RSPNAME.to_path} | xargs #{DMD}"
-        end
-        sh cmd, :verbose => false do |ok, res|
-            if !ok then
-                raise "compile error"
-            end
-        end
-    end
-
-end
 
 
-