[PATCH] winhlp32: Improve Tab view

Vladimir Pankratov scriptkid at mail.ru
Tue Feb 9 11:53:58 CST 2010


---
 programs/winhlp32/Da.rc         |    5 ++++-
 programs/winhlp32/De.rc         |    5 ++++-
 programs/winhlp32/En.rc         |    5 ++++-
 programs/winhlp32/Fr.rc         |    5 ++++-
 programs/winhlp32/Ja.rc         |    5 ++++-
 programs/winhlp32/Ko.rc         |    5 ++++-
 programs/winhlp32/Lt.rc         |    5 ++++-
 programs/winhlp32/Nl.rc         |    5 ++++-
 programs/winhlp32/No.rc         |    5 ++++-
 programs/winhlp32/Pl.rc         |    5 ++++-
 programs/winhlp32/Pt.rc         |    5 ++++-
 programs/winhlp32/Ro.rc         |    5 ++++-
 programs/winhlp32/Ru.rc         |    5 ++++-
 programs/winhlp32/Si.rc         |    5 ++++-
 programs/winhlp32/Sv.rc         |    5 ++++-
 programs/winhlp32/winhelp.c     |   23 +++++++++++++++++++++++
 programs/winhlp32/winhelp_res.h |    1 +
 17 files changed, 84 insertions(+), 15 deletions(-)

diff --git a/programs/winhlp32/Da.rc b/programs/winhlp32/Da.rc
index fc15eeb..ce8ec5e 100644
--- a/programs/winhlp32/Da.rc
+++ b/programs/winhlp32/Da.rc
@@ -74,7 +74,10 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 FONT 8, "MS Shell Dlg"
 CAPTION "Index"
 {
-    LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
+    LISTBOX IDC_INDEXLIST, 10, 44, 185, 139, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL 
+    EDITTEXT IDC_SEARCHWORD,  10, 14, 185, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
+    LTEXT "1  &Type the first few letters of the word you're looking for.", -1, 10, 5, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
+    LTEXT "2  &Click the index entry you want, and then click OK.", -1, 10, 35, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
 }
 
 /* Strings */
diff --git a/programs/winhlp32/De.rc b/programs/winhlp32/De.rc
index 2e14f70..8d50e1e 100644
--- a/programs/winhlp32/De.rc
+++ b/programs/winhlp32/De.rc
@@ -75,7 +75,10 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 FONT 8, "MS Shell Dlg"
 CAPTION "Index"
 {
-    LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
+    LISTBOX IDC_INDEXLIST, 10, 44, 185, 139, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL 
+    EDITTEXT IDC_SEARCHWORD,  10, 14, 185, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
+    LTEXT "1  &Type the first few letters of the word you're looking for.", -1, 10, 5, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
+    LTEXT "2  &Click the index entry you want, and then click OK.", -1, 10, 35, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
 }
 
 IDD_SEARCH DIALOG DISCARDABLE 0, 0, 200, 190 LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
diff --git a/programs/winhlp32/En.rc b/programs/winhlp32/En.rc
index a4e9d8a..8c95532 100644
--- a/programs/winhlp32/En.rc
+++ b/programs/winhlp32/En.rc
@@ -118,7 +118,10 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 FONT 8, "MS Shell Dlg"
 CAPTION "Index"
 {
-    LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
+    LISTBOX IDC_INDEXLIST, 10, 44, 185, 139, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL 
+    EDITTEXT IDC_SEARCHWORD,  10, 14, 185, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
+    LTEXT "1  &Type the first few letters of the word you're looking for.", -1, 10, 5, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
+    LTEXT "2  &Click the index entry you want, and then click OK.", -1, 10, 35, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
 }
 
 IDD_SEARCH DIALOG DISCARDABLE 0, 0, 200, 190 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
