typedef WCHAR *DEVINSTID_W;
DECL_WINELIB_CFGMGR32_TYPE_AW(DEVINSTID)
-
#define CR_SUCCESS 0x00000000
#define CR_OUT_OF_MEMORY 0x00000002
#define CR_INVALID_DATA 0x0000001F
#define CR_INVALID_MACHINENAME 0x0000002F
#define CR_ACCESS_DENIED 0x00000033
+#define MAX_CLASS_NAME_LEN 32
+#define MAX_GUID_STRING_LEN 39
+#define MAX_PROFILE_LEN 80
+
CONFIGRET WINAPI CM_Connect_MachineA( PCSTR, PHMACHINE );
CONFIGRET WINAPI CM_Connect_MachineW( PCWSTR, PHMACHINE );
#include "setupapi.h"\r
#include "wine/debug.h"\r
#include "wine/unicode.h"\r
+#include "cfgmgr32.h"\r
#include "initguid.h"\r
#include "winioctl.h"\r
#include "rpc.h"\r
PCSTR MachineName,\r
PVOID Reserved)\r
{\r
- FIXME("\n");\r
- return FALSE;\r
+ WCHAR ClassNameW[MAX_CLASS_NAME_LEN];\r
+ LPWSTR MachineNameW = NULL;\r
+ BOOL ret;\r
+\r
+ if (MachineName)\r
+ MachineNameW = MultiByteToUnicode(MachineName, CP_ACP);\r
+ ret = SetupDiClassNameFromGuidExW(ClassGuid, ClassNameW, MAX_CLASS_NAME_LEN,\r
+ NULL, MachineNameW, Reserved);\r
+ if (ret)\r
+ {\r
+ int len = WideCharToMultiByte(CP_ACP, 0, ClassNameW, -1, ClassName,\r
+ ClassNameSize, NULL, NULL);\r
+\r
+ if (!ClassNameSize && RequiredSize)\r
+ *RequiredSize = len;\r
+ }\r
+ MyFree(MachineNameW);\r
+ return ret;\r
}\r
\r
/***********************************************************************\r
size *= 2;\r
if (devices != buf)\r
HeapFree(GetProcessHeap(), 0, devices);\r
- devices = (LPWSTR)HeapAlloc(GetProcessHeap(), 0,\r
- size * sizeof(WCHAR));\r
+ devices = HeapAlloc(GetProcessHeap(), 0, size * sizeof(WCHAR));\r
if (!devices)\r
failed = TRUE;\r
else\r
{\r
if (!strncmpW(comW, ptr, sizeof(comW) / sizeof(comW[0]) - 1))\r
{\r
- strncpyW(list->names[list->numPorts].name, ptr,\r
+ lstrcpynW(list->names[list->numPorts].name, ptr,\r
sizeof(list->names[list->numPorts].name) /\r
sizeof(list->names[list->numPorts].name[0]));\r
TRACE("Adding %s to list\n",\r
} else {\r
if (mysterio[0]) {\r
/* some easy paranoia. no such carefulness exists on the wide API IIRC */\r
- mysterio[SIZEOF_MYSTERIO - 1] = '\0';\r
- strncpy(pfdin->psz3, &(mysterio[0]), 255);\r
- mysterio[255] = '\0';\r
+ lstrcpynA(pfdin->psz3, &(mysterio[0]), SIZEOF_MYSTERIO);\r
}\r
return 0;\r
}\r
DWORD destnamesize, PDWORD required,\r
PSTR *destinfnamecomponent)\r
{\r
- FIXME("stub: source %s location %s ...\n",sourceinffile, sourcemedialoc);\r
+ FIXME("stub: source %s location %s ...\n",sourceinffile, sourcemedialoc);\r
return FALSE;\r
}\r
\r