From: Pierre Schweitzer Date: Mon, 2 Jan 2017 20:16:14 +0000 (+0000) Subject: [MPR] X-Git-Tag: ReactOS-0.4.4-FOSDEM2017~37 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=d915c397519e2e90f11a72b9a2c5a6ffbab9b3ce [MPR] Import Wine commit: - 96a93ee608b2919d1a8f583002e8262ef54a6743, Enumerate connections capability before looking for functions entry points. svn path=/trunk/; revision=73500 --- diff --git a/reactos/dll/win32/mpr/mpr_ros.diff b/reactos/dll/win32/mpr/mpr_ros.diff index cea15b7205c..b7f5051ff9c 100644 --- a/reactos/dll/win32/mpr/mpr_ros.diff +++ b/reactos/dll/win32/mpr/mpr_ros.diff @@ -59,10 +59,10 @@ Index: wnet.c } WNetProvider, *PWNetProvider; typedef struct _WNetProviderTable -@@ -214,6 +207,9 @@ - provider->addConnection = MPR_GETPROC(NPAddConnection); - provider->addConnection3 = MPR_GETPROC(NPAddConnection3); - provider->cancelConnection = MPR_GETPROC(NPCancelConnection); +@@ -219,6 +212,10 @@ + provider->addConnection3 = MPR_GETPROC(NPAddConnection3); + if (connectCap & WNNC_CON_CANCELCONNECTION) + provider->cancelConnection = MPR_GETPROC(NPCancelConnection); +#ifdef __REACTOS__ + if (connectCap & WNNC_CON_GETCONNECTIONS) + provider->getConnection = MPR_GETPROC(NPGetConnection); @@ -70,7 +70,7 @@ Index: wnet.c TRACE("NPAddConnection %p\n", provider->addConnection); TRACE("NPAddConnection3 %p\n", provider->addConnection3); TRACE("NPCancelConnection %p\n", provider->cancelConnection); -@@ -251,6 +247,85 @@ +@@ -256,6 +253,85 @@ debugstr_w(provider)); } @@ -156,7 +156,7 @@ Index: wnet.c void wnetInit(HINSTANCE hInstDll) { static const WCHAR providerOrderKey[] = { 'S','y','s','t','e','m','\\', -@@ -329,6 +404,64 @@ +@@ -334,6 +410,64 @@ } RegCloseKey(hKey); } @@ -221,7 +221,7 @@ Index: wnet.c } void wnetFree(void) -@@ -1870,6 +2003,43 @@ +@@ -1875,6 +2009,43 @@ } } @@ -265,7 +265,7 @@ Index: wnet.c return ret; } -@@ -2061,6 +2231,37 @@ +@@ -2066,6 +2237,37 @@ } } } @@ -303,7 +303,7 @@ Index: wnet.c return ret; } -@@ -2188,6 +2389,7 @@ +@@ -2193,6 +2395,7 @@ /* find the network connection for a given drive; helper for WNetGetConnection */ static DWORD get_drive_connection( WCHAR letter, LPWSTR remote, LPDWORD size ) { @@ -311,7 +311,7 @@ Index: wnet.c char buffer[1024]; struct mountmgr_unix_drive *data = (struct mountmgr_unix_drive *)buffer; HANDLE mgr; -@@ -2230,6 +2432,32 @@ +@@ -2235,6 +2438,32 @@ } CloseHandle( mgr ); return ret; diff --git a/reactos/dll/win32/mpr/wnet.c b/reactos/dll/win32/mpr/wnet.c index 1cdddeb8949..77c09859b2b 100644 --- a/reactos/dll/win32/mpr/wnet.c +++ b/reactos/dll/win32/mpr/wnet.c @@ -209,7 +209,7 @@ static void _tryLoadProvider(PCWSTR provider) if (connectCap & WNNC_CON_ADDCONNECTION) provider->addConnection = MPR_GETPROC(NPAddConnection); if (connectCap & WNNC_CON_ADDCONNECTION3) - provider->addConnection3 = MPR_GETPROC(NPAddConnection3); + provider->addConnection3 = MPR_GETPROC(NPAddConnection3); if (connectCap & WNNC_CON_CANCELCONNECTION) provider->cancelConnection = MPR_GETPROC(NPCancelConnection); #ifdef __REACTOS__