From f0b47e2631a35e860ca7f2e7a84a0454c6070ee5 Mon Sep 17 00:00:00 2001 From: Kevin Koltzau Date: Wed, 5 May 2004 01:32:00 +0000 Subject: [PATCH] Implemented CoInternetCombineUrl and CoInternetCompareUrl. --- dlls/urlmon/urlmon.spec | 4 ++-- dlls/urlmon/urlmon_main.c | 21 +++++++++++++++++++++ include/urlmon.h | 5 +++++ include/urlmon.idl | 7 +++++++ 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/dlls/urlmon/urlmon.spec b/dlls/urlmon/urlmon.spec index 014662d5a9d..1c4991562e5 100644 --- a/dlls/urlmon/urlmon.spec +++ b/dlls/urlmon/urlmon.spec @@ -5,8 +5,8 @@ @ stub BindAsyncMoniker @ stub CoGetClassObjectFromURL @ stub CoInstall -@ stub CoInternetCombineUrl -@ stub CoInternetCompareUrl +@ stdcall CoInternetCombineUrl(wstr wstr long wstr long ptr long) +@ stdcall CoInternetCompareUrl(wstr wstr long) @ stub CoInternetCreateSecurityManager @ stub CoInternetCreateZoneManager @ stub CoInternetGetProtocolFlags diff --git a/dlls/urlmon/urlmon_main.c b/dlls/urlmon/urlmon_main.c index 2bc638b3c1a..73c0552843e 100644 --- a/dlls/urlmon/urlmon_main.c +++ b/dlls/urlmon/urlmon_main.c @@ -24,6 +24,8 @@ #include "winbase.h" #include "winerror.h" #include "wtypes.h" +#define NO_SHLWAPI_REG +#include "shlwapi.h" #include "wine/debug.h" @@ -121,3 +123,22 @@ HRESULT WINAPI ObtainUserAgentString(DWORD dwOption, LPCSTR pcszUAOut, DWORD *cb return S_OK; } + +HRESULT WINAPI CoInternetCombineUrl(LPCWSTR pwzBaseUrl, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, + LPWSTR pwzResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved) +{ + HRESULT hres; + DWORD size = cchResult; + + TRACE("(%s,%s,0x%08lx,%p,%ld,%p,%ld)\n", debugstr_w(pwzBaseUrl), debugstr_w(pwzRelativeUrl), dwCombineFlags, + pwzResult, cchResult, pcchResult, dwReserved); + hres = UrlCombineW(pwzBaseUrl, pwzRelativeUrl, pwzResult, &size, dwCombineFlags); + if(pcchResult) *pcchResult = size; + return hres; +} + +HRESULT WINAPI CoInternetCompareUrl(LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwCompareFlags) +{ + TRACE("(%s,%s,%08lx)\n", debugstr_w(pwzUrl1), debugstr_w(pwzUrl2), dwCompareFlags); + return UrlCompareW(pwzUrl1, pwzUrl2, dwCompareFlags)==0?S_OK:S_FALSE; +} diff --git a/include/urlmon.h b/include/urlmon.h index c7b9b866c9c..368c71d4663 100644 --- a/include/urlmon.h +++ b/include/urlmon.h @@ -1392,6 +1392,11 @@ HRESULT WINAPI CoInternetGetSession(DWORD,/*IInternetSession*/void**,DWORD); HRESULT WINAPI MkParseDisplayNameEx(IBindCtx*,LPCWSTR,ULONG*,IMoniker**); HRESULT WINAPI IsAsyncMoniker(IMoniker* pmk); HRESULT WINAPI CreateAsyncBindCtx(DWORD, IBindStatusCallback*, IEnumFORMATETC*, IBindCtx**); +HRESULT WINAPI CoInternetCombineUrl(LPCWSTR,LPCWSTR,DWORD,LPWSTR,DWORD,DWORD*,DWORD); +HRESULT WINAPI CoInternetCompareUrl(LPCWSTR,LPCWSTR,DWORD); +#define OInetCombineUrl CoInternetCombineUrl +#define OInetCompareUrl CoInternetCompareUrl +#define OInetGetSession CoInternetGetSession #define MKSYS_URLMONIKER 6 #ifdef __cplusplus } diff --git a/include/urlmon.idl b/include/urlmon.idl index 34e2d0263dd..136cab0d63e 100644 --- a/include/urlmon.idl +++ b/include/urlmon.idl @@ -544,4 +544,11 @@ cpp_quote("HRESULT WINAPI CoInternetGetSession(DWORD,/*IInternetSession*/void**, cpp_quote("HRESULT WINAPI MkParseDisplayNameEx(IBindCtx*,LPCWSTR,ULONG*,IMoniker**);") cpp_quote("HRESULT WINAPI IsAsyncMoniker(IMoniker* pmk);") cpp_quote("HRESULT WINAPI CreateAsyncBindCtx(DWORD, IBindStatusCallback*, IEnumFORMATETC*, IBindCtx**);") +cpp_quote("HRESULT WINAPI CoInternetCombineUrl(LPCWSTR,LPCWSTR,DWORD,LPWSTR,DWORD,DWORD*,DWORD);") +cpp_quote("HRESULT WINAPI CoInternetCompareUrl(LPCWSTR,LPCWSTR,DWORD);"); + +cpp_quote("#define OInetCombineUrl CoInternetCombineUrl") +cpp_quote("#define OInetCompareUrl CoInternetCompareUrl") +cpp_quote("#define OInetGetSession CoInternetGetSession") + cpp_quote("#define MKSYS_URLMONIKER 6")