Module: wine Branch: master Commit: 855912cda5f62b791a14969a22d4a335d13dbacb URL: http://source.winehq.org/git/wine.git/?a=commit;h=855912cda5f62b791a14969a22...
Author: André Hentschel nerv@dawncrow.de Date: Mon Jun 28 21:16:51 2010 +0200
urlmon: Partially implement HlinkSimpleNavigateToString.
---
dlls/urlmon/Makefile.in | 2 +- dlls/urlmon/umon.c | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/dlls/urlmon/Makefile.in b/dlls/urlmon/Makefile.in index 91277a5..71567ec 100644 --- a/dlls/urlmon/Makefile.in +++ b/dlls/urlmon/Makefile.in @@ -4,7 +4,7 @@ SRCDIR = @srcdir@ VPATH = @srcdir@ MODULE = urlmon.dll IMPORTLIB = urlmon -IMPORTS = uuid ole32 oleaut32 rpcrt4 shlwapi wininet user32 advapi32 kernel32 ntdll +IMPORTS = uuid ole32 oleaut32 shell32 rpcrt4 shlwapi wininet user32 advapi32 kernel32 ntdll EXTRADEFS = -D_URLMON_ -DENTRY_PREFIX=URLMON_ -DPROXY_DELEGATION -DREGISTER_PROXY_DLL \ -DPROXY_CLSID_IS="{0x79EAC9F1,0xBAF9,0x11CE,{0x8C,0x82,0x00,0xAA,0x00,0x4B,0xA9,0x0B}}"
diff --git a/dlls/urlmon/umon.c b/dlls/urlmon/umon.c index 7ce22cc..9a54e11 100644 --- a/dlls/urlmon/umon.c +++ b/dlls/urlmon/umon.c @@ -24,6 +24,8 @@
#include "winreg.h" #include "shlwapi.h" +#include "hlink.h" +#include "shellapi.h"
#include "wine/debug.h"
@@ -742,7 +744,27 @@ HRESULT WINAPI HlinkSimpleNavigateToString( LPCWSTR szTarget, LPCWSTR szLocation, LPCWSTR szTargetFrameName, IUnknown *pUnk, IBindCtx *pbc, IBindStatusCallback *pbsc, DWORD grfHLNF, DWORD dwReserved) { - FIXME("%s\n", debugstr_w( szTarget ) ); + FIXME("%s %s %s %p %p %p %u %u partial stub\n", debugstr_w( szTarget ), debugstr_w( szLocation ), + debugstr_w( szTargetFrameName ), pUnk, pbc, pbsc, grfHLNF, dwReserved); + + /* undocumented: 0 means HLNF_OPENINNEWWINDOW*/ + if (!grfHLNF) grfHLNF = HLNF_OPENINNEWWINDOW; + + if (grfHLNF == HLNF_OPENINNEWWINDOW) + { + SHELLEXECUTEINFOW sei; + static const WCHAR openW[] = { 'o', 'p', 'e', 'n', 0 }; + + memset(&sei, 0, sizeof(sei)); + sei.cbSize = sizeof(sei); + sei.lpVerb = openW; + sei.nShow = SW_SHOWNORMAL; + sei.fMask = SEE_MASK_FLAG_NO_UI | SEE_MASK_NO_CONSOLE; + sei.lpFile = szTarget; + + if (ShellExecuteExW(&sei)) return S_OK; + } + return E_NOTIMPL; }