Christian Gmeiner : setupapi: Implemented SetupDiCreateDeviceInfoA.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jul 21 13:49:19 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 51cd07c37e56da960ab2c51b0391befeea0b6688
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=51cd07c37e56da960ab2c51b0391befeea0b6688

Author: Christian Gmeiner <christian.gmeiner at students.fhv.at>
Date:   Thu Jul 20 16:08:43 2006 +0200

setupapi: Implemented SetupDiCreateDeviceInfoA.

---

 dlls/setupapi/devinst.c     |   40 ++++++++++++++++++++++++++++++++++++++++
 dlls/setupapi/setupapi.spec |    2 +-
 include/setupapi.h          |    3 +++
 3 files changed, 44 insertions(+), 1 deletions(-)

diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c
index 0b07ece..7c87b25 100644
--- a/dlls/setupapi/devinst.c
+++ b/dlls/setupapi/devinst.c
@@ -697,6 +697,46 @@ SetupDiCreateDeviceInfoListExW(const GUI
 }
 
 /***********************************************************************
+ *              SetupDiCreateDeviceInfoA (SETUPAPI.@)
+ */
+BOOL WINAPI SetupDiCreateDeviceInfoA(
+       HDEVINFO DeviceInfoSet,
+       PCSTR DeviceName,
+       CONST GUID *ClassGuid,
+       PCSTR DeviceDescription,
+       HWND hwndParent,
+       DWORD CreationFlags,
+       PSP_DEVINFO_DATA DeviceInfoData)
+{
+    BOOL ret = FALSE;
+    LPWSTR DeviceNameW = NULL;
+    LPWSTR DeviceDescriptionW = NULL;
+
+    if (DeviceName)
+    {
+        DeviceNameW = MultiByteToUnicode(DeviceName, CP_ACP);
+        if (DeviceNameW == NULL) return FALSE;
+    }
+    if (DeviceDescription)
+    {
+        DeviceDescriptionW = MultiByteToUnicode(DeviceDescription, CP_ACP);
+        if (DeviceDescriptionW == NULL)
+        {
+            MyFree(DeviceNameW);
+            return FALSE;
+        }
+    }
+
+    ret = SetupDiCreateDeviceInfoW(DeviceInfoSet, DeviceNameW, ClassGuid, DeviceDescriptionW,
+            hwndParent, CreationFlags, DeviceInfoData);
+
+    MyFree(DeviceNameW);
+    MyFree(DeviceDescriptionW);
+
+    return ret;
+}
+
+/***********************************************************************
  *              SetupDiCreateDeviceInfoW (SETUPAPI.@)
  */
 BOOL WINAPI SetupDiCreateDeviceInfoW(
diff --git a/dlls/setupapi/setupapi.spec b/dlls/setupapi/setupapi.spec
index 7f8b285..36240b8 100644
--- a/dlls/setupapi/setupapi.spec
+++ b/dlls/setupapi/setupapi.spec
@@ -282,7 +282,7 @@
 @ stdcall SetupDiClassNameFromGuidW(ptr wstr long ptr)
 @ stub SetupDiCreateDevRegKeyA
 @ stub SetupDiCreateDevRegKeyW
-@ stub SetupDiCreateDeviceInfoA
+@ stdcall SetupDiCreateDeviceInfoA(long str ptr str long long ptr)
 @ stdcall SetupDiCreateDeviceInfoList(ptr ptr)
 @ stdcall SetupDiCreateDeviceInfoListExA(ptr long str ptr)
 @ stdcall SetupDiCreateDeviceInfoListExW(ptr long str ptr)
diff --git a/include/setupapi.h b/include/setupapi.h
index 16391e3..625f15d 100644
--- a/include/setupapi.h
+++ b/include/setupapi.h
@@ -744,6 +744,9 @@ HDEVINFO WINAPI SetupDiCreateDeviceInfoL
 HDEVINFO WINAPI SetupDiCreateDeviceInfoListExA(const GUID *, HWND, PCSTR, PVOID);
 HDEVINFO WINAPI SetupDiCreateDeviceInfoListExW(const GUID *, HWND, PCWSTR, PVOID);
 #define         SetupDiCreateDeviceInfoListEx WINELIB_NAME_AW(SetupDiCreateDeviceInfoListEx)
+BOOL     WINAPI SetupDiCreateDeviceInfoA(HDEVINFO, PCSTR, CONST GUID*, PCSTR, HWND, DWORD,PSP_DEVINFO_DATA);
+BOOL     WINAPI SetupDiCreateDeviceInfoW(HDEVINFO, PCWSTR, CONST GUID*, PCWSTR, HWND, DWORD,PSP_DEVINFO_DATA);
+#define         SetupDiCreateDeviceInfo WINELIB_NAME_AW(SetupDiCreateDeviceInfo)
 BOOL     WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO);
 BOOL     WINAPI SetupDiEnumDeviceInfo(HDEVINFO, DWORD, PSP_DEVINFO_DATA);
 BOOL     WINAPI SetupDiEnumDeviceInterfaces(HDEVINFO, PSP_DEVINFO_DATA, const GUID *, DWORD, PSP_DEVICE_INTERFACE_DATA);




More information about the wine-cvs mailing list