diff --git a/programs/winhlp32/Fr.rc b/programs/winhlp32/Fr.rc
index cedb0f6..2ae90b9 100644
--- a/programs/winhlp32/Fr.rc
+++ b/programs/winhlp32/Fr.rc
@@ -79,7 +79,10 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 FONT 8, "MS Shell Dlg"
 CAPTION "Index"
 {
-    LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
+    LISTBOX IDC_INDEXLIST, 10, 44, 185, 139, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL 
+    EDITTEXT IDC_SEARCHWORD,  10, 14, 185, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
+    LTEXT "1  &Type the first few letters of the word you're looking for.", -1, 10, 5, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
+    LTEXT "2  &Click the index entry you want, and then click OK.", -1, 10, 35, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
 }
 
 IDD_SEARCH DIALOG DISCARDABLE 0, 0, 200, 190 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
diff --git a/programs/winhlp32/Ja.rc b/programs/winhlp32/Ja.rc
index b73d18d..b6bf0da 100644
--- a/programs/winhlp32/Ja.rc
+++ b/programs/winhlp32/Ja.rc
@@ -76,7 +76,10 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 FONT 9, "MS Shell Dlg"
 CAPTION "索引"
 {
-    LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
+    LISTBOX IDC_INDEXLIST, 10, 44, 185, 139, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL 
+    EDITTEXT IDC_SEARCHWORD,  10, 14, 185, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
+    LTEXT "1  &Type the first few letters of the word you're looking for.", -1, 10, 5, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
+    LTEXT "2  &Click the index entry you want, and then click OK.", -1, 10, 35, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
 }
 
 IDD_SEARCH DIALOG DISCARDABLE 0, 0, 200, 190 LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
diff --git a/programs/winhlp32/Ko.rc b/programs/winhlp32/Ko.rc
index 8b4c785..b6d81c0 100644
--- a/programs/winhlp32/Ko.rc
+++ b/programs/winhlp32/Ko.rc
@@ -74,7 +74,10 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 FONT 9, "MS Shell Dlg"
 CAPTION "À妽º"
 {
-    LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
+    LISTBOX IDC_INDEXLIST, 10, 44, 185, 139, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL 
+    EDITTEXT IDC_SEARCHWORD,  10, 14, 185, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
+    LTEXT "1  &Type the first few letters of the word you're looking for.", -1, 10, 5, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
+    LTEXT "2  &Click the index entry you want, and then click OK.", -1, 10, 35, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
 }
 
 IDD_SEARCH DIALOG DISCARDABLE 0, 0, 200, 190 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
diff --git a/programs/winhlp32/Lt.rc b/programs/winhlp32/Lt.rc
index f8e7868..13887fb 100644
--- a/programs/winhlp32/Lt.rc
+++ b/programs/winhlp32/Lt.rc
@@ -77,7 +77,10 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 FONT 8, "MS Shell Dlg"
 CAPTION "Indeksas"
 {
-    LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
+    LISTBOX IDC_INDEXLIST, 10, 44, 185, 139, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL 
+    EDITTEXT IDC_SEARCHWORD,  10, 14, 185, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
+    LTEXT "1  &Type the first few letters of the word you're looking for.", -1, 10, 5, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
+    LTEXT "2  &Click the index entry you want, and then click OK.", -1, 10, 35, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
 }
 
 IDD_SEARCH DIALOG DISCARDABLE 0, 0, 200, 190
diff --git a/programs/winhlp32/Nl.rc b/programs/winhlp32/Nl.rc
index 029d582..f6bae6b 100644
--- a/programs/winhlp32/Nl.rc
+++ b/programs/winhlp32/Nl.rc
@@ -75,7 +75,10 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 FONT 8, "MS Shell Dlg"
 CAPTION "Index"
 {
-    LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
+    LISTBOX IDC_INDEXLIST, 10, 44, 185, 139, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL 
+    EDITTEXT IDC_SEARCHWORD,  10, 14, 185, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
+    LTEXT "1  &Type the first few letters of the word you're looking for.", -1, 10, 5, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
+    LTEXT "2  &Click the index entry you want, and then click OK.", -1, 10, 35, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
 }
 
 IDD_SEARCH DIALOG DISCARDABLE 0, 0, 200, 190 LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
