blob: 06fc9ebf818202966ba37a1d1668fed0fafcb9e8 [file] [log] [blame]
Alexandre Julliard58199531994-04-21 01:20:00 +00001/*
Ulrich Weigandbb1984e1999-08-07 14:32:33 +00002 * USER Windows Network functions
Alexandre Julliard58199531994-04-21 01:20:00 +00003 */
4
Alexandre Julliard594997c1995-04-30 10:05:20 +00005#include <ctype.h>
David Luyeree517e81999-02-28 12:27:56 +00006#include <string.h>
Alexandre Julliard85ed45e1998-08-22 19:03:56 +00007#include <sys/types.h>
8#include <pwd.h>
9#include <unistd.h>
Alexandre Julliard58199531994-04-21 01:20:00 +000010
Ulrich Weigandbb1984e1999-08-07 14:32:33 +000011#include "winbase.h"
12#include "wine/winnet16.h"
Marcus Meissner04c3e1d1999-02-19 10:37:02 +000013#include "winnetwk.h"
Alexandre Julliard06c275a1999-05-02 14:32:27 +000014#include "debugtools.h"
Alexandre Julliard642d3131998-07-12 19:29:36 +000015#include "heap.h"
Alexandre Julliard46ea8b31998-05-03 19:01:20 +000016
Dimitrie O. Paun529da542000-11-27 23:54:25 +000017DEFAULT_DEBUG_CHANNEL(wnet);
Ulrich Weigandbb1984e1999-08-07 14:32:33 +000018
19/*
20 * Remote printing
21 */
22
23/**************************************************************************
24 * WNetOpenJob16 [USER.501]
25 */
26WORD WINAPI WNetOpenJob16( LPSTR szQueue, LPSTR szJobTitle, WORD nCopies, LPINT16 pfh )
27{
28 FIXME( "(%s, %s, %d, %p): stub\n",
29 debugstr_a(szQueue), debugstr_a(szJobTitle), nCopies, pfh );
30 return WN16_NET_ERROR;
31}
32
33/**************************************************************************
34 * WNetCloseJob16 [USER.502]
35 */
36WORD WINAPI WNetCloseJob16( WORD fh, LPINT16 pidJob, LPSTR szQueue )
37{
38 FIXME( "(%d, %p, %s): stub\n", fh, pidJob, debugstr_a(szQueue) );
39 return WN16_NET_ERROR;
40}
41
42/**************************************************************************
43 * WNetWriteJob16 [USER.524]
44 */
45WORD WINAPI WNetWriteJob16( HANDLE16 hJob, LPSTR lpData, LPINT16 lpcbData )
46{
47 FIXME( "(%04x, %p, %p): stub\n", hJob, lpData, lpcbData );
48 return WN16_NET_ERROR;
49}
50
51/**************************************************************************
52 * WNetAbortJob16 [USER.503]
53 */
54WORD WINAPI WNetAbortJob16( LPSTR szQueue, WORD wJobId )
55{
56 FIXME( "(%s, %d): stub\n", debugstr_a(szQueue), wJobId );
57 return WN16_NET_ERROR;
58}
59
60/**************************************************************************
61 * WNetHoldJob16 [USER.504]
62 */
63WORD WINAPI WNetHoldJob16( LPSTR szQueue, WORD wJobId )
64{
65 FIXME( "(%s, %d): stub\n", debugstr_a(szQueue), wJobId );
66 return WN16_NET_ERROR;
67}
68
69/**************************************************************************
70 * WNetReleaseJob16 [USER.505]
71 */
72WORD WINAPI WNetReleaseJob16( LPSTR szQueue, WORD wJobId )
73{
74 FIXME( "(%s, %d): stub\n", debugstr_a(szQueue), wJobId );
75 return WN16_NET_ERROR;
76}
77
78/**************************************************************************
79 * WNetCancelJob16 [USER.506]
80 */
81WORD WINAPI WNetCancelJob16( LPSTR szQueue, WORD wJobId )
82{
83 FIXME( "(%s, %d): stub\n", debugstr_a(szQueue), wJobId );
84 return WN16_NET_ERROR;
85}
86
87/**************************************************************************
88 * WNetSetJobCopies16 [USER.507]
89 */
90WORD WINAPI WNetSetJobCopies16( LPSTR szQueue, WORD wJobId, WORD nCopies )
91{
92 FIXME( "(%s, %d, %d): stub\n", debugstr_a(szQueue), wJobId, nCopies );
93 return WN16_NET_ERROR;
94}
95
96/**************************************************************************
97 * WNetWatchQueue16 [USER.508]
98 */
99WORD WINAPI WNetWatchQueue16( HWND16 hWnd, LPSTR szLocal, LPSTR szUser, WORD nQueue )
100{
101 FIXME( "(%04x, %s, %s, %d): stub\n",
102 hWnd, debugstr_a(szLocal), debugstr_a(szUser), nQueue );
103 return WN16_NET_ERROR;
104}
105
106/**************************************************************************
107 * WNetUnwatchQueue16 [USER.509]
108 */
109WORD WINAPI WNetUnwatchQueue16( LPSTR szQueue )
110{
111 FIXME( "(%s): stub\n", debugstr_a(szQueue) );
112 return WN16_NET_ERROR;
113}
114
115/**************************************************************************
116 * WNetLockQueueData16 [USER.510]
117 */
118WORD WINAPI WNetLockQueueData16( LPSTR szQueue, LPSTR szUser,
119 LPQUEUESTRUCT16 *lplpQueueStruct )
120{
121 FIXME( "(%s, %s, %p): stub\n",
122 debugstr_a(szQueue), debugstr_a(szUser), lplpQueueStruct );
123 return WN16_NET_ERROR;
124}
125
126/**************************************************************************
127 * WNetUnlockQueueData16 [USER.511]
128 */
129WORD WINAPI WNetUnlockQueueData16( LPSTR szQueue )
130{
131 FIXME( "(%s): stub\n", debugstr_a(szQueue) );
132 return WN16_NET_ERROR;
133}
134
135
136/*
137 * Connections
138 */
Patrik Stridvallb4b9fae1999-04-19 14:56:29 +0000139
Alexandre Julliard46ea8b31998-05-03 19:01:20 +0000140/********************************************************************
141 * WNetAddConnection16 [USER.517] Directs a local device to net
142 *
143 * Redirects a local device (either a disk drive or printer port)
144 * to a shared device on a remote server.
145 */
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000146WORD WINAPI WNetAddConnection16( LPSTR lpNetPath, LPSTR lpPassWord,
147 LPSTR lpLocalName )
Alexandre Julliard46ea8b31998-05-03 19:01:20 +0000148{
Alexandre Julliardebc32252000-03-17 15:09:48 +0000149 FIXME( "(%s, %p, %s): stub\n",
150 debugstr_a(lpNetPath), lpPassWord, debugstr_a(lpLocalName) );
151 return WN16_NET_ERROR;
Andreas Mohr1f0f4821998-11-07 12:38:07 +0000152}
153
Alexandre Julliard46ea8b31998-05-03 19:01:20 +0000154/********************************************************************
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000155 * WNetCancelConnection16 [USER.518] undirects a local device
Alexandre Julliard46ea8b31998-05-03 19:01:20 +0000156 */
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000157WORD WINAPI WNetCancelConnection16( LPSTR lpName, BOOL16 bForce )
Alexandre Julliard46ea8b31998-05-03 19:01:20 +0000158{
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000159 FIXME( "(%s, %04X): stub\n", debugstr_a(lpName), bForce);
160 return WN16_NOT_SUPPORTED;
Alexandre Julliard46ea8b31998-05-03 19:01:20 +0000161}
162
Alexandre Julliard46ea8b31998-05-03 19:01:20 +0000163/********************************************************************
164 * WNetGetConnection16 [USER.512] reverse-resolves a local device
Alexandre Julliard58199531994-04-21 01:20:00 +0000165 */
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000166WORD WINAPI WNetGetConnection16( LPSTR lpLocalName,
167 LPSTR lpRemoteName, UINT16 *cbRemoteName )
Alexandre Julliard58199531994-04-21 01:20:00 +0000168{
Alexandre Julliardbf672592000-12-12 00:44:42 +0000169 char label[32];
Alexandre Julliardebc32252000-03-17 15:09:48 +0000170
171 TRACE( "local %s\n", lpLocalName );
Alexandre Julliardbf672592000-12-12 00:44:42 +0000172 switch(GetDriveTypeA(lpLocalName))
Alexandre Julliardebc32252000-03-17 15:09:48 +0000173 {
Alexandre Julliardbf672592000-12-12 00:44:42 +0000174 case DRIVE_REMOTE:
175 GetVolumeInformationA( lpLocalName, label, sizeof(label), NULL, NULL, NULL, NULL, 0 );
176 if (strlen(label) + 1 > *cbRemoteName)
Alexandre Julliardebc32252000-03-17 15:09:48 +0000177 {
Alexandre Julliardbf672592000-12-12 00:44:42 +0000178 *cbRemoteName = strlen(label) + 1;
179 return WN16_MORE_DATA;
Alexandre Julliardebc32252000-03-17 15:09:48 +0000180 }
Alexandre Julliardbf672592000-12-12 00:44:42 +0000181 strcpy( lpRemoteName, label );
182 *cbRemoteName = strlen(lpRemoteName) + 1;
183 return WN16_SUCCESS;
184 case DRIVE_REMOVABLE:
185 case DRIVE_FIXED:
186 case DRIVE_CDROM:
187 TRACE("file is local\n");
188 return WN16_NOT_CONNECTED;
189 default:
190 return WN16_BAD_LOCALNAME;
Alexandre Julliardebc32252000-03-17 15:09:48 +0000191 }
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000192}
Alexandre Julliard594997c1995-04-30 10:05:20 +0000193
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000194/**************************************************************************
195 * WNetRestoreConnection16 [USER.523]
196 */
197WORD WINAPI WNetRestoreConnection16( HWND16 hwndOwner, LPSTR lpszDevice )
198{
199 FIXME( "(%04x, %s): stub\n", hwndOwner, debugstr_a(lpszDevice) );
200 return WN16_NOT_SUPPORTED;
201}
202
203
204/*
205 * Capabilities
206 */
207
208/**************************************************************************
209 * WNetGetCaps16 [USER.513]
210 */
211WORD WINAPI WNetGetCaps16( WORD capability )
212{
213 switch (capability)
Alexandre Julliard594997c1995-04-30 10:05:20 +0000214 {
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000215 case WNNC16_SPEC_VERSION:
216 return 0x30a; /* WfW 3.11 (and apparently other 3.1x) */
217
218 case WNNC16_NET_TYPE:
219 /* hi byte = network type,
220 lo byte = network vendor (Netware = 0x03) [15 types] */
221 return WNNC16_NET_MultiNet | WNNC16_SUBNET_WinWorkgroups;
222
223 case WNNC16_DRIVER_VERSION:
224 /* driver version of vendor */
225 return 0x100; /* WfW 3.11 */
226
227 case WNNC16_USER:
228 /* 1 = WNetGetUser is supported */
229 return 1;
230
231 case WNNC16_CONNECTION:
232 /* returns mask of the supported connection functions */
233 return WNNC16_CON_AddConnection | WNNC16_CON_CancelConnection
234 | WNNC16_CON_GetConnections /* | WNNC16_CON_AutoConnect */
235 | WNNC16_CON_BrowseDialog | WNNC16_CON_RestoreConnection;
236
237 case WNNC16_PRINTING:
238 /* returns mask of the supported printing functions */
239 return WNNC16_PRT_OpenJob | WNNC16_PRT_CloseJob | WNNC16_PRT_HoldJob
240 | WNNC16_PRT_ReleaseJob | WNNC16_PRT_CancelJob
241 | WNNC16_PRT_SetJobCopies | WNNC16_PRT_WatchQueue
242 | WNNC16_PRT_UnwatchQueue | WNNC16_PRT_LockQueueData
243 | WNNC16_PRT_UnlockQueueData | WNNC16_PRT_AbortJob
244 | WNNC16_PRT_WriteJob;
245
246 case WNNC16_DIALOG:
247 /* returns mask of the supported dialog functions */
248 return WNNC16_DLG_DeviceMode | WNNC16_DLG_BrowseDialog
249 | WNNC16_DLG_ConnectDialog | WNNC16_DLG_DisconnectDialog
250 | WNNC16_DLG_ViewQueueDialog | WNNC16_DLG_PropertyDialog
251 | WNNC16_DLG_ConnectionDialog
252 /* | WNNC16_DLG_PrinterConnectDialog
253 | WNNC16_DLG_SharesDialog | WNNC16_DLG_ShareAsDialog */;
254
255 case WNNC16_ADMIN:
256 /* returns mask of the supported administration functions */
257 /* not sure if long file names is a good idea */
258 return WNNC16_ADM_GetDirectoryType
259 /* | WNNC16_ADM_DirectoryNotify */ /*not yet supported*/
260 | WNNC16_ADM_LongNames /* | WNNC16_ADM_SetDefaultDrive */;
261
262 case WNNC16_ERROR:
263 /* returns mask of the supported error functions */
264 return WNNC16_ERR_GetError | WNNC16_ERR_GetErrorText;
265
266 case WNNC16_PRINTMGREXT:
267 /* returns the Print Manager version in major and
268 minor format if Print Manager functions are available */
269 return 0x30e; /* printman version of WfW 3.11 */
270
271 case 0xffff:
272 /* Win 3.11 returns HMODULE of network driver here
273 FIXME: what should we return ?
274 logonoff.exe needs it, msmail crashes with wrong value */
275 return 0;
276
277 default:
278 return 0;
Alexandre Julliard594997c1995-04-30 10:05:20 +0000279 }
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000280}
281
282
283/*
284 * Get User
285 */
286
287/**************************************************************************
288 * WNetGetUser16 [USER.516]
289 */
Ron Gage7bfd0792000-03-28 20:41:46 +0000290WORD WINAPI WNetGetUser16( LPCSTR lpName, LPSTR szUser, LPINT16 nBufferSize )
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000291{
Ron Gage7bfd0792000-03-28 20:41:46 +0000292 FIXME( "(%p, %p, %p): stub\n", lpName, szUser, nBufferSize );
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000293 return WN16_NOT_SUPPORTED;
294}
295
296
297/*
298 * Browsing
299 */
300
301/**************************************************************************
302 * WNetDeviceMode16 [USER.514]
303 */
304WORD WINAPI WNetDeviceMode16( HWND16 hWndOwner )
305{
306 FIXME( "(%04x): stub\n", hWndOwner );
307 return WN16_NOT_SUPPORTED;
Alexandre Julliard58199531994-04-21 01:20:00 +0000308}
309
310/**************************************************************************
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000311 * WNetBrowseDialog16 [USER.515]
Alexandre Julliard46ea8b31998-05-03 19:01:20 +0000312 */
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000313WORD WINAPI WNetBrowseDialog16( HWND16 hParent, WORD nType, LPSTR szPath )
Alexandre Julliard46ea8b31998-05-03 19:01:20 +0000314{
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000315 FIXME( "(%04x, %x, %s): stub\n", hParent, nType, szPath );
316 return WN16_NOT_SUPPORTED;
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000317}
318
Alexandre Julliard46ea8b31998-05-03 19:01:20 +0000319/********************************************************************
Patrik Stridvall54fe8382000-04-06 20:21:16 +0000320 * WNetConnectDialog [USER.525]
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000321 */
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000322WORD WINAPI WNetConnectDialog( HWND16 hWndParent, WORD iType )
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000323{
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000324 FIXME( "(%04x, %x): stub\n", hWndParent, iType );
325 return WN16_SUCCESS;
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000326}
327
328/**************************************************************************
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000329 * WNetDisconnectDialog16 [USER.526]
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000330 */
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000331WORD WINAPI WNetDisconnectDialog16( HWND16 hwndOwner, WORD iType )
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000332{
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000333 FIXME( "(%04x, %x): stub\n", hwndOwner, iType );
334 return WN16_NOT_SUPPORTED;
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000335}
336
337/**************************************************************************
Patrik Stridvall54fe8382000-04-06 20:21:16 +0000338 * WNetConnectionDialog16 [USER.527]
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000339 */
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000340WORD WINAPI WNetConnectionDialog16( HWND16 hWndParent, WORD iType )
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000341{
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000342 FIXME( "(%04x, %x): stub\n", hWndParent, iType );
343 return WN16_SUCCESS;
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000344}
345
346/**************************************************************************
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000347 * WNetViewQueueDialog16 [USER.528]
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000348 */
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000349WORD WINAPI WNetViewQueueDialog16( HWND16 hwndOwner, LPSTR lpszQueue )
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000350{
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000351 FIXME(" (%04x, %s): stub\n", hwndOwner, debugstr_a(lpszQueue) );
352 return WN16_NOT_SUPPORTED;
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000353}
354
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000355/**************************************************************************
356 * WNetPropertyDialog16 [USER.529]
357 */
358WORD WINAPI WNetPropertyDialog16( HWND16 hwndParent, WORD iButton,
359 WORD nPropSel, LPSTR lpszName, WORD nType )
360{
361 FIXME( "(%04x, %x, %x, %s, %x ): stub\n",
362 hwndParent, iButton, nPropSel, debugstr_a(lpszName), nType );
363 return WN16_NOT_SUPPORTED;
364}
365
366/**************************************************************************
367 * WNetGetPropertyText16 [USER.532]
368 */
369WORD WINAPI WNetGetPropertyText16( WORD iButton, WORD nPropSel, LPSTR lpszName,
370 LPSTR lpszButtonName, WORD cbButtonName, WORD nType )
371{
372 FIXME( "(%04x, %04x, %s, %s, %04x): stub\n",
373 iButton, nPropSel, debugstr_a(lpszName), debugstr_a(lpszButtonName), nType);
374 return WN16_NOT_SUPPORTED;
375}
376
377
378/*
379 * Admin
380 */
381
Alexandre Julliard46ea8b31998-05-03 19:01:20 +0000382/*********************************************************************
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000383 * WNetGetDirectoryType16 [USER.530] Decides whether resource is local
Alexandre Julliard46ea8b31998-05-03 19:01:20 +0000384 *
385 * RETURNS
386 * on success, puts one of the following in *lpType:
387 * - WNDT_NETWORK on a network
388 * - WNDT_LOCAL local
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000389 */
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000390WORD WINAPI WNetGetDirectoryType16( LPSTR lpName, LPINT16 lpType )
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000391{
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000392 UINT type = GetDriveTypeA(lpName);
Alexandre Julliardbf672592000-12-12 00:44:42 +0000393 if ( type == DRIVE_NO_ROOT_DIR )
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000394 type = GetDriveTypeA(NULL);
Alexandre Julliarddadf78f1998-05-17 17:13:43 +0000395
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000396 *lpType = (type == DRIVE_REMOTE)? WNDT_NETWORK : WNDT_NORMAL;
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000397
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000398 TRACE( "%s is %s\n", debugstr_a(lpName),
399 (*lpType == WNDT_NETWORK)? "WNDT_NETWORK" : "WNDT_NORMAL" );
400 return WN16_SUCCESS;
Alexandre Julliard46ea8b31998-05-03 19:01:20 +0000401}
402
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000403/**************************************************************************
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000404 * WNetDirectoryNotify16 [USER.531]
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000405 */
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000406WORD WINAPI WNetDirectoryNotify16( HWND16 hwndOwner, LPSTR lpDir, WORD wOper )
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000407{
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000408 FIXME( "(%04x, %s, %s): stub\n", hwndOwner, debugstr_a(lpDir),
409 (wOper == WNDN_MKDIR)? "WNDN_MKDIR" :
410 (wOper == WNDN_MVDIR)? "WNDN_MVDIR" :
411 (wOper == WNDN_RMDIR)? "WNDN_RMDIR" : "unknown" );
412 return WN16_NOT_SUPPORTED;
413}
414
415
416/*
417 * Error handling
418 */
419
420/**************************************************************************
421 * WNetGetError16 [USER.519]
422 */
423WORD WINAPI WNetGetError16( LPINT16 nError )
424{
425 FIXME( "(%p): stub\n", nError );
426 return WN16_NOT_SUPPORTED;
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000427}
428
429/**************************************************************************
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000430 * WNetGetErrorText16 [USER.520]
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000431 */
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000432WORD WINAPI WNetGetErrorText16( WORD nError, LPSTR lpBuffer, LPINT16 nBufferSize )
Alexandre Julliardfa68b751995-04-03 16:55:37 +0000433{
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000434 FIXME( "(%x, %p, %p): stub\n", nError, lpBuffer, nBufferSize );
435 return WN16_NET_ERROR;
Alexandre Julliard58199531994-04-21 01:20:00 +0000436}
437
438/**************************************************************************
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000439 * WNetErrorText16 [USER.499]
Alexandre Julliard58199531994-04-21 01:20:00 +0000440 */
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000441WORD WINAPI WNetErrorText16( WORD nError, LPSTR lpszText, WORD cbText )
Alexandre Julliard58199531994-04-21 01:20:00 +0000442{
Ulrich Weigandbb1984e1999-08-07 14:32:33 +0000443 FIXME("(%x, %p, %x): stub\n", nError, lpszText, cbText );
Ulrich Weigand73cf91e1999-05-17 14:56:23 +0000444 return FALSE;
445}
446