Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51299 Signed-off-by: Gijs Vermeulen gijsvrm@gmail.com --- dlls/newdev/main.c | 8 ++++++++ dlls/newdev/newdev.spec | 2 +- include/setupapi.h | 29 ++++++++++++++++++++++++++--- 3 files changed, 35 insertions(+), 4 deletions(-)
diff --git a/dlls/newdev/main.c b/dlls/newdev/main.c index 72e7cbc690d..f06148b5342 100644 --- a/dlls/newdev/main.c +++ b/dlls/newdev/main.c @@ -166,3 +166,11 @@ BOOL WINAPI DiInstallDriverW(HWND parent, const WCHAR *inf_path, DWORD flags, BO FIXME("parent %p, inf_path %s, flags %#x, reboot %p, stub!\n", parent, debugstr_w(inf_path), flags, reboot); return TRUE; } + +BOOL WINAPI DiInstallDevice(HWND parent, HDEVINFO handle, PSP_DEVINFO_DATA devdata, PSP_DRVINFO_DATA drvdata, + DWORD flags, BOOL *reboot) +{ + FIXME("parent %p, handle %p, devdata %p, drvdata %p, flags %#x, reboot %p, stub!\n", parent, handle, devdata, + drvdata, flags, reboot); + return TRUE; +} diff --git a/dlls/newdev/newdev.spec b/dlls/newdev/newdev.spec index 6d45c7e13ea..8bc33c90d72 100644 --- a/dlls/newdev/newdev.spec +++ b/dlls/newdev/newdev.spec @@ -1,5 +1,5 @@ @ stub DeviceInternetSettingUiW -@ stub DiInstallDevice +@ stdcall DiInstallDevice(ptr ptr ptr ptr long ptr) @ stdcall DiInstallDriverA(ptr str long ptr) @ stdcall DiInstallDriverW(ptr wstr long ptr) @ stub DiRollbackDriver diff --git a/include/setupapi.h b/include/setupapi.h index 14e3774fc42..5ab817e0190 100644 --- a/include/setupapi.h +++ b/include/setupapi.h @@ -518,13 +518,36 @@ typedef struct _SP_DRVINFO_DATA_V2_W DECL_WINELIB_SETUPAPI_TYPE_AW(SP_DRVINFO_DATA_V2) DECL_WINELIB_SETUPAPI_TYPE_AW(PSP_DRVINFO_DATA_V2)
+DECL_WINELIB_SETUPAPI_TYPE_AW(SP_DRVINFO_DATA) +DECL_WINELIB_SETUPAPI_TYPE_AW(PSP_DRVINFO_DATA) + +#ifdef UNICODE +typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_V1; +typedef PSP_DRVINFO_DATA_V1_W PSP_DRVINFO_DATA_V1; +typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_V2; +typedef PSP_DRVINFO_DATA_V2_W PSP_DRVINFO_DATA_V2; +#else +typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_V1; +typedef PSP_DRVINFO_DATA_V1_A PSP_DRVINFO_DATA_V1; +typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_V2; +typedef PSP_DRVINFO_DATA_V2_A PSP_DRVINFO_DATA_V2; +#endif + +#if USE_SP_DRVINFO_DATA_V1 +typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_A; +typedef PSP_DRVINFO_DATA_V1_A PSP_DRVINFO_DATA_A; +typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_W; +typedef PSP_DRVINFO_DATA_V1_W PSP_DRVINFO_DATA_W; +typedef SP_DRVINFO_DATA_V1 SP_DRVINFO_DATA; +typedef PSP_DRVINFO_DATA_V1 PSP_DRVINFO_DATA; +#else typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_A; typedef PSP_DRVINFO_DATA_V2_A PSP_DRVINFO_DATA_A; typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_W; typedef PSP_DRVINFO_DATA_V2_W PSP_DRVINFO_DATA_W; - -DECL_WINELIB_SETUPAPI_TYPE_AW(SP_DRVINFO_DATA) -DECL_WINELIB_SETUPAPI_TYPE_AW(PSP_DRVINFO_DATA) +typedef SP_DRVINFO_DATA_V2 SP_DRVINFO_DATA; +typedef PSP_DRVINFO_DATA_V2 PSP_DRVINFO_DATA; +#endif
typedef struct _SP_DRVINFO_DETAIL_DATA_A {