Changeset 15:1bea9f0c6f63

Show
Ignore:
Timestamp:
01/25/08 13:16:45 (7 months ago)
Author:
Frank Benoit <benoit@tionex.de>
branch:
default
Message:

FontData?, Font

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • .hgignore

    r6 r15  
    22 
    33*.obj 
    4 *.a 
     4*.lib 
    55*.swp 
    66*.proto 
  • dwt/dwthelper/Integer.d

    r0 r15  
    1 /** 
     1/** 
    22 * Authors: Frank Benoit <keinfarbton@googlemail.com> 
    33 */ 
     
    88 
    99static import tango.text.convert.Integer; 
     10private import tango.core.Exception; 
    1011 
     12public final class Byte { 
     13    public static byte parseByte( char[] s ){ 
     14        try{ 
     15            int res = tango.text.convert.Integer.parse( s ); 
     16            if( res < byte.min || res > byte.max ){ 
     17                throw new NumberFormatException( "out of range" ); 
     18            } 
     19            return res; 
     20        } 
     21        catch( IllegalArgumentException e ){ 
     22            throw new NumberFormatException( e ); 
     23        } 
     24    } 
     25} 
    1126public final class Integer { 
    1227 
     
    5671 
    5772    public static int parseInt( char[] s, int radix ){ 
    58         return tango.text.convert.Integer.parse( s, cast(uint)radix ); 
     73        try{ 
     74            return tango.text.convert.Integer.parse( s, cast(uint)radix ); 
     75        } 
     76        catch( IllegalArgumentException e ){ 
     77            throw new NumberFormatException( e ); 
     78        } 
    5979    } 
    6080 
    6181    public static int parseInt( char[] s ){ 
    62         return tango.text.convert.Integer.parse( s ); 
     82        try{ 
     83            return tango.text.convert.Integer.parse( s ); 
     84        } 
     85        catch( IllegalArgumentException e ){ 
     86            throw new NumberFormatException( e ); 
     87        } 
    6388    } 
    6489 
  • dwt/dwthelper/utils.d

    r0 r15  
    1 /** 
     1/** 
    22 * Authors: Frank Benoit <keinfarbton@googlemail.com> 
    33 */ 
     
    55 
    66public import dwt.dwthelper.System; 
     7public import Math = tango.math.Math; 
    78 
    89import tango.io.Stdout; 
     10import tango.stdc.stringz; 
     11import tango.text.Util; 
    912import tango.text.Unicode; 
     13import tango.text.convert.Utf; 
     14import tango.core.Exception; 
    1015import tango.stdc.stdlib : exit; 
    1116 
     
    4651} 
    4752 
     53public int indexOf( char[] str, char searched ){ 
     54    int res = tango.text.Util.locate( str, searched ); 
     55    if( res is str.length ) res = -1; 
     56    return res; 
     57} 
     58 
     59public int indexOf( char[] str, char searched, int startpos ){ 
     60    int res = tango.text.Util.locate( str, searched, startpos ); 
     61    if( res is str.length ) res = -1; 
     62    return res; 
     63} 
     64 
     65public int indexOf(char[] str, char[] ch, int start){ 
     66    int res = tango.text.Util.locatePattern( str, ch, start ); 
     67    if( res is str.length ) res = -1; 
     68    return res; 
     69} 
     70 
     71public char[] substring( char[] str, int start ){ 
     72    return str[ start .. $ ].dup; 
     73} 
     74 
     75public char[] substring( char[] str, int start, int end ){ 
     76    return str[ start .. end ].dup; 
     77} 
     78 
     79public wchar[] substring( wchar[] str, int start ){ 
     80    return str[ start .. $ ].dup; 
     81} 
     82 
     83public wchar[] substring( wchar[] str, int start, int end ){ 
     84    return str[ start .. end ].dup; 
     85} 
     86 
     87public char charAt( char[] str, int pos ){ 
     88    return str[ pos ]; 
     89} 
     90 
     91static char[] toHex(uint value, bool prefix = true, int radix = 8){ 
     92    return tango.text.convert.Integer.toString(  
     93            value,  
     94            radix is 10 ? tango.text.convert.Integer.Style.Signed : 
     95            radix is  8 ? tango.text.convert.Integer.Style.Octal  : 
     96            radix is 16 ? tango.text.convert.Integer.Style.Hex    : 
     97                          tango.text.convert.Integer.Style.Signed, 
     98            prefix ? tango.text.convert.Integer.Flags.Prefix : tango.text.convert.Integer.Flags.None 
     99            ); 
     100} 
     101 
     102class NumberFormatException : IllegalArgumentException { 
     103    this( char[] e ){ 
     104        super(e); 
     105    } 
     106    this( TracedException e ){ 
     107        super(e.toString); 
     108    } 
     109} 
     110 
     111 
     112 
     113 
     114 
     115 
  • dwt/graphics/Device.d

    r14 r15  
    1212 
    1313//PORTING_TYPE 
     14import dwt.internal.win32.OS; 
    1415class Device{ 
     16    static Device getDevice(); 
     17    void new_Object (Object object); 
     18    bool tracking; 
     19    public bool isDisposed () ; 
     20    void dispose_Object (Object object) ; 
     21    float computePoints(LOGFONT* logFont, HFONT hFont); 
     22    int computePixels(float height) ; 
    1523} 
    1624/+++ 
  • dwt/internal/win32/OS.d

    <
    r3 r15  
    1313public import dwt.internal.win32.WINTYPES; 
    1414private import dwt.internal.win32.WINAPI; 
     15alias dwt.internal.win32.WINAPI WINAPI; 
    1516 
    1617import dwt.internal.C; 
     
    1819 
    1920public class OS : C { 
     21 
     22    private static int getNOTIFYICONDATAA_V2_SIZE (){ 
     23        // hm, NOTIFYICONDATAA.dwInfoFlags.offsetof did not compile 
     24        return IsWinCE ? NOTIFYICONDATAA.sizeof : cast(int)(&(cast(NOTIFYICONDATAA*)null).dwInfoFlags) + int.sizeof; 
     25    } 
     26 
     27    private static int getNOTIFYICONDATAW_V2_SIZE (){ 
     28        return IsWinCE ? NOTIFYICONDATAW.sizeof : cast(int)(&(cast(NOTIFYICONDATAW*)null).dwInfoFlags) + int.sizeof; 
     29    } 
     30 
    2031    /* 
    2132    * DWT Windows flags 
     
    6677    public static const int LANG_KOREAN = 0x12; 
    6778    public static const int MAX_PATH = 260; 
     79 
     80    static this(){ 
     81        NOTIFYICONDATAA_V2_SIZE = getNOTIFYICONDATAA_V2_SIZE (); 
     82        NOTIFYICONDATAW_V2_SIZE = getNOTIFYICONDATAW_V2_SIZE (); 
     83        NOTIFYICONDATA_V2_SIZE = IsUnicode ? getNOTIFYICONDATAW_V2_SIZE : getNOTIFYICONDATAA_V2_SIZE; 
     84        OSVERSIONINFO info; 
     85        IsWin32s = (info.dwPlatformId is VER_PLATFORM_WIN32s); 
     86        IsWin95 = (info.dwPlatformId is VER_PLATFORM_WIN32_WINDOWS); 
     87        IsWinNT = (info.dwPlatformId is VER_PLATFORM_WIN32_NT); 
     88        IsSP_ = false; 
     89        IsPPC_ = false; 
     90        IsHPC = false; 
     91        IsDBLocale = false; 
     92        WIN32_MAJOR = info.dwMajorVersion; 
     93        WIN32_MINOR = info.dwMinorVersion; 
     94        WIN32_VERSION = VERSION (WIN32_MAJOR, WIN32_MINOR); 
     95        //IsUnicode = !IsWin32s && !IsWin95; 
     96        DLLVERSIONINFO dvi; 
     97        COMCTL32_MAJOR = dvi.dwMajorVersion; 
     98        COMCTL32_MINOR = dvi.dwMinorVersion; 
     99        COMCTL32_VERSION = VERSION (COMCTL32_MAJOR, COMCTL32_MINOR); 
     100        SHELL32_MAJOR = dvi.dwMajorVersion; 
     101        SHELL32_MINOR = dvi.dwMinorVersion; 
     102        SHELL32_VERSION = VERSION (SHELL32_MAJOR, SHELL32_MINOR); 
     103    } 
     104//PORTING_LEFT 
    68105/++ 
    69106    /* Get the Windows version and the flags */ 
     
    215252        SHELL32_VERSION = VERSION (SHELL32_MAJOR, SHELL32_MINOR); 
    216253    } 
     254++/ 
    217255 
    218256    /* Flag used on WinCE */ 
     
    11701208    public static const int NM_RELEASEDCAPTURE = NM_FIRST - 16; 
    11711209    public static const int NM_RETURN = 0xfffffffc; 
    1172     public static const int NOTIFYICONDATAA_V2_SIZE = NOTIFYICONDATAA_V2_SIZE ()
    1173     public static const int NOTIFYICONDATAW_V2_SIZE = NOTIFYICONDATAW_V2_SIZE ()
    1174     public static const int NOTIFYICONDATA_V2_SIZE = IsUnicode ? NOTIFYICONDATAW_V2_SIZE : NOTIFYICONDATAA_V2_SIZE; 
     1210    public static int NOTIFYICONDATAA_V2_SIZE
     1211    public static int NOTIFYICONDATAW_V2_SIZE
     1212    public static int NOTIFYICONDATA_V2_SIZE; 
    11751213    public static const int NOTSRCCOPY = 0x330008; 
    11761214    public static const int NULLREGION = 0x1; 
     
    20072045    public static const int WS_CAPTION = 0xc00000; 
    20082046    public static const int WS_CHILD = 0x40000000; 
     2047    public static const int WS_MINIMIZE = 0x20000000; //PORTING_TODO: from dwt, why? 
    20092048    public static const int WS_CLIPCHILDREN = 0x2000000; 
    20102049    public static const int WS_CLIPSIBLINGS = 0x4000000; 
     
    20422081    public static const int XBUTTON2 = 0x2; 
    20432082     
    2044 public static int VERSION (int major, int minor) { 
    2045     return major << 16 | minor; 
    2046 
    2047  
    2048  
     2083 
     2084//PORTING_LEFT 
     2085/++ 
    20492086/** Ansi/Unicode wrappers */ 
    20502087 
     
    35203557public static final native BOOL MoveToEx (int /*long*/ hdc, int x1, int x2, int /*long*/ lPoint); 
    35213558public static final native int MsgWaitForMultipleObjectsEx (int nCount, int /*long*/ pHandles, int dwMilliseconds, int dwWakeMask, int dwFlags); 
    3522 public static final native int MultiByteToWideChar (int CodePage, int dwFlags, byte [] lpMultiByteStr, int cchMultiByte, char [] lpWideCharStr, int cchWideChar); 
    3523 public static final native int MultiByteToWideChar (int CodePage, int dwFlags, int /*long*/ lpMultiByteStr, int cchMultiByte, char [] lpWideCharStr, int cchWideChar); 
     3559//alias WINAPI.MultiByteToWideChar MultiByteToWideChar; 
    35243560public static final native void NotifyWinEvent (int event, int /*long*/ hwnd, int idObject, int idChild); 
    35253561public static final native BOOL OffsetRect (RECT lprc, int dx, int dy); 
     
    37723808public static final native int VtblCall (int fnNumber, int /*long*/ ppVtbl, char[] arg0, int arg1, int arg2, int[] arg3, int[] arg4); 
    37733809 
    3774 public static final native BOOL WaitMessage (); 
    3775 public static final native int WideCharToMultiByte (int CodePage, int dwFlags, char [] lpWideCharStr, int cchWideChar, byte [] lpMultiByteStr, int cchMultiByte, byte [] lpDefaultChar, BOOL [] lpUsedDefaultChar); 
    3776 public static final native int WideCharToMultiByte (int CodePage, int dwFlags, char [] lpWideCharStr, int cchWideChar, int /*long*/ lpMultiByteStr, int cchMultiByte, byte [] lpDefaultChar, BOOL [] lpUsedDefaultChar); 
    3777 public static final native int /*long*/ WindowFromDC (int /*long*/ hDC); 
    3778 public static final native int /*long*/ WindowFromPoint (POINT lpPoint); 
    3779 public static final native int wcslen (int /*long*/ string); 
    37803810++/ 
    3781 
     3811 
     3812/** Ansi/Unicode wrappers */ 
     3813// Unicode/Ansi alias 
     3814version(ANSI) { 
     3815    alias WINAPI.CallWindowProcA CallWindowProc; 
     3816    alias WINAPI.CharLowerA CharLower; 
     3817    alias WINAPI.CharUpperA CharUpper; 
     3818    alias WINAPI.ChooseColorA ChooseColor; 
     3819    alias WINAPI.ChooseFontA ChooseFont; 
     3820    alias WINAPI.CreateAcceleratorTableA CreateAcceleratorTable; 
     3821    alias WINAPI.CreateDCA CreateDC; 
     3822    alias WINAPI.CreateEventA CreateEvent; 
     3823    alias WINAPI.CreateFileA CreateFile; 
     3824    alias WINAPI.CreateFontIndirectA CreateFontIndirect; 
     3825    alias WINAPI.CreateWindowExA CreateWindowEx; 
     3826    alias WINAPI.DefFrameProcA DefFrameProc; 
     3827    alias WINAPI.DefMDIChildProcA DefMDIChildProc; 
     3828    alias WINAPI.DefWindowProcA DefWindowProc; 
     3829    alias WINAPI.DeleteFileA DeleteFile; 
     3830    alias WINAPI.DispatchMessageA DispatchMessage; 
     3831    alias WINAPI.DragQueryFileA DragQueryFile; 
     3832    alias WINAPI.DrawStateA DrawState; 
     3833    alias WINAPI.DrawTextA DrawText; 
     3834    alias WINAPI.EnumFontFamiliesExA EnumFontFamiliesEx; 
     3835    alias WINAPI.EnumFontFamiliesA EnumFontFamilies; 
     3836    alias WINAPI.EnumSystemLanguageGroupsA EnumSystemLanguageGroups; 
     3837    alias WINAPI.EnumSystemLocalesA EnumSystemLocales; 
     3838    alias WINAPI.ExpandEnvironmentStringsA ExpandEnvironmentStrings; 
     3839    alias WINAPI.ExtTextOutA ExtTextOut; 
     3840    alias WINAPI.ExtractIconExA ExtractIconEx; 
     3841    alias WINAPI.FindResourceA FindResource; 
     3842    alias WINAPI.FindWindowA FindWindow; 
     3843    alias WINAPI.FormatMessageA FormatMessage; 
     3844    alias WINAPI.GetCharABCWidthsA GetCharABCWidths; 
     3845    alias WINAPI.GetCharWidthA GetCharWidth; 
     3846    alias WINAPI.GetCharacterPlacementA GetCharacterPlacement; 
     3847    alias WINAPI.GetClassInfoA GetClassInfo; 
     3848    alias WINAPI.GetClipboardFormatNameA GetClipboardFormatName; 
     3849    alias WINAPI.GetKeyNameTextA GetKeyNameText; 
     3850    alias WINAPI.GetLocaleInfoA GetLocaleInfo; 
     3851    alias WINAPI.GetMenuItemInfoA GetMenuItemInfo; 
     3852    alias WINAPI.GetMessageA GetMessage; 
     3853    alias WINAPI.GetModuleFileNameA GetModuleFileName; 
     3854    alias WINAPI.GetModuleHandleA GetModuleHandle; 
     3855    alias WINAPI.GetMonitorInfoA GetMonitorInfo; 
     3856    alias WINAPI.GetObjectA GetObject; 
     3857    alias WINAPI.GetOpenFileNameA GetOpenFileName; 
     3858    alias WINAPI.GetProfileStringA _GetProfileString; 
     3859    alias WINAPI.GetSaveFileNameA GetSaveFileName; 
     3860    alias WINAPI.GetTextExtentPoint32A GetTextExtentPoint32; 
     3861    alias WINAPI.GetTextMetricsA GetTextMetrics; 
     3862    alias WINAPI.GetVersionExA GetVersionEx; 
     3863    alias WINAPI.GetWindowLongA GetWindowLong; 
     3864    alias WINAPI.GetWindowTextA _GetWindowText; 
     3865    alias WINAPI.GetWindowTextLengthA GetWindowTextLength; 
     3866    alias WINAPI.ImmGetCompositionFontA ImmGetCompositionFont; 
     3867    alias WINAPI.ImmGetCompositionStringA ImmGetCompositionString; 
     3868    alias WINAPI.ImmSetCompositionFontA ImmSetCompositionFont; 
     3869    alias WINAPI.InsertMenuA InsertMenu; 
     3870    alias WINAPI.InsertMenuItemA InsertMenuItem; 
     3871    alias WINAPI.LoadBitmapA LoadBitmap; 
     3872    alias WINAPI.LoadCursorA LoadCursor; 
     3873    alias WINAPI.LoadIconA LoadIcon; 
     3874    alias WINAPI.LoadImageA LoadImage; 
     3875    alias WINAPI.LoadLibraryA LoadLibrary; 
     3876    alias WINAPI.LoadStringA LoadString; 
     3877    alias WINAPI.MapVirtualKeyA MapVirtualKey; 
     3878    alias WINAPI.MessageBoxA MessageBox; 
     3879    alias WINAPI.OutputDebugStringA OutputDebugString; 
     3880    alias WINAPI.PeekMessageA PeekMessage; 
     3881    alias WINAPI.PostMessageA PostMessage; 
     3882    alias WINAPI.PostThreadMessageA PostThreadMessage; 
     3883    alias WINAPI.PrintDlgA PrintDlg; 
     3884    alias WINAPI.RegEnumKeyExA RegEnumKeyEx; 
     3885    alias WINAPI.RegOpenKeyExA RegOpenKeyEx; 
     3886    alias WINAPI.RegQueryInfoKeyA RegQueryInfoKey; 
     3887    alias WINAPI.RegQueryValueExA RegQueryValueEx; 
     3888    alias WINAPI.RegisterClassA RegisterClass; 
     3889    alias WINAPI.RegisterClipboardFormatA RegisterClipboardFormat; 
     3890    alias WINAPI.RegisterWindowMessageA RegisterWindowMessage; 
     3891    alias WINAPI.SHBrowseForFolderA SHBrowseForFolder; 
     3892    alias WINAPI.SHGetPathFromIDListA SHGetPathFromIDList; 
     3893    alias WINAPI.SendMessageA SendMessage; 
     3894    alias WINAPI.SetMenuItemInfoA SetMenuItemInfo; 
     3895    alias WINAPI.SetWindowLongA SetWindowLong; 
     3896    alias WINAPI.SetWindowTextA SetWindowText; 
     3897    alias WINAPI.SetWindowsHookExA SetWindowsHookEx; 
     3898    alias WINAPI.ShellExecuteExA ShellExecuteEx; 
     3899    alias WINAPI.Shell_NotifyIconA Shell_NotifyIcon; 
     3900    alias WINAPI.StartDocA StartDoc; 
     3901    alias WINAPI.SystemParametersInfoA SystemParametersInfo; 
     3902    alias WINAPI.TranslateAcceleratorA TranslateAccelerator; 
     3903    alias WINAPI.UnregisterClassA UnregisterClass; 
     3904    alias WINAPI.VkKeyScanA VkKeyScan; 
     3905}else{ 
     3906    alias WINAPI.CallWindowProcW CallWindowProc; 
     3907    alias WINAPI.CharLowerW CharLower; 
     3908    alias WINAPI.CharUpperW CharUpper; 
     3909    alias WINAPI.ChooseColorW ChooseColor; 
     3910    alias WINAPI.ChooseFontW ChooseFont; 
     3911    alias WINAPI.CreateAcceleratorTableW CreateAcceleratorTable; 
     3912    alias WINAPI.CreateDCW CreateDC; 
     3913    alias WINAPI.CreateEventW CreateEvent; 
     3914    alias WINAPI.CreateFileW CreateFile; 
     3915    alias WINAPI.CreateFontIndirectW CreateFontIndirect; 
     3916    alias WINAPI.CreateWindowExW CreateWindowEx; 
     3917    alias WINAPI.DefFrameProcW DefFrameProc; 
     3918    alias WINAPI.DefMDIChildProcW DefMDIChildProc; 
     3919    alias WINAPI.DefWindowProcW DefWindowProc; 
     3920    alias WINAPI.DeleteFileW DeleteFile; 
     3921    alias WINAPI.DispatchMessageW DispatchMessage; 
     3922    alias WINAPI.DragQueryFileW DragQueryFile; 
     3923    alias WINAPI.DrawStateW DrawState; 
     3924    alias WINAPI.DrawTextW DrawText; 
     3925    alias WINAPI.EnumFontFamiliesExW EnumFontFamiliesEx; 
     3926    alias WINAPI.EnumFontFamiliesW EnumFontFamilies; 
     3927    alias WINAPI.EnumSystemLanguageGroupsW EnumSystemLanguageGroups; 
     3928    alias WINAPI.EnumSystemLocalesW EnumSystemLocales; 
     3929    alias WINAPI.ExpandEnvironmentStringsW ExpandEnvironmentStrings; 
     3930    alias WINAPI.ExtTextOutW ExtTextOut; 
     3931    alias WINAPI.ExtractIconExW ExtractIconEx; 
     3932    alias WINAPI.FindResourceW FindResource; 
     3933    alias WINAPI.FindWindowW FindWindow; 
     3934    alias WINAPI.FormatMessageW FormatMessage; 
     3935    alias WINAPI.GetCharABCWidthsW GetCharABCWidths; 
     3936    alias WINAPI.GetCharWidthW GetCharWidth; 
     3937    alias WINAPI.GetCharacterPlacementW GetCharacterPlacement; 
     3938    alias WINAPI.GetClassInfoW GetClassInfo; 
     3939    alias WINAPI.GetClipboardFormatNameW GetClipboardFormatName; 
     3940    alias WINAPI.GetKeyNameTextW GetKeyNameText; 
     3941    alias WINAPI.GetLocaleInfoW GetLocaleInfo; 
     3942    alias WINAPI.GetMenuItemInfoW GetMenuItemInfo; 
     3943    alias WINAPI.GetMessageW GetMessage; 
     3944    alias WINAPI.GetModuleFileNameW GetModuleFileName; 
     3945    alias WINAPI.GetModuleHandleW GetModuleHandle; 
     3946    alias WINAPI.GetMonitorInfoW GetMonitorInfo; 
     3947    alias WINAPI.GetObjectW GetObject; 
     3948    alias WINAPI.GetOpenFileNameW GetOpenFileName; 
     3949    alias WINAPI.GetProfileStringW _GetProfileString; 
     3950    alias WINAPI.GetSaveFileNameW GetSaveFileName; 
     3951    alias WINAPI.GetTextExtentPoint32W GetTextExtentPoint32; 
     3952    alias WINAPI.GetTextMetricsW GetTextMetrics; 
     3953    alias WINAPI.GetVersionExW GetVersionEx; 
     3954    alias WINAPI.GetWindowLongW GetWindowLong; 
     3955    alias WINAPI.GetWindowTextW _GetWindowText; 
     3956    alias WINAPI.GetWindowTextLengthW GetWindowTextLength; 
     3957    alias WINAPI.ImmGetCompositionFontW ImmGetCompositionFont; 
     3958    alias WINAPI.ImmGetCompositionStringW ImmGetCompositionString; 
     3959    alias WINAPI.ImmSetCompositionFontW ImmSetCompositionFont; 
     3960    alias WINAPI.InsertMenuW InsertMenu; 
     3961    alias WINAPI.InsertMenuItemW InsertMenuItem; 
     3962    alias WINAPI.LoadBitmapW LoadBitmap; 
     3963    alias WINAPI.LoadCursorW LoadCursor; 
     3964    alias WINAPI.LoadIconW LoadIcon; 
     3965    alias WINAPI.LoadImageW LoadImage; 
     3966    alias WINAPI.LoadLibraryW LoadLibrary; 
     3967    alias WINAPI.LoadStringW LoadString; 
     3968    alias WINAPI.MapVirtualKeyW MapVirtualKey; 
     3969    alias WINAPI.MessageBoxW MessageBox; 
     3970    alias WINAPI.OutputDebugStringW OutputDebugString; 
     3971    alias WINAPI.PeekMessageW PeekMessage; 
     3972    alias WINAPI.PostMessageW PostMessage; 
     3973    alias WINAPI.PostThreadMessageW PostThreadMessage; 
     3974    alias WINAPI.PrintDlgW PrintDlg; 
     3975    alias WINAPI.RegEnumKeyExW RegEnumKeyEx; 
     3976    alias WINAPI.RegOpenKeyExW RegOpenKeyEx; 
     3977    alias WINAPI.RegQueryInfoKeyW RegQueryInfoKey; 
     3978    alias WINAPI.RegQueryValueExW RegQueryValueEx; 
     3979    alias WINAPI.RegisterClassW RegisterClass; 
     3980    alias WINAPI.RegisterClipboardFormatW RegisterClipboardFormat; 
     3981    alias WINAPI.RegisterWindowMessageW RegisterWindowMessage; 
     3982    alias WINAPI.SHBrowseForFolderW SHBrowseForFolder; 
     3983    alias WINAPI.SHGetPathFromIDListW SHGetPathFromIDList; 
     3984    alias WINAPI.SendMessageW SendMessage; 
     3985    alias WINAPI.SetMenuItemInfoW SetMenuItemInfo; 
     3986    alias WINAPI.SetWindowLongW SetWindowLong; 
     3987    alias WINAPI.SetWindowTextW SetWindowText; 
     3988    alias WINAPI.SetWindowsHookExW SetWindowsHookEx; 
     3989    alias WINAPI.ShellExecuteExW ShellExecuteEx; 
     3990    alias WINAPI.Shell_NotifyIconW Shell_NotifyIcon; 
     3991    alias WINAPI.StartDocW StartDoc; 
     3992    alias WINAPI.SystemParametersInfoW SystemParametersInfo; 
     3993    alias WINAPI.TranslateAcceleratorW TranslateAccelerator; 
     3994    alias WINAPI.UnregisterClassW UnregisterClass; 
     3995    alias WINAPI.VkKeyScanW VkKeyScan; 
     3996
     3997     
     3998     
     3999     
     4000     
     4001     
     4002     
     4003/** All Natives */ 
     4004alias WINAPI.AbortDoc AbortDoc; 
     4005alias WINAPI.ActivateKeyboardLayout ActivateKeyboardLayout; 
     4006alias WINAPI.AdjustWindowRectEx AdjustWindowRectEx; 
     4007alias WINAPI.Arc Arc; 
     4008alias WINAPI.BeginDeferWindowPos BeginDeferWindowPos; 
     4009alias WINAPI.BeginPaint BeginPaint; 
     4010alias WINAPI.BitBlt BitBlt; 
     4011alias WINAPI.BringWindowToTop BringWindowToTop; 
     4012alias WINAPI.CallNextHookEx CallNextHookEx; 
     4013alias WINAPI.CallWindowProcA CallWindowProcA; 
     4014alias WINAPI.CallWindowProcW CallWindowProcW; 
     4015alias WINAPI.CharLowerA CharLowerA; 
     4016alias WINAPI.CharLowerW CharLowerW; 
     4017alias WINAPI.CharUpperA CharUpperA; 
     4018alias WINAPI.CharUpperW CharUpperW; 
     4019alias WINAPI.CheckMenuItem CheckMenuItem; 
     4020alias WINAPI.ChooseColorA ChooseColorA; 
     4021alias WINAPI.ChooseColorW ChooseColorW; 
     4022alias WINAPI.ChooseFontA ChooseFontA; 
     4023alias WINAPI.ChooseFontW ChooseFontW; 
     4024alias WINAPI.ClientToScreen ClientToScreen; 
     4025alias WINAPI.CloseHandle CloseHandle; 
     4026alias WINAPI.CloseClipboard CloseClipboard; 
     4027alias WINAPI.CombineRgn CombineRgn; 
     4028alias WINAPI.CommDlgExtendedError CommDlgExtendedError; 
     4029 
     4030version(WinCE){ 
     4031alias WINAPI.CommandBar_AddAdornments CommandBar_AddAdornments; 
     4032alias WINAPI.CommandBar_Create CommandBar_Create; 
     4033alias WINAPI.CommandBar_Destroy CommandBar_Destroy; 
     4034alias WINAPI.CommandBar_DrawMenuBar CommandBar_DrawMenuBar; 
     4035alias WINAPI.CommandBar_Height CommandBar_Height; 
     4036alias WINAPI.CommandBar_InsertMenubarEx CommandBar_InsertMenubarEx; 
     4037alias WINAPI.CommandBar_Show CommandBar_Show; 
     4038
     4039 
     4040alias WINAPI.CopyImage CopyImage; 
     4041alias WINAPI.CreateAcceleratorTableA CreateAcceleratorTableA; 
     4042alias WINAPI.CreateAcceleratorTableW CreateAcceleratorTableW; 
     4043alias WINAPI.CreateBitmap CreateBitmap; 
     4044alias WINAPI.CreateCaret CreateCaret; 
     4045alias WINAPI.CreateCompatibleBitmap CreateCompatibleBitmap; 
     4046alias WINAPI.CreateCompatibleDC CreateCompatibleDC; 
     4047alias WINAPI.CreateCursor CreateCursor; 
     4048alias WINAPI.CreateDCA CreateDCA; 
     4049alias WINAPI.CreateDCW CreateDCW; 
     4050alias WINAPI.CreateDIBSection CreateDIBSection; 
     4051alias WINAPI.CreateEventA CreateEventA; 
     4052alias WINAPI.CreateEventW CreateEventW; 
     4053alias WINAPI.CreateFileA CreateFileA; 
     4054alias WINAPI.CreateFileW CreateFileW; 
     4055alias WINAPI.CreateFontIndirectA CreateFontIndirectA; 
     4056alias WINAPI.CreateFontIndirectW CreateFontIndirectW; 
     4057alias WINAPI.CreateIconIndirect CreateIconIndirect; 
     4058alias WINAPI.CreateMenu CreateMenu; 
     4059alias WINAPI.CreatePalette CreatePalette; 
     4060alias WINAPI.CreatePatternBrush CreatePatternBrush; 
     4061alias WINAPI.CreatePen CreatePen; 
     4062alias WINAPI.CreatePolygonRgn CreatePolygonRgn; 
     4063alias WINAPI.CreatePopupMenu CreatePopupMenu; 
     4064alias WINAPI.CreateRectRgn CreateRectRgn; 
     4065alias WINAPI.CreateSolidBrush CreateSolidBrush; 
     4066alias WINAPI.CreateWindowExA CreateWindowExA; 
     4067alias WINAPI.CreateWindowExW CreateWindowExW; 
     4068alias WINAPI.DefFrameProcA DefFrameProcA; 
     4069alias WINAPI.DefFrameProcW DefFrameProcW; 
     4070alias WINAPI.DefMDIChildProcA DefMDIChildProcA; 
     4071alias WINAPI.DefMDIChildProcW DefMDIChildProcW; 
     4072alias WINAPI.DefWindowProcA DefWindowProcA; 
     4073alias WINAPI.DefWindowProcW DefWindowProcW; 
     4074alias WINAPI.DeferWindowPos DeferWindowPos; 
     4075alias WINAPI.DeleteDC DeleteDC; 
     4076alias WINAPI.DeleteMenu DeleteMenu; 
     4077alias WINAPI.DeleteObject DeleteObject; 
     4078alias WINAPI.DestroyAcceleratorTable DestroyAcceleratorTable; 
     4079alias WINAPI.DestroyCaret DestroyCaret; 
     4080alias WINAPI.DestroyCursor DestroyCursor; 
     4081alias WINAPI.DestroyIcon DestroyIcon; 
     4082alias WINAPI.DestroyMenu DestroyMenu; 
     4083alias WINAPI.DestroyWindow DestroyWindow; 
     4084alias WINAPI.DispatchMessageA DispatchMessageA; 
     4085alias WINAPI.DispatchMessageW DispatchMessageW; 
     4086alias WINAPI.DragDetect DragDetect; 
     4087alias WINAPI.DragFinish DragFinish; 
     4088alias WINAPI.DragQueryFileA DragQueryFileA; 
     4089alias WINAPI.DragQueryFileW DragQueryFileW; 
     4090alias WINAPI.DrawEdge DrawEdge; 
     4091alias WINAPI.DrawFocusRect DrawFocusRect; 
     4092alias WINAPI.DrawFrameControl DrawFrameControl; 
     4093alias WINAPI.DrawIconEx DrawIconEx; 
     4094alias WINAPI.DrawMenuBar DrawMenuBar; 
     4095alias WINAPI.DrawStateA DrawStateA; 
     4096alias WINAPI.DrawStateW DrawStateW; 
     4097alias WINAPI.DrawTextA DrawTextA; 
     4098alias WINAPI.DrawTextW DrawTextW; 
     4099alias WINAPI.Ellipse Ellipse; 
     4100alias WINAPI.EnableMenuItem EnableMenuItem; 
     4101alias WINAPI.EnableScrollBar EnableScrollBar; 
     4102alias WINAPI.EnableWindow EnableWindow; 
     4103alias WINAPI.EndDeferWindowPos EndDeferWindowPos; 
     4104alias WINAPI.EndDoc EndDoc; 
     4105alias WINAPI.EndPage EndPage; 
     4106alias WINAPI.EndPaint EndPaint; 
     4107alias WINAPI.EnumDisplayMonitors EnumDisplayMonitors; 
     4108alias WINAPI.EnumFontFamiliesA EnumFontFamiliesA; 
     4109alias WINAPI.EnumFontFamiliesExA EnumFontFamiliesExA; 
     4110alias WINAPI.EnumFontFamiliesExW EnumFontFamiliesExW; 
     4111alias WINAPI.EnumFontFamiliesW EnumFontFamiliesW; 
     4112alias WINAPI.EnumSystemLanguageGroupsA EnumSystemLanguageGroupsA; 
     4113alias WINAPI.EnumSystemLanguageGroupsW EnumSystemLanguageGroupsW; 
     4114alias WINAPI.EnumSystemLocalesA EnumSystemLocalesA; 
     4115alias WINAPI.EnumSystemLocalesW EnumSystemLocalesW; 
     4116alias WINAPI.EqualRect EqualRect; 
     4117alias WINAPI.EqualRgn EqualRgn; 
     4118alias WINAPI.ExpandEnvironmentStringsA ExpandEnvironmentStringsA; 
     4119alias WINAPI.ExpandEnvironmentStringsW ExpandEnvironmentStringsW; 
     4120alias WINAPI.ExtTextOutA ExtTextOutA; 
     4121alias WINAPI.ExtTextOutW ExtTextOutW; 
     4122alias WINAPI.ExtractIconExA ExtractIconExA; 
     4123alias WINAPI.ExtractIconExW ExtractIconExW; 
     4124alias WINAPI.FillRect FillRect; 
     4125alias WINAPI.FindResourceA FindResourceA; 
     4126alias WINAPI.FindResourceW FindResourceW; 
     4127alias WINAPI.FindWindowA FindWindowA; 
     4128alias WINAPI.FindWindowW FindWindowW; 
     4129alias WINAPI.FormatMessageA FormatMessageA; 
     4130alias WINAPI.FormatMessageW FormatMessageW; 
     4131alias WINAPI.FreeLibrary FreeLibrary; 
     4132alias WINAPI.GdiSetBatchLimit GdiSetBatchLimit; 
     4133alias WINAPI.GetACP GetACP; 
     4134alias WINAPI.GetActiveWindow GetActiveWindow; 
     4135alias WINAPI.GetBkColor GetBkColor; 
     4136alias WINAPI.GetCapture GetCapture; 
     4137alias WINAPI.GetCaretPos GetCaretPos; 
     4138alias WINAPI.GetCharABCWidthsA GetCharABCWidthsA; 
     4139alias WINAPI.GetCharABCWidthsW GetCharABCWidthsW; 
     4140alias WINAPI.GetCharWidthA GetCharWidthA; 
     4141alias WINAPI.GetCharWidthW GetCharWidthW; 
     4142alias WINAPI.GetCharacterPlacementA GetCharacterPlacementA; 
     4143alias WINAPI.GetCharacterPlacementW GetCharacterPlacementW; 
     4144alias WINAPI.GetClassInfoA GetClassInfoA; 
     4145alias WINAPI.GetClassInfoW GetClassInfoW; 
     4146alias WINAPI.GetClientRect GetClientRect; 
     4147alias WINAPI.GetClipBox GetClipBox; 
     4148alias WINAPI.GetClipRgn GetClipRgn; 
     4149alias WINAPI.GetClipboardData GetClipboardData; 
     4150alias WINAPI.GetClipboardFormatNameA GetClipboardFormatNameA; 
     4151alias WINAPI.GetClipboardFormatNameW GetClipboardFormatNameW; 
     4152alias WINAPI.GetComboBoxInfo GetComboBoxInfo; 
     4153alias WINAPI.GetCurrentObject GetCurrentObject; 
     4154alias WINAPI.GetCurrentProcessId GetCurrentProcessId; 
     4155alias WINAPI.GetCurrentThreadId GetCurrentThreadId; 
     4156alias WINAPI.GetCursor GetCursor; 
     4157alias WINAPI.GetCursorPos GetCursorPos; 
     4158alias WINAPI.GetDC GetDC; 
     4159alias WINAPI.GetDCEx GetDCEx; 
     4160alias WINAPI.GetDIBColorTable GetDIBColorTable; 
     4161alias WINAPI.GetDIBits GetDIBits; 
     4162alias WINAPI.GetDesktopWindow GetDesktopWindow; 
     4163alias WINAPI.GetDeviceCaps GetDeviceCaps; 
     4164alias WINAPI.GetDialogBaseUnits GetDialogBaseUnits; 
     4165alias WINAPI.GetDlgItem GetDlgItem; 
     4166alias WINAPI.GetDoubleClickTime GetDoubleClickTime; 
     4167alias WINAPI.GetFocus GetFocus; 
     4168alias WINAPI.GetFontLanguageInfo GetFontLanguageInfo; 
     4169alias WINAPI.GetGUIThreadInfo GetGUIThreadInfo; 
     4170alias WINAPI.GetIconInfo GetIconInfo; 
     4171alias WINAPI.GetKeyNameTextA GetKeyNameTextA; 
     4172alias WINAPI.GetKeyNameTextW GetKeyNameTextW; 
     4173alias WINAPI.GetKeyState GetKeyState; 
     4174alias WINAPI.GetKeyboardLayout GetKeyboardLayout; 
     4175alias WINAPI.GetKeyboardLayoutList GetKeyboardLayoutList; 
     4176alias WINAPI.GetKeyboardState GetKeyboardState; 
     4177alias WINAPI.GetLastActivePopup GetLastActivePopup; 
     4178alias WINAPI.GetLastError GetLastError; 
     4179alias WINAPI.GetLayout GetLayout; 
     4180alias WINAPI.GetLocaleInfoA GetLocaleInfoA; 
     4181alias WINAPI.GetLocaleInfoW GetLocaleInfoW; 
     4182alias WINAPI.GetMenu GetMenu; 
     4183alias WINAPI.GetMenuBarInfo GetMenuBarInfo; 
     4184alias WINAPI.GetMenuDefaultItem GetMenuDefaultItem; 
     4185alias WINAPI.GetMenuInfo GetMenuInfo; 
     4186alias WINAPI.GetMenuItemCount GetMenuItemCount; 
     4187alias WINAPI.GetMenuItemInfoA GetMenuItemInfoA; 
     4188alias WINAPI.GetMenuItemInfoW GetMenuItemInfoW; 
     4189alias WINAPI.GetMenuItemRect GetMenuItemRect; 
     4190alias WINAPI.GetMessageA GetMessageA; 
     4191alias WINAPI.GetMessagePos GetMessagePos; 
     4192alias WINAPI.GetMessageTime GetMessageTime; 
     4193alias WINAPI.GetMessageW GetMessageW; 
     4194alias WINAPI.GetModuleFileNameA GetModuleFileNameA; 
     4195alias WINAPI.GetModuleFileNameW GetModuleFileNameW; 
     4196alias WINAPI.GetModuleHandleA GetModuleHandleA; 
     4197alias WINAPI.GetModuleHandleW GetModuleHandleW; 
     4198alias WINAPI.GetMonitorInfoA GetMonitorInfoA; 
     4199alias WINAPI.GetMonitorInfoW GetMonitorInfoW; 
     4200alias WINAPI.GetNearestPaletteIndex GetNearestPaletteIndex; 
     4201alias WINAPI.GetObjectA GetObjectA; 
     4202alias WINAPI.GetObjectW GetObjectW; 
     4203alias WINAPI.GetOpenFileNameA GetOpenFileNameA; 
     4204alias WINAPI.GetOpenFileNameW GetOpenFileNameW; 
     4205alias WINAPI.GetPaletteEntries GetPaletteEntries; 
     4206alias WINAPI.GetParent GetParent; 
     4207alias WINAPI.GetPixel GetPixel; 
     4208alias WINAPI.GetProcAddress GetProcAddress; 
     4209alias WINAPI.GetProcessHeap GetProcessHeap; 
     4210alias WINAPI.GetProfileStringA GetProfileStringA; 
     4211alias WINAPI.GetProfileStringW GetProfileStringW; 
     4212alias WINAPI.GetROP2 GetROP2; 
     4213alias WINAPI.GetRandomRgn GetRandomRgn; 
     4214alias WINAPI.GetRegionData GetRegionData; 
     4215alias WINAPI.GetRgnBox GetRgnBox; 
     4216alias WINAPI.GetSaveFileNameA GetSaveFileNameA; 
     4217alias WINAPI.GetSaveFileNameW GetSaveFileNameW; 
     4218alias WINAPI.GetScrollInfo GetScrollInfo; 
     4219alias WINAPI.GetStockObject GetStockObject; 
     4220alias WINAPI.GetSysColor GetSysColor; 
     4221alias WINAPI.GetSysColorBrush GetSysColorBrush; 
     4222alias WINAPI.GetSystemMenu GetSystemMenu; 
     4223alias WINAPI.GetSystemMetrics GetSystemMetrics; 
     4224alias WINAPI.GetSystemPaletteEntries GetSystemPaletteEntries; 
     4225alias WINAPI.GetTextCharset GetTextCharset; 
     4226alias WINAPI.GetTextColor GetTextColor; 
     4227alias WINAPI.GetTextExtentPoint32A GetTextExtentPoint32A; 
     4228alias WINAPI.GetTextExtentPoint32W GetTextExtentPoint32W; 
     4229alias WINAPI.GetTextMetricsA GetTextMetricsA; 
     4230alias WINAPI.GetTextMetricsW GetTextMetricsW; 
     4231alias WINAPI.GetTickCount GetTickCount; 
     4232alias WINAPI.GetUpdateRect GetUpdateRect; 
     4233alias WINAPI.GetUpdateRgn GetUpdateRgn; 
     4234alias WINAPI.GetVersion GetVersion; 
     4235alias WINAPI.GetVersionExA GetVersionExA; 
     4236alias WINAPI.GetVersionExW GetVersionExW; 
     4237alias WINAPI.GetWindow GetWindow; 
     4238alias WINAPI.GetWindowLongA GetWindowLongA; 
     4239alias WINAPI.GetWindowLongW GetWindowLongW; 
     4240alias WINAPI.GetWindowPlacement GetWindowPlacement; 
     4241alias WINAPI.GetWindowRect GetWindowRect; 
     4242alias WINAPI.GetWindowRgn GetWindowRgn; 
     4243alias WINAPI.GetWindowTextA GetWindowTextA; 
     4244alias WINAPI.GetWindowTextLengthA GetWindowTextLengthA; 
     4245alias WINAPI.GetWindowTextLengthW GetWindowTextLengthW; 
     4246alias WINAPI.GetWindowTextW GetWindowTextW; 
     4247alias WINAPI.GetWindowThreadProcessId GetWindowThreadProcessId; 
     4248alias WINAPI.GlobalAlloc GlobalAlloc; 
     4249alias WINAPI.GlobalFree GlobalFree; 
     4250alias WINAPI.GlobalLock GlobalLock; 
     4251alias WINAPI.GlobalSize GlobalSize; 
     4252alias WINAPI.GlobalUnlock GlobalUnlock; 
     4253alias WINAPI.GradientFill GradientFill; 
     4254alias WINAPI.HeapAlloc HeapAlloc; 
     4255alias WINAPI.HeapFree HeapFree; 
     4256alias WINAPI.HideCaret HideCaret; 
     4257alias WINAPI.ImageList_Add ImageList_Add; 
     4258alias WINAPI.ImageList_AddMasked ImageList_AddMasked; 
     4259alias WINAPI.ImageList_Create ImageList_Create; 
     4260alias WINAPI.ImageList_Destroy ImageList_Destroy; 
     4261alias WINAPI.ImageList_GetIcon ImageList_GetIcon; 
     4262alias WINAPI.ImageList_GetIconSize ImageList_GetIconSize; 
     4263alias WINAPI.ImageList_GetImageCount ImageList_GetImageCount; 
     4264alias WINAPI.ImageList_Remove ImageList_Remove; 
     4265alias WINAPI.ImageList_Replace ImageList_Replace; 
     4266alias WINAPI.ImageList_ReplaceIcon ImageList_ReplaceIcon; 
     4267alias WINAPI.ImageList_SetIconSize ImageList_SetIconSize; 
     4268alias WINAPI.ImmAssociateContext ImmAssociateContext; 
     4269alias WINAPI.ImmCreateContext ImmCreateContext; 
     4270alias WINAPI.ImmDestroyContext ImmDestroyContext; 
     4271alias WINAPI.ImmGetCompositionFontA ImmGetCompositionFontA; 
     4272alias WINAPI.ImmGetCompositionFontW ImmGetCompositionFontW; 
     4273alias WINAPI.ImmGetCompositionStringA ImmGetCompositionStringA; 
     4274alias WINAPI.ImmGetCompositionStringW ImmGetCompositionStringW; 
     4275alias WINAPI.ImmGetContext ImmGetContext; 
     4276alias WINAPI.ImmGetConversionStatus ImmGetConversionStatus; 
     4277alias WINAPI.ImmGetDefaultIMEWnd ImmGetDefaultIMEWnd; 
     4278alias WINAPI.ImmGetOpenStatus ImmGetOpenStatus; 
     4279alias WINAPI.ImmReleaseContext ImmReleaseContext; 
     4280alias WINAPI.ImmSetCompositionFontA ImmSetCompositionFontA; 
     4281alias WINAPI.ImmSetCompositionFontW ImmSetCompositionFontW; 
     4282alias WINAPI.ImmSetCompositionWindow ImmSetCompositionWindow; 
     4283alias WINAPI.ImmSetConversionStatus ImmSetConversionStatus; 
     4284alias WINAPI.ImmSetOpenStatus ImmSetOpenStatus; 
     4285alias WINAPI.InitCommonControls InitCommonControls; 
     4286alias WINAPI.InitCommonControlsEx InitCommonControlsEx; 
     4287alias WINAPI.InsertMenuA InsertMenuA; 
     4288alias WINAPI.InsertMenuItemA InsertMenuItemA; 
     4289alias WINAPI.InsertMenuItemW InsertMenuItemW; 
     4290alias WINAPI.InsertMenuW InsertMenuW; 
     4291alias WINAPI.InterlockedDecrement InterlockedDecrement; 
     4292alias WINAPI.InterlockedIncrement InterlockedIncrement; 
     4293alias WINAPI.IntersectRect IntersectRect; 
     4294alias WINAPI.InvalidateRect InvalidateRect; 
     4295alias WINAPI.InvalidateRgn InvalidateRgn; 
     4296alias WINAPI.IsDBCSLeadByte IsDBCSLeadByte; 
     4297alias WINAPI.IsIconic IsIconic; 
     4298alias WINAPI.IsWindow IsWindow; 
     4299alias WINAPI.IsWindowEnabled IsWindowEnabled; 
     4300alias WINAPI.IsWindowVisible IsWindowVisible; 
     4301alias WINAPI.IsZoomed IsZoomed; 
     4302alias WINAPI.KillTimer KillTimer; 
     4303alias WINAPI.LineTo LineTo; 
     4304alias WINAPI.LoadBitmapA LoadBitmapA; 
     4305alias WINAPI.LoadBitmapW LoadBitmapW; 
     4306alias WINAPI.LoadCursorA LoadCursorA; 
     4307alias WINAPI.LoadCursorW LoadCursorW; 
     4308alias WINAPI.LoadIconA LoadIconA; 
     4309alias WINAPI.LoadIconW LoadIconW; 
     4310alias WINAPI.LoadImageA LoadImageA; 
     4311alias WINAPI.LoadImageW LoadImageW; 
     4312alias WINAPI.LoadLibraryA LoadLibraryA; 
     4313alias WINAPI.LoadLibraryW LoadLibraryW; 
     4314alias WINAPI.LoadResource LoadResource; 
     4315alias WINAPI.LoadStringA LoadStringA; 
     4316alias WINAPI.LoadStringW LoadStringW; 
     4317alias WINAPI.LocalFree LocalFree; 
     4318alias WINAPI.LockResource LockResource; 
     4319alias WINAPI.MapVirtualKeyA MapVirtualKeyA; 
     4320alias WINAPI.MapVirtualKeyW MapVirtualKeyW; 
     4321alias WINAPI.MapWindowPoints MapWindowPoints; 
     4322alias WINAPI.MessageBeep MessageBeep; 
     4323alias WINAPI.MessageBoxA MessageBoxA; 
     4324alias WINAPI.MessageBoxW MessageBoxW; 
     4325alias WINAPI.MonitorFromWindow MonitorFromWindow; 
     4326alias WINAPI.MoveToEx MoveToEx; 
     4327alias WINAPI.MsgWaitForMultipleObjectsEx MsgWaitForMultipleObjectsEx; 
     4328alias WINAPI.MultiByteToWideChar MultiByteToWideChar; 
     4329alias WINAPI.NotifyWinEvent NotifyWinEvent; 
     4330alias WINAPI.OffsetRgn OffsetRgn; 
     4331//alias WINAPI.OleInitialize OleInitialize; 
     4332//alias WINAPI.OleUninitialize OleUninitialize; 
     4333alias WINAPI.OpenClipboard OpenClipboard; 
     4334alias WINAPI.OutputDebugStringA OutputDebugStringA; 
     4335alias WINAPI.OutputDebugStringW OutputDebugStringW; 
     4336alias WINAPI.PatBlt PatBlt; 
     4337alias WINAPI.PeekMessageA PeekMessageA; 
     4338alias WINAPI.PeekMessageW PeekMessageW; 
     4339alias WINAPI.Pie Pie; 
     4340alias WINAPI.Polygon Polygon; 
     4341alias WINAPI.Polyline Polyline; 
     4342alias WINAPI.PostMessageA PostMessageA; 
     4343alias WINAPI.PostMessageW PostMessageW; 
     4344alias WINAPI.PostThreadMessageA PostThreadMessageA; 
     4345alias WINAPI.PostThreadMessageW PostThreadMessageW; 
     4346alias WINAPI.PrintDlgA PrintDlgA; 
     4347alias WINAPI.PrintDlgW PrintDlgW; 
     4348alias WINAPI.PtInRect PtInRect; 
     4349alias WINAPI.PtInRegion PtInRegion; 
     4350alias WINAPI.RealizePalette RealizePalette; 
     4351alias WINAPI.RectInRegion RectInRegion; 
     4352// <Shawn> Renamed : may conflict with dwt.graphics.rectangle.Rectangle 
     4353alias WINAPI.Rectangle _Rectangle;   
     4354alias WINAPI.RedrawWindow RedrawWindow; 
     4355alias WINAPI.RegCloseKey RegCloseKey; 
     4356alias WINAPI.RegEnumKeyExA RegEnumKeyExA; 
     4357alias WINAPI.RegEnumKeyExW RegEnumKeyExW; 
     4358alias WINAPI.RegOpenKeyExA RegOpenKeyExA; 
     4359alias WINAPI.RegOpenKeyExW RegOpenKeyExW; 
     4360alias WINAPI.RegQueryInfoKeyA RegQueryInfoKeyA; 
     4361alias WINAPI.RegQueryInfoKeyW RegQueryInfoKeyW; 
     4362alias WINAPI.RegQueryValueExA RegQueryValueExA; 
     4363alias WINAPI.RegQueryValueExW RegQueryValueExW; 
     4364alias WINAPI.RegisterClassA RegisterClassA; 
     4365alias WINAPI.RegisterClassW RegisterClassW; 
     4366alias WINAPI.RegisterClipboardFormatA RegisterClipboardFormatA; 
     4367alias WINAPI.RegisterClipboardFormatW RegisterClipboardFormatW; 
     4368alias WINAPI.RegisterWindowMessageA RegisterWindowMessageA; 
     4369alias WINAPI.RegisterWindowMessageW RegisterWindowMessageW; 
     4370alias WINAPI.ReleaseCapture ReleaseCapture; 
     4371alias WINAPI.ReleaseDC ReleaseDC; 
     4372alias WINAPI.RemoveMenu RemoveMenu; 
     4373alias WINAPI.RestoreDC RestoreDC; 
     4374alias WINAPI.RoundRect RoundRect; 
     4375alias WINAPI.RtlMoveMemory MoveMemory; 
     4376alias WINAPI.SHBrowseForFolderA SHBrowseForFolderA; 
     4377alias WINAPI.SHBrowseForFolderW SHBrowseForFolderW; 
     4378version(WinCE){ 
     4379    alias WINAPI.SHCreateMenuBar SHCreateMenuBar; 
     4380
     4381alias WINAPI.SHGetMalloc SHGetMalloc; 
     4382alias WINAPI.SHGetPathFromIDListA SHGetPathFromIDListA; 
     4383alias WINAPI.SHGetPathFromIDListW SHGetPathFromIDListW; 
     4384version(WinCE) 
     4385
     4386    alias WINAPI.SHHandleWMSettingChange SHHandleWMSettingChange; 
     4387    alias WINAPI.SHRecognizeGesture SHRecognizeGesture; 
     4388    alias WINAPI.SHSendBackToFocusWindow SHSendBackToFocusWindow; 
     4389    alias WINAPI.SHSetAppKeyWndAssoc SHSetAppKeyWndAssoc; 
     4390    alias WINAPI.SHSipPreference SHSipPreference; 
     4391
     4392alias WINAPI.SaveDC SaveDC; 
     4393alias WINAPI.ScreenToClient ScreenToClient; 
     4394alias WINAPI.ScriptBreak ScriptBreak; 
     4395alias WINAPI.ScriptCPtoX ScriptCPtoX; 
     4396alias WINAPI.ScriptCacheGetHeight ScriptCacheGetHeight; 
     4397alias WINAPI.ScriptFreeCache ScriptFreeCache; 
     4398alias WINAPI.ScriptGetFontProperties ScriptGetFontProperties; 
     4399alias WINAPI.ScriptGetLogicalWidths ScriptGetLogicalWidths; 
     4400alias WINAPI.ScriptGetProperties ScriptGetProperties; 
     4401alias WINAPI.ScriptItemize ScriptItemize; 
     4402alias WINAPI.ScriptLayout ScriptLayout; 
     4403alias WINAPI.ScriptPlace ScriptPlace; 
     4404alias WINAPI.ScriptShape ScriptShape; 
     4405alias WINAPI.ScriptTextOut ScriptTextOut; 
     4406alias WINAPI.ScriptXtoCP ScriptXtoCP; 
     4407alias WINAPI.ScrollWindowEx ScrollWindowEx; 
     4408alias WINAPI.SelectClipRgn SelectClipRgn; 
     4409alias WINAPI.SelectObject SelectObject; 
     4410alias WINAPI.SelectPalette SelectPalette; 
     4411alias WINAPI.SendInput SendInput; 
     4412alias WINAPI.SendMessageA SendMessageA; 
     4413alias WINAPI.SendMessageW SendMessageW; 
     4414alias WINAPI.SetActiveWindow SetActiveWindow; 
     4415alias WINAPI.SetBkColor SetBkColor; 
     4416alias WINAPI.SetBkMode SetBkMode; 
     4417alias WINAPI.SetCapture SetCapture; 
     4418alias WINAPI.SetCaretPos SetCaretPos; 
     4419alias WINAPI.SetClipboardData SetClipboardData; 
     4420alias WINAPI.SetCursor SetCursor; 
     4421alias WINAPI.SetCursorPos SetCursorPos; 
     4422alias WINAPI.SetDIBColorTable SetDIBColorTable; 
     4423alias WINAPI.SetErrorMode SetErrorMode; 
     4424alias WINAPI.SetEvent SetEvent; 
     4425alias WINAPI.SetFocus SetFocus; 
     4426alias WINAPI.SetForegroundWindow SetForegroundWindow; 
     4427alias WINAPI.SetLastError SetLastError; 
     4428alias WINAPI.SetLayout SetLayout; 
     4429alias WINAPI.SetMenu SetMenu; 
     4430alias WINAPI.SetMenuDefaultItem SetMenuDefaultItem; 
     4431alias WINAPI.SetMenuInfo SetMenuInfo; 
     4432alias WINAPI.SetMenuItemInfoA SetMenuItemInfoA; 
     4433alias WINAPI.SetMenuItemInfoW SetMenuItemInfoW; 
     4434alias WINAPI.SetPaletteEntries SetPaletteEntries; 
     4435alias WINAPI.SetParent SetParent; 
     4436alias WINAPI.SetPixel SetPixel; 
     4437alias WINAPI.SetROP2 SetROP2; 
     4438alias WINAPI.SetRect SetRect; 
     4439alias WINAPI.SetRectRgn SetRectRgn; 
     4440alias WINAPI.SetScrollInfo SetScrollInfo; 
     4441alias WINAPI.SetStretchBltMode SetStretchBltMode; 
     4442alias WINAPI.SetTextAlign SetTextAlign; 
     4443alias WINAPI.SetTextColor SetTextColor; 
     4444alias WINAPI.SetTimer SetTimer; 
     4445alias WINAPI.SetWindowLongA SetWindowLongA; 
     4446alias WINAPI.SetWindowLongW SetWindowLongW; 
     4447alias WINAPI.SetWindowPlacement SetWindowPlacement; 
     4448alias WINAPI.SetWindowPos SetWindowPos; 
     4449alias WINAPI.SetWindowRgn SetWindowRgn; 
     4450alias WINAPI.SetWindowTextA SetWindowTextA; 
     4451alias WINAPI.SetWindowTextW SetWindowTextW; 
     4452alias WINAPI.SetWindowsHookExA SetWindowsHookExA; 
     4453alias WINAPI.SetWindowsHookExW SetWindowsHookExW; 
     4454alias WINAPI.ShellExecuteExA ShellExecuteExA; 
     4455alias WINAPI.ShellExecuteExW ShellExecuteExW; 
     4456alias WINAPI.Shell_NotifyIconA Shell_NotifyIconA; 
     4457alias WINAPI.Shell_NotifyIconW Shell_NotifyIconW; 
     4458alias WINAPI.ShowCaret ShowCaret; 
     4459alias WINAPI.ShowOwnedPopups ShowOwnedPopups; 
     4460alias WINAPI.ShowScrollBar ShowScrollBar; 
     4461alias WINAPI.ShowWindow ShowWindow; 
     4462version(WinCE){ 
     4463alias WINAPI.SipGetInfo SipGetInfo; 
     4464
     4465alias WINAPI.SizeofResource SizeofResource; 
     4466alias WINAPI.Sleep Sleep; 
     4467alias WINAPI.StartDocA StartDocA; 
     4468alias WINAPI.StartDocW StartDocW; 
     4469alias WINAPI.StartPage StartPage; 
     4470alias WINAPI.StretchBlt StretchBlt; 
     4471alias WINAPI.SystemParametersInfoA SystemParametersInfoA; 
     4472alias WINAPI.SystemParametersInfoW SystemParametersInfoW; 
     4473alias WINAPI.ToAscii ToAscii; 
     4474alias WINAPI.ToUnicode ToUnicode; 
     4475alias WINAPI.TrackMouseEvent TrackMouseEvent; 
     4476alias WINAPI.TrackPopupMenu TrackPopupMenu; 
     4477alias WINAPI.TranslateAcceleratorA TranslateAcceleratorA; 
     4478alias WINAPI.TranslateAcceleratorW TranslateAcceleratorW; 
     4479alias WINAPI.TranslateCharsetInfo TranslateCharsetInfo; 
     4480alias WINAPI.TranslateMDISysAccel TranslateMDISysAccel; 
     4481alias WINAPI.TranslateMessage TranslateMessage; 
     4482version(WinCE){ 
     4483    alias WINAPI.TransparentImage TransparentImage; 
     4484
     4485alias WINAPI.UnhookWindowsHookEx UnhookWindowsHookEx; 
     4486alias WINAPI.UnregisterClassA UnregisterClassA; 
     4487alias WINAPI.UnregisterClassW UnregisterClassW; 
     4488alias WINAPI.UpdateWindow UpdateWindow; 
     4489alias WINAPI.ValidateRect ValidateRect; 
     4490alias WINAPI.VkKeyScanA VkKeyScanA; 
     4491alias WINAPI.VkKeyScanW VkKeyScanW; 
     4492alias WINAPI.WaitForMultipleObjects WaitForMultipleObjects; 
     4493alias WINAPI.WaitForSingleObject WaitForSingleObject; 
     4494alias WINAPI.WaitMessage WaitMessage; 
     4495alias WINAPI.WideCharToMultiByte WideCharToMultiByte; 
     4496alias WINAPI.WindowFromDC WindowFromDC; 
     4497alias WINAPI.WindowFromPoint WindowFromPoint; 
     4498alias WINAPI.wcslen wcslen; 
     4499 
     4500public static int VERSION (int major, int minor) {  return major << 16 | minor;} 
     4501 
     4502//static int DrawText(int hDC, String lpString, RECT* lpRect, int uFormat){ 
     4503//  return WINAPI.DrawText(hDC, Convert.StringToTCHARz(lpString), lpString.length, lpRect, uFormat); 
     4504//} 
     4505// 
     4506//static int DrawText(int hDC, TCHAR* lpString, int length, RECT* lpRect, int uFormat){ 
     4507//  return WINAPI.DrawText(hDC, lpString, length, lpRect, uFormat); 
     4508//} 
     4509 
     4510static int GetProfileString(char[] lpAppName, char[] lpKeyName, char[] lpDefault, out char[] lpReturnedString, int nSize ){ 
     4511    TCHAR[] buffer = new TCHAR[nSize]; 
     4512    int result = _GetProfileString(.StrToTCHARz(lpAppName), .StrToTCHARz(lpKeyName), .StrToTCHARz(lpDefault), buffer.ptr, nSize); 
     4513    lpReturnedString = .TCHARzToStr(buffer.ptr); 
     4514    return result;   
     4515
     4516 
     4517static char[] GetWindowText(HWND hwnd){ 
     4518    assert(hwnd);  
     4519    int len = GetWindowTextLength(hwnd); 
     4520    if(len > 0){ 
     4521        TCHAR[] buffer = new TCHAR[len + 1]; 
     4522        len = _GetWindowText(hwnd, buffer.ptr, buffer.length); 
     4523        return .TCHARzToStr(buffer.ptr, len); 
     4524    } 
     4525    return ""; 
     4526
     4527 
     4528// Note: nMaxCount including the NULL character 
     4529static int GetWindowText(HWND hWnd, TCHAR* lpString, int nMaxCount) 
     4530
     4531    return _GetWindowText(hWnd, lpString, nMaxCount); 
     4532
     4533 
     4534// <Shawn Liu> added this method, copied from ATL : atlwin.h  
     4535static int CenterWindow(HWND m_hWnd, HWND hWndCenter = null) 
     4536
     4537    assert(m_hWnd); 
     4538     
     4539    // determine owner window to center against 
     4540    uint dwStyle = OS.GetWindowLong(m_hWnd, OS.GWL_STYLE); 
     4541    if(hWndCenter is null) 
     4542    { 
     4543        if(dwStyle & OS.WS_CHILD) 
     4544            hWndCenter = OS.GetParent(m_hWnd); 
     4545        else 
     4546            hWndCenter = OS.GetWindow(m_hWnd, OS.GW_OWNER); 
     4547    } 
     4548 
     4549    // get coordinates of the window relative to its parent 
     4550    RECT rcDlg; 
     4551    OS.GetWindowRect(m_hWnd, &rcDlg); 
     4552    RECT rcArea; 
     4553    RECT rcCenter; 
     4554    HWND hWndParent; 
     4555    if(!(dwStyle & OS.WS_CHILD)) 
     4556    { 
     4557        // don't center against invisible or minimized WINAPI  
     4558        if(hWndCenter !is null) 
     4559        { 
     4560            uint dwStyleCenter = OS.GetWindowLong(hWndCenter, OS.GWL_STYLE); 
     4561            if(!(dwStyleCenter & OS.WS_VISIBLE) || (dwStyleCenter & OS.WS_MINIMIZE)) 
     4562                hWndCenter = null; 
     4563        } 
     4564 
     4565        // center within screen coordinates 
     4566        OS.SystemParametersInfo(OS.SPI_GETWORKAREA, 0, &rcArea, 0); 
     4567        if(hWndCenter is null) 
     4568            rcCenter = rcArea; 
     4569        else 
     4570            OS.GetWindowRect(hWndCenter, &rcCenter); 
     4571    } 
     4572    else 
     4573    { 
     4574        // center within parent client coordinates 
     4575        hWndParent = OS.GetParent(m_hWnd); 
     4576        assert(OS.IsWindow(hWndParent)); 
     4577 
     4578        OS.GetClientRect(hWndParent, &rcArea); 
     4579        assert(OS.IsWindow(hWndCenter)); 
     4580        OS.GetClientRect(hWndCenter, &rcCenter); 
     4581        OS.MapWindowPoints(hWndCenter, hWndParent, cast(POINT*)&rcCenter, 2); 
     4582    } 
     4583 
     4584    int DlgWidth = rcDlg.right - rcDlg.left; 
     4585    int DlgHeight = rcDlg.bottom - rcDlg.top; 
     4586 
     4587    // find dialog's upper left based on rcCenter 
     4588    int xLeft = (rcCenter.left + rcCenter.right) / 2 - DlgWidth / 2; 
     4589    int yTop = (rcCenter.top + rcCenter.bottom) / 2 - DlgHeight / 2; 
     4590 
     4591    // if the dialog is outside the screen, move it inside 
     4592    if(xLeft < rcArea.left) 
     4593        xLeft = rcArea.left; 
     4594    else if(xLeft + DlgWidth > rcArea.right) 
     4595        xLeft = rcArea.right - DlgWidth; 
     4596 
     4597    if(yTop < rcArea.top) 
     4598        yTop = rcArea.top; 
     4599    else if(yTop + DlgHeight > rcArea.bottom) 
     4600        yTop = rcArea.bottom - DlgHeight; 
     4601 
     4602    // map screen coordinates to child coordinates 
     4603    return OS.SetWindowPos(m_hWnd, null, xLeft, yTop, -1, -1, 
     4604        OS.SWP_NOSIZE | OS.SWP_NOZORDER | OS.SWP_NOACTIVATE);    
     4605
     4606 
     4607static int OleInitialize(LPVOID reserved = null){ 
     4608    return WINAPI.OleInitialize(reserved); 
     4609
     4610 
     4611static void OleUninitialize(){ 
     4612    WINAPI.OleUninitialize(); 
     4613
     4614 
     4615} // END of OS 
     4616 
     4617private import tango.sys.win32.CodePage; 
     4618private import tango.text.convert.Utf; 
     4619private import tango.stdc.stringz; 
     4620 
     4621// convert UTF-8 to MBCS 
     4622alias StrToMBCS StrToMBCSs; 
     4623