shell32 patch 26
Martin Fuchs
martin-fuchs at gmx.net
Fri Mar 26 14:53:43 CST 2004
Changelog:
call IShellExecuteHook interface for ShellExecute() calls with ID lists
Index: shlexec.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shlexec.c,v
retrieving revision 1.36
diff -u -p -d -r1.36 shlexec.c
--- shlexec.c 26 Mar 2004 02:29:12 -0000 1.36
+++ shlexec.c 26 Mar 2004 20:50:52 -0000
@@ -864,8 +864,22 @@ BOOL WINAPI ShellExecuteExW32 (LPSHELLEX
}
/* process the IDList */
- if ((sei_tmp.fMask & SEE_MASK_INVOKEIDLIST) == SEE_MASK_INVOKEIDLIST) /*0x0c*/
+ if (sei_tmp.fMask & SEE_MASK_INVOKEIDLIST) /* 0x0c: includes SEE_MASK_IDLIST */
{
+ IShellExecuteHookW* pSEH;
+
+ HRESULT hr = SHBindToParent(sei_tmp.lpIDList, &IID_IShellExecuteHookW, (LPVOID*)&pSEH, NULL);
+
+ if (SUCCEEDED(hr))
+ {
+ hr = IShellExecuteHookW_Execute(pSEH, sei);
+
+ IShellExecuteHookW_Release(pSEH);
+
+ if (hr == S_OK)
+ return TRUE;
+ }
+
wszApplicationName[0] = '"';
SHGetPathFromIDListW(sei_tmp.lpIDList, wszApplicationName+1);
strcatW(wszApplicationName, wQuote);
More information about the wine-patches
mailing list