diff options
Diffstat (limited to 'utilities.cpp')
-rw-r--r-- | utilities.cpp | 33 |
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; +} |