From e81a06349b039e60a7d9fcaa6f38b874767e7543 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sun, 30 Aug 2015 20:55:52 +0200 Subject: advpack: Translate flags in LaunchINFSection. --- dlls/advpack/install.c | 6 +++++- dlls/advpack/tests/install.c | 11 ++++++++++- include/advpub.h | 4 ++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/dlls/advpack/install.c b/dlls/advpack/install.c index f75eb01..dcd1dd7 100644 --- a/dlls/advpack/install.c +++ b/dlls/advpack/install.c @@ -776,7 +776,11 @@ INT WINAPI LaunchINFSectionW(HWND hWnd, HINSTANCE hInst, LPWSTR cmdline, INT sho str_flags = get_parameter(&cmdline_ptr, ',', TRUE); if (str_flags) - flags = atolW(str_flags); + { + DWORD inf_flags = atolW(str_flags); + if (inf_flags & LIS_QUIET) flags |= RSC_FLAG_QUIET; + if (inf_flags & LIS_NOGRPCONV) flags |= RSC_FLAG_NGCONV; + } ZeroMemory(&info, sizeof(ADVInfo)); diff --git a/dlls/advpack/tests/install.c b/dlls/advpack/tests/install.c index 875e7d4..c9cd720 100644 --- a/dlls/advpack/tests/install.c +++ b/dlls/advpack/tests/install.c @@ -190,6 +190,8 @@ static void test_LaunchINFSection(void) HRESULT hr; char cmdline[MAX_PATH]; static char file[] = "test.inf,DefaultInstall,4,0"; + static char file2[] = "one\\test.inf,DefaultInstall,4,0"; + static char file3[] = "test.inf,,1,0"; /* The 'No UI' flag seems to have no effect whatsoever on Windows. * So only do this test in interactive mode. @@ -207,10 +209,14 @@ static void test_LaunchINFSection(void) /* try a full path to the INF */ lstrcpyA(cmdline, CURR_DIR); lstrcatA(cmdline, "\\"); - lstrcatA(cmdline, "one\\test.inf,DefaultInstall,,4"); + lstrcatA(cmdline, file2); hr = pLaunchINFSection(NULL, NULL, cmdline, 0); ok(hr == 0, "Expected 0, got %d\n", hr); + /* try relative INF filename */ + hr = pLaunchINFSection(NULL, NULL, file2, 0); + ok(hr == 0, "Expected 0, got %d\n", hr); + DeleteFileA("one\\test.inf"); RemoveDirectoryA("one"); @@ -220,6 +226,9 @@ static void test_LaunchINFSection(void) hr = pLaunchINFSection(NULL, NULL, file, 0); ok(hr == 0, "Expected 0, got %d\n", hr); + hr = pLaunchINFSection(NULL, NULL, file3, 0); + ok(hr == 0, "Expected 0, got %d\n", hr); + DeleteFileA("test.inf"); } diff --git a/include/advpub.h b/include/advpub.h index b213b1f..7823e0a 100644 --- a/include/advpub.h +++ b/include/advpub.h @@ -135,6 +135,10 @@ DECL_WINELIB_TYPE_AW(LPCSTRTABLE) #define RSC_FLAG_DELAYREGISTEROCX 0x00000200 #define RSC_FLAG_SETUPAPI 0x00000400 +/* Flags for LaunchINFSection */ +#define LIS_QUIET 0x00000001 +#define LIS_NOGRPCONV 0x00000002 + /* Flags for DelNode */ #define ADN_DEL_IF_EMPTY 0x00000001 #define ADN_DONT_DEL_SUBDIRS 0x00000002 -- 2.5.0