Changeset 237:e2affbeb686d

Show
Ignore:
Timestamp:
06/18/08 21:25:36 (4 months ago)
Author:
Frank Benoit <benoit@tionex.de>
branch:
default
Message:

Making tango.sys.win32.Types and dwt.internal.win32.WINTYPES to match common declaration. Make ansi charactars of type ubyte.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • dwt/accessibility/Accessible.d

    r213 r237  
    10101010                tvItem.stateMask = OS.TVIS_STATEIMAGEMASK; 
    10111011                if (OS.COMCTL32_MAJOR >= 6) { 
    1012                     tvItem.hItem = cast(HANDLE) OS.SendMessage (hwnd, OS.TVM_MAPACCIDTOHTREEITEM, v.lVal, 0); 
     1012                    tvItem.hItem = cast(HTREEITEM) OS.SendMessage (hwnd, OS.TVM_MAPACCIDTOHTREEITEM, v.lVal, 0); 
    10131013                } else { 
    1014                     tvItem.hItem = cast(HANDLE) v.lVal; 
     1014                    tvItem.hItem = cast(HTREEITEM) v.lVal; 
    10151015                } 
    10161016                auto result = OS.SendMessage (hwnd, OS.TVM_GETITEM, 0, &tvItem); 
  • dwt/dnd/HTMLTransfer.d

    r213 r237  
    133133    auto wstrz = StrToTCHARz(OS.CP_UTF8,buffer.toString); 
    134134    cchMultiByte = OS.WideCharToMultiByte(OS.CP_UTF8, 0, wstrz, -1, null, 0, null, null); 
    135     auto lpMultiByteStr = cast(char*) OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, cchMultiByte); 
     135    auto lpMultiByteStr = cast(CHAR*) OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, cchMultiByte); 
    136136    OS.WideCharToMultiByte(OS.CP_UTF8, 0, wstrz, -1, lpMultiByteStr, cchMultiByte, null, null); 
    137137    transferData.stgmedium = new STGMEDIUM(); 
     
    166166 
    167167    try { 
    168         auto lpMultiByteStr = cast(char*) OS.GlobalLock(hMem); 
     168        auto lpMultiByteStr = cast(CHAR*) OS.GlobalLock(hMem); 
    169169        if (lpMultiByteStr is null) return null; 
    170170        try { 
  • dwt/dnd/ImageTransfer.d

    r213 r237  
    183183                DIBSECTION dib; 
    184184                OS.GetObject(memDib, DIBSECTION.sizeof, &dib); 
    185                 int biHeight = dib.biHeight; 
    186                 int scanline = dib.biSizeImage / biHeight; 
     185                int biHeight = dib.dsBmih.biHeight; 
     186                int scanline = dib.dsBmih.biSizeImage / biHeight; 
    187187                auto pDestBits = pBits; 
    188188                auto pSourceBits = bits + scanline * (biHeight - 1); 
  • dwt/dnd/RTFTransfer.d

    r212 r237  
    9090        return; 
    9191    } 
    92     auto lpMultiByteStr = cast(char*)OS.GlobalAlloc(COM.GMEM_FIXED | COM.GMEM_ZEROINIT, cchMultiByte); 
     92    auto lpMultiByteStr = cast(CHAR*)OS.GlobalAlloc(COM.GMEM_FIXED | COM.GMEM_ZEROINIT, cchMultiByte); 
    9393    OS.WideCharToMultiByte(codePage, 0, chars, -1, lpMultiByteStr, cchMultiByte, null, null); 
    9494    transferData.stgmedium = new STGMEDIUM(); 
     
    122122    auto hMem = stgmedium.unionField; 
    123123    try { 
    124         auto lpMultiByteStr = cast(char*) OS.GlobalLock(hMem); 
     124        auto lpMultiByteStr = cast(CHAR*) OS.GlobalLock(hMem); 
    125125        if (lpMultiByteStr is null) return null; 
    126126        try { 
  • dwt/dnd/TextTransfer.d

    r212 r237  
    105105                return; 
    106106            } 
    107             auto lpMultiByteStr = cast(char*)OS.GlobalAlloc(COM.GMEM_FIXED | COM.GMEM_ZEROINIT, cchMultiByte); 
     107            auto lpMultiByteStr = cast(CHAR*)OS.GlobalAlloc(COM.GMEM_FIXED | COM.GMEM_ZEROINIT, cchMultiByte); 
    108108            OS.WideCharToMultiByte(codePage, 0, chars.ptr, -1, lpMultiByteStr, cchMultiByte, null, null); 
    109109            transferData.stgmedium = new STGMEDIUM(); 
     
    164164            } 
    165165            case CF_TEXTID: { 
    166                 auto lpMultiByteStr = cast(char*)OS.GlobalLock(hMem); 
     166                auto lpMultiByteStr = cast(CHAR*)OS.GlobalLock(hMem); 
    167167                if (lpMultiByteStr is null) return null; 
    168168                try { 
  • dwt/dnd/TreeDropTargetEffect.d

    r213 r237  
    129129        if (dropIndex !is -1) { 
    130130            TVITEM tvItem; 
    131             tvItem.hItem = cast(HANDLE) dropIndex; 
     131            tvItem.hItem = cast(HTREEITEM) dropIndex; 
    132132            tvItem.mask = OS.TVIF_STATE; 
    133133            tvItem.stateMask = OS.TVIS_DROPHILITED; 
     
    238238        if (dropIndex !is -1 && (dropIndex !is cast(int)hItem || (effect & DND.FEEDBACK_SELECT) is 0)) { 
    239239            TVITEM tvItem; 
    240             tvItem.hItem = cast(HANDLE) dropIndex; 
     240            tvItem.hItem = cast(HTREEITEM) dropIndex; 
    241241            tvItem.mask = OS.TVIF_STATE; 
    242242            tvItem.stateMask = OS.TVIS_DROPHILITED; 
     
    247247        if (cast(int)hItem !is -1 && cast(int)hItem !is dropIndex && (effect & DND.FEEDBACK_SELECT) !is 0) { 
    248248            TVITEM tvItem; 
    249             tvItem.hItem = cast(HANDLE) hItem; 
     249            tvItem.hItem = cast(HTREEITEM) hItem; 
    250250            tvItem.mask = OS.TVIF_STATE; 
    251251            tvItem.stateMask = OS.TVIS_DROPHILITED; 
  • dwt/dnd/URLTransfer.d

    r213 r237  
    9191        return; 
    9292    } 
    93     auto lpMultiByteStr = cast(char*)OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, cchMultiByte); 
     93    auto lpMultiByteStr = cast(CHAR*)OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, cchMultiByte); 
    9494    OS.WideCharToMultiByte(codePage, 0, chars.ptr, -1, lpMultiByteStr, cchMultiByte, null, null); 
    9595    transferData.stgmedium = new STGMEDIUM(); 
     
    123123    auto hMem = stgmedium.unionField; 
    124124    try { 
    125         auto lpMultiByteStr = cast(char*)OS.GlobalLock(hMem); 
     125        auto lpMultiByteStr = cast(CHAR*)OS.GlobalLock(hMem); 
    126126        if (lpMultiByteStr is null) return null; 
    127127        try { 
  • dwt/graphics/Image.d

    r213 r237  
    14221422            if (depth <= 8) { 
    14231423                if (isDib) { 
    1424                     numColors = dib.biClrUsed; 
     1424                    numColors = dib.dsBmih.biClrUsed; 
    14251425                } else { 
    14261426                    numColors = 1 << depth; 
     
    14561456            int imageSize; 
    14571457            if (isDib) { 
    1458                 imageSize = dib.biSizeImage; 
     1458                imageSize = dib.dsBmih.biSizeImage; 
    14591459            } else { 
    14601460                /* Call with null lpBits to get the image size */ 
     
    14701470                    if (this.handle !is handle) { 
    14711471                        /* get image data from the temporary DIB */ 
    1472                         OS.MoveMemory(data.ptr, dib.bmBits, imageSize); 
     1472                        OS.MoveMemory(data.ptr, dib.dsBm.bmBits, imageSize); 
    14731473                    } 
    14741474                } else { 
  • dwt/internal/BidiUtil.d

    r213 r237  
    194194    auto lpOrder = result.lpOrder = cast(uint*)OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount * 4); 
    195195    auto lpDx = result.lpDx = cast(int*)OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount * 4); 
    196     auto lpClass = result.lpClass = cast(char*)OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount); 
     196    auto lpClass = result.lpClass = cast(CHAR*)OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount); 
    197197    auto lpGlyphs = result.lpGlyphs = cast(wchar*)OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount * 2); 
    198198 
     
    324324    result.nGlyphs = byteCount; 
    325325    auto lpOrder = result.lpOrder = cast(uint*) OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount * 4); 
    326     auto lpClass = result.lpClass = cast(char*) OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount); 
     326    auto lpClass = result.lpClass = cast(CHAR*) OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount); 
    327327 
    328328    // set required dwFlags, these values will affect how the text gets rendered and 
  • dwt/internal/ole/win32/extras.d

    r97 r237  
    215215alias GUID *REFGUID; 
    216216 
    217 alias IID *REFIID; 
     217//alias IID *REFIID; 
    218218 
    219219alias CLSID *REFCLSID; 
  • dwt/internal/win32/OS.d

    r233 r237  
    224224        info.dwOSVersionInfoSize = OSVERSIONINFO.sizeof; 
    225225        if(!OS.GetVersionEx(&info)){ 
    226             MessageBoxA(null, "DWT Unicode version applications can't run in a non-Unicode platform !", "Error", MB_OK|MB_ICONERROR); 
     226            MessageBoxA(null, 
     227                    _PCHAR!("DWT Unicode version applications can't run in a non-Unicode platform !"), 
     228                    _PCHAR!("Error"), 
     229                    MB_OK|MB_ICONERROR); 
    227230            tango.stdc.stdlib.exit(-1); 
    228231        } 
     
    35223525    return cast(bool) SendMessage( hwnd, TVM_GETITEMRECT, code, cast(int)prc ); 
    35233526} 
    3524 static int strlen( char* ptr ){ 
    3525     return tango.stdc.string.strlen( ptr ); 
     3527static int strlen( CHAR* ptr ){ 
     3528    return tango.stdc.string.strlen( cast(char*)ptr ); 
    35263529} 
    35273530 
     
    35403543// convert UTF-8 to MBCS 
    35413544alias StrToMBCS StrToMBCSs; 
    3542 public char[] StrToMBCS(char[] sc, uint codepage = 0) { 
    3543     char[] ret = sc; 
     3545public CHAR[] StrToMBCS(char[] sc, uint codepage = 0) { 
     3546    CHAR[] ret = cast(CHAR[]) sc; 
    35443547    try{ 
    35453548        foreach (char c; sc){ 
    35463549            if (c >= 0x80) 
    35473550            { 
    3548                 char[] result; 
     3551                CHAR[] result; 
    35493552                int i; 
    35503553                wchar[] ws = .toString16(sc); 
     
    35573560    }catch(Exception e){ 
    35583561        // do nothing 
    3559         ret = ""
     3562        ret = null
    35603563    } 
    35613564    return ret; 
     
    36053608} 
    36063609 
    3607 public char[] MBCSsToStr(char[] string, uint codepage = 0){ 
     3610public char[] MBCSsToStr(CHAR[] string, uint codepage = 0){ 
    36083611    return MBCSzToStr( string.ptr, string.length, codepage); 
    36093612} 
    36103613 
    3611 public char[] MBCSzToStr(char* pString, int _length = -1, uint codepage = 0) { 
     3614public char[] MBCSzToStr(PCHAR pString, int _length = -1, uint codepage = 0) { 
    36123615    // null terminated string pointer 
    36133616    if(_length == -1){ 
     
    36803683 
    36813684 
    3682 public static wchar[] _mbcszToWs(char* pMBCS, int len, uint codepage = 0) 
     3685public static wchar[] _mbcszToWs(PCHAR pMBCS, int len, uint codepage = 0) 
    36833686{ 
    36843687    wchar[] wbuf; 
  • dwt/internal/win32/WINTYPES.d

    r221 r237  
    55module dwt.internal.win32.WINTYPES; 
    66 
    7 //public import tango_sys_win32.Types; 
    8  
    9  
    10 version(ANSI){ 
    11     alias char  TCHAR; 
    12 }else{ 
    13     alias wchar TCHAR; 
    14 } 
    15  
    16  
    17 union LARGE_INTEGER { 
    18     struct { 
    19         DWORD LowPart; 
    20         LONG HighPart; 
    21     }; 
    22     struct u { 
    23         DWORD LowPart; 
    24         LONG HighPart; 
    25     }; 
    26     LONGLONG QuadPart; 
    27 } 
    28 alias LARGE_INTEGER * PLARGE_INTEGER; 
    29  
    30  
    31 /////////////////////////////////////////////////////////////////////////////////////////// 
    32 /////////////////////////////////////////////////////////////////////////////////////////// 
    337/* 
    348    adopted form tango 
     
    3711 
    3812/+ Aliases, Types, and Constants +/ 
    39 const int NULL = 0
     13const void* NULL = null
    4014alias int SCODE; 
    4115alias void VOID; 
     
    4620alias uint CALTYPE; 
    4721alias uint CALID; 
    48 alias char CCHAR; 
    49 alias char* PCHAR; 
     22alias ubyte CCHAR; 
     23alias ubyte* PCHAR; 
    5024alias uint COLORREF; 
    5125alias uint TCOLORREF; 
    52 alias char CHAR; 
     26alias ubyte CHAR; 
    5327alias ubyte BYTE; 
    5428alias short INT16; 
     
    6741const BOOL FALSE = 0; 
    6842const BOOL TRUE = -1; 
    69 alias char* PANSICHAR; 
     43alias ubyte* PANSICHAR; 
    7044alias wchar* PWIDECHAR; 
    7145alias int* PINTEGER; 
    72 alias double LONGLONG; 
     46alias long LONGLONG; 
    7347alias LONGLONG* PLONGLONG; 
    74 alias double DWORDLONG; 
     48alias ulong DWORDLONG; 
    7549alias DWORDLONG* PDWORDLONG; 
    76 alias double FLOAT; 
     50alias float FLOAT; 
    7751alias void* HANDLE; 
    7852alias HANDLE HACCEL; 
     
    154128alias wchar* PCWSTR; 
    155129alias DWORD* PDWORD; 
    156 alias double* PFLOAT; 
     130alias float* PFLOAT; 
    157131alias HANDLE* PHANDLE; 
    158132alias HKEY* PHKEY; 
     
    182156alias ubyte TBYTE; 
    183157 
    184 // version dependent 
    185 //alias wchar TCHAR; 
     158version(Win32SansUnicode){ 
     159    alias ubyte  TCHAR; 
     160}else{ 
     161    alias wchar TCHAR; 
     162
    186163 
    187164alias ubyte BCHAR; 
     
    194171alias int ACL_INFORMATION_CLASS; 
    195172 
    196 // struct GUID { // size is 16 
    197 // align(1): 
    198 //  DWORD   Data1; 
    199 //  WORD    Data2; 
    200 //  WORD    Data3; 
    201 //  BYTE[8] Data4; 
    202 // } 
    203  
    204 enum {ASSOCF_INIT_BYEXENAME, 
    205     ASSOCF_OPEN_BYEXENAME, 
    206     ASSOCF_INIT_DEFAULTTOSTAR, 
    207     ASSOCF_INIT_DEFAULTTOFOLDER, 
    208     ASSOCF_NOUSERSETTINGS, 
    209     ASSOCF_NOTRUNCATE, 
    210     ASSOCF_VERIFY, 
    211     ASSOCF_REMAPRUNDLL, 
    212     ASSOCF_NOFIXUPS, 
    213     ASSOCF_IGNOREBASECLASS 
    214 }; 
    215  
    216 alias DWORD ASSOCF; 
     173alias GUID IID; 
     174alias IID* REFIID; 
     175 
     176// Cast a string literal to a ubyte*=PCHAR 
     177template _PCHAR( char[] a ){ 
     178    const PCHAR _PCHAR = cast(PCHAR)a.ptr; 
     179
    217180 
    218181enum { AclRevisionInformation = 1, AclSizeInformation,  }; 
     
    268231alias WINBOOL (*ENUMWINDOWSTATIONPROC)(LPTSTR, LPARAM); 
    269232alias void (*SENDASYNCPROC)(HWND, UINT, DWORD); 
    270 alias void (*TIMERPROC)(HWND, UINT, UINT); 
     233alias void (*TIMERPROC)(HWND, UINT, UINT, DWORD); 
    271234alias BOOL(*MONITORENUMPROC)(HMONITOR, HDC, RECT*, LPARAM); 
    272235alias FARPROC GRAYSTRINGPROC; 
     
    297260 
    298261const { 
    299  char* SE_CREATE_TOKEN_NAME = ("SeCreateTokenPrivilege"); 
    300  char* SE_ASSIGNPRIMARYTOKEN_NAME = ("SeAssignPrimaryTokenPrivilege"); 
    301  char* SE_LOCK_MEMORY_NAME = ("SeLockMemoryPrivilege"); 
    302  char* SE_INCREASE_QUOTA_NAME = ("SeIncreaseQuotaPrivilege"); 
    303  char* SE_UNSOLICITED_INPUT_NAME = ("SeUnsolicitedInputPrivilege"); 
    304  char* SE_MACHINE_ACCOUNT_NAME = ("SeMachineAccountPrivilege"); 
    305  char* SE_TCB_NAME = ("SeTcbPrivilege"); 
    306  char* SE_SECURITY_NAME = ("SeSecurityPrivilege"); 
    307  char* SE_TAKE_OWNERSHIP_NAME = ("SeTakeOwnershipPrivilege"); 
    308  char* SE_LOAD_DRIVER_NAME = ("SeLoadDriverPrivilege"); 
    309  char* SE_SYSTEM_PROFILE_NAME = ("SeSystemProfilePrivilege"); 
    310  char* SE_SYSTEMTIME_NAME = ("SeSystemtimePrivilege"); 
    311  char* SE_PROF_SINGLE_PROCESS_NAME = ("SeProfileSingleProcessPrivilege"); 
    312  char* SE_INC_BASE_PRIORITY_NAME = ("SeIncreaseBasePriorityPrivilege"); 
    313  char* SE_CREATE_PAGEFILE_NAME = ("SeCreatePagefilePrivilege"); 
    314  char* SE_CREATE_PERMANENT_NAME = ("SeCreatePermanentPrivilege"); 
    315  char* SE_BACKUP_NAME = ("SeBackupPrivilege"); 
    316  char* SE_RESTORE_NAME = ("SeRestorePrivilege"); 
    317  char* SE_SHUTDOWN_NAME = ("SeShutdownPrivilege"); 
    318  char* SE_DEBUG_NAME = ("SeDebugPrivilege"); 
    319  char* SE_AUDIT_NAME = ("SeAuditPrivilege"); 
    320  char* SE_SYSTEM_ENVIRONMENT_NAME = ("SeSystemEnvironmentPrivilege"); 
    321  char* SE_CHANGE_NOTIFY_NAME = ("SeChangeNotifyPrivilege"); 
    322  char* SE_REMOTE_SHUTDOWN_NAME = ("SeRemoteShutdownPrivilege"); 
    323  char* SERVICES_ACTIVE_DATABASEA = ("ServicesActive"); 
    324  char* SERVICES_FAILED_DATABASEA = ("ServicesFailed"); 
    325  char* SC_GROUP_IDENTIFIERA = ("+"); 
    326  char* SERVICES_ACTIVE_DATABASE = (SERVICES_ACTIVE_DATABASEA); 
    327  char* SERVICES_FAILED_DATABASE = (SERVICES_FAILED_DATABASEA); 
    328  char* SC_GROUP_IDENTIFIER = (SC_GROUP_IDENTIFIERA); 
     262    LPCTSTR SE_CREATE_TOKEN_NAME = ("SeCreateTokenPrivilege"); 
     263    LPCTSTR SE_ASSIGNPRIMARYTOKEN_NAME = ("SeAssignPrimaryTokenPrivilege"); 
     264    LPCTSTR SE_LOCK_MEMORY_NAME = ("SeLockMemoryPrivilege"); 
     265    LPCTSTR SE_INCREASE_QUOTA_NAME = ("SeIncreaseQuotaPrivilege"); 
     266    LPCTSTR SE_UNSOLICITED_INPUT_NAME = ("SeUnsolicitedInputPrivilege"); 
     267    LPCTSTR SE_MACHINE_ACCOUNT_NAME = ("SeMachineAccountPrivilege"); 
     268    LPCTSTR SE_TCB_NAME = ("SeTcbPrivilege"); 
     269    LPCTSTR SE_SECURITY_NAME = ("SeSecurityPrivilege"); 
     270    LPCTSTR SE_TAKE_OWNERSHIP_NAME = ("SeTakeOwnershipPrivilege"); 
     271    LPCTSTR SE_LOAD_DRIVER_NAME = ("SeLoadDriverPrivilege"); 
     272    LPCTSTR SE_SYSTEM_PROFILE_NAME = ("SeSystemProfilePrivilege"); 
     273    LPCTSTR SE_SYSTEMTIME_NAME = ("SeSystemtimePrivilege"); 
     274    LPCTSTR SE_PROF_SINGLE_PROCESS_NAME = ("SeProfileSingleProcessPrivilege"); 
     275    LPCTSTR SE_INC_BASE_PRIORITY_NAME = ("SeIncreaseBasePriorityPrivilege"); 
     276    LPCTSTR SE_CREATE_PAGEFILE_NAME = ("SeCreatePagefilePrivilege"); 
     277    LPCTSTR SE_CREATE_PERMANENT_NAME = ("SeCreatePermanentPrivilege"); 
     278    LPCTSTR SE_BACKUP_NAME = ("SeBackupPrivilege"); 
     279    LPCTSTR SE_RESTORE_NAME = ("SeRestorePrivilege"); 
     280    LPCTSTR SE_SHUTDOWN_NAME = ("SeShutdownPrivilege"); 
     281    LPCTSTR SE_DEBUG_NAME = ("SeDebugPrivilege"); 
     282    LPCTSTR SE_AUDIT_NAME = ("SeAuditPrivilege"); 
     283    LPCTSTR SE_SYSTEM_ENVIRONMENT_NAME = ("SeSystemEnvironmentPrivilege"); 
     284    LPCTSTR SE_CHANGE_NOTIFY_NAME = ("SeChangeNotifyPrivilege"); 
     285    LPCTSTR SE_REMOTE_SHUTDOWN_NAME = ("SeRemoteShutdownPrivilege"); 
     286 
     287    LPCSTR  SERVICES_ACTIVE_DATABASEA = _PCHAR!("ServicesActive"); 
     288    LPCWSTR SERVICES_ACTIVE_DATABASEW = ("ServicesActive"); 
     289    LPCSTR  SERVICES_FAILED_DATABASEA = _PCHAR!("ServicesFailed"); 
     290    LPCWSTR SERVICES_FAILED_DATABASEW = ("ServicesFailed"); 
     291    LPCSTR  SC_GROUP_IDENTIFIERA = _PCHAR!("+"); 
     292    LPCWSTR SC_GROUP_IDENTIFIERW = ("+"); 
     293    version(Win32SansUnicode){ 
     294        alias SERVICES_ACTIVE_DATABASEA SERVICES_ACTIVE_DATABASE; 
     295        alias SERVICES_FAILED_DATABASEA SERVICES_FAILED_DATABASE; 
     296        alias SC_GROUP_IDENTIFIERA SC_GROUP_IDENTIFIER; 
     297    } 
     298    else{ 
     299        alias SERVICES_ACTIVE_DATABASEW SERVICES_ACTIVE_DATABASE; 
     300        alias SERVICES_FAILED_DATABASEW SERVICES_FAILED_DATABASE; 
     301        alias SC_GROUP_IDENTIFIERW SC_GROUP_IDENTIFIER; 
     302    } 
    329303} 
    330304 
     
    13071281    GENERIC_READ = (0x80000000), 
    13081282    GENERIC_WRITE = (0x40000000), 
     1283    GENERIC_EXECUTE = (0x20000000), 
    13091284    FILE_READ_DATA = (0x0001), 
    13101285    FILE_LIST_DIRECTORY = (0x0001), 
     
    14881463    CREATE_NEW_CONSOLE = (16), 
    14891464    CREATE_NEW_PROCESS_GROUP = (512), 
     1465    CREATE_NO_WINDOW = (0x8000000), 
    14901466    CREATE_SEPARATE_WOW_VDM = (2048), 
    14911467    CREATE_SUSPENDED = (4), 
     
    18631839    FILE_MAP_WRITE = (2), 
    18641840    FILE_MAP_COPY = (1), 
     1841    FILE_MAP_EXECUTE = (0x20), 
    18651842    MUTEX_ALL_ACCESS = (0x1f0001), 
    18661843    MUTEX_MODIFY_STATE = (1), 
     
    28612838    SC_MANAGER_QUERY_LOCK_STATUS = (16), 
    28622839    SC_MANAGER_MODIFY_BOOT_CONFIG = (32), 
    2863     HWND_BROADCAST = (0xFFFF), 
    28642840    TAPE_FORMAT = (0x5), 
    28652841    TAPE_LOAD = (0), 
     
    29012877    RDW_ALLCHILDREN = (128), 
    29022878    RDW_NOCHILDREN = (64), 
     2879/* 
     2880   // 
    29032881    HKEY_CLASSES_ROOT = (0x80000000), 
    29042882    HKEY_CURRENT_USER = (0x80000001), 
     
    29082886    HKEY_CURRENT_CONFIG = (0x80000005), 
    29092887    HKEY_DYN_DATA = (0x80000006), 
     2888*/ 
    29102889    REG_OPTION_VOLATILE = (0x1), 
    29112890    REG_OPTION_NON_VOLATILE = (0), 
     
    31283107    EXCEPTION_CONTINUE_EXECUTION = -((1)), 
    31293108    EXCEPTION_CONTINUE_SEARCH = (0), 
    3130     HWND_BOTTOM = (1), 
    3131     HWND_NOTOPMOST = -(2), 
    3132     HWND_TOP = (0), 
    3133     HWND_TOPMOST = -(1), 
    31343109    SWP_DRAWFRAME = (32), 
    31353110    SWP_FRAMECHANGED = (32), 
     
    41164091} 
    41174092const { 
    4118 wchar* LPSTR_TEXTCALLBACKW = cast(LPWSTR)(-(1)); 
    4119 char* LPSTR_TEXTCALLBACKA = cast(LPSTR)(-(1)); 
    4120 char* LPSTR_TEXTCALLBACK = (LPSTR_TEXTCALLBACKA); 
     4093    LPWSTR LPSTR_TEXTCALLBACKW = cast(LPWSTR)(-(1)); 
     4094    LPSTR  LPSTR_TEXTCALLBACKA = cast(LPSTR)(-(1)); 
     4095    version(Win32SansUnicode){ 
     4096        alias LPSTR_TEXTCALLBACKA LPSTR_TEXTCALLBACK; 
     4097    } 
     4098    else{ 
     4099        alias LPSTR_TEXTCALLBACKW LPSTR_TEXTCALLBACK; 
     4100    } 
    41214101} 
    41224102enum : DWORD { 
     
    41964176} 
    41974177 
    4198 alias HANDLE HTREEITEM; 
     4178alias TREEITEM* HTREEITEM; 
    41994179alias TREEITEM TTREEITEM; 
    42004180alias TREEITEM* PTREEITEM; 
     
    45944574char* SHAREVISTRING = (SHAREVISTRINGA); 
    45954575} 
     4576 
     4577const { 
     4578HWND HWND_DESKTOP = cast(HWND) 0; 
     4579HWND HWND_BOTTOM = cast(HWND) 1; 
     4580HWND HWND_NOTOPMOST = cast(HWND) -2; 
     4581HWND HWND_TOP = cast(HWND) 0; 
     4582HWND HWND_TOPMOST = cast(HWND) -1; 
     4583HWND HWND_BROADCAST = cast(HWND) 0xFFFF; 
     4584} 
     4585 
    45964586enum : DWORD { 
    45974587    CD_LBSELCHANGE = (0), 
     
    48894879    PRF_NONCLIENT = (0x2), 
    48904880    PRF_OWNED = (0x20), 
    4891     HWND_DESKTOP = (0), 
    48924881    SC_CLOSE = (61536), 
    48934882    SC___FILE__HELP = (61824), 
     
    64566445alias BLOB* PBLOB; 
    64576446 
    6458 // struct SHITEMID 
    6459 //
    6460 //     USHORT cb; 
    6461 //     ubyte[1 + 0] abID; 
    6462 //
    6463 // 
    6464 // alias SHITEMID* LPSHITEMID; 
    6465 // alias SHITEMID* LPCSHITEMID; 
    6466 // alias SHITEMID _SHITEMID; 
    6467 // alias SHITEMID TSHITEMID; 
    6468 // alias SHITEMID* PSHITEMID; 
     6447struct SHITEMID 
     6448
     6449    USHORT cb; 
     6450    ubyte[1 + 0] abID; 
     6451
     6452 
     6453alias SHITEMID* LPSHITEMID; 
     6454alias SHITEMID* LPCSHITEMID; 
     6455alias SHITEMID _SHITEMID; 
     6456alias SHITEMID TSHITEMID; 
     6457alias SHITEMID* PSHITEMID; 
    64696458 
    64706459struct ITEMIDLIST 
     
    64796468alias ITEMIDLIST* PITEMIDLIST; 
    64806469 
    6481 // struct BROWSEINFO 
    6482 // { 
    6483 //     HWND hwndOwner; 
    6484 //     LPCITEMIDLIST pidlRoot; 
    6485 //     LPSTR pszDisplayName; 
    6486 //     LPCSTR lpszTitle; 
    6487 //     UINT ulFlags; 
    6488 //     BFFCALLBACK lpfn; 
    6489 //     LPARAM lParam; 
    6490 //     int iImage; 
    6491 // } 
    6492  
    6493 // alias BROWSEINFO* LPBROWSEINFO; 
    6494 // alias BROWSEINFO _BROWSEINFO; 
    6495 // alias BROWSEINFO TBROWSEINFO; 
    6496 // alias BROWSEINFO* PBROWSEINFO; 
     6470struct BROWSEINFOA 
     6471
     6472    HWND hwndOwner; 
     6473    LPCITEMIDLIST pidlRoot; 
     6474    LPSTR pszDisplayName; 
     6475    LPCSTR lpszTitle; 
     6476    UINT ulFlags; 
     6477    BFFCALLBACK lpfn; 
     6478    LPARAM lParam; 
     6479    int iImage; 
     6480
     6481struct BROWSEINFOW 
     6482
     6483    HWND hwndOwner; 
     6484    LPCITEMIDLIST pidlRoot; 
     6485    LPWSTR pszDisplayName; 
     6486    LPCWSTR lpszTitle; 
     6487    UINT ulFlags; 
     6488    BFFCALLBACK lpfn; 
     6489    LPARAM lParam; 
     6490    int iImage; 
     6491
     6492version( Win32SansUnicode ) 
     6493
     6494    alias BROWSEINFOA BROWSEINFO; 
     6495
     6496else 
     6497
     6498    alias BROWSEINFOW BROWSEINFO; 
     6499
     6500alias BROWSEINFO* PBROWSEINFO, LPBROWSEINFO; 
    64976501 
    64986502struct FILETIME 
     
    66126616alias CANDIDATELIST* PCANDIDATELIST; 
    66136617 
    6614 // struct CREATESTRUCT 
    6615 //
    6616 //     LPVOID lpCreateParams; 
    6617 //     HINST hInstance; 
    6618 //     HMENU hMenu; 
    6619 //     HWND hwndParent; 
    6620 //     int cy; 
    6621 //     int cx; 
    6622 //     int y; 
    6623 //     int x; 
    6624 //     LONG style; 
    6625 //     LPCTSTR lpszName; 
    6626 //     LPCTSTR lpszClass; 
    6627 //     DWORD dwExStyle; 
    6628 //
     6618struct CREATESTRUCT 
     6619
     6620    LPVOID lpCreateParams; 
     6621    HINST hInstance; 
     6622    HMENU hMenu; 
     6623    HWND hwndParent; 
     6624    int cy; 
     6625    int cx; 
     6626    int y; 
     6627    int x; 
     6628    LONG style; 
     6629    LPCTSTR lpszName; 
     6630    LPCTSTR lpszClass; 
     6631    DWORD dwExStyle; 
     6632
    66296633 
    66306634alias CREATESTRUCT* LPCREATESTRUCT; 
     
    67116715alias CHARSET* PCHARSET; 
    67126716 
    6713 // struct FONTSIGNATURE 
    6714 //
    6715 //     DWORD[1 + 3] fsUsb; 
    6716 //     DWORD[1 + 1] fsCsb; 
    6717 //
    6718 // 
    6719 // alias FONTSIGNATURE* LPFONTSIGNATURE; 
    6720 // alias FONTSIGNATURE TAGFONTSIGNATURE; 
    6721 // alias FONTSIGNATURE TFONTSIGNATURE; 
    6722 // alias FONTSIGNATURE* PFONTSIGNATURE; 
     6717struct FONTSIGNATURE 
     6718
     6719    DWORD[1 + 3] fsUsb; 
     6720    DWORD[1 + 1] fsCsb; 
     6721
     6722 
     6723alias FONTSIGNATURE* LPFONTSIGNATURE; 
     6724alias FONTSIGNATURE TAGFONTSIGNATURE; 
     6725alias FONTSIGNATURE TFONTSIGNATURE; 
     6726alias FONTSIGNATURE* PFONTSIGNATURE; 
    67236727 
    67246728struct CHARSETINFO 
     
    67336737alias CHARSETINFO* PCHARSETINFO; 
    67346738 
    6735 // struct TCHOOSECOLOR 
    6736 // { 
    6737 //     DWORD lStructSize; 
    6738 //     HWND hwndOwner; 
    6739 //     HWND hInstance; 
    6740 //     COLORREF rgbResult; 
    6741 //     COLORREF* lpCustColors; 
    6742 //     DWORD Flags; 
    6743 //     LPARAM lCustData; 
    6744 //     LPCCHOOKPROC lpfnHook; 
    6745 //     LPCTSTR lpTemplateName; 
    6746 // } 
    6747 // 
    6748 // alias TCHOOSECOLOR* LPCHOOSECOLOR; 
    6749 // alias TCHOOSECOLOR* PCHOOSECOLOR; 
    6750  
    6751 // struct LOGFONTA 
    6752 // { 
    6753 //     LONG lfHeight; 
    6754 //     LONG lfWidth; 
    6755 //     LONG lfEscapement; 
    6756 //     LONG lfOrientation; 
    6757 //     LONG lfWeight; 
    6758 //     ubyte lfItalic; 
    6759 //     ubyte lfUnderline; 
    6760 //     ubyte lfStrikeOut; 
    6761 //     ubyte lfCharSet; 
    6762 //     ubyte lfOutPrecision; 
    6763 //     ubyte lfClipPrecision; 
    6764 //     ubyte lfQuality; 
    6765 //     ubyte lfPitchAndFamily; 
    6766 //     TCHAR[1 + LF_FACESIZE-1] lfFaceName; 
    6767 // } 
    6768 // 
    6769 // alias LOGFONTA  TLOGFONTA; 
    6770 // alias LOGFONTA* PLOGFONTA; 
    6771 // alias LOGFONTA* LPLOGFONTA; 
    6772 // 
    6773 // struct LOGFONTW 
    6774 // { 
    6775 //     LONG lfHeight; 
    6776 //     LONG lfWidth; 
    6777 //     LONG lfEscapement; 
    6778 //     LONG lfOrientation; 
    6779 //     LONG lfWeight; 
    6780 //     ubyte lfItalic; 
    6781 //     ubyte lfUnderline; 
    6782 //     ubyte lfStrikeOut; 
    6783 //     ubyte lfCharSet; 
    6784 //     ubyte lfOutPrecision; 
    6785 //     ubyte lfClipPrecision; 
    6786 //     ubyte lfQuality; 
    6787 //     ubyte lfPitchAndFamily; 
    6788 //     WCHAR lfFaceName[LF_FACESIZE]; 
    6789 // }; 
    6790 // 
    6791 // alias LOGFONTW  TLOGFONTW; 
    6792 // alias LOGFONTW* LPLOGFONTW; 
    6793 // alias LOGFONTW* PLOGFONTW; 
    6794 // 
    6795 // version( ANSI ){ 
    6796 //     alias LOGFONTA  LOGFONT; 
    6797 //     alias LOGFONTA  TLOGFONT; 
    6798 //     alias LOGFONTA* PLOGFONT; 
    6799 //     alias LOGFONTA* LPLOGFONT; 
    6800 // } 
    6801 // else{ 
    6802 //     alias LOGFONTW  LOGFONT; 
    6803 //     alias LOGFONTW  TLOGFONT; 
    6804 //     alias LOGFONTW* PLOGFONT; 
    6805 //     alias LOGFONTW* LPLOGFONT; 
    6806 // } 
    6807  
     6739struct CHOOSECOLORA { 
     6740    DWORD        lStructSize; 
     6741    HWND         hwndOwner; 
     6742    HWND         hInstance; 
     6743    COLORREF     rgbResult; 
     6744    COLORREF*    lpCustColors; 
     6745    DWORD        Flags; 
     6746    LPARAM       lCustData; 
     6747    LPCCHOOKPROC lpfnHook; 
     6748    LPCSTR      lpTemplateName; 
     6749
     6750alias CHOOSECOLORA* PCHOOSECOLORA, LPCHOOSECOLORA; 
     6751struct CHOOSECOLORW { 
     6752    DWORD        lStructSize; 
     6753    HWND         hwndOwner; 
     6754    HWND         hInstance; 
     6755    COLORREF     rgbResult; 
     6756    COLORREF*    lpCustColors; 
     6757    DWORD        Flags; 
     6758    LPARAM       lCustData; 
     6759    LPCCHOOKPROC lpfnHook; 
     6760    LPCWSTR      lpTemplateName; 
     6761
     6762alias CHOOSECOLORW* PCHOOSECOLORW, LPCHOOSECOLORW; 
     6763version(Win32SansUnicode) 
     6764
     6765    alias CHOOSECOLORA CHOOSECOLOR; 
     6766
     6767else 
     6768
     6769    alias CHOOSECOLORW CHOOSECOLOR; 
     6770
     6771alias CHOOSECOLOR* PCHOOSECOLOR, LPCHOOSECOLOR; 
     6772 
     6773struct LOGFONTA 
     6774
     6775    LONG lfHeight; 
     6776    LONG lfWidth; 
     6777    LONG lfEscapement; 
     6778    LONG lfOrientation; 
     6779    LONG lfWeight; 
     6780    ubyte lfItalic; 
     6781    ubyte lfUnderline; 
     6782    ubyte lfStrikeOut; 
     6783    ubyte lfCharSet; 
     6784    ubyte lfOutPrecision; 
     6785    ubyte lfClipPrecision; 
     6786    ubyte lfQuality; 
     6787    ubyte lfPitchAndFamily; 
     6788    ubyte[1 + LF_FACESIZE-1] lfFaceName; 
     6789
     6790 
     6791alias LOGFONTA  TLOGFONTA; 
     6792alias LOGFONTA* PLOGFONTA; 
     6793alias LOGFONTA* LPLOGFONTA; 
     6794 
     6795struct LOGFONTW 
     6796
     6797    LONG lfHeight; 
     6798    LONG lfWidth; 
     6799    LONG lfEscapement; 
     6800    LONG lfOrientation; 
     6801    LONG lfWeight; 
     6802    ubyte lfItalic; 
     6803    ubyte lfUnderline; 
     6804    ubyte lfStrikeOut; 
     6805    ubyte lfCharSet; 
     6806    ubyte lfOutPrecision; 
     6807    ubyte lfClipPrecision; 
     6808    ubyte lfQuality; 
     6809    ubyte lfPitchAndFamily; 
     6810    WCHAR lfFaceName[LF_FACESIZE]; 
     6811}; 
     6812 
     6813alias LOGFONTW  TLOGFONTW; 
     6814alias LOGFONTW* LPLOGFONTW; 
     6815alias LOGFONTW* PLOGFONTW; 
     6816 
     6817version( Win32SansUnicode ){ 
     6818    alias LOGFONTA  LOGFONT; 
     6819    alias LOGFONTA  TLOGFONT; 
     6820    alias LOGFONTA* PLOGFONT; 
     6821    alias LOGFONTA* LPLOGFONT; 
     6822
     6823else{ 
     6824    alias LOGFONTW  LOGFONT; 
     6825    alias LOGFONTW  TLOGFONT; 
     6826    alias LOGFONTW* PLOGFONT; 
     6827    alias LOGFONTW* LPLOGFONT; 
     6828
    68086829 
    68096830struct TCHOOSEFONT 
     
    78217842alias DEVMODE* PDEVMODE; 
    78227843 
    7823 // struct DEVNAMES 
    7824 //
    7825 //     ushort wDriverOffset; 
    7826 //     ushort wDeviceOffset; 
    7827 //     ushort wOutputOffset; 
    7828 //     ushort wDefault; 
    7829 //
    7830  
    7831 // alias DEVNAMES* LPDEVNAMES; 
    7832 // alias DEVNAMES TAGDEVNAMES; 
    7833 // alias DEVNAMES TDEVNAMES; 
    7834 // alias DEVNAMES* PDEVNAMES; 
    7835  
    7836 // struct DIBSECTION 
    7837 //
    7838 //     BITMAP dsBm; 
    7839 //     BITMAPINFOHEADER dsBmih; 
    7840 //     DWORD[1 + 2] dsBitfields; 
    7841 //     HANDLE dshSection; 
    7842 //     DWORD dsOffset; 
    7843 //
    7844 // 
    7845 // alias DIBSECTION TAGDIBSECTION; 
    7846 // alias DIBSECTION TDIBSECTION; 
    7847 // alias DIBSECTION* PDIBSECTION; 
    7848  
    7849 // union LARGE_INTEGER 
    7850 //
    7851 //     struct 
    7852 //     { 
    7853 //         DWORD LowPart; 
    7854 //         LONG HighPart; 
    7855 //     }; 
    7856 //     struct u 
    7857 //     { 
    7858 //         DWORD LowPart; 
    7859 //         LONG HighPart; 
    7860 //     }; 
    7861 //     LONGLONG QuadPart; 
    7862 // }; 
    7863 // 
    7864 // alias LARGE_INTEGER* PLARGE_INTEGER; 
    7865 // alias LARGE_INTEGER _LARGE_INTEGER; 
    7866 // alias LARGE_INTEGER TLARGEINTEGER; 
    7867 // alias LARGE_INTEGER* PLARGEINTEGER; 
     7844struct DEVNAMES 
     7845
     7846    ushort wDriverOffset; 
     7847    ushort wDeviceOffset; 
     7848    ushort wOutputOffset; 
     7849    ushort wDefault; 
     7850
     7851 
     7852alias DEVNAMES* LPDEVNAMES; 
     7853alias DEVNAMES TAGDEVNAMES; 
     7854alias DEVNAMES TDEVNAMES; 
     7855alias DEVNAMES* PDEVNAMES; 
     7856 
     7857struct DIBSECTION 
     7858
     7859    BITMAP dsBm; 
     7860    BITMAPINFOHEADER dsBmih; 
     7861    DWORD[1 + 2] dsBitfields; 
     7862    HANDLE dshSection; 
     7863    DWORD dsOffset; 
     7864
     7865 
     7866alias DIBSECTION TAGDIBSECTION; 
     7867alias DIBSECTION TDIBSECTION; 
     7868alias DIBSECTION* PDIBSECTION; 
     7869 
     7870union LARGE_INTEGER 
     7871
     7872    struct 
     7873    { 
     7874        DWORD LowPart; 
     7875        LONG HighPart; 
     7876    }; 
     7877    struct u 
     7878    { 
     7879        DWORD LowPart; 
     7880        LONG HighPart; 
     7881    }; 
     7882    LONGLONG QuadPart; 
     7883
     7884 
     7885alias LARGE_INTEGER* PLARGE_INTEGER; 
     7886alias LARGE_INTEGER _LARGE_INTEGER; 
     7887alias LARGE_INTEGER TLARGEINTEGER; 
     7888alias LARGE_INTEGER* PLARGEINTEGER; 
    78687889 
    78697890struct DISK_GEOMETRY 
     
    79507971alias DOC_INFO_2* PDOCINFO2; 
    79517972 
    7952 // struct DOCINFO 
    7953 // { 
    7954 //     int cbSize; 
    7955 //     LPCTSTR lpszDocName; 
    7956 //     LPCTSTR lpszOutput; 
    7957 //     LPCTSTR lpszDatatype; 
    7958 //     DWORD fwType; 
    7959 // } 
    7960 // 
    7961 // alias DOCINFO TDOCINFO; 
    7962 // alias DOCINFO TDOCINFOA; 
    7963 // alias DOCINFO* PDOCINFO; 
     7973struct DOCINFOA 
     7974
     7975    int     cbSize; 
     7976    LPCSTR   lpszDocName; 
     7977    LPCSTR   lpszOutput; 
     7978    LPCSTR   lpszDatatype; 
     7979    DWORD    fwType; 
     7980
     7981alias DOCINFOA TDOCINFOA; 
     7982 
     7983struct DOCINFOW 
     7984
     7985    int     cbSize; 
     7986    LPCWSTR  lpszDocName; 
     7987    LPCWSTR  lpszOutput; 
     7988    LPCWSTR  lpszDatatype; 
     7989    DWORD    fwType; 
     7990
     7991alias DOCINFOW TDOCINFOW; 
     7992 
     7993version(Win32SansUnicode) 
     7994
     7995    alias DOCINFOA DOCINFO; 
     7996
     7997else 
     7998
     7999    alias DOCINFOW DOCINFO; 
     8000
     8001alias DOCINFO TDOCINFO; 
     8002alias DOCINFO* LPDOCINFO; 
     8003alias DOCINFO* PDOCINFO; 
    79648004 
    79658005struct DRAGLISTINFO 
     
    79748014alias DRAGLISTINFO* PDRAGLISTINFO; 
    79758015 
    7976 // struct DRAWITEMSTRUCT 
    7977 //
    7978 //     UINT CtlType; 
    7979 //     UINT CtlID; 
    7980 //     UINT itemID; 
    7981 //     UINT itemAction; 
    7982 //     UINT itemState; 
    7983 //     HWND hwndItem; 
    7984 //     HDC hDC; 
    7985 //     RECT rcItem; 
    7986 //     DWORD itemData; 
    7987 //
    7988 // 
    7989 // alias DRAWITEMSTRUCT* LPDRAWITEMSTRUCT; 
    7990 // alias DRAWITEMSTRUCT TAGDRAWITEMSTRUCT; 
    7991 // alias DRAWITEMSTRUCT TDRAWITEMSTRUCT; 
    7992 // alias DRAWITEMSTRUCT* PDRAWITEMSTRUCT; 
     8016struct DRAWITEMSTRUCT 
     8017
     8018    UINT CtlType; 
     8019    UINT CtlID; 
     8020    UINT itemID; 
     8021    UINT itemAction; 
     8022    UINT itemState; 
     8023    HWND hwndItem; 
     8024    HDC hDC; 
     8025    RECT rcItem; 
     8026    DWORD itemData; 
     8027
     8028 
     8029alias DRAWITEMSTRUCT* LPDRAWITEMSTRUCT; 
     8030alias DRAWITEMSTRUCT TAGDRAWITEMSTRUCT; 
     8031alias DRAWITEMSTRUCT TDRAWITEMSTRUCT; 
     8032alias DRAWITEMSTRUCT* PDRAWITEMSTRUCT; 
    79938033 
    79948034struct DRAWTEXTPARAMS 
     
    82868326alias EMRCREATEPALETTE* PEMRCREATEPALETTE; 
    82878327 
    8288 // struct LOGPEN 
    8289 //
    8290 //     UINT lopnStyle; 
    8291 //     POINT lopnWidth; 
    8292 //     COLORREF lopnColor; 
    8293 //
    8294 // 
    8295 // alias LOGPEN TAGLOGPEN;