diff --git a/programs/winhlp32/No.rc b/programs/winhlp32/No.rc
index 2cf2a78..68a1657 100644
--- a/programs/winhlp32/No.rc
+++ b/programs/winhlp32/No.rc
@@ -72,7 +72,10 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 FONT 8, "MS Shell Dlg"
 CAPTION "Innhold"
 {
-    LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
+    LISTBOX IDC_INDEXLIST, 10, 44, 185, 139, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL 
+    EDITTEXT IDC_SEARCHWORD,  10, 14, 185, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
+    LTEXT "1  &Type the first few letters of the word you're looking for.", -1, 10, 5, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
+    LTEXT "2  &Click the index entry you want, and then click OK.", -1, 10, 35, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
 }
 
 IDD_SEARCH DIALOG DISCARDABLE 0, 0, 200, 190 LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
diff --git a/programs/winhlp32/Pl.rc b/programs/winhlp32/Pl.rc
index 7504789..bf2b4a3 100644
--- a/programs/winhlp32/Pl.rc
+++ b/programs/winhlp32/Pl.rc
@@ -74,7 +74,10 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 FONT 8, "MS Shell Dlg"
 CAPTION "Indeks"
 {
-    LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
+    LISTBOX IDC_INDEXLIST, 10, 44, 185, 139, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL 
+    EDITTEXT IDC_SEARCHWORD,  10, 14, 185, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
+    LTEXT "1  &Type the first few letters of the word you're looking for.", -1, 10, 5, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
+    LTEXT "2  &Click the index entry you want, and then click OK.", -1, 10, 35, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
 }
 
 /* Strings */
diff --git a/programs/winhlp32/Pt.rc b/programs/winhlp32/Pt.rc
index 28933a2..01cd4b0 100644
--- a/programs/winhlp32/Pt.rc
+++ b/programs/winhlp32/Pt.rc
@@ -129,7 +129,10 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 FONT 8, "MS Shell Dlg"
 CAPTION "Índice"
 {
-    LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
+    LISTBOX IDC_INDEXLIST, 10, 44, 185, 139, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL 
+    EDITTEXT IDC_SEARCHWORD,  10, 14, 185, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
+    LTEXT "1  &Type the first few letters of the word you're looking for.", -1, 10, 5, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
+    LTEXT "2  &Click the index entry you want, and then click OK.", -1, 10, 35, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
 }
 
 IDD_SEARCH DIALOG DISCARDABLE 0, 0, 200, 190 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
diff --git a/programs/winhlp32/Ro.rc b/programs/winhlp32/Ro.rc
index 1f916ac..de58889 100644
--- a/programs/winhlp32/Ro.rc
+++ b/programs/winhlp32/Ro.rc
@@ -78,7 +78,10 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 FONT 8, "MS Shell Dlg"
 CAPTION "Index"
 {
-    LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
+    LISTBOX IDC_INDEXLIST, 10, 44, 185, 139, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL 
+    EDITTEXT IDC_SEARCHWORD,  10, 14, 185, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
+    LTEXT "1  &Type the first few letters of the word you're looking for.", -1, 10, 5, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
+    LTEXT "2  &Click the index entry you want, and then click OK.", -1, 10, 35, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
 }
 
 IDD_SEARCH DIALOG DISCARDABLE 0, 0, 200, 190
diff --git a/programs/winhlp32/Ru.rc b/programs/winhlp32/Ru.rc
index 165094f..78193fd 100644
--- a/programs/winhlp32/Ru.rc
+++ b/programs/winhlp32/Ru.rc
@@ -77,7 +77,10 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 FONT 8, "MS Shell Dlg"
 CAPTION "Указатель"
 {
-    LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
+    LISTBOX IDC_INDEXLIST, 10, 44, 185, 139, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL 
+    EDITTEXT IDC_SEARCHWORD,  10, 14, 185, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
+    LTEXT "&1. Введите первые буквы нужного слова.", -1, 10, 5, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
+    LTEXT "&2. Выберите термин или фразу и нажмите кнопку OK.", -1, 10, 35, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
 }
 
 /* Strings */
