Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

Changeset 3635

Show
Ignore:
Timestamp:
06/18/08 21:06:44 (3 months ago)
Author:
keinfarbton
Message:

Made tango.sys.win32.Types equal to the one in DWT. Fixes also ticket #1148 and #1129. Ansi characters are now of type ubyte instead of char, they are not utf8.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/tango/io/Console.d

    r3583 r3635  
    471471                                handle = GetStdHandle (id[handle_]); 
    472472                                if (handle is null || handle is INVALID_HANDLE_VALUE) 
    473                                     handle = CreateFileA (f[handle_].ptr,  
     473                                    handle = CreateFileA ( cast(PCHAR) f[handle_].ptr,  
    474474                                             GENERIC_READ | GENERIC_WRITE,   
    475475                                             FILE_SHARE_READ | FILE_SHARE_WRITE,  
     
    516516 
    517517                                   // convert into output buffer 
    518                                    i = MultiByteToWideChar (CP_UTF8, 0, cast(char*) src.ptr, i,  
     518                                   i = MultiByteToWideChar (CP_UTF8, 0, cast(PCHAR) src.ptr, i,  
    519519                                                            output.ptr, output.length); 
    520520                                             
     
    576576                                   // translate to utf8, directly into dst 
    577577                                   i = WideCharToMultiByte (CP_UTF8, 0, input.ptr, i,  
    578                                                             cast(char*) dst.ptr, dst.length, null, null); 
     578                                                            cast(PCHAR) dst.ptr, dst.length, null, null); 
    579579                                   if (i is 0) 
    580580                                       error (); 
  • trunk/tango/io/FileSystem.d

    r3613 r3635  
    2525        { 
    2626        private import Text = tango.text.Util; 
    27         private extern (Windows) DWORD GetLogicalDriveStringsA (DWORD, LPTSTR); 
     27        private extern (Windows) DWORD GetLogicalDriveStringsA (DWORD, LPSTR); 
    2828        } 
    2929 
     
    143143                                assert (path.length < tmp.length); 
    144144                                auto i = MultiByteToWideChar (CP_UTF8, 0,  
    145                                                               path.ptr, path.length,  
     145                                                              cast(PCHAR)path.ptr, path.length,  
    146146                                                              tmp.ptr, tmp.length); 
    147147                                tmp[i] = 0; 
     
    184184                                GetCurrentDirectoryW (len, tmp.ptr);  
    185185                                auto i = WideCharToMultiByte (CP_UTF8, 0, tmp.ptr, len,  
    186                                                               dir.ptr, dir.length, null, null); 
     186                                                              cast(PCHAR)dir.ptr, dir.length, null, null); 
    187187                                if (len && i) 
    188188                                   { 
     
    214214                           { 
    215215                           str = new char [len]; 
    216                            GetLogicalDriveStringsA (len, str.ptr); 
     216                           GetLogicalDriveStringsA (len, cast(PCHAR)str.ptr); 
    217217 
    218218                           // split roots into seperate strings 
  • trunk/tango/io/Path.d

    r3554 r3635  
    242242                { 
    243243                        auto i = MultiByteToWideChar (CP_UTF8, 0, 
    244                                                       path.ptr, path.length, 
     244                                                      cast(PCHAR)path.ptr, path.length, 
    245245                                                      tmp.ptr, tmp.length); 
    246246                        return tmp [0..i]; 
     
    256256                { 
    257257                        auto i = WideCharToMultiByte (CP_UTF8, 0, path.ptr, path.length, 
    258                                                       tmp.ptr, tmp.length, null, null); 
     258                                                      cast(PCHAR)tmp.ptr, tmp.length, null, null); 
    259259                        return tmp [0..i]; 
    260260                } 
  • trunk/tango/sys/Common.d

    r3607 r3635  
    140140                        text = new char[i * 3]; 
    141141                        i = WideCharToMultiByte (CP_UTF8, 0, lpMsgBuf, i,  
    142                                                  text.ptr, text.length, null, null); 
     142                                                 cast(PCHAR)text.ptr, text.length, null, null); 
    143143                        text = text [0 .. i]; 
    144144                        LocalFree (cast(HLOCAL) lpMsgBuf); 
  • trunk/tango/sys/win32/CodePage.d

    r2809 r3635  
    121121                   wchar[] wide = (src.length <= tmp.length) ? tmp : new wchar[src.length]; 
    122122 
    123                    len = MultiByteToWideChar (from, 0, src.ptr, src.length,  
     123                   len = MultiByteToWideChar (from, 0, cast(PCHAR)src.ptr, src.length,  
    124124                                              wide.ptr, wide.length); 
    125125                   if (len) 
    126126                       len = WideCharToMultiByte (into, 0, wide.ptr, len,  
    127                                                   dst.ptr, dst.length-1, null, null); 
     127                                                  cast(PCHAR)dst.ptr, dst.length-1, null, null); 
    128128                   if (len is 0) 
    129129                       throw new IllegalArgumentException ("CodePage.convert :: "~SysError.lastMsg); 
  • trunk/tango/sys/win32/Types.di

    r3492 r3635  
    22 
    33/* 
    4    Module:     Windows Types 
    5    Author:     Trevor Parscal 
     4    Module:     Windows Types 
     5    Author:     Trevor Parscal 
    66*/ 
    77 
     
    1616alias uint CALTYPE; 
    1717alias uint CALID; 
    18 alias char CCHAR; 
    19 alias char* PCHAR; 
     18alias ubyte CCHAR; 
     19alias ubyte* PCHAR; 
    2020alias uint COLORREF; 
    2121alias uint TCOLORREF; 
     22alias ubyte CHAR; 
    2223alias ubyte BYTE; 
    2324alias short INT16; 
     
    3334alias int LONG_PTR; 
    3435alias uint ULONG_PTR; 
     36alias DWORD DWORD_PTR; 
    3537alias uint PROPID; 
    3638const BOOL FALSE = 0; 
    3739const BOOL TRUE = -1; 
    38 alias char* PANSICHAR; 
     40alias ubyte* PANSICHAR; 
    3941alias wchar* PWIDECHAR; 
    4042alias int* PINTEGER; 
     
    9799alias COLORREF* LPCOLORREF; 
    98100alias PCHAR LPCSTR; 
    99 alias PCHAR LPCTSTR; 
     101alias TCHAR* LPCTSTR; 
    100102alias wchar* LPCWCH; 
    101103alias wchar* LPCWSTR; 
     
    106108alias PCHAR LPSTR; 
    107109alias PCHAR LPTCH; 
    108 alias PCHAR LPTSTR; 
     110alias TCHAR* LPTSTR; 
    109111alias int LRESULT; 
    110112alias POINTER LPVOID; 
     
    150152alias DWORD SERVICE_STATUS_HANDLE; 
    151153alias ubyte TBYTE; 
    152 alias char TCHAR; 
     154 
     155version(Win32SansUnicode){ 
     156    alias ubyte  TCHAR; 
     157}else{ 
     158    alias wchar TCHAR; 
     159
     160 
    153161alias ubyte BCHAR; 
    154162alias ubyte UCHAR; 
     
    160168alias int ACL_INFORMATION_CLASS; 
    161169 
    162 struct GUID { // size is 16 
    163 align(1): 
    164     DWORD   Data1; 
    165     WORD    Data2; 
    166     WORD    Data3; 
    167     BYTE[8] Data4; 
    168 } 
    169  
    170170alias GUID IID; 
    171171alias IID* REFIID; 
     172 
     173// Cast a string literal to a ubyte*=PCHAR 
     174template _PCHAR( char[] a ){ 
     175    const PCHAR _PCHAR = cast(PCHAR)a.ptr; 
     176} 
    172177 
    173178enum { AclRevisionInformation = 1, AclSizeInformation,  }; 
     
    252257 
    253258const { 
    254  char* SE_CREATE_TOKEN_NAME = ("SeCreateTokenPrivilege"); 
    255  char* SE_ASSIGNPRIMARYTOKEN_NAME = ("SeAssignPrimaryTokenPrivilege"); 
    256  char* SE_LOCK_MEMORY_NAME = ("SeLockMemoryPrivilege"); 
    257  char* SE_INCREASE_QUOTA_NAME = ("SeIncreaseQuotaPrivilege"); 
    258  char* SE_UNSOLICITED_INPUT_NAME = ("SeUnsolicitedInputPrivilege"); 
    259  char* SE_MACHINE_ACCOUNT_NAME = ("SeMachineAccountPrivilege"); 
    260  char* SE_TCB_NAME = ("SeTcbPrivilege"); 
    261  char* SE_SECURITY_NAME = ("SeSecurityPrivilege"); 
    262  char* SE_TAKE_OWNERSHIP_NAME = ("SeTakeOwnershipPrivilege"); 
    263  char* SE_LOAD_DRIVER_NAME = ("SeLoadDriverPrivilege"); 
    264  char* SE_SYSTEM_PROFILE_NAME = ("SeSystemProfilePrivilege"); 
    265  char* SE_SYSTEMTIME_NAME = ("SeSystemtimePrivilege"); 
    266  char* SE_PROF_SINGLE_PROCESS_NAME = ("SeProfileSingleProcessPrivilege"); 
    267  char* SE_INC_BASE_PRIORITY_NAME = ("SeIncreaseBasePriorityPrivilege"); 
    268  char* SE_CREATE_PAGEFILE_NAME = ("SeCreatePagefilePrivilege"); 
    269  char* SE_CREATE_PERMANENT_NAME = ("SeCreatePermanentPrivilege"); 
    270  char* SE_BACKUP_NAME = ("SeBackupPrivilege"); 
    271  char* SE_RESTORE_NAME = ("SeRestorePrivilege"); 
    272  char* SE_SHUTDOWN_NAME = ("SeShutdownPrivilege"); 
    273  char* SE_DEBUG_NAME = ("SeDebugPrivilege"); 
    274  char* SE_AUDIT_NAME = ("SeAuditPrivilege"); 
    275  char* SE_SYSTEM_ENVIRONMENT_NAME = ("SeSystemEnvironmentPrivilege"); 
    276  char* SE_CHANGE_NOTIFY_NAME = ("SeChangeNotifyPrivilege"); 
    277  char* SE_REMOTE_SHUTDOWN_NAME = ("SeRemoteShutdownPrivilege"); 
    278  char* SERVICES_ACTIVE_DATABASEA = ("ServicesActive"); 
    279  char* SERVICES_FAILED_DATABASEA = ("ServicesFailed"); 
    280  char* SC_GROUP_IDENTIFIERA = ("+"); 
    281  char* SERVICES_ACTIVE_DATABASE = (SERVICES_ACTIVE_DATABASEA); 
    282  char* SERVICES_FAILED_DATABASE = (SERVICES_FAILED_DATABASEA); 
    283  char* SC_GROUP_IDENTIFIER = (SC_GROUP_IDENTIFIERA); 
     259    LPCTSTR SE_CREATE_TOKEN_NAME = ("SeCreateTokenPrivilege"); 
     260    LPCTSTR SE_ASSIGNPRIMARYTOKEN_NAME = ("SeAssignPrimaryTokenPrivilege"); 
     261    LPCTSTR SE_LOCK_MEMORY_NAME = ("SeLockMemoryPrivilege"); 
     262    LPCTSTR SE_INCREASE_QUOTA_NAME = ("SeIncreaseQuotaPrivilege"); 
     263    LPCTSTR SE_UNSOLICITED_INPUT_NAME = ("SeUnsolicitedInputPrivilege"); 
     264    LPCTSTR SE_MACHINE_ACCOUNT_NAME = ("SeMachineAccountPrivilege"); 
     265    LPCTSTR SE_TCB_NAME = ("SeTcbPrivilege"); 
     266    LPCTSTR SE_SECURITY_NAME = ("SeSecurityPrivilege"); 
     267    LPCTSTR SE_TAKE_OWNERSHIP_NAME = ("SeTakeOwnershipPrivilege"); 
     268    LPCTSTR SE_LOAD_DRIVER_NAME = ("SeLoadDriverPrivilege"); 
     269    LPCTSTR SE_SYSTEM_PROFILE_NAME = ("SeSystemProfilePrivilege"); 
     270    LPCTSTR SE_SYSTEMTIME_NAME = ("SeSystemtimePrivilege"); 
     271    LPCTSTR SE_PROF_SINGLE_PROCESS_NAME = ("SeProfileSingleProcessPrivilege"); 
     272    LPCTSTR SE_INC_BASE_PRIORITY_NAME = ("SeIncreaseBasePriorityPrivilege"); 
     273    LPCTSTR SE_CREATE_PAGEFILE_NAME = ("SeCreatePagefilePrivilege"); 
     274    LPCTSTR SE_CREATE_PERMANENT_NAME = ("SeCreatePermanentPrivilege"); 
     275    LPCTSTR SE_BACKUP_NAME = ("SeBackupPrivilege"); 
     276    LPCTSTR SE_RESTORE_NAME = ("SeRestorePrivilege"); 
     277    LPCTSTR SE_SHUTDOWN_NAME = ("SeShutdownPrivilege"); 
     278    LPCTSTR SE_DEBUG_NAME = ("SeDebugPrivilege"); 
     279    LPCTSTR SE_AUDIT_NAME = ("SeAuditPrivilege"); 
     280    LPCTSTR SE_SYSTEM_ENVIRONMENT_NAME = ("SeSystemEnvironmentPrivilege"); 
     281    LPCTSTR SE_CHANGE_NOTIFY_NAME = ("SeChangeNotifyPrivilege"); 
     282    LPCTSTR SE_REMOTE_SHUTDOWN_NAME = ("SeRemoteShutdownPrivilege"); 
     283 
     284    LPCSTR  SERVICES_ACTIVE_DATABASEA = _PCHAR!("ServicesActive"); 
     285    LPCWSTR SERVICES_ACTIVE_DATABASEW = ("ServicesActive"); 
     286    LPCSTR  SERVICES_FAILED_DATABASEA = _PCHAR!("ServicesFailed"); 
     287    LPCWSTR SERVICES_FAILED_DATABASEW = ("ServicesFailed"); 
     288    LPCSTR  SC_GROUP_IDENTIFIERA = _PCHAR!("+"); 
     289    LPCWSTR SC_GROUP_IDENTIFIERW = ("+"); 
     290    version(Win32SansUnicode){ 
     291        alias SERVICES_ACTIVE_DATABASEA SERVICES_ACTIVE_DATABASE; 
     292        alias SERVICES_FAILED_DATABASEA SERVICES_FAILED_DATABASE; 
     293        alias SC_GROUP_IDENTIFIERA SC_GROUP_IDENTIFIER; 
     294    } 
     295    else{ 
     296        alias SERVICES_ACTIVE_DATABASEW SERVICES_ACTIVE_DATABASE; 
     297        alias SERVICES_FAILED_DATABASEW SERVICES_FAILED_DATABASE; 
     298        alias SC_GROUP_IDENTIFIERW SC_GROUP_IDENTIFIER; 
     299    } 
    284300} 
    285301 
     
    40724088} 
    40734089const { 
    4074 wchar* LPSTR_TEXTCALLBACKW = cast(LPWSTR)(-(1)); 
    4075 char* LPSTR_TEXTCALLBACKA = cast(LPSTR)(-(1)); 
    4076 char* LPSTR_TEXTCALLBACK = (LPSTR_TEXTCALLBACKA); 
     4090    LPWSTR LPSTR_TEXTCALLBACKW = cast(LPWSTR)(-(1)); 
     4091    LPSTR  LPSTR_TEXTCALLBACKA = cast(LPSTR)(-(1)); 
     4092    version(Win32SansUnicode){ 
     4093        alias LPSTR_TEXTCALLBACKA LPSTR_TEXTCALLBACK; 
     4094    } 
     4095    else{ 
     4096        alias LPSTR_TEXTCALLBACKW LPSTR_TEXTCALLBACK; 
     4097    } 
    40774098} 
    40784099enum : DWORD { 
     
    60316052struct ABC 
    60326053{ 
    6033    int abcA; 
    6034    UINT abcB; 
    6035    int abcC; 
     6054    int abcA; 
     6055    UINT abcB; 
     6056    int abcC; 
    60366057} 
    60376058 
     
    60436064struct ABCFLOAT 
    60446065{ 
    6045    FLOAT abcfA; 
    6046    FLOAT abcfB; 
    6047    FLOAT abcfC; 
     6066    FLOAT abcfA; 
     6067    FLOAT abcfB; 
     6068    FLOAT abcfC; 
    60486069} 
    60496070 
     
    60556076struct ACCEL 
    60566077{ 
    6057    ubyte fVirt; 
    6058    ushort key; 
    6059    ushort cmd; 
     6078    ubyte fVirt; 
     6079    ushort key; 
     6080    ushort cmd; 
    60606081} 
    60616082 
     
    60676088struct ACE_HEADER 
    60686089{ 
    6069    ubyte AceType; 
    6070    ubyte AceFlags; 
    6071    ushort AceSize; 
     6090    ubyte AceType; 
     6091    ubyte AceFlags; 
     6092    ushort AceSize; 
    60726093} 
    60736094 
     
    60806101struct ACCESS_ALLOWED_ACE 
    60816102{ 
    6082    ACE_HEADER Header; 
    6083    ACCESS_MASK Mask; 
    6084    DWORD SidStart; 
     6103    ACE_HEADER Header; 
     6104    ACCESS_MASK Mask; 
     6105    DWORD SidStart; 
    60856106} 
    60866107 
     
    60916112struct ACCESS_DENIED_ACE 
    60926113{ 
    6093    ACE_HEADER Header; 
    6094    ACCESS_MASK Mask; 
    6095    DWORD SidStart; 
     6114    ACE_HEADER Header; 
     6115    ACCESS_MASK Mask; 
     6116    DWORD SidStart; 
    60966117} 
    60976118 
     
    61016122struct ACCESSTIMEOUT 
    61026123{ 
    6103    UINT cbSize; 
    6104    DWORD dwFlags; 
    6105    DWORD iTimeOutMSec; 
     6124    UINT cbSize; 
     6125    DWORD dwFlags; 
     6126    DWORD iTimeOutMSec; 
    61066127} 
    61076128 
     
    61126133struct ACL 
    61136134{ 
    6114    ubyte AclRevision; 
    6115    ubyte Sbz1; 
    6116    ushort AclSize; 
    6117    ushort AceCount; 
    6118    ushort Sbz2; 
     6135    ubyte AclRevision; 
     6136    ubyte Sbz1; 
     6137    ushort AclSize; 
     6138    ushort AceCount; 
     6139    ushort Sbz2; 
    61196140} 
    61206141 
     
    61256146struct ACL_REVISION_INFORMATION 
    61266147{ 
    6127    DWORD AclRevision; 
     6148    DWORD AclRevision; 
    61286149} 
    61296150 
     
    61346155struct ACL_SIZE_INFORMATION 
    61356156{ 
    6136    DWORD AceCount; 
    6137    DWORD AclBytesInUse; 
    6138    DWORD AclBytesFree; 
     6157    DWORD AceCount; 
     6158    DWORD AclBytesInUse; 
     6159    DWORD AclBytesFree; 
    61396160} 
    61406161 
     
    61456166struct ACTION_HEADER 
    61466167{ 
    6147    ULONG transport_id; 
    6148    USHORT action_code; 
    6149    USHORT reserved; 
     6168    ULONG transport_id; 
     6169    USHORT action_code; 
     6170    USHORT reserved; 
    61506171} 
    61516172 
     
    61566177struct ADAPTER_STATUS 
    61576178{ 
    6158    UCHAR[1 + 5] adapter_address; 
    6159    UCHAR rev_major; 
    6160    UCHAR reserved0; 
    6161    UCHAR adapter_type; 
    6162    UCHAR rev_minor; 
    6163    ushort duration; 
    6164    ushort frmr_recv; 
    6165    ushort frmr_xmit; 
    6166    ushort iframe_recv_err; 
    6167    ushort xmit_aborts; 
    6168    DWORD xmit_success; 
    6169    DWORD recv_success; 
    6170    ushort iframe_xmit_err; 
    6171    ushort recv_buff_unavail; 
    6172    ushort t1_timeouts; 
    6173    ushort ti_timeouts; 
    6174    DWORD reserved1; 
    6175    ushort free_ncbs; 
    6176    ushort max_cfg_ncbs; 
    6177    ushort max_ncbs; 
    6178    ushort xmit_buf_unavail; 
    6179    ushort max_dgram_size; 
    6180    ushort pending_sess; 
    6181    ushort max_cfg_sess; 
    6182    ushort max_sess; 
    6183    ushort max_sess_pkt_size; 
    6184    ushort name_count; 
     6179    UCHAR[1 + 5] adapter_address; 
     6180    UCHAR rev_major; 
     6181    UCHAR reserved0; 
     6182    UCHAR adapter_type; 
     6183    UCHAR rev_minor; 
     6184    ushort duration; 
     6185    ushort frmr_recv; 
     6186    ushort frmr_xmit; 
     6187    ushort iframe_recv_err; 
     6188    ushort xmit_aborts; 
     6189    DWORD xmit_success; 
     6190    DWORD recv_success; 
     6191    ushort iframe_xmit_err; 
     6192    ushort recv_buff_unavail; 
     6193    ushort t1_timeouts; 
     6194    ushort ti_timeouts; 
     6195    DWORD reserved1; 
     6196    ushort free_ncbs; 
     6197    ushort max_cfg_ncbs; 
     6198    ushort max_ncbs; 
     6199    ushort xmit_buf_unavail; 
     6200    ushort max_dgram_size; 
     6201    ushort pending_sess; 
     6202    ushort max_cfg_sess; 
     6203    ushort max_sess; 
     6204    ushort max_sess_pkt_size; 
     6205    ushort name_count; 
    61856206} 
    61866207 
     
    61916212struct ADDJOB_INFO_1 
    61926213{ 
    6193    LPTSTR Path; 
    6194    DWORD JobId; 
     6214    LPTSTR Path; 
     6215    DWORD JobId; 
    61956216} 
    61966217 
     
    62016222struct ANIMATIONINFO 
    62026223{ 
    6203    UINT cbSize; 
    6204    int iMinAnimate; 
     6224    UINT cbSize; 
     6225    int iMinAnimate; 
    62056226} 
    62066227 
     
    62126233struct RECT 
    62136234{ 
    6214     LONG left; 
    6215     LONG top; 
    6216     LONG right; 
    6217     LONG bottom; 
    6218 
    6219  
     6235    LONG left; 
     6236    LONG top; 
     6237    LONG right; 
     6238    LONG bottom; 
     6239
     6240 
     6241alias RECT* LPCRECT; 
    62206242alias RECT* LPRECT; 
    62216243alias RECT _RECT; 
     
    62256247struct RECTL 
    62266248{ 
    6227    LONG left; 
    6228    LONG top; 
    6229    LONG right; 
    6230    LONG bottom; 
     6249    LONG left; 
     6250    LONG top; 
     6251    LONG right; 
     6252    LONG bottom; 
    62316253} 
    62326254 
     
    62346256alias RECTL TRECTL; 
    62356257alias RECTL* PRECTL; 
     6258alias RECTL* LPRECTL; 
     6259alias RECTL* LPCRECTL; 
    62366260 
    62376261struct APPBARDATA 
    62386262{ 
    6239    DWORD cbSize; 
    6240    HWND hWnd; 
    6241    UINT uCallbackMessage; 
    6242    UINT uEdge; 
    6243    RECT rc; 
    6244    LPARAM lParam; 
     6263    DWORD cbSize; 
     6264    HWND hWnd; 
     6265    UINT uCallbackMessage; 
     6266    UINT uEdge; 
     6267    RECT rc; 
     6268    LPARAM lParam; 
    62456269} 
    62466270 
     
    62516275struct BITMAP 
    62526276{ 
    6253    LONG bmType; 
    6254    LONG bmWidth; 
    6255    LONG bmHeight; 
    6256    LONG bmWidthBytes; 
    6257    ushort bmPlanes; 
    6258    ushort bmBitsPixel; 
    6259    LPVOID bmBits; 
     6277    LONG bmType; 
     6278    LONG bmWidth; 
     6279    LONG bmHeight; 
     6280    LONG bmWidthBytes; 
     6281    ushort bmPlanes; 
     6282    ushort bmBitsPixel; 
     6283    LPVOID bmBits; 
    62606284} 
    62616285 
     
    62686292struct BITMAPCOREHEADER 
    62696293{ 
    6270    DWORD bcSize; 
    6271    ushort bcWidth; 
    6272    ushort bcHeight; 
    6273    ushort bcPlanes; 
    6274    ushort bcBitCount; 
     6294    DWORD bcSize; 
     6295    ushort bcWidth; 
     6296    ushort bcHeight; 
     6297    ushort bcPlanes; 
     6298    ushort bcBitCount; 
    62756299} 
    62766300 
     
    62816305struct RGBTRIPLE 
    62826306{ 
    6283    ubyte rgbtBlue; 
    6284    ubyte rgbtGreen; 
    6285    ubyte rgbtRed; 
     6307    ubyte rgbtBlue; 
     6308    ubyte rgbtGreen; 
     6309    ubyte rgbtRed; 
    62866310} 
    62876311 
     
    62926316struct BITMAPCOREINFO 
    62936317{ 
    6294    BITMAPCOREHEADER bmciHeader; 
    6295    RGBTRIPLE[1 + 0] bmciColors; 
     6318    BITMAPCOREHEADER bmciHeader; 
     6319    RGBTRIPLE[1 + 0] bmciColors; 
    62966320} 
    62976321 
     
    63036327struct BITMAPINFOHEADER 
    63046328{ 
    6305    DWORD biSize; 
    6306    LONG biWidth; 
    6307    LONG biHeight; 
    6308    ushort biPlanes; 
    6309    ushort biBitCount; 
    6310    DWORD biCompression; 
    6311    DWORD biSizeImage; 
    6312    LONG biXPelsPerMeter; 
    6313    LONG biYPelsPerMeter; 
    6314    DWORD biClrUsed; 
    6315    DWORD biClrImportant; 
     6329    DWORD biSize; 
     6330    LONG biWidth; 
     6331    LONG biHeight; 
     6332    ushort biPlanes; 
     6333    ushort biBitCount; 
     6334    DWORD biCompression; 
     6335    DWORD biSizeImage; 
     6336    LONG biXPelsPerMeter; 
     6337    LONG biYPelsPerMeter; 
     6338    DWORD biClrUsed; 
     6339    DWORD biClrImportant; 
    63166340} 
    63176341 
     
    63226346struct RGBQUAD 
    63236347{ 
    6324    ubyte rgbBlue; 
    6325    ubyte rgbGreen; 
    6326    ubyte rgbRed; 
    6327    ubyte rgbReserved; 
     6348    ubyte rgbBlue; 
     6349    ubyte rgbGreen; 
     6350    ubyte rgbRed; 
     6351    ubyte rgbReserved; 
    63286352} 
    63296353 
     
    63346358struct BITMAPINFO 
    63356359{ 
    6336    BITMAPINFOHEADER bmiHeader; 
    6337    RGBQUAD[1 + 0] bmiColors; 
     6360    BITMAPINFOHEADER bmiHeader; 
     6361    RGBQUAD[1 + 0] bmiColors; 
    63386362} 
    63396363 
     
    63486372struct CIEXYZ 
    63496373{ 
    6350    FXPT2DOT30 ciexyzX; 
    6351    FXPT2DOT30 ciexyzY; 
    6352    FXPT2DOT30 ciexyzZ; 
     6374    FXPT2DOT30 ciexyzX; 
     6375    FXPT2DOT30 ciexyzY; 
     6376    FXPT2DOT30 ciexyzZ; 
    63536377} 
    63546378 
     
    63606384struct CIEXYZTRIPLE 
    63616385{ 
    6362    CIEXYZ ciexyzRed; 
    6363    CIEXYZ ciexyzGreen; 
    6364    CIEXYZ ciexyzBlue; 
     6386    CIEXYZ ciexyzRed; 
     6387    CIEXYZ ciexyzGreen; 
     6388    CIEXYZ ciexyzBlue; 
    63656389} 
    63666390 
     
    63726396struct BITMAPV4HEADER 
    63736397{ 
    6374    DWORD bV4Size; 
    6375    LONG bV4Width; 
    6376    LONG bV4Height; 
    6377    ushort bV4Planes; 
    6378    ushort bV4BitCount; 
    6379    DWORD bV4V4Compression; 
    6380    DWORD bV4SizeImage; 
    6381    LONG bV4XPelsPerMeter; 
    6382    LONG bV4YPelsPerMeter; 
    6383    DWORD bV4ClrUsed; 
    6384    DWORD bV4ClrImportant; 
    6385    DWORD bV4RedMask; 
    6386    DWORD bV4GreenMask; 
    6387    DWORD bV4BlueMask; 
    6388    DWORD bV4AlphaMask; 
    6389    DWORD bV4CSType; 
    6390    CIEXYZTRIPLE bV4Endpoints; 
    6391    DWORD bV4GammaRed; 
    6392    DWORD bV4GammaGreen; 
    6393    DWORD bV4GammaBlue; 
     6398    DWORD bV4Size; 
     6399    LONG bV4Width; 
     6400    LONG bV4Height; 
     6401    ushort bV4Planes; 
     6402    ushort bV4BitCount; 
     6403    DWORD bV4V4Compression; 
     6404    DWORD bV4SizeImage; 
     6405    LONG bV4XPelsPerMeter; 
     6406    LONG bV4YPelsPerMeter; 
     6407    DWORD bV4ClrUsed; 
     6408    DWORD bV4ClrImportant; 
     6409    DWORD bV4RedMask; 
     6410    DWORD bV4GreenMask; 
     6411    DWORD bV4BlueMask; 
     6412    DWORD bV4AlphaMask; 
     6413    DWORD bV4CSType; 
     6414    CIEXYZTRIPLE bV4Endpoints; 
     6415    DWORD bV4GammaRed; 
     6416    DWORD bV4GammaGreen; 
     6417    DWORD bV4GammaBlue; 
    63946418} 
    63956419 
     
    64006424align(1) struct BITMAPFILEHEADER 
    64016425{ 
    6402    ushort bfType; 
    6403    DWORD bfSize; 
    6404    ushort bfReserved1; 
    6405    ushort bfReserved2; 
    6406    DWORD bfOffBits; 
     6426    ushort bfType; 
     6427    DWORD bfSize; 
     6428    ushort bfReserved1; 
     6429    ushort bfReserved2; 
     6430    DWORD bfOffBits; 
    64076431} 
    64086432 
     
    64106434struct BLOB 
    64116435{ 
    6412    ULONG cbSize; 
    6413    ubyte* pBlobData; 
     6436    ULONG cbSize; 
     6437    ubyte* pBlobData; 
    64146438} 
    64156439 
     
    64206444struct SHITEMID 
    64216445{ 
    6422    USHORT cb; 
    6423    ubyte[1 + 0] abID; 
     6446    USHORT cb; 
     6447    ubyte[1 + 0] abID; 
    64246448} 
    64256449 
     
    64326456struct ITEMIDLIST 
    64336457{ 
    6434    SHITEMID mkid; 
     6458    SHITEMID mkid; 
    64356459} 
    64366460 
     
    64416465alias ITEMIDLIST* PITEMIDLIST; 
    64426466 
    6443 struct BROWSEINFO 
    6444 
    6445     HWND hwndOwner; 
    6446     LPCITEMIDLIST pidlRoot; 
    6447     LPSTR pszDisplayName; 
    6448     LPCSTR lpszTitle; 
    6449     UINT ulFlags; 
    6450     BFFCALLBACK lpfn; 
    6451     LPARAM lParam; 
    6452     int iImage; 
    6453 
    6454  
    6455 alias BROWSEINFO* LPBROWSEINFO; 
    6456 alias BROWSEINFO _BROWSEINFO; 
    6457 alias BROWSEINFO TBROWSEINFO; 
    6458 alias BROWSEINFO* PBROWSEINFO; 
     6467struct BROWSEINFOA 
     6468
     6469    HWND hwndOwner; 
     6470    LPCITEMIDLIST pidlRoot; 
     6471    LPSTR pszDisplayName; 
     6472    LPCSTR lpszTitle; 
     6473    UINT ulFlags; 
     6474    BFFCALLBACK lpfn; 
     6475    LPARAM lParam; 
     6476    int iImage; 
     6477
     6478struct BROWSEINFOW 
     6479
     6480    HWND hwndOwner; 
     6481    LPCITEMIDLIST pidlRoot; 
     6482    LPWSTR pszDisplayName; 
     6483    LPCWSTR lpszTitle; 
     6484    UINT ulFlags; 
     6485    BFFCALLBACK lpfn; 
     6486    LPARAM lParam; 
     6487    int iImage; 
     6488
     6489version( Win32SansUnicode ) 
     6490
     6491    alias BROWSEINFOA BROWSEINFO; 
     6492
     6493else 
     6494
     6495    alias BROWSEINFOW BROWSEINFO; 
     6496
     6497alias BROWSEINFO* PBROWSEINFO, LPBROWSEINFO; 
    64596498 
    64606499struct FILETIME 
    64616500{ 
    6462    DWORD dwLowDateTime; 
    6463    DWORD dwHighDateTime; 
     6501    DWORD dwLowDateTime; 
     6502    DWORD dwHighDateTime; 
    64646503} 
    64656504 
     
    64716510struct BY_HANDLE_FILE_INFORMATION 
    64726511{ 
    6473    DWORD dwFileAttributes; 
    6474    FILETIME ftCreationTime; 
    6475    FILETIME ftLastAccessTime; 
    6476    FILETIME ftLastWriteTime; 
    6477    DWORD dwVolumeSerialNumber; 
    6478    DWORD nFileSizeHigh; 
    6479    DWORD nFileSizeLow; 
    6480    DWORD nNumberOfLinks; 
    6481    DWORD nFileIndexHigh; 
    6482    DWORD nFileIndexLow; 
     6512    DWORD dwFileAttributes; 
     6513    FILETIME ftCreationTime; 
     6514    FILETIME ftLastAccessTime; 
     6515    FILETIME ftLastWriteTime; 
     6516    DWORD dwVolumeSerialNumber; 
     6517    DWORD nFileSizeHigh; 
     6518    DWORD nFileSizeLow; 
     6519    DWORD nNumberOfLinks; 
     6520    DWORD nFileIndexHigh; 
     6521    DWORD nFileIndexLow; 
    64836522} 
    64846523 
     
    64906529struct FIXED 
    64916530{ 
    6492    ushort fract; 
    6493    int value; 
     6531    ushort fract; 
     6532    int value; 
    64946533} 
    64956534 
     
    65006539struct POINT 
    65016540{ 
    6502    LONG x; 
    6503    LONG y; 
     6541    LONG x; 
     6542    LONG y; 
    65046543} 
    65056544 
     
    65116550struct POINTFX 
    65126551{ 
    6513    FIXED x; 
    6514    FIXED y; 
     6552    FIXED x; 
     6553    FIXED y; 
    65156554} 
    65166555 
     
    65216560struct POINTL 
    65226561{ 
    6523    LONG x; 
    6524    LONG y; 
     6562    LONG x; 
     6563    LONG y; 
    65256564} 
    65266565 
     
    65316570struct TSMALLPOINT 
    65326571{ 
    6533    byte X, Y; 
     6572    byte X, Y; 
    65346573} 
    65356574 
     
    65376576struct POINTS 
    65386577{ 
    6539    SHORT x; 
    6540    SHORT y; 
     6578    SHORT x; 
     6579    SHORT y; 
    65416580} 
    65426581 
     
    65476586struct CANDIDATEFORM 
    65486587{ 
    6549    DWORD dwIndex; 
    6550    DWORD dwStyle; 
    6551    POINT ptCurrentPos; 
    6552    RECT rcArea; 
     6588    DWORD dwIndex; 
     6589    DWORD dwStyle; 
     6590    POINT ptCurrentPos; 
     6591    RECT rcArea; 
    65536592} 
    65546593 
     
    65606599struct CANDIDATELIST 
    65616600{ 
    6562    DWORD dwSize; 
    6563    DWORD dwStyle; 
    6564    DWORD dwCount; 
    6565    DWORD dwSelection; 
    6566    DWORD dwPageStart; 
    6567    DWORD dwPageSize; 
    6568    DWORD[1 + 0] dwOffset; 
     6601    DWORD dwSize; 
     6602    DWORD dwStyle; 
     6603    DWORD dwCount; 
     6604    DWORD dwSelection; 
     6605    DWORD dwPageStart; 
     6606    DWORD dwPageSize; 
     6607    DWORD[1 + 0] dwOffset; 
    65696608} 
    65706609 
     
    65766615struct CREATESTRUCT 
    65776616{ 
    6578    LPVOID lpCreateParams; 
    6579    HINST hInstance; 
    6580    HMENU hMenu; 
    6581    HWND hwndParent; 
    6582    int cy; 
    6583    int cx; 
    6584    int y; 
    6585    int x; 
    6586    LONG style; 
    6587    LPCTSTR lpszName; 
    6588    LPCTSTR lpszClass; 
    6589    DWORD dwExStyle; 
     6617    LPVOID lpCreateParams; 
     6618    HINST hInstance; 
     6619    HMENU hMenu; 
     6620    HWND hwndParent; 
     6621    int cy; 
     6622    int cx; 
     6623    int y; 
     6624    int x; 
     6625    LONG style; 
     6626    LPCTSTR lpszName; 
     6627    LPCTSTR lpszClass; 
     6628    DWORD dwExStyle; 
    65906629} 
    65916630 
     
    65976636struct CBT_CREATEWND 
    65986637{ 
    6599    LPCREATESTRUCT lpcs; 
    6600    HWND hwndInsertAfter; 
     6638    LPCREATESTRUCT lpcs; 
     6639    HWND hwndInsertAfter; 
    66016640} 
    66026641 
     
    66076646struct CBTACTIVATESTRUCT 
    66086647{ 
    6609    WINBOOL fMouse; 
    6610    HWND hWndActive; 
     6648    WINBOOL fMouse; 
     6649    HWND hWndActive; 
    66116650} 
    66126651 
     
    66186657{ 
    66196658 
    6620    union 
    6621    
    6622        struct 
    6623        
    6624            WCHAR UnicodeChar; 
    6625            ushort Attributes; 
    6626        
    6627        struct 
    6628        
    6629            char AsciiChar; 
    6630        
    6631    
     6659    union 
     6660   
     6661        struct 
     6662       
     6663            WCHAR UnicodeChar; 
     6664            ushort Attributes; 
     6665       
     6666        struct 
     6667       
     6668            char AsciiChar; 
     6669       
     6670   
    66326671} 
    66336672 
     
    66386677struct CHARFORMAT 
    66396678{ 
    6640    UINT cbSize; 
    6641    DWORD dwMask; 
    6642    DWORD dwEffects; 
    6643    LONG yHeight; 
    6644    LONG yOffset; 
    6645    COLORREF crTextColor; 
    6646    ubyte bCharSet; 
    6647    ubyte bPitchAndFamily; 
    6648    TCHAR[1 + LF_FACESIZE-1] szFaceName; 
     6679    UINT cbSize; 
     6680    DWORD dwMask; 
     6681    DWORD dwEffects; 
     6682    LONG yHeight; 
     6683    LONG yOffset; 
     6684    COLORREF crTextColor; 
     6685    ubyte bCharSet; 
     6686    ubyte bPitchAndFamily; 
     6687    TCHAR[1 + LF_FACESIZE-1] szFaceName; 
    66496688} 
    66506689 
     
    66556694struct CHARRANGE 
    66566695{ 
    6657    LONG cpMin; 
    6658    LONG cpMax; 
     6696    LONG cpMin; 
     6697    LONG cpMax; 
    66596698} 
    66606699 
     
    66656704struct CHARSET 
    66666705{ 
    6667    DWORD[1 + 2] aflBlock; 
    6668    DWORD flLang; 
     6706    DWORD[1 + 2] aflBlock; 
     6707    DWORD flLang; 
    66696708} 
    66706709 
     
    66756714struct FONTSIGNATURE 
    66766715{ 
    6677    DWORD[1 + 3] fsUsb; 
    6678    DWORD[1 + 1] fsCsb; 
     6716    DWORD[1 + 3] fsUsb; 
     6717    DWORD[1 + 1] fsCsb; 
    66796718} 
    66806719 
     
    66866725struct CHARSETINFO 
    66876726{ 
    6688    UINT ciCharset; 
    6689    UINT ciACP; 
    6690    FONTSIGNATURE fs; 
     6727    UINT ciCharset; 
     6728    UINT ciACP; 
     6729    FONTSIGNATURE fs; 
    66916730} 
    66926731 
     
    66956734alias CHARSETINFO* PCHARSETINFO; 
    66966735 
    6697 struct TCHOOSECOLOR 
    6698 
    6699     DWORD lStructSize; 
    6700     HWND hwndOwner; 
    6701     HWND hInstance; 
    6702     COLORREF rgbResult; 
    6703     COLORREF* lpCustColors; 
    6704     DWORD Flags; 
    6705     LPARAM lCustData; 
    6706     LPCCHOOKPROC lpfnHook; 
    6707     LPCTSTR lpTemplateName; 
    6708 
    6709  
    6710 alias TCHOOSECOLOR* LPCHOOSECOLOR; 
    6711 alias TCHOOSECOLOR* PCHOOSECOLOR; 
    6712  
    6713 struct LOGFONT 
    6714 
    6715     LONG lfHeight; 
    6716     LONG lfWidth; 
    6717     LONG lfEscapement; 
    6718     LONG lfOrientation; 
    6719     LONG lfWeight; 
    6720     ubyte lfItalic; 
    6721     ubyte lfUnderline; 
    6722     ubyte lfStrikeOut; 
    6723     ubyte lfCharSet; 
    6724     ubyte lfOutPrecision; 
    6725