Autosyncing with Wine HEAD

svn path=/trunk/; revision=30871
This commit is contained in:
The Wine Synchronizer 2007-11-29 10:50:33 +00:00
parent a1a2b731f0
commit 66fba2f89d
10 changed files with 185 additions and 98 deletions

View file

@ -1,13 +1,12 @@
<?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="mpr" type="win32dll" baseaddress="${BASEADDRESS_MPR}" installbase="system32" installname="mpr.dll" allowwarnings="true"> <module name="mpr" type="win32dll" baseaddress="${BASEADDRESS_MPR}" installbase="system32" installname="mpr.dll" allowwarnings="true">
<importlibrary definition="mpr.spec.def" /> <importlibrary definition="mpr.spec.def" />
<include base="mpr">.</include> <include base="mpr">.</include>
<include base="ReactOS">include/reactos/wine</include> <include base="ReactOS">include/reactos/wine</include>
<define name="__REACTOS__" />
<define name="__WINESRC__" /> <define name="__WINESRC__" />
<define name="__USE_W32API" /> <define name="WINVER">0x600</define>
<define name="_WIN32_IE">0x600</define> <define name="_WIN32_WINNT">0x600</define>
<define name="_WIN32_WINNT">0x501</define>
<define name="WINVER">0x501</define>
<library>wine</library> <library>wine</library>
<library>user32</library> <library>user32</library>
<library>advapi32</library> <library>advapi32</library>

View file

@ -1,7 +1,7 @@
/* /*
* MPR dll resources * MPR Bulgarian resource
* *
* Copyright (C) 2004 Juan Lang * Copyright 2005 Milko Krachounov
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -27,20 +27,20 @@ STRINGTABLE DISCARDABLE
IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Âúâåäåòå ïàðîëà çà ìðåæàòà" CAPTION "Âúâåäåòå ìðåæîâà ïàðîëà"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
{ {
LTEXT "Âúâåäåòå ñâîèòå ïîòðåáèòåëñêî èìå è ïàðîëà:", IDC_EXPLAIN, 40, 6, 150, 15 LTEXT "Âúâåäåòå âàøåòî ïîòðåáèòåëñêî èìå è ïàðîëà:", IDC_EXPLAIN, 40, 6, 150, 15
LTEXT "Ïðåçñúðâúð", -1, 40, 26, 50, 10 LTEXT "Ïðîêñè", -1, 40, 26, 50, 10
/* LTEXT "Ñòðàíà", -1, 40, 46, 50, 10 */ /* LTEXT "Realm", -1, 40, 46, 50, 10 */
LTEXT "Ïîòðåáèòåë", -1, 40, 66, 50, 10 LTEXT "Ïîòðåáèòåë", -1, 40, 66, 50, 10
LTEXT "Ïàðîëà", -1, 40, 86, 50, 10 LTEXT "Ïàðîëà", -1, 40, 86, 50, 10
LTEXT "" IDC_PROXY, 80, 26, 150, 14, 0 LTEXT "" IDC_PROXY, 80, 26, 150, 14, 0
LTEXT "" IDC_REALM, 80, 46, 150, 14, 0 LTEXT "" IDC_REALM, 80, 46, 150, 14, 0
EDITTEXT IDC_USERNAME, 80, 66, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP EDITTEXT IDC_USERNAME, 80, 66, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
EDITTEXT IDC_PASSWORD, 80, 86, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | ES_PASSWORD EDITTEXT IDC_PASSWORD, 80, 86, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | ES_PASSWORD
CHECKBOX "&Ñúõðàíÿâàíå íà ïàðîëàòà (íåáåçîïàñíî)", IDC_SAVEPASSWORD, CHECKBOX "&Save this password (Insecure)", IDC_SAVEPASSWORD,
80, 106, 150, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP 80, 106, 150, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Äîáðå", IDOK, 98, 126, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON PUSHBUTTON "OK", IDOK, 98, 126, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "Îòêàç", IDCANCEL, 158, 126, 56, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "Îòìåíè", IDCANCEL, 158, 126, 56, 14, WS_GROUP | WS_TABSTOP
} }

View file