diff --git a/programs/winhlp32/Si.rc b/programs/winhlp32/Si.rc
index 527b454..6008788 100644
--- a/programs/winhlp32/Si.rc
+++ b/programs/winhlp32/Si.rc
@@ -74,7 +74,10 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 FONT 8, "MS Shell Dlg"
 CAPTION "Indeks"
 {
-    LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
+    LISTBOX IDC_INDEXLIST, 10, 44, 185, 139, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL 
+    EDITTEXT IDC_SEARCHWORD,  10, 14, 185, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
+    LTEXT "1  &Type the first few letters of the word you're looking for.", -1, 10, 5, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
+    LTEXT "2  &Click the index entry you want, and then click OK.", -1, 10, 35, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
 }
 
 IDD_SEARCH DIALOG DISCARDABLE 0, 0, 200, 190 LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
diff --git a/programs/winhlp32/Sv.rc b/programs/winhlp32/Sv.rc
index 935b618..069ba4f 100644
--- a/programs/winhlp32/Sv.rc
+++ b/programs/winhlp32/Sv.rc
@@ -76,7 +76,10 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 FONT 8, "MS Shell Dlg"
 CAPTION "Index"
 {
-    LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
+    LISTBOX IDC_INDEXLIST, 10, 44, 185, 139, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL 
+    EDITTEXT IDC_SEARCHWORD,  10, 14, 185, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
+    LTEXT "1  &Type the first few letters of the word you're looking for.", -1, 10, 5, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
+    LTEXT "2  &Click the index entry you want, and then click OK.", -1, 10, 35, 185, 8, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP
 }
 
 IDD_SEARCH DIALOG DISCARDABLE 0, 0, 200, 190 LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
diff --git a/programs/winhlp32/winhelp.c b/programs/winhlp32/winhelp.c
index fb05aeb..67460a3 100644
--- a/programs/winhlp32/winhelp.c
+++ b/programs/winhlp32/winhelp.c
@@ -43,6 +43,7 @@
 #include "commctrl.h"
 
 #include "wine/debug.h"
+#include "wine/unicode.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(winhelp);
 
@@ -1257,6 +1258,28 @@ static INT_PTR CALLBACK WINHELP_IndexDlgProc(HWND hWnd, UINT msg, WPARAM wParam,
             if (LOWORD(wParam) == IDC_INDEXLIST)
                 SendMessage(GetParent(hWnd), PSM_PRESSBUTTON, PSBTN_OK, 0);
             break;
+        case EN_CHANGE:
+            {
+                WCHAR wszSearchText[257]; /* Native uses only first 256 symbols + trailing \0 */
+                int i, count = SendMessageW(GetDlgItem(hWnd, IDC_INDEXLIST), LB_GETCOUNT, 0, 0);
+                HWND hList = GetDlgItem(hWnd, IDC_INDEXLIST);
+
+                GetWindowTextW(GetDlgItem(hWnd, IDC_SEARCHWORD), wszSearchText, sizeof(wszSearchText)/sizeof(WCHAR));
+
+                for(i = 0; i < count; i++)
+                {
+                    WCHAR wszItemText[257];
+                    SendMessageW(hList, LB_GETTEXT, i, (LPARAM)&wszItemText);
+
+                    if(!strncmpW(CharLowerW(wszItemText), CharLowerW(wszSearchText), strlenW(wszSearchText)))
+                    {
+                        SendMessageW(hList, LB_SETCURSEL, i, 0);
+                        break;
+                    }
+
+                }
+            }
+            break;
         }
         break;
     case WM_NOTIFY:
diff --git a/programs/winhlp32/winhelp_res.h b/programs/winhlp32/winhelp_res.h
index ba2f979..6a4336b 100644
--- a/programs/winhlp32/winhelp_res.h
+++ b/programs/winhlp32/winhelp_res.h
@@ -58,5 +58,6 @@
 #define IDD_INDEX               0x150
 #define IDC_INDEXLIST           0x151
 #define IDD_SEARCH              0x152
+#define IDC_SEARCHWORD          0x153
 
 #define IDI_WINHELP             0xF00
-- 
1.6.0.2


--------------010409020506030804010703--



More information about the wine-patches mailing list