https://git.reactos.org/?p=reactos.git;a=commitdiff;h=62b13979f596812c72202…
commit 62b13979f596812c722026a0a60f2409e519a649
Author:     Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com>
AuthorDate: Fri Apr 2 11:06:01 2021 +0900
Commit:     GitHub <noreply(a)github.com>
CommitDate: Fri Apr 2 11:06:01 2021 +0900
    [NEWDEV] Enable auto-completion on Hardware Wizard (#3573)
    Realize auto-completion on Hardware Wizard. CORE-9281
---
 dll/win32/newdev/CMakeLists.txt |  2 +-
 dll/win32/newdev/wizard.c       | 13 +++++++++++--
 2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/dll/win32/newdev/CMakeLists.txt b/dll/win32/newdev/CMakeLists.txt
index 1b4b76d0b65..3ff64749177 100644
--- a/dll/win32/newdev/CMakeLists.txt
+++ b/dll/win32/newdev/CMakeLists.txt
@@ -15,6 +15,6 @@ add_library(newdev MODULE
 set_module_type(newdev win32dll UNICODE)
 target_link_libraries(newdev wine)
-add_importlibs(newdev gdi32 comctl32 setupapi advapi32 user32 shell32 msvcrt kernel32
ntdll)
+add_importlibs(newdev gdi32 comctl32 setupapi advapi32 user32 shell32 shlwapi ole32
msvcrt kernel32 ntdll)
 add_pch(newdev newdev_private.h SOURCE)
 add_cd_file(TARGET newdev DESTINATION reactos/system32 FOR all)
diff --git a/dll/win32/newdev/wizard.c b/dll/win32/newdev/wizard.c
index d682964c85a..739795fef6e 100644
--- a/dll/win32/newdev/wizard.c
+++ b/dll/win32/newdev/wizard.c
@@ -23,6 +23,7 @@
 #include <wincon.h>
 #include <cfgmgr32.h>
 #include <shlobj.h>
+#include <shlwapi.h>
 HANDLE hThread;
@@ -573,8 +574,9 @@ CHSourceDlgProc(
     {
         case WM_INITDIALOG:
         {
-            HWND hwndControl;
+            HWND hwndControl, hwndCombo;
             DWORD dwStyle;
+            COMBOBOXINFO info = { sizeof(info) };
             /* Get pointer to the global setup data */
             DevInstData = (PDEVINSTDATA)((LPPROPSHEETPAGE)lParam)->lParam;
@@ -589,7 +591,11 @@ CHSourceDlgProc(
             dwStyle = GetWindowLongPtr(hwndControl, GWL_STYLE);
             SetWindowLongPtr(hwndControl, GWL_STYLE, dwStyle & ~WS_SYSMENU);
-            PopulateCustomPathCombo(GetDlgItem(hwndDlg, IDC_COMBO_PATH));
+            hwndCombo = GetDlgItem(hwndDlg, IDC_COMBO_PATH);
+            PopulateCustomPathCombo(hwndCombo);
+
+            GetComboBoxInfo(hwndCombo, &info);
+            SHAutoComplete(info.hwndItem, SHACF_FILESYS_DIRS);
             SendDlgItemMessage(
                 hwndDlg,
@@ -1303,6 +1309,7 @@ DisplayWizard(
     PROPSHEETHEADER psh = {0};
     HPROPSHEETPAGE ahpsp[IDD_MAXIMUMPAGE + 1];
     PROPSHEETPAGE psp = {0};
+    HRESULT hr = CoInitialize(NULL); /* for SHAutoComplete */
     /* zero based index */
     startPage -= IDD_FIRSTPAGE;
@@ -1382,5 +1389,7 @@ DisplayWizard(
     DeleteObject(DevInstData->hTitleFont);
+    if (SUCCEEDED(hr))
+        CoUninitialize();
     return TRUE;
 }