# HG changeset patch # User Frank Benoit # Date 1213838736 -7200 # Node ID e2affbeb686d416850ae9abedaa47695ed7c2e77 # Parent 9c1bb90eba13b84a62466d8abed5d22531977405 Making tango.sys.win32.Types and dwt.internal.win32.WINTYPES to match common declaration. Make ansi charactars of type ubyte. diff -r 9c1bb90eba13 -r e2affbeb686d dwt/accessibility/Accessible.d --- a/dwt/accessibility/Accessible.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/accessibility/Accessible.d Thu Jun 19 03:25:36 2008 +0200 @@ -1009,9 +1009,9 @@ tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; tvItem.stateMask = OS.TVIS_STATEIMAGEMASK; if (OS.COMCTL32_MAJOR >= 6) { - tvItem.hItem = cast(HANDLE) OS.SendMessage (hwnd, OS.TVM_MAPACCIDTOHTREEITEM, v.lVal, 0); + tvItem.hItem = cast(HTREEITEM) OS.SendMessage (hwnd, OS.TVM_MAPACCIDTOHTREEITEM, v.lVal, 0); } else { - tvItem.hItem = cast(HANDLE) v.lVal; + tvItem.hItem = cast(HTREEITEM) v.lVal; } auto result = OS.SendMessage (hwnd, OS.TVM_GETITEM, 0, &tvItem); bool checked = (result !is 0) && (((tvItem.state >> 12) & 1) is 0); diff -r 9c1bb90eba13 -r e2affbeb686d dwt/dnd/HTMLTransfer.d --- a/dwt/dnd/HTMLTransfer.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/dnd/HTMLTransfer.d Thu Jun 19 03:25:36 2008 +0200 @@ -132,7 +132,7 @@ auto wstrz = StrToTCHARz(OS.CP_UTF8,buffer.toString); cchMultiByte = OS.WideCharToMultiByte(OS.CP_UTF8, 0, wstrz, -1, null, 0, null, null); - auto lpMultiByteStr = cast(char*) OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, cchMultiByte); + auto lpMultiByteStr = cast(CHAR*) OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, cchMultiByte); OS.WideCharToMultiByte(OS.CP_UTF8, 0, wstrz, -1, lpMultiByteStr, cchMultiByte, null, null); transferData.stgmedium = new STGMEDIUM(); transferData.stgmedium.tymed = COM.TYMED_HGLOBAL; @@ -165,7 +165,7 @@ auto hMem = stgmedium.unionField; try { - auto lpMultiByteStr = cast(char*) OS.GlobalLock(hMem); + auto lpMultiByteStr = cast(CHAR*) OS.GlobalLock(hMem); if (lpMultiByteStr is null) return null; try { /* NOTE: CF_HTML uses UTF-8 encoding. diff -r 9c1bb90eba13 -r e2affbeb686d dwt/dnd/ImageTransfer.d --- a/dwt/dnd/ImageTransfer.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/dnd/ImageTransfer.d Thu Jun 19 03:25:36 2008 +0200 @@ -182,8 +182,8 @@ } else { DIBSECTION dib; OS.GetObject(memDib, DIBSECTION.sizeof, &dib); - int biHeight = dib.biHeight; - int scanline = dib.biSizeImage / biHeight; + int biHeight = dib.dsBmih.biHeight; + int scanline = dib.dsBmih.biSizeImage / biHeight; auto pDestBits = pBits; auto pSourceBits = bits + scanline * (biHeight - 1); for (int i = 0; i < biHeight; i++) { diff -r 9c1bb90eba13 -r e2affbeb686d dwt/dnd/RTFTransfer.d --- a/dwt/dnd/RTFTransfer.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/dnd/RTFTransfer.d Thu Jun 19 03:25:36 2008 +0200 @@ -89,7 +89,7 @@ transferData.result = COM.DV_E_STGMEDIUM; return; } - auto lpMultiByteStr = cast(char*)OS.GlobalAlloc(COM.GMEM_FIXED | COM.GMEM_ZEROINIT, cchMultiByte); + auto lpMultiByteStr = cast(CHAR*)OS.GlobalAlloc(COM.GMEM_FIXED | COM.GMEM_ZEROINIT, cchMultiByte); OS.WideCharToMultiByte(codePage, 0, chars, -1, lpMultiByteStr, cchMultiByte, null, null); transferData.stgmedium = new STGMEDIUM(); transferData.stgmedium.tymed = COM.TYMED_HGLOBAL; @@ -121,7 +121,7 @@ if (transferData.result !is COM.S_OK) return null; auto hMem = stgmedium.unionField; try { - auto lpMultiByteStr = cast(char*) OS.GlobalLock(hMem); + auto lpMultiByteStr = cast(CHAR*) OS.GlobalLock(hMem); if (lpMultiByteStr is null) return null; try { int codePage = OS.GetACP(); diff -r 9c1bb90eba13 -r e2affbeb686d dwt/dnd/TextTransfer.d --- a/dwt/dnd/TextTransfer.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/dnd/TextTransfer.d Thu Jun 19 03:25:36 2008 +0200 @@ -104,7 +104,7 @@ transferData.result = COM.DV_E_STGMEDIUM; return; } - auto lpMultiByteStr = cast(char*)OS.GlobalAlloc(COM.GMEM_FIXED | COM.GMEM_ZEROINIT, cchMultiByte); + auto lpMultiByteStr = cast(CHAR*)OS.GlobalAlloc(COM.GMEM_FIXED | COM.GMEM_ZEROINIT, cchMultiByte); OS.WideCharToMultiByte(codePage, 0, chars.ptr, -1, lpMultiByteStr, cchMultiByte, null, null); transferData.stgmedium = new STGMEDIUM(); transferData.stgmedium.tymed = COM.TYMED_HGLOBAL; @@ -163,7 +163,7 @@ } } case CF_TEXTID: { - auto lpMultiByteStr = cast(char*)OS.GlobalLock(hMem); + auto lpMultiByteStr = cast(CHAR*)OS.GlobalLock(hMem); if (lpMultiByteStr is null) return null; try { int codePage = OS.GetACP(); diff -r 9c1bb90eba13 -r e2affbeb686d dwt/dnd/TreeDropTargetEffect.d --- a/dwt/dnd/TreeDropTargetEffect.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/dnd/TreeDropTargetEffect.d Thu Jun 19 03:25:36 2008 +0200 @@ -128,7 +128,7 @@ auto handle = tree.handle; if (dropIndex !is -1) { TVITEM tvItem; - tvItem.hItem = cast(HANDLE) dropIndex; + tvItem.hItem = cast(HTREEITEM) dropIndex; tvItem.mask = OS.TVIF_STATE; tvItem.stateMask = OS.TVIS_DROPHILITED; tvItem.state = 0; @@ -237,7 +237,7 @@ } if (dropIndex !is -1 && (dropIndex !is cast(int)hItem || (effect & DND.FEEDBACK_SELECT) is 0)) { TVITEM tvItem; - tvItem.hItem = cast(HANDLE) dropIndex; + tvItem.hItem = cast(HTREEITEM) dropIndex; tvItem.mask = OS.TVIF_STATE; tvItem.stateMask = OS.TVIS_DROPHILITED; tvItem.state = 0; @@ -246,7 +246,7 @@ } if (cast(int)hItem !is -1 && cast(int)hItem !is dropIndex && (effect & DND.FEEDBACK_SELECT) !is 0) { TVITEM tvItem; - tvItem.hItem = cast(HANDLE) hItem; + tvItem.hItem = cast(HTREEITEM) hItem; tvItem.mask = OS.TVIF_STATE; tvItem.stateMask = OS.TVIS_DROPHILITED; tvItem.state = OS.TVIS_DROPHILITED; diff -r 9c1bb90eba13 -r e2affbeb686d dwt/dnd/URLTransfer.d --- a/dwt/dnd/URLTransfer.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/dnd/URLTransfer.d Thu Jun 19 03:25:36 2008 +0200 @@ -90,7 +90,7 @@ transferData.result = COM.DV_E_STGMEDIUM; return; } - auto lpMultiByteStr = cast(char*)OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, cchMultiByte); + auto lpMultiByteStr = cast(CHAR*)OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, cchMultiByte); OS.WideCharToMultiByte(codePage, 0, chars.ptr, -1, lpMultiByteStr, cchMultiByte, null, null); transferData.stgmedium = new STGMEDIUM(); transferData.stgmedium.tymed = COM.TYMED_HGLOBAL; @@ -122,7 +122,7 @@ if (transferData.result !is COM.S_OK) return null; auto hMem = stgmedium.unionField; try { - auto lpMultiByteStr = cast(char*)OS.GlobalLock(hMem); + auto lpMultiByteStr = cast(CHAR*)OS.GlobalLock(hMem); if (lpMultiByteStr is null) return null; try { int codePage = OS.GetACP(); diff -r 9c1bb90eba13 -r e2affbeb686d dwt/graphics/Image.d --- a/dwt/graphics/Image.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/graphics/Image.d Thu Jun 19 03:25:36 2008 +0200 @@ -1421,7 +1421,7 @@ int numColors = 0; if (depth <= 8) { if (isDib) { - numColors = dib.biClrUsed; + numColors = dib.dsBmih.biClrUsed; } else { numColors = 1 << depth; } @@ -1455,7 +1455,7 @@ /* Find the size of the image and allocate data */ int imageSize; if (isDib) { - imageSize = dib.biSizeImage; + imageSize = dib.dsBmih.biSizeImage; } else { /* Call with null lpBits to get the image size */ static if (OS.IsWinCE) DWT.error(DWT.ERROR_NOT_IMPLEMENTED); @@ -1469,7 +1469,7 @@ if (OS.IsWinCE) { if (this.handle !is handle) { /* get image data from the temporary DIB */ - OS.MoveMemory(data.ptr, dib.bmBits, imageSize); + OS.MoveMemory(data.ptr, dib.dsBm.bmBits, imageSize); } } else { OS.MoveMemory(data.ptr, bm.bmBits, imageSize); diff -r 9c1bb90eba13 -r e2affbeb686d dwt/internal/BidiUtil.d --- a/dwt/internal/BidiUtil.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/internal/BidiUtil.d Thu Jun 19 03:25:36 2008 +0200 @@ -193,7 +193,7 @@ result.nGlyphs = byteCount; auto lpOrder = result.lpOrder = cast(uint*)OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount * 4); auto lpDx = result.lpDx = cast(int*)OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount * 4); - auto lpClass = result.lpClass = cast(char*)OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount); + auto lpClass = result.lpClass = cast(CHAR*)OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount); auto lpGlyphs = result.lpGlyphs = cast(wchar*)OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount * 2); // set required dwFlags @@ -323,7 +323,7 @@ result.lStructSize = GCP_RESULTS.sizeof; result.nGlyphs = byteCount; auto lpOrder = result.lpOrder = cast(uint*) OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount * 4); - auto lpClass = result.lpClass = cast(char*) OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount); + auto lpClass = result.lpClass = cast(CHAR*) OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount); // set required dwFlags, these values will affect how the text gets rendered and // ordered diff -r 9c1bb90eba13 -r e2affbeb686d dwt/internal/ole/win32/extras.d --- a/dwt/internal/ole/win32/extras.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/internal/ole/win32/extras.d Thu Jun 19 03:25:36 2008 +0200 @@ -214,7 +214,7 @@ //alias CLSID * LPCLSID; alias GUID *REFGUID; -alias IID *REFIID; +//alias IID *REFIID; alias CLSID *REFCLSID; @@ -276,4 +276,4 @@ READYSTATE_COMPLETE = 4 } -alias HANDLE HTASK; \ No newline at end of file +alias HANDLE HTASK; diff -r 9c1bb90eba13 -r e2affbeb686d dwt/internal/win32/OS.d --- a/dwt/internal/win32/OS.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/internal/win32/OS.d Thu Jun 19 03:25:36 2008 +0200 @@ -223,7 +223,10 @@ OSVERSIONINFO info; info.dwOSVersionInfoSize = OSVERSIONINFO.sizeof; if(!OS.GetVersionEx(&info)){ - MessageBoxA(null, "DWT Unicode version applications can't run in a non-Unicode platform !", "Error", MB_OK|MB_ICONERROR); + MessageBoxA(null, + _PCHAR!("DWT Unicode version applications can't run in a non-Unicode platform !"), + _PCHAR!("Error"), + MB_OK|MB_ICONERROR); tango.stdc.stdlib.exit(-1); } //OSVERSIONINFO info = new OSVERSIONINFOW (); @@ -3521,8 +3524,8 @@ *cast(HTREEITEM *)prc = hitem; return cast(bool) SendMessage( hwnd, TVM_GETITEMRECT, code, cast(int)prc ); } -static int strlen( char* ptr ){ - return tango.stdc.string.strlen( ptr ); +static int strlen( CHAR* ptr ){ + return tango.stdc.string.strlen( cast(char*)ptr ); } static void POINTSTOPOINT( inout POINT pt, int pts) { @@ -3539,13 +3542,13 @@ // convert UTF-8 to MBCS alias StrToMBCS StrToMBCSs; -public char[] StrToMBCS(char[] sc, uint codepage = 0) { - char[] ret = sc; +public CHAR[] StrToMBCS(char[] sc, uint codepage = 0) { + CHAR[] ret = cast(CHAR[]) sc; try{ foreach (char c; sc){ if (c >= 0x80) { - char[] result; + CHAR[] result; int i; wchar[] ws = .toString16(sc); result.length = OS.WideCharToMultiByte(codepage, 0, ws.ptr, ws.length, null, 0, null, null); @@ -3556,7 +3559,7 @@ } }catch(Exception e){ // do nothing - ret = ""; + ret = null; } return ret; } @@ -3604,11 +3607,11 @@ return StrToWCHARs(sc, true ).ptr; } -public char[] MBCSsToStr(char[] string, uint codepage = 0){ +public char[] MBCSsToStr(CHAR[] string, uint codepage = 0){ return MBCSzToStr( string.ptr, string.length, codepage); } -public char[] MBCSzToStr(char* pString, int _length = -1, uint codepage = 0) { +public char[] MBCSzToStr(PCHAR pString, int _length = -1, uint codepage = 0) { // null terminated string pointer if(_length == -1){ _length = 0; @@ -3679,7 +3682,7 @@ } // end of OLE_COM -public static wchar[] _mbcszToWs(char* pMBCS, int len, uint codepage = 0) +public static wchar[] _mbcszToWs(PCHAR pMBCS, int len, uint codepage = 0) { wchar[] wbuf; // Convert MBCS to unicode diff -r 9c1bb90eba13 -r e2affbeb686d dwt/internal/win32/WINTYPES.d --- a/dwt/internal/win32/WINTYPES.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/internal/win32/WINTYPES.d Thu Jun 19 03:25:36 2008 +0200 @@ -4,39 +4,13 @@ module dwt.internal.win32.WINTYPES; -//public import tango_sys_win32.Types; - - -version(ANSI){ - alias char TCHAR; -}else{ - alias wchar TCHAR; -} - - -union LARGE_INTEGER { - struct { - DWORD LowPart; - LONG HighPart; - }; - struct u { - DWORD LowPart; - LONG HighPart; - }; - LONGLONG QuadPart; -} -alias LARGE_INTEGER * PLARGE_INTEGER; - - -/////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////// /* adopted form tango Author: Trevor Parscal */ /+ Aliases, Types, and Constants +/ -const int NULL = 0; +const void* NULL = null; alias int SCODE; alias void VOID; alias void* POINTER; @@ -45,11 +19,11 @@ alias WINBOOL BOOL; alias uint CALTYPE; alias uint CALID; -alias char CCHAR; -alias char* PCHAR; +alias ubyte CCHAR; +alias ubyte* PCHAR; alias uint COLORREF; alias uint TCOLORREF; -alias char CHAR; +alias ubyte CHAR; alias ubyte BYTE; alias short INT16; alias ushort UINT16; @@ -66,14 +40,14 @@ alias uint PROPID; const BOOL FALSE = 0; const BOOL TRUE = -1; -alias char* PANSICHAR; +alias ubyte* PANSICHAR; alias wchar* PWIDECHAR; alias int* PINTEGER; -alias double LONGLONG; +alias long LONGLONG; alias LONGLONG* PLONGLONG; -alias double DWORDLONG; +alias ulong DWORDLONG; alias DWORDLONG* PDWORDLONG; -alias double FLOAT; +alias float FLOAT; alias void* HANDLE; alias HANDLE HACCEL; alias HANDLE HBITMAP; @@ -153,7 +127,7 @@ alias wchar* PCWCH; alias wchar* PCWSTR; alias DWORD* PDWORD; -alias double* PFLOAT; +alias float* PFLOAT; alias HANDLE* PHANDLE; alias HKEY* PHKEY; alias int* PINT; @@ -181,8 +155,11 @@ alias DWORD SERVICE_STATUS_HANDLE; alias ubyte TBYTE; -// version dependent -//alias wchar TCHAR; +version(Win32SansUnicode){ + alias ubyte TCHAR; +}else{ + alias wchar TCHAR; +} alias ubyte BCHAR; alias ubyte UCHAR; @@ -193,27 +170,13 @@ alias uint WPARAM; alias int ACL_INFORMATION_CLASS; -// struct GUID { // size is 16 -// align(1): -// DWORD Data1; -// WORD Data2; -// WORD Data3; -// BYTE[8] Data4; -// } - -enum {ASSOCF_INIT_BYEXENAME, - ASSOCF_OPEN_BYEXENAME, - ASSOCF_INIT_DEFAULTTOSTAR, - ASSOCF_INIT_DEFAULTTOFOLDER, - ASSOCF_NOUSERSETTINGS, - ASSOCF_NOTRUNCATE, - ASSOCF_VERIFY, - ASSOCF_REMAPRUNDLL, - ASSOCF_NOFIXUPS, - ASSOCF_IGNOREBASECLASS -}; - -alias DWORD ASSOCF; +alias GUID IID; +alias IID* REFIID; + +// Cast a string literal to a ubyte*=PCHAR +template _PCHAR( char[] a ){ + const PCHAR _PCHAR = cast(PCHAR)a.ptr; +} enum { AclRevisionInformation = 1, AclSizeInformation, }; alias ACL_INFORMATION_CLASS _ACL_INFORMATION_CLASS; @@ -267,7 +230,7 @@ alias WINBOOL (*ENUMWINDOWSPROC)(HWND, LPARAM); alias WINBOOL (*ENUMWINDOWSTATIONPROC)(LPTSTR, LPARAM); alias void (*SENDASYNCPROC)(HWND, UINT, DWORD); -alias void (*TIMERPROC)(HWND, UINT, UINT); +alias void (*TIMERPROC)(HWND, UINT, UINT, DWORD); alias BOOL(*MONITORENUMPROC)(HMONITOR, HDC, RECT*, LPARAM); alias FARPROC GRAYSTRINGPROC; alias WINBOOL (*DRAWSTATEPROC)(HDC, LPARAM, WPARAM, int, int); @@ -296,36 +259,47 @@ } const { - char* SE_CREATE_TOKEN_NAME = ("SeCreateTokenPrivilege"); - char* SE_ASSIGNPRIMARYTOKEN_NAME = ("SeAssignPrimaryTokenPrivilege"); - char* SE_LOCK_MEMORY_NAME = ("SeLockMemoryPrivilege"); - char* SE_INCREASE_QUOTA_NAME = ("SeIncreaseQuotaPrivilege"); - char* SE_UNSOLICITED_INPUT_NAME = ("SeUnsolicitedInputPrivilege"); - char* SE_MACHINE_ACCOUNT_NAME = ("SeMachineAccountPrivilege"); - char* SE_TCB_NAME = ("SeTcbPrivilege"); - char* SE_SECURITY_NAME = ("SeSecurityPrivilege"); - char* SE_TAKE_OWNERSHIP_NAME = ("SeTakeOwnershipPrivilege"); - char* SE_LOAD_DRIVER_NAME = ("SeLoadDriverPrivilege"); - char* SE_SYSTEM_PROFILE_NAME = ("SeSystemProfilePrivilege"); - char* SE_SYSTEMTIME_NAME = ("SeSystemtimePrivilege"); - char* SE_PROF_SINGLE_PROCESS_NAME = ("SeProfileSingleProcessPrivilege"); - char* SE_INC_BASE_PRIORITY_NAME = ("SeIncreaseBasePriorityPrivilege"); - char* SE_CREATE_PAGEFILE_NAME = ("SeCreatePagefilePrivilege"); - char* SE_CREATE_PERMANENT_NAME = ("SeCreatePermanentPrivilege"); - char* SE_BACKUP_NAME = ("SeBackupPrivilege"); - char* SE_RESTORE_NAME = ("SeRestorePrivilege"); - char* SE_SHUTDOWN_NAME = ("SeShutdownPrivilege"); - char* SE_DEBUG_NAME = ("SeDebugPrivilege"); - char* SE_AUDIT_NAME = ("SeAuditPrivilege"); - char* SE_SYSTEM_ENVIRONMENT_NAME = ("SeSystemEnvironmentPrivilege"); - char* SE_CHANGE_NOTIFY_NAME = ("SeChangeNotifyPrivilege"); - char* SE_REMOTE_SHUTDOWN_NAME = ("SeRemoteShutdownPrivilege"); - char* SERVICES_ACTIVE_DATABASEA = ("ServicesActive"); - char* SERVICES_FAILED_DATABASEA = ("ServicesFailed"); - char* SC_GROUP_IDENTIFIERA = ("+"); - char* SERVICES_ACTIVE_DATABASE = (SERVICES_ACTIVE_DATABASEA); - char* SERVICES_FAILED_DATABASE = (SERVICES_FAILED_DATABASEA); - char* SC_GROUP_IDENTIFIER = (SC_GROUP_IDENTIFIERA); + LPCTSTR SE_CREATE_TOKEN_NAME = ("SeCreateTokenPrivilege"); + LPCTSTR SE_ASSIGNPRIMARYTOKEN_NAME = ("SeAssignPrimaryTokenPrivilege"); + LPCTSTR SE_LOCK_MEMORY_NAME = ("SeLockMemoryPrivilege"); + LPCTSTR SE_INCREASE_QUOTA_NAME = ("SeIncreaseQuotaPrivilege"); + LPCTSTR SE_UNSOLICITED_INPUT_NAME = ("SeUnsolicitedInputPrivilege"); + LPCTSTR SE_MACHINE_ACCOUNT_NAME = ("SeMachineAccountPrivilege"); + LPCTSTR SE_TCB_NAME = ("SeTcbPrivilege"); + LPCTSTR SE_SECURITY_NAME = ("SeSecurityPrivilege"); + LPCTSTR SE_TAKE_OWNERSHIP_NAME = ("SeTakeOwnershipPrivilege"); + LPCTSTR SE_LOAD_DRIVER_NAME = ("SeLoadDriverPrivilege"); + LPCTSTR SE_SYSTEM_PROFILE_NAME = ("SeSystemProfilePrivilege"); + LPCTSTR SE_SYSTEMTIME_NAME = ("SeSystemtimePrivilege"); + LPCTSTR SE_PROF_SINGLE_PROCESS_NAME = ("SeProfileSingleProcessPrivilege"); + LPCTSTR SE_INC_BASE_PRIORITY_NAME = ("SeIncreaseBasePriorityPrivilege"); + LPCTSTR SE_CREATE_PAGEFILE_NAME = ("SeCreatePagefilePrivilege"); + LPCTSTR SE_CREATE_PERMANENT_NAME = ("SeCreatePermanentPrivilege"); + LPCTSTR SE_BACKUP_NAME = ("SeBackupPrivilege"); + LPCTSTR SE_RESTORE_NAME = ("SeRestorePrivilege"); + LPCTSTR SE_SHUTDOWN_NAME = ("SeShutdownPrivilege"); + LPCTSTR SE_DEBUG_NAME = ("SeDebugPrivilege"); + LPCTSTR SE_AUDIT_NAME = ("SeAuditPrivilege"); + LPCTSTR SE_SYSTEM_ENVIRONMENT_NAME = ("SeSystemEnvironmentPrivilege"); + LPCTSTR SE_CHANGE_NOTIFY_NAME = ("SeChangeNotifyPrivilege"); + LPCTSTR SE_REMOTE_SHUTDOWN_NAME = ("SeRemoteShutdownPrivilege"); + + LPCSTR SERVICES_ACTIVE_DATABASEA = _PCHAR!("ServicesActive"); + LPCWSTR SERVICES_ACTIVE_DATABASEW = ("ServicesActive"); + LPCSTR SERVICES_FAILED_DATABASEA = _PCHAR!("ServicesFailed"); + LPCWSTR SERVICES_FAILED_DATABASEW = ("ServicesFailed"); + LPCSTR SC_GROUP_IDENTIFIERA = _PCHAR!("+"); + LPCWSTR SC_GROUP_IDENTIFIERW = ("+"); + version(Win32SansUnicode){ + alias SERVICES_ACTIVE_DATABASEA SERVICES_ACTIVE_DATABASE; + alias SERVICES_FAILED_DATABASEA SERVICES_FAILED_DATABASE; + alias SC_GROUP_IDENTIFIERA SC_GROUP_IDENTIFIER; + } + else{ + alias SERVICES_ACTIVE_DATABASEW SERVICES_ACTIVE_DATABASE; + alias SERVICES_FAILED_DATABASEW SERVICES_FAILED_DATABASE; + alias SC_GROUP_IDENTIFIERW SC_GROUP_IDENTIFIER; + } } extern(Windows){ @@ -1306,6 +1280,7 @@ DIB_RGB_COLORS = (0), GENERIC_READ = (0x80000000), GENERIC_WRITE = (0x40000000), + GENERIC_EXECUTE = (0x20000000), FILE_READ_DATA = (0x0001), FILE_LIST_DIRECTORY = (0x0001), FILE_WRITE_DATA = (0x0002), @@ -1487,6 +1462,7 @@ CREATE_DEFAULT_ERROR_MODE = (67108864), CREATE_NEW_CONSOLE = (16), CREATE_NEW_PROCESS_GROUP = (512), + CREATE_NO_WINDOW = (0x8000000), CREATE_SEPARATE_WOW_VDM = (2048), CREATE_SUSPENDED = (4), CREATE_UNICODE_ENVIRONMENT = (1024), @@ -1862,6 +1838,7 @@ FILE_MAP_READ = (4), FILE_MAP_WRITE = (2), FILE_MAP_COPY = (1), + FILE_MAP_EXECUTE = (0x20), MUTEX_ALL_ACCESS = (0x1f0001), MUTEX_MODIFY_STATE = (1), SYNCHRONIZE = (0x100000), @@ -2860,7 +2837,6 @@ SC_MANAGER_LOCK = (8), SC_MANAGER_QUERY_LOCK_STATUS = (16), SC_MANAGER_MODIFY_BOOT_CONFIG = (32), - HWND_BROADCAST = (0xFFFF), TAPE_FORMAT = (0x5), TAPE_LOAD = (0), TAPE_LOCK = (0x3), @@ -2900,6 +2876,8 @@ RDW_UPDATENOW = (256), RDW_ALLCHILDREN = (128), RDW_NOCHILDREN = (64), +/* + // HKEY_CLASSES_ROOT = (0x80000000), HKEY_CURRENT_USER = (0x80000001), HKEY_LOCAL_MACHINE = (0x80000002), @@ -2907,6 +2885,7 @@ HKEY_PERFORMANCE_DATA = (0x80000004), HKEY_CURRENT_CONFIG = (0x80000005), HKEY_DYN_DATA = (0x80000006), +*/ REG_OPTION_VOLATILE = (0x1), REG_OPTION_NON_VOLATILE = (0), REG_CREATED_NEW_KEY = (0x1), @@ -3127,10 +3106,6 @@ EXCEPTION_EXECUTE_HANDLER = (1), EXCEPTION_CONTINUE_EXECUTION = -((1)), EXCEPTION_CONTINUE_SEARCH = (0), - HWND_BOTTOM = (1), - HWND_NOTOPMOST = -(2), - HWND_TOP = (0), - HWND_TOPMOST = -(1), SWP_DRAWFRAME = (32), SWP_FRAMECHANGED = (32), SWP_HIDEWINDOW = (128), @@ -4115,9 +4090,14 @@ LVIS_STATEIMAGEMASK = (61440), } const { -wchar* LPSTR_TEXTCALLBACKW = cast(LPWSTR)(-(1)); -char* LPSTR_TEXTCALLBACKA = cast(LPSTR)(-(1)); -char* LPSTR_TEXTCALLBACK = (LPSTR_TEXTCALLBACKA); + LPWSTR LPSTR_TEXTCALLBACKW = cast(LPWSTR)(-(1)); + LPSTR LPSTR_TEXTCALLBACKA = cast(LPSTR)(-(1)); + version(Win32SansUnicode){ + alias LPSTR_TEXTCALLBACKA LPSTR_TEXTCALLBACK; + } + else{ + alias LPSTR_TEXTCALLBACKW LPSTR_TEXTCALLBACK; + } } enum : DWORD { LVIF_TEXT = (1), @@ -4195,7 +4175,7 @@ { } -alias HANDLE HTREEITEM; +alias TREEITEM* HTREEITEM; alias TREEITEM TTREEITEM; alias TREEITEM* PTREEITEM; enum : DWORD { @@ -4593,6 +4573,16 @@ char* SETRGBSTRING = (SETRGBSTRINGA); char* SHAREVISTRING = (SHAREVISTRINGA); } + +const { +HWND HWND_DESKTOP = cast(HWND) 0; +HWND HWND_BOTTOM = cast(HWND) 1; +HWND HWND_NOTOPMOST = cast(HWND) -2; +HWND HWND_TOP = cast(HWND) 0; +HWND HWND_TOPMOST = cast(HWND) -1; +HWND HWND_BROADCAST = cast(HWND) 0xFFFF; +} + enum : DWORD { CD_LBSELCHANGE = (0), CD_LBSELADD = (2), @@ -4888,7 +4878,6 @@ PRF_ERASEBKGND = (0x8), PRF_NONCLIENT = (0x2), PRF_OWNED = (0x20), - HWND_DESKTOP = (0), SC_CLOSE = (61536), SC___FILE__HELP = (61824), SC_DEFAULT = (61792), @@ -6455,17 +6444,17 @@ alias BLOB TBLOB; alias BLOB* PBLOB; -// struct SHITEMID -// { -// USHORT cb; -// ubyte[1 + 0] abID; -// } -// -// alias SHITEMID* LPSHITEMID; -// alias SHITEMID* LPCSHITEMID; -// alias SHITEMID _SHITEMID; -// alias SHITEMID TSHITEMID; -// alias SHITEMID* PSHITEMID; +struct SHITEMID +{ + USHORT cb; + ubyte[1 + 0] abID; +} + +alias SHITEMID* LPSHITEMID; +alias SHITEMID* LPCSHITEMID; +alias SHITEMID _SHITEMID; +alias SHITEMID TSHITEMID; +alias SHITEMID* PSHITEMID; struct ITEMIDLIST { @@ -6478,22 +6467,37 @@ alias ITEMIDLIST TITEMIDLIST; alias ITEMIDLIST* PITEMIDLIST; -// struct BROWSEINFO -// { -// HWND hwndOwner; -// LPCITEMIDLIST pidlRoot; -// LPSTR pszDisplayName; -// LPCSTR lpszTitle; -// UINT ulFlags; -// BFFCALLBACK lpfn; -// LPARAM lParam; -// int iImage; -// } - -// alias BROWSEINFO* LPBROWSEINFO; -// alias BROWSEINFO _BROWSEINFO; -// alias BROWSEINFO TBROWSEINFO; -// alias BROWSEINFO* PBROWSEINFO; +struct BROWSEINFOA +{ + HWND hwndOwner; + LPCITEMIDLIST pidlRoot; + LPSTR pszDisplayName; + LPCSTR lpszTitle; + UINT ulFlags; + BFFCALLBACK lpfn; + LPARAM lParam; + int iImage; +} +struct BROWSEINFOW +{ + HWND hwndOwner; + LPCITEMIDLIST pidlRoot; + LPWSTR pszDisplayName; + LPCWSTR lpszTitle; + UINT ulFlags; + BFFCALLBACK lpfn; + LPARAM lParam; + int iImage; +} +version( Win32SansUnicode ) +{ + alias BROWSEINFOA BROWSEINFO; +} +else +{ + alias BROWSEINFOW BROWSEINFO; +} +alias BROWSEINFO* PBROWSEINFO, LPBROWSEINFO; struct FILETIME { @@ -6611,21 +6615,21 @@ alias CANDIDATELIST TCANDIDATELIST; alias CANDIDATELIST* PCANDIDATELIST; -// struct CREATESTRUCT -// { -// LPVOID lpCreateParams; -// HINST hInstance; -// HMENU hMenu; -// HWND hwndParent; -// int cy; -// int cx; -// int y; -// int x; -// LONG style; -// LPCTSTR lpszName; -// LPCTSTR lpszClass; -// DWORD dwExStyle; -// } +struct CREATESTRUCT +{ + LPVOID lpCreateParams; + HINST hInstance; + HMENU hMenu; + HWND hwndParent; + int cy; + int cx; + int y; + int x; + LONG style; + LPCTSTR lpszName; + LPCTSTR lpszClass; + DWORD dwExStyle; +} alias CREATESTRUCT* LPCREATESTRUCT; alias CREATESTRUCT TAGCREATESTRUCT; @@ -6710,16 +6714,16 @@ alias CHARSET TCHARSET; alias CHARSET* PCHARSET; -// struct FONTSIGNATURE -// { -// DWORD[1 + 3] fsUsb; -// DWORD[1 + 1] fsCsb; -// } -// -// alias FONTSIGNATURE* LPFONTSIGNATURE; -// alias FONTSIGNATURE TAGFONTSIGNATURE; -// alias FONTSIGNATURE TFONTSIGNATURE; -// alias FONTSIGNATURE* PFONTSIGNATURE; +struct FONTSIGNATURE +{ + DWORD[1 + 3] fsUsb; + DWORD[1 + 1] fsCsb; +} + +alias FONTSIGNATURE* LPFONTSIGNATURE; +alias FONTSIGNATURE TAGFONTSIGNATURE; +alias FONTSIGNATURE TFONTSIGNATURE; +alias FONTSIGNATURE* PFONTSIGNATURE; struct CHARSETINFO { @@ -6732,79 +6736,96 @@ alias CHARSETINFO TCHARSETINFO; alias CHARSETINFO* PCHARSETINFO; -// struct TCHOOSECOLOR -// { -// DWORD lStructSize; -// HWND hwndOwner; -// HWND hInstance; -// COLORREF rgbResult; -// COLORREF* lpCustColors; -// DWORD Flags; -// LPARAM lCustData; -// LPCCHOOKPROC lpfnHook; -// LPCTSTR lpTemplateName; -// } -// -// alias TCHOOSECOLOR* LPCHOOSECOLOR; -// alias TCHOOSECOLOR* PCHOOSECOLOR; - -// struct LOGFONTA -// { -// LONG lfHeight; -// LONG lfWidth; -// LONG lfEscapement; -// LONG lfOrientation; -// LONG lfWeight; -// ubyte lfItalic; -// ubyte lfUnderline; -// ubyte lfStrikeOut; -// ubyte lfCharSet; -// ubyte lfOutPrecision; -// ubyte lfClipPrecision; -// ubyte lfQuality; -// ubyte lfPitchAndFamily; -// TCHAR[1 + LF_FACESIZE-1] lfFaceName; -// } -// -// alias LOGFONTA TLOGFONTA; -// alias LOGFONTA* PLOGFONTA; -// alias LOGFONTA* LPLOGFONTA; -// -// struct LOGFONTW -// { -// LONG lfHeight; -// LONG lfWidth; -// LONG lfEscapement; -// LONG lfOrientation; -// LONG lfWeight; -// ubyte lfItalic; -// ubyte lfUnderline; -// ubyte lfStrikeOut; -// ubyte lfCharSet; -// ubyte lfOutPrecision; -// ubyte lfClipPrecision; -// ubyte lfQuality; -// ubyte lfPitchAndFamily; -// WCHAR lfFaceName[LF_FACESIZE]; -// }; -// -// alias LOGFONTW TLOGFONTW; -// alias LOGFONTW* LPLOGFONTW; -// alias LOGFONTW* PLOGFONTW; -// -// version( ANSI ){ -// alias LOGFONTA LOGFONT; -// alias LOGFONTA TLOGFONT; -// alias LOGFONTA* PLOGFONT; -// alias LOGFONTA* LPLOGFONT; -// } -// else{ -// alias LOGFONTW LOGFONT; -// alias LOGFONTW TLOGFONT; -// alias LOGFONTW* PLOGFONT; -// alias LOGFONTW* LPLOGFONT; -// } - +struct CHOOSECOLORA { + DWORD lStructSize; + HWND hwndOwner; + HWND hInstance; + COLORREF rgbResult; + COLORREF* lpCustColors; + DWORD Flags; + LPARAM lCustData; + LPCCHOOKPROC lpfnHook; + LPCSTR lpTemplateName; +} +alias CHOOSECOLORA* PCHOOSECOLORA, LPCHOOSECOLORA; +struct CHOOSECOLORW { + DWORD lStructSize; + HWND hwndOwner; + HWND hInstance; + COLORREF rgbResult; + COLORREF* lpCustColors; + DWORD Flags; + LPARAM lCustData; + LPCCHOOKPROC lpfnHook; + LPCWSTR lpTemplateName; +} +alias CHOOSECOLORW* PCHOOSECOLORW, LPCHOOSECOLORW; +version(Win32SansUnicode) +{ + alias CHOOSECOLORA CHOOSECOLOR; +} +else +{ + alias CHOOSECOLORW CHOOSECOLOR; +} +alias CHOOSECOLOR* PCHOOSECOLOR, LPCHOOSECOLOR; + +struct LOGFONTA +{ + LONG lfHeight; + LONG lfWidth; + LONG lfEscapement; + LONG lfOrientation; + LONG lfWeight; + ubyte lfItalic; + ubyte lfUnderline; + ubyte lfStrikeOut; + ubyte lfCharSet; + ubyte lfOutPrecision; + ubyte lfClipPrecision; + ubyte lfQuality; + ubyte lfPitchAndFamily; + ubyte[1 + LF_FACESIZE-1] lfFaceName; +} + +alias LOGFONTA TLOGFONTA; +alias LOGFONTA* PLOGFONTA; +alias LOGFONTA* LPLOGFONTA; + +struct LOGFONTW +{ + LONG lfHeight; + LONG lfWidth; + LONG lfEscapement; + LONG lfOrientation; + LONG lfWeight; + ubyte lfItalic; + ubyte lfUnderline; + ubyte lfStrikeOut; + ubyte lfCharSet; + ubyte lfOutPrecision; + ubyte lfClipPrecision; + ubyte lfQuality; + ubyte lfPitchAndFamily; + WCHAR lfFaceName[LF_FACESIZE]; +}; + +alias LOGFONTW TLOGFONTW; +alias LOGFONTW* LPLOGFONTW; +alias LOGFONTW* PLOGFONTW; + +version( Win32SansUnicode ){ + alias LOGFONTA LOGFONT; + alias LOGFONTA TLOGFONT; + alias LOGFONTA* PLOGFONT; + alias LOGFONTA* LPLOGFONT; +} +else{ + alias LOGFONTW LOGFONT; + alias LOGFONTW TLOGFONT; + alias LOGFONTW* PLOGFONT; + alias LOGFONTW* LPLOGFONT; +} struct TCHOOSEFONT { @@ -7820,51 +7841,51 @@ alias DEVMODE TDEVMODE; alias DEVMODE* PDEVMODE; -// struct DEVNAMES -// { -// ushort wDriverOffset; -// ushort wDeviceOffset; -// ushort wOutputOffset; -// ushort wDefault; -// } - -// alias DEVNAMES* LPDEVNAMES; -// alias DEVNAMES TAGDEVNAMES; -// alias DEVNAMES TDEVNAMES; -// alias DEVNAMES* PDEVNAMES; - -// struct DIBSECTION -// { -// BITMAP dsBm; -// BITMAPINFOHEADER dsBmih; -// DWORD[1 + 2] dsBitfields; -// HANDLE dshSection; -// DWORD dsOffset; -// } -// -// alias DIBSECTION TAGDIBSECTION; -// alias DIBSECTION TDIBSECTION; -// alias DIBSECTION* PDIBSECTION; - -// union LARGE_INTEGER -// { -// struct -// { -// DWORD LowPart; -// LONG HighPart; -// }; -// struct u -// { -// DWORD LowPart; -// LONG HighPart; -// }; -// LONGLONG QuadPart; -// }; -// -// alias LARGE_INTEGER* PLARGE_INTEGER; -// alias LARGE_INTEGER _LARGE_INTEGER; -// alias LARGE_INTEGER TLARGEINTEGER; -// alias LARGE_INTEGER* PLARGEINTEGER; +struct DEVNAMES +{ + ushort wDriverOffset; + ushort wDeviceOffset; + ushort wOutputOffset; + ushort wDefault; +} + +alias DEVNAMES* LPDEVNAMES; +alias DEVNAMES TAGDEVNAMES; +alias DEVNAMES TDEVNAMES; +alias DEVNAMES* PDEVNAMES; + +struct DIBSECTION +{ + BITMAP dsBm; + BITMAPINFOHEADER dsBmih; + DWORD[1 + 2] dsBitfields; + HANDLE dshSection; + DWORD dsOffset; +} + +alias DIBSECTION TAGDIBSECTION; +alias DIBSECTION TDIBSECTION; +alias DIBSECTION* PDIBSECTION; + +union LARGE_INTEGER +{ + struct + { + DWORD LowPart; + LONG HighPart; + }; + struct u + { + DWORD LowPart; + LONG HighPart; + }; + LONGLONG QuadPart; +} + +alias LARGE_INTEGER* PLARGE_INTEGER; +alias LARGE_INTEGER _LARGE_INTEGER; +alias LARGE_INTEGER TLARGEINTEGER; +alias LARGE_INTEGER* PLARGEINTEGER; struct DISK_GEOMETRY { @@ -7949,18 +7970,37 @@ alias DOC_INFO_2 TDOCINFO2; alias DOC_INFO_2* PDOCINFO2; -// struct DOCINFO -// { -// int cbSize; -// LPCTSTR lpszDocName; -// LPCTSTR lpszOutput; -// LPCTSTR lpszDatatype; -// DWORD fwType; -// } -// -// alias DOCINFO TDOCINFO; -// alias DOCINFO TDOCINFOA; -// alias DOCINFO* PDOCINFO; +struct DOCINFOA +{ + int cbSize; + LPCSTR lpszDocName; + LPCSTR lpszOutput; + LPCSTR lpszDatatype; + DWORD fwType; +} +alias DOCINFOA TDOCINFOA; + +struct DOCINFOW +{ + int cbSize; + LPCWSTR lpszDocName; + LPCWSTR lpszOutput; + LPCWSTR lpszDatatype; + DWORD fwType; +} +alias DOCINFOW TDOCINFOW; + +version(Win32SansUnicode) +{ + alias DOCINFOA DOCINFO; +} +else +{ + alias DOCINFOW DOCINFO; +} +alias DOCINFO TDOCINFO; +alias DOCINFO* LPDOCINFO; +alias DOCINFO* PDOCINFO; struct DRAGLISTINFO { @@ -7973,23 +8013,23 @@ alias DRAGLISTINFO TDRAGLISTINFO; alias DRAGLISTINFO* PDRAGLISTINFO; -// struct DRAWITEMSTRUCT -// { -// UINT CtlType; -// UINT CtlID; -// UINT itemID; -// UINT itemAction; -// UINT itemState; -// HWND hwndItem; -// HDC hDC; -// RECT rcItem; -// DWORD itemData; -// } -// -// alias DRAWITEMSTRUCT* LPDRAWITEMSTRUCT; -// alias DRAWITEMSTRUCT TAGDRAWITEMSTRUCT; -// alias DRAWITEMSTRUCT TDRAWITEMSTRUCT; -// alias DRAWITEMSTRUCT* PDRAWITEMSTRUCT; +struct DRAWITEMSTRUCT +{ + UINT CtlType; + UINT CtlID; + UINT itemID; + UINT itemAction; + UINT itemState; + HWND hwndItem; + HDC hDC; + RECT rcItem; + DWORD itemData; +} + +alias DRAWITEMSTRUCT* LPDRAWITEMSTRUCT; +alias DRAWITEMSTRUCT TAGDRAWITEMSTRUCT; +alias DRAWITEMSTRUCT TDRAWITEMSTRUCT; +alias DRAWITEMSTRUCT* PDRAWITEMSTRUCT; struct DRAWTEXTPARAMS { @@ -8285,16 +8325,16 @@ alias EMRCREATEPALETTE TEMRCREATEPALETTE; alias EMRCREATEPALETTE* PEMRCREATEPALETTE; -// struct LOGPEN -// { -// UINT lopnStyle; -// POINT lopnWidth; -// COLORREF lopnColor; -// } -// -// alias LOGPEN TAGLOGPEN; -// alias LOGPEN TLOGPEN; -// alias LOGPEN* PLOGPEN; +struct LOGPEN +{ + UINT lopnStyle; + POINT lopnWidth; + COLORREF lopnColor; +} + +alias LOGPEN TAGLOGPEN; +alias LOGPEN TLOGPEN; +alias LOGPEN* PLOGPEN; struct EMRCREATEPEN { @@ -9131,16 +9171,16 @@ alias EMRSELECTCLIPPATH TEMRENABLEICM; alias EMRSELECTCLIPPATH* PEMRENABLEICM; -// struct NMHDR -// { -// HWND hwndFrom; -// UINT idFrom; -// UINT code; -// } -// -// alias NMHDR TAGNMHDR; -// alias NMHDR TNMHDR; -// alias NMHDR* PNMHDR; +struct NMHDR +{ + HWND hwndFrom; + UINT idFrom; + UINT code; +} + +alias NMHDR TAGNMHDR; +alias NMHDR TNMHDR; +alias NMHDR* PNMHDR; struct ENCORRECTTEXT { @@ -9265,57 +9305,39 @@ struct ENUMLOGFONTA { LOGFONTA elfLogFont; - CHAR elfFullName[LF_FULLFACESIZE]; - CHAR elfStyle[LF_FACESIZE]; + BYTE elfFullName[LF_FULLFACESIZE]; + BYTE elfStyle[LF_FACESIZE]; } struct ENUMLOGFONTW { LOGFONTW elfLogFont; - WCHAR elfFullName[LF_FULLFACESIZE]; - WCHAR elfStyle[LF_FACESIZE]; + WCHAR elfFullName[LF_FULLFACESIZE]; + WCHAR elfStyle[LF_FACESIZE]; } struct ENUMLOGFONTEXA { LOGFONTA elfLogFont; - BYTE elfFullName[LF_FULLFACESIZE]; - BYTE elfStyle[LF_FACESIZE]; - BYTE elfScript[LF_FACESIZE]; + BYTE elfFullName[LF_FULLFACESIZE]; + BYTE elfStyle[LF_FACESIZE]; + BYTE elfScript[LF_FACESIZE]; } struct ENUMLOGFONTEXW { LOGFONTW elfLogFont; - WCHAR elfFullName[LF_FULLFACESIZE]; - WCHAR elfStyle[LF_FACESIZE]; - WCHAR elfScript[LF_FACESIZE]; -} -version(ANSI){ + WCHAR elfFullName[LF_FULLFACESIZE]; + WCHAR elfStyle[LF_FACESIZE]; + WCHAR elfScript[LF_FACESIZE]; +} +version(Win32SansUnicode){ alias ENUMLOGFONTA ENUMLOGFONT; alias ENUMLOGFONTEXA ENUMLOGFONTEX; }else { alias ENUMLOGFONTW ENUMLOGFONT; alias ENUMLOGFONTEXW ENUMLOGFONTEX; } - - -// struct ENUMLOGFONT -// { -// LOGFONT elfLogFont; -// BCHAR[1 + LF_FULLFACESIZE-1] elfFullName; -// BCHAR[1 + LF_FACESIZE-1] elfStyle; -// } -// -// alias ENUMLOGFONT TAGENUMLOGFONT; -// alias ENUMLOGFONT TENUMLOGFONT; -// alias ENUMLOGFONT* PENUMLOGFONT; -// -// struct ENUMLOGFONTEX -// { -// LOGFONT elfLogFont; -// BCHAR[1 + LF_FULLFACESIZE-1] elfFullName; -// BCHAR[1 + LF_FACESIZE-1] elfStyle; -// BCHAR[1 + LF_FACESIZE-1] elfScript; -// } -// -// alias ENUMLOGFONTEX TAGENUMLOGFONTEX; -// alias ENUMLOGFONTEX TENUMLOGFONTEX; -// alias ENUMLOGFONTEX* PENUMLOGFONTEX; +alias ENUMLOGFONT TAGENUMLOGFONT; +alias ENUMLOGFONT TENUMLOGFONT; +alias ENUMLOGFONT* PENUMLOGFONT; +alias ENUMLOGFONTEX TAGENUMLOGFONTEX; +alias ENUMLOGFONTEX TENUMLOGFONTEX; +alias ENUMLOGFONTEX* PENUMLOGFONTEX; struct EVENTLOGRECORD { @@ -9554,23 +9576,43 @@ alias FORMATRANGE TFORMATRANGE; alias FORMATRANGE* PFORMATRANGE; -// struct GCP_RESULTS -// { -// DWORD lStructSize; -// LPTSTR lpOutString; -// UINT* lpOrder; -// INT* lpDx; -// INT* lpCaretPos; -// LPTSTR lpClass; -// UINT* lpGlyphs; -// UINT nGlyphs; -// UINT nMaxFit; -// } -// -// alias GCP_RESULTS* LPGCP_RESULTS; -// alias GCP_RESULTS TAGGCP_RESULTS; -// alias GCP_RESULTS TGCPRESULTS; -// alias GCP_RESULTS* PGCPRESULTS; +struct GCP_RESULTSA +{ + DWORD lStructSize; + LPSTR lpOutString; + UINT * lpOrder; + int * lpDx; + int * lpCaretPos; + LPSTR lpClass; + LPWSTR lpGlyphs; + UINT nGlyphs; + int nMaxFit; +} + +struct GCP_RESULTSW +{ + DWORD lStructSize; + LPWSTR lpOutString; + UINT * lpOrder; + int * lpDx; + int * lpCaretPos; + LPSTR lpClass; + LPWSTR lpGlyphs; + UINT nGlyphs; + int nMaxFit; +} +version(Win32SansUnicode) +{ + alias GCP_RESULTSA GCP_RESULTS; +} +else +{ + alias GCP_RESULTSW GCP_RESULTS; +} +alias GCP_RESULTS* LPGCP_RESULTS; +alias GCP_RESULTS TAGGCP_RESULTS; +alias GCP_RESULTS TGCPRESULTS; +alias GCP_RESULTS* PGCPRESULTS; struct GENERIC_MAPPING { @@ -9674,20 +9716,20 @@ alias HD_NOTIFY THDNOTIFY; alias HD_NOTIFY* PHDNOTIFY; -// struct HELPINFO -// { -// UINT cbSize; -// int iContextType; -// int iCtrlId; -// HANDLE hItemHandle; -// DWORD dwContextId; -// POINT MousePos; -// } -// -// alias HELPINFO* LPHELPINFO; -// alias HELPINFO TAGHELPINFO; -// alias HELPINFO THELPINFO; -// alias HELPINFO* PHELPINFO; +struct HELPINFO +{ + UINT cbSize; + int iContextType; + int iCtrlId; + HANDLE hItemHandle; + DWORD dwContextId; + POINT MousePos; +} + +alias HELPINFO* LPHELPINFO; +alias HELPINFO TAGHELPINFO; +alias HELPINFO THELPINFO; +alias HELPINFO* PHELPINFO; struct HELPWININFO { @@ -9703,17 +9745,30 @@ alias HELPWININFO THELPWININFO; alias HELPWININFO* PHELPWININFO; -// struct HIGHCONTRAST -// { -// UINT cbSize; -// DWORD dwFlags; -// LPTSTR lpszDefaultScheme; -// } -// -// alias HIGHCONTRAST* LPHIGHCONTRAST; -// alias HIGHCONTRAST TAGHIGHCONTRAST; -// alias HIGHCONTRAST THIGHCONTRAST; -// alias HIGHCONTRAST* PHIGHCONTRAST; +struct HIGHCONTRASTA +{ + UINT cbSize; + DWORD dwFlags; + LPSTR lpszDefaultScheme; +} +struct HIGHCONTRASTW +{ + UINT cbSize; + DWORD dwFlags; + LPWSTR lpszDefaultScheme; +} +version(Win32SansUnicode) +{ + alias HIGHCONTRASTA HIGHCONTRAST; +} +else +{ + alias HIGHCONTRASTW HIGHCONTRAST; +} +alias HIGHCONTRAST* LPHIGHCONTRAST; +alias HIGHCONTRAST TAGHIGHCONTRAST; +alias HIGHCONTRAST THIGHCONTRAST; +alias HIGHCONTRAST* PHIGHCONTRAST; struct HSZPAIR { @@ -10194,20 +10249,20 @@ alias MDICREATESTRUCT TMDICREATESTRUCT; alias MDICREATESTRUCT* PMDICREATESTRUCT; -// struct MEASUREITEMSTRUCT -// { -// UINT CtlType; -// UINT CtlID; -// UINT itemID; -// UINT itemWidth; -// UINT itemHeight; -// DWORD itemData; -// } -// -// alias MEASUREITEMSTRUCT* LPMEASUREITEMSTRUCT; -// alias MEASUREITEMSTRUCT TAGMEASUREITEMSTRUCT; -// alias MEASUREITEMSTRUCT TMEASUREITEMSTRUCT; -// alias MEASUREITEMSTRUCT* PMEASUREITEMSTRUCT; +struct MEASUREITEMSTRUCT +{ + UINT CtlType; + UINT CtlID; + UINT itemID; + UINT itemWidth; + UINT itemHeight; + DWORD itemData; +} + +alias MEASUREITEMSTRUCT* LPMEASUREITEMSTRUCT; +alias MEASUREITEMSTRUCT TAGMEASUREITEMSTRUCT; +alias MEASUREITEMSTRUCT TMEASUREITEMSTRUCT; +alias MEASUREITEMSTRUCT* PMEASUREITEMSTRUCT; struct MEMORY_BASIC_INFORMATION { @@ -10303,35 +10358,20 @@ UINT cch; // used if MIIM_TYPE HBITMAP hbmpItem; } alias MENUITEMINFOW* PMENUITEMINFOW, LPMENUITEMINFOW; -version(ANSI){ +version(Win32SansUnicode) +{ alias MENUITEMINFOA MENUITEMINFO; -}else{ +} +else +{ alias MENUITEMINFOW MENUITEMINFO; } alias MENUITEMINFO * LPMENUITEMINFO; alias MENUITEMINFO * LPCMENUITEMINFO; - -// struct MENUITEMINFO -// { -// UINT cbSize; -// UINT fMask; -// UINT fType; -// UINT fState; -// UINT wID; -// HMENU hSubMenu; -// HBITMAP hbmpChecked; -// HBITMAP hbmpUnchecked; -// DWORD dwItemData; -// LPTSTR dwTypeData; -// UINT cch; -// } -// -// alias MENUITEMINFO* LPMENUITEMINFO; -// alias MENUITEMINFO* LPCMENUITEMINFO; -// alias MENUITEMINFO TAGMENUITEMINFO; -// alias MENUITEMINFO TMENUITEMINFO; -// alias MENUITEMINFO TMENUITEMINFOA; -// alias MENUITEMINFO* PMENUITEMINFO; +alias MENUITEMINFO TAGMENUITEMINFO; +alias MENUITEMINFO TMENUITEMINFO; +alias MENUITEMINFO TMENUITEMINFOA; +alias MENUITEMINFO* PMENUITEMINFO; struct MENUITEMTEMPLATE { @@ -10414,18 +10454,18 @@ alias MINIMIZEDMETRICS TMINIMIZEDMETRICS; alias MINIMIZEDMETRICS* PMINIMIZEDMETRICS; -// struct MINMAXINFO -// { -// POINT ptReserved; -// POINT ptMaxSize; -// POINT ptMaxPosition; -// POINT ptMinTrackSize; -// POINT ptMaxTrackSize; -// } -// -// alias MINMAXINFO TAGMINMAXINFO; -// alias MINMAXINFO TMINMAXINFO; -// alias MINMAXINFO* PMINMAXINFO; +struct MINMAXINFO +{ + POINT ptReserved; + POINT ptMaxSize; + POINT ptMaxPosition; + POINT ptMinTrackSize; + POINT ptMaxTrackSize; +} + +alias MINMAXINFO TAGMINMAXINFO; +alias MINMAXINFO TMINMAXINFO; +alias MINMAXINFO* PMINMAXINFO; struct MODEMDEVCAPS { @@ -10785,8 +10825,6 @@ alias NEWCPLINFO TNEWCPLINFO; alias NEWCPLINFO* PNEWCPLINFO; -// ---------------------------------------------------------------------------- - struct NEWTEXTMETRICA { LONG tmHeight; LONG tmAscent; @@ -10840,71 +10878,36 @@ UINT ntmAvgWidth; } -struct NEWTEXTMETRICEXA { +struct NEWTEXTMETRICEXA +{ NEWTEXTMETRICA ntmentm; FONTSIGNATURE ntmeFontSignature; } -struct NEWTEXTMETRICEXW { +struct NEWTEXTMETRICEXW +{ NEWTEXTMETRICW ntmentm; FONTSIGNATURE ntmeFontSignature; } + +version(Win32SansUnicode) +{ + alias NEWTEXTMETRICA NEWTEXTMETRIC; + alias NEWTEXTMETRICEXA NEWTEXTMETRICEX; +} +else +{ + alias NEWTEXTMETRICW NEWTEXTMETRIC; + alias NEWTEXTMETRICEXW NEWTEXTMETRICEX; +} + alias NEWTEXTMETRIC TNEWTEXTMETRIC; alias NEWTEXTMETRIC* PNEWTEXTMETRIC; alias NEWTEXTMETRIC* LPNEWTEXTMETRIC; - -version(ANSI){ - alias NEWTEXTMETRICA NEWTEXTMETRIC; - alias NEWTEXTMETRICEXA NEWTEXTMETRICEX; -}else{ - alias NEWTEXTMETRICW NEWTEXTMETRIC; - alias NEWTEXTMETRICEXW NEWTEXTMETRICEX; -} - -/+ -struct NEWTEXTMETRIC -{ - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - BCHAR tmFirstChar; - BCHAR tmLastChar; - BCHAR tmDefaultChar; - BCHAR tmBreakChar; - ubyte tmItalic; - ubyte tmUnderlined; - ubyte tmStruckOut; - ubyte tmPitchAndFamily; - ubyte tmCharSet; - DWORD ntmFlags; - UINT ntmSizeEM; - UINT ntmCellHeight; - UINT ntmAvgWidth; -} - alias NEWTEXTMETRIC TAGNEWTEXTMETRIC; -alias NEWTEXTMETRIC TNEWTEXTMETRIC; -alias NEWTEXTMETRIC* PNEWTEXTMETRIC; - -struct NEWTEXTMETRICEX -{ - NEWTEXTMETRIC ntmentm; - FONTSIGNATURE ntmeFontSignature; -} - alias NEWTEXTMETRICEX TAGNEWTEXTMETRICEX; alias NEWTEXTMETRICEX TNEWTEXTMETRICEX; alias NEWTEXTMETRICEX* PNEWTEXTMETRICEX; -+/ -// ---------------------------------------------------------------------------- struct NM_LISTVIEW { @@ -10922,38 +10925,61 @@ alias NM_LISTVIEW TNMLISTVIEW; alias NM_LISTVIEW* PNMLISTVIEW; -// struct TV_ITEM -// { -// UINT mask; -// HTREEITEM hItem; -// UINT state; -// UINT stateMask; -// LPTSTR pszText; -// int cchTextMax; -// int iImage; -// int iSelectedImage; -// int cChildren; -// LPARAM lParam; -// } -// -// alias TV_ITEM* LPTV_ITEM; -// alias TV_ITEM _TV_ITEM; -// alias TV_ITEM TTVITEM; -// alias TV_ITEM* PTVITEM; - -// struct NM_TREEVIEW -// { -// NMHDR hdr; -// UINT action; -// TV_ITEM itemOld; -// TV_ITEM itemNew; -// POINT ptDrag; -// } -// -// alias NM_TREEVIEW* LPNM_TREEVIEW; -// alias NM_TREEVIEW _NM_TREEVIEW; -// alias NM_TREEVIEW TNMTREEVIEW; -// alias NM_TREEVIEW* PNMTREEVIEW; +struct TVITEMA +{ + UINT mask; + HTREEITEM hItem; + UINT state; + UINT stateMask; + LPSTR pszText; + int cchTextMax; + int iImage; + int iSelectedImage; + int cChildren; + LPARAM lParam; +} +struct TVITEMW +{ + UINT mask; + HTREEITEM hItem; + UINT state; + UINT stateMask; + LPWSTR pszText; + int cchTextMax; + int iImage; + int iSelectedImage; + int cChildren; + LPARAM lParam; +} +version(Win32SansUnicode) +{ + alias TVITEMA TVITEM; +} +else +{ + alias TVITEMW TVITEM; +} +alias TVITEM* LPTVITEM; +alias TVITEM* LPTV_ITEM; +alias TVITEM _TV_ITEM; +alias TVITEM TTVITEM; +alias TVITEM TV_ITEM; +alias TVITEM* PTVITEM; + +struct NMTREEVIEW +{ + NMHDR hdr; + UINT action; + TVITEM itemOld; + TVITEM itemNew; + POINT ptDrag; +} +alias NMTREEVIEW* PNMTREEVIEW; +alias NMTREEVIEW* LPNMTREEVIEW; +alias NMTREEVIEW NM_TREEVIEW; +alias NM_TREEVIEW* LPNM_TREEVIEW; +alias NM_TREEVIEW _NM_TREEVIEW; +alias NM_TREEVIEW TNMTREEVIEW; struct NM_UPDOWNW { @@ -10967,29 +10993,52 @@ alias NM_UPDOWNW* PNMUPDOWN; alias NM_UPDOWNW NMUPDOWN; -// struct NONCLIENTMETRICS -// { -// UINT cbSize; -// int iBorderWidth; -// int iScrollWidth; -// int iScrollHeight; -// int iCaptionWidth; -// int iCaptionHeight; -// LOGFONT lfCaptionFont; -// int iSmCaptionWidth; -// int iSmCaptionHeight; -// LOGFONT lfSmCaptionFont; -// int iMenuWidth; -// int iMenuHeight; -// LOGFONT lfMenuFont; -// LOGFONT lfStatusFont; -// LOGFONT lfMessageFont; -// } -// -// alias NONCLIENTMETRICS* LPNONCLIENTMETRICS; -// alias NONCLIENTMETRICS TAGNONCLIENTMETRICS; -// alias NONCLIENTMETRICS TNONCLIENTMETRICS; -// alias NONCLIENTMETRICS* PNONCLIENTMETRICS; +struct NONCLIENTMETRICSA { + int cbSize; + int iBorderWidth; + int iScrollWidth; + int iScrollHeight; + int iCaptionWidth; + int iCaptionHeight; + LOGFONTA lfCaptionFont; + int iSmCaptionWidth; + int iSmCaptionHeight; + LOGFONTA lfSmCaptionFont; + int iMenuWidth; + int iMenuHeight; + LOGFONTA lfMenuFont; + LOGFONTA lfStatusFont; + LOGFONTA lfMessageFont; +} +struct NONCLIENTMETRICSW { + int cbSize; + int iBorderWidth; + int iScrollWidth; + int iScrollHeight; + int iCaptionWidth; + int iCaptionHeight; + LOGFONTW lfCaptionFont; + int iSmCaptionWidth; + int iSmCaptionHeight; + LOGFONTW lfSmCaptionFont; + int iMenuWidth; + int iMenuHeight; + LOGFONTW lfMenuFont; + LOGFONTW lfStatusFont; + LOGFONTW lfMessageFont; +} +version(Win32SansUnicode) +{ + alias NONCLIENTMETRICSA NONCLIENTMETRICS; +} +else +{ + alias NONCLIENTMETRICSW NONCLIENTMETRICS; +} +alias NONCLIENTMETRICS* LPNONCLIENTMETRICS; +alias NONCLIENTMETRICS TAGNONCLIENTMETRICS; +alias NONCLIENTMETRICS TNONCLIENTMETRICS; +alias NONCLIENTMETRICS* PNONCLIENTMETRICS; struct SERVICE_ADDRESS { @@ -11148,93 +11197,185 @@ alias OFNOTIFY TOFNOTIFY; alias OFNOTIFY* POFNOTIFY; -// struct OSVERSIONINFO -// { -// DWORD dwOSVersionInfoSize; -// DWORD dwMajorVersion; -// DWORD dwMinorVersion; -// DWORD dwBuildNumber; -// DWORD dwPlatformId; -// TCHAR[1 + 127] szCSDVersion; -// } -// -// alias OSVERSIONINFO* LPOSVERSIONINFO; -// alias OSVERSIONINFO _OSVERSIONINFO; -// alias OSVERSIONINFO TOSVERSIONINFO; -// alias OSVERSIONINFO* POSVERSIONINFO; - -// struct TEXTMETRIC -// { -// LONG tmHeight; -// LONG tmAscent; -// LONG tmDescent; -// LONG tmInternalLeading; -// LONG tmExternalLeading; -// LONG tmAveCharWidth; -// LONG tmMaxCharWidth; -// LONG tmWeight; -// LONG tmOverhang; -// LONG tmDigitizedAspectX; -// LONG tmDigitizedAspectY; -// BCHAR tmFirstChar; -// BCHAR tmLastChar; -// BCHAR tmDefaultChar; -// BCHAR tmBreakChar; -// ubyte tmItalic; -// ubyte tmUnderlined; -// ubyte tmStruckOut; -// ubyte tmPitchAndFamily; -// ubyte tmCharSet; -// } -// -// alias TEXTMETRIC* LPTEXTMETRIC; -// alias TEXTMETRIC TAGTEXTMETRIC; -// alias TEXTMETRIC TTEXTMETRIC; -// alias TEXTMETRIC* PTEXTMETRIC; - -struct OUTLINETEXTMETRICW { - UINT otmSize; - TEXTMETRIC otmTextMetrics; - BYTE otmFiller; - PANOSE otmPanoseNumber; - UINT otmfsSelection; - UINT otmfsType; - int otmsCharSlopeRise; - int otmsCharSlopeRun; - int otmItalicAngle; - UINT otmEMSquare; - int otmAscent; - int otmDescent; - UINT otmLineGap; - UINT otmsCapEmHeight; - UINT otmsXHeight; - RECT otmrcFontBox; - int otmMacAscent; - int otmMacDescent; - UINT otmMacLineGap; - UINT otmusMinimumPPEM; - POINT otmptSubscriptSize; - POINT otmptSubscriptOffset; - POINT otmptSuperscriptSize; - POINT otmptSuperscriptOffset; - UINT otmsStrikeoutSize; - int otmsStrikeoutPosition; - int otmsUnderscoreSize; - int otmsUnderscorePosition; - PSTR otmpFamilyName; - PSTR otmpFaceName; - PSTR otmpStyleName; - PSTR otmpFullName; +struct OSVERSIONINFOA +{ + DWORD dwOSVersionInfoSize; + DWORD dwMajorVersion; + DWORD dwMinorVersion; + DWORD dwBuildNumber; + DWORD dwPlatformId; + CHAR szCSDVersion[ 128 ]; +} +alias OSVERSIONINFOA* POSVERSIONINFOA, LPOSVERSIONINFOA; + +struct OSVERSIONINFOW +{ + DWORD dwOSVersionInfoSize; + DWORD dwMajorVersion; + DWORD dwMinorVersion; + DWORD dwBuildNumber; + DWORD dwPlatformId; + WCHAR szCSDVersion[ 128 ]; +} +alias OSVERSIONINFOW* POSVERSIONINFOW, LPOSVERSIONINFOW; +version(Win32SansUnicode) +{ + alias OSVERSIONINFOA OSVERSIONINFO; +} +else +{ + alias OSVERSIONINFOW OSVERSIONINFO; +} +alias OSVERSIONINFO* LPOSVERSIONINFO; +alias OSVERSIONINFO _OSVERSIONINFO; +alias OSVERSIONINFO TOSVERSIONINFO; +alias OSVERSIONINFO* POSVERSIONINFO; + +struct TEXTMETRICA { + align(1): + LONG tmHeight; + LONG tmAscent; + LONG tmDescent; + LONG tmInternalLeading; + LONG tmExternalLeading; + LONG tmAveCharWidth; + LONG tmMaxCharWidth; + LONG tmWeight; + LONG tmOverhang; + LONG tmDigitizedAspectX; + LONG tmDigitizedAspectY; + + BYTE tmFirstChar; + BYTE tmLastChar; + BYTE tmDefaultChar; + BYTE tmBreakChar; + + BYTE tmItalic; + BYTE tmUnderlined; + BYTE tmStruckOut; + BYTE tmPitchAndFamily; + BYTE tmCharSet; +} +struct TEXTMETRICW { + align(1): + LONG tmHeight; + LONG tmAscent; + LONG tmDescent; + LONG tmInternalLeading; + LONG tmExternalLeading; + LONG tmAveCharWidth; + LONG tmMaxCharWidth; + LONG tmWeight; + LONG tmOverhang; + LONG tmDigitizedAspectX; + LONG tmDigitizedAspectY; + + WCHAR tmFirstChar; + WCHAR tmLastChar; + WCHAR tmDefaultChar; + WCHAR tmBreakChar; + + BYTE tmItalic; + BYTE tmUnderlined; + BYTE tmStruckOut; + BYTE tmPitchAndFamily; + BYTE tmCharSet; +} +version(Win32SansUnicode) +{ + alias TEXTMETRICA TEXTMETRIC; +} +else +{ + alias TEXTMETRICW TEXTMETRIC; +} +alias TEXTMETRIC* LPTEXTMETRIC; +alias TEXTMETRIC TAGTEXTMETRIC; +alias TEXTMETRIC TTEXTMETRIC; +alias TEXTMETRIC* PTEXTMETRIC; + +struct OUTLINETEXTMETRICA +{ + UINT otmSize; + TEXTMETRICA otmTextMetrics; + BYTE otmFiller; + PANOSE otmPanoseNumber; + UINT otmfsSelection; + UINT otmfsType; + int otmsCharSlopeRise; + int otmsCharSlopeRun; + int otmItalicAngle; + UINT otmEMSquare; + int otmAscent; + int otmDescent; + UINT otmLineGap; + UINT otmsCapEmHeight; + UINT otmsXHeight; + RECT otmrcFontBox; + int otmMacAscent; + int otmMacDescent; + UINT otmMacLineGap; + UINT otmusMinimumPPEM; + POINT otmptSubscriptSize; + POINT otmptSubscriptOffset; + POINT otmptSuperscriptSize; + POINT otmptSuperscriptOffset; + UINT otmsStrikeoutSize; + int otmsStrikeoutPosition; + int otmsUnderscoreSize; + int otmsUnderscorePosition; + PSTR otmpFamilyName; + PSTR otmpFaceName; + PSTR otmpStyleName; + PSTR otmpFullName; +} +struct OUTLINETEXTMETRICW +{ + UINT otmSize; + TEXTMETRICW otmTextMetrics; + BYTE otmFiller; + PANOSE otmPanoseNumber; + UINT otmfsSelection; + UINT otmfsType; + int otmsCharSlopeRise; + int otmsCharSlopeRun; + int otmItalicAngle; + UINT otmEMSquare; + int otmAscent; + int otmDescent; + UINT otmLineGap; + UINT otmsCapEmHeight; + UINT otmsXHeight; + RECT otmrcFontBox; + int otmMacAscent; + int otmMacDescent; + UINT otmMacLineGap; + UINT otmusMinimumPPEM; + POINT otmptSubscriptSize; + POINT otmptSubscriptOffset; + POINT otmptSuperscriptSize; + POINT otmptSuperscriptOffset; + UINT otmsStrikeoutSize; + int otmsStrikeoutPosition; + int otmsUnderscoreSize; + int otmsUnderscorePosition; + PSTR otmpFamilyName; + PSTR otmpFaceName; + PSTR otmpStyleName; + PSTR otmpFullName; } alias OUTLINETEXTMETRIC* LPOUTLINETEXTMETRIC; alias OUTLINETEXTMETRIC _OUTLINETEXTMETRIC; alias OUTLINETEXTMETRIC TOUTLINETEXTMETRIC; alias OUTLINETEXTMETRIC* POUTLINETEXTMETRIC; -version(ANSI){ +version(Win32SansUnicode) +{ alias OUTLINETEXTMETRICA OUTLINETEXTMETRIC; alias OUTLINETEXTMETRICA* LPOUTLINETEXTMETRICA; -}else { +} +else +{ alias OUTLINETEXTMETRICW OUTLINETEXTMETRIC; alias OUTLINETEXTMETRICW* LPOUTLINETEXTMETRICW; } @@ -12057,18 +12198,19 @@ alias REQRESIZE TREQRESIZE; alias REQRESIZE* PREQRESIZE; -// struct RGNDATAHEADER -// { -// DWORD dwSize; -// DWORD iType; -// DWORD nCount; -// DWORD nRgnSize; -// RECT rcBound; -// } -// -// alias RGNDATAHEADER _RGNDATAHEADER; -// alias RGNDATAHEADER TRGNDATAHEADER; -// alias RGNDATAHEADER* PRGNDATAHEADER; +struct RGNDATAHEADER +{ + DWORD dwSize; + DWORD iType; + DWORD nCount; + DWORD nRgnSize; + RECT rcBound; +} + +alias RGNDATAHEADER _RGNDATAHEADER; +alias RGNDATAHEADER TRGNDATAHEADER; +alias RGNDATAHEADER* PRGNDATAHEADER; +alias RGNDATAHEADER* LPRGNDATAHEADER; struct RGNDATA { @@ -12214,19 +12356,35 @@ alias SHCONTF TAGSHCONTF; alias SHCONTF TSHCONTF; -struct SHFILEINFO +struct SHFILEINFOA +{ + HICON hIcon; + int iIcon; + DWORD dwAttributes; + CHAR[MAX_PATH] szDisplayName; + CHAR[80] szTypeName; +} +struct SHFILEINFOW { HICON hIcon; int iIcon; DWORD dwAttributes; - TCHAR[MAX_PATH] szDisplayName; - TCHAR[80] szTypeName; -} - -alias SHFILEINFO SHFILEINFOW; + WCHAR[MAX_PATH] szDisplayName; + WCHAR[80] szTypeName; +} +version(Win32SansUnicode) +{ + alias SHFILEINFOA SHFILEINFO; +} +else +{ + alias SHFILEINFOW SHFILEINFO; +} + alias SHFILEINFO _SHFILEINFO; alias SHFILEINFO TSHFILEINFO; alias SHFILEINFO* PSHFILEINFO; + alias ushort FILEOP_FLAGS; alias FILEOP_FLAGS TFILEOPFLAGS; alias FILEOP_FLAGS* PFILEOPFLAGS; @@ -12574,21 +12732,26 @@ alias TBADDBITMAP TTBADDBITMAP; alias TBADDBITMAP* PTBADDBITMAP; -// struct TBBUTTON -// { -// int iBitmap; -// int idCommand; -// ubyte fsState; -// ubyte fsStyle; -// DWORD dwData; -// int iString; -// } -// -// alias TBBUTTON* LPTBBUTTON; -// alias TBBUTTON* LPCTBBUTTON; -// alias TBBUTTON _TBBUTTON; -// alias TBBUTTON TTBBUTTON; -// alias TBBUTTON* PTBBUTTON; +struct TBBUTTON { + align(2): + int iBitmap; + int idCommand; + BYTE fsState; + BYTE fsStyle; +//#ifdef _WIN64 +// BYTE bReserved[6] // padding for alignment +//#elif defined(_WIN32) +// BYTE bReserved[2] // padding for alignment +//#endif + DWORD_PTR dwData; + INT_PTR iString; +} + +alias TBBUTTON* LPTBBUTTON; +alias TBBUTTON* LPCTBBUTTON; +alias TBBUTTON _TBBUTTON; +alias TBBUTTON TTBBUTTON; +alias TBBUTTON* PTBBUTTON; struct TBNOTIFY { @@ -12800,7 +12963,17 @@ alias TOKEN_USER TTOKENUSER; alias TOKEN_USER* PTOKENUSER; -struct TOOLINFO +struct TOOLINFOA +{ + UINT cbSize; + UINT uFlags; + HWND hwnd; + UINT uId; + RECT rect; + HINST hinst; + LPSTR lpszText; +} +struct TOOLINFOW { UINT cbSize; UINT uFlags; @@ -12809,22 +12982,43 @@ RECT rect; HINST hinst; LPWSTR lpszText; - LPARAM lParam; -} - +} +version(Win32SansUnicode) +{ + alias TOOLINFOA TOOLINFO; +} +else +{ + alias TOOLINFOW TOOLINFO; +} alias TOOLINFO* LPTOOLINFO; alias TOOLINFO TTOOLINFO; alias TOOLINFO* PTOOLINFO; -struct TOOLTIPTEXT +struct TOOLTIPTEXTA +{ + NMHDR hdr; + LPSTR lpszText; + CHAR[80] szText; + HINST hinst; + UINT uFlags; +} +struct TOOLTIPTEXTW { NMHDR hdr; - LPTSTR lpszText; - char[1 + 79] szText; + LPWSTR lpszText; + WCHAR[80] szText; HINST hinst; UINT uFlags; } - +version(Win32SansUnicode) +{ + alias TOOLTIPTEXTA TOOLTIPTEXT; +} +else +{ + alias TOOLTIPTEXTW TOOLTIPTEXT; +} alias TOOLTIPTEXT* LPTOOLTIPTEXT; alias TOOLTIPTEXT TTOOLTIPTEXT; alias TOOLTIPTEXT* PTOOLTIPTEXT; @@ -12888,63 +13082,77 @@ alias TTPOLYGONHEADER TTTPOLYGONHEADER; alias TTPOLYGONHEADER* PTTPOLYGONHEADER; -// struct TV_DISPINFO -// { -// NMHDR hdr; -// TV_ITEM item; -// } -// -// alias TV_DISPINFO _TV_DISPINFO; -// alias TV_DISPINFO TTVDISPINFO; -// alias TV_DISPINFO* PTVDISPINFO; -// -// struct TV_HITTESTINFO -// { -// POINT pt; -// UINT flags; -// HTREEITEM hItem; -// } -// -// alias TV_HITTESTINFO* LPTV_HITTESTINFO; -// alias TV_HITTESTINFO _TVHITTESTINFO; -// alias TV_HITTESTINFO TTVHITTESTINFO; -// alias TV_HITTESTINFO* PTVHITTESTINFO; -// -// struct TV_INSERTSTRUCT -// { -// HTREEITEM hParent; -// HTREEITEM hInsertAfter; -// TV_ITEM item; -// } -// -// alias TV_INSERTSTRUCT* LPTV_INSERTSTRUCT; -// alias TV_INSERTSTRUCT _TV_INSERTSTRUCT; -// alias TV_INSERTSTRUCT TTVINSERTSTRUCT; -// alias TV_INSERTSTRUCT TVINSERTSTRUCT; -// alias TV_INSERTSTRUCT* PTVINSERTSTRUCT; -// -// struct TV_KEYDOWN -// { -// NMHDR hdr; -// ushort wVKey; -// UINT flags; -// } -// -// alias TV_KEYDOWN _TV_KEYDOWN; -// alias TV_KEYDOWN TTVKEYDOWN; -// alias TV_KEYDOWN* PTVKEYDOWN; -// -// struct TV_SORTCB -// { -// HTREEITEM hParent; -// PFNTVCOMPARE lpfnCompare; -// LPARAM lParam; -// } -// -// alias TV_SORTCB* LPTV_SORTCB; -// alias TV_SORTCB _TV_SORTCB; -// alias TV_SORTCB TTVSORTCB; -// alias TV_SORTCB* PTVSORTCB; +struct TV_DISPINFO +{ + NMHDR hdr; + TV_ITEM item; +} + +alias TV_DISPINFO _TV_DISPINFO; +alias TV_DISPINFO TTVDISPINFO; +alias TV_DISPINFO* PTVDISPINFO; + +struct TV_HITTESTINFO +{ + POINT pt; + UINT flags; + HTREEITEM hItem; +} + +alias TV_HITTESTINFO* LPTV_HITTESTINFO; +alias TV_HITTESTINFO _TVHITTESTINFO; +alias TV_HITTESTINFO TTVHITTESTINFO; +alias TV_HITTESTINFO* PTVHITTESTINFO; + +struct TVINSERTSTRUCTA +{ + HTREEITEM hParent; + HTREEITEM hInsertAfter; + TVITEMA item; +} +struct TVINSERTSTRUCTW +{ + HTREEITEM hParent; + HTREEITEM hInsertAfter; + TVITEMW item; +} +version(Win32SansUnicode) +{ + alias TVINSERTSTRUCTA TVINSERTSTRUCT; +} +else +{ + alias TVINSERTSTRUCTW TVINSERTSTRUCT; +} + +alias TVINSERTSTRUCT TV_INSERTSTRUCT; +alias TVINSERTSTRUCT* LPTV_INSERTSTRUCT; +alias TVINSERTSTRUCT _TV_INSERTSTRUCT; +alias TVINSERTSTRUCT TTVINSERTSTRUCT; +alias TVINSERTSTRUCT* PTVINSERTSTRUCT; + +struct TV_KEYDOWN +{ + NMHDR hdr; + ushort wVKey; + UINT flags; +} + +alias TV_KEYDOWN _TV_KEYDOWN; +alias TV_KEYDOWN TTVKEYDOWN; +alias TV_KEYDOWN* PTVKEYDOWN; + +struct TV_SORTCB +{ + HTREEITEM hParent; + PFNTVCOMPARE lpfnCompare; + LPARAM lParam; +} + +alias TV_SORTCB* LPTV_SORTCB; +alias TV_SORTCB _TV_SORTCB; +alias TV_SORTCB TTVSORTCB; +alias TV_SORTCB* PTVSORTCB; struct UDACCEL { @@ -12955,16 +13163,24 @@ alias UDACCEL TUDACCEL; alias UDACCEL* PUDACCEL; -// struct ULARGE_INTEGER -// { -// DWORD LowPart; -// DWORD HighPart; -// } -// -// alias ULARGE_INTEGER* PULARGE_INTEGER; -// alias ULARGE_INTEGER _ULARGE_INTEGER; -// alias ULARGE_INTEGER TULARGEINTEGER; -// alias ULARGE_INTEGER* PULARGEINTEGER; +union ULARGE_INTEGER +{ + struct + { + DWORD LowPart; + DWORD HighPart; + }; + struct u + { + DWORD LowPart; + DWORD HighPart; + }; + DWORDLONG QuadPart; +} +alias ULARGE_INTEGER* PULARGE_INTEGER; +alias ULARGE_INTEGER _ULARGE_INTEGER; +alias ULARGE_INTEGER TULARGEINTEGER; +alias ULARGE_INTEGER* PULARGEINTEGER; struct UNIVERSAL_NAME_INFO { @@ -13109,7 +13325,8 @@ alias WINDOWPLACEMENT TWINDOWPLACEMENT; alias WINDOWPLACEMENT* PWINDOWPLACEMENT; -struct WNDCLASSA { +struct WNDCLASSA +{ UINT style; WNDPROC lpfnWndProc; int cbClsExtra; @@ -13124,7 +13341,8 @@ alias WNDCLASSA* PWNDCLASSA, LPWNDCLASSA; -struct WNDCLASSW { +struct WNDCLASSW +{ UINT style; WNDPROC lpfnWndProc; int cbClsExtra; @@ -13135,21 +13353,23 @@ HBRUSH hbrBackground; LPCWSTR lpszMenuName; LPCWSTR lpszClassName; -}; +} alias WNDCLASSW* PWNDCLASSW, LPWNDCLASSW; -// since phobos has alias WNDCLASSA to WNDCLASS, we have to alias it another name -version(ANSI){ +version(Win32SansUnicode) +{ alias WNDCLASSA WNDCLASS; -}else{ +} +else +{ alias WNDCLASSW WNDCLASS; } - alias WNDCLASS* LPWNDCLASS; alias WNDCLASS _WNDCLASS; alias WNDCLASS TWNDCLASS; alias WNDCLASS WNDCLASS_T; +alias WNDCLASS* PWNDCLASS; struct WNDCLASSEX { @@ -13628,21 +13848,24 @@ alias WINDOWINFO* PWINDOWINFO; alias WINDOWINFO* LPWINDOWINFO; +enum : HRESULT +{ + S_OK = 0x00000000, + S_FALSE = 0x00000001, + E_UNEXPECTED = 0x8000FFFF, + E_NOTIMPL = 0x80004001, + E_OUTOFMEMORY = 0x8007000E, + E_INVALIDARG = 0x80070057, + E_NOINTERFACE = 0x80004002, + E_POINTER = 0x80004003, + E_HANDLE = 0x80070006, + E_ABORT = 0x80004004, + E_FAIL = 0x80004005, + E_ACCESSDENIED = 0x80070005, + E_PENDING = 0x8000000A, +} + /* -int S_OK = (0x00000000); -int S_FALSE = (0x00000001); -int NOERROR = (0); -int E_UNEXPECTED = (DWORD)((0x8000FFFF)); -int E_NOTIMPL = (DWORD)((0x80004001)); -int E_OUTOFMEMORY = (DWORD)((0x8007000E)); -int E_INVALIDARG = (DWORD)((0x80070057)); -int E_NOINTERFACE = (DWORD)((0x80004002)); -int E_POINTER = (DWORD)((0x80004003)); -int E_HANDLE = (DWORD)((0x80070006)); -int E_ABORT = (DWORD)((0x80004004)); -int E_FAIL = (DWORD)((0x80004005)); -int E_ACCESSDENIED = (DWORD)((0x80070005)); -int E_PENDING = (DWORD)((0x8000000A)); int CO_E_INIT_TLS = (DWORD)((0x80004006)); int CO_E_INIT_MEMORY_ALLOCATOR = (DWORD)((0x80004008)); int CO_E_INIT_CLASS_CACHE = (DWORD)((0x80004009)); @@ -13797,11 +14020,12 @@ LPCTSTR lpApplicationName; HMODULE hModule; } -version(ANSI) alias ACTCTXA ACTCTX; +version(Win32SansUnicode) alias ACTCTXA ACTCTX; else alias ACTCTXW ACTCTX; alias HANDLE HACTCTX; -struct OSVERSIONINFOEX { +struct OSVERSIONINFOEX +{ DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; @@ -13974,33 +14198,6 @@ //} -struct BROWSEINFOA { - HWND hwndOwner; - LPCITEMIDLIST pidlRoot; - LPSTR pszDisplayName; - LPCSTR lpszTitle; - UINT ulFlags; - BFFCALLBACK lpfn; - LPARAM lParam; - int iImage; -} - -struct BROWSEINFOW { - HWND hwndOwner; - LPCITEMIDLIST pidlRoot; - LPWSTR pszDisplayName; - LPCWSTR lpszTitle; - UINT ulFlags; - BFFCALLBACK lpfn; - LPARAM lParam; - int iImage; -} -version(ANSI){ - alias BROWSEINFOA BROWSEINFO; -} else { - alias BROWSEINFOW BROWSEINFO; -} -alias BROWSEINFO* PBROWSEINFO, LPBROWSEINFO; //struct CHARSETINFO { // UINT ciCharset; @@ -14009,36 +14206,6 @@ //}alias CHARSETINFO* PCHARSETINFO, LPCHARSETINFO; -struct CHOOSECOLORA { - DWORD lStructSize; - HWND hwndOwner; - HWND hInstance; - COLORREF rgbResult; - COLORREF* lpCustColors; - DWORD Flags; - LPARAM lCustData; - LPCCHOOKPROC lpfnHook; - LPCSTR lpTemplateName; -} -alias CHOOSECOLORA* PCHOOSECOLORA, LPCHOOSECOLORA; -struct CHOOSECOLORW { - DWORD lStructSize; - HWND hwndOwner; - HWND hInstance; - COLORREF rgbResult; - COLORREF* lpCustColors; - DWORD Flags; - LPARAM lCustData; - LPCCHOOKPROC lpfnHook; - LPCWSTR lpTemplateName; -} -alias CHOOSECOLORW* PCHOOSECOLORW, LPCHOOSECOLORW; -version(ANSI){ - alias CHOOSECOLORA CHOOSECOLOR; -}else{ - alias CHOOSECOLORW CHOOSECOLOR; -} -alias CHOOSECOLOR* PCHOOSECOLOR, LPCHOOSECOLOR; struct CHOOSEFONTA { @@ -14082,7 +14249,7 @@ INT nSizeMin; INT nSizeMax; }alias CHOOSEFONTW* PCHOOSEFONTW, LPCHOOSEFONTW; -version(ANSI){ +version(Win32SansUnicode){ alias CHOOSEFONTA CHOOSEFONT; }else{ alias CHOOSEFONTW CHOOSEFONT; @@ -14105,21 +14272,6 @@ //} //alias COMPOSITIONFORM* LPCOMPOSITIONFORM; -struct CREATESTRUCT { - int lpCreateParams; - HINSTANCE hInstance; - HMENU hMenu; - HWND hwndParent; - int cy; - int cx; - int y; - int x; - int style; - int lpszName; - int lpszClass; - int dwExStyle; -} - // const uint CCHDEVICENAME = 32; // const uint CCHFORMNAME = 32; @@ -14217,45 +14369,39 @@ } //PORTING_TODO: defined in tango -//version(ANSI){ +//version(Win32SansUnicode){ // alias DEVMODEA DEVMODE; //}else{ // alias DEVMODEW DEVMODE; //} -struct DEVNAMES { - WORD wDriverOffset; - WORD wDeviceOffset; - WORD wOutputOffset; - WORD wDefault; -} - -struct DIBSECTION { - // BITMAP - int bmType; - int bmWidth; - int bmHeight; - int bmWidthBytes; - short bmPlanes; - short bmBitsPixel; - void* bmBits; - // end BITMAP - int biSize; - int biWidth; - int biHeight; - short biPlanes; - short biBitCount; - int biCompression; - int biSizeImage; - int biXPelsPerMeter; - int biYPelsPerMeter; - int biClrUsed; - int biClrImportant; - int dsBitfields0; - int dsBitfields1; - int dsBitfields2; - int dshSection; - int dsOffset; -} + +//struct DIBSECTION { +// // BITMAP +// int bmType; +// int bmWidth; +// int bmHeight; +// int bmWidthBytes; +// short bmPlanes; +// short bmBitsPixel; +// void* bmBits; +// // end BITMAP +// int biSize; +// int biWidth; +// int biHeight; +// short biPlanes; +// short biBitCount; +// int biCompression; +// int biSizeImage; +// int biXPelsPerMeter; +// int biYPelsPerMeter; +// int biClrUsed; +// int biClrImportant; +// int dsBitfields0; +// int dsBitfields1; +// int dsBitfields2; +// int dshSection; +// int dsOffset; +//} struct DLLVERSIONINFO { DWORD cbSize; @@ -14265,40 +14411,7 @@ DWORD dwPlatformID; } -struct DOCINFOA { - int cbSize; - LPCSTR lpszDocName; - LPCSTR lpszOutput; - LPCSTR lpszDatatype; - DWORD fwType; -} - -struct DOCINFOW { - int cbSize; - LPCWSTR lpszDocName; - LPCWSTR lpszOutput; - LPCWSTR lpszDatatype; - DWORD fwType; -} -version(ANSI){ - alias DOCINFOA DOCINFO; -}else{ - alias DOCINFOW DOCINFO; -} -alias DOCINFO* LPDOCINFO; - - -struct DRAWITEMSTRUCT { - UINT CtlType; - UINT CtlID; - UINT itemID; - UINT itemAction; - UINT itemState; - HWND hwndItem; - HDC hDC; - RECT rcItem; - DWORD itemData; -} + struct DROPFILES { DWORD pFiles; // Offset of the file list from the beginning of this structure, in bytes. @@ -14335,7 +14448,7 @@ // WCHAR elfStyle[LF_FACESIZE]; // WCHAR elfScript[LF_FACESIZE]; // } -// version(ANSI){ +// version(Win32SansUnicode){ // alias ENUMLOGFONTA ENUMLOGFONT; // alias ENUMLOGFONTEXA ENUMLOGFONTEX; // }else { @@ -14349,40 +14462,6 @@ // DWORD dwHighDateTime; //} -struct FONTSIGNATURE { - DWORD fsUsb[4]; - DWORD fsCsb[2]; -} - -struct GCP_RESULTSA { - DWORD lStructSize; - LPSTR lpOutString; - UINT *lpOrder; - int *lpDx; - int *lpCaretPos; - LPSTR lpClass; - LPWSTR lpGlyphs; - UINT nGlyphs; - int nMaxFit; -} - -struct GCP_RESULTSW { - DWORD lStructSize; - LPWSTR lpOutString; - UINT *lpOrder; - int *lpDx; - int *lpCaretPos; - LPSTR lpClass; - LPWSTR lpGlyphs; - UINT nGlyphs; - int nMaxFit; -} -version(ANSI){ - alias GCP_RESULTSA GCP_RESULTS; -}else{ - alias GCP_RESULTSW GCP_RESULTS; -} -alias GCP_RESULTS* LPGCP_RESULTS; struct GOFFSET { @@ -14429,39 +14508,13 @@ int iImage; int iOrder; } -version(ANSI){ +version(Win32SansUnicode){ alias HDITEMA HDITEM; }else{ alias HDITEMW HDITEM; } alias HDITEM* LPHDITEM; -struct HELPINFO { - UINT cbSize; - int iContextType; - int iCtrlId; - HANDLE hItemHandle; - DWORD dwContextId; - POINT MousePos; -} -alias HELPINFO* LPHELPINFO; - -struct HIGHCONTRASTA { - UINT cbSize; - DWORD dwFlags; - LPSTR lpszDefaultScheme; -} -struct HIGHCONTRASTW { - UINT cbSize; - DWORD dwFlags; - LPWSTR lpszDefaultScheme; -} -version(ANSI){ - alias HIGHCONTRASTA HIGHCONTRAST; -}else{ - alias HIGHCONTRASTW HIGHCONTRAST; -} - //struct ICONINFO { // BOOL fIcon; @@ -14507,55 +14560,6 @@ // LONG lbHatch; // } -struct LOGFONTA { - int lfHeight; - int lfWidth; - int lfEscapement; - int lfOrientation; - int lfWeight; - byte lfItalic; - byte lfUnderline; - byte lfStrikeOut; - byte lfCharSet; - byte lfOutPrecision; - byte lfClipPrecision; - byte lfQuality; - byte lfPitchAndFamily; - char lfFaceName[LF_FACESIZE]; -} -alias LOGFONTA* LPLOGFONTA; - -struct LOGFONTW { - LONG lfHeight; - LONG lfWidth; - LONG lfEscapement; - LONG lfOrientation; - LONG lfWeight; - BYTE lfItalic; - BYTE lfUnderline; - BYTE lfStrikeOut; - BYTE lfCharSet; - BYTE lfOutPrecision; - BYTE lfClipPrecision; - BYTE lfQuality; - BYTE lfPitchAndFamily; - WCHAR lfFaceName[LF_FACESIZE]; -} -alias LOGFONTW* PLOGFONTW, LPLOGFONTW; -version(ANSI){ - alias LOGFONTA LOGFONT; -} else { - alias LOGFONTW LOGFONT; -} -alias LOGFONT* PLOGFONT; -alias LOGFONT* LPLOGFONT; - - -struct LOGPEN { - UINT lopnStyle; - POINT lopnWidth; - COLORREF lopnColor; -} struct LVCOLUMNA { UINT mask; @@ -14577,7 +14581,7 @@ int iImage; int iOrder; } -version(ANSI){ +version(Win32SansUnicode){ alias LVCOLUMNA LVCOLUMN; }else{ alias LVCOLUMNW LVCOLUMN; @@ -14601,13 +14605,14 @@ } alias LVFINDINFOW* LPFINDINFOW; -version(ANSI){ +version(Win32SansUnicode){ alias LVFINDINFOA LVFINDINFO; }else{ alias LVFINDINFOW LVFINDINFO; } -struct LVHITTESTINFO { +struct LVHITTESTINFO +{ POINT pt; UINT flags; int iItem; @@ -14639,7 +14644,7 @@ LPARAM lParam; int iIndent; } -version(ANSI){ +version(Win32SansUnicode){ alias LVITEMA LVITEM; }else{ alias LVITEMW LVITEM; @@ -14653,15 +14658,6 @@ int cyBottomHeight; } -struct MEASUREITEMSTRUCT { - UINT CtlType; - UINT CtlID; - UINT itemID; - UINT itemWidth; - UINT itemHeight; - DWORD itemData; -} - struct MENUBARINFO { DWORD cbSize; RECT rcBar; @@ -14720,7 +14716,7 @@ // UINT cch; // used if MIIM_TYPE // HBITMAP hbmpItem; // } alias MENUITEMINFOW* PMENUITEMINFOW, LPMENUITEMINFOW; -//version(ANSI){ +//version(Win32SansUnicode){ // alias MENUITEMINFOA MENUITEMINFO; //}else{ // alias MENUITEMINFOW MENUITEMINFO; @@ -14728,14 +14724,6 @@ //alias MENUITEMINFO * LPMENUITEMINFO; -struct MINMAXINFO { - POINT ptReserved; - POINT ptMaxSize; - POINT ptMaxPosition; - POINT ptMinTrackSize; - POINT ptMaxTrackSize; -} - //struct MONITORINFO { // DWORD cbSize; // RECT rcMonitor; @@ -14822,7 +14810,7 @@ NEWTEXTMETRICW ntmentm; FONTSIGNATURE ntmeFontSignature; } -version(ANSI){ +version(Win32SansUnicode){ alias NEWTEXTMETRICA NEWTEXTMETRIC; alias NEWTEXTMETRICEXA NEWTEXTMETRICEX; }else{ @@ -14841,12 +14829,6 @@ LPARAM lItemlParam; } -struct NMHDR { - HWND hwndFrom; - UINT idFrom; - UINT code; -} - struct NMHEADER { NMHDR hdr; int iItem; @@ -14882,7 +14864,7 @@ NMHDR hdr; LVITEMW item; } -version(ANSI){ +version(Win32SansUnicode){ alias NMLVDISPINFOA NMLVDISPINFO; }else{ alias NMLVDISPINFOW NMLVDISPINFO; @@ -14899,7 +14881,7 @@ int iStart; LVFINDINFOW lvfi; } -version(ANSI){ +version(Win32SansUnicode){ alias NMLVFINDITEMA NMLVFINDITEM; }else{ alias NMLVFINDITEMW NMLVFINDITEM; @@ -14941,7 +14923,7 @@ int cchText; LPWSTR pszText; } -version(ANSI){ +version(Win32SansUnicode){ alias NMTOOLBARA NMTOOLBAR; }else{ alias NMTOOLBARW NMTOOLBAR; @@ -14966,7 +14948,7 @@ UINT uFlags; LPARAM lParam; } -version(ANSI){ +version(Win32SansUnicode){ alias NMTTDISPINFOA NMTTDISPINFO; } else { alias NMTTDISPINFOW NMTTDISPINFO; @@ -14981,45 +14963,6 @@ //#endif } -version(ANSI){ - alias NONCLIENTMETRICSA NONCLIENTMETRICS; -} else { - alias NONCLIENTMETRICSW NONCLIENTMETRICS; -} -struct NONCLIENTMETRICSA { - int cbSize; - int iBorderWidth; - int iScrollWidth; - int iScrollHeight; - int iCaptionWidth; - int iCaptionHeight; - LOGFONTA lfCaptionFont; - int iSmCaptionWidth; - int iSmCaptionHeight; - LOGFONTA lfSmCaptionFont; - int iMenuWidth; - int iMenuHeight; - LOGFONTA lfMenuFont; - LOGFONTA lfStatusFont; - LOGFONTA lfMessageFont; -} -struct NONCLIENTMETRICSW { - int cbSize; - int iBorderWidth; - int iScrollWidth; - int iScrollHeight; - int iCaptionWidth; - int iCaptionHeight; - LOGFONTW lfCaptionFont; - int iSmCaptionWidth; - int iSmCaptionHeight; - LOGFONTW lfSmCaptionFont; - int iMenuWidth; - int iMenuHeight; - LOGFONTW lfMenuFont; - LOGFONTW lfStatusFont; - LOGFONTW lfMessageFont; -} struct NOTIFYICONDATAA { DWORD cbSize; @@ -15064,7 +15007,7 @@ } alias NOTIFYICONDATAW* PNOTIFYICONDATAW, LPNOTIFYICONDATAW; -version(ANSI){ +version(Win32SansUnicode){ alias NOTIFYICONDATAA NOTIFYICONDATA; }else{ alias NOTIFYICONDATAW NOTIFYICONDATA; @@ -15120,35 +15063,13 @@ */ //PORTING_TODO: is needed? -//version(ANSI){ +//version(Win32SansUnicode){ // alias OPENFILENAMEA OPENFILENAME; //}else{ // alias OPENFILENAMEW OPENFILENAME; //} -struct OSVERSIONINFOA { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - CHAR szCSDVersion[ 128 ]; -}alias OSVERSIONINFOA* POSVERSIONINFOA, LPOSVERSIONINFOA; - -struct OSVERSIONINFOW { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - WCHAR szCSDVersion[ 128 ]; -}alias OSVERSIONINFOW* POSVERSIONINFOW, LPOSVERSIONINFOW; -version(ANSI){ - alias OSVERSIONINFOA OSVERSIONINFO; -}else{ - alias OSVERSIONINFOW OSVERSIONINFO; -} //struct PAINTSTRUCT { // int hdc; // int fErase; @@ -15211,7 +15132,7 @@ HANDLE hSetupTemplate; } alias PRINTDLGW* PPRINTDLGW, LPPRINTDLGW; -version(ANSI){ +version(Win32SansUnicode){ alias PRINTDLGA PRINTDLG; }else{ alias PRINTDLGW PRINTDLG; @@ -15263,7 +15184,7 @@ UINT cxHeader; /* Note in WinCE. The field cxHeader is not defined. */ } -version(ANSI){ +version(Win32SansUnicode){ alias REBARBANDINFOA REBARBANDINFO; }else{ alias REBARBANDINFOW REBARBANDINFO; @@ -15281,13 +15202,6 @@ // char Buffer[1]; //} alias RGNDATA* PRGNDATA, LPRGNDATA; -struct RGNDATAHEADER { - DWORD dwSize; - DWORD iType; - DWORD nCount; - DWORD nRgnSize; - RECT rcBound; -} alias RGNDATAHEADER* PRGNDATAHEADER, LPRGNDATAHEADER; template BITWISE(T) @@ -15543,18 +15457,13 @@ HANDLE hIcon; HANDLE hProcess; } alias SHELLEXECUTEINFOW* PSHELLEXECUTEINFOW, LPSHELLEXECUTEINFOW; -version(ANSI){ +version(Win32SansUnicode){ alias SHELLEXECUTEINFOA SHELLEXECUTEINFO; }else{ alias SHELLEXECUTEINFOW SHELLEXECUTEINFO; } alias SHELLEXECUTEINFO* LPSHELLEXECUTEINFO; -struct SHITEMID { - USHORT cb; - BYTE abID[1]; -} -alias SHITEMID* LPCSHITEMID; //version(WinCE) //{ @@ -15594,22 +15503,6 @@ //alias SIZE SIZEL; -struct TBBUTTON { - align(2): - int iBitmap; - int idCommand; - BYTE fsState; - BYTE fsStyle; -//#ifdef _WIN64 -// BYTE bReserved[6] // padding for alignment -//#elif defined(_WIN32) -// BYTE bReserved[2] // padding for alignment -//#endif - DWORD_PTR dwData; - INT_PTR iString; -} -alias TBBUTTON* PTBBUTTON, LPTBBUTTON; - struct TBBUTTONINFOA{ align(2): UINT cbSize; @@ -15636,7 +15529,7 @@ LPWSTR pszText; int cchText; } -version(ANSI){ +version(Win32SansUnicode){ alias TBBUTTONINFOA TBBUTTONINFO; }else{ alias TBBUTTONINFOW TBBUTTONINFO; @@ -15661,46 +15554,12 @@ int iImage; LPARAM lParam; } -version(ANSI){ +version(Win32SansUnicode){ alias TCITEMA TCITEM; }else{ alias TCITEMW TCITEM; } -// declared in phobos alread -//struct TEXTMETRICA { -//} -struct TEXTMETRICW { - align(1): - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - - wchar tmFirstChar; - wchar tmLastChar; - wchar tmDefaultChar; - wchar tmBreakChar; - - BYTE tmItalic; - BYTE tmUnderlined; - BYTE tmStruckOut; - BYTE tmPitchAndFamily; - BYTE tmCharSet; -} -version(ANSI){ - alias TEXTMETRICA TEXTMETRIC; -} else { - alias TEXTMETRICW TEXTMETRIC; -} -alias TEXTMETRIC* LPTEXTMETRIC; // struct TOOLINFOA { // UINT cbSize; @@ -15722,7 +15581,7 @@ // LPWSTR lpszText; // LPARAM lParam; // } -// version(ANSI){ +// version(Win32SansUnicode){ // alias TOOLINFOA TOOLINFO; // }else{ // alias TOOLINFOW TOOLINFO; @@ -15754,66 +15613,9 @@ } -struct TVINSERTSTRUCTA { - HTREEITEM hParent; - HTREEITEM hInsertAfter; - TVITEMA item; -} -struct TVINSERTSTRUCTW { - HTREEITEM hParent; - HTREEITEM hInsertAfter; - TVITEMW item; -} -version(ANSI){ - alias TVINSERTSTRUCTA TVINSERTSTRUCT; -}else{ - alias TVINSERTSTRUCTW TVINSERTSTRUCT; -} - - -struct TVITEMA { - UINT mask; - HTREEITEM hItem; - UINT state; - UINT stateMask; - LPSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int cChildren; - LPARAM lParam; -} -struct TVITEMW { - UINT mask; - HTREEITEM hItem; - UINT state; - UINT stateMask; - LPWSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int cChildren; - LPARAM lParam; -} -version(ANSI){ - alias TVITEMA TVITEM; -}else{ - alias TVITEMW TVITEM; -} -alias TVITEM* LPTVITEM; - -union ULARGE_INTEGER { - struct { - DWORD LowPart; - DWORD HighPart; - }; - struct u { - DWORD LowPart; - DWORD HighPart; - }; - DWORDLONG QuadPart; -} -alias ULARGE_INTEGER * PULARGE_INTEGER; + + + //alias extern(Windows) int (*PFNTVCOMPARE)(LPARAM, LPARAM, LPARAM); struct TVSORTCB { @@ -15859,7 +15661,7 @@ // }alias WNDCLASSW* PWNDCLASSW, LPWNDCLASSW; // // // since phobos has alias WNDCLASSA to WNDCLASS, we have to alias it another name -// version(ANSI){ +// version(Win32SansUnicode){ // alias WNDCLASSA WNDCLASS_T; // }else{ // alias WNDCLASSW WNDCLASS_T; @@ -15931,20 +15733,23 @@ } alias SCROLLBARINFO* PSCROLLBARINFO; -struct NMTREEVIEW { - NMHDR hdr; - UINT action; - TVITEM itemOld; - TVITEM itemNew; - POINT ptDrag; -} -alias NMTREEVIEW* PNMTREEVIEW; -alias NMTREEVIEW* LPNMTREEVIEW; - } // end of extern(Windows) - +// shlwapi.h +enum {ASSOCF_INIT_BYEXENAME, + ASSOCF_OPEN_BYEXENAME, + ASSOCF_INIT_DEFAULTTOSTAR, + ASSOCF_INIT_DEFAULTTOFOLDER, + ASSOCF_NOUSERSETTINGS, + ASSOCF_NOTRUNCATE, + ASSOCF_VERIFY, + ASSOCF_REMAPRUNDLL, + ASSOCF_NOFIXUPS, + ASSOCF_IGNOREBASECLASS +}; + +alias DWORD ASSOCF; diff -r 9c1bb90eba13 -r e2affbeb686d dwt/widgets/Combo.d --- a/dwt/widgets/Combo.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/widgets/Combo.d Thu Jun 19 03:25:36 2008 +0200 @@ -1048,7 +1048,7 @@ int mbcsSize = OS.GetWindowTextLengthA (hwndText); if (mbcsSize is 0) return 0; if (mbcsPos >= mbcsSize) return mbcsSize; - char [] buffer = new char [mbcsSize + 1]; + CHAR [] buffer = new CHAR [mbcsSize + 1]; buffer[] = 0; OS.GetWindowTextA (hwndText, buffer.ptr, mbcsSize + 1); return OS.MultiByteToWideChar (getCodePage (), OS.MB_PRECOMPOSED, buffer.ptr, mbcsPos, null, 0); @@ -1993,7 +1993,7 @@ if (hwndText is null) return wcsPos; int mbcsSize = OS.GetWindowTextLengthA (hwndText); if (mbcsSize is 0) return 0; - char [] buffer = new char [mbcsSize + 1]; + CHAR [] buffer = new CHAR [mbcsSize + 1]; OS.GetWindowTextA (hwndText, buffer.ptr, mbcsSize + 1); int mbcsPos = 0, wcsCount = 0; while (mbcsPos < mbcsSize) { diff -r 9c1bb90eba13 -r e2affbeb686d dwt/widgets/Composite.d --- a/dwt/widgets/Composite.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/widgets/Composite.d Thu Jun 19 03:25:36 2008 +0200 @@ -1764,7 +1764,7 @@ } if (hdr.code is OS.TTN_GETDISPINFOA) { - auto bytes = MBCSsToStr( chars, getCodePage () ); + auto bytes = MBCSsToStr( cast(CHAR[])chars, getCodePage () ); //byte [] bytes = new byte [chars.length * 2]; //OS.WideCharToMultiByte (getCodePage (), 0, chars.ptr, chars.length, bytes, bytes.length, null, null); shell.setToolTipText (lpnmtdi, bytes); diff -r 9c1bb90eba13 -r e2affbeb686d dwt/widgets/Display.d --- a/dwt/widgets/Display.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/widgets/Display.d Thu Jun 19 03:25:36 2008 +0200 @@ -2906,14 +2906,14 @@ if (OS.IsUnicode) return cast(wchar) ch; int key = ch & 0xFFFF; if (key <= 0x7F) return cast(wchar) ch; - char [] buffer; + CHAR[] buffer; if (key <= 0xFF) { - buffer = new char [1]; - buffer [0] = cast(char) key; + buffer = new CHAR [1]; + buffer [0] = cast(CHAR) key; } else { - buffer = new char [2]; - buffer [0] = cast(char) ((key >> 8) & 0xFF); - buffer [1] = cast(char) (key & 0xFF); + buffer = new CHAR [2]; + buffer [0] = cast(CHAR) ((key >> 8) & 0xFF); + buffer [1] = cast(CHAR) (key & 0xFF); } wchar [] unicode = new wchar [1]; int cp = codePage !is 0 ? codePage : OS.CP_ACP; diff -r 9c1bb90eba13 -r e2affbeb686d dwt/widgets/Shell.d --- a/dwt/widgets/Shell.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/widgets/Shell.d Thu Jun 19 03:25:36 2008 +0200 @@ -1687,7 +1687,7 @@ } } -void setToolTipText (NMTTDISPINFO* lpnmtdi, byte [] buffer) { +void setToolTipText (NMTTDISPINFO* lpnmtdi, CHAR [] buffer) { /* * Ensure that the current position of the mouse * is inside the client area of the shell. This @@ -1703,7 +1703,7 @@ lpnmtdi.lpszText = lpstrTip; } -void setToolTipText (NMTTDISPINFO* lpnmtdi, wchar [] buffer) { +void setToolTipText (NMTTDISPINFO* lpnmtdi, WCHAR [] buffer) { /* * Ensure that the current position of the mouse * is inside the client area of the shell. This diff -r 9c1bb90eba13 -r e2affbeb686d dwt/widgets/Spinner.d --- a/dwt/widgets/Spinner.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/widgets/Spinner.d Thu Jun 19 03:25:36 2008 +0200 @@ -654,7 +654,7 @@ int mbcsSize = OS.GetWindowTextLengthA (hwndText); if (mbcsSize is 0) return 0; if (mbcsPos >= mbcsSize) return mbcsSize; - char [] buffer = new char [mbcsSize + 1]; + CHAR [] buffer = new CHAR [mbcsSize + 1]; OS.GetWindowTextA (hwndText, buffer.ptr, mbcsSize + 1); return OS.MultiByteToWideChar (getCodePage (), OS.MB_PRECOMPOSED, buffer.ptr, mbcsPos, null, 0); } diff -r 9c1bb90eba13 -r e2affbeb686d dwt/widgets/Table.d --- a/dwt/widgets/Table.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/widgets/Table.d Thu Jun 19 03:25:36 2008 +0200 @@ -6749,7 +6749,7 @@ Shell shell = getShell (); wchar [] chars = StrToTCHARs(string, true ); if (hdr.code is OS.TTN_GETDISPINFOA) { - char [] bytes = new char [chars.length * 2]; + CHAR [] bytes = new CHAR [chars.length * 2]; OS.WideCharToMultiByte (getCodePage (), 0, chars.ptr, chars.length, bytes.ptr, bytes.length, null, null); shell.setToolTipText (lpnmtdi, bytes); OS.MoveMemory (lParam, cast(NMTTDISPINFOA*)lpnmtdi, NMTTDISPINFOA.sizeof); diff -r 9c1bb90eba13 -r e2affbeb686d dwt/widgets/Text.d --- a/dwt/widgets/Text.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/widgets/Text.d Thu Jun 19 03:25:36 2008 +0200 @@ -1249,7 +1249,7 @@ if (OS.IsUnicode) return mbcsPos; int cp = getCodePage (); int wcsTotal = 0, mbcsTotal = 0; - char [] buffer = new char [128]; + CHAR [] buffer = new CHAR [128]; String delimiter = getLineDelimiter(); int delimiterSize = delimiter.length; int count = OS.SendMessageA (handle, OS.EM_GETLINECOUNT, 0, 0); @@ -1259,7 +1259,7 @@ int mbcsSize = OS.SendMessageA (handle, OS.EM_LINELENGTH, linePos, 0); if (mbcsSize !is 0) { if (mbcsSize + delimiterSize > buffer.length) { - buffer = new char [mbcsSize + delimiterSize]; + buffer = new CHAR [mbcsSize + delimiterSize]; } //ENDIAN buffer [0] = cast(char) (mbcsSize & 0xFF); @@ -1269,7 +1269,7 @@ } if (line - 1 !is count) { for (int i=0; i buffer.length) { - buffer = new char [mbcsSize + delimiterSize]; + buffer = new CHAR [mbcsSize + delimiterSize]; } //ENDIAN buffer [0] = cast(char) (mbcsSize & 0xFF); diff -r 9c1bb90eba13 -r e2affbeb686d dwt/widgets/Tree.d --- a/dwt/widgets/Tree.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/widgets/Tree.d Thu Jun 19 03:25:36 2008 +0200 @@ -276,7 +276,7 @@ TreeItem _getItem (HANDLE hItem) { TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; if (OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem) !is 0) { return _getItem (tvItem.hItem, tvItem.lParam); } @@ -1248,7 +1248,7 @@ OS.SetRect (&rect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.left + hdItem.cxy, nmcd.nmcd.rc.bottom); if (OS.COMCTL32_MAJOR < 6 || !OS.IsAppThemed ()) { RECT itemRect; - if (OS.TreeView_GetItemRect (handle, item.handle, &itemRect, true)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)item.handle, &itemRect, true)) { rect.left = Math.min (itemRect.left, rect.right); } } @@ -1385,7 +1385,7 @@ } if (hItem !is null) { RECT rect; - if (OS.TreeView_GetItemRect (handle, hItem, &rect, false)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, false)) { top = rect.bottom; } } @@ -1440,7 +1440,7 @@ hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_LASTVISIBLE, 0); } if (hItem !is null) { - if (OS.TreeView_GetItemRect (handle, hItem, &rect, false)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, false)) { height = rect.bottom - rect.top; } } @@ -1496,7 +1496,7 @@ if (hItem !is null) { TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); hSelect = hItem; ignoreDeselect = ignoreSelect = lockSelection = true; @@ -1743,7 +1743,7 @@ } void clear (HANDLE hItem, TVITEM* tvItem) { - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; TreeItem item = null; if (OS.SendMessage (handle, OS.TVM_GETITEM, 0, tvItem) !is 0) { item = tvItem.lParam !is -1 ? items [tvItem.lParam] : null; @@ -1835,13 +1835,13 @@ if ((style & DWT.VIRTUAL) is 0 && !painted) { TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_TEXT; - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; tvItem.pszText = OS.LPSTR_TEXTCALLBACK; ignoreCustomDraw = true; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); ignoreCustomDraw = false; } - if (OS.TreeView_GetItemRect (handle, hItem, &rect, true)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, true)) { width = Math.max (width, rect.right); height += rect.bottom - rect.top; } @@ -2113,8 +2113,8 @@ bool fixParent = hFirstItem is null; if (hItem is null) { TVINSERTSTRUCT tvInsert; - tvInsert.hParent = hParent; - tvInsert.hInsertAfter = hInsertAfter; + tvInsert.hParent = cast(HTREEITEM)hParent; + tvInsert.hInsertAfter = cast(HTREEITEM)hInsertAfter; tvInsert.item.lParam = id; tvInsert.item.pszText = OS.LPSTR_TEXTCALLBACK; tvInsert.item.iImage = tvInsert.item.iSelectedImage = cast(HBITMAP) OS.I_IMAGECALLBACK; @@ -2139,7 +2139,7 @@ } else { TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; - tvItem.hItem = hNewItem = hItem; + tvItem.hItem = cast(HTREEITEM)( hNewItem = hItem ); tvItem.lParam = id; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); } @@ -2165,7 +2165,7 @@ if (fixParent) { if (drawCount is 0 && OS.IsWindowVisible (handle)) { RECT rect; - if (OS.TreeView_GetItemRect (handle, hParent, &rect, false)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hParent, &rect, false)) { OS.InvalidateRect (handle, &rect, true); } } @@ -2180,7 +2180,7 @@ if ((style & DWT.VIRTUAL) !is 0) { if (currentItem !is null) { RECT rect; - if (OS.TreeView_GetItemRect (handle, hNewItem, &rect, false)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hNewItem, &rect, false)) { RECT damageRect; bool damaged = cast(bool) OS.GetUpdateRect (handle, &damageRect, true); if (damaged && damageRect.top < rect.bottom) { @@ -2348,7 +2348,7 @@ void deselect (HANDLE hItem, TVITEM* tvItem, HANDLE hIgnoreItem) { while (hItem !is null) { if (hItem !is hIgnoreItem) { - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, tvItem); } auto hFirstItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, hItem); @@ -2381,7 +2381,7 @@ TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; tvItem.stateMask = OS.TVIS_SELECTED; - tvItem.hItem = item.handle; + tvItem.hItem = cast(HTREEITEM)item.handle; OS.SendMessage (handle, OS.TVM_SETITEM, 0, cast(int)&tvItem); } @@ -2401,7 +2401,7 @@ if ((style & DWT.SINGLE) !is 0) { HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); if (hItem !is null) { - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); } } else { @@ -2414,7 +2414,7 @@ for (int i=0; i clientRect.bottom) break; if ((hNewItem = hVisible) is hItem) { OS.SendMessage (handle, OS.WM_VSCROLL, OS.SB_PAGEDOWN, 0); @@ -6018,7 +6018,7 @@ } if (hNewItem !is null) { OS.SendMessage (handle, OS.TVM_ENSUREVISIBLE, 0, hNewItem); - tvItem.hItem = hNewItem; + tvItem.hItem = cast(HTREEITEM)hNewItem; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); bool newSelected = (tvItem.state & OS.TVIS_SELECTED) !is 0; bool redraw = !newSelected && drawCount is 0 && OS.IsWindowVisible (handle); @@ -6033,12 +6033,12 @@ hSelect = null; if (oldSelected) { tvItem.state = OS.TVIS_SELECTED; - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); } if (!newSelected) { tvItem.state = 0; - tvItem.hItem = hNewItem; + tvItem.hItem = cast(HTREEITEM)hNewItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); } if (redraw) { @@ -6046,8 +6046,8 @@ bool fItemRect = (style & DWT.FULL_SELECTION) is 0; if (hooks (DWT.EraseItem) || hooks (DWT.PaintItem)) fItemRect = false; if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) fItemRect = false; - OS.TreeView_GetItemRect (handle, hItem, &rect1, fItemRect); - OS.TreeView_GetItemRect (handle, hNewItem, &rect2, fItemRect); + OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect1, fItemRect); + OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hNewItem, &rect2, fItemRect); OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); OS.InvalidateRect (handle, &rect1, true); OS.InvalidateRect (handle, &rect2, true); @@ -6203,7 +6203,7 @@ auto hNext = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXTVISIBLE, lpht.hItem); while (hNext !is null) { if (hNext is hAnchor) hAnchor = null; - tvItem.hItem = hNext; + tvItem.hItem = cast(HTREEITEM)hNext; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); if ((tvItem.state & OS.TVIS_SELECTED) !is 0) deselected = true; tvItem.state = 0; @@ -6245,7 +6245,7 @@ auto hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); if (hItem !is null) { RECT rect; - if (OS.TreeView_GetItemRect (handle, hItem, &rect, false)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, false)) { OS.InvalidateRect (handle, &rect, true); } } @@ -6359,7 +6359,7 @@ /* Get the selected state of the last selected item */ auto hOldItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); if ((style & DWT.MULTI) !is 0) { - tvItem.hItem = hOldItem; + tvItem.hItem = cast(HTREEITEM)hOldItem; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); /* Check for CONTROL or drag selection */ @@ -6442,7 +6442,7 @@ tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; tvItem.state = OS.TVIS_SELECTED; tvItem.stateMask = OS.TVIS_SELECTED; - tvItem.hItem = hNewItem; + tvItem.hItem = cast(HTREEITEM)hNewItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); } } @@ -6475,8 +6475,8 @@ bool fItemRect = (style & DWT.FULL_SELECTION) is 0; if (hooks (DWT.EraseItem) || hooks (DWT.PaintItem)) fItemRect = false; if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) fItemRect = false; - OS.TreeView_GetItemRect (handle, hOldItem, &rect1, fItemRect); - OS.TreeView_GetItemRect (handle, hNewItem, &rect2, fItemRect); + OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hOldItem, &rect1, fItemRect); + OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hNewItem, &rect2, fItemRect); OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); OS.InvalidateRect (handle, &rect1, true); OS.InvalidateRect (handle, &rect2, true); @@ -6496,29 +6496,29 @@ for (int i=0; i> 12) & 1) is 0); } @@ -720,7 +720,7 @@ TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; tvItem.stateMask = OS.TVIS_STATEIMAGEMASK; - tvItem.hItem = handle; + tvItem.hItem = cast(HTREEITEM)handle; int result = OS.SendMessage (hwnd, OS.TVM_GETITEM, 0, &tvItem); return (result !is 0) && ((tvItem.state >> 12) > 2); } @@ -994,7 +994,7 @@ } } RECT rect; - if (OS.TreeView_GetItemRect (hwnd, handle, &rect, !full)) { + if (OS.TreeView_GetItemRect (hwnd, cast(HTREEITEM)handle, &rect, !full)) { OS.InvalidateRect (hwnd, &rect, true); } } @@ -1046,7 +1046,7 @@ auto hwnd = parent.handle; TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; - tvItem.hItem = cast(HANDLE) OS.SendMessage (hwnd, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, cast(int)handle); + tvItem.hItem = cast(HTREEITEM) OS.SendMessage (hwnd, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, cast(int)handle); while (tvItem.hItem !is null) { OS.SendMessage (hwnd, OS.TVM_GETITEM, 0, cast(int)&tvItem); TreeItem item = tvItem.lParam !is -1 ? parent.items [tvItem.lParam] : null; @@ -1056,7 +1056,7 @@ parent.releaseItem (tvItem.hItem, &tvItem, false); parent.destroyItem (null, tvItem.hItem); } - tvItem.hItem = cast(HANDLE) OS.SendMessage (hwnd, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, cast(int)handle); + tvItem.hItem = cast(HTREEITEM) OS.SendMessage (hwnd, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, cast(int)handle); } } @@ -1155,7 +1155,7 @@ TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; tvItem.stateMask = OS.TVIS_STATEIMAGEMASK; - tvItem.hItem = handle; + tvItem.hItem = cast(HTREEITEM)handle; OS.SendMessage (hwnd, OS.TVM_GETITEM, 0, &tvItem); int state = tvItem.state >> 12; if (checked) { @@ -1177,7 +1177,7 @@ if ((parent.style & DWT.VIRTUAL) !is 0) { if (parent.currentItem is this && OS.IsWindowVisible (hwnd)) { RECT rect; - if (OS.TreeView_GetItemRect (hwnd, handle, &rect, false)) { + if (OS.TreeView_GetItemRect (hwnd, cast(HTREEITEM)handle, &rect, false)) { OS.InvalidateRect (hwnd, &rect, true); } } @@ -1256,7 +1256,7 @@ int index = 0; while (hItem !is null && (noAnimate || hItem !is handle) && index < count) { RECT rect; - if (OS.TreeView_GetItemRect (hwnd, hItem, &rect, true)) { + if (OS.TreeView_GetItemRect (hwnd, cast(HTREEITEM)hItem, &rect, true)) { rects [index++] = rect; } hItem = cast(HANDLE) OS.SendMessage (hwnd, OS.TVM_GETNEXTITEM, OS.TVGN_NEXTVISIBLE, cast(int) &hItem); @@ -1306,7 +1306,7 @@ bool collapsed = false; if (!expanded) { RECT rect; - while (hTopItem !is null && !OS.TreeView_GetItemRect (hwnd, hTopItem, &rect, false)) { + while (hTopItem !is null && !OS.TreeView_GetItemRect (hwnd, cast(HTREEITEM)hTopItem, &rect, false)) { hTopItem = cast(HANDLE) OS.SendMessage (hwnd, OS.TVM_GETNEXTITEM, OS.TVGN_PARENT, hTopItem); collapsed = true; } @@ -1337,7 +1337,7 @@ int index = 0; while (hItem !is null && index < count) { RECT rect; - if (OS.TreeView_GetItemRect (hwnd, hItem, &rect, true)) { + if (OS.TreeView_GetItemRect (hwnd, cast(HTREEITEM)hItem, &rect, true)) { if (!OS.EqualRect (&rect, & rects [index])) { break; } @@ -1367,7 +1367,7 @@ } if (handle is hBottomItem) { RECT rect; - if (OS.TreeView_GetItemRect (hwnd, hBottomItem, &rect, false)) { + if (OS.TreeView_GetItemRect (hwnd, cast(HTREEITEM)hBottomItem, &rect, false)) { OS.InvalidateRect (hwnd, &rect, true); } } @@ -1435,7 +1435,7 @@ auto hwnd = parent.handle; TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_TEXT; - tvItem.hItem = handle; + tvItem.hItem = cast(HTREEITEM)handle; tvItem.pszText = OS.LPSTR_TEXTCALLBACK; OS.SendMessage (hwnd, OS.TVM_SETITEM, 0, &tvItem); } @@ -1490,7 +1490,7 @@ auto hwnd = parent.handle; TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_TEXT; - tvItem.hItem = handle; + tvItem.hItem = cast(HTREEITEM)handle; tvItem.pszText = OS.LPSTR_TEXTCALLBACK; OS.SendMessage (hwnd, OS.TVM_SETITEM, 0, &tvItem); } else { @@ -1595,7 +1595,7 @@ TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; tvItem.stateMask = OS.TVIS_STATEIMAGEMASK; - tvItem.hItem = handle; + tvItem.hItem = cast(HTREEITEM)handle; OS.SendMessage (hwnd, OS.TVM_GETITEM, 0, &tvItem); int state = tvItem.state >> 12; if (grayed) { @@ -1617,7 +1617,7 @@ if ((parent.style & DWT.VIRTUAL) !is 0) { if (parent.currentItem is this && OS.IsWindowVisible (hwnd)) { RECT rect; - if (OS.TreeView_GetItemRect (hwnd, handle, &rect, false)) { + if (OS.TreeView_GetItemRect (hwnd, cast(HTREEITEM)handle, &rect, false)) { OS.InvalidateRect (hwnd, &rect, true); } } @@ -1703,7 +1703,7 @@ auto hwnd = parent.handle; TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_IMAGE | OS.TVIF_SELECTEDIMAGE; - tvItem.hItem = handle; + tvItem.hItem = cast(HTREEITEM)handle; tvItem.iImage = tvItem.iSelectedImage = OS.I_IMAGECALLBACK; /* * Bug in Windows. When I_IMAGECALLBACK is used with TVM_SETITEM @@ -1810,7 +1810,7 @@ auto hwnd = parent.handle; TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_TEXT; - tvItem.hItem = handle; + tvItem.hItem = cast(HTREEITEM)handle; tvItem.pszText = OS.LPSTR_TEXTCALLBACK; OS.SendMessage (hwnd, OS.TVM_SETITEM, 0, &tvItem); } else {