Alexander Morozov <amorozov(a)etersoft.ru> writes:
+ if (wide) + { + pSetupDiGetClassDevs = (void *)pSetupDiGetClassDevsW; + pSetupDiSetDeviceRegistryProperty = (void *)pSetupDiSetDeviceRegistryPropertyW; + pSetupDiGetDeviceRegistryProperty = (void *)pSetupDiGetDeviceRegistryPropertyW; + pSetupDiCreateDeviceInfo = (void *)pSetupDiCreateDeviceInfoW; + devName = (void *)devNameW; + friendlyName = (void *)friendlyNameW; + buflen = 6 * sizeof(WCHAR); + buf = (void *)bufW; + } + else + { + pSetupDiGetClassDevs = (void *)pSetupDiGetClassDevsA; + pSetupDiSetDeviceRegistryProperty = (void *)pSetupDiSetDeviceRegistryPropertyA; + pSetupDiGetDeviceRegistryProperty = (void *)pSetupDiGetDeviceRegistryPropertyA; + pSetupDiCreateDeviceInfo = (void *)pSetupDiCreateDeviceInfoA; + devName = (void *)devNameA; + friendlyName = (void *)friendlyNameA; + buflen = 6; + buf = (void *)bufA; + }
That's ugly, it's bypassing all type checking. There's no reason to test everything twice, in most cases the A function calls the W one, so testing the A one automatically tests both. If there are differences you really need to test, please do that explicitly by duplicating the test. -- Alexandre Julliard julliard(a)winehq.org