From b81ce648978e75bc7db4cc3b8aa7d1b9fcb9239b Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 21 Jun 2015 22:00:16 +0000 Subject: MS_UTILS_REPLACEVARS -> Utils_ReplaceVars git-svn-id: http://svn.miranda-ng.org/main/trunk@14316 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- include/delphi/m_utils.inc | 23 ++++++------------ include/m_utils.h | 58 +++++++++++----------------------------------- 2 files changed, 21 insertions(+), 60 deletions(-) (limited to 'include') diff --git a/include/delphi/m_utils.inc b/include/delphi/m_utils.inc index f71dfedd65..1a313cea7e 100644 --- a/include/delphi/m_utils.inc +++ b/include/delphi/m_utils.inc @@ -309,10 +309,9 @@ function PathIsAbsoluteW(const pSrc:PWideChar):int; stdcall; procedure Utils_GetRandom(pSrc:pointer; size:size_t); stdcall; external CoreDLL name 'Utils_GetRandom'; -//Replace variables in text -//wParam=(char*/TCHAR*/WCHAR*)string (depends on RVF_UNICODE/RVF_TCHAR flag) -//lParam=(REPLACEVARSDATA *) data about variables, item with key=0 terminates the list -//returns new string, use mir_free to destroy +// Replace variables in text +// returns new string, use mir_free to destroy + type PREPLACEVARSARRAY = ^TREPLACEVARSARRAY; TREPLACEVARSARRAY = record @@ -320,18 +319,10 @@ type szValue:TCHAR; end; -type - TREPLACEVARSDATA = record - cbSize :int; - dwFlags :dword; - hContact :TMCONTACT; - variables:PREPLACEVARSARRAY; - end; - -const - RVF_UNICODE = 1; - - MS_UTILS_REPLACEVARS:PAnsiChar = 'Utils/ReplaceVars'; +function Utils_ReplaceVars(const pSrc:PAnsiChar; hContact:TMCONTACT = 0; vars:PREPLACEVARSARRAY = nil):PAnsiChar; stdcall; + external CoreDLL name 'Utils_ReplaceVars'; +function Utils_ReplaceVarsW(const pSrc:PWideChar; hContact:TMCONTACT = 0; vars:PREPLACEVARSARRAY = nil):PWideChar; stdcall; + external CoreDLL name 'Utils_ReplaceVarsW'; { variables known by the core: diff --git a/include/m_utils.h b/include/m_utils.h index 96e7cbe783..02e7d994d3 100644 --- a/include/m_utils.h +++ b/include/m_utils.h @@ -356,47 +356,15 @@ EXTERN_C MIR_CORE_DLL(void) Utils_GetRandom(void *pszDest, size_t cbLen); // %destkop% -> location of the desktop folder in a user's profile. // %mydocuments% -> location of the "My Documents" shell folder. -typedef struct +struct REPLACEVARSARRAY { - union - { - TCHAR *lptzKey; - char *lpszKey; - WCHAR *lpwzKey; - }; - union - { - TCHAR *lptzValue; - char *lpszValue; - WCHAR *lpwzValue; - }; -} REPLACEVARSARRAY; - -typedef struct -{ - int cbSize; - DWORD dwFlags; - MCONTACT hContact; - REPLACEVARSARRAY *variables; -} REPLACEVARSDATA; - -#define RVF_UNICODE 1 -#ifdef _UNICODE - #define RVF_TCHAR RVF_UNICODE -#else - #define RVF_TCHAR 0 -#endif + MAllStrings key, value; +}; -#define MS_UTILS_REPLACEVARS "Utils/ReplaceVars" +EXTERN_C MIR_APP_DLL(char*) Utils_ReplaceVars(const char *szData, MCONTACT hContact = 0, REPLACEVARSARRAY *vars = NULL); +EXTERN_C MIR_APP_DLL(wchar_t*) Utils_ReplaceVarsW(const wchar_t *szData, MCONTACT hContact = 0, REPLACEVARSARRAY *vars = NULL); -__forceinline char* Utils_ReplaceVars(const char *szData) { - REPLACEVARSDATA dat = { sizeof(dat) }; - return (char*)CallService(MS_UTILS_REPLACEVARS, (WPARAM)szData, (LPARAM)&dat); -} -__forceinline TCHAR* Utils_ReplaceVarsT(const TCHAR *szData) { - REPLACEVARSDATA dat = { sizeof(dat), RVF_TCHAR }; - return (TCHAR*)CallService(MS_UTILS_REPLACEVARS, (WPARAM)szData, (LPARAM)&dat); -} +#define Utils_ReplaceVarsT Utils_ReplaceVarsW #if defined(__cplusplus) #if !defined(M_SYSTEM_CPP_H__) @@ -406,16 +374,18 @@ __forceinline TCHAR* Utils_ReplaceVarsT(const TCHAR *szData) { struct VARS : public ptrA { __forceinline VARS(const char *str) : - ptrA( Utils_ReplaceVars(str)) - {} + ptrA(Utils_ReplaceVars(str)) + {} }; - struct VARST : public ptrT + struct VARSW : public ptrW { - __forceinline VARST(const TCHAR *str) : - ptrT( Utils_ReplaceVarsT(str)) - {} + __forceinline VARSW(const wchar_t *str) : + ptrW(Utils_ReplaceVarsW(str)) + {} }; + + typedef VARSW VARST; #endif ///////////////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3