setupapi: Simplify the "pointer to start of array" idiom.
[wine] / dlls / setupapi / stubs.c
1 /*
2  * SetupAPI stubs
3  *
4  * Copyright 2000 James Hatheway
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20
21 #include <stdarg.h>
22
23 #include "wine/debug.h"
24 #include "windef.h"
25 #include "winbase.h"
26 #include "wingdi.h"
27 #include "winuser.h"
28 #include "winreg.h"
29 #include "cfgmgr32.h"
30 #include "setupapi.h"
31 #include "winnls.h"
32
33 WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
34
35 /***********************************************************************
36  *              CM_Connect_MachineA  (SETUPAPI.@)
37  */
38 CONFIGRET WINAPI CM_Connect_MachineA(PCSTR name, PHMACHINE machine)
39 {
40   FIXME("(%s %p) stub\n", name, machine);
41   return CR_ACCESS_DENIED;
42 }
43
44 /***********************************************************************
45  *              CM_Connect_MachineW  (SETUPAPI.@)
46  */
47 CONFIGRET WINAPI CM_Connect_MachineW(PCWSTR name, PHMACHINE machine)
48 {
49   FIXME("\n");
50   return  CR_ACCESS_DENIED;
51 }
52
53 /***********************************************************************
54  *              CM_Create_DevNodeA  (SETUPAPI.@)
55  */
56 CONFIGRET WINAPI CM_Create_DevNodeA(PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, DEVINST dnParent, ULONG ulFlags)
57 {
58   FIXME("(%p %s 0x%08x 0x%08x) stub\n", pdnDevInst, pDeviceID, dnParent, ulFlags);
59   return CR_SUCCESS;
60 }
61
62 /***********************************************************************
63  *              CM_Create_DevNodeW  (SETUPAPI.@)
64  */
65 CONFIGRET WINAPI CM_Create_DevNodeW(PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, DEVINST dnParent, ULONG ulFlags)
66 {
67   FIXME("(%p %s 0x%08x 0x%08x) stub\n", pdnDevInst, debugstr_w(pDeviceID), dnParent, ulFlags);
68   return CR_SUCCESS;
69 }
70
71 /***********************************************************************
72  *              CM_Disconnect_Machine  (SETUPAPI.@)
73  */
74 CONFIGRET WINAPI CM_Disconnect_Machine(HMACHINE handle)
75 {
76   FIXME("\n");
77   return  CR_SUCCESS;
78
79 }
80
81 /***********************************************************************
82  *             CM_Get_Device_ID_ExW  (SETUPAPI.@)
83  */
84 DWORD WINAPI CM_Get_Device_ID_ExW(
85     DEVINST dnDevInst, PWCHAR Buffer, ULONG BufferLen, ULONG ulFlags, HMACHINE hMachine)
86 {
87     FIXME("0x%08x %p 0x%08x 0x%08x %p\n", dnDevInst, Buffer, BufferLen, ulFlags, hMachine);
88     return CR_SUCCESS;
89 }
90
91 /***********************************************************************
92  *             CM_Get_Device_ID_ListA  (SETUPAPI.@)
93  */
94 CONFIGRET WINAPI CM_Get_Device_ID_ListA(
95     PCSTR pszFilter, PCHAR Buffer, ULONG BufferLen, ULONG ulFlags )
96 {
97     FIXME("%s %p %d 0x%08x\n", debugstr_a(pszFilter), Buffer, BufferLen, ulFlags);
98
99     if (BufferLen >= 2) Buffer[0] = Buffer[1] = 0;
100     return CR_SUCCESS;
101 }
102
103 /***********************************************************************
104  *             CM_Get_Device_ID_ListW  (SETUPAPI.@)
105  */
106 CONFIGRET WINAPI CM_Get_Device_ID_ListW(
107     PCWSTR pszFilter, PWCHAR Buffer, ULONG BufferLen, ULONG ulFlags )
108 {
109     FIXME("%s %p %d 0x%08x\n", debugstr_w(pszFilter), Buffer, BufferLen, ulFlags);
110
111     if (BufferLen >= 2) Buffer[0] = Buffer[1] = 0;
112     return CR_SUCCESS;
113 }
114
115 /***********************************************************************
116  *             CM_Get_Device_ID_List_SizeA  (SETUPAPI.@)
117  */
118 CONFIGRET WINAPI CM_Get_Device_ID_List_SizeA( PULONG  pulLen, PCSTR  pszFilter, ULONG  ulFlags )
119 {
120     FIXME("%p %s 0x%08x\n", pulLen, debugstr_a(pszFilter), ulFlags);
121
122     return CR_SUCCESS;
123 }
124
125 /***********************************************************************
126  *             CM_Get_Device_ID_List_SizeW  (SETUPAPI.@)
127  */
128 CONFIGRET WINAPI CM_Get_Device_ID_List_SizeW( PULONG  pulLen, PCWSTR  pszFilter, ULONG  ulFlags )
129 {
130     FIXME("%p %s 0x%08x\n", pulLen, debugstr_w(pszFilter), ulFlags);
131
132     return CR_SUCCESS;
133 }
134
135 /***********************************************************************
136  *              CM_Get_Parent (SETUPAPI.@)
137  */
138 DWORD WINAPI CM_Get_Parent(PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags)
139 {
140     FIXME("%p 0x%08x 0x%08x stub\n", pdnDevInst, dnDevInst, ulFlags);
141     *pdnDevInst = dnDevInst;
142     return CR_SUCCESS;
143 }
144
145 /***********************************************************************
146  *              SetupInitializeFileLogW(SETUPAPI.@)
147  */
148 HSPFILELOG WINAPI SetupInitializeFileLogW(LPCWSTR LogFileName, DWORD Flags)
149 {
150     FIXME("Stub %s, 0x%x\n",debugstr_w(LogFileName),Flags);
151     return INVALID_HANDLE_VALUE;
152 }
153
154 /***********************************************************************
155  *              SetupInitializeFileLogA(SETUPAPI.@)
156  */
157 HSPFILELOG WINAPI SetupInitializeFileLogA(LPCSTR LogFileName, DWORD Flags)
158 {
159     FIXME("Stub %s, 0x%x\n",debugstr_a(LogFileName),Flags);
160     return INVALID_HANDLE_VALUE;
161 }
162
163 /***********************************************************************
164  *              SetupTerminateFileLog(SETUPAPI.@)
165  */
166 BOOL WINAPI SetupTerminateFileLog(HANDLE FileLogHandle)
167 {
168     FIXME ("Stub %p\n",FileLogHandle);
169     return TRUE;
170 }
171
172 /***********************************************************************
173  *              RegistryDelnode(SETUPAPI.@)
174  */
175 BOOL WINAPI RegistryDelnode(DWORD x, DWORD y)
176 {
177     FIXME("%08x %08x: stub\n", x, y);
178     return FALSE;
179 }
180
181 /***********************************************************************
182  *      SetupCloseLog(SETUPAPI.@)
183  */
184 void WINAPI SetupCloseLog(void)
185 {
186     FIXME("() stub\n");
187 }
188
189 /***********************************************************************
190  *      SetupLogErrorW(SETUPAPI.@)
191  */
192 BOOL WINAPI SetupLogErrorW(LPCWSTR MessageString, LogSeverity Severity)
193 {
194     FIXME("(%s, %d) stub\n", debugstr_w(MessageString), Severity);
195     return TRUE;
196 }
197
198 /***********************************************************************
199  *      SetupOpenLog(SETUPAPI.@)
200  */
201 BOOL WINAPI SetupOpenLog(BOOL Reserved)
202 {
203     FIXME("(%d) stub\n", Reserved);
204     return TRUE;
205 }
206
207 /***********************************************************************
208  *      SetupPromptReboot(SETUPAPI.@)
209  */
210 INT WINAPI SetupPromptReboot( HSPFILEQ file_queue, HWND owner, BOOL scan_only )
211 {
212     FIXME("%p, %p, %d\n", file_queue, owner, scan_only);
213     return 0;
214 }
215
216 /***********************************************************************
217  *      SetupQueryDrivesInDiskSpaceListA (SETUPAPI.@)
218  */
219 BOOL WINAPI SetupQueryDrivesInDiskSpaceListA(HDSKSPC disk_space, PSTR return_buffer, DWORD return_buffer_size, PDWORD required_size)
220 {
221     FIXME("%p, %p, %d, %p\n", disk_space, return_buffer, return_buffer_size, required_size);
222     return FALSE;
223 }
224
225 /***********************************************************************
226  *      SetupQueryDrivesInDiskSpaceListW (SETUPAPI.@)
227  */
228 BOOL WINAPI SetupQueryDrivesInDiskSpaceListW(HDSKSPC disk_space, PWSTR return_buffer, DWORD return_buffer_size, PDWORD required_size)
229 {
230     FIXME("%p, %p, %d, %p\n", disk_space, return_buffer, return_buffer_size, required_size);
231     return FALSE;
232 }
233
234 /***********************************************************************
235  *      SetupAddToSourceListA (SETUPAPI.@)
236  */
237 BOOL WINAPI SetupAddToSourceListA(DWORD flags, PCSTR source)
238 {
239     FIXME("0x%08x %s\n", flags, debugstr_a(source));
240     return TRUE;
241 }
242
243 /***********************************************************************
244  *      SetupSetSourceListA (SETUPAPI.@)
245  */
246 BOOL WINAPI SetupSetSourceListA(DWORD flags, PCSTR *list, UINT count)
247 {
248     FIXME("0x%08x %p %d\n", flags, list, count);
249     return FALSE;
250 }
251
252 /***********************************************************************
253  *      SetupSetSourceListW (SETUPAPI.@)
254  */
255 BOOL WINAPI SetupSetSourceListW(DWORD flags, PCWSTR *list, UINT count)
256 {
257     FIXME("0x%08x %p %d\n", flags, list, count);
258     return FALSE;
259 }
260
261 /***********************************************************************
262  *      SetupDiDestroyClassImageList (SETUPAPI.@)
263  */
264 BOOL WINAPI SetupDiDestroyClassImageList(PSP_CLASSIMAGELIST_DATA ClassListImageData)
265 {
266     FIXME("(%p) stub\n", ClassListImageData);
267     return TRUE;
268 }
269
270 /***********************************************************************
271  *      SetupDiGetClassImageList (SETUPAPI.@)
272  */
273 BOOL WINAPI SetupDiGetClassImageList(PSP_CLASSIMAGELIST_DATA ClassImageListData)
274 {
275     FIXME("(%p) stub\n", ClassImageListData);
276     return FALSE;
277 }
278
279 /***********************************************************************
280  *      SetupDiGetClassImageList (SETUPAPI.@)
281  */
282 BOOL WINAPI SetupDiGetClassImageIndex(PSP_CLASSIMAGELIST_DATA ClassImageListData, const GUID *class, PINT index)
283 {
284     FIXME("%p %p %p\n", ClassImageListData, class, index);
285     return FALSE;
286 }
287
288 /***********************************************************************
289  *      SetupDiOpenDeviceInfoA (SETUPAPI.@)
290  */
291 BOOL WINAPI SetupDiOpenDeviceInfoA(HDEVINFO DeviceInfoSet, PCSTR DeviceInstanceId,
292         HWND hwndParent, DWORD OpenFlags, PSP_DEVINFO_DATA DeviceInfoData)
293 {
294     FIXME("%p %s %p 0x%08x %p\n", DeviceInfoSet, debugstr_a(DeviceInstanceId),
295           hwndParent, OpenFlags, DeviceInfoData);
296     return FALSE;
297 }
298
299 /***********************************************************************
300  *      SetupDiOpenDeviceInfoW (SETUPAPI.@)
301  */
302 BOOL WINAPI SetupDiOpenDeviceInfoW(HDEVINFO DeviceInfoSet, PCWSTR DeviceInstanceId,
303         HWND hwndParent, DWORD OpenFlags, PSP_DEVINFO_DATA DeviceInfoData)
304 {
305     FIXME("%p %s %p 0x%08x %p\n", DeviceInfoSet, debugstr_w(DeviceInstanceId),
306           hwndParent, OpenFlags, DeviceInfoData);
307     return FALSE;
308 }
309
310 /***********************************************************************
311  *      CM_Locate_DevNodeA (SETUPAPI.@)
312  */
313 CONFIGRET WINAPI CM_Locate_DevNodeA(PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags)
314 {
315     FIXME("%p %s 0x%08x: stub\n", pdnDevInst, debugstr_a(pDeviceID), ulFlags);
316
317     return CR_FAILURE;
318 }
319
320 /***********************************************************************
321  *      CM_Locate_DevNodeW (SETUPAPI.@)
322  */
323 CONFIGRET WINAPI CM_Locate_DevNodeW(PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags)
324 {
325     FIXME("%p %s 0x%08x: stub\n", pdnDevInst, debugstr_w(pDeviceID), ulFlags);
326
327     return CR_FAILURE;
328 }
329
330 /***********************************************************************
331  *      CM_Locate_DevNode_ExA (SETUPAPI.@)
332  */
333 CONFIGRET WINAPI CM_Locate_DevNode_ExA(PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags, HMACHINE hMachine)
334 {
335     FIXME("%p %s 0x%08x %p: stub\n", pdnDevInst, debugstr_a(pDeviceID), ulFlags, hMachine);
336
337     return CR_FAILURE;
338 }
339
340 /***********************************************************************
341  *      CM_Locate_DevNode_ExW (SETUPAPI.@)
342  */
343 CONFIGRET WINAPI CM_Locate_DevNode_ExW(PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags, HMACHINE hMachine)
344 {
345     FIXME("%p %s 0x%08x %p: stub\n", pdnDevInst, debugstr_w(pDeviceID), ulFlags, hMachine);
346
347     return CR_FAILURE;
348 }
349
350 /***********************************************************************
351  *      CM_Get_Device_Interface_List_Size_ExA (SETUPAPI.@)
352  */
353 CONFIGRET WINAPI CM_Get_Device_Interface_List_Size_ExA(PULONG len, LPGUID class, DEVINSTID_A id,
354                                                        ULONG flags, HMACHINE machine)
355 {
356     FIXME("%p %p %s 0x%08x %p: stub\n", len, class, debugstr_a(id), flags, machine);
357     return CR_FAILURE;
358 }
359
360 /***********************************************************************
361  *      CM_Get_Device_Interface_List_Size_ExW (SETUPAPI.@)
362  */
363 CONFIGRET WINAPI CM_Get_Device_Interface_List_Size_ExW(PULONG len, LPGUID class, DEVINSTID_W id,
364                                                        ULONG flags, HMACHINE machine)
365 {
366     FIXME("%p %p %s 0x%08x %p: stub\n", len, class, debugstr_w(id), flags, machine);
367     return CR_FAILURE;
368 }
369
370 /***********************************************************************
371  *      CM_Get_DevNode_Registry_Property_ExA (SETUPAPI.@)
372  */
373 CONFIGRET WINAPI CM_Get_DevNode_Registry_Property_ExA(DEVINST dev, ULONG prop, PULONG regdatatype,
374     PVOID buf, PULONG len, ULONG flags, HMACHINE machine)
375 {
376     FIXME("0x%08x %u %p %p %p 0x%08x %p: stub\n", dev, prop, regdatatype, buf, len, flags, machine);
377     return CR_FAILURE;
378 }
379
380 /***********************************************************************
381  *      CM_Get_DevNode_Registry_Property_ExW (SETUPAPI.@)
382  */
383 CONFIGRET WINAPI CM_Get_DevNode_Registry_Property_ExW(DEVINST dev, ULONG prop, PULONG regdatatype,
384     PVOID buf, PULONG len, ULONG flags, HMACHINE machine)
385 {
386     FIXME("0x%08x %u %p %p %p 0x%08x %p: stub\n", dev, prop, regdatatype, buf, len, flags, machine);
387     return CR_FAILURE;
388 }
389
390 /***********************************************************************
391  *      CM_Enumerate_Classes (SETUPAPI.@)
392  */
393 CONFIGRET WINAPI CM_Enumerate_Classes(ULONG index, LPGUID class, ULONG flags)
394 {
395     FIXME("%u %p 0x%08x: stub\n", index, class, flags);
396     return CR_NO_SUCH_VALUE;
397 }
398
399 /***********************************************************************
400  *      CM_Get_Class_Registry_PropertyA (SETUPAPI.@)
401  */
402 CONFIGRET WINAPI CM_Get_Class_Registry_PropertyA(LPGUID class, ULONG prop, PULONG regdatatype,
403                                                  PVOID buf, ULONG len, ULONG flags, HMACHINE machine)
404 {
405     FIXME("%p %u %p %p %u 0x%08x %p: stub\n", class, prop, regdatatype, buf, len, flags, machine);
406     return CR_FAILURE;
407 }
408
409 /***********************************************************************
410  *      CM_Get_Class_Registry_PropertyW (SETUPAPI.@)
411  */
412 CONFIGRET WINAPI CM_Get_Class_Registry_PropertyW(LPGUID class, ULONG prop, PULONG regdatatype,
413                                                  PVOID buf, ULONG len, ULONG flags, HMACHINE machine)
414 {
415     FIXME("%p %u %p %p %u 0x%08x %p: stub\n", class, prop, regdatatype, buf, len, flags, machine);
416     return CR_FAILURE;
417 }
418
419 /***********************************************************************
420  *      CM_Set_Class_Registry_PropertyA (SETUPAPI.@)
421  */
422 CONFIGRET WINAPI CM_Set_Class_Registry_PropertyA(LPGUID class, ULONG prop, PVOID buf, ULONG len,
423                                                  ULONG flags, HMACHINE machine)
424 {
425     FIXME("%p %u %p %u 0x%08x %p: stub\n", class, prop, buf, len, flags, machine);
426     return CR_FAILURE;
427 }
428
429 /***********************************************************************
430  *      CM_Set_Class_Registry_PropertyW (SETUPAPI.@)
431  */
432 CONFIGRET WINAPI CM_Set_Class_Registry_PropertyW(LPGUID class, ULONG prop, PVOID buf, ULONG len,
433                                                  ULONG flags, HMACHINE machine)
434 {
435     FIXME("%p %u %p %u 0x%08x %p: stub\n", class, prop, buf, len, flags, machine);
436     return CR_FAILURE;
437 }
438
439 /***********************************************************************
440  *              SetupLogFileW  (SETUPAPI.@)
441  */
442 BOOL WINAPI SetupLogFileW(
443     HSPFILELOG FileLogHandle,
444     PCWSTR LogSectionName,
445     PCWSTR SourceFileName,
446     PCWSTR TargetFileName,
447     DWORD Checksum,
448     PCWSTR DiskTagfile,
449     PCWSTR DiskDescription,
450     PCWSTR OtherInfo,
451     DWORD Flags )
452 {
453     FIXME("(%p, %s, '%s', '%s', %d, %s, %s, %s, %d): stub\n", FileLogHandle,
454         debugstr_w(LogSectionName), debugstr_w(SourceFileName),
455         debugstr_w(TargetFileName), Checksum, debugstr_w(DiskTagfile),
456         debugstr_w(DiskDescription), debugstr_w(OtherInfo), Flags);
457
458     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
459     return FALSE;
460 }
461
462 /***********************************************************************
463  *              SetupLogFileA  (SETUPAPI.@)
464  */
465 BOOL WINAPI SetupLogFileA(
466     HSPFILELOG FileLogHandle,
467     PCSTR LogSectionName,
468     PCSTR SourceFileName,
469     PCSTR TargetFileName,
470     DWORD Checksum,
471     PCSTR DiskTagfile,
472     PCSTR DiskDescription,
473     PCSTR OtherInfo,
474     DWORD Flags )
475 {
476     FIXME("(%p, %p, '%s', '%s', %d, %p, %p, %p, %d): stub\n", FileLogHandle,
477         LogSectionName, SourceFileName, TargetFileName, Checksum, DiskTagfile,
478         DiskDescription, OtherInfo, Flags);
479
480     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
481     return FALSE;
482 }
483
484 /***********************************************************************
485  *              SetupDiBuildDriverInfoList  (SETUPAPI.@)
486  */
487
488 BOOL WINAPI SetupDiBuildDriverInfoList(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, DWORD DriverType)
489  {
490     FIXME(": stub %p, %p, %d\n", DeviceInfoSet, DeviceInfoData, DriverType);
491
492     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
493     return FALSE;
494  }
495
496 /***********************************************************************
497  *              SetupDiDeleteDeviceInfo  (SETUPAPI.@)
498  */
499
500 BOOL WINAPI SetupDiDeleteDeviceInfo(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData)
501  {
502     FIXME(": stub %p, %p\n", DeviceInfoSet, DeviceInfoData);
503
504     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
505     return FALSE;
506  }
507
508 /***********************************************************************
509  *              SetupDiDrawMiniIcon  (SETUPAPI.@)
510  */
511 INT WINAPI SetupDiDrawMiniIcon(HDC hdc, RECT rc, INT MiniIconIndex, DWORD Flags)
512 {
513     FIXME("(%p, %s, %d, %x) stub\n", hdc, wine_dbgstr_rect(&rc), MiniIconIndex, Flags);
514
515     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
516     return 0;
517 }
518
519 /***********************************************************************
520  *              SetupDiGetClassBitmapIndex  (SETUPAPI.@)
521  */
522 BOOL WINAPI SetupDiGetClassBitmapIndex(const GUID *ClassGuid, PINT MiniIconIndex)
523 {
524     FIXME("(%s, %p) stub\n", debugstr_guid(ClassGuid), MiniIconIndex);
525
526     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
527     return FALSE;
528 }
529
530 /***********************************************************************
531  *              SetupDiLoadClassIcon  (SETUPAPI.@)
532  */
533 BOOL WINAPI SetupDiLoadClassIcon(const GUID *ClassGuid, HICON *LargeIcon, PINT MiniIconIndex)
534 {
535     FIXME(": stub %s, %p, %p\n", debugstr_guid(ClassGuid), LargeIcon, MiniIconIndex);
536
537     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
538     return FALSE;
539 }
540
541 /***********************************************************************
542  *              SetupDiSetSelectedDevice  (SETUPAPI.@)
543  */
544 BOOL WINAPI SetupDiSetSelectedDevice(HDEVINFO SetupDiSetSelectedDevice, PSP_DEVINFO_DATA DeviceInfoData)
545 {
546     FIXME("(%p, %p) stub\n", SetupDiSetSelectedDevice, DeviceInfoData);
547
548     return TRUE;
549 }