From d46af68a823bfa1fa5099598b7553fb0017a3e7d Mon Sep 17 00:00:00 2001 From: Heiko Hund Date: Fri, 16 Jan 2009 22:54:50 +0000 Subject: [PATCH] added function to load localized dialog --- localization.c | 27 +++++++++++++++++++++------ localization.h | 5 +++-- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/localization.c b/localization.c index 4da7804..6a77000 100755 --- a/localization.c +++ b/localization.c @@ -25,7 +25,7 @@ static const LANGID defaultLangId = MAKELANGID(LANG_ENGLISH, SUBLANG_NEUTRAL); static HRSRC -FindLangResource(HINSTANCE instance, PTSTR resType, PTSTR resId, LANGID langId) +FindResourceLang(HINSTANCE instance, PTSTR resType, PTSTR resId, LANGID langId) { HRSRC res; @@ -45,14 +45,14 @@ FindLangResource(HINSTANCE instance, PTSTR resType, PTSTR resId, LANGID langId) int -LoadLangString(HINSTANCE instance, UINT stringId, LANGID langId, PTSTR buffer, int bufferSize) +LoadStringLang(HINSTANCE instance, UINT stringId, LANGID langId, PTSTR buffer, int bufferSize) { PWCH entry; PTSTR resBlockId = MAKEINTRESOURCE(stringId / 16 + 1); int resIndex = stringId & 15; /* find resource block for string */ - HRSRC res = FindLangResource(instance, RT_STRING, resBlockId, langId); + HRSRC res = FindResourceLang(instance, RT_STRING, resBlockId, langId); if (res == NULL) return 0; @@ -90,10 +90,10 @@ LoadLangString(HINSTANCE instance, UINT stringId, LANGID langId, PTSTR buffer, i HICON -LoadLangIcon(HINSTANCE instance, PTSTR iconId, LANGID langId) +LoadIconLang(HINSTANCE instance, PTSTR iconId, LANGID langId) { /* find group icon resource */ - HRSRC res = FindLangResource(instance, RT_GROUP_ICON, iconId, langId); + HRSRC res = FindResourceLang(instance, RT_GROUP_ICON, iconId, langId); if (res == NULL) return NULL; @@ -106,7 +106,7 @@ LoadLangIcon(HINSTANCE instance, PTSTR iconId, LANGID langId) return NULL; /* find the actual icon */ - res = FindLangResource(instance, RT_ICON, MAKEINTRESOURCE(id), langId); + res = FindResourceLang(instance, RT_ICON, MAKEINTRESOURCE(id), langId); if (res == NULL) return NULL; @@ -120,3 +120,18 @@ LoadLangIcon(HINSTANCE instance, PTSTR iconId, LANGID langId) return CreateIconFromResource(resInfo, resSize, TRUE, 0x30000); } + +INT_PTR +DialogBoxLang(HINSTANCE instance, PTSTR dialogId, LANGID langId, HWND parentWnd, DLGPROC dialogFunc) +{ + /* find dialog resource */ + HRSRC res = FindResourceLang(instance, RT_DIALOG, dialogId, langId); + if (res == NULL) + return -1; + + HGLOBAL resInfo = LoadResource(instance, res); + if (resInfo == NULL) + return -1; + + return DialogBoxIndirect(instance, resInfo, parentWnd, dialogFunc); +} diff --git a/localization.h b/localization.h index 39fc7bc..dfef6a2 100755 --- a/localization.h +++ b/localization.h @@ -19,5 +19,6 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -int LoadLangString(HINSTANCE, UINT, LANGID, PTSTR, int); -HICON LoadLangIcon(HINSTANCE, PTSTR, LANGID); +int LoadStringLang(HINSTANCE, UINT, LANGID, PTSTR, int); +HICON LoadIconLang(HINSTANCE, PTSTR, LANGID); +INT_PTR DialogBoxLang(HINSTANCE, LPCTSTR, LANGID, HWND, DLGPROC);