summaryrefslogtreecommitdiff
path: root/utilities.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utilities.cpp')
-rw-r--r--utilities.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/utilities.cpp b/utilities.cpp
index bfb1f47..8349430 100644
--- a/utilities.cpp
+++ b/utilities.cpp
@@ -182,3 +182,36 @@ const int Stristr(const TCHAR *str, const TCHAR *substr)
return i;
}
+
+TCHAR* ReqGetText(DBEVENTINFO* dbei)
+{
+ if ( !dbei->pBlob )
+ return 0;
+
+ if ( dbei->flags & DBEF_UTF ) // UTF only
+ {
+ char * ptr=(char *)&dbei->pBlob[sizeof(DWORD)*2];
+ int len=dbei->cbBlob-sizeof(DWORD)*2;
+ int i=0;
+
+ while(len&&(i<4))
+ {
+ if(!ptr[0]) i++;
+ ptr++;
+ len--;
+ };
+
+ if(len){
+ char * tstr=(char *)mir_alloc(len+1);
+ memcpy(tstr, ptr, len);
+ tstr[len]=0;
+ WCHAR* msg = NULL;
+ //mir_utf8decodecp( tstr, egt->codepage, &msg );
+ msg=mir_utf8decodeW(tstr);
+ mir_free(tstr);
+ return (TCHAR *)msg;
+ };
+
+ }
+ return 0;
+}