Release 1.5.29.
[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("stub\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("stub\n");
77   return  CR_SUCCESS;
78
79 }
80
81 /***********************************************************************
82  *             CM_Get_Device_ID_ExA  (SETUPAPI.@)
83  */
84 DWORD WINAPI CM_Get_Device_ID_ExA(
85     DEVINST dnDevInst, PCHAR Buffer, ULONG BufferLen, ULONG ulFlags, HMACHINE hMachine)
86 {
87     FIXME("0x%08x %p 0x%08x 0x%08x %p: stub\n", dnDevInst, Buffer, BufferLen, ulFlags, hMachine);
88     return CR_SUCCESS;
89 }
90
91 /***********************************************************************
92  *             CM_Get_Device_ID_ExW  (SETUPAPI.@)
93  */
94 DWORD WINAPI CM_Get_Device_ID_ExW(
95     DEVINST dnDevInst, PWCHAR Buffer, ULONG BufferLen, ULONG ulFlags, HMACHINE hMachine)
96 {
97     FIXME("0x%08x %p 0x%08x 0x%08x %p: stub\n", dnDevInst, Buffer, BufferLen, ulFlags, hMachine);
98     return CR_SUCCESS;
99 }
100
101 /***********************************************************************
102  *             CM_Get_Device_ID_ListA  (SETUPAPI.@)
103  */
104 CONFIGRET WINAPI CM_Get_Device_ID_ListA(
105     PCSTR pszFilter, PCHAR Buffer, ULONG BufferLen, ULONG ulFlags )
106 {
107     FIXME("%s %p %d 0x%08x: stub\n", debugstr_a(pszFilter), Buffer, BufferLen, ulFlags);
108
109     if (BufferLen >= 2) Buffer[0] = Buffer[1] = 0;
110     return CR_SUCCESS;
111 }
112
113 /***********************************************************************
114  *             CM_Get_Device_ID_ListW  (SETUPAPI.@)
115  */
116 CONFIGRET WINAPI CM_Get_Device_ID_ListW(
117     PCWSTR pszFilter, PWCHAR Buffer, ULONG BufferLen, ULONG ulFlags )
118 {
119     FIXME("%s %p %d 0x%08x: stub\n", debugstr_w(pszFilter), Buffer, BufferLen, ulFlags);
120
121     if (BufferLen >= 2) Buffer[0] = Buffer[1] = 0;
122     return CR_SUCCESS;
123 }
124
125 /***********************************************************************
126  *             CM_Get_Device_ID_List_SizeA  (SETUPAPI.@)
127  */
128 CONFIGRET WINAPI CM_Get_Device_ID_List_SizeA( PULONG  pulLen, PCSTR  pszFilter, ULONG  ulFlags )
129 {
130     FIXME("%p %s 0x%08x: stub\n", pulLen, debugstr_a(pszFilter), ulFlags);
131
132     return CR_SUCCESS;
133 }
134
135 /***********************************************************************
136  *             CM_Get_Device_ID_List_SizeW  (SETUPAPI.@)
137  */
138 CONFIGRET WINAPI CM_Get_Device_ID_List_SizeW( PULONG  pulLen, PCWSTR  pszFilter, ULONG  ulFlags )
139 {
140     FIXME("%p %s 0x%08x: stub\n", pulLen, debugstr_w(pszFilter), ulFlags);
141
142     return CR_SUCCESS;
143 }
144
145 /***********************************************************************
146  *              CM_Get_Parent (SETUPAPI.@)
147  */
148 DWORD WINAPI CM_Get_Parent(PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags)
149 {
150     FIXME("%p 0x%08x 0x%08x stub\n", pdnDevInst, dnDevInst, ulFlags);
151     *pdnDevInst = dnDevInst;
152     return CR_SUCCESS;
153 }
154
155 /***********************************************************************
156  *              SetupInitializeFileLogW(SETUPAPI.@)
157  */
158 HSPFILELOG WINAPI SetupInitializeFileLogW(LPCWSTR LogFileName, DWORD Flags)
159 {
160     FIXME("Stub %s, 0x%x\n",debugstr_w(LogFileName),Flags);
161     return INVALID_HANDLE_VALUE;
162 }
163
164 /***********************************************************************
165  *              SetupInitializeFileLogA(SETUPAPI.@)
166  */
167 HSPFILELOG WINAPI SetupInitializeFileLogA(LPCSTR LogFileName, DWORD Flags)
168 {
169     FIXME("Stub %s, 0x%x\n",debugstr_a(LogFileName),Flags);
170     return INVALID_HANDLE_VALUE;
171 }
172
173 /***********************************************************************
174  *              SetupTerminateFileLog(SETUPAPI.@)
175  */
176 BOOL WINAPI SetupTerminateFileLog(HANDLE FileLogHandle)
177 {
178     FIXME ("Stub %p\n",FileLogHandle);
179     return TRUE;
180 }
181
182 /***********************************************************************
183  *              RegistryDelnode(SETUPAPI.@)
184  */
185 BOOL WINAPI RegistryDelnode(DWORD x, DWORD y)
186 {
187     FIXME("%08x %08x: stub\n", x, y);
188     return FALSE;
189 }
190
191 /***********************************************************************
192  *      SetupCloseLog(SETUPAPI.@)
193  */
194 void WINAPI SetupCloseLog(void)
195 {
196     FIXME("() stub\n");
197 }
198
199 /***********************************************************************
200  *      SetupLogErrorW(SETUPAPI.@)
201  */
202 BOOL WINAPI SetupLogErrorW(LPCWSTR MessageString, LogSeverity Severity)
203 {
204     FIXME("(%s, %d) stub\n", debugstr_w(MessageString), Severity);
205     return TRUE;
206 }
207
208 /***********************************************************************
209  *      SetupOpenLog(SETUPAPI.@)
210  */
211 BOOL WINAPI SetupOpenLog(BOOL Reserved)
212 {
213     FIXME("(%d) stub\n", Reserved);
214     return TRUE;
215 }
216
217 /***********************************************************************
218  *      SetupPromptReboot(SETUPAPI.@)
219  */
220 INT WINAPI SetupPromptReboot( HSPFILEQ file_queue, HWND owner, BOOL scan_only )
221 {
222     FIXME("%p, %p, %d: stub\n", file_queue, owner, scan_only);
223     return 0;
224 }
225
226 /***********************************************************************
227  *      SetupQueryDrivesInDiskSpaceListA (SETUPAPI.@)
228  */
229 BOOL WINAPI SetupQueryDrivesInDiskSpaceListA(HDSKSPC disk_space, PSTR return_buffer, DWORD return_buffer_size, PDWORD required_size)
230 {
231     FIXME("%p, %p, %d, %p: stub\n", disk_space, return_buffer, return_buffer_size, required_size);
232     return FALSE;
233 }
234
235 /***********************************************************************
236  *      SetupQueryDrivesInDiskSpaceListW (SETUPAPI.@)
237  */
238 BOOL WINAPI SetupQueryDrivesInDiskSpaceListW(HDSKSPC disk_space, PWSTR return_buffer, DWORD return_buffer_size, PDWORD required_size)
239 {
240     FIXME("%p, %p, %d, %p: stub\n", disk_space, return_buffer, return_buffer_size, required_size);
241     return FALSE;
242 }
243
244 /***********************************************************************
245  *      SetupAddToSourceListA (SETUPAPI.@)
246  */
247 BOOL WINAPI SetupAddToSourceListA(DWORD flags, PCSTR source)
248 {
249     FIXME("0x%08x %s: stub\n", flags, debugstr_a(source));
250     return TRUE;
251 }
252
253 /***********************************************************************
254  *      SetupAddToSourceListW (SETUPAPI.@)
255  */
256 BOOL WINAPI SetupAddToSourceListW(DWORD flags, PCWSTR source)
257 {
258     FIXME("0x%08x %s: stub\n", flags, debugstr_w(source));
259     return TRUE;
260 }
261
262 /***********************************************************************
263  *      SetupSetSourceListA (SETUPAPI.@)
264  */
265 BOOL WINAPI SetupSetSourceListA(DWORD flags, PCSTR *list, UINT count)
266 {
267     FIXME("0x%08x %p %d: stub\n", flags, list, count);
268     return FALSE;
269 }
270
271 /***********************************************************************
272  *      SetupSetSourceListW (SETUPAPI.@)
273  */
274 BOOL WINAPI SetupSetSourceListW(DWORD flags, PCWSTR *list, UINT count)
275 {
276     FIXME("0x%08x %p %d: stub\n", flags, list, count);
277     return FALSE;
278 }
279
280 /***********************************************************************
281  *      SetupDiDestroyClassImageList (SETUPAPI.@)
282  */
283 BOOL WINAPI SetupDiDestroyClassImageList(PSP_CLASSIMAGELIST_DATA ClassListImageData)
284 {
285     FIXME("(%p) stub\n", ClassListImageData);
286     return TRUE;
287 }
288
289 /***********************************************************************
290  *      SetupDiGetClassImageList (SETUPAPI.@)
291  */
292 BOOL WINAPI SetupDiGetClassImageList(PSP_CLASSIMAGELIST_DATA ClassImageListData)
293 {
294     FIXME("(%p) stub\n", ClassImageListData);
295     return FALSE;
296 }
297
298 /***********************************************************************
299  *      SetupDiGetClassImageList (SETUPAPI.@)
300  */
301 BOOL WINAPI SetupDiGetClassImageIndex(PSP_CLASSIMAGELIST_DATA ClassImageListData, const GUID *class, PINT index)
302 {
303     FIXME("%p %p %p\n", ClassImageListData, class, index);
304     return FALSE;
305 }
306
307 /***********************************************************************
308  *      SetupDiOpenDeviceInfoA (SETUPAPI.@)
309  */
310 BOOL WINAPI SetupDiOpenDeviceInfoA(HDEVINFO DeviceInfoSet, PCSTR DeviceInstanceId,
311         HWND hwndParent, DWORD OpenFlags, PSP_DEVINFO_DATA DeviceInfoData)
312 {
313     FIXME("%p %s %p 0x%08x %p: stub\n", DeviceInfoSet, debugstr_a(DeviceInstanceId),
314           hwndParent, OpenFlags, DeviceInfoData);
315     return FALSE;
316 }
317
318 /***********************************************************************
319  *      SetupDiOpenDeviceInfoW (SETUPAPI.@)
320  */
321 BOOL WINAPI SetupDiOpenDeviceInfoW(HDEVINFO DeviceInfoSet, PCWSTR DeviceInstanceId,
322         HWND hwndParent, DWORD OpenFlags, PSP_DEVINFO_DATA DeviceInfoData)
323 {
324     FIXME("%p %s %p 0x%08x %p: stub\n", DeviceInfoSet, debugstr_w(DeviceInstanceId),
325           hwndParent, OpenFlags, DeviceInfoData);
326     return FALSE;
327 }
328
329 /***********************************************************************
330  *      CM_Locate_DevNodeA (SETUPAPI.@)
331  */
332 CONFIGRET WINAPI CM_Locate_DevNodeA(PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags)
333 {
334     FIXME("%p %s 0x%08x: stub\n", pdnDevInst, debugstr_a(pDeviceID), ulFlags);
335
336     return CR_FAILURE;
337 }
338
339 /***********************************************************************
340  *      CM_Locate_DevNodeW (SETUPAPI.@)
341  */
342 CONFIGRET WINAPI CM_Locate_DevNodeW(PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags)
343 {
344     FIXME("%p %s 0x%08x: stub\n", pdnDevInst, debugstr_w(pDeviceID), ulFlags);
345
346     return CR_FAILURE;
347 }
348
349 /***********************************************************************
350  *      CM_Locate_DevNode_ExA (SETUPAPI.@)
351  */
352 CONFIGRET WINAPI CM_Locate_DevNode_ExA(PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags, HMACHINE hMachine)
353 {
354     FIXME("%p %s 0x%08x %p: stub\n", pdnDevInst, debugstr_a(pDeviceID), ulFlags, hMachine);
355
356     return CR_FAILURE;
357 }
358
359 /***********************************************************************
360  *      CM_Locate_DevNode_ExW (SETUPAPI.@)
361  */
362 CONFIGRET WINAPI CM_Locate_DevNode_ExW(PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags, HMACHINE hMachine)
363 {
364     FIXME("%p %s 0x%08x %p: stub\n", pdnDevInst, debugstr_w(pDeviceID), ulFlags, hMachine);
365
366     return CR_FAILURE;
367 }
368
369 /***********************************************************************
370  *      CM_Get_Device_Interface_List_Size_ExA (SETUPAPI.@)
371  */
372 CONFIGRET WINAPI CM_Get_Device_Interface_List_Size_ExA(PULONG len, LPGUID class, DEVINSTID_A id,
373                                                        ULONG flags, HMACHINE machine)
374 {
375     FIXME("%p %p %s 0x%08x %p: stub\n", len, class, debugstr_a(id), flags, machine);
376     return CR_FAILURE;
377 }
378
379 /***********************************************************************
380  *      CM_Get_Device_Interface_List_Size_ExW (SETUPAPI.@)
381  */
382 CONFIGRET WINAPI CM_Get_Device_Interface_List_Size_ExW(PULONG len, LPGUID class, DEVINSTID_W id,
383                                                        ULONG flags, HMACHINE machine)
384 {
385     FIXME("%p %p %s 0x%08x %p: stub\n", len, class, debugstr_w(id), flags, machine);
386     return CR_FAILURE;
387 }
388
389 /***********************************************************************
390  *      CM_Get_DevNode_Registry_Property_ExA (SETUPAPI.@)
391  */
392 CONFIGRET WINAPI CM_Get_DevNode_Registry_Property_ExA(DEVINST dev, ULONG prop, PULONG regdatatype,
393     PVOID buf, PULONG len, ULONG flags, HMACHINE machine)
394 {
395     FIXME("0x%08x %u %p %p %p 0x%08x %p: stub\n", dev, prop, regdatatype, buf, len, flags, machine);
396     return CR_FAILURE;
397 }
398
399 /***********************************************************************
400  *      CM_Get_DevNode_Registry_Property_ExW (SETUPAPI.@)
401  */
402 CONFIGRET WINAPI CM_Get_DevNode_Registry_Property_ExW(DEVINST dev, ULONG prop, PULONG regdatatype,
403     PVOID buf, PULONG len, ULONG flags, HMACHINE machine)
404 {
405     FIXME("0x%08x %u %p %p %p 0x%08x %p: stub\n", dev, prop, regdatatype, buf, len, flags, machine);
406     return CR_FAILURE;
407 }
408
409 /***********************************************************************
410  *      CM_Enumerate_Classes (SETUPAPI.@)
411  */
412 CONFIGRET WINAPI CM_Enumerate_Classes(ULONG index, LPGUID class, ULONG flags)
413 {
414     FIXME("%u %p 0x%08x: stub\n", index, class, flags);
415     return CR_NO_SUCH_VALUE;
416 }
417
418 /***********************************************************************
419  *      CM_Get_Class_Registry_PropertyA (SETUPAPI.@)
420  */
421 CONFIGRET WINAPI CM_Get_Class_Registry_PropertyA(LPGUID class, ULONG prop, PULONG regdatatype,
422                                                  PVOID buf, ULONG len, ULONG flags, HMACHINE machine)
423 {
424     FIXME("%p %u %p %p %u 0x%08x %p: stub\n", class, prop, regdatatype, buf, len, flags, machine);
425     return CR_FAILURE;
426 }
427
428 /***********************************************************************
429  *      CM_Get_Class_Registry_PropertyW (SETUPAPI.@)
430  */
431 CONFIGRET WINAPI CM_Get_Class_Registry_PropertyW(LPGUID class, ULONG prop, PULONG regdatatype,
432                                                  PVOID buf, ULONG len, ULONG flags, HMACHINE machine)
433 {
434     FIXME("%p %u %p %p %u 0x%08x %p: stub\n", class, prop, regdatatype, buf, len, flags, machine);
435     return CR_FAILURE;
436 }
437
438 CONFIGRET WINAPI CM_Reenumerate_DevNode(DEVINST dnDevInst, ULONG ulFlags)
439 {
440     FIXME("0x%08x 0x%08x: stub\n", dnDevInst, ulFlags);
441     return CR_FAILURE;
442 }
443
444 CONFIGRET WINAPI CM_Reenumerate_DevNode_Ex(DEVINST dnDevInst, ULONG ulFlags, HMACHINE machine)
445 {
446     FIXME("0x%08x 0x%08x %p: stub\n", dnDevInst, ulFlags, machine);
447     return CR_FAILURE;
448 }
449
450 /***********************************************************************
451  *      CM_Set_Class_Registry_PropertyA (SETUPAPI.@)
452  */
453 CONFIGRET WINAPI CM_Set_Class_Registry_PropertyA(LPGUID class, ULONG prop, PVOID buf, ULONG len,
454                                                  ULONG flags, HMACHINE machine)
455 {
456     FIXME("%p %u %p %u 0x%08x %p: stub\n", class, prop, buf, len, flags, machine);
457     return CR_FAILURE;
458 }
459
460 /***********************************************************************
461  *      CM_Set_Class_Registry_PropertyW (SETUPAPI.@)
462  */
463 CONFIGRET WINAPI CM_Set_Class_Registry_PropertyW(LPGUID class, ULONG prop, PVOID buf, ULONG len,
464                                                  ULONG flags, HMACHINE machine)
465 {
466     FIXME("%p %u %p %u 0x%08x %p: stub\n", class, prop, buf, len, flags, machine);
467     return CR_FAILURE;
468 }
469
470 /***********************************************************************
471  *              SetupLogFileW  (SETUPAPI.@)
472  */
473 BOOL WINAPI SetupLogFileW(
474     HSPFILELOG FileLogHandle,
475     PCWSTR LogSectionName,
476     PCWSTR SourceFileName,
477     PCWSTR TargetFileName,
478     DWORD Checksum,
479     PCWSTR DiskTagfile,
480     PCWSTR DiskDescription,
481     PCWSTR OtherInfo,
482     DWORD Flags )
483 {
484     FIXME("(%p, %s, '%s', '%s', %d, %s, %s, %s, %d): stub\n", FileLogHandle,
485         debugstr_w(LogSectionName), debugstr_w(SourceFileName),
486         debugstr_w(TargetFileName), Checksum, debugstr_w(DiskTagfile),
487         debugstr_w(DiskDescription), debugstr_w(OtherInfo), Flags);
488
489     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
490     return FALSE;
491 }
492
493 /***********************************************************************
494  *              SetupLogFileA  (SETUPAPI.@)
495  */
496 BOOL WINAPI SetupLogFileA(
497     HSPFILELOG FileLogHandle,
498     PCSTR LogSectionName,
499     PCSTR SourceFileName,
500     PCSTR TargetFileName,
501     DWORD Checksum,
502     PCSTR DiskTagfile,
503     PCSTR DiskDescription,
504     PCSTR OtherInfo,
505     DWORD Flags )
506 {
507     FIXME("(%p, %p, '%s', '%s', %d, %p, %p, %p, %d): stub\n", FileLogHandle,
508         LogSectionName, SourceFileName, TargetFileName, Checksum, DiskTagfile,
509         DiskDescription, OtherInfo, Flags);
510
511     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
512     return FALSE;
513 }
514
515 /***********************************************************************
516  *              SetupDiBuildDriverInfoList  (SETUPAPI.@)
517  */
518
519 BOOL WINAPI SetupDiBuildDriverInfoList(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, DWORD DriverType)
520  {
521     FIXME(": stub %p, %p, %d\n", DeviceInfoSet, DeviceInfoData, DriverType);
522
523     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
524     return FALSE;
525  }
526
527 /***********************************************************************
528  *              SetupDiDeleteDeviceInfo  (SETUPAPI.@)
529  */
530
531 BOOL WINAPI SetupDiDeleteDeviceInfo(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData)
532  {
533     FIXME(": stub %p, %p\n", DeviceInfoSet, DeviceInfoData);
534
535     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
536     return FALSE;
537  }
538
539 /***********************************************************************
540  *              SetupDiDrawMiniIcon  (SETUPAPI.@)
541  */
542 INT WINAPI SetupDiDrawMiniIcon(HDC hdc, RECT rc, INT MiniIconIndex, DWORD Flags)
543 {
544     FIXME("(%p, %s, %d, %x) stub\n", hdc, wine_dbgstr_rect(&rc), MiniIconIndex, Flags);
545
546     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
547     return 0;
548 }
549
550 /***********************************************************************
551  *              SetupDiGetClassBitmapIndex  (SETUPAPI.@)
552  */
553 BOOL WINAPI SetupDiGetClassBitmapIndex(const GUID *ClassGuid, PINT MiniIconIndex)
554 {
555     FIXME("(%s, %p) stub\n", debugstr_guid(ClassGuid), MiniIconIndex);
556
557     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
558     return FALSE;
559 }
560
561 /***********************************************************************
562  *              SetupDiLoadClassIcon  (SETUPAPI.@)
563  */
564 BOOL WINAPI SetupDiLoadClassIcon(const GUID *ClassGuid, HICON *LargeIcon, PINT MiniIconIndex)
565 {
566     FIXME(": stub %s, %p, %p\n", debugstr_guid(ClassGuid), LargeIcon, MiniIconIndex);
567
568     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
569     return FALSE;
570 }
571
572 /***********************************************************************
573  *              SetupDiSetSelectedDevice  (SETUPAPI.@)
574  */
575 BOOL WINAPI SetupDiSetSelectedDevice(HDEVINFO SetupDiSetSelectedDevice, PSP_DEVINFO_DATA DeviceInfoData)
576 {
577     FIXME("(%p, %p) stub\n", SetupDiSetSelectedDevice, DeviceInfoData);
578
579     return TRUE;
580 }