[ros-diffs] [akhaldi] 56615: [HLINK] * Sync to Wine 1.5.4.

akhaldi at svn.reactos.org akhaldi at svn.reactos.org
Sat May 19 10:12:59 UTC 2012


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.txt?rev=56615&r1=56614&r2=56615&view=diff
==============================================================================
--- 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?rev=56615&r1=56614&r2=56615&view=diff
==============================================================================
--- 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=56615&r1=56614&r2=56615&view=diff
==============================================================================
--- 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=56615&r1=56614&r2=56615&view=diff
==============================================================================
--- 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




More information about the Ros-diffs mailing list