Import mpr from Wine

svn path=/trunk/; revision=7970
This commit is contained in:
Gé van Geldorp 2004-02-01 19:48:44 +00:00
parent 4d326b81dc
commit 098630e3d6
16 changed files with 1072 additions and 150 deletions

View file

@ -0,0 +1,151 @@
/*
* MPR - Network provider services
*
* Copyright (C) 1999 Ulrich Weigand
*
* 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
*/
#ifndef _NETSPI_H_
#define _NETSPI_H_
#include <windef.h>
#include <winnetwk.h>
/*
* Note: The Unicode variants of all these routines/structures
* apparently don't exist, at least not in Win95 ...
*/
#define HPROVIDER LPVOID
typedef HPROVIDER *PHPROVIDER;
typedef struct
{
DWORD cbStructure;
HWND hwndOwner;
LPCSTR lpResource;
LPSTR lpUsername;
DWORD cbUsername;
LPSTR lpPassword;
DWORD cbPassword;
LPSTR lpOrgUnit;
DWORD cbOrgUnit;
LPCSTR lpOUTitle;
LPCSTR lpExplainText;
LPCSTR lpDefaultUserName;
DWORD dwFlags;
} AUTHDLGSTRUCTA, *LPAUTHDLGSTRUCTA;
DECL_WINELIB_TYPE_AW(AUTHDLGSTRUCT)
DECL_WINELIB_TYPE_AW(LPAUTHDLGSTRUCT)
#define AUTHDLG_ENABLECACHE 0x00000001
#define AUTHDLG_CHECKCACHE 0x00000002
#define AUTHDLG_CACHEINVALID 0x00000004
#define AUTHDLG_USE_DEFAULT_NAME 0x00000008
#define AUTHDLG_CHECKDEFAULT_NAME 0x00000010
#define AUTHDLG_LOGON 0x00000020
#define AUTHDLG_ENABLECACHE 0x00000001
#define AUTHDLG_CHECKCACHE 0x00000002
#define AUTHDLG_CACHEINVALID 0x00000004
#define AUTHDLG_USE_DEFAULT_NAME 0x00000008
#define AUTHDLG_CHECKDEFAULT_NAME 0x00000010
#define AUTHDLG_LOGON 0x00000020
DWORD WINAPI NPSAuthenticationDialogA(LPAUTHDLGSTRUCTA);
#define NPSAuthenticationDialog WINELIB_NAME_AW(NPSAuthenticationDialog)
DWORD WINAPI NPSGetProviderHandleA(PHPROVIDER);
#define NPSGetProviderHandle WINELIB_NAME_AW(NPSGetProviderHandle)
DWORD WINAPI NPSGetProviderNameA(HPROVIDER,LPCSTR *);
#define NPSGetProviderName WINELIB_NAME_AW(NPSGetProviderName)
DWORD WINAPI NPSGetSectionNameA(HPROVIDER,LPCSTR *lpszSectionName);
#define NPSGetSectionName WINELIB_NAME_AW(NPSGetSectionName)
DWORD WINAPI NPSSetExtendedErrorA(DWORD,LPSTR);
#define NPSSetExtendedError WINELIB_NAME_AW(NPSSetExtendedError)
VOID WINAPI NPSSetCustomTextA(LPSTR);
#define NPSSetCustomText WINELIB_NAME_AW(NPSSetCustomText)
DWORD WINAPI NPSCopyStringA(LPCSTR,LPVOID,LPDWORD);
#define NPSCopyString WINELIB_NAME_AW(NPSCopyString)
DWORD WINAPI NPSDeviceGetNumberA(LPSTR,LPDWORD,LPDWORD);
#define NPSDeviceGetNumber WINELIB_NAME_AW(NPSDeviceGetNumber)
DWORD WINAPI NPSDeviceGetStringA(DWORD,DWORD,LPSTR,LPDWORD);
#define NPSDeviceGetString WINELIB_NAME_AW(NPSDeviceGetString)
enum NOTIFYTYPE { NotifyAddConnection,
NotifyCancelConnection,
NotifyGetConnectionPerformance };
#define NOTIFY_PRE 0x00
#define NOTIFY_POST 0x01
typedef struct
{
DWORD cbStructure;
DWORD dwNotifyStatus;
DWORD dwOperationStatus;
LPVOID lpNPContext;
} NOTIFYINFO, *LPNOTIFYINFO;
typedef struct
{
DWORD cbStructure;
HWND hwndOwner;
NETRESOURCEA NetResource;
DWORD dwAddFlags;
LPSTR lpAccessName;
LPDWORD lpBufferSize;
DWORD dwResult;
DWORD dwAddContext;
} NOTIFYADDA, *LPNOTIFYADDA;
#define CONNECT_CTXT_RESTORE 0x00000001
#define CONNECT_CTXT_GLOBAL 0x00000002
#define CONNECT_CTXT_PROVIDER 0x00000004
#define CONNECT_CTXT_SINGLE 0x00000008
typedef struct
{
DWORD cbStructure;
LPSTR lpName;
LPSTR lpProvider;
DWORD dwFlags;
BOOL fForce;
} NOTIFYCANCELA, *LPNOTIFYCANCELA;
typedef struct
{
DWORD cbStructure;
LPSTR lpRemoteName;
LPSTR lpProviderName;
LPNETCONNECTINFOSTRUCT lpNetConnectInfo;
} NOTIFYPERFORMANCEA, *LPNOTIFYPERFORMANCEA;
typedef DWORD (CALLBACK *NOTIFYCALLBACK)(LPNOTIFYINFO,LPVOID);
DWORD WINAPI NPSNotifyRegisterA(enum NOTIFYTYPE,NOTIFYCALLBACK);
#define NPSNotifyRegister WINELIB_NAME_AW(NPSNotifyRegister)
LPVOID WINAPI NPSNotifyGetContextA(NOTIFYCALLBACK);
#define NPSNotifyGetContext WINELIB_NAME_AW(NPSNotifyGetContext)
#endif /* _NETSPI_H_ */

View file

@ -0,0 +1,46 @@
/*
* Basic types definitions
*
* Copyright 1996 Alexandre Julliard
*
* 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
*/
#include_next "windef.h"
#ifndef __WINE_WINDEF_H
#define __WINE_WINDEF_H
/* Macros to map Winelib names to the correct implementation name */
#if defined(__WINESRC__) || defined(__REACTOS__)
# define WINELIB_NAME_AW(func) \
func##_must_be_suffixed_with_W_or_A_in_this_context \
func##_must_be_suffixed_with_W_or_A_in_this_context
#else /* __WINESRC__ || __REACTOS__*/
# ifdef UNICODE
# define WINELIB_NAME_AW(func) func##W
# else
# define WINELIB_NAME_AW(func) func##A
# endif /* UNICODE */
#endif /* __WINESRC__ */
#if defined(__WINESRC__) || defined(__REACTOS__)
# define DECL_WINELIB_TYPE_AW(type) /* nothing */
#else /* __WINESRC__ */
# define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type;
#endif /* __WINESRC__ */
#endif /* __WINE_WINDEF_H */

View file

@ -0,0 +1,399 @@
/*
* Copyright (C) the Wine project
*
* 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
*/
#ifndef _WINNETWK_H_
#define _WINNETWK_H_
/*
* Network types
*/
#define WNNC_NET_MSNET 0x00010000
#define WNNC_NET_LANMAN 0x00020000
#define WNNC_NET_NETWARE 0x00030000
#define WNNC_NET_VINES 0x00040000
#define WNNC_NET_10NET 0x00050000
#define WNNC_NET_LOCUS 0x00060000
#define WNNC_NET_SUN_PC_NFS 0x00070000
#define WNNC_NET_LANSTEP 0x00080000
#define WNNC_NET_9TILES 0x00090000
#define WNNC_NET_LANTASTIC 0x000A0000
#define WNNC_NET_AS400 0x000B0000
#define WNNC_NET_FTP_NFS 0x000C0000
#define WNNC_NET_PATHWORKS 0x000D0000
#define WNNC_NET_LIFENET 0x000E0000
#define WNNC_NET_POWERLAN 0x000F0000
#define WNNC_NET_BWNFS 0x00100000
#define WNNC_NET_COGENT 0x00110000
#define WNNC_NET_FARALLON 0x00120000
#define WNNC_NET_APPLETALK 0x00130000
#define WNNC_NET_INTERGRAPH 0x00140000
/*
* Network resources
*/
#define RESOURCE_CONNECTED 0x00000001
#define RESOURCE_GLOBALNET 0x00000002
#define RESOURCE_REMEMBERED 0x00000003
#define RESOURCE_RECENT 0x00000004
#define RESOURCE_CONTEXT 0x00000005
#define RESOURCETYPE_ANY 0x00000000
#define RESOURCETYPE_DISK 0x00000001
#define RESOURCETYPE_PRINT 0x00000002
#define RESOURCETYPE_RESERVED 0x00000008
#define RESOURCETYPE_UNKNOWN 0xFFFFFFFF
#define RESOURCEUSAGE_CONNECTABLE 0x00000001
#define RESOURCEUSAGE_CONTAINER 0x00000002
#define RESOURCEUSAGE_NOLOCALDEVICE 0x00000004
#define RESOURCEUSAGE_SIBLING 0x00000008
#define RESOURCEUSAGE_ATTACHED 0x00000010
#define RESOURCEUSAGE_ALL (RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER | RESOURCEUSAGE_ATTACHED)
#define RESOURCEUSAGE_RESERVED 0x80000000
#define RESOURCEDISPLAYTYPE_GENERIC 0x00000000
#define RESOURCEDISPLAYTYPE_DOMAIN 0x00000001
#define RESOURCEDISPLAYTYPE_SERVER 0x00000002
#define RESOURCEDISPLAYTYPE_SHARE 0x00000003
#define RESOURCEDISPLAYTYPE_FILE 0x00000004
#define RESOURCEDISPLAYTYPE_GROUP 0x00000005
#define RESOURCEDISPLAYTYPE_NETWORK 0x00000006
#define RESOURCEDISPLAYTYPE_ROOT 0x00000007
#define RESOURCEDISPLAYTYPE_SHAREADMIN 0x00000008
#define RESOURCEDISPLAYTYPE_DIRECTORY 0x00000009
#define RESOURCEDISPLAYTYPE_TREE 0x0000000A
typedef struct {
DWORD dwScope;
DWORD dwType;
DWORD dwDisplayType;
DWORD dwUsage;
LPSTR lpLocalName;
LPSTR lpRemoteName;
LPSTR lpComment ;
LPSTR lpProvider;
} NETRESOURCEA,*LPNETRESOURCEA;
typedef struct {
DWORD dwScope;
DWORD dwType;
DWORD dwDisplayType;
DWORD dwUsage;
LPWSTR lpLocalName;
LPWSTR lpRemoteName;
LPWSTR lpComment ;
LPWSTR lpProvider;
} NETRESOURCEW,*LPNETRESOURCEW;
DECL_WINELIB_TYPE_AW(NETRESOURCE)
DECL_WINELIB_TYPE_AW(LPNETRESOURCE)
/*
* Network connections
*/
#define NETPROPERTY_PERSISTENT 1
#define CONNECT_UPDATE_PROFILE 0x00000001
#define CONNECT_UPDATE_RECENT 0x00000002
#define CONNECT_TEMPORARY 0x00000004
#define CONNECT_INTERACTIVE 0x00000008
#define CONNECT_PROMPT 0x00000010
#define CONNECT_NEED_DRIVE 0x00000020
#define CONNECT_REFCOUNT 0x00000040
#define CONNECT_REDIRECT 0x00000080
#define CONNECT_LOCALDRIVE 0x00000100
#define CONNECT_CURRENT_MEDIA 0x00000200
DWORD WINAPI WNetAddConnectionA(LPCSTR,LPCSTR,LPCSTR);
DWORD WINAPI WNetAddConnectionW(LPCWSTR,LPCWSTR,LPCWSTR);
#define WNetAddConnection WINELIB_NAME_AW(WNetAddConnection)
DWORD WINAPI WNetAddConnection2A(LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD);
DWORD WINAPI WNetAddConnection2W(LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD);
#define WNetAddConnection2 WINELIB_NAME_AW(WNetAddConnection2)
DWORD WINAPI WNetAddConnection3A(HWND,LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD);
DWORD WINAPI WNetAddConnection3W(HWND,LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD);
#define WNetAddConnection3 WINELIB_NAME_AW(WNetAddConnection3)
DWORD WINAPI WNetCancelConnectionA(LPCSTR,BOOL);
DWORD WINAPI WNetCancelConnectionW(LPCWSTR,BOOL);
#define WNetCancelConnection WINELIB_NAME_AW(WNetCancelConnection)
DWORD WINAPI WNetCancelConnection2A(LPCSTR,DWORD,BOOL);
DWORD WINAPI WNetCancelConnection2W(LPCWSTR,DWORD,BOOL);
#define WNetCancelConnection2 WINELIB_NAME_AW(WNetCancelConnection2)
DWORD WINAPI WNetGetConnectionA(LPCSTR,LPSTR,LPDWORD);
DWORD WINAPI WNetGetConnectionW(LPCWSTR,LPWSTR,LPDWORD);
#define WNetGetConnection WINELIB_NAME_AW(WNetGetConnection)
DWORD WINAPI WNetUseConnectionA(HWND,LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD,LPSTR,LPDWORD,LPDWORD);
DWORD WINAPI WNetUseConnectionW(HWND,LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPDWORD,LPDWORD);
#define WNetUseConnection WINELIB_NAME_AW(WNetUseConnection)
DWORD WINAPI WNetSetConnectionA(LPCSTR,DWORD,LPVOID);
DWORD WINAPI WNetSetConnectionW(LPCWSTR,DWORD,LPVOID);
#define WNetSetConnection WINELIB_NAME_AW(WNetSetConnection)
/*
* Network connection dialogs
*/
typedef struct {
DWORD cbStructure; /* size of this structure in bytes */
HWND hwndOwner; /* owner window for the dialog */
LPNETRESOURCEA lpConnRes;/* Requested Resource info */
DWORD dwFlags; /* flags (see below) */
DWORD dwDevNum; /* number of devices connected to */
} CONNECTDLGSTRUCTA, *LPCONNECTDLGSTRUCTA;
typedef struct {
DWORD cbStructure; /* size of this structure in bytes */
HWND hwndOwner; /* owner window for the dialog */
LPNETRESOURCEW lpConnRes;/* Requested Resource info */
DWORD dwFlags; /* flags (see below) */
DWORD dwDevNum; /* number of devices connected to */
} CONNECTDLGSTRUCTW, *LPCONNECTDLGSTRUCTW;
DECL_WINELIB_TYPE_AW(CONNECTDLGSTRUCT)
DECL_WINELIB_TYPE_AW(LPCONNECTDLGSTRUCT)
#define CONNDLG_RO_PATH 0x00000001 /* Resource path should be read-only */
#define CONNDLG_CONN_POINT 0x00000002 /* Netware -style movable connection point enabled */
#define CONNDLG_USE_MRU 0x00000004 /* Use MRU combobox */
#define CONNDLG_HIDE_BOX 0x00000008 /* Hide persistent connect checkbox */
#define CONNDLG_PERSIST 0x00000010 /* Force persistent connection */
#define CONNDLG_NOT_PERSIST 0x00000020 /* Force connection NOT persistent */
typedef struct {
DWORD cbStructure; /* size of this structure in bytes */
HWND hwndOwner; /* owner window for the dialog */
LPSTR lpLocalName; /* local device name */
LPSTR lpRemoteName; /* network resource name */
DWORD dwFlags; /* flags */
} DISCDLGSTRUCTA, *LPDISCDLGSTRUCTA;
typedef struct {
DWORD cbStructure; /* size of this structure in bytes */
HWND hwndOwner; /* owner window for the dialog */
LPWSTR lpLocalName; /* local device name */
LPWSTR lpRemoteName; /* network resource name */
DWORD dwFlags; /* flags */
} DISCDLGSTRUCTW, *LPDISCDLGSTRUCTW;
DECL_WINELIB_TYPE_AW(DISCDLGSTRUCT)
DECL_WINELIB_TYPE_AW(LPDISCDLGSTRUCT)
#define DISC_UPDATE_PROFILE 0x00000001
#define DISC_NO_FORCE 0x00000040
DWORD WINAPI WNetConnectionDialog(HWND,DWORD);
DWORD WINAPI WNetDisconnectDialog(HWND,DWORD);
DWORD WINAPI WNetConnectionDialog1A(LPCONNECTDLGSTRUCTA);
DWORD WINAPI WNetConnectionDialog1W(LPCONNECTDLGSTRUCTW);
#define WNetConnectionDialog1 WINELIB_NAME_AW(WNetConnectionDialog1)
DWORD WINAPI WNetDisconnectDialog1A(LPDISCDLGSTRUCTA);
DWORD WINAPI WNetDisconnectDialog1W(LPDISCDLGSTRUCTW);
#define WNetDisconnectDialog1 WINELIB_NAME_AW(WNetDisconnectDialog1)
/*
* Network browsing
*/
DWORD WINAPI WNetOpenEnumA(DWORD,DWORD,DWORD,LPNETRESOURCEA,LPHANDLE);
DWORD WINAPI WNetOpenEnumW(DWORD,DWORD,DWORD,LPNETRESOURCEW,LPHANDLE);
#define WNetOpenEnum WINELIB_NAME_AW(WNetOpenEnum)
DWORD WINAPI WNetEnumResourceA(HANDLE,LPDWORD,LPVOID,LPDWORD);
DWORD WINAPI WNetEnumResourceW(HANDLE,LPDWORD,LPVOID,LPDWORD);
#define WNetEnumResource WINELIB_NAME_AW(WNetEnumResource)
DWORD WINAPI WNetGetResourceInformationA(LPNETRESOURCEA,LPVOID,LPDWORD,LPSTR*);
DWORD WINAPI WNetGetResourceInformationW(LPNETRESOURCEW,LPVOID,LPDWORD,LPWSTR*);
#define WNetGetResourceInformation WINELIB_NAME_AW(WNetGetResourceInformation)
DWORD WINAPI WNetGetResourceParentA(LPNETRESOURCEA,LPVOID,LPDWORD);
DWORD WINAPI WNetGetResourceParentW(LPNETRESOURCEW,LPVOID,LPDWORD);
#define WNetGetResourceParent WINELIB_NAME_AW(WNetGetResourceParent)
DWORD WINAPI WNetCloseEnum(HANDLE);
/*
* Universal naming
*/
#define UNIVERSAL_NAME_INFO_LEVEL 0x00000001
#define REMOTE_NAME_INFO_LEVEL 0x00000002
typedef struct {
LPSTR lpUniversalName;
} UNIVERSAL_NAME_INFOA, *LPUNIVERSAL_NAME_INFOA;
typedef struct {
LPWSTR lpUniversalName;
} UNIVERSAL_NAME_INFOW, *LPUNIVERSAL_NAME_INFOW;
DECL_WINELIB_TYPE_AW(UNIVERSAL_NAME_INFO)
DECL_WINELIB_TYPE_AW(LPUNIVERSAL_NAME_INFO)
typedef struct {
LPSTR lpUniversalName;
LPSTR lpConnectionName;
LPSTR lpRemainingPath;
}REMOTE_NAME_INFOA, *LPREMOTE_NAME_INFOA;
typedef struct {
LPWSTR lpUniversalName;
LPWSTR lpConnectionName;
LPWSTR lpRemainingPath;
}REMOTE_NAME_INFOW, *LPREMOTE_NAME_INFOW;
DECL_WINELIB_TYPE_AW(REMOTE_NAME_INFO)
DECL_WINELIB_TYPE_AW(LPREMOTE_NAME_INFO)
DWORD WINAPI WNetGetUniversalNameA(LPCSTR,DWORD,LPVOID,LPDWORD);
DWORD WINAPI WNetGetUniversalNameW(LPCWSTR,DWORD,LPVOID,LPDWORD);
#define WNetGetUniversalName WINELIB_NAME_AW(WNetGetUniversalName)
/*
* Other
*/
DWORD WINAPI WNetGetUserA(LPCSTR,LPSTR,LPDWORD);
DWORD WINAPI WNetGetUserW(LPCWSTR,LPWSTR,LPDWORD);
#define WNetGetUser WINELIB_NAME_AW(WNetGetUser)
#define WNFMT_MULTILINE 0x01
#define WNFMT_ABBREVIATED 0x02
#define WNFMT_INENUM 0x10
#define WNFMT_CONNECTION 0x20
DWORD WINAPI WNetGetProviderNameA(DWORD,LPSTR,LPDWORD);
DWORD WINAPI WNetGetProviderNameW(DWORD,LPWSTR,LPDWORD);
#define WNetGetProviderName WINELIB_NAME_AW(WNetGetProviderName)
typedef struct {
DWORD cbStructure;
DWORD dwProviderVersion;
DWORD dwStatus;
DWORD dwCharacteristics;
DWORD dwHandle;
WORD wNetType;
DWORD dwPrinters;
DWORD dwDrives;
} NETINFOSTRUCT, *LPNETINFOSTRUCT;
#define NETINFO_DLL16 0x00000001
#define NETINFO_DISKRED 0x00000004
#define NETINFO_PRINTERRED 0x00000008
DWORD WINAPI WNetGetNetworkInformationA(LPCSTR,LPNETINFOSTRUCT);
DWORD WINAPI WNetGetNetworkInformationW(LPCWSTR,LPNETINFOSTRUCT);
#define WNetGetNetworkInformation WINELIB_NAME_AW(WNetGetNetworkInformation)
/*
* Status codes
*/
DWORD WINAPI WNetGetLastErrorA(LPDWORD,LPSTR,DWORD,LPSTR,DWORD);
DWORD WINAPI WNetGetLastErrorW(LPDWORD,LPWSTR,DWORD,LPWSTR,DWORD);
#define WNetGetLastError WINELIB_NAME_AW(WNetGetLastError)
#define WN_SUCCESS NO_ERROR
#define WN_NO_ERROR NO_ERROR
#define WN_NOT_SUPPORTED ERROR_NOT_SUPPORTED
#define WN_CANCEL ERROR_CANCELLED
#define WN_RETRY ERROR_RETRY
#define WN_NET_ERROR ERROR_UNEXP_NET_ERR
#define WN_MORE_DATA ERROR_MORE_DATA
#define WN_BAD_POINTER ERROR_INVALID_ADDRESS
#define WN_BAD_VALUE ERROR_INVALID_PARAMETER
#define WN_BAD_USER ERROR_BAD_USERNAME
#define WN_BAD_PASSWORD ERROR_INVALID_PASSWORD
#define WN_ACCESS_DENIED ERROR_ACCESS_DENIED
#define WN_FUNCTION_BUSY ERROR_BUSY
#define WN_WINDOWS_ERROR ERROR_UNEXP_NET_ERR
#define WN_OUT_OF_MEMORY ERROR_NOT_ENOUGH_MEMORY
#define WN_NO_NETWORK ERROR_NO_NETWORK
#define WN_EXTENDED_ERROR ERROR_EXTENDED_ERROR
#define WN_BAD_LEVEL ERROR_INVALID_LEVEL
#define WN_BAD_HANDLE ERROR_INVALID_HANDLE
#define WN_NOT_INITIALIZING ERROR_ALREADY_INITIALIZED
#define WN_NO_MORE_DEVICES ERROR_NO_MORE_DEVICES
#define WN_NOT_CONNECTED ERROR_NOT_CONNECTED
#define WN_OPEN_FILES ERROR_OPEN_FILES
#define WN_DEVICE_IN_USE ERROR_DEVICE_IN_USE
#define WN_BAD_NETNAME ERROR_BAD_NET_NAME
#define WN_BAD_LOCALNAME ERROR_BAD_DEVICE
#define WN_ALREADY_CONNECTED ERROR_ALREADY_ASSIGNED
#define WN_DEVICE_ERROR ERROR_GEN_FAILURE
#define WN_CONNECTION_CLOSED ERROR_CONNECTION_UNAVAIL
#define WN_NO_NET_OR_BAD_PATH ERROR_NO_NET_OR_BAD_PATH
#define WN_BAD_PROVIDER ERROR_BAD_PROVIDER
#define WN_CANNOT_OPEN_PROFILE ERROR_CANNOT_OPEN_PROFILE
#define WN_BAD_PROFILE ERROR_BAD_PROFILE
#define WN_BAD_DEV_TYPE ERROR_BAD_DEV_TYPE
#define WN_DEVICE_ALREADY_REMEMBERED ERROR_DEVICE_ALREADY_REMEMBERED
#define WN_NO_MORE_ENTRIES ERROR_NO_MORE_ITEMS
#define WN_NOT_CONTAINER ERROR_NOT_CONTAINER
#define WN_NOT_AUTHENTICATED ERROR_NOT_AUTHENTICATED
#define WN_NOT_LOGGED_ON ERROR_NOT_LOGGED_ON
#define WN_NOT_VALIDATED ERROR_NO_LOGON_SERVERS
/*
* Multinet (for Shell)
*/
typedef struct {
DWORD cbStructure;
DWORD dwFlags;
DWORD dwSpeed;
DWORD dwDelay;
DWORD dwOptDataSize;
} NETCONNECTINFOSTRUCT,*LPNETCONNECTINFOSTRUCT;
#define WNCON_FORNETCARD 0x00000001
#define WNCON_NOTROUTED 0x00000002
#define WNCON_SLOWLINK 0x00000004
#define WNCON_DYNAMIC 0x00000008
DWORD WINAPI MultinetGetConnectionPerformanceA(LPNETRESOURCEA,LPNETCONNECTINFOSTRUCT);
DWORD WINAPI MultinetGetConnectionPerformanceW(LPNETRESOURCEW,LPNETCONNECTINFOSTRUCT);
#define MultinetGetConnectionPerformance WINELIB_NAME_AW(MultinetGetConnectionPerformance)
DWORD WINAPI MultinetGetErrorTextA(DWORD,DWORD,DWORD);
DWORD WINAPI MultinetGetErrorTextW(DWORD,DWORD,DWORD);
#define MultinetGetErrorText WINELIB_NAME_AW(MultinetGetErrorText)
/*
* Password cache
*/
/* WNetEnumCachedPasswords */
typedef struct tagPASSWORD_CACHE_ENTRY
{
WORD cbEntry;
WORD cbResource;
WORD cbPassword;
BYTE iEntry;
BYTE nType;
BYTE abResource[1];
} PASSWORD_CACHE_ENTRY;
typedef BOOL (CALLBACK *ENUMPASSWORDPROC)(PASSWORD_CACHE_ENTRY *, DWORD);
UINT WINAPI WNetEnumCachedPasswords( LPSTR, WORD, BYTE, ENUMPASSWORDPROC, DWORD);
DWORD WINAPI WNetGetCachedPassword( LPSTR, WORD, LPSTR, LPWORD, BYTE );
DWORD WINAPI WNetCachePassword( LPSTR, WORD, LPSTR, WORD, BYTE, WORD );
#endif /* _WINNETWK_H_ */

View file

@ -1,34 +1,9 @@
# $Id: Makefile,v 1.2 2004/02/01 19:48:44 gvg Exp $
PATH_TO_TOP = ../.. PATH_TO_TOP = ../..
TARGET_TYPE = dynlink TARGET_TYPE = winedll
TARGET_NAME = mpr
TARGET_BASE = 0x701a0000
TARGET_CFLAGS = -fno-builtin
# require os code to explicitly request A/W version of structs/functions
TARGET_CFLAGS += -DUNICODE -D_UNICODE -Wall -Werror
TARGET_LFLAGS = -nostdlib -nostartfiles
TARGET_SDKLIBS = kernel32.a ntdll.a user32.a advapi32.a ole32.a
TARGET_OBJECTS = \
../Uuid/uuid.o \
auth.o \
multinet.o \
nps.o \
pwcache.o \
wnet.o \
DEP_OBJECTS = $(TARGET_OBJECTS)
include $(PATH_TO_TOP)/rules.mak include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk include $(TOOLS_PATH)/helper.mk
include $(TOOLS_PATH)/depend.mk
# EOF

View file

@ -0,0 +1,18 @@
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = mpr.dll
IMPORTS = advapi32 kernel32
C_SRCS = \
auth.c \
mpr_main.c \
multinet.c \
nps.c \
pwcache.c \
wnet.c
@MAKE_DLL_RULES@
### Dependencies:

View file

@ -0,0 +1,19 @@
# $Id: Makefile.ros-template,v 1.1 2004/02/01 19:48:44 gvg Exp $
TARGET_NAME = mpr
TARGET_OBJECTS = @C_SRCS@
TARGET_CFLAGS = -D__REACTOS__
TARGET_SDKLIBS = @IMPORTS@ kernel32.a libwine.a ntdll.a
TARGET_BASE = 0x76620000
TARGET_NORC = yes
default: all
DEP_OBJECTS = $(TARGET_OBJECTS)
include $(TOOLS_PATH)/depend.mk

View file

@ -18,15 +18,23 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
//#include <winbase.h> #include <stdarg.h>
//#include <winnetwk.h>
#include <windows.h> #include "windef.h"
#include "winbase.h"
#include "winnetwk.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(mpr);
/***************************************************************** /*****************************************************************
* WNetLogoffA [MPR.@] * WNetLogoffA [MPR.@]
*/ */
DWORD WINAPI WNetLogoffA( LPCSTR lpProvider, HWND hwndOwner ) DWORD WINAPI WNetLogoffA( LPCSTR lpProvider, HWND hwndOwner )
{ {
FIXME( "(%s, %p): stub\n", debugstr_a(lpProvider), hwndOwner );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -36,6 +44,8 @@ DWORD WINAPI WNetLogoffA( LPCSTR lpProvider, HWND hwndOwner )
*/ */
DWORD WINAPI WNetLogoffW( LPCWSTR lpProvider, HWND hwndOwner ) DWORD WINAPI WNetLogoffW( LPCWSTR lpProvider, HWND hwndOwner )
{ {
FIXME( "(%s, %p): stub\n", debugstr_w(lpProvider), hwndOwner );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -45,6 +55,8 @@ DWORD WINAPI WNetLogoffW( LPCWSTR lpProvider, HWND hwndOwner )
*/ */
DWORD WINAPI WNetLogonA( LPCSTR lpProvider, HWND hwndOwner ) DWORD WINAPI WNetLogonA( LPCSTR lpProvider, HWND hwndOwner )
{ {
FIXME( "(%s, %p): stub\n", debugstr_a(lpProvider), hwndOwner );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -54,6 +66,8 @@ DWORD WINAPI WNetLogonA( LPCSTR lpProvider, HWND hwndOwner )
*/ */
DWORD WINAPI WNetLogonW( LPCWSTR lpProvider, HWND hwndOwner ) DWORD WINAPI WNetLogonW( LPCWSTR lpProvider, HWND hwndOwner )
{ {
FIXME( "(%s, %p): stub\n", debugstr_w(lpProvider), hwndOwner );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -63,6 +77,8 @@ DWORD WINAPI WNetLogonW( LPCWSTR lpProvider, HWND hwndOwner )
*/ */
DWORD WINAPI WNetVerifyPasswordA( LPCSTR lpszPassword, BOOL *pfMatch ) DWORD WINAPI WNetVerifyPasswordA( LPCSTR lpszPassword, BOOL *pfMatch )
{ {
FIXME( "(%p, %p): stub\n", lpszPassword, pfMatch );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -72,6 +88,8 @@ DWORD WINAPI WNetVerifyPasswordA( LPCSTR lpszPassword, BOOL *pfMatch )
*/ */
DWORD WINAPI WNetVerifyPasswordW( LPCWSTR lpszPassword, BOOL *pfMatch ) DWORD WINAPI WNetVerifyPasswordW( LPCWSTR lpszPassword, BOOL *pfMatch )
{ {
FIXME( "(%p, %p): stub\n", lpszPassword, pfMatch );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }

View file

@ -1,47 +0,0 @@
typedef struct
{
DWORD cbStructure;
HWND hwndOwner;
LPCSTR lpResource;
LPSTR lpUsername;
DWORD cbUsername;
LPSTR lpPassword;
DWORD cbPassword;
LPSTR lpOrgUnit;
DWORD cbOrgUnit;
LPCSTR lpOUTitle;
LPCSTR lpExplainText;
LPCSTR lpDefaultUserName;
DWORD dwFlags;
} AUTHDLGSTRUCTA, *LPAUTHDLGSTRUCTA;
typedef struct
{
DWORD cbStructure;
DWORD dwNotifyStatus;
DWORD dwOperationStatus;
LPVOID lpNPContext;
} NOTIFYINFO, *LPNOTIFYINFO;
typedef struct tagPASSWORD_CACHE_ENTRY {
WORD cbEntry;
WORD cbResource;
WORD cbPassword;
BYTE iEntry;
BYTE nType;
BYTE abResource[1];
} PASSWORD_CACHE_ENTRY;
enum NOTIFYTYPE { NotifyAddConnection,
NotifyCancelConnection,
NotifyGetConnectionPerformance };
#define HPROVIDER LPVOID
#define WN_NOT_SUPPORTED 0x0001
#define WN_NOT_CONNECTED ERROR_NOT_CONNECTED
#define WN_BAD_LOCALNAME ERROR_BAD_DEVICE
typedef HPROVIDER *PHPROVIDER;
typedef DWORD (CALLBACK *NOTIFYCALLBACK)(LPNOTIFYINFO,LPVOID);
typedef BOOL (CALLBACK *ENUMPASSWORDPROC)(PASSWORD_CACHE_ENTRY *, DWORD);

View file

@ -1,57 +0,0 @@
/*
* ReactOS Cards
*
* Copyright (C) 2003 Filip Navara <xnavara@volny.org>
*
* 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
*/
#include <windows.h>
#include <reactos/resource.h>
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,3,0,0
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", RES_STR_COMPANY_NAME
VALUE "FileDescription", "MPR DLL\0"
VALUE "FileVersion", "0.3.0.0\0"
VALUE "InternalName", "mpr\0"
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
VALUE "OriginalFilename", "mpr.dll\0"
VALUE "ProductName", RES_STR_PRODUCT_NAME
VALUE "ProductVersion", RES_STR_PRODUCT_VERSION
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END

116
reactos/lib/mpr/mpr.spec Normal file
View file

@ -0,0 +1,116 @@
# ordinal exports
1 stub @
2 stub @
3 stub @
4 stub @
5 stub @
6 stub @
7 stub @
8 stub @
9 stub @
12 stub @
13 stub @
14 stub @
15 stub @
16 stub @
17 stub @
18 stub @
19 stub @
20 stub @
21 stub @
22 stdcall @(long) MPR_Alloc
23 stdcall @(ptr long) MPR_ReAlloc
24 stdcall @(ptr) MPR_Free
25 stdcall @(ptr long) _MPR_25
@ stdcall -private DllCanUnloadNow()
@ stub DllGetClassObject
@ stdcall MultinetGetConnectionPerformanceA(ptr ptr)
@ stdcall MultinetGetConnectionPerformanceW(ptr ptr)
@ stdcall MultinetGetErrorTextA(long ptr long)
@ stdcall MultinetGetErrorTextW(long ptr long)
@ stdcall NPSAuthenticationDialogA(ptr)
@ stdcall NPSCopyStringA(str ptr ptr)
@ stdcall NPSDeviceGetNumberA(str ptr ptr)
@ stdcall NPSDeviceGetStringA(long long ptr long)
@ stdcall NPSGetProviderHandleA(ptr)
@ stdcall NPSGetProviderNameA(long ptr)
@ stdcall NPSGetSectionNameA(long ptr)
@ stdcall NPSNotifyGetContextA(ptr)
@ stdcall NPSNotifyRegisterA(long ptr)
@ stdcall NPSSetCustomTextA(str)
@ stdcall NPSSetExtendedErrorA(long str)
@ stub PwdChangePasswordA
@ stub PwdChangePasswordW
@ stub PwdGetPasswordStatusA
@ stub PwdGetPasswordStatusW
@ stub PwdSetPasswordStatusA
@ stub PwdSetPasswordStatusW
@ stdcall WNetAddConnection2A(ptr str str long)
@ stdcall WNetAddConnection2W(ptr wstr wstr long)
@ stdcall WNetAddConnection3A(long ptr str str long)
@ stdcall WNetAddConnection3W(long ptr wstr wstr long)
@ stdcall WNetAddConnectionA(str str str)
@ stdcall WNetAddConnectionW(wstr wstr wstr)
@ stdcall WNetCachePassword(str long str long long long)
@ stdcall WNetCancelConnection2A(str long long)
@ stdcall WNetCancelConnection2W(wstr long long)
@ stdcall WNetCancelConnectionA(str long)
@ stdcall WNetCancelConnectionW(wstr long)
@ stdcall WNetCloseEnum(long)
@ stdcall WNetConnectionDialog1A(ptr)
@ stdcall WNetConnectionDialog1W(ptr)
@ stdcall WNetConnectionDialog(long long)
@ stdcall WNetDisconnectDialog1A(ptr)
@ stdcall WNetDisconnectDialog1W(ptr)
@ stdcall WNetDisconnectDialog(long long)
@ stdcall WNetEnumCachedPasswords(str long long ptr long)
@ stdcall WNetEnumResourceA(long ptr ptr ptr)
@ stdcall WNetEnumResourceW(long ptr ptr ptr)
@ stub WNetFormatNetworkNameA
@ stub WNetFormatNetworkNameW
@ stdcall WNetGetCachedPassword(ptr long ptr ptr long)
@ stdcall WNetGetConnectionA(str ptr ptr)
@ stdcall WNetGetConnectionW(wstr ptr ptr)
@ stub WNetGetHomeDirectoryA
@ stub WNetGetHomeDirectoryW
@ stdcall WNetGetLastErrorA(ptr ptr long ptr long)
@ stdcall WNetGetLastErrorW(ptr ptr long ptr long)
@ stdcall WNetGetNetworkInformationA(str ptr)
@ stdcall WNetGetNetworkInformationW(wstr ptr)
@ stdcall WNetGetProviderNameA(long ptr ptr)
@ stdcall WNetGetProviderNameW(long ptr ptr)
@ stdcall WNetGetResourceInformationA(ptr ptr ptr ptr)
@ stdcall WNetGetResourceInformationW(ptr ptr ptr ptr)
@ stdcall WNetGetResourceParentA(ptr ptr ptr)
@ stdcall WNetGetResourceParentW(ptr ptr ptr)
@ stdcall WNetGetUniversalNameA (str long ptr ptr)
@ stdcall WNetGetUniversalNameW (wstr long ptr ptr)
@ stdcall WNetGetUserA(str ptr ptr)
@ stdcall WNetGetUserW(wstr wstr ptr)
@ stdcall WNetLogoffA(str long)
@ stdcall WNetLogoffW(wstr long)
@ stdcall WNetLogonA(str long)
@ stdcall WNetLogonW(wstr long)
@ stdcall WNetOpenEnumA(long long long ptr ptr)
@ stdcall WNetOpenEnumW(long long long ptr ptr)
@ stdcall WNetRemoveCachedPassword(long long long)
@ stdcall WNetRestoreConnectionA(long str)
@ stdcall WNetRestoreConnectionW(long wstr)
@ stdcall WNetSetConnectionA(str long ptr)
@ stdcall WNetSetConnectionW(wstr long ptr)
@ stdcall WNetUseConnectionA(long ptr str str long str ptr ptr)
@ stdcall WNetUseConnectionW(long ptr wstr wstr long wstr ptr ptr)
@ stdcall WNetVerifyPasswordA(str ptr)
@ stdcall WNetVerifyPasswordW(wstr ptr)
#additions, not in win95 mpr.dll
@ stub WNetRestoreConnection
@ stub WNetLogonNotify
@ stub WNetPasswordChangeNotify
@ stub WNetGetPropertyTextA
@ stub WNetPropertyDialogA
@ stub WNetGetDirectoryTypeA
@ stub WNetFMXGetPermHelp
@ stub WNetFMXEditPerm
@ stub WNetFMXGetPermCaps

View file

@ -18,6 +18,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include <stdarg.h>
#include "windef.h"
#include "winbase.h" #include "winbase.h"
#include "winnetwk.h" #include "winnetwk.h"
#include "wine/debug.h" #include "wine/debug.h"

View file

@ -18,7 +18,14 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include <windows.h> #include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "winnetwk.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(mpr);
/***************************************************************** /*****************************************************************
@ -35,6 +42,8 @@ DWORD WINAPI MultinetGetConnectionPerformanceA(
LPNETRESOURCEA lpNetResource, LPNETRESOURCEA lpNetResource,
LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct ) LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct )
{ {
FIXME( "(%p, %p): stub\n", lpNetResource, lpNetConnectInfoStruct );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -46,6 +55,8 @@ DWORD WINAPI MultinetGetConnectionPerformanceW(
LPNETRESOURCEW lpNetResource, LPNETRESOURCEW lpNetResource,
LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct ) LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct )
{ {
FIXME( "(%p, %p): stub\n", lpNetResource, lpNetConnectInfoStruct );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -55,7 +66,8 @@ DWORD WINAPI MultinetGetConnectionPerformanceW(
*/ */
DWORD WINAPI MultinetGetErrorTextA( DWORD x, DWORD y, DWORD z ) DWORD WINAPI MultinetGetErrorTextA( DWORD x, DWORD y, DWORD z )
{ {
return 0; FIXME( "(%lx, %lx, %lx): stub\n", x, y, z );
return 0;
} }
/***************************************************************** /*****************************************************************
@ -63,6 +75,7 @@ DWORD WINAPI MultinetGetErrorTextA( DWORD x, DWORD y, DWORD z )
*/ */
DWORD WINAPI MultinetGetErrorTextW( DWORD x, DWORD y, DWORD z ) DWORD WINAPI MultinetGetErrorTextW( DWORD x, DWORD y, DWORD z )
{ {
FIXME( "(%lx, %lx, %lx ): stub\n", x, y, z );
return 0; return 0;
} }

View file

@ -18,14 +18,23 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include <windows.h> #include <stdarg.h>
#include "mpr.h"
#include "windef.h"
#include "winbase.h"
#include "winnetwk.h"
#include "netspi.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(mpr);
/***************************************************************** /*****************************************************************
* NPSAuthenticationDialogA [MPR.@] * NPSAuthenticationDialogA [MPR.@]
*/ */
DWORD WINAPI NPSAuthenticationDialogA( LPAUTHDLGSTRUCTA lpAuthDlgStruct ) DWORD WINAPI NPSAuthenticationDialogA( LPAUTHDLGSTRUCTA lpAuthDlgStruct )
{ {
FIXME( "(%p): stub\n", lpAuthDlgStruct );
return WN_NOT_SUPPORTED; return WN_NOT_SUPPORTED;
} }
@ -34,6 +43,7 @@ DWORD WINAPI NPSAuthenticationDialogA( LPAUTHDLGSTRUCTA lpAuthDlgStruct )
*/ */
DWORD WINAPI NPSGetProviderHandleA( PHPROVIDER phProvider ) DWORD WINAPI NPSGetProviderHandleA( PHPROVIDER phProvider )
{ {
FIXME( "(%p): stub\n", phProvider );
return WN_NOT_SUPPORTED; return WN_NOT_SUPPORTED;
} }
@ -42,6 +52,7 @@ DWORD WINAPI NPSGetProviderHandleA( PHPROVIDER phProvider )
*/ */
DWORD WINAPI NPSGetProviderNameA( HPROVIDER hProvider, LPCSTR *lpszProviderName ) DWORD WINAPI NPSGetProviderNameA( HPROVIDER hProvider, LPCSTR *lpszProviderName )
{ {
FIXME( "(%p, %p): stub\n", hProvider, lpszProviderName );
return WN_NOT_SUPPORTED; return WN_NOT_SUPPORTED;
} }
@ -50,6 +61,7 @@ DWORD WINAPI NPSGetProviderNameA( HPROVIDER hProvider, LPCSTR *lpszProviderName
*/ */
DWORD WINAPI NPSGetSectionNameA( HPROVIDER hProvider, LPCSTR *lpszSectionName ) DWORD WINAPI NPSGetSectionNameA( HPROVIDER hProvider, LPCSTR *lpszSectionName )
{ {
FIXME( "(%p, %p): stub\n", hProvider, lpszSectionName );
return WN_NOT_SUPPORTED; return WN_NOT_SUPPORTED;
} }
@ -58,6 +70,7 @@ DWORD WINAPI NPSGetSectionNameA( HPROVIDER hProvider, LPCSTR *lpszSectionName )
*/ */
DWORD WINAPI NPSSetExtendedErrorA( DWORD NetSpecificError, LPSTR lpExtendedErrorText ) DWORD WINAPI NPSSetExtendedErrorA( DWORD NetSpecificError, LPSTR lpExtendedErrorText )
{ {
FIXME( "(%08lx, %s): stub\n", NetSpecificError, debugstr_a(lpExtendedErrorText) );
return WN_NOT_SUPPORTED; return WN_NOT_SUPPORTED;
} }
@ -66,6 +79,7 @@ DWORD WINAPI NPSSetExtendedErrorA( DWORD NetSpecificError, LPSTR lpExtendedError
*/ */
VOID WINAPI NPSSetCustomTextA( LPSTR lpCustomErrorText ) VOID WINAPI NPSSetCustomTextA( LPSTR lpCustomErrorText )
{ {
FIXME( "(%s): stub\n", debugstr_a(lpCustomErrorText) );
} }
/***************************************************************** /*****************************************************************
@ -73,6 +87,7 @@ VOID WINAPI NPSSetCustomTextA( LPSTR lpCustomErrorText )
*/ */
DWORD WINAPI NPSCopyStringA( LPCSTR lpString, LPVOID lpBuffer, LPDWORD lpdwBufferSize ) DWORD WINAPI NPSCopyStringA( LPCSTR lpString, LPVOID lpBuffer, LPDWORD lpdwBufferSize )
{ {
FIXME( "(%s, %p, %p): stub\n", debugstr_a(lpString), lpBuffer, lpdwBufferSize );
return WN_NOT_SUPPORTED; return WN_NOT_SUPPORTED;
} }
@ -81,6 +96,7 @@ DWORD WINAPI NPSCopyStringA( LPCSTR lpString, LPVOID lpBuffer, LPDWORD lpdwBuffe
*/ */
DWORD WINAPI NPSDeviceGetNumberA( LPSTR lpLocalName, LPDWORD lpdwNumber, LPDWORD lpdwType ) DWORD WINAPI NPSDeviceGetNumberA( LPSTR lpLocalName, LPDWORD lpdwNumber, LPDWORD lpdwType )
{ {
FIXME( "(%s, %p, %p): stub\n", debugstr_a(lpLocalName), lpdwNumber, lpdwType );
return WN_NOT_SUPPORTED; return WN_NOT_SUPPORTED;
} }
@ -89,6 +105,7 @@ DWORD WINAPI NPSDeviceGetNumberA( LPSTR lpLocalName, LPDWORD lpdwNumber, LPDWORD
*/ */
DWORD WINAPI NPSDeviceGetStringA( DWORD dwNumber, DWORD dwType, LPSTR lpLocalName, LPDWORD lpdwBufferSize ) DWORD WINAPI NPSDeviceGetStringA( DWORD dwNumber, DWORD dwType, LPSTR lpLocalName, LPDWORD lpdwBufferSize )
{ {
FIXME( "(%ld, %ld, %p, %p): stub\n", dwNumber, dwType, lpLocalName, lpdwBufferSize );
return WN_NOT_SUPPORTED; return WN_NOT_SUPPORTED;
} }
@ -97,6 +114,7 @@ DWORD WINAPI NPSDeviceGetStringA( DWORD dwNumber, DWORD dwType, LPSTR lpLocalNam
*/ */
DWORD WINAPI NPSNotifyRegisterA( enum NOTIFYTYPE NotifyType, NOTIFYCALLBACK pfNotifyCallBack ) DWORD WINAPI NPSNotifyRegisterA( enum NOTIFYTYPE NotifyType, NOTIFYCALLBACK pfNotifyCallBack )
{ {
FIXME( "(%d, %p): stub\n", NotifyType, pfNotifyCallBack );
return WN_NOT_SUPPORTED; return WN_NOT_SUPPORTED;
} }
@ -105,6 +123,7 @@ DWORD WINAPI NPSNotifyRegisterA( enum NOTIFYTYPE NotifyType, NOTIFYCALLBACK pfNo
*/ */
LPVOID WINAPI NPSNotifyGetContextA( NOTIFYCALLBACK pfNotifyCallBack ) LPVOID WINAPI NPSNotifyGetContextA( NOTIFYCALLBACK pfNotifyCallBack )
{ {
FIXME( "(%p): stub\n", pfNotifyCallBack );
return NULL; return NULL;
} }

View file

@ -2,6 +2,7 @@
* MPR Password Cache functions * MPR Password Cache functions
* *
* Copyright 1999 Ulrich Weigand * Copyright 1999 Ulrich Weigand
* Copyright 2003 Mike McCormack for CodeWeavers
* *
* 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
@ -18,8 +19,35 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include <windows.h> #include <stdarg.h>
#include "mpr.h" #include <stdio.h>
#include "windef.h"
#include "winbase.h"
#include "winnetwk.h"
#include "winreg.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(mpr);
static const char mpr_key[] = "Software\\Wine\\Wine\\Mpr\\";
static LPSTR MPR_GetValueName( LPSTR pbResource, WORD cbResource, BYTE nType )
{
LPSTR name;
DWORD i, x = 0;
/* just a hash so the value name doesn't get too large */
for( i=0; i<cbResource; i++ )
x = ((x<<7) | (x >> 25)) ^ toupper(pbResource[i]);
name = HeapAlloc( GetProcessHeap(), 0, 0x10 );
if( name )
sprintf( name, "I-%08lX-%02X", x, nType );
TRACE( "Value is %s\n", name );
return name;
}
/************************************************************************** /**************************************************************************
* WNetCachePassword [MPR.@] Saves password in cache * WNetCachePassword [MPR.@] Saves password in cache
* *
@ -41,7 +69,36 @@ DWORD WINAPI WNetCachePassword(
WORD x) WORD x)
{ {
return WN_NOT_SUPPORTED; HKEY hkey;
DWORD r;
LPSTR valname;
WARN( "(%p(%s), %d, %p(%s), %d, %d, 0x%08x): totally insecure\n",
pbResource, debugstr_a(pbResource), cbResource,
pbPassword, debugstr_a(pbPassword), cbPassword,
nType, x );
r = RegCreateKeyA( HKEY_CURRENT_USER, mpr_key, &hkey );
if( r )
return WN_ACCESS_DENIED;
valname = MPR_GetValueName( pbResource, cbResource, nType );
if( valname )
{
r = RegSetValueExA( hkey, valname, 0, REG_BINARY,
pbPassword, cbPassword );
if( r )
r = WN_ACCESS_DENIED;
else
r = WN_SUCCESS;
HeapFree( GetProcessHeap(), 0, valname );
}
else
r = WN_OUT_OF_MEMORY;
RegCloseKey( hkey );
return r;
} }
/***************************************************************** /*****************************************************************
@ -50,7 +107,31 @@ DWORD WINAPI WNetCachePassword(
UINT WINAPI WNetRemoveCachedPassword( LPSTR pbResource, WORD cbResource, UINT WINAPI WNetRemoveCachedPassword( LPSTR pbResource, WORD cbResource,
BYTE nType ) BYTE nType )
{ {
return WN_NOT_SUPPORTED; HKEY hkey;
DWORD r;
LPSTR valname;
WARN( "(%p(%s), %d, %d): totally insecure\n",
pbResource, debugstr_a(pbResource), cbResource, nType );
r = RegCreateKeyA( HKEY_CURRENT_USER, mpr_key, &hkey );
if( r )
return WN_ACCESS_DENIED;
valname = MPR_GetValueName( pbResource, cbResource, nType );
if( valname )
{
r = RegDeleteValueA( hkey, valname );
if( r )
r = WN_ACCESS_DENIED;
else
r = WN_SUCCESS;
HeapFree( GetProcessHeap(), 0, valname );
}
else
r = WN_OUT_OF_MEMORY;
return r;
} }
/***************************************************************** /*****************************************************************
@ -77,7 +158,34 @@ DWORD WINAPI WNetGetCachedPassword(
LPWORD pcbPassword, /* [out] Receives size of password */ LPWORD pcbPassword, /* [out] Receives size of password */
BYTE nType) /* [in] Type of password to retrieve */ BYTE nType) /* [in] Type of password to retrieve */
{ {
return WN_NOT_SUPPORTED; HKEY hkey;
DWORD r, type = 0, sz;
LPSTR valname;
WARN( "(%p(%s), %d, %p, %p, %d): stub\n",
pbResource, debugstr_a(pbResource), cbResource,
pbPassword, pcbPassword, nType );
r = RegCreateKeyA( HKEY_CURRENT_USER, mpr_key, &hkey );
if( r )
return WN_ACCESS_DENIED;
valname = MPR_GetValueName( pbResource, cbResource, nType );
if( valname )
{
sz = *pcbPassword;
r = RegQueryValueExA( hkey, valname, 0, &type, pbPassword, &sz );
*pcbPassword = sz;
if( r )
r = WN_ACCESS_DENIED;
else
r = WN_SUCCESS;
HeapFree( GetProcessHeap(), 0, valname );
}
else
r = WN_OUT_OF_MEMORY;
return r;
} }
/******************************************************************* /*******************************************************************
@ -85,6 +193,10 @@ DWORD WINAPI WNetGetCachedPassword(
* *
* NOTES * NOTES
* the parameter count is verifyed * the parameter count is verifyed
*
* This function is a huge security risk, as virii and such can use
* it to grab all the passwords in the cache. It's bad enough to
* store the passwords (insecurely).
* *
* observed values: * observed values:
* arg1 ptr 0x40xxxxxx -> (no string) * arg1 ptr 0x40xxxxxx -> (no string)
@ -99,5 +211,9 @@ DWORD WINAPI WNetGetCachedPassword(
UINT WINAPI WNetEnumCachedPasswords( LPSTR pbPrefix, WORD cbPrefix, UINT WINAPI WNetEnumCachedPasswords( LPSTR pbPrefix, WORD cbPrefix,
BYTE nType, ENUMPASSWORDPROC enumPasswordProc, DWORD x) BYTE nType, ENUMPASSWORDPROC enumPasswordProc, DWORD x)
{ {
WARN( "(%p(%s), %d, %d, %p, 0x%08lx): don't implement this\n",
pbPrefix, debugstr_a(pbPrefix), cbPrefix,
nType, enumPasswordProc, x );
return WN_NOT_SUPPORTED; return WN_NOT_SUPPORTED;
} }

View file

@ -0,0 +1,15 @@
Index: wnet.c
===================================================================
RCS file: /home/wine/wine/dlls/mpr/wnet.c,v
retrieving revision 1.14
diff -u -r1.14 wnet.c
--- wnet.c 5 Sep 2003 23:08:36 -0000 1.14
+++ wnet.c 1 Feb 2004 19:48:21 -0000
@@ -30,6 +30,7 @@
#include "windef.h"
#include "winbase.h"
+#include "winuser.h"
#include "winnls.h"
#include "winnetwk.h"
#include "wine/debug.h"

View file

@ -18,11 +18,25 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include "config.h"
#include <ctype.h> #include <ctype.h>
#include <stdarg.h>
#include <string.h> #include <string.h>
#include <sys/types.h> #include <sys/types.h>
#include <windows.h> #ifdef HAVE_UNISTD_H
#include <mpr.h> # include <unistd.h>
#endif
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "winnls.h"
#include "winnetwk.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(mpr);
/* /*
* Browsing Functions * Browsing Functions
@ -34,6 +48,9 @@
DWORD WINAPI WNetOpenEnumA( DWORD dwScope, DWORD dwType, DWORD dwUsage, DWORD WINAPI WNetOpenEnumA( DWORD dwScope, DWORD dwType, DWORD dwUsage,
LPNETRESOURCEA lpNet, LPHANDLE lphEnum ) LPNETRESOURCEA lpNet, LPHANDLE lphEnum )
{ {
FIXME( "(%08lX, %08lX, %08lX, %p, %p): stub\n",
dwScope, dwType, dwUsage, lpNet, lphEnum );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -44,6 +61,9 @@ DWORD WINAPI WNetOpenEnumA( DWORD dwScope, DWORD dwType, DWORD dwUsage,
DWORD WINAPI WNetOpenEnumW( DWORD dwScope, DWORD dwType, DWORD dwUsage, DWORD WINAPI WNetOpenEnumW( DWORD dwScope, DWORD dwType, DWORD dwUsage,
LPNETRESOURCEW lpNet, LPHANDLE lphEnum ) LPNETRESOURCEW lpNet, LPHANDLE lphEnum )
{ {
FIXME( "(%08lX, %08lX, %08lX, %p, %p): stub\n",
dwScope, dwType, dwUsage, lpNet, lphEnum );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -54,6 +74,9 @@ DWORD WINAPI WNetOpenEnumW( DWORD dwScope, DWORD dwType, DWORD dwUsage,
DWORD WINAPI WNetEnumResourceA( HANDLE hEnum, LPDWORD lpcCount, DWORD WINAPI WNetEnumResourceA( HANDLE hEnum, LPDWORD lpcCount,
LPVOID lpBuffer, LPDWORD lpBufferSize ) LPVOID lpBuffer, LPDWORD lpBufferSize )
{ {
FIXME( "(%p, %p, %p, %p): stub\n",
hEnum, lpcCount, lpBuffer, lpBufferSize );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -64,6 +87,9 @@ DWORD WINAPI WNetEnumResourceA( HANDLE hEnum, LPDWORD lpcCount,
DWORD WINAPI WNetEnumResourceW( HANDLE hEnum, LPDWORD lpcCount, DWORD WINAPI WNetEnumResourceW( HANDLE hEnum, LPDWORD lpcCount,
LPVOID lpBuffer, LPDWORD lpBufferSize ) LPVOID lpBuffer, LPDWORD lpBufferSize )
{ {
FIXME( "(%p, %p, %p, %p): stub\n",
hEnum, lpcCount, lpBuffer, lpBufferSize );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -73,6 +99,8 @@ DWORD WINAPI WNetEnumResourceW( HANDLE hEnum, LPDWORD lpcCount,
*/ */
DWORD WINAPI WNetCloseEnum( HANDLE hEnum ) DWORD WINAPI WNetCloseEnum( HANDLE hEnum )
{ {
FIXME( "(%p): stub\n", hEnum );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -84,6 +112,9 @@ DWORD WINAPI WNetGetResourceInformationA( LPNETRESOURCEA lpNetResource,
LPVOID lpBuffer, LPDWORD cbBuffer, LPVOID lpBuffer, LPDWORD cbBuffer,
LPSTR *lplpSystem ) LPSTR *lplpSystem )
{ {
FIXME( "(%p, %p, %p, %p): stub\n",
lpNetResource, lpBuffer, cbBuffer, lplpSystem );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -95,6 +126,9 @@ DWORD WINAPI WNetGetResourceInformationW( LPNETRESOURCEW lpNetResource,
LPVOID lpBuffer, LPDWORD cbBuffer, LPVOID lpBuffer, LPDWORD cbBuffer,
LPWSTR *lplpSystem ) LPWSTR *lplpSystem )
{ {
FIXME( "(%p, %p, %p, %p): stub\n",
lpNetResource, lpBuffer, cbBuffer, lplpSystem );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -105,6 +139,9 @@ DWORD WINAPI WNetGetResourceInformationW( LPNETRESOURCEW lpNetResource,
DWORD WINAPI WNetGetResourceParentA( LPNETRESOURCEA lpNetResource, DWORD WINAPI WNetGetResourceParentA( LPNETRESOURCEA lpNetResource,
LPVOID lpBuffer, LPDWORD lpBufferSize ) LPVOID lpBuffer, LPDWORD lpBufferSize )
{ {
FIXME( "(%p, %p, %p): stub\n",
lpNetResource, lpBuffer, lpBufferSize );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -115,6 +152,9 @@ DWORD WINAPI WNetGetResourceParentA( LPNETRESOURCEA lpNetResource,
DWORD WINAPI WNetGetResourceParentW( LPNETRESOURCEW lpNetResource, DWORD WINAPI WNetGetResourceParentW( LPNETRESOURCEW lpNetResource,
LPVOID lpBuffer, LPDWORD lpBufferSize ) LPVOID lpBuffer, LPDWORD lpBufferSize )
{ {
FIXME( "(%p, %p, %p): stub\n",
lpNetResource, lpBuffer, lpBufferSize );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -131,6 +171,9 @@ DWORD WINAPI WNetGetResourceParentW( LPNETRESOURCEW lpNetResource,
DWORD WINAPI WNetAddConnectionA( LPCSTR lpRemoteName, LPCSTR lpPassword, DWORD WINAPI WNetAddConnectionA( LPCSTR lpRemoteName, LPCSTR lpPassword,
LPCSTR lpLocalName ) LPCSTR lpLocalName )
{ {
FIXME( "(%s, %p, %s): stub\n",
debugstr_a(lpRemoteName), lpPassword, debugstr_a(lpLocalName) );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -141,6 +184,9 @@ DWORD WINAPI WNetAddConnectionA( LPCSTR lpRemoteName, LPCSTR lpPassword,
DWORD WINAPI WNetAddConnectionW( LPCWSTR lpRemoteName, LPCWSTR lpPassword, DWORD WINAPI WNetAddConnectionW( LPCWSTR lpRemoteName, LPCWSTR lpPassword,
LPCWSTR lpLocalName ) LPCWSTR lpLocalName )
{ {
FIXME( "(%s, %p, %s): stub\n",
debugstr_w(lpRemoteName), lpPassword, debugstr_w(lpLocalName) );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -152,6 +198,9 @@ DWORD WINAPI WNetAddConnection2A( LPNETRESOURCEA lpNetResource,
LPCSTR lpPassword, LPCSTR lpUserID, LPCSTR lpPassword, LPCSTR lpUserID,
DWORD dwFlags ) DWORD dwFlags )
{ {
FIXME( "(%p, %p, %s, 0x%08lX): stub\n",
lpNetResource, lpPassword, debugstr_a(lpUserID), dwFlags );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -163,6 +212,9 @@ DWORD WINAPI WNetAddConnection2W( LPNETRESOURCEW lpNetResource,
LPCWSTR lpPassword, LPCWSTR lpUserID, LPCWSTR lpPassword, LPCWSTR lpUserID,
DWORD dwFlags ) DWORD dwFlags )
{ {
FIXME( "(%p, %p, %s, 0x%08lX): stub\n",
lpNetResource, lpPassword, debugstr_w(lpUserID), dwFlags );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -174,6 +226,9 @@ DWORD WINAPI WNetAddConnection3A( HWND hwndOwner, LPNETRESOURCEA lpNetResource,
LPCSTR lpPassword, LPCSTR lpUserID, LPCSTR lpPassword, LPCSTR lpUserID,
DWORD dwFlags ) DWORD dwFlags )
{ {
FIXME( "(%p, %p, %p, %s, 0x%08lX), stub\n",
hwndOwner, lpNetResource, lpPassword, debugstr_a(lpUserID), dwFlags );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -185,6 +240,9 @@ DWORD WINAPI WNetAddConnection3W( HWND hwndOwner, LPNETRESOURCEW lpNetResource,
LPCWSTR lpPassword, LPCWSTR lpUserID, LPCWSTR lpPassword, LPCWSTR lpUserID,
DWORD dwFlags ) DWORD dwFlags )
{ {
FIXME( "(%p, %p, %p, %s, 0x%08lX), stub\n",
hwndOwner, lpNetResource, lpPassword, debugstr_w(lpUserID), dwFlags );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -197,6 +255,10 @@ DWORD WINAPI WNetUseConnectionA( HWND hwndOwner, LPNETRESOURCEA lpNetResource,
LPSTR lpAccessName, LPDWORD lpBufferSize, LPSTR lpAccessName, LPDWORD lpBufferSize,
LPDWORD lpResult ) LPDWORD lpResult )
{ {
FIXME( "(%p, %p, %p, %s, 0x%08lX, %s, %p, %p), stub\n",
hwndOwner, lpNetResource, lpPassword, debugstr_a(lpUserID), dwFlags,
debugstr_a(lpAccessName), lpBufferSize, lpResult );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -209,6 +271,10 @@ DWORD WINAPI WNetUseConnectionW( HWND hwndOwner, LPNETRESOURCEW lpNetResource,
LPWSTR lpAccessName, LPDWORD lpBufferSize, LPWSTR lpAccessName, LPDWORD lpBufferSize,
LPDWORD lpResult ) LPDWORD lpResult )
{ {
FIXME( "(%p, %p, %p, %s, 0x%08lX, %s, %p, %p), stub\n",
hwndOwner, lpNetResource, lpPassword, debugstr_w(lpUserID), dwFlags,
debugstr_w(lpAccessName), lpBufferSize, lpResult );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -218,7 +284,9 @@ DWORD WINAPI WNetUseConnectionW( HWND hwndOwner, LPNETRESOURCEW lpNetResource,
*/ */
DWORD WINAPI WNetCancelConnectionA( LPCSTR lpName, BOOL fForce ) DWORD WINAPI WNetCancelConnectionA( LPCSTR lpName, BOOL fForce )
{ {
return WN_SUCCESS; FIXME( "(%s, %d), stub\n", debugstr_a(lpName), fForce );
return WN_SUCCESS;
} }
/********************************************************************* /*********************************************************************
@ -226,6 +294,8 @@ DWORD WINAPI WNetCancelConnectionA( LPCSTR lpName, BOOL fForce )
*/ */
DWORD WINAPI WNetCancelConnectionW( LPCWSTR lpName, BOOL fForce ) DWORD WINAPI WNetCancelConnectionW( LPCWSTR lpName, BOOL fForce )
{ {
FIXME( "(%s, %d), stub\n", debugstr_w(lpName), fForce );
return WN_SUCCESS; return WN_SUCCESS;
} }
@ -234,6 +304,8 @@ DWORD WINAPI WNetCancelConnectionW( LPCWSTR lpName, BOOL fForce )
*/ */
DWORD WINAPI WNetCancelConnection2A( LPCSTR lpName, DWORD dwFlags, BOOL fForce ) DWORD WINAPI WNetCancelConnection2A( LPCSTR lpName, DWORD dwFlags, BOOL fForce )
{ {
FIXME( "(%s, %08lX, %d), stub\n", debugstr_a(lpName), dwFlags, fForce );
return WN_SUCCESS; return WN_SUCCESS;
} }
@ -242,7 +314,9 @@ DWORD WINAPI WNetCancelConnection2A( LPCSTR lpName, DWORD dwFlags, BOOL fForce )
*/ */
DWORD WINAPI WNetCancelConnection2W( LPCWSTR lpName, DWORD dwFlags, BOOL fForce ) DWORD WINAPI WNetCancelConnection2W( LPCWSTR lpName, DWORD dwFlags, BOOL fForce )
{ {
return WN_SUCCESS; FIXME( "(%s, %08lX, %d), stub\n", debugstr_w(lpName), dwFlags, fForce );
return WN_SUCCESS;
} }
/***************************************************************** /*****************************************************************
@ -250,6 +324,8 @@ DWORD WINAPI WNetCancelConnection2W( LPCWSTR lpName, DWORD dwFlags, BOOL fForce
*/ */
DWORD WINAPI WNetRestoreConnectionA( HWND hwndOwner, LPSTR lpszDevice ) DWORD WINAPI WNetRestoreConnectionA( HWND hwndOwner, LPSTR lpszDevice )
{ {
FIXME( "(%p, %s), stub\n", hwndOwner, debugstr_a(lpszDevice) );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -259,6 +335,8 @@ DWORD WINAPI WNetRestoreConnectionA( HWND hwndOwner, LPSTR lpszDevice )
*/ */
DWORD WINAPI WNetRestoreConnectionW( HWND hwndOwner, LPWSTR lpszDevice ) DWORD WINAPI WNetRestoreConnectionW( HWND hwndOwner, LPWSTR lpszDevice )
{ {
FIXME( "(%p, %s), stub\n", hwndOwner, debugstr_w(lpszDevice) );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -278,7 +356,8 @@ DWORD WINAPI WNetGetConnectionA( LPCSTR lpLocalName,
{ {
char label[40]; char label[40];
if (lpLocalName[1] == ':') TRACE( "local %s\n", lpLocalName );
if (lpLocalName[1] == ':')
{ {
switch(GetDriveTypeA(lpLocalName)) switch(GetDriveTypeA(lpLocalName))
{ {
@ -296,6 +375,7 @@ DWORD WINAPI WNetGetConnectionA( LPCSTR lpLocalName,
case DRIVE_REMOVABLE: case DRIVE_REMOVABLE:
case DRIVE_FIXED: case DRIVE_FIXED:
case DRIVE_CDROM: case DRIVE_CDROM:
TRACE("file is local\n");
return WN_NOT_CONNECTED; return WN_NOT_CONNECTED;
default: default:
return WN_BAD_LOCALNAME; return WN_BAD_LOCALNAME;
@ -337,6 +417,8 @@ DWORD WINAPI WNetGetConnectionW( LPCWSTR lpLocalName,
DWORD WINAPI WNetSetConnectionA( LPCSTR lpName, DWORD dwProperty, DWORD WINAPI WNetSetConnectionA( LPCSTR lpName, DWORD dwProperty,
LPVOID pvValue ) LPVOID pvValue )
{ {
FIXME( "(%s, %08lX, %p): stub\n", debugstr_a(lpName), dwProperty, pvValue );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -347,6 +429,8 @@ DWORD WINAPI WNetSetConnectionA( LPCSTR lpName, DWORD dwProperty,
DWORD WINAPI WNetSetConnectionW( LPCWSTR lpName, DWORD dwProperty, DWORD WINAPI WNetSetConnectionW( LPCWSTR lpName, DWORD dwProperty,
LPVOID pvValue ) LPVOID pvValue )
{ {
FIXME( "(%s, %08lX, %p): stub\n", debugstr_w(lpName), dwProperty, pvValue );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -357,6 +441,9 @@ DWORD WINAPI WNetSetConnectionW( LPCWSTR lpName, DWORD dwProperty,
DWORD WINAPI WNetGetUniversalNameA ( LPCSTR lpLocalPath, DWORD dwInfoLevel, DWORD WINAPI WNetGetUniversalNameA ( LPCSTR lpLocalPath, DWORD dwInfoLevel,
LPVOID lpBuffer, LPDWORD lpBufferSize ) LPVOID lpBuffer, LPDWORD lpBufferSize )
{ {
FIXME( "(%s, 0x%08lX, %p, %p): stub\n",
debugstr_a(lpLocalPath), dwInfoLevel, lpBuffer, lpBufferSize);
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -367,6 +454,9 @@ DWORD WINAPI WNetGetUniversalNameA ( LPCSTR lpLocalPath, DWORD dwInfoLevel,
DWORD WINAPI WNetGetUniversalNameW ( LPCWSTR lpLocalPath, DWORD dwInfoLevel, DWORD WINAPI WNetGetUniversalNameW ( LPCWSTR lpLocalPath, DWORD dwInfoLevel,
LPVOID lpBuffer, LPDWORD lpBufferSize ) LPVOID lpBuffer, LPDWORD lpBufferSize )
{ {
FIXME( "(%s, 0x%08lX, %p, %p): stub\n",
debugstr_w(lpLocalPath), dwInfoLevel, lpBuffer, lpBufferSize);
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -393,6 +483,9 @@ DWORD WINAPI WNetGetUserA( LPCSTR lpName, LPSTR lpUserID, LPDWORD lpBufferSize )
*/ */
DWORD WINAPI WNetGetUserW( LPCWSTR lpName, LPWSTR lpUserID, LPDWORD lpBufferSize ) DWORD WINAPI WNetGetUserW( LPCWSTR lpName, LPWSTR lpUserID, LPDWORD lpBufferSize )
{ {
FIXME( "(%s, %p, %p): mostly stub\n",
debugstr_w(lpName), lpUserID, lpBufferSize );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -402,6 +495,8 @@ DWORD WINAPI WNetGetUserW( LPCWSTR lpName, LPWSTR lpUserID, LPDWORD lpBufferSize
*/ */
DWORD WINAPI WNetConnectionDialog( HWND hwnd, DWORD dwType ) DWORD WINAPI WNetConnectionDialog( HWND hwnd, DWORD dwType )
{ {
FIXME( "(%p, %08lX): stub\n", hwnd, dwType );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return ERROR_NO_NETWORK; return ERROR_NO_NETWORK;
} }
@ -411,6 +506,8 @@ DWORD WINAPI WNetConnectionDialog( HWND hwnd, DWORD dwType )
*/ */
DWORD WINAPI WNetConnectionDialog1A( LPCONNECTDLGSTRUCTA lpConnDlgStruct ) DWORD WINAPI WNetConnectionDialog1A( LPCONNECTDLGSTRUCTA lpConnDlgStruct )
{ {
FIXME( "(%p): stub\n", lpConnDlgStruct );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return ERROR_NO_NETWORK; return ERROR_NO_NETWORK;
} }
@ -420,7 +517,8 @@ DWORD WINAPI WNetConnectionDialog1A( LPCONNECTDLGSTRUCTA lpConnDlgStruct )
*/ */
DWORD WINAPI WNetConnectionDialog1W( LPCONNECTDLGSTRUCTW lpConnDlgStruct ) DWORD WINAPI WNetConnectionDialog1W( LPCONNECTDLGSTRUCTW lpConnDlgStruct )
{ {
FIXME( "(%p): stub\n", lpConnDlgStruct );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return ERROR_NO_NETWORK; return ERROR_NO_NETWORK;
} }
@ -430,6 +528,8 @@ DWORD WINAPI WNetConnectionDialog1W( LPCONNECTDLGSTRUCTW lpConnDlgStruct )
*/ */
DWORD WINAPI WNetDisconnectDialog( HWND hwnd, DWORD dwType ) DWORD WINAPI WNetDisconnectDialog( HWND hwnd, DWORD dwType )
{ {
FIXME( "(%p, %08lX): stub\n", hwnd, dwType );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return ERROR_NO_NETWORK; return ERROR_NO_NETWORK;
} }
@ -439,6 +539,8 @@ DWORD WINAPI WNetDisconnectDialog( HWND hwnd, DWORD dwType )
*/ */
DWORD WINAPI WNetDisconnectDialog1A( LPDISCDLGSTRUCTA lpConnDlgStruct ) DWORD WINAPI WNetDisconnectDialog1A( LPDISCDLGSTRUCTA lpConnDlgStruct )
{ {
FIXME( "(%p): stub\n", lpConnDlgStruct );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return ERROR_NO_NETWORK; return ERROR_NO_NETWORK;
} }
@ -448,6 +550,8 @@ DWORD WINAPI WNetDisconnectDialog1A( LPDISCDLGSTRUCTA lpConnDlgStruct )
*/ */
DWORD WINAPI WNetDisconnectDialog1W( LPDISCDLGSTRUCTW lpConnDlgStruct ) DWORD WINAPI WNetDisconnectDialog1W( LPDISCDLGSTRUCTW lpConnDlgStruct )
{ {
FIXME( "(%p): stub\n", lpConnDlgStruct );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return ERROR_NO_NETWORK; return ERROR_NO_NETWORK;
} }
@ -459,6 +563,9 @@ DWORD WINAPI WNetGetLastErrorA( LPDWORD lpError,
LPSTR lpErrorBuf, DWORD nErrorBufSize, LPSTR lpErrorBuf, DWORD nErrorBufSize,
LPSTR lpNameBuf, DWORD nNameBufSize ) LPSTR lpNameBuf, DWORD nNameBufSize )
{ {
FIXME( "(%p, %p, %ld, %p, %ld): stub\n",
lpError, lpErrorBuf, nErrorBufSize, lpNameBuf, nNameBufSize );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return ERROR_NO_NETWORK; return ERROR_NO_NETWORK;
} }
@ -470,6 +577,9 @@ DWORD WINAPI WNetGetLastErrorW( LPDWORD lpError,
LPWSTR lpErrorBuf, DWORD nErrorBufSize, LPWSTR lpErrorBuf, DWORD nErrorBufSize,
LPWSTR lpNameBuf, DWORD nNameBufSize ) LPWSTR lpNameBuf, DWORD nNameBufSize )
{ {
FIXME( "(%p, %p, %ld, %p, %ld): stub\n",
lpError, lpErrorBuf, nErrorBufSize, lpNameBuf, nNameBufSize );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return ERROR_NO_NETWORK; return ERROR_NO_NETWORK;
} }
@ -480,6 +590,8 @@ DWORD WINAPI WNetGetLastErrorW( LPDWORD lpError,
DWORD WINAPI WNetGetNetworkInformationA( LPCSTR lpProvider, DWORD WINAPI WNetGetNetworkInformationA( LPCSTR lpProvider,
LPNETINFOSTRUCT lpNetInfoStruct ) LPNETINFOSTRUCT lpNetInfoStruct )
{ {
FIXME( "(%s, %p): stub\n", debugstr_a(lpProvider), lpNetInfoStruct );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return ERROR_NO_NETWORK; return ERROR_NO_NETWORK;
} }
@ -490,6 +602,8 @@ DWORD WINAPI WNetGetNetworkInformationA( LPCSTR lpProvider,
DWORD WINAPI WNetGetNetworkInformationW( LPCWSTR lpProvider, DWORD WINAPI WNetGetNetworkInformationW( LPCWSTR lpProvider,
LPNETINFOSTRUCT lpNetInfoStruct ) LPNETINFOSTRUCT lpNetInfoStruct )
{ {
FIXME( "(%s, %p): stub\n", debugstr_w(lpProvider), lpNetInfoStruct );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return ERROR_NO_NETWORK; return ERROR_NO_NETWORK;
} }
@ -500,6 +614,8 @@ DWORD WINAPI WNetGetNetworkInformationW( LPCWSTR lpProvider,
DWORD WINAPI WNetGetProviderNameA( DWORD dwNetType, DWORD WINAPI WNetGetProviderNameA( DWORD dwNetType,
LPSTR lpProvider, LPDWORD lpBufferSize ) LPSTR lpProvider, LPDWORD lpBufferSize )
{ {
FIXME( "(%ld, %p, %p): stub\n", dwNetType, lpProvider, lpBufferSize );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }
@ -510,6 +626,8 @@ DWORD WINAPI WNetGetProviderNameA( DWORD dwNetType,
DWORD WINAPI WNetGetProviderNameW( DWORD dwNetType, DWORD WINAPI WNetGetProviderNameW( DWORD dwNetType,
LPWSTR lpProvider, LPDWORD lpBufferSize ) LPWSTR lpProvider, LPDWORD lpBufferSize )
{ {
FIXME( "(%ld, %p, %p): stub\n", dwNetType, lpProvider, lpBufferSize );
SetLastError(WN_NO_NETWORK); SetLastError(WN_NO_NETWORK);
return WN_NO_NETWORK; return WN_NO_NETWORK;
} }