static int core_Translate(lua_State *L) { char *what = (char*)luaL_checkstring(L, 1); ptrT value(mir_utf8decodeT(what)); lua_pushstring(L, T2Utf(TranslateW_LP(value, hLangpack))); return 1; }
static INT_PTR srvPcharToTchar(WPARAM wParam, LPARAM lParam) { char *pszStr = (char*)lParam; if (pszStr == NULL) return NULL; int len = (int)strlen(pszStr); TCHAR *result = (TCHAR*)alloca((len+1)*sizeof(TCHAR)); MultiByteToWideChar(Langpack_GetDefaultCodePage(), 0, pszStr, -1, result, len); result[len] = 0; return (INT_PTR)mir_wstrdup(TranslateW_LP(result, wParam)); }
static INT_PTR srvRegister(WPARAM wParam, LPARAM lParam) { CRYPTO_PROVIDER *p = (CRYPTO_PROVIDER*)lParam; if (p == NULL || p->dwSize != sizeof(CRYPTO_PROVIDER)) return 1; CRYPTO_PROVIDER *pNew = new CRYPTO_PROVIDER(*p); pNew->pszName = mir_strdup(p->pszName); if (pNew->dwFlags & CPF_UNICODE) pNew->ptszDescr = mir_u2t(TranslateW_LP(p->pwszDescr, wParam)); else pNew->ptszDescr = mir_a2t(TranslateA_LP(p->pszDescr, wParam)); arProviders.insert(pNew); return 0; }
static INT_PTR srvTranslateString(WPARAM wParam, LPARAM lParam) { if (wParam & LANG_UNICODE) return (INT_PTR)TranslateW_LP((const WCHAR*)lParam, wParam); return (INT_PTR)TranslateA_LP((const char *)lParam, wParam); }