From 65d7fb1a82e8a93bb51f5b3c244d58585f33ff61 Mon Sep 17 00:00:00 2001 From: Thamatip Chitpong Date: Mon, 20 Jun 2022 02:22:28 +0700 Subject: [PATCH] [HHCTRL.OCX] Add help viewer window icon and default title (#4541) --- dll/win32/hhctrl.ocx/chm.c | 3 ++- dll/win32/hhctrl.ocx/help.c | 6 +++--- dll/win32/hhctrl.ocx/hhctrl.h | 1 + dll/win32/hhctrl.ocx/hhctrl.rc | 3 +++ dll/win32/hhctrl.ocx/lang/Cs.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Da.rc | 2 ++ dll/win32/hhctrl.ocx/lang/De.rc | 2 ++ dll/win32/hhctrl.ocx/lang/El.rc | 2 ++ dll/win32/hhctrl.ocx/lang/En.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Es.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Fi.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Fr.rc | 2 ++ dll/win32/hhctrl.ocx/lang/He.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Hu.rc | 2 ++ dll/win32/hhctrl.ocx/lang/It.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Ja.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Ko.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Lt.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Nl.rc | 2 ++ dll/win32/hhctrl.ocx/lang/No.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Pl.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Pt.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Ro.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Ru.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Si.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Sq.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Sv.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Tr.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Uk.rc | 2 ++ dll/win32/hhctrl.ocx/lang/Zh.rc | 2 ++ dll/win32/hhctrl.ocx/res/hh.ico | Bin 0 -> 22486 bytes dll/win32/hhctrl.ocx/resource.h | 3 +++ 32 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 dll/win32/hhctrl.ocx/res/hh.ico diff --git a/dll/win32/hhctrl.ocx/chm.c b/dll/win32/hhctrl.ocx/chm.c index 07211f1dbd5..6336026b378 100644 --- a/dll/win32/hhctrl.ocx/chm.c +++ b/dll/win32/hhctrl.ocx/chm.c @@ -21,6 +21,7 @@ #include "hhctrl.h" #include "stream.h" +#include "resource.h" #include "winreg.h" #include "shlwapi.h" @@ -459,7 +460,7 @@ BOOL LoadWinTypeFromCHM(HHInfo *info) /* merge the new data with any pre-existing HH_WINTYPE structure */ MergeChmProperties(&wintype, info, FALSE); if (!info->WinType.pszCaption) - info->WinType.pszCaption = info->stringsW.pszCaption = strdupW(info->pCHMInfo->defTitle ? info->pCHMInfo->defTitle : empty); + info->WinType.pszCaption = info->stringsW.pszCaption = (info->pCHMInfo->defTitle ? strdupW(info->pCHMInfo->defTitle) : HH_LoadString(IDS_DEFTITLE)); if (!info->WinType.pszFile) info->WinType.pszFile = info->stringsW.pszFile = strdupW(info->pCHMInfo->defTopic ? info->pCHMInfo->defTopic : empty); if (!info->WinType.pszToc) diff --git a/dll/win32/hhctrl.ocx/help.c b/dll/win32/hhctrl.ocx/help.c index 06f73358f44..de9dc086726 100644 --- a/dll/win32/hhctrl.ocx/help.c +++ b/dll/win32/hhctrl.ocx/help.c @@ -171,7 +171,7 @@ static inline BOOL navigation_visible(HHInfo *info) } /* Loads a string from the resource file */ -static LPWSTR HH_LoadString(DWORD dwID) +LPWSTR HH_LoadString(DWORD dwID) { LPWSTR string = NULL; LPCWSTR stringresource; @@ -1620,12 +1620,12 @@ static BOOL HH_CreateHelpWindow(HHInfo *info) wcex.cbClsExtra = 0; wcex.cbWndExtra = sizeof(LONG_PTR); wcex.hInstance = hhctrl_hinstance; - wcex.hIcon = LoadIconW(NULL, (LPCWSTR)IDI_APPLICATION); + wcex.hIcon = LoadIconW(hhctrl_hinstance, MAKEINTRESOURCEW(IDI_HHICON)); wcex.hCursor = LoadCursorW(NULL, (LPCWSTR)IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_MENU + 1); wcex.lpszMenuName = NULL; wcex.lpszClassName = windowClassW; - wcex.hIconSm = LoadIconW(NULL, (LPCWSTR)IDI_APPLICATION); + wcex.hIconSm = NULL; RegisterClassExW(&wcex); diff --git a/dll/win32/hhctrl.ocx/hhctrl.h b/dll/win32/hhctrl.ocx/hhctrl.h index a03d09f5633..f302815b45d 100644 --- a/dll/win32/hhctrl.ocx/hhctrl.h +++ b/dll/win32/hhctrl.ocx/hhctrl.h @@ -229,6 +229,7 @@ WCHAR *GetDocumentTitle(CHMInfo*,LPCWSTR) DECLSPEC_HIDDEN; extern struct list window_list DECLSPEC_HIDDEN; HHInfo *CreateHelpViewer(HHInfo*,LPCWSTR,HWND) DECLSPEC_HIDDEN; void ReleaseHelpViewer(HHInfo*) DECLSPEC_HIDDEN; +LPWSTR HH_LoadString(DWORD dwID) DECLSPEC_HIDDEN; BOOL NavigateToUrl(HHInfo*,LPCWSTR) DECLSPEC_HIDDEN; BOOL NavigateToChm(HHInfo*,LPCWSTR,LPCWSTR) DECLSPEC_HIDDEN; void MergeChmProperties(HH_WINTYPEW*,HHInfo*,BOOL) DECLSPEC_HIDDEN; diff --git a/dll/win32/hhctrl.ocx/hhctrl.rc b/dll/win32/hhctrl.ocx/hhctrl.rc index c270efa9374..f743a47239e 100644 --- a/dll/win32/hhctrl.ocx/hhctrl.rc +++ b/dll/win32/hhctrl.ocx/hhctrl.rc @@ -114,6 +114,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #include "wine/wine_common_ver.rc" +/* help viewer window icon */ +IDI_HHICON ICON "res/hh.ico" + /* @makedep: hhtoolbar.bmp */ IDB_HHTOOLBAR BITMAP "res/hhtoolbar.bmp" diff --git a/dll/win32/hhctrl.ocx/lang/Cs.rc b/dll/win32/hhctrl.ocx/lang/Cs.rc index 5d6bf545b4f..ab0e3a0ad87 100644 --- a/dll/win32/hhctrl.ocx/lang/Cs.rc +++ b/dll/win32/hhctrl.ocx/lang/Cs.rc @@ -27,6 +27,8 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Obsah" IDS_INDEX "I&ndex" IDS_SEARCH "&Hledat" diff --git a/dll/win32/hhctrl.ocx/lang/Da.rc b/dll/win32/hhctrl.ocx/lang/Da.rc index c775b341250..a9a18b62117 100644 --- a/dll/win32/hhctrl.ocx/lang/Da.rc +++ b/dll/win32/hhctrl.ocx/lang/Da.rc @@ -23,6 +23,8 @@ LANGUAGE LANG_DANISH, SUBLANG_DEFAULT STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Indhold" IDS_INDEX "I&ndeks" IDS_SEARCH "&Søg" diff --git a/dll/win32/hhctrl.ocx/lang/De.rc b/dll/win32/hhctrl.ocx/lang/De.rc index e24593d1124..a5e73a8c487 100644 --- a/dll/win32/hhctrl.ocx/lang/De.rc +++ b/dll/win32/hhctrl.ocx/lang/De.rc @@ -25,6 +25,8 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Inhalt" IDS_INDEX "I&ndex" IDS_SEARCH "&Suche" diff --git a/dll/win32/hhctrl.ocx/lang/El.rc b/dll/win32/hhctrl.ocx/lang/El.rc index 08a441a8f56..ea2dba6a954 100644 --- a/dll/win32/hhctrl.ocx/lang/El.rc +++ b/dll/win32/hhctrl.ocx/lang/El.rc @@ -23,6 +23,8 @@ LANGUAGE LANG_GREEK, SUBLANG_DEFAULT STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Περιεχόμενα" IDS_INDEX "I&ndex" IDS_SEARCH "&Αναζήτηση" diff --git a/dll/win32/hhctrl.ocx/lang/En.rc b/dll/win32/hhctrl.ocx/lang/En.rc index bad46bdf247..9be92a1ea3f 100644 --- a/dll/win32/hhctrl.ocx/lang/En.rc +++ b/dll/win32/hhctrl.ocx/lang/En.rc @@ -24,6 +24,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Contents" IDS_INDEX "I&ndex" IDS_SEARCH "&Search" diff --git a/dll/win32/hhctrl.ocx/lang/Es.rc b/dll/win32/hhctrl.ocx/lang/Es.rc index 5d1417a1a95..d0f52c2ba2c 100644 --- a/dll/win32/hhctrl.ocx/lang/Es.rc +++ b/dll/win32/hhctrl.ocx/lang/Es.rc @@ -26,6 +26,8 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Contenido" IDS_INDEX "Í&ndice" IDS_SEARCH "&Buscar" diff --git a/dll/win32/hhctrl.ocx/lang/Fi.rc b/dll/win32/hhctrl.ocx/lang/Fi.rc index 606406bd880..01627043d66 100644 --- a/dll/win32/hhctrl.ocx/lang/Fi.rc +++ b/dll/win32/hhctrl.ocx/lang/Fi.rc @@ -23,6 +23,8 @@ LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Sisällys" IDS_INDEX "&Hakemisto" IDS_SEARCH "&Etsi" diff --git a/dll/win32/hhctrl.ocx/lang/Fr.rc b/dll/win32/hhctrl.ocx/lang/Fr.rc index e6f3f98f47a..a564492455b 100644 --- a/dll/win32/hhctrl.ocx/lang/Fr.rc +++ b/dll/win32/hhctrl.ocx/lang/Fr.rc @@ -26,6 +26,8 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL STRINGTABLE BEGIN + IDS_DEFTITLE "Aide HTML" + IDS_CONTENTS "Somm&aire" IDS_INDEX "I&ndex" IDS_SEARCH "&Recherche" diff --git a/dll/win32/hhctrl.ocx/lang/He.rc b/dll/win32/hhctrl.ocx/lang/He.rc index 4a537c52006..f5a3c16a581 100644 --- a/dll/win32/hhctrl.ocx/lang/He.rc +++ b/dll/win32/hhctrl.ocx/lang/He.rc @@ -25,6 +25,8 @@ LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "תוכ&ן" IDS_INDEX "&אינקס" IDS_SEARCH "&חפש" diff --git a/dll/win32/hhctrl.ocx/lang/Hu.rc b/dll/win32/hhctrl.ocx/lang/Hu.rc index 3d3a61309ee..cbb837489f3 100644 --- a/dll/win32/hhctrl.ocx/lang/Hu.rc +++ b/dll/win32/hhctrl.ocx/lang/Hu.rc @@ -23,6 +23,8 @@ LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Tartalom" IDS_INDEX "I&ndex" IDS_SEARCH "&Keresés" diff --git a/dll/win32/hhctrl.ocx/lang/It.rc b/dll/win32/hhctrl.ocx/lang/It.rc index 5db3638f9ae..a9522943bef 100644 --- a/dll/win32/hhctrl.ocx/lang/It.rc +++ b/dll/win32/hhctrl.ocx/lang/It.rc @@ -27,6 +27,8 @@ LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Contenuti" IDS_INDEX "&Indice" IDS_SEARCH "&Ricerca" diff --git a/dll/win32/hhctrl.ocx/lang/Ja.rc b/dll/win32/hhctrl.ocx/lang/Ja.rc index 15bee5d0c7b..9cb0943b319 100644 --- a/dll/win32/hhctrl.ocx/lang/Ja.rc +++ b/dll/win32/hhctrl.ocx/lang/Ja.rc @@ -27,6 +27,8 @@ LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "目次(&C)" IDS_INDEX "索引(&N)" IDS_SEARCH "検索(&S)" diff --git a/dll/win32/hhctrl.ocx/lang/Ko.rc b/dll/win32/hhctrl.ocx/lang/Ko.rc index 976cb126d43..cdf568f5674 100644 --- a/dll/win32/hhctrl.ocx/lang/Ko.rc +++ b/dll/win32/hhctrl.ocx/lang/Ko.rc @@ -24,6 +24,8 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "목록(&C)" IDS_INDEX "인덱스(&N)" IDS_SEARCH "찾기(&S)" diff --git a/dll/win32/hhctrl.ocx/lang/Lt.rc b/dll/win32/hhctrl.ocx/lang/Lt.rc index a296a587edd..b672bf3994a 100644 --- a/dll/win32/hhctrl.ocx/lang/Lt.rc +++ b/dll/win32/hhctrl.ocx/lang/Lt.rc @@ -26,6 +26,8 @@ LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Turinys" IDS_INDEX "&Rodyklė" IDS_SEARCH "&Paieška" diff --git a/dll/win32/hhctrl.ocx/lang/Nl.rc b/dll/win32/hhctrl.ocx/lang/Nl.rc index c9ae349d959..a0b78cf7dac 100644 --- a/dll/win32/hhctrl.ocx/lang/Nl.rc +++ b/dll/win32/hhctrl.ocx/lang/Nl.rc @@ -23,6 +23,8 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Inhoud" IDS_INDEX "I&ndex" IDS_SEARCH "&Zoeken" diff --git a/dll/win32/hhctrl.ocx/lang/No.rc b/dll/win32/hhctrl.ocx/lang/No.rc index 7530d27ee41..f645af26faf 100644 --- a/dll/win32/hhctrl.ocx/lang/No.rc +++ b/dll/win32/hhctrl.ocx/lang/No.rc @@ -23,6 +23,8 @@ LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Innhold" IDS_INDEX "I&ndeks" IDS_SEARCH "&Søk" diff --git a/dll/win32/hhctrl.ocx/lang/Pl.rc b/dll/win32/hhctrl.ocx/lang/Pl.rc index 1737398fcae..dc2dc2f7d37 100644 --- a/dll/win32/hhctrl.ocx/lang/Pl.rc +++ b/dll/win32/hhctrl.ocx/lang/Pl.rc @@ -24,6 +24,8 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Spis treści" IDS_INDEX "&Indeks" IDS_SEARCH "&Wyszukaj" diff --git a/dll/win32/hhctrl.ocx/lang/Pt.rc b/dll/win32/hhctrl.ocx/lang/Pt.rc index bedaac0918e..c0ef9c87186 100644 --- a/dll/win32/hhctrl.ocx/lang/Pt.rc +++ b/dll/win32/hhctrl.ocx/lang/Pt.rc @@ -26,6 +26,8 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Conteúdos" IDS_INDEX "&Índice" IDS_SEARCH "&Pesquisar" diff --git a/dll/win32/hhctrl.ocx/lang/Ro.rc b/dll/win32/hhctrl.ocx/lang/Ro.rc index f7a7a58e489..e106ffeaf94 100644 --- a/dll/win32/hhctrl.ocx/lang/Ro.rc +++ b/dll/win32/hhctrl.ocx/lang/Ro.rc @@ -27,6 +27,8 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "C&uprins" IDS_INDEX "In&dex" IDS_SEARCH "&Caută" diff --git a/dll/win32/hhctrl.ocx/lang/Ru.rc b/dll/win32/hhctrl.ocx/lang/Ru.rc index acee6af8ebe..8e8e51413d2 100644 --- a/dll/win32/hhctrl.ocx/lang/Ru.rc +++ b/dll/win32/hhctrl.ocx/lang/Ru.rc @@ -26,6 +26,8 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Содержание" IDS_INDEX "&Оглавление" IDS_SEARCH "&Поиск" diff --git a/dll/win32/hhctrl.ocx/lang/Si.rc b/dll/win32/hhctrl.ocx/lang/Si.rc index a4959dd7a53..3961f17ca97 100644 --- a/dll/win32/hhctrl.ocx/lang/Si.rc +++ b/dll/win32/hhctrl.ocx/lang/Si.rc @@ -25,6 +25,8 @@ LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Vsebina" IDS_INDEX "I&ndeks" IDS_SEARCH "&Iskanje" diff --git a/dll/win32/hhctrl.ocx/lang/Sq.rc b/dll/win32/hhctrl.ocx/lang/Sq.rc index 1eacfe2c2f9..5fca78c68ec 100644 --- a/dll/win32/hhctrl.ocx/lang/Sq.rc +++ b/dll/win32/hhctrl.ocx/lang/Sq.rc @@ -26,6 +26,8 @@ LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "Përmbajtja" IDS_INDEX "I&ndex" IDS_SEARCH "Kerko" diff --git a/dll/win32/hhctrl.ocx/lang/Sv.rc b/dll/win32/hhctrl.ocx/lang/Sv.rc index 74f04bb6a2c..ccf488aeea9 100644 --- a/dll/win32/hhctrl.ocx/lang/Sv.rc +++ b/dll/win32/hhctrl.ocx/lang/Sv.rc @@ -23,6 +23,8 @@ LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Innehåll" IDS_INDEX "I&ndex" IDS_SEARCH "&Sök" diff --git a/dll/win32/hhctrl.ocx/lang/Tr.rc b/dll/win32/hhctrl.ocx/lang/Tr.rc index f2e8570b319..c1b4e3e1bb1 100644 --- a/dll/win32/hhctrl.ocx/lang/Tr.rc +++ b/dll/win32/hhctrl.ocx/lang/Tr.rc @@ -23,6 +23,8 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&İçindekiler" IDS_INDEX "&Dizin" IDS_SEARCH "&Ara" diff --git a/dll/win32/hhctrl.ocx/lang/Uk.rc b/dll/win32/hhctrl.ocx/lang/Uk.rc index 46414c469d5..017786967c8 100644 --- a/dll/win32/hhctrl.ocx/lang/Uk.rc +++ b/dll/win32/hhctrl.ocx/lang/Uk.rc @@ -28,6 +28,8 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "&Зміст" IDS_INDEX "&Вказівник" IDS_SEARCH "&Пошук" diff --git a/dll/win32/hhctrl.ocx/lang/Zh.rc b/dll/win32/hhctrl.ocx/lang/Zh.rc index 695ab1d155b..39036f99e09 100644 --- a/dll/win32/hhctrl.ocx/lang/Zh.rc +++ b/dll/win32/hhctrl.ocx/lang/Zh.rc @@ -26,6 +26,8 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED STRINGTABLE BEGIN + IDS_DEFTITLE "HTML Help" + IDS_CONTENTS "内容(&C)" IDS_INDEX "索引(&N)" IDS_SEARCH "搜索(&S)" diff --git a/dll/win32/hhctrl.ocx/res/hh.ico b/dll/win32/hhctrl.ocx/res/hh.ico new file mode 100644 index 0000000000000000000000000000000000000000..90e3a9ef34a5e9fa4120a1f74bfe510486ec8e52 GIT binary patch literal 22486 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 #include +#define IDI_HHICON 100 + +#define IDS_DEFTITLE 0 #define IDS_CONTENTS 1 #define IDS_INDEX 2 #define IDS_SEARCH 3