changeset 122:28e25950b068

Fixed Program.getImageData() on Win32
author Denis Shelomovskij <verylonglogin.reg@gmail.com>
date Wed, 13 Jul 2011 16:37:23 +0300
parents dc6fc593e8d7
children 746dd3dea737
files org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/win32/WINAPI.d
diffstat 1 files changed, 20 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- 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);