@ -2,7 +2,7 @@
* MPR dll resources * MPR dll resources
* *
* Copyright (C) 2004 Juan Lang * Copyright (C) 2004 Juan Lang
* Copyright 2005 YunSong Hwang * Copyright 2005,2007 YunSong Hwang
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -40,7 +40,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "" IDC_REALM, 80, 46, 150, 14, 0 LTEXT "" IDC_REALM, 80, 46, 150, 14, 0
EDITTEXT IDC_USERNAME, 80, 66, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP EDITTEXT IDC_USERNAME, 80, 66, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
EDITTEXT IDC_PASSWORD, 80, 86, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | ES_PASSWORD EDITTEXT IDC_PASSWORD, 80, 86, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | ES_PASSWORD
CHECKBOX "암호 저장(&S) (Insecure)", IDC_SAVEPASSWORD, CHECKBOX "암호 저장(&S) (보안에 주의)", IDC_SAVEPASSWORD,
80, 106, 150, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP 80, 106, 150, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "È®ÀÎ", IDOK, 98, 126, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON PUSHBUTTON "È®ÀÎ", IDOK, 98, 126, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "Ãë¼Ò", IDCANCEL, 158, 126, 56, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "Ãë¼Ò", IDCANCEL, 158, 126, 56, 14, WS_GROUP | WS_TABSTOP

View file

@ -18,7 +18,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE
{ {

View file

@ -28,7 +28,7 @@ STRINGTABLE DISCARDABLE
IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "WprowadŸ has³o do sieci" CAPTION "Wpisz has這 sieci"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
{ {
LTEXT "Proszê wprowadziæ nazwê u¿ytkownika i has³o:", IDC_EXPLAIN, 40, 6, 150, 15 LTEXT "Proszê wprowadziæ nazwê u¿ytkownika i has³o:", IDC_EXPLAIN, 40, 6, 150, 15
@ -40,7 +40,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "" IDC_REALM, 80, 46, 150, 14, 0 LTEXT "" IDC_REALM, 80, 46, 150, 14, 0
EDITTEXT IDC_USERNAME, 80, 66, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP EDITTEXT IDC_USERNAME, 80, 66, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
EDITTEXT IDC_PASSWORD, 80, 86, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | ES_PASSWORD EDITTEXT IDC_PASSWORD, 80, 86, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | ES_PASSWORD
CHECKBOX "&Zapamiêtaj to has³o (nie bezpieczne)", IDC_SAVEPASSWORD, CHECKBOX "&Zapisz to has這 (niebezpieczne)", IDC_SAVEPASSWORD,
80, 106, 150, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP 80, 106, 150, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "OK", IDOK, 98, 126, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON PUSHBUTTON "OK", IDOK, 98, 126, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "Anuluj", IDCANCEL, 158, 126, 56, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "Anuluj", IDCANCEL, 158, 126, 56, 14, WS_GROUP | WS_TABSTOP

View file

@ -1,7 +1,7 @@
/* /*
* MPR dll Swedish resources * MPR dll resources
* *
* Copyright (C) 2005 Andreas Bjerkeholt * Copyright (C) 2007 Daniel Nylander
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -15,10 +15,10 @@
* *
* You should have received a copy of the GNU Lesser General Public * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software * License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE
{ {
@ -39,7 +39,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "" IDC_REALM, 80, 46, 150, 14, 0 LTEXT "" IDC_REALM, 80, 46, 150, 14, 0
EDITTEXT IDC_USERNAME, 80, 66, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP EDITTEXT IDC_USERNAME, 80, 66, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
EDITTEXT IDC_PASSWORD, 80, 86, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | ES_PASSWORD EDITTEXT IDC_PASSWORD, 80, 86, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | ES_PASSWORD
CHECKBOX "&Spara detta lösenord (Osäkert)", IDC_SAVEPASSWORD, CHECKBOX "&Spara detta lösenord (osäkert)", IDC_SAVEPASSWORD,
80, 106, 150, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP 80, 106, 150, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "OK", IDOK, 98, 126, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON PUSHBUTTON "OK", IDOK, 98, 126, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "Avbryt", IDCANCEL, 158, 126, 56, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "Avbryt", IDCANCEL, 158, 126, 56, 14, WS_GROUP | WS_TABSTOP

View file

@ -2,12 +2,12 @@ Index: mpr.rc
=================================================================== ===================================================================
--- mpr.rc (revision 23782) --- mpr.rc (revision 23782)
+++ mpr.rc (working copy) +++ mpr.rc (working copy)
@@ -39,4 +39,7 @@ @@ -39,5 +39,7 @@
#include "mpr_No.rc" #include "mpr_No.rc"
#include "mpr_Pl.rc" #include "mpr_Pl.rc"
#include "mpr_Pt.rc" #include "mpr_Pt.rc"
+#include "mpr_Ru.rc" +#include "mpr_Ru.rc"
+#include "mpr_Sv.rc" #include "mpr_Sv.rc"
#include "mpr_Tr.rc" #include "mpr_Tr.rc"
+#include "mpr_Uk.rc" +#include "mpr_Uk.rc"
Index: mpr_Ru.rc Index: mpr_Ru.rc
@ -61,57 +61,6 @@ Index: mpr_Ru.rc
+ PUSHBUTTON "OK", IDOK, 98, 126, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON + PUSHBUTTON "OK", IDOK, 98, 126, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
+ PUSHBUTTON "Îòìåíà", IDCANCEL, 158, 126, 56, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "Îòìåíà", IDCANCEL, 158, 126, 56, 14, WS_GROUP | WS_TABSTOP
+} +}
Index: mpr_Sv.rc
===================================================================
--- mpr_Sv.rc (revision 23782)
+++ mpr_Sv.rc (working copy)
@@ -0,0 +1,46 @@
+/*
+ * MPR dll Swedish resources
+ *
+ * Copyright (C) 2005 Andreas Bjerkeholt
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_ENTIRENETWORK "Hela nätverket"
+}
+
+IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Ange nätverkslösenord"
+FONT 8, "MS Shell Dlg"
+{
+ LTEXT "Ange ditt användarnamn och lösenord:", IDC_EXPLAIN, 40, 6, 150, 15
+ LTEXT "Proxy", -1, 40, 26, 50, 10
+/* LTEXT "Realm", -1, 40, 46, 50, 10 */
+ LTEXT "Användare", -1, 40, 66, 50, 10
+ LTEXT "Lösenord", -1, 40, 86, 50, 10
+ LTEXT "" IDC_PROXY, 80, 26, 150, 14, 0
+ LTEXT "" IDC_REALM, 80, 46, 150, 14, 0
+ EDITTEXT IDC_USERNAME, 80, 66, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
+ EDITTEXT IDC_PASSWORD, 80, 86, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | ES_PASSWORD
+ CHECKBOX "&Spara detta lösenord (Osäkert)", IDC_SAVEPASSWORD,
+ 80, 106, 150, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 98, 126, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
+ PUSHBUTTON "Avbryt", IDCANCEL, 158, 126, 56, 14, WS_GROUP | WS_TABSTOP
+}
Index: mpr_Uk.rc Index: mpr_Uk.rc
=================================================================== ===================================================================
--- mpr_Uk.rc (revision 23782) --- mpr_Uk.rc (revision 23782)

View file

@ -56,8 +56,9 @@ static LPSTR MPR_GetValueName( LPCSTR pbResource, WORD cbResource, BYTE nType )
DWORD i; DWORD i;
name = HeapAlloc( GetProcessHeap(), 0, 6+cbResource*2 ); name = HeapAlloc( GetProcessHeap(), 0, 6+cbResource*2 );
if( name ) if( !name ) return NULL;
sprintf( name, "X-%02X-", nType );
sprintf( name, "X-%02X-", nType );
for(i=0; i<cbResource; i++) for(i=0; i<cbResource; i++)
{ {
name[5+i*2]=hex((pbResource[i]&0xf0)>>4); name[5+i*2]=hex((pbResource[i]&0xf0)>>4);

View file

@ -52,6 +52,7 @@ typedef struct _WNetProvider
PF_NPOpenEnum openEnum; PF_NPOpenEnum openEnum;
PF_NPEnumResource enumResource; PF_NPEnumResource enumResource;
PF_NPCloseEnum closeEnum; PF_NPCloseEnum closeEnum;
PF_NPGetResourceInformation getResourceInformation;
} WNetProvider, *PWNetProvider; } WNetProvider, *PWNetProvider;
typedef struct _WNetProviderTable typedef struct _WNetProviderTable
@ -182,6 +183,10 @@ static void _tryLoadProvider(PCWSTR provider)
provider->closeEnum = (PF_NPCloseEnum) provider->closeEnum = (PF_NPCloseEnum)
GetProcAddress(hLib, "NPCloseEnum"); GetProcAddress(hLib, "NPCloseEnum");
TRACE("closeEnum is %p\n", provider->closeEnum); TRACE("closeEnum is %p\n", provider->closeEnum);
provider->getResourceInformation = (PF_NPGetResourceInformation)
GetProcAddress(hLib, "NPGetResourceInformation");
TRACE("getResourceInformation is %p\n",
provider->getResourceInformation);
if (!provider->openEnum || !provider->enumResource if (!provider->openEnum || !provider->enumResource
|| !provider->closeEnum) || !provider->closeEnum)
{ {
@ -731,7 +736,7 @@ DWORD WINAPI WNetOpenEnumW( DWORD dwScope, DWORD dwType, DWORD dwUsage,
if (index != BAD_PROVIDER_INDEX) if (index != BAD_PROVIDER_INDEX)
{ {
if (providerTable->table[index].openEnum && if (providerTable->table[index].openEnum &&
providerTable->table[index].dwEnumScopes & dwScope) providerTable->table[index].dwEnumScopes & WNNC_ENUM_GLOBAL)
{ {
HANDLE handle; HANDLE handle;
@ -964,6 +969,7 @@ static DWORD _globalEnumeratorAdvance(PWNetEnumerator enumerator)
if (enumerator->providerDone) if (enumerator->providerDone)
{ {
DWORD dwEnum = 0;
enumerator->providerDone = FALSE; enumerator->providerDone = FALSE;
if (enumerator->handle) if (enumerator->handle)
{ {
@ -972,10 +978,15 @@ static DWORD _globalEnumeratorAdvance(PWNetEnumerator enumerator)
enumerator->handle = NULL; enumerator->handle = NULL;
enumerator->providerIndex++; enumerator->providerIndex++;
} }
if (enumerator->dwScope == RESOURCE_CONNECTED)
dwEnum = WNNC_ENUM_LOCAL;
else if (enumerator->dwScope == RESOURCE_GLOBALNET)
dwEnum = WNNC_ENUM_GLOBAL;
else if (enumerator->dwScope == RESOURCE_CONTEXT)
dwEnum = WNNC_ENUM_CONTEXT;
for (; enumerator->providerIndex < providerTable->numProviders && for (; enumerator->providerIndex < providerTable->numProviders &&
!(enumerator->dwScope & providerTable->table !(providerTable->table[enumerator->providerIndex].dwEnumScopes
[enumerator->providerIndex].dwEnumScopes); & dwEnum); enumerator->providerIndex++)
enumerator->providerIndex++)
; ;
} }
return enumerator->providerIndex < providerTable->numProviders ? return enumerator->providerIndex < providerTable->numProviders ?
@ -1275,30 +1286,157 @@ DWORD WINAPI WNetCloseEnum( HANDLE hEnum )
/********************************************************************* /*********************************************************************
* WNetGetResourceInformationA [MPR.@] * WNetGetResourceInformationA [MPR.@]
*
* See WNetGetResourceInformationW
*/ */
DWORD WINAPI WNetGetResourceInformationA( LPNETRESOURCEA lpNetResource, DWORD WINAPI WNetGetResourceInformationA( LPNETRESOURCEA lpNetResource,
LPVOID lpBuffer, LPDWORD cbBuffer, LPVOID lpBuffer, LPDWORD cbBuffer,
LPSTR *lplpSystem ) LPSTR *lplpSystem )
{ {
FIXME( "(%p, %p, %p, %p): stub\n", DWORD ret;
TRACE( "(%p, %p, %p, %p)\n",
lpNetResource, lpBuffer, cbBuffer, lplpSystem ); lpNetResource, lpBuffer, cbBuffer, lplpSystem );
SetLastError(WN_NO_NETWORK); if (!providerTable || providerTable->numProviders == 0)
return WN_NO_NETWORK; ret = WN_NO_NETWORK;
else if (lpNetResource)
{
LPNETRESOURCEW lpNetResourceW = NULL;
DWORD size = 1024, count = 1;
DWORD len;
lpNetResourceW = HeapAlloc(GetProcessHeap(), 0, size);
ret = _thunkNetResourceArrayAToW(lpNetResource, &count, lpNetResourceW, &size);
if (ret == WN_MORE_DATA)
{
lpNetResourceW = HeapAlloc(GetProcessHeap(), 0, size);
if (lpNetResourceW)
ret = _thunkNetResourceArrayAToW(lpNetResource,
&count, lpNetResourceW, &size);
else
ret = WN_OUT_OF_MEMORY;
}
if (ret == WN_SUCCESS)
{
LPWSTR lpSystemW = NULL;
LPVOID lpBufferW;
size = 1024;
lpBufferW = HeapAlloc(GetProcessHeap(), 0, size);
if (lpBufferW)
{
ret = WNetGetResourceInformationW(lpNetResourceW,
lpBufferW, &size, &lpSystemW);
if (ret == WN_MORE_DATA)
{
HeapFree(GetProcessHeap(), 0, lpBufferW);
lpBufferW = HeapAlloc(GetProcessHeap(), 0, size);
if (lpBufferW)
ret = WNetGetResourceInformationW(lpNetResourceW,
lpBufferW, &size, &lpSystemW);
else
ret = WN_OUT_OF_MEMORY;
}
if (ret == WN_SUCCESS)
{
ret = _thunkNetResourceArrayWToA(lpBufferW,
&count, lpBuffer, cbBuffer);
lpNetResourceW = lpBufferW;
size = sizeof(NETRESOURCEA);
size += WideCharToMultiByte(CP_ACP, 0, lpNetResourceW->lpRemoteName,
-1, NULL, 0, NULL, NULL);
size += WideCharToMultiByte(CP_ACP, 0, lpNetResourceW->lpProvider,
-1, NULL, 0, NULL, NULL);
len = WideCharToMultiByte(CP_ACP, 0, lpSystemW,
-1, NULL, 0, NULL, NULL);
if ((len) && ( size + len < *cbBuffer))
{
*lplpSystem = (char*)lpBuffer + *cbBuffer - len;
WideCharToMultiByte(CP_ACP, 0, lpSystemW, -1,
*lplpSystem, len, NULL, NULL);
ret = WN_SUCCESS;
}
else
ret = WN_MORE_DATA;
}
else
ret = WN_OUT_OF_MEMORY;
HeapFree(GetProcessHeap(), 0, lpBufferW);
}
else
ret = WN_OUT_OF_MEMORY;
HeapFree(GetProcessHeap(), 0, lpSystemW);
}
HeapFree(GetProcessHeap(), 0, lpNetResourceW);
}
else
ret = WN_NO_NETWORK;
if (ret)
SetLastError(ret);
TRACE("Returning %d\n", ret);
return ret;
} }
/********************************************************************* /*********************************************************************
* WNetGetResourceInformationW [MPR.@] * WNetGetResourceInformationW [MPR.@]
*
* WNetGetResourceInformationW function identifies the network provider
* that owns the resource and gets information about the type of the resource.
*
* PARAMS:
* lpNetResource [ I] the pointer to NETRESOURCEW structure, that
* defines a network resource.
* lpBuffer [ O] the pointer to buffer, containing result. It
* contains NETRESOURCEW structure and strings to
* which the members of the NETRESOURCEW structure
* point.
* cbBuffer [I/O] the pointer to DWORD number - size of buffer
* in bytes.
* lplpSystem [ O] the pointer to string in the output buffer,
* containing the part of the resource name without
* names of the server and share.
*
* RETURNS:
* NO_ERROR if the function succeeds. System error code if the function fails.
*/ */
DWORD WINAPI WNetGetResourceInformationW( LPNETRESOURCEW lpNetResource, DWORD WINAPI WNetGetResourceInformationW( LPNETRESOURCEW lpNetResource,
LPVOID lpBuffer, LPDWORD cbBuffer, LPVOID lpBuffer, LPDWORD cbBuffer,
LPWSTR *lplpSystem ) LPWSTR *lplpSystem )
{ {
FIXME( "(%p, %p, %p, %p): stub\n", DWORD ret = WN_NO_NETWORK;
lpNetResource, lpBuffer, cbBuffer, lplpSystem ); DWORD index;
SetLastError(WN_NO_NETWORK); TRACE( "(%p, %p, %p, %p)\n",
return WN_NO_NETWORK; lpNetResource, lpBuffer, cbBuffer, lplpSystem);
if (!(lpBuffer))
ret = WN_OUT_OF_MEMORY;
else
{
/* FIXME: For function value of a variable is indifferent, it does
* search of all providers in a network.
*/
for (index = 0; index < providerTable->numProviders; index++)
{
if(providerTable->table[index].getCaps(WNNC_DIALOG) &
WNNC_DLG_GETRESOURCEINFORMATION)
{
if (providerTable->table[index].getResourceInformation)
ret = providerTable->table[index].getResourceInformation(
lpNetResource, lpBuffer, cbBuffer, lplpSystem);
else
ret = WN_NO_NETWORK;
if (ret == WN_SUCCESS)
break;
}
}
}
if (ret)
SetLastError(ret);
return ret;
} }
/********************************************************************* /*********************************************************************