# HG changeset patch # User Denis Shelomovskij # Date 1310564243 -10800 # Node ID 28e25950b068145c3b97832f10a736ed94389400 # Parent dc6fc593e8d7bcec3f0188fc24a839da742a8422 Fixed Program.getImageData() on Win32 diff -r dc6fc593e8d7 -r 28e25950b068 org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/win32/WINAPI.d --- a/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/win32/WINAPI.d Tue Jul 12 11:59:58 2011 +0300 +++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/win32/WINAPI.d Wed Jul 13 16:37:23 2011 +0300 @@ -409,7 +409,7 @@ alias STDWINAPI.DdeInitializeA DdeInitializeA; alias STDWINAPI.DdeQueryStringA DdeQueryStringA; alias STDWINAPI.LogonUserA LogonUserA; - alias STDWINAPI.CreateProcessAsUserA CreateProcessAsUserA; + extern(Windows) WINBOOL CreateProcessAsUserA(HANDLE, LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, WINBOOL, DWORD, LPVOID, LPCSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION); //Workaround Tango bug alias STDWINAPI.GetBinaryTypeW GetBinaryTypeW; alias STDWINAPI.GetShortPathNameW GetShortPathNameW; alias STDWINAPI.GetEnvironmentStringsW GetEnvironmentStringsW; @@ -1726,8 +1726,12 @@ alias STDWINAPI.SHFileOperationA SHFileOperationA; alias STDWINAPI.SHFileOperationW SHFileOperationW; alias STDWINAPI.SHFreeNameMappings SHFreeNameMappings; - alias STDWINAPI.SHGetFileInfo SHGetFileInfo; - alias STDWINAPI.SHGetPathFromIDList SHGetPathFromIDList; + extern(Windows) { //Workaround Tango bugs + DWORD SHGetFileInfoA(LPCSTR, DWORD, SHFILEINFOA*, UINT, UINT); + DWORD SHGetFileInfoW(LPCWSTR, DWORD, SHFILEINFOW*, UINT, UINT); + WINBOOL SHGetPathFromIDListA(LPCITEMIDLIST, LPSTR); + WINBOOL SHGetPathFromIDListW(LPCITEMIDLIST, LPWSTR); + } alias STDWINAPI.SHGetSpecialFolderLocation SHGetSpecialFolderLocation; alias STDWINAPI.CreateThread CreateThread; alias STDWINAPI.DdeSetQualityOfService DdeSetQualityOfService; @@ -2150,7 +2154,7 @@ UINT DdeInitializeA(LPDWORD, PFNCALLBACK, DWORD, DWORD); DWORD DdeQueryStringA(DWORD, HSZ, PCHAR, DWORD, int); WINBOOL LogonUserA(LPSTR, LPSTR, LPSTR, DWORD, DWORD, PHANDLE); - WINBOOL CreateProcessAsUserA(HANDLE, LPCTSTR, LPTSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, WINBOOL, DWORD, LPVOID, LPCTSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION); + WINBOOL CreateProcessAsUserA(HANDLE, LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, WINBOOL, DWORD, LPVOID, LPCSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION); WINBOOL GetBinaryTypeW(LPCWSTR, LPDWORD); DWORD GetShortPathNameW(LPCWSTR, LPWSTR, DWORD); LPWSTR GetEnvironmentStringsW(); @@ -3467,8 +3471,10 @@ int SHFileOperationA(LPSHFILEOPSTRUCTA); int SHFileOperationW(LPSHFILEOPSTRUCTW); void SHFreeNameMappings(HANDLE); - DWORD SHGetFileInfo(LPCTSTR, DWORD, SHFILEINFO*, UINT, UINT); - WINBOOL SHGetPathFromIDList(LPCITEMIDLIST, LPTSTR); + DWORD SHGetFileInfoA(LPCSTR, DWORD, SHFILEINFOA*, UINT, UINT); + DWORD SHGetFileInfoW(LPCWSTR, DWORD, SHFILEINFOW*, UINT, UINT); + WINBOOL SHGetPathFromIDListA(LPCITEMIDLIST, LPSTR); + WINBOOL SHGetPathFromIDListW(LPCITEMIDLIST, LPWSTR); HRESULT SHGetSpecialFolderLocation(HWND, int, LPITEMIDLIST*); THANDLE CreateThread(POINTER, DWORD, TFNTHREADSTARTROUTINE, POINTER, DWORD, DWORD*); BOOL DdeSetQualityOfService(HWND, TSECURITYQUALITYOFSERVICE*, PSECURITYQUALITYOFSERVICE); @@ -3505,6 +3511,14 @@ } +version(Win32SansUnicode) { + alias SHGetFileInfoA SHGetFileInfo; + alias SHGetPathFromIDListA SHGetPathFromIDList; +} else { + alias SHGetFileInfoW SHGetFileInfo; + alias SHGetPathFromIDListW SHGetPathFromIDList; +} + //////////////////////////////////////////////////////////////////////////////////////// // org.eclipse.swt //////////////////////////////////////////////////////////////////////////////////////// @@ -5134,14 +5148,6 @@ // LPMALLOC *ppMalloc LPVOID *ppMalloc ); -BOOL SHGetPathFromIDListA( - LPCITEMIDLIST pidl, - LPSTR pszPath -); -BOOL SHGetPathFromIDListW( - LPCITEMIDLIST pidl, - LPWSTR pszPath -); version(WinCE) { int SHHandleWMSettingChange(HWND hwnd, int wParam, int lParam, void* psai);