dwFlags );
if (rc)
{
- /* Copy result from DisplayDeviceW to lpDisplayDevice */
+ /* Copy result from DisplayDeviceW to lpDisplayDevice. Buffers have the same size so result is always NULL terminated. */
lpDisplayDevice->StateFlags = DisplayDeviceW.StateFlags;
- WideCharToMultiByte(CP_ACP,0,
- DisplayDeviceW.DeviceName,wcslen(DisplayDeviceW.DeviceName),
- lpDisplayDevice->DeviceName,sizeof(lpDisplayDevice->DeviceName) / sizeof(lpDisplayDevice->DeviceName[0]),
- NULL,NULL);
- WideCharToMultiByte(CP_ACP,0,
- DisplayDeviceW.DeviceString,wcslen(DisplayDeviceW.DeviceString),
- lpDisplayDevice->DeviceString,sizeof(lpDisplayDevice->DeviceString) / sizeof(lpDisplayDevice->DeviceString[0]),
- NULL,NULL);
- WideCharToMultiByte(CP_ACP,0,
- DisplayDeviceW.DeviceID,wcslen(DisplayDeviceW.DeviceID),
- lpDisplayDevice->DeviceID,sizeof(lpDisplayDevice->DeviceID) / sizeof(lpDisplayDevice->DeviceID[0]),
- NULL,NULL);
- WideCharToMultiByte(CP_ACP,0,
- DisplayDeviceW.DeviceKey,wcslen(DisplayDeviceW.DeviceKey),
- lpDisplayDevice->DeviceKey,sizeof(lpDisplayDevice->DeviceKey) / sizeof(lpDisplayDevice->DeviceKey[0]),
- NULL,NULL);
+ WideCharToMultiByte(CP_ACP, 0, DisplayDeviceW.DeviceName, -1,
+ lpDisplayDevice->DeviceName, sizeof(lpDisplayDevice->DeviceName) / sizeof(lpDisplayDevice->DeviceName[0]),
+ NULL, NULL);
+ WideCharToMultiByte(CP_ACP, 0, DisplayDeviceW.DeviceString, -1,
+ lpDisplayDevice->DeviceString, sizeof(lpDisplayDevice->DeviceString) / sizeof(lpDisplayDevice->DeviceString[0]),
+ NULL, NULL);
+ WideCharToMultiByte(CP_ACP, 0, DisplayDeviceW.DeviceID, -1,
+ lpDisplayDevice->DeviceID, sizeof(lpDisplayDevice->DeviceID) / sizeof(lpDisplayDevice->DeviceID[0]),
+ NULL, NULL);
+ WideCharToMultiByte(CP_ACP, 0, DisplayDeviceW.DeviceKey, -1,
+ lpDisplayDevice->DeviceKey, sizeof(lpDisplayDevice->DeviceKey) / sizeof(lpDisplayDevice->DeviceKey[0]),
+ NULL, NULL);
}
RtlFreeUnicodeString ( &Device );