Author: akhaldi
Date: Sat May 19 10:12:58 2012
New Revision: 56615
URL:
http://svn.reactos.org/svn/reactos?rev=56615&view=rev
Log:
[HLINK]
* Sync to Wine 1.5.4.
Modified:
trunk/reactos/dll/win32/hlink/CMakeLists.txt
trunk/reactos/dll/win32/hlink/extserv.c
trunk/reactos/dll/win32/hlink/link.c
trunk/reactos/media/doc/README.WINE
Modified: trunk/reactos/dll/win32/hlink/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/hlink/CMakeLists…
==============================================================================
--- trunk/reactos/dll/win32/hlink/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/hlink/CMakeLists.txt [iso-8859-1] Sat May 19 10:12:58 2012
@@ -2,7 +2,6 @@
add_definitions(-D__WINESRC__)
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
-set_rc_compiler()
spec2def(hlink.dll hlink.spec ADD_IMPORTLIB)
list(APPEND SOURCE
@@ -18,15 +17,6 @@
set_module_type(hlink win32dll)
target_link_libraries(hlink uuid wine)
add_delay_importlibs(hlink urlmon)
-
-add_importlibs(hlink
- shell32
- ole32
- advapi32
- msvcrt
- kernel32
- ntdll)
-
+add_importlibs(hlink shell32 ole32 advapi32 msvcrt kernel32 ntdll)
add_pch(hlink hlink_private.h)
-
add_cd_file(TARGET hlink DESTINATION reactos/system32 FOR all)
Modified: trunk/reactos/dll/win32/hlink/extserv.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/hlink/extserv.c?…
==============================================================================
--- trunk/reactos/dll/win32/hlink/extserv.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/hlink/extserv.c [iso-8859-1] Sat May 19 10:12:58 2012
@@ -24,13 +24,13 @@
WINE_DEFAULT_DEBUG_CHANNEL(hlink);
typedef struct {
- IUnknown IUnknown_iface;
+ IUnknown IUnknown_inner;
IAuthenticate IAuthenticate_iface;
IHttpNegotiate IHttpNegotiate_iface;
IExtensionServices IExtensionServices_iface;
+ IUnknown *outer_unk;
LONG ref;
- IUnknown *outer;
HWND hwnd;
LPWSTR username;
@@ -40,7 +40,7 @@
static inline ExtensionService *impl_from_IUnknown(IUnknown *iface)
{
- return CONTAINING_RECORD(iface, ExtensionService, IUnknown_iface);
+ return CONTAINING_RECORD(iface, ExtensionService, IUnknown_inner);
}
static HRESULT WINAPI ExtServUnk_QueryInterface(IUnknown *iface, REFIID riid, void **ppv)
@@ -51,7 +51,7 @@
if(IsEqualGUID(&IID_IUnknown, riid)) {
TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
- *ppv = &This->IUnknown_iface;
+ *ppv = &This->IUnknown_inner;
}else if(IsEqualGUID(&IID_IAuthenticate, riid)) {
TRACE("(%p)->(IID_IAuthenticate %p)\n", This, ppv);
*ppv = &This->IAuthenticate_iface;
@@ -113,19 +113,19 @@
static HRESULT WINAPI Authenticate_QueryInterface(IAuthenticate *iface, REFIID riid, void
**ppv)
{
ExtensionService *This = impl_from_IAuthenticate(iface);
- return IUnknown_QueryInterface(This->outer, riid, ppv);
+ return IUnknown_QueryInterface(This->outer_unk, riid, ppv);
}
static ULONG WINAPI Authenticate_AddRef(IAuthenticate *iface)
{
ExtensionService *This = impl_from_IAuthenticate(iface);
- return IUnknown_AddRef(This->outer);
+ return IUnknown_AddRef(This->outer_unk);
}
static ULONG WINAPI Authenticate_Release(IAuthenticate *iface)
{
ExtensionService *This = impl_from_IAuthenticate(iface);
- return IUnknown_Release(This->outer);
+ return IUnknown_Release(This->outer_unk);
}
static HRESULT WINAPI Authenticate_Authenticate(IAuthenticate *iface,
@@ -160,19 +160,19 @@
static HRESULT WINAPI HttpNegotiate_QueryInterface(IHttpNegotiate *iface, REFIID riid,
void **ppv)
{
ExtensionService *This = impl_from_IHttpNegotiate(iface);
- return IUnknown_QueryInterface(This->outer, riid, ppv);
+ return IUnknown_QueryInterface(This->outer_unk, riid, ppv);
}
static ULONG WINAPI HttpNegotiate_AddRef(IHttpNegotiate *iface)
{
ExtensionService *This = impl_from_IHttpNegotiate(iface);
- return IUnknown_AddRef(This->outer);
+ return IUnknown_AddRef(This->outer_unk);
}
static ULONG WINAPI HttpNegotiate_Release(IHttpNegotiate *iface)
{
ExtensionService *This = impl_from_IHttpNegotiate(iface);
- return IUnknown_Release(This->outer);
+ return IUnknown_Release(This->outer_unk);
}
static HRESULT WINAPI HttpNegotiate_BeginningTransaction(IHttpNegotiate *iface,
@@ -218,19 +218,19 @@
static HRESULT WINAPI ExtServ_QueryInterface(IExtensionServices *iface, REFIID riid, void
**ppv)
{
ExtensionService *This = impl_from_IExtensionServices(iface);
- return IUnknown_QueryInterface(This->outer, riid, ppv);
+ return IUnknown_QueryInterface(This->outer_unk, riid, ppv);
}
static ULONG WINAPI ExtServ_AddRef(IExtensionServices *iface)
{
ExtensionService *This = impl_from_IExtensionServices(iface);
- return IUnknown_AddRef(This->outer);
+ return IUnknown_AddRef(This->outer_unk);
}
static ULONG WINAPI ExtServ_Release(IExtensionServices *iface)
{
ExtensionService *This = impl_from_IExtensionServices(iface);
- return IUnknown_Release(This->outer);
+ return IUnknown_Release(This->outer_unk);
}
static HRESULT ExtServ_ImplSetAdditionalHeaders(ExtensionService* This, LPCWSTR
pwzAdditionalHeaders)
@@ -311,7 +311,7 @@
ret = heap_alloc(sizeof(*ret));
- ret->IUnknown_iface.lpVtbl = &ExtServUnkVtbl;
+ ret->IUnknown_inner.lpVtbl = &ExtServUnkVtbl;
ret->IAuthenticate_iface.lpVtbl = &AuthenticateVtbl;
ret->IHttpNegotiate_iface.lpVtbl = &HttpNegotiateVtbl;
ret->IExtensionServices_iface.lpVtbl = &ExtServVtbl;
@@ -325,14 +325,14 @@
ExtServ_ImplSetAdditionalHeaders(ret, pwzAdditionalHeaders);
if(!punkOuter) {
- ret->outer = &ret->IUnknown_iface;
- hres = IUnknown_QueryInterface(&ret->IUnknown_iface, riid, ppv);
- IUnknown_Release(&ret->IUnknown_iface);
+ ret->outer_unk = &ret->IUnknown_inner;
+ hres = IUnknown_QueryInterface(&ret->IUnknown_inner, riid, ppv);
+ IUnknown_Release(&ret->IUnknown_inner);
}else if(IsEqualGUID(&IID_IUnknown, riid)) {
- ret->outer = punkOuter;
- *ppv = &ret->IUnknown_iface;
+ ret->outer_unk = punkOuter;
+ *ppv = &ret->IUnknown_inner;
}else {
- IUnknown_Release(&ret->IUnknown_iface);
+ IUnknown_Release(&ret->IUnknown_inner);
hres = E_INVALIDARG;
}
Modified: trunk/reactos/dll/win32/hlink/link.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/hlink/link.c?rev…
==============================================================================
--- trunk/reactos/dll/win32/hlink/link.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/hlink/link.c [iso-8859-1] Sat May 19 10:12:58 2012
@@ -78,6 +78,19 @@
if (ref_type == HLINKGETREF_DEFAULT)
ref_type = HLINKGETREF_RELATIVE;
+ if (This->Moniker)
+ {
+ DWORD mktype = MKSYS_NONE;
+
+ hres = IMoniker_IsSystemMoniker(This->Moniker, &mktype);
+ if (hres == S_OK && mktype != MKSYS_NONE)
+ {
+ *moniker = This->Moniker;
+ IMoniker_AddRef(*moniker);
+ return S_OK;
+ }
+ }
+
if (ref_type == HLINKGETREF_ABSOLUTE && This->Site)
{
IMoniker *hls_moniker;
@@ -217,9 +230,12 @@
This->Moniker = pmkTarget;
if (This->Moniker)
{
+ IBindCtx *pbc;
LPOLESTR display_name;
IMoniker_AddRef(This->Moniker);
- IMoniker_GetDisplayName(This->Moniker, NULL, NULL, &display_name);
+ CreateBindCtx( 0, &pbc);
+ IMoniker_GetDisplayName(This->Moniker, pbc, NULL, &display_name);
+ IBindCtx_Release(pbc);
This->absolute = display_name && strchrW(display_name,
':');
CoTaskMemFree(display_name);
}
Modified: trunk/reactos/media/doc/README.WINE
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=…
==============================================================================
--- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original)
+++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Sat May 19 10:12:58 2012
@@ -63,7 +63,7 @@
reactos/dll/win32/fusion # Synced to Wine-1.5.4
reactos/dll/win32/gdiplus # Synced to Wine-1.5.4
reactos/dll/win32/hhctrl.ocx # Autosync
-reactos/dll/win32/hlink # Synced to Wine-1.3.37
+reactos/dll/win32/hlink # Synced to Wine-1.5.4
reactos/dll/win32/hnetcfg # Synced to Wine-1.3.37
reactos/dll/win32/httpapi # Synced to Wine-1.3.37
reactos/dll/win32/iccvid # Autosync