Implement SetupDiGetDeviceInstanceIdW
[reactos.git] / reactos / lib / setupapi / stubs.c
index 8465b35..fa05d73 100644 (file)
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <stdarg.h>
-
-#include "wine/debug.h"
-#include "windef.h"
-#include "winbase.h"
-#include "wingdi.h"
-#include "winuser.h"
-#include "winnls.h"
-#include "winreg.h"
-#include "setupapi.h"
+#include "setupapi_private.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
 
@@ -51,178 +42,216 @@ DWORD WINAPI suErrorToIds16( WORD w1, WORD w2 )
 }
 
 /***********************************************************************
- *             SetupDiOpenClassRegKeyExW  (SETUPAPI.@)
- *
- * WINAPI in description not given
- */
-HKEY WINAPI SetupDiOpenClassRegKeyExW(const GUID* class, REGSAM access, DWORD flags, PCWSTR machine, PVOID reserved)
-{
-  FIXME("\n");
-  return INVALID_HANDLE_VALUE;
-}
-
-/***********************************************************************
- *             SetupDiGetClassDescriptionExW  (SETUPAPI.@)
+ *             SetupDiGetDeviceInfoListDetailA  (SETUPAPI.@)
  */
-BOOL WINAPI SetupDiGetClassDescriptionExW (const GUID* class, PWSTR desc, DWORD size, PDWORD required, PCWSTR machine, PVOID reserved)
+BOOL WINAPI SetupDiGetDeviceInfoListDetailA(HDEVINFO devinfo, PSP_DEVINFO_LIST_DETAIL_DATA_A devinfo_data )
 {
   FIXME("\n");
   return FALSE;
 }
 
 /***********************************************************************
- *             SetupDiClassNameFromGuidExW  (SETUPAPI.@)
+ *             SetupCopyOEMInfA  (SETUPAPI.@)
  */
-BOOL WINAPI SetupDiClassNameFromGuidExW (const GUID* class, PWSTR desc, DWORD size, PDWORD required, PCWSTR machine, PVOID reserved)
+BOOL WINAPI SetupCopyOEMInfA(PCSTR sourceinffile, PCSTR sourcemedialoc,
+                           DWORD mediatype, DWORD copystyle, PSTR destinfname,
+                           DWORD destnamesize, PDWORD required,
+                           PSTR *destinfnamecomponent)
 {
-  FIXME("\n");
+  FIXME("stub: source %s location %s ...\n", debugstr_a(sourceinffile),
+        debugstr_a(sourcemedialoc));
   return FALSE;
 }
 
 /***********************************************************************
- *             SetupDiBuildClassInfoListExW  (SETUPAPI.@)
+ *      SetupCopyOEMInfW  (SETUPAPI.@)
  */
-BOOL WINAPI SetupDiBuildClassInfoListExW(DWORD flags, LPGUID list, DWORD size, PDWORD required,  LPCWSTR  machine, PVOID reserved)
+BOOL WINAPI SetupCopyOEMInfW(PCWSTR sourceinffile, PCWSTR sourcemedialoc,
+                DWORD mediatype, DWORD copystyle, PWSTR destinfname,
+                DWORD destnamesize, PDWORD required,
+                PWSTR *destinfnamecomponent)
 {
-  FIXME("\n");
-  return FALSE;
+  FIXME("stub: source %s location %s ...\n", debugstr_w(sourceinffile),
+        debugstr_w(sourcemedialoc));
+  //return FALSE;
+  return TRUE;
 }
 
 /***********************************************************************
- *             SetupDiGetDeviceInfoListDetailA  (SETUPAPI.@)
+ *             SetupGetInfInformationA    (SETUPAPI.@)
  */
-BOOL WINAPI SetupDiGetDeviceInfoListDetailA(HDEVINFO devinfo, PSP_DEVINFO_LIST_DETAIL_DATA_A devinfo_data )
+BOOL WINAPI SetupGetInfInformationA( LPCVOID InfSpec, DWORD SearchControl,
+                                     PSP_INF_INFORMATION ReturnBuffer,
+                                     DWORD ReturnBufferSize, PDWORD RequiredSize)
 {
-  FIXME("\n");
-  return FALSE;
+    FIXME("(%p, %ld, %p, %ld, %p) Stub!\n",
+          InfSpec, SearchControl, ReturnBuffer, ReturnBufferSize, RequiredSize );
+    return TRUE;
 }
 
 /***********************************************************************
- *             SetupDiGetDeviceInfoListDetailW  (SETUPAPI.@)
+ *             SetupInitializeFileLogW(SETUPAPI.@)
  */
-BOOL WINAPI SetupDiGetDeviceInfoListDetailW(HDEVINFO devinfo, PSP_DEVINFO_LIST_DETAIL_DATA_W devinfo_data )
+HANDLE WINAPI SetupInitializeFileLogW(LPCWSTR LogFileName, DWORD Flags)
 {
-  FIXME("\n");
-  return FALSE;
+    FIXME("Stub %s, 0x%lx\n",debugstr_w(LogFileName),Flags);
+    return INVALID_HANDLE_VALUE;
 }
 
 /***********************************************************************
- *             SetupDiCreateDeviceInfoListA (SETUPAPI.@)
+ *             SetupInitializeFileLogA(SETUPAPI.@)
  */
-HDEVINFO WINAPI SetupDiCreateDeviceInfoList(const GUID *class, HWND parend)
+HANDLE WINAPI SetupInitializeFileLogA(LPCSTR LogFileName, DWORD Flags)
 {
-  FIXME("\n");
-  return FALSE;
+    FIXME("Stub %s, 0x%lx\n",debugstr_a(LogFileName),Flags);
+    return INVALID_HANDLE_VALUE;
 }
 
 /***********************************************************************
- *             SetupDiCreateDeviceInfoListExW  (SETUPAPI.@)
+ *             SetupPromptReboot(SETUPAPI.@)
  */
-HDEVINFO WINAPI SetupDiCreateDeviceInfoListExW(const GUID *class, HWND parend , PCWSTR machine, PVOID reserved)
+INT WINAPI SetupPromptReboot(HSPFILEQ FileQueue, HWND Owner, BOOL ScanOnly)
 {
-  FIXME("\n");
-  return FALSE;
-}
+#if 0
+    int ret;
+    TCHAR RebootText[RC_STRING_MAX_SIZE];
+    TCHAR RebootCaption[RC_STRING_MAX_SIZE];
+    INT rc = 0;
 
-/***********************************************************************
- *               (SETUPAPI.@)
- *
- * NO WINAPI in description given
- */
-HDEVINFO WINAPI SetupDiGetClassDevsExA(const GUID *class, PCSTR filter, HWND parent, DWORD flags, HDEVINFO deviceset, PCSTR machine, PVOID reserved)
-{
-  FIXME("filter %s machine %s\n",debugstr_a(filter),debugstr_a(machine));
-  return FALSE;
+    TRACE("%p %p %d\n", FileQueue, Owner, ScanOnly);
+
+    if (ScanOnly && !FileQueue)
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
+        return -1;
+    }
+
+    if (FileQueue)
+    {
+        FIXME("Case 'FileQueue != NULL' not implemented\n");
+        /* In some cases, do 'rc |= SPFILEQ_FILE_IN_USE' */
+    }
+
+    if (ScanOnly)
+        return rc;
+
+    /* We need to ask the question to the user. */
+    rc |= SPFILEQ_REBOOT_RECOMMENDED;
+    if (0 == LoadString(hInstance, IDS_QUERY_REBOOT_TEXT, RebootText, RC_STRING_MAX_SIZE))
+        return -1;
+    if (0 == LoadString(hInstance, IDS_QUERY_REBOOT_CAPTION, RebootCaption, RC_STRING_MAX_SIZE))
+        return -1;
+    ret = MessageBox(Owner, RebootText, RebootCaption, MB_YESNO | MB_DEFBUTTON1);
+    if (IDNO == ret)
+        return rc;
+    else
+    {
+        if (ExitWindowsEx(EWX_REBOOT, 0))
+            return rc | SPFILEQ_REBOOT_IN_PROGRESS;
+        else
+            return -1;
+    }
+#endif
+    FIXME("Stub %p %p %d\n", FileQueue, Owner, ScanOnly);
+    SetLastError(ERROR_GEN_FAILURE);
+    return -1;
 }
 
+
 /***********************************************************************
- *               (SETUPAPI.@)
- *
- * NO WINAPI in description given
+ *             SetupTerminateFileLog(SETUPAPI.@)
  */
-HDEVINFO WINAPI SetupDiGetClassDevsExW(const GUID *class, PCWSTR filter, HWND parent, DWORD flags, HDEVINFO deviceset, PCWSTR machine, PVOID reserved)
+BOOL WINAPI SetupTerminateFileLog(HANDLE FileLogHandle)
 {
-  FIXME("\n");
-  return FALSE;
+    FIXME ("Stub %p\n",FileLogHandle);
+    return TRUE;
 }
 
+
 /***********************************************************************
- *             SetupDiClassGuidsFromNameExW  (SETUPAPI.@)
+ *             SetupDiGetClassImageList(SETUPAPI.@)
  */
-BOOL WINAPI SetupDiClassGuidsFromNameExW(LPCWSTR class, LPGUID list, DWORD size, PDWORD required,  LPCWSTR  machine, PVOID reserved)
+BOOL WINAPI SetupDiGetClassImageList(PSP_CLASSIMAGELIST_DATA ClassImageListData)
 {
-  FIXME("\n");
-  return FALSE;
+    FIXME ("Stub %p\n", ClassImageListData);
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
 }
 
+
 /***********************************************************************
- *             CM_Connect_MachineW  (SETUPAPI.@)
+ *             SetupDiGetClassImageListExA(SETUPAPI.@)
  */
-DWORD WINAPI CM_Connect_MachineW(LPCWSTR name, void * machine)
+BOOL WINAPI SetupDiGetClassImageListExA(PSP_CLASSIMAGELIST_DATA ClassImageListData,
+                                        PCSTR MachineName, PVOID Reserved)
 {
-#define  CR_SUCCESS       0x00000000
-#define  CR_ACCESS_DENIED 0x00000033
-  FIXME("\n");
-  return  CR_ACCESS_DENIED;
+    FIXME ("Stub %p %s %p\n", ClassImageListData, debugstr_a(MachineName), Reserved);
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
 }
 
+
 /***********************************************************************
- *             CM_Disconnect_Machine  (SETUPAPI.@)
+ *             SetupDiGetClassImageListExW(SETUPAPI.@)
  */
-DWORD WINAPI CM_Disconnect_Machine(DWORD handle)
+BOOL WINAPI SetupDiGetClassImageListExW(PSP_CLASSIMAGELIST_DATA ClassImageListData,
+                                        PCWSTR MachineName, PVOID Reserved)
 {
-  FIXME("\n");
-  return  CR_SUCCESS;
-
+    FIXME ("Stub %p %s %p\n", ClassImageListData, debugstr_w(MachineName), Reserved);
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
 }
 
+
 /***********************************************************************
- *             SetupCopyOEMInfA  (SETUPAPI.@)
+ *             SetupDiGetClassImageIndex(SETUPAPI.@)
  */
-BOOL WINAPI SetupCopyOEMInfA(PCSTR sourceinffile, PCSTR sourcemedialoc,
-                           DWORD mediatype, DWORD copystyle, PSTR destinfname,
-                           DWORD destnamesize, PDWORD required,
-                           PSTR *destinfnamecomponent)
+BOOL WINAPI SetupDiGetClassImageIndex(PSP_CLASSIMAGELIST_DATA ClassImageListData,
+                                      CONST GUID *ClassGuid, PINT ImageIndex)
 {
-  FIXME("stub: source %s location %s ...\n",sourceinffile, sourcemedialoc);
-  return FALSE;
+    FIXME ("Stub %p %p %p\n", ClassImageListData, ClassGuid, ImageIndex);
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
 }
 
+
 /***********************************************************************
- *             SetupGetInfInformationA    (SETUPAPI.@)
+ *             SetupDiDestroyClassImageList(SETUPAPI.@)
  */
-BOOL WINAPI SetupGetInfInformationA( LPCVOID InfSpec, DWORD SearchControl,
-                                     PSP_INF_INFORMATION ReturnBuffer,
-                                     DWORD ReturnBufferSize, PDWORD RequiredSize)
+BOOL WINAPI SetupDiDestroyClassImageList(PSP_CLASSIMAGELIST_DATA ClassImageListData)
 {
-    FIXME("(%p, %ld, %p, %ld, %p) Stub!\n",
-          InfSpec, SearchControl, ReturnBuffer, ReturnBufferSize, RequiredSize );
+    FIXME ("Stub %p\n", ClassImageListData);
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
     return TRUE;
 }
 
-/***********************************************************************
- *             SetupInitializeFileLogW(SETUPAPI.@)
- */
-HANDLE WINAPI SetupInitializeFileLogW(LPWSTR LogFileName, DWORD Flags)
-{
-    FIXME("Stub %s, 0x%lx\n",debugstr_w(LogFileName),Flags);
-    return INVALID_HANDLE_VALUE;
-}
 
 /***********************************************************************
- *             SetupInitializeFileLogA(SETUPAPI.@)
+ *             SetupDiGetClassDevPropertySheetsA(SETUPAPI.@)
  */
-HANDLE WINAPI SetupInitializeFileLogA(LPSTR LogFileName, DWORD Flags)
+BOOL WINAPI SetupDiGetClassDevPropertySheetsA(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData,
+                                              LPPROPSHEETHEADERA PropertySheetHeader,
+                                              DWORD PropertySheetHeaderPageListSize, PDWORD RequiredSize,
+                                              DWORD PropertySheetType)
 {
-    FIXME("Stub %s, 0x%lx\n",debugstr_a(LogFileName),Flags);
-    return INVALID_HANDLE_VALUE;
+    FIXME ("Stub %p %p %p %d %p %d\n",
+           DeviceInfoSet, DeviceInfoData, PropertySheetHeader, PropertySheetHeaderPageListSize,
+           RequiredSize, PropertySheetType);
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
 }
 
 /***********************************************************************
- *             SetupTerminateFileLog(SETUPAPI.@)
+ *             SetupDiGetClassDevPropertySheetsW(SETUPAPI.@)
  */
-BOOL WINAPI SetupTerminateFileLog(HANDLE FileLogHandle)
+BOOL WINAPI SetupDiGetClassDevPropertySheetsW(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData,
+                                              LPPROPSHEETHEADERW PropertySheetHeader,
+                                              DWORD PropertySheetHeaderPageListSize, PDWORD RequiredSize,
+                                              DWORD PropertySheetType)
 {
-    FIXME ("Stub %p\n",FileLogHandle);
-    return TRUE;
+    FIXME ("Stub %p %p %p %d %p %d\n",
+           DeviceInfoSet, DeviceInfoData, PropertySheetHeader, PropertySheetHeaderPageListSize,
+           RequiredSize, PropertySheetType);
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
 }