Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 1 | /* |
| 2 | * Network functions |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 3 | * |
| 4 | * This is the MPR.DLL stuff from Win32, as well as the USER |
| 5 | * stuff by the same names in Win 3.x. |
| 6 | * |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 7 | */ |
| 8 | |
Alexandre Julliard | 594997c | 1995-04-30 10:05:20 +0000 | [diff] [blame] | 9 | #include <ctype.h> |
David Luyer | ee517e8 | 1999-02-28 12:27:56 +0000 | [diff] [blame^] | 10 | #include <string.h> |
Alexandre Julliard | 85ed45e | 1998-08-22 19:03:56 +0000 | [diff] [blame] | 11 | #include <sys/types.h> |
| 12 | #include <pwd.h> |
| 13 | #include <unistd.h> |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 14 | |
Marcus Meissner | 04c3e1d | 1999-02-19 10:37:02 +0000 | [diff] [blame] | 15 | #include "wintypes.h" |
| 16 | #include "winnetwk.h" |
| 17 | #include "winuser.h" |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 18 | #include "winerror.h" |
Alexandre Julliard | 4f8c37b | 1996-01-14 18:12:01 +0000 | [diff] [blame] | 19 | #include "drive.h" |
Alexandre Julliard | 60ce85c | 1998-02-01 18:33:27 +0000 | [diff] [blame] | 20 | #include "wnet.h" |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 21 | #include "debug.h" |
Alexandre Julliard | 642d313 | 1998-07-12 19:29:36 +0000 | [diff] [blame] | 22 | #include "heap.h" |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 23 | |
| 24 | /******************************************************************** |
| 25 | * WNetAddConnection16 [USER.517] Directs a local device to net |
| 26 | * |
| 27 | * Redirects a local device (either a disk drive or printer port) |
| 28 | * to a shared device on a remote server. |
| 29 | */ |
Alexandre Julliard | a845b88 | 1998-06-01 10:44:35 +0000 | [diff] [blame] | 30 | UINT16 WINAPI WNetAddConnection16(LPCSTR lpNetPath, LPCSTR lpPassWord, |
| 31 | LPCSTR lpLocalName) |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 32 | { |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 33 | return WNetAddConnectionA(lpNetPath, lpPassWord, lpLocalName); |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 34 | } |
| 35 | |
Alexandre Julliard | 642d313 | 1998-07-12 19:29:36 +0000 | [diff] [blame] | 36 | /********************************************************************* |
| 37 | * WNetAddConnection32 [MPR.50] |
| 38 | */ |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 39 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 40 | UINT WINAPI WNetAddConnectionA(LPCSTR NetPath, LPCSTR PassWord, |
Alexandre Julliard | a845b88 | 1998-06-01 10:44:35 +0000 | [diff] [blame] | 41 | LPCSTR LocalName) |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 42 | { |
| 43 | FIXME(wnet, "('%s', %p, '%s'): stub\n", |
| 44 | NetPath, PassWord, LocalName); |
| 45 | return WN_NO_NETWORK; |
| 46 | } |
| 47 | |
| 48 | /* [MPR.51] */ |
| 49 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 50 | UINT WINAPI WNetAddConnectionW(LPCWSTR NetPath, |
Alexandre Julliard | a845b88 | 1998-06-01 10:44:35 +0000 | [diff] [blame] | 51 | LPCWSTR PassWord, |
| 52 | LPCWSTR LocalName) |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 53 | { |
| 54 | FIXME(wnet, " stub!\n"); |
Alexandre Julliard | 642d313 | 1998-07-12 19:29:36 +0000 | [diff] [blame] | 55 | SetLastError(WN_NO_NETWORK); |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 56 | return WN_NO_NETWORK; |
| 57 | } |
| 58 | |
| 59 | /* **************************************************************** |
| 60 | * WNetAddConnection2_32A [MPR.46] |
| 61 | */ |
| 62 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 63 | UINT WINAPI |
| 64 | WNetAddConnection2A(LPNETRESOURCEA netresource, /* [in] */ |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 65 | LPCSTR password, /* [in] */ |
| 66 | LPCSTR username, /* [in] */ |
| 67 | DWORD flags /* [in] */ ) |
| 68 | { |
| 69 | FIXME(wnet, "(%p,%s,%s,0x%08lx), stub!\n", netresource, |
| 70 | password, username, (unsigned long) flags); |
| 71 | SetLastError(WN_NO_NETWORK); |
| 72 | return WN_NO_NETWORK; |
| 73 | } |
| 74 | |
| 75 | /* **************************************************************** |
| 76 | * WNetAddConnection2W [MPR.47] |
| 77 | */ |
| 78 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 79 | UINT WINAPI |
| 80 | WNetAddConnection2W(LPNETRESOURCEW netresource, /* [in] */ |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 81 | LPCWSTR password, /* [in] */ |
| 82 | LPCWSTR username, /* [in] */ |
| 83 | DWORD flags /* [in] */ ) |
| 84 | { |
| 85 | FIXME(wnet, ", stub!\n"); |
| 86 | SetLastError(WN_NO_NETWORK); |
| 87 | return WN_NO_NETWORK; |
| 88 | } |
| 89 | |
| 90 | /* **************************************************************** |
| 91 | * WNetAddConnection3_32A [MPR.48] |
| 92 | */ |
| 93 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 94 | UINT WINAPI WNetAddConnection3A(HWND owner, |
| 95 | LPNETRESOURCEA netresource, |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 96 | LPCSTR password, |
| 97 | LPCSTR username, |
| 98 | DWORD flags) |
| 99 | { |
| 100 | TRACE(wnet, "owner = 0x%x\n", owner); |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 101 | return WNetAddConnection2A(netresource, |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 102 | password, username, flags); |
| 103 | } |
| 104 | |
| 105 | /* **************************************************************** |
| 106 | * WNetAddConnection3W [MPR.49] |
| 107 | */ |
| 108 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 109 | UINT WINAPI WNetAddConnection3W(HWND owner, |
| 110 | LPNETRESOURCEW netresource, |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 111 | LPCWSTR username, |
| 112 | LPCWSTR password, |
| 113 | DWORD flags) |
| 114 | { |
| 115 | TRACE(wnet,"owner = 0x%x\n", owner); |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 116 | return WNetAddConnection2W(netresource, username, password, |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 117 | flags); |
| 118 | } |
| 119 | |
Alexandre Julliard | 642d313 | 1998-07-12 19:29:36 +0000 | [diff] [blame] | 120 | /******************************************************************* |
| 121 | * WNetConnectionDialog1_32A [MPR.59] |
| 122 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 123 | UINT WINAPI WNetConnectionDialog1A (LPCONNECTDLGSTRUCTA lpConnDlgStruct) |
Alexandre Julliard | 642d313 | 1998-07-12 19:29:36 +0000 | [diff] [blame] | 124 | { FIXME(wnet,"%p stub\n", lpConnDlgStruct); |
| 125 | SetLastError(WN_NO_NETWORK); |
| 126 | return ERROR_NO_NETWORK; |
| 127 | } |
| 128 | /******************************************************************* |
| 129 | * WNetConnectionDialog1_32W [MPR.60] |
| 130 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 131 | UINT WINAPI WNetConnectionDialog1W (LPCONNECTDLGSTRUCTW lpConnDlgStruct) |
Alexandre Julliard | 642d313 | 1998-07-12 19:29:36 +0000 | [diff] [blame] | 132 | { FIXME(wnet,"%p stub\n", lpConnDlgStruct); |
| 133 | SetLastError(WN_NO_NETWORK); |
| 134 | return ERROR_NO_NETWORK; |
| 135 | } |
| 136 | |
| 137 | /******************************************************************* |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 138 | * WNetConnectionDialog_32 [MPR.61] |
Alexandre Julliard | 642d313 | 1998-07-12 19:29:36 +0000 | [diff] [blame] | 139 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 140 | UINT WINAPI WNetConnectionDialog(HWND owner, DWORD flags ) |
Alexandre Julliard | 642d313 | 1998-07-12 19:29:36 +0000 | [diff] [blame] | 141 | { FIXME(wnet,"owner = 0x%x, flags=0x%lx stub\n", owner,flags); |
| 142 | SetLastError(WN_NO_NETWORK); |
| 143 | return ERROR_NO_NETWORK; |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 144 | |
Alexandre Julliard | 642d313 | 1998-07-12 19:29:36 +0000 | [diff] [blame] | 145 | } |
Andreas Mohr | 1f0f482 | 1998-11-07 12:38:07 +0000 | [diff] [blame] | 146 | |
| 147 | /******************************************************************* |
| 148 | * WNetEnumCachedPasswords32 [MPR.61] |
| 149 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 150 | UINT WINAPI WNetEnumCachedPasswords(LPSTR sometext, DWORD count1, |
Andreas Mohr | 1f0f482 | 1998-11-07 12:38:07 +0000 | [diff] [blame] | 151 | DWORD res_nr, DWORD *enumPasswordProc) |
| 152 | { |
| 153 | return ERROR_NO_NETWORK; |
| 154 | } |
| 155 | |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 156 | /******************************************************************** |
| 157 | * WNetCancelConnection [USER.518] undirects a local device |
| 158 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 159 | UINT16 WINAPI WNetCancelConnection16(LPCSTR lpName, BOOL16 bForce) |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 160 | { |
| 161 | FIXME(wnet, "('%s', %04X): stub\n", lpName, bForce); |
| 162 | return WN_NO_NETWORK; |
| 163 | } |
| 164 | |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 165 | |
| 166 | /************************************************************************** |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 167 | * WNetErrorText16 [USER.499] |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 168 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 169 | int WINAPI WNetErrorText16(WORD nError,LPSTR lpszText,WORD cbText) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 170 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 171 | FIXME(wnet, "(%x,%p,%x): stub\n",nError,lpszText,cbText); |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 172 | return FALSE; |
| 173 | } |
| 174 | |
| 175 | /************************************************************************** |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 176 | * WNetOpenJob16 [USER.501] |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 177 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 178 | int WINAPI WNetOpenJob16(LPSTR szQueue,LPSTR szJobTitle,WORD nCopies,LPWORD pfh) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 179 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 180 | FIXME(wnet, "('%s','%s',%x,%p): stub\n", |
| 181 | szQueue,szJobTitle,nCopies,pfh); |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 182 | return WN_NET_ERROR; |
| 183 | } |
| 184 | |
| 185 | /************************************************************************** |
| 186 | * WNetCloseJob [USER.502] |
| 187 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 188 | int WINAPI WNetCloseJob16(WORD fh,LPWORD pidJob,LPSTR szQueue) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 189 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 190 | FIXME(wnet, "(%x,%p,'%s'): stub\n",fh,pidJob,szQueue); |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 191 | return WN_NET_ERROR; |
| 192 | } |
| 193 | |
| 194 | /************************************************************************** |
| 195 | * WNetAbortJob [USER.503] |
| 196 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 197 | int WINAPI WNetAbortJob16(LPSTR szQueue,WORD wJobId) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 198 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 199 | FIXME(wnet, "('%s',%x): stub\n",szQueue,wJobId); |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 200 | return WN_NET_ERROR; |
| 201 | } |
| 202 | |
| 203 | /************************************************************************** |
| 204 | * WNetHoldJob [USER.504] |
| 205 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 206 | int WINAPI WNetHoldJob16(LPSTR szQueue,WORD wJobId) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 207 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 208 | FIXME(wnet, "('%s',%x): stub\n",szQueue,wJobId); |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 209 | return WN_NET_ERROR; |
| 210 | } |
| 211 | |
| 212 | /************************************************************************** |
| 213 | * WNetReleaseJob [USER.505] |
| 214 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 215 | int WINAPI WNetReleaseJob16(LPSTR szQueue,WORD wJobId) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 216 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 217 | FIXME(wnet, "('%s',%x): stub\n",szQueue,wJobId); |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 218 | return WN_NET_ERROR; |
| 219 | } |
| 220 | |
| 221 | /************************************************************************** |
| 222 | * WNetCancelJob [USER.506] |
| 223 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 224 | int WINAPI WNetCancelJob16(LPSTR szQueue,WORD wJobId) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 225 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 226 | FIXME(wnet, "('%s',%x): stub\n",szQueue,wJobId); |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 227 | return WN_NET_ERROR; |
| 228 | } |
| 229 | |
| 230 | /************************************************************************** |
| 231 | * WNetSetJobCopies [USER.507] |
| 232 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 233 | int WINAPI WNetSetJobCopies16(LPSTR szQueue,WORD wJobId,WORD nCopies) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 234 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 235 | FIXME(wnet, "('%s',%x,%x): stub\n",szQueue,wJobId,nCopies); |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 236 | return WN_NET_ERROR; |
| 237 | } |
| 238 | |
| 239 | /************************************************************************** |
| 240 | * WNetWatchQueue [USER.508] |
| 241 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 242 | int WINAPI WNetWatchQueue16(HWND16 hWnd,LPSTR szLocal,LPSTR szUser,WORD nQueue) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 243 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 244 | FIXME(wnet, "(%04x,'%s','%s',%x): stub\n",hWnd,szLocal,szUser,nQueue); |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 245 | return WN_NET_ERROR; |
| 246 | } |
| 247 | |
| 248 | /************************************************************************** |
| 249 | * WNetUnwatchQueue [USER.509] |
| 250 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 251 | int WINAPI WNetUnwatchQueue16(LPSTR szQueue) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 252 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 253 | FIXME(wnet, "('%s'): stub\n", szQueue); |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 254 | return WN_NET_ERROR; |
| 255 | } |
| 256 | |
| 257 | /************************************************************************** |
| 258 | * WNetLockQueueData [USER.510] |
| 259 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 260 | int WINAPI WNetLockQueueData16(LPSTR szQueue,LPSTR szUser,void *lplpQueueStruct) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 261 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 262 | FIXME(wnet, "('%s','%s',%p): stub\n",szQueue,szUser,lplpQueueStruct); |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 263 | return WN_NET_ERROR; |
| 264 | } |
| 265 | |
| 266 | /************************************************************************** |
| 267 | * WNetUnlockQueueData [USER.511] |
| 268 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 269 | int WINAPI WNetUnlockQueueData16(LPSTR szQueue) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 270 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 271 | FIXME(wnet, "('%s'): stub\n",szQueue); |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 272 | return WN_NET_ERROR; |
| 273 | } |
| 274 | |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 275 | |
| 276 | /******************************************************************** |
| 277 | * WNetGetConnection16 [USER.512] reverse-resolves a local device |
| 278 | * |
| 279 | * RETURNS |
| 280 | * - WN_BAD_LOCALNAME lpLocalName makes no sense |
| 281 | * - WN_NOT_CONNECTED drive is a local drive |
| 282 | * - WN_MORE_DATA buffer isn't big enough |
| 283 | * - WN_SUCCESS success (net path in buffer) |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 284 | */ |
Alexandre Julliard | 44ed71f | 1997-12-21 19:17:50 +0000 | [diff] [blame] | 285 | int WINAPI WNetGetConnection16(LPCSTR lpLocalName, |
Alexandre Julliard | 77b9918 | 1997-09-14 17:17:23 +0000 | [diff] [blame] | 286 | LPSTR lpRemoteName, UINT16 *cbRemoteName) |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 287 | { |
Alexandre Julliard | 4f8c37b | 1996-01-14 18:12:01 +0000 | [diff] [blame] | 288 | const char *path; |
Alexandre Julliard | 594997c | 1995-04-30 10:05:20 +0000 | [diff] [blame] | 289 | |
Alexandre Julliard | 4f8c37b | 1996-01-14 18:12:01 +0000 | [diff] [blame] | 290 | if (lpLocalName[1] == ':') |
Alexandre Julliard | 594997c | 1995-04-30 10:05:20 +0000 | [diff] [blame] | 291 | { |
Alexandre Julliard | 4f8c37b | 1996-01-14 18:12:01 +0000 | [diff] [blame] | 292 | int drive = toupper(lpLocalName[0]) - 'A'; |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 293 | switch(DRIVE_GetType(drive)) |
Alexandre Julliard | 594997c | 1995-04-30 10:05:20 +0000 | [diff] [blame] | 294 | { |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 295 | case TYPE_INVALID: |
Alexandre Julliard | 4f8c37b | 1996-01-14 18:12:01 +0000 | [diff] [blame] | 296 | return WN_BAD_LOCALNAME; |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 297 | case TYPE_NETWORK: |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 298 | path = DRIVE_GetLabel(drive); |
| 299 | if (strlen(path) + 1 > *cbRemoteName) |
| 300 | { |
| 301 | *cbRemoteName = strlen(path) + 1; |
| 302 | return WN_MORE_DATA; |
| 303 | } |
Alexandre Julliard | 4f8c37b | 1996-01-14 18:12:01 +0000 | [diff] [blame] | 304 | strcpy( lpRemoteName, path ); |
| 305 | *cbRemoteName = strlen(lpRemoteName) + 1; |
| 306 | return WN_SUCCESS; |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 307 | default: |
| 308 | return WN_BAD_LOCALNAME; |
Alexandre Julliard | 594997c | 1995-04-30 10:05:20 +0000 | [diff] [blame] | 309 | } |
| 310 | } |
Alexandre Julliard | 4f8c37b | 1996-01-14 18:12:01 +0000 | [diff] [blame] | 311 | return WN_BAD_LOCALNAME; |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 312 | } |
| 313 | |
| 314 | /************************************************************************** |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 315 | * WNetGetConnectionA [MPR.70] |
| 316 | */ |
| 317 | DWORD WINAPI |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 318 | WNetGetConnectionA(LPCSTR localname,LPSTR remotename,LPDWORD buflen) |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 319 | { |
| 320 | UINT16 x; |
| 321 | DWORD ret = WNetGetConnection16(localname,remotename,&x); |
| 322 | *buflen = x; |
| 323 | return ret; |
| 324 | } |
| 325 | |
Alexandre Julliard | f90efa9 | 1998-06-14 15:24:15 +0000 | [diff] [blame] | 326 | /************************************************************************** |
| 327 | * WNetGetConnectionW [MPR.72] |
| 328 | */ |
| 329 | DWORD WINAPI |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 330 | WNetGetConnectionW(LPCWSTR localnameW,LPWSTR remotenameW,LPDWORD buflen) |
Alexandre Julliard | f90efa9 | 1998-06-14 15:24:15 +0000 | [diff] [blame] | 331 | { |
| 332 | UINT16 x; |
| 333 | CHAR buf[200]; |
| 334 | LPSTR lnA = HEAP_strdupWtoA(GetProcessHeap(),0,localnameW); |
| 335 | DWORD ret = WNetGetConnection16(lnA,buf,&x); |
| 336 | |
Alexandre Julliard | f90efa9 | 1998-06-14 15:24:15 +0000 | [diff] [blame] | 337 | lstrcpyAtoW(remotenameW,buf); |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 338 | *buflen=lstrlenW(remotenameW); |
Alexandre Julliard | f90efa9 | 1998-06-14 15:24:15 +0000 | [diff] [blame] | 339 | HeapFree(GetProcessHeap(),0,lnA); |
| 340 | return ret; |
| 341 | } |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 342 | |
| 343 | /************************************************************************** |
Alexandre Julliard | 7cc9c0c | 1994-06-15 15:45:11 +0000 | [diff] [blame] | 344 | * WNetGetCaps [USER.513] |
| 345 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 346 | int WINAPI WNetGetCaps16(WORD capability) |
Alexandre Julliard | 7cc9c0c | 1994-06-15 15:45:11 +0000 | [diff] [blame] | 347 | { |
Alexandre Julliard | 60ce85c | 1998-02-01 18:33:27 +0000 | [diff] [blame] | 348 | switch (capability) { |
| 349 | case WNNC_SPEC_VERSION: |
| 350 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 351 | return 0x30a; /* WfW 3.11(and apparently other 3.1x) */ |
Alexandre Julliard | 60ce85c | 1998-02-01 18:33:27 +0000 | [diff] [blame] | 352 | } |
| 353 | case WNNC_NET_TYPE: |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 354 | /* hi byte = network type, |
| 355 | lo byte = network vendor (Netware = 0x03) [15 types] */ |
Alexandre Julliard | 60ce85c | 1998-02-01 18:33:27 +0000 | [diff] [blame] | 356 | return WNNC_NET_MultiNet | WNNC_SUBNET_WinWorkgroups; |
| 357 | |
| 358 | case WNNC_DRIVER_VERSION: |
| 359 | /* driver version of vendor */ |
| 360 | return 0x100; /* WfW 3.11 */ |
| 361 | |
| 362 | case WNNC_USER: |
| 363 | /* 1 = WNetGetUser is supported */ |
| 364 | return 1; |
| 365 | |
| 366 | case WNNC_CONNECTION: |
| 367 | /* returns mask of the supported connection functions */ |
| 368 | return WNNC_CON_AddConnection|WNNC_CON_CancelConnection |
| 369 | |WNNC_CON_GetConnections/*|WNNC_CON_AutoConnect*/ |
| 370 | |WNNC_CON_BrowseDialog|WNNC_CON_RestoreConnection; |
| 371 | |
| 372 | case WNNC_PRINTING: |
| 373 | /* returns mask of the supported printing functions */ |
| 374 | return WNNC_PRT_OpenJob|WNNC_PRT_CloseJob|WNNC_PRT_HoldJob |
| 375 | |WNNC_PRT_ReleaseJob|WNNC_PRT_CancelJob |
| 376 | |WNNC_PRT_SetJobCopies|WNNC_PRT_WatchQueue |
| 377 | |WNNC_PRT_UnwatchQueue|WNNC_PRT_LockQueueData |
| 378 | |WNNC_PRT_UnlockQueueData|WNNC_PRT_AbortJob |
| 379 | |WNNC_PRT_WriteJob; |
| 380 | |
| 381 | case WNNC_DIALOG: |
| 382 | /* returns mask of the supported dialog functions */ |
| 383 | return WNNC_DLG_DeviceMode|WNNC_DLG_BrowseDialog |
| 384 | |WNNC_DLG_ConnectDialog|WNNC_DLG_DisconnectDialog |
| 385 | |WNNC_DLG_ViewQueueDialog|WNNC_DLG_PropertyDialog |
| 386 | |WNNC_DLG_ConnectionDialog |
| 387 | /*|WNNC_DLG_PrinterConnectDialog |
| 388 | |WNNC_DLG_SharesDialog|WNNC_DLG_ShareAsDialog*/; |
| 389 | |
| 390 | case WNNC_ADMIN: |
| 391 | /* returns mask of the supported administration functions */ |
| 392 | /* not sure if long file names is a good idea */ |
| 393 | return WNNC_ADM_GetDirectoryType|WNNC_ADM_DirectoryNotify |
| 394 | |WNNC_ADM_LongNames/*|WNNC_ADM_SetDefaultDrive*/; |
| 395 | |
| 396 | case WNNC_ERROR: |
| 397 | /* returns mask of the supported error functions */ |
| 398 | return WNNC_ERR_GetError|WNNC_ERR_GetErrorText; |
| 399 | |
| 400 | case WNNC_PRINTMGREXT: |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 401 | /* returns the Print Manager version in major and |
| 402 | minor format if Print Manager functions are available */ |
Alexandre Julliard | 60ce85c | 1998-02-01 18:33:27 +0000 | [diff] [blame] | 403 | return 0x30e; /* printman version of WfW 3.11 */ |
| 404 | |
| 405 | case 0xffff: |
| 406 | /* Win 3.11 returns HMODULE of network driver here |
| 407 | FIXME: what should we return ? |
| 408 | logonoff.exe needs it, msmail crashes with wrong value */ |
| 409 | return 0; |
| 410 | |
| 411 | default: |
| 412 | return 0; |
| 413 | } |
Alexandre Julliard | 7cc9c0c | 1994-06-15 15:45:11 +0000 | [diff] [blame] | 414 | } |
| 415 | |
| 416 | /************************************************************************** |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 417 | * WNetDeviceMode [USER.514] |
| 418 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 419 | int WINAPI WNetDeviceMode16(HWND16 hWndOwner) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 420 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 421 | FIXME(wnet, "(%04x): stub\n",hWndOwner); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 422 | return WN_NO_NETWORK; |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 423 | } |
| 424 | |
| 425 | /************************************************************************** |
| 426 | * WNetBrowseDialog [USER.515] |
| 427 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 428 | int WINAPI WNetBrowseDialog16(HWND16 hParent,WORD nType,LPSTR szPath) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 429 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 430 | FIXME(wnet, "(%04x,%x,'%s'): stub\n",hParent,nType,szPath); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 431 | return WN_NO_NETWORK; |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 432 | } |
| 433 | |
| 434 | /************************************************************************** |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 435 | * WNetGetUser [USER.516] |
| 436 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 437 | UINT16 WINAPI WNetGetUser16(LPSTR lpLocalName, LPSTR lpUserName, DWORD *lpSize) |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 438 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 439 | FIXME(wnet, "(%p, %p, %p): stub\n", lpLocalName, lpUserName, lpSize); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 440 | return WN_NO_NETWORK; |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 441 | } |
| 442 | |
| 443 | /************************************************************************** |
Alexandre Julliard | 85ed45e | 1998-08-22 19:03:56 +0000 | [diff] [blame] | 444 | * WNetGetUser [MPR.86] |
| 445 | * FIXME: we should not return ourselves, but the owner of the drive lpLocalName |
| 446 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 447 | DWORD WINAPI WNetGetUserA(LPCSTR lpLocalName, LPSTR lpUserName, DWORD *lpSize) |
Alexandre Julliard | 85ed45e | 1998-08-22 19:03:56 +0000 | [diff] [blame] | 448 | { |
| 449 | struct passwd *pwd = getpwuid(getuid()); |
| 450 | |
| 451 | FIXME(wnet, "(%s, %p, %p), mostly stub\n", lpLocalName, lpUserName, lpSize); |
| 452 | if (pwd) { |
| 453 | if (strlen(pwd->pw_name)+1>*lpSize) { |
| 454 | *lpSize = strlen(pwd->pw_name)+1; |
| 455 | SetLastError(ERROR_MORE_DATA); |
| 456 | return ERROR_MORE_DATA; |
| 457 | } |
| 458 | strcpy(lpUserName,pwd->pw_name); |
| 459 | if (lpSize) |
| 460 | *lpSize = strlen(pwd->pw_name)+1; |
| 461 | return WN_SUCCESS; |
| 462 | } |
| 463 | /* FIXME: wrong return value */ |
| 464 | SetLastError(ERROR_NO_NETWORK); |
| 465 | return ERROR_NO_NETWORK; |
| 466 | } |
| 467 | |
| 468 | /************************************************************************** |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 469 | * WNetGetError [USER.519] |
| 470 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 471 | int WINAPI WNetGetError16(LPWORD nError) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 472 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 473 | FIXME(wnet, "(%p): stub\n",nError); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 474 | return WN_NO_NETWORK; |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 475 | } |
| 476 | |
| 477 | /************************************************************************** |
| 478 | * WNetGetErrorText [USER.520] |
| 479 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 480 | int WINAPI WNetGetErrorText16(WORD nError, LPSTR lpBuffer, LPWORD nBufferSize) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 481 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 482 | FIXME(wnet, "(%x,%p,%p): stub\n",nError,lpBuffer,nBufferSize); |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 483 | return WN_NET_ERROR; |
| 484 | } |
| 485 | |
| 486 | /************************************************************************** |
| 487 | * WNetRestoreConnection [USER.523] |
| 488 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 489 | int WINAPI WNetRestoreConnection16(HWND16 hwndOwner,LPSTR lpszDevice) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 490 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 491 | FIXME(wnet, "(%04x,'%s'): stub\n",hwndOwner,lpszDevice); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 492 | return WN_NO_NETWORK; |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 493 | } |
| 494 | |
| 495 | /************************************************************************** |
| 496 | * WNetWriteJob [USER.524] |
| 497 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 498 | int WINAPI WNetWriteJob16(HANDLE16 hJob,void *lpData,LPWORD lpcbData) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 499 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 500 | FIXME(wnet, "(%04x,%p,%p): stub\n",hJob,lpData,lpcbData); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 501 | return WN_NO_NETWORK; |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 502 | } |
| 503 | |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 504 | /******************************************************************** |
| 505 | * WNetConnectDialog [USER.525] |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 506 | */ |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 507 | UINT16 WINAPI WNetConnectDialog(HWND16 hWndParent, WORD iType) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 508 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 509 | FIXME(wnet, "(%04x, %4X): stub\n", hWndParent, iType); |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 510 | return WN_SUCCESS; |
| 511 | } |
| 512 | |
| 513 | /************************************************************************** |
| 514 | * WNetDisconnectDialog [USER.526] |
| 515 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 516 | int WINAPI WNetDisconnectDialog16(HWND16 hwndOwner, WORD iType) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 517 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 518 | FIXME(wnet, "(%04x,%x): stub\n",hwndOwner,iType); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 519 | return WN_NO_NETWORK; |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 520 | } |
| 521 | |
| 522 | /************************************************************************** |
| 523 | * WnetConnectionDialog [USER.527] |
| 524 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 525 | UINT16 WINAPI WNetConnectionDialog16(HWND16 hWndParent, WORD iType) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 526 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 527 | FIXME(wnet, "(%04x, %4X): stub\n", hWndParent, iType); |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 528 | return WN_SUCCESS; |
| 529 | } |
| 530 | |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 531 | |
| 532 | |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 533 | /************************************************************************** |
| 534 | * WNetViewQueueDialog [USER.528] |
| 535 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 536 | int WINAPI WNetViewQueueDialog16(HWND16 hwndOwner,LPSTR lpszQueue) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 537 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 538 | FIXME(wnet, "(%04x,'%s'): stub\n",hwndOwner,lpszQueue); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 539 | return WN_NO_NETWORK; |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 540 | } |
| 541 | |
| 542 | /************************************************************************** |
| 543 | * WNetPropertyDialog [USER.529] |
| 544 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 545 | int WINAPI WNetPropertyDialog16(HWND16 hwndParent,WORD iButton, |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 546 | WORD nPropSel,LPSTR lpszName,WORD nType) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 547 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 548 | FIXME(wnet, "(%04x,%x,%x,'%s',%x): stub\n", |
| 549 | hwndParent,iButton,nPropSel,lpszName,nType); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 550 | return WN_NO_NETWORK; |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 551 | } |
| 552 | |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 553 | /********************************************************************* |
| 554 | * WNetGetDirectoryType [USER.530] Decides whether resource is local |
| 555 | * |
| 556 | * RETURNS |
| 557 | * on success, puts one of the following in *lpType: |
| 558 | * - WNDT_NETWORK on a network |
| 559 | * - WNDT_LOCAL local |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 560 | */ |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 561 | int WINAPI WNetGetDirectoryType16(LPSTR lpName, LPINT16 lpType) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 562 | { |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 563 | UINT type = GetDriveTypeA(lpName); |
Alexandre Julliard | dadf78f | 1998-05-17 17:13:43 +0000 | [diff] [blame] | 564 | |
| 565 | if (type == DRIVE_DOESNOTEXIST) |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 566 | type = GetDriveTypeA(NULL); |
Alexandre Julliard | dadf78f | 1998-05-17 17:13:43 +0000 | [diff] [blame] | 567 | *lpType = (type==DRIVE_REMOTE)?WNDT_NETWORK:WNDT_NORMAL; |
| 568 | TRACE(wnet,"%s is %s\n",lpName,(*lpType==WNDT_NETWORK)? |
| 569 | "WNDT_NETWORK":"WNDT_NORMAL"); |
| 570 | return WN_SUCCESS; |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 571 | } |
| 572 | |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 573 | /***************************************************************** |
| 574 | * WNetGetDirectoryTypeA [MPR.109] |
| 575 | */ |
| 576 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 577 | UINT WINAPI WNetGetDirectoryTypeA(LPSTR lpName,void *lpType) |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 578 | { |
| 579 | return WNetGetDirectoryType16(lpName, lpType); |
| 580 | } |
| 581 | |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 582 | /************************************************************************** |
| 583 | * WNetDirectoryNotify [USER.531] |
| 584 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 585 | int WINAPI WNetDirectoryNotify16(HWND16 hwndOwner,void *lpDir,WORD wOper) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 586 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 587 | FIXME(wnet, "(%04x,%p,%x): stub\n",hwndOwner,lpDir,wOper); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 588 | return WN_NO_NETWORK; |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 589 | } |
| 590 | |
| 591 | /************************************************************************** |
| 592 | * WNetGetPropertyText [USER.532] |
| 593 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 594 | int WINAPI WNetGetPropertyText16(WORD iButton, WORD nPropSel, LPSTR lpszName, |
Alexandre Julliard | f90efa9 | 1998-06-14 15:24:15 +0000 | [diff] [blame] | 595 | LPSTR lpszButtonName, WORD cbButtonName, WORD nType) |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 596 | { |
Alexandre Julliard | f90efa9 | 1998-06-14 15:24:15 +0000 | [diff] [blame] | 597 | FIXME(wnet, "(%04x,%04x,'%s','%s',%04x): stub\n", |
| 598 | iButton,nPropSel,lpszName,lpszButtonName, nType); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 599 | return WN_NO_NETWORK; |
Alexandre Julliard | fa68b75 | 1995-04-03 16:55:37 +0000 | [diff] [blame] | 600 | } |
| 601 | |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 602 | |
| 603 | /************************************************************************** |
| 604 | * WNetCloseEnum [USER.???] |
| 605 | */ |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 606 | UINT16 WINAPI WNetCloseEnum(HANDLE16 hEnum) |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 607 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 608 | FIXME(wnet, "(%04x): stub\n", hEnum); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 609 | return WN_NO_NETWORK; |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 610 | } |
| 611 | |
| 612 | /************************************************************************** |
| 613 | * WNetEnumResource [USER.???] |
| 614 | */ |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 615 | UINT16 WINAPI WNetEnumResource(HANDLE16 hEnum, DWORD cRequ, |
| 616 | DWORD *lpCount, LPVOID lpBuf) |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 617 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 618 | FIXME(wnet, "(%04x, %08lX, %p, %p): stub\n", |
| 619 | hEnum, cRequ, lpCount, lpBuf); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 620 | return WN_NO_NETWORK; |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 621 | } |
| 622 | |
| 623 | /************************************************************************** |
| 624 | * WNetOpenEnum [USER.???] |
| 625 | */ |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 626 | UINT16 WINAPI WNetOpenEnum16(DWORD dwScope, DWORD dwType, |
| 627 | LPNETRESOURCE16 lpNet, HANDLE16 *lphEnum) |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 628 | { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 629 | FIXME(wnet, "(%08lX, %08lX, %p, %p): stub\n", |
| 630 | dwScope, dwType, lpNet, lphEnum); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 631 | return WN_NO_NETWORK; |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 632 | } |
| 633 | |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 634 | /************************************************************************** |
| 635 | * WNetOpenEnumA [MPR.92] |
| 636 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 637 | UINT WINAPI WNetOpenEnumA(DWORD dwScope, DWORD dwType, DWORD dwUsage, |
| 638 | LPNETRESOURCEA lpNet, HANDLE *lphEnum) |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 639 | { |
Alexandre Julliard | a845b88 | 1998-06-01 10:44:35 +0000 | [diff] [blame] | 640 | FIXME(wnet, "(%08lX, %08lX, %08lX, %p, %p): stub\n", |
| 641 | dwScope, dwType, dwUsage, lpNet, lphEnum); |
Alexandre Julliard | 642d313 | 1998-07-12 19:29:36 +0000 | [diff] [blame] | 642 | SetLastError(WN_NO_NETWORK); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 643 | return WN_NO_NETWORK; |
| 644 | } |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 645 | |
Gael de Chalendar | 49e2773 | 1998-12-07 12:15:34 +0000 | [diff] [blame] | 646 | /************************************************************************** |
| 647 | * WNetOpenEnumW [MPR.93] |
| 648 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 649 | UINT WINAPI WNetOpenEnumW(DWORD dwScope, DWORD dwType, DWORD dwUsage, |
| 650 | LPNETRESOURCEA lpNet, HANDLE *lphEnum) |
Gael de Chalendar | 49e2773 | 1998-12-07 12:15:34 +0000 | [diff] [blame] | 651 | { |
| 652 | FIXME(wnet, "(%08lX, %08lX, %08lX, %p, %p): stub\n", |
| 653 | dwScope, dwType, dwUsage, lpNet, lphEnum); |
| 654 | SetLastError(WN_NO_NETWORK); |
| 655 | return WN_NO_NETWORK; |
| 656 | } |
| 657 | |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 658 | /* **************************************************************** |
| 659 | * WNetGetResourceInformationA [MPR.80] |
| 660 | * */ |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 661 | |
| 662 | DWORD WINAPI |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 663 | WNetGetResourceInformationA( |
| 664 | LPNETRESOURCEA netres,LPVOID buf,LPDWORD buflen,LPSTR systemstr |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 665 | ) { |
Alexandre Julliard | 54c2711 | 1998-03-29 19:44:57 +0000 | [diff] [blame] | 666 | FIXME(wnet,"(%p,%p,%p,%p): stub!\n",netres,buf,buflen,systemstr); |
Alexandre Julliard | 642d313 | 1998-07-12 19:29:36 +0000 | [diff] [blame] | 667 | SetLastError(WN_NO_NETWORK); |
Alexandre Julliard | e658d82 | 1997-11-30 17:45:40 +0000 | [diff] [blame] | 668 | return WN_NO_NETWORK; |
| 669 | } |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 670 | |
| 671 | /************************************************************************** |
| 672 | * WNetCachePassword [MPR.52] Saves password in cache |
| 673 | * |
| 674 | * RETURNS |
| 675 | * Success: WN_SUCCESS |
| 676 | * Failure: WNACCESS_DENIED, WN_BAD_PASSWORD, WN_BADVALUE, WN_NET_ERROR, |
| 677 | * WN_NOT_SUPPORTED, WN_OUT_OF_MEMORY |
| 678 | */ |
| 679 | DWORD WINAPI WNetCachePassword( |
| 680 | LPSTR pbResource, /* [in] Name of workgroup, computer, or resource */ |
| 681 | WORD cbResource, /* [in] Size of name */ |
| 682 | LPSTR pbPassword, /* [in] Buffer containing password */ |
| 683 | WORD cbPassword, /* [in] Size of password */ |
| 684 | BYTE nType) /* [in] Type of password to cache */ |
| 685 | { |
| 686 | FIXME(mpr,"(%s,%d,%s,%d,%d): stub\n", pbResource,cbResource, |
| 687 | pbPassword,cbPassword,nType); |
| 688 | return WN_SUCCESS; |
| 689 | } |
| 690 | |
| 691 | |
| 692 | |
| 693 | /***************************************************************** |
| 694 | * WNetGetCachedPassword [MPR.69] Retrieves password from cache |
| 695 | * |
| 696 | * RETURNS |
| 697 | * Success: WN_SUCCESS |
| 698 | * Failure: WNACCESS_DENIED, WN_BAD_PASSWORD, WN_BAD_VALUE, |
| 699 | * WN_NET_ERROR, WN_NOT_SUPPORTED, WN_OUT_OF_MEMORY |
| 700 | */ |
| 701 | DWORD WINAPI WNetGetCachedPassword( |
| 702 | LPSTR pbResource, /* [in] Name of workgroup, computer, or resource */ |
| 703 | WORD cbResource, /* [in] Size of name */ |
| 704 | LPSTR pbPassword, /* [out] Buffer to receive password */ |
| 705 | LPWORD pcbPassword, /* [out] Receives size of password */ |
| 706 | BYTE nType) /* [in] Type of password to retrieve */ |
| 707 | { |
| 708 | FIXME(mpr,"(%s,%d,%p,%d,%d): stub\n", |
| 709 | pbResource,cbResource,pbPassword,*pcbPassword,nType); |
| 710 | return WN_ACCESS_DENIED; |
| 711 | } |
| 712 | |
Alexandre Julliard | a845b88 | 1998-06-01 10:44:35 +0000 | [diff] [blame] | 713 | /***************************************************************** |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 714 | * MultinetGetConnectionPerformanceA [MPR.25] |
| 715 | * |
| 716 | * RETURNS |
| 717 | * Success: NO_ERROR |
| 718 | * Failure: ERROR_NOT_SUPPORTED, ERROR_NOT_CONNECTED, |
| 719 | * ERROR_NO_NET_OR_BAD_PATH, ERROR_BAD_DEVICE, |
| 720 | * ERROR_BAD_NET_NAME, ERROR_INVALID_PARAMETER, |
| 721 | * ERROR_NO_NETWORK, ERROR_EXTENDED_ERROR |
| 722 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 723 | DWORD WINAPI MultinetGetConnectionPerformanceA( |
| 724 | LPNETRESOURCEA lpNetResource, |
Alexandre Julliard | 46ea8b3 | 1998-05-03 19:01:20 +0000 | [diff] [blame] | 725 | LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct |
| 726 | ) { |
| 727 | FIXME(mpr,"(%p,%p): stub\n",lpNetResource,lpNetConnectInfoStruct); |
Alexandre Julliard | a845b88 | 1998-06-01 10:44:35 +0000 | [diff] [blame] | 728 | return WN_NO_NETWORK; |
| 729 | } |
| 730 | |
| 731 | |
| 732 | /***************************************************************** |
| 733 | * [MPR.22] |
| 734 | */ |
| 735 | |
| 736 | DWORD WINAPI _MPR_22(DWORD x) |
| 737 | { |
| 738 | FIXME(mpr,"(%lx): stub\n",x); |
| 739 | return 0; |
| 740 | } |
| 741 | |
| 742 | /***************************************************************** |
Alexandre Julliard | 642d313 | 1998-07-12 19:29:36 +0000 | [diff] [blame] | 743 | * MultinetGetErrorTextA [MPR.28] |
| 744 | */ |
Alexandre Julliard | a845b88 | 1998-06-01 10:44:35 +0000 | [diff] [blame] | 745 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 746 | UINT WINAPI MultinetGetErrorTextA (DWORD x, DWORD y, DWORD z) |
Alexandre Julliard | 642d313 | 1998-07-12 19:29:36 +0000 | [diff] [blame] | 747 | { FIXME(mpr,"(%lx,%lx,%lx): stub\n",x,y,z); |
| 748 | return 0; |
| 749 | } |
Marcus Meissner | c0fbd7e | 1998-12-07 16:03:04 +0000 | [diff] [blame] | 750 | |
Alexandre Julliard | 642d313 | 1998-07-12 19:29:36 +0000 | [diff] [blame] | 751 | /***************************************************************** |
| 752 | * MultinetGetErrorTextW [MPR.29] |
| 753 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 754 | UINT WINAPI MultinetGetErrorTextW (DWORD x, DWORD y, DWORD z) |
Alexandre Julliard | 642d313 | 1998-07-12 19:29:36 +0000 | [diff] [blame] | 755 | { FIXME(mpr,"(%lx,%lx,%lx): stub\n",x,y,z); |
| 756 | return 0; |
| 757 | } |
Marcus Meissner | c0fbd7e | 1998-12-07 16:03:04 +0000 | [diff] [blame] | 758 | |
| 759 | /***************************************************************** |
| 760 | * NPSGetProviderHandle [MPR.33] |
| 761 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 762 | DWORD WINAPI NPSGetProviderHandleA(DWORD x) { |
Marcus Meissner | c0fbd7e | 1998-12-07 16:03:04 +0000 | [diff] [blame] | 763 | FIXME(mpr,"(0x%08lx),stub!\n",x); |
| 764 | return 0; |
| 765 | } |
Alexandre Julliard | 0c0e3be | 1998-12-10 15:49:22 +0000 | [diff] [blame] | 766 | |
| 767 | /***************************************************************** |
| 768 | * WNetCancelConnection232A [MPR.53] |
| 769 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 770 | DWORD WINAPI WNetCancelConnection2A( |
Alexandre Julliard | 0c0e3be | 1998-12-10 15:49:22 +0000 | [diff] [blame] | 771 | LPCSTR lpName, |
| 772 | DWORD dwFlags, |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 773 | BOOL fForce) { |
Alexandre Julliard | 0c0e3be | 1998-12-10 15:49:22 +0000 | [diff] [blame] | 774 | |
| 775 | FIXME(wnet,": stub\n"); |
| 776 | return WN_SUCCESS; |
| 777 | } |
| 778 | |
| 779 | /***************************************************************** |
| 780 | * WNetCancelConnection232W [MPR.54] |
| 781 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 782 | DWORD WINAPI WNetCancelConnection2W( |
Alexandre Julliard | 0c0e3be | 1998-12-10 15:49:22 +0000 | [diff] [blame] | 783 | LPCWSTR lpName, |
| 784 | DWORD dwFlags, |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 785 | BOOL fForce) { |
Alexandre Julliard | 0c0e3be | 1998-12-10 15:49:22 +0000 | [diff] [blame] | 786 | |
| 787 | FIXME(wnet,": stub\n"); |
| 788 | return WN_SUCCESS; |
| 789 | } |
| 790 | |
| 791 | /***************************************************************** |
| 792 | * WNetCancelConnection32A [MPR.55] |
| 793 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 794 | DWORD WINAPI WNetCancelConnectionA( |
Alexandre Julliard | 0c0e3be | 1998-12-10 15:49:22 +0000 | [diff] [blame] | 795 | LPCSTR lpName, |
| 796 | DWORD dwFlags, |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 797 | BOOL fForce) { |
Alexandre Julliard | 0c0e3be | 1998-12-10 15:49:22 +0000 | [diff] [blame] | 798 | |
| 799 | FIXME(wnet,": stub\n"); |
| 800 | return WN_SUCCESS; |
| 801 | } |
| 802 | |
| 803 | /***************************************************************** |
| 804 | * WNetCancelConnection32W [MPR.56] |
| 805 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 806 | DWORD WINAPI WNetCancelConnectionW( |
Alexandre Julliard | 0c0e3be | 1998-12-10 15:49:22 +0000 | [diff] [blame] | 807 | LPCWSTR lpName, |
| 808 | DWORD dwFlags, |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 809 | BOOL fForce) { |
Alexandre Julliard | 0c0e3be | 1998-12-10 15:49:22 +0000 | [diff] [blame] | 810 | |
| 811 | FIXME(wnet,": stub\n"); |
| 812 | return WN_SUCCESS; |
| 813 | } |
| 814 | |
| 815 | /***************************************************************** |
| 816 | * WNetGetUser32W [MPR.87] |
| 817 | */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 818 | DWORD WINAPI WNetGetUserW( |
Alexandre Julliard | 0c0e3be | 1998-12-10 15:49:22 +0000 | [diff] [blame] | 819 | LPCWSTR lpName, |
| 820 | LPWSTR lpUserName, |
| 821 | LPDWORD lpnLength) { |
| 822 | |
| 823 | FIXME(wnet,": stub\n"); |
| 824 | SetLastError(WN_NO_NETWORK); |
| 825 | return WN_NO_NETWORK; |
| 826 | } |