https://git.reactos.org/?p=reactos.git;a=commitdiff;h=061c7ecb1ae9a752bf84e…
commit 061c7ecb1ae9a752bf84ed039765a43f5c1b3abe
Author: Jérôme Gardou <jerome.gardou(a)reactos.org>
AuthorDate: Thu Apr 29 10:53:08 2021 +0200
Commit: Jérôme Gardou <zefklop(a)users.noreply.github.com>
CommitDate: Mon May 3 22:00:57 2021 +0200
[FRAMEDYN] Fix the whole situation with regards to wchar_t
Alias CHSTRING_WCHAR to unsigned short and use inline wrappers
to be able to use the thing with modern compilers
Put the GCC aliases into the public header.
Enable build with clang-cl
---
dll/win32/CMakeLists.txt | 4 +-
dll/win32/framedyn/CMakeLists.txt | 8 -
dll/win32/framedyn/alias_gcc.s | 98 -------
dll/win32/framedyn/chstring.cpp | 171 ++++++------
dll/win32/framedyn/framedyn.spec | 120 ++++-----
modules/rostests/tests/dllexport/CMakeLists.txt | 12 +-
sdk/include/psdk/chstring.h | 337 ++++++++++++++++++++----
7 files changed, 448 insertions(+), 302 deletions(-)
diff --git a/dll/win32/CMakeLists.txt b/dll/win32/CMakeLists.txt
index 9e7c13363ab..2f46ab09f56 100644
--- a/dll/win32/CMakeLists.txt
+++ b/dll/win32/CMakeLists.txt
@@ -44,9 +44,7 @@ add_subdirectory(faultrep)
add_subdirectory(fltlib)
add_subdirectory(fmifs)
add_subdirectory(fontsub)
-if(NOT USE_CLANG_CL)
- add_subdirectory(framedyn)
-endif()
+add_subdirectory(framedyn)
add_subdirectory(fusion)
add_subdirectory(gdiplus)
add_subdirectory(getuname)
diff --git a/dll/win32/framedyn/CMakeLists.txt b/dll/win32/framedyn/CMakeLists.txt
index 837fea881fa..16e1b7e43e9 100644
--- a/dll/win32/framedyn/CMakeLists.txt
+++ b/dll/win32/framedyn/CMakeLists.txt
@@ -13,11 +13,3 @@ set_target_cpp_properties(framedyn WITH_EXCEPTIONS)
set_module_type(framedyn win32dll UNICODE)
add_importlibs(framedyn oleaut32 msvcrt kernel32 ntdll)
add_cd_file(TARGET framedyn DESTINATION reactos/system32/wbem FOR all)
-
-if(NOT MSVC)
- add_asm_files(framedynex_asm alias_gcc.s)
- add_library(framedynex ${framedynex_asm})
- set_target_properties(framedynex PROPERTIES LINKER_LANGUAGE ASM)
-else()
- target_compile_options(framedyn PRIVATE /Zc:wchar_t-)
-endif()
diff --git a/dll/win32/framedyn/alias_gcc.s b/dll/win32/framedyn/alias_gcc.s
deleted file mode 100644
index 6390c4c1387..00000000000
--- a/dll/win32/framedyn/alias_gcc.s
+++ /dev/null
@@ -1,98 +0,0 @@
-#include <asm.inc>
-
-.code
-.align 4
-
-MACRO(DEFINE_ALIAS, alias, alias2, origstring)
-PUBLIC alias
-.weakref alias2, origstring
-alias:
- jmp alias2
-ENDM
-
-#define DEFINE_ALIAS(alias, orig) DEFINE_ALIAS alias, __wrap_ ## alias, #orig
-
-DEFINE_ALIAS(__ZN8CHString16AllocBeforeWriteEi, ?AllocBeforeWrite@CHString@@IAEXH@Z)
-DEFINE_ALIAS(__ZN8CHString11AllocBufferEi, ?AllocBuffer@CHString@@IAEXH@Z)
-DEFINE_ALIAS(__ZNK8CHString9AllocCopyERS_iii, ?AllocCopy@CHString@@IBEXAAV1@HHH@Z)
-DEFINE_ALIAS(__ZNK8CHString14AllocSysStringEv, ?AllocSysString@CHString@@QBEPAGXZ)
-DEFINE_ALIAS(__ZN8CHString10AssignCopyEiPKw, ?AssignCopy@CHString@@IAEXHPBG@Z)
-DEFINE_ALIAS(__ZN8CHStringC1ERKS_, ??0CHString@@QAE@ABV0@@Z)
-DEFINE_ALIAS(__ZN8CHStringC1EPKc, ??0CHString@@QAE@PBD@Z)
-DEFINE_ALIAS(__ZN8CHStringC1EPKh, ??0CHString@@QAE@PBE@Z)
-DEFINE_ALIAS(__ZN8CHStringC1EPKw, ??0CHString@@QAE@PBG@Z)
-DEFINE_ALIAS(__ZN8CHStringC1EPKwi, ??0CHString@@QAE@PBGH@Z)
-DEFINE_ALIAS(__ZN8CHStringC1Ewi, ??0CHString@@QAE@GH@Z)
-DEFINE_ALIAS(__ZN8CHStringC1Ev, ??0CHString@@QAE@XZ)
-DEFINE_ALIAS(__ZN8CHStringC2Ev, ??0CHString@@QAE@XZ) // CHString::CHString(void)
-DEFINE_ALIAS(__ZNK8CHString7CollateEPKw, ?Collate@CHString@@QBEHPBG@Z)
-DEFINE_ALIAS(__ZNK8CHString7CompareEPKw, ?Compare@CHString@@QBEHPBG@Z)
-DEFINE_ALIAS(__ZNK8CHString13CompareNoCaseEPKw, ?CompareNoCase@CHString@@QBEHPBG@Z)
-DEFINE_ALIAS(__ZN8CHString10ConcatCopyEiPKwiS1_, ?ConcatCopy@CHString@@IAEXHPBGH0@Z)
-DEFINE_ALIAS(__ZN8CHString13ConcatInPlaceEiPKw, ?ConcatInPlace@CHString@@IAEXHPBG@Z)
-DEFINE_ALIAS(__ZN8CHString15CopyBeforeWriteEv, ?CopyBeforeWrite@CHString@@IAEXXZ)
-DEFINE_ALIAS(__ZN8CHString5EmptyEv, ?Empty@CHString@@QAEXXZ)
-DEFINE_ALIAS(__ZNK8CHString4FindEPKw, ?Find@CHString@@QBEHPBG@Z)
-DEFINE_ALIAS(__ZNK8CHString4FindEw, ?Find@CHString@@QBEHG@Z)
-DEFINE_ALIAS(__ZNK8CHString9FindOneOfEPKw, ?FindOneOf@CHString@@QBEHPBG@Z)
-DEFINE_ALIAS(__ZN8CHString6FormatEjz, ?Format@CHString@@QAAXIZZ)
-DEFINE_ALIAS(__ZN8CHString6FormatEPKwz, ?Format@CHString@@QAAXPBGZZ)
-DEFINE_ALIAS(__ZN8CHString14FormatMessageWEjz, ?FormatMessageW@CHString@@QAAXIZZ)
-DEFINE_ALIAS(__ZN8CHString14FormatMessageWEPKwz, ?FormatMessageW@CHString@@QAAXPBGZZ)
-DEFINE_ALIAS(__ZN8CHString7FormatVEPKwPc, ?FormatV@CHString@@QAEXPBGPAD@Z)
-DEFINE_ALIAS(__ZN8CHString9FreeExtraEv, ?FreeExtra@CHString@@QAEXXZ)
-DEFINE_ALIAS(__ZNK8CHString14GetAllocLengthEv, ?GetAllocLength@CHString@@QBEHXZ)
-DEFINE_ALIAS(__ZNK8CHString5GetAtEi, ?GetAt@CHString@@QBEGH@Z)
-DEFINE_ALIAS(__ZN8CHString9GetBufferEi, ?GetBuffer@CHString@@QAEPAGH@Z)
-DEFINE_ALIAS(__ZN8CHString18GetBufferSetLengthEi,
?GetBufferSetLength@CHString@@QAEPAGH@Z)
-DEFINE_ALIAS(__ZNK8CHString7GetDataEv, ?GetData@CHString@@IBEPAUCHStringData@@XZ)
-DEFINE_ALIAS(__ZNK8CHString9GetLengthEv, ?GetLength@CHString@@QBEHXZ)
-DEFINE_ALIAS(__ZN8CHString4InitEv, ?Init@CHString@@IAEXXZ)
-DEFINE_ALIAS(__ZNK8CHString7IsEmptyEv, ?IsEmpty@CHString@@QBEHXZ)
-DEFINE_ALIAS(__ZNK8CHString4LeftEi, ?Left@CHString@@QBE?AV1@H@Z)
-DEFINE_ALIAS(__ZN8CHString11LoadStringWEj, ?LoadStringW@CHString@@QAEHI@Z)
-DEFINE_ALIAS(__ZN8CHString11LoadStringWEjPwj, ?LoadStringW@CHString@@IAEHIPAGI@Z)
-DEFINE_ALIAS(__ZN8CHString10LockBufferEv, ?LockBuffer@CHString@@QAEPAGXZ)
-DEFINE_ALIAS(__ZN8CHString9MakeLowerEv, ?MakeLower@CHString@@QAEXXZ)
-DEFINE_ALIAS(__ZN8CHString11MakeReverseEv, ?MakeReverse@CHString@@QAEXXZ)
-DEFINE_ALIAS(__ZN8CHString9MakeUpperEv, ?MakeUpper@CHString@@QAEXXZ)
-DEFINE_ALIAS(__ZNK8CHString3MidEi, ?Mid@CHString@@QBE?AV1@H@Z)
-DEFINE_ALIAS(__ZNK8CHString3MidEii, ?Mid@CHString@@QBE?AV1@HH@Z)
-DEFINE_ALIAS(__ZN8CHString7ReleaseEP12CHStringData@4,
?Release@CHString@@KGXPAUCHStringData@@@Z)
-DEFINE_ALIAS(__ZN8CHString7ReleaseEv, ?Release@CHString@@IAEXXZ)
-DEFINE_ALIAS(__ZN8CHString13ReleaseBufferEi, ?ReleaseBuffer@CHString@@QAEXH@Z)
-DEFINE_ALIAS(__ZNK8CHString11ReverseFindEw, ?ReverseFind@CHString@@QBEHG@Z)
-DEFINE_ALIAS(__ZNK8CHString5RightEi, ?Right@CHString@@QBE?AV1@H@Z)
-DEFINE_ALIAS(__ZN8CHString10SafeStrlenEPKw@4, ?SafeStrlen@CHString@@KGHPBG@Z)
-DEFINE_ALIAS(__ZN8CHString5SetAtEiw, ?SetAt@CHString@@QAEXHG@Z)
-DEFINE_ALIAS(__ZNK8CHString13SpanExcludingEPKw, ?SpanExcluding@CHString@@QBE?AV1@PBG@Z)
-DEFINE_ALIAS(__ZNK8CHString13SpanIncludingEPKw, ?SpanIncluding@CHString@@QBE?AV1@PBG@Z)
-DEFINE_ALIAS(__ZN8CHString8TrimLeftEv, ?TrimLeft@CHString@@QAEXXZ)
-DEFINE_ALIAS(__ZN8CHString9TrimRightEv, ?TrimRight@CHString@@QAEXXZ)
-DEFINE_ALIAS(__ZN8CHString12UnlockBufferEv, ?UnlockBuffer@CHString@@QAEXXZ)
-DEFINE_ALIAS(__ZNK8CHStringcvPKwEv, ??BCHString@@QBEPBGXZ)
-DEFINE_ALIAS(__ZN8CHStringpLERKS_, ??YCHString@@QAEABV0@ABV0@@Z)
-DEFINE_ALIAS(__ZN8CHStringpLEc, ??YCHString@@QAEABV0@D@Z)
-DEFINE_ALIAS(__ZN8CHStringpLEPKw, ??YCHString@@QAEABV0@PBG@Z)
-DEFINE_ALIAS(__ZN8CHStringpLEw, ??YCHString@@QAEABV0@G@Z)
-DEFINE_ALIAS(__ZN8CHStringaSEPS_, ??4CHString@@QAEABV0@PAV0@@Z)
-DEFINE_ALIAS(__ZN8CHStringaSERKS_, ??4CHString@@QAEABV0@ABV0@@Z)
-DEFINE_ALIAS(__ZN8CHStringaSEPKc, ??4CHString@@QAEABV0@PBD@Z)
-DEFINE_ALIAS(__ZN8CHStringaSEc, ??4CHString@@QAEABV0@D@Z)
-DEFINE_ALIAS(__ZN8CHStringaSEPKh, ??4CHString@@QAEABV0@PBE@Z)
-DEFINE_ALIAS(__ZN8CHStringaSEPKw, ??4CHString@@QAEABV0@PBG@Z)
-DEFINE_ALIAS(__ZN8CHStringaSEw, ??4CHString@@QAEABV0@G@Z)
-DEFINE_ALIAS(__ZNK8CHStringixEi, ??ACHString@@QBEGH@Z)
-DEFINE_ALIAS(__ZN8CHStringD1Ev, ??1CHString@@QAE@XZ) // CHString::~CHString() complete
object destructor
-DEFINE_ALIAS(__ZN8CHStringD2Ev, ??1CHString@@QAE@XZ) // CHString::~CHString() base object
destructor
-DEFINE_ALIAS(__ZplwRK8CHString, ??H@YG?AVCHString@@GABV0@@Z)
-DEFINE_ALIAS(__ZplRK8CHStringw, ??H@YG?AVCHString@@ABV0@G@Z)
-DEFINE_ALIAS(__ZplRK8CHStringPKw, ??H@YG?AVCHString@@ABV0@PBG@Z)
-DEFINE_ALIAS(__ZplPKwRK8CHString, ??H@YG?AVCHString@@PBGABV0@@Z)
-DEFINE_ALIAS(__ZplRK8CHStringS1_, ??H@YG?AVCHString@@ABV0@0@Z)
-DEFINE_ALIAS(__ZN8Provider5FlushEv, ?Flush@Provider@@MAEXXZ)
-DEFINE_ALIAS(__ZN8Provider21ValidateDeletionFlagsEl,
?ValidateDeletionFlags@Provider@@MAEJJ@Z)
-DEFINE_ALIAS(__ZN8Provider19ValidateMethodFlagsEl,
?ValidateMethodFlags@Provider@@MAEJJ@Z)
-DEFINE_ALIAS(__ZN8Provider18ValidateQueryFlagsEl, ?ValidateQueryFlags@Provider@@MAEJJ@Z)
-
-END
diff --git a/dll/win32/framedyn/chstring.cpp b/dll/win32/framedyn/chstring.cpp
index 59bbec6cfa8..9f24a90ec2b 100644
--- a/dll/win32/framedyn/chstring.cpp
+++ b/dll/win32/framedyn/chstring.cpp
@@ -34,7 +34,7 @@
// This is unsafe. This string show be LPCWSTR
// However we have to assign it to LPWSTR var. So, let's ignore about const,
// as MS does. Normally we check in our code that we don't overwrite this string.
-LPWSTR afxPchNil = (LPWSTR)L"\0";
+CHSTRING_WCHAR afxPchNil[1] = {0};
// This is the data that are matching the null string upper
CHStringData afxNullData = {0, 0, 0};
// Exception we may throw in case of allocation failure
@@ -107,7 +107,7 @@ CHString::CHString()
/*
* @implemented
*/
-CHString::CHString(WCHAR ch, int nRepeat)
+CHString::CHString(CHSTRING_WCHAR ch, int nRepeat)
{
// Allow null initialize, in case something goes wrong
m_pchData = afxPchNil;
@@ -131,7 +131,7 @@ CHString::CHString(WCHAR ch, int nRepeat)
/*
* @implemented
*/
-CHString::CHString(LPCWSTR lpsz)
+CHString::CHString(CHSTRING_LPCWSTR lpsz)
{
// Allow null initialize, in case something goes wrong
m_pchData = afxPchNil;
@@ -146,7 +146,9 @@ CHString::CHString(LPCWSTR lpsz)
if (Len)
{
AllocBuffer(Len);
- wcsncpy(m_pchData, lpsz, Len);
+ wcsncpy(reinterpret_cast<LPWSTR>(m_pchData),
+ reinterpret_cast<LPCWSTR>(lpsz),
+ Len);
}
}
}
@@ -154,7 +156,7 @@ CHString::CHString(LPCWSTR lpsz)
/*
* @implemented
*/
-CHString::CHString(LPCWSTR lpch, int nLength)
+CHString::CHString(CHSTRING_LPCWSTR lpch, int nLength)
{
// Allow null initialize, in case something goes wrong
m_pchData = afxPchNil;
@@ -164,7 +166,9 @@ CHString::CHString(LPCWSTR lpch, int nLength)
{
// Just copy the string
AllocBuffer(nLength);
- wcsncpy(m_pchData, lpch, nLength);
+ wcsncpy(reinterpret_cast<LPWSTR>(m_pchData),
+ reinterpret_cast<LPCWSTR>(lpch),
+ nLength);
}
}
@@ -185,7 +189,7 @@ CHString::CHString(LPCSTR lpsz)
{
// Allocate and convert the string
AllocBuffer(Len);
- mbstowcsz(m_pchData, lpsz, Len + 1);
+ mbstowcsz(reinterpret_cast<LPWSTR>(m_pchData), lpsz, Len + 1);
// Releasing buffer here is to allow to
// update the buffer size. We notify we're
// done with changing the string: recompute its
@@ -348,30 +352,32 @@ void CHString::AllocCopy(CHString& dest, int nCopyLen, int
nCopyIndex, int nExtr
// copying data from another. This is needed by Left/Mid/Right
dest.AllocBuffer(nCopyLen + nExtraLen);
// And copy our stuff in
- wcsncpy(dest.m_pchData, m_pchData + nCopyIndex, nCopyLen);
+ wcsncpy(reinterpret_cast<LPWSTR>(dest.m_pchData),
+ reinterpret_cast<LPWSTR>(m_pchData + nCopyIndex),
+ nCopyLen);
}
/*
* @implemented
*/
-BSTR CHString::AllocSysString() const
+CHSTRING_LPWSTR CHString::AllocSysString() const
{
BSTR SysString;
// Just allocate the string
- SysString = SysAllocStringLen(m_pchData, GetData()->nDataLength);
+ SysString = SysAllocStringLen(reinterpret_cast<LPWSTR>(m_pchData),
GetData()->nDataLength);
if (!SysString)
{
throw HeapException;
}
- return SysString;
+ return reinterpret_cast<CHSTRING_LPWSTR>(SysString);
}
/*
* @implemented
*/
-void CHString::AssignCopy(int nSrcLen, LPCWSTR lpszSrcData)
+void CHString::AssignCopy(int nSrcLen, CHSTRING_LPCWSTR lpszSrcData)
{
// Don't allow negative len
if (nSrcLen < 0)
@@ -389,7 +395,8 @@ void CHString::AssignCopy(int nSrcLen, LPCWSTR lpszSrcData)
}
// Just copy, write down new size, and ensure it's null terminated
- wcsncpy(m_pchData, lpszSrcData, nSrcLen);
+ wcsncpy(reinterpret_cast<LPWSTR>(m_pchData),
+ reinterpret_cast<LPCWSTR>(lpszSrcData), nSrcLen);
GetData()->nDataLength = nSrcLen;
m_pchData[nSrcLen] = 0;
}
@@ -397,37 +404,37 @@ void CHString::AssignCopy(int nSrcLen, LPCWSTR lpszSrcData)
/*
* @implemented
*/
-int CHString::Collate(LPCWSTR lpsz) const
+int CHString::Collate(CHSTRING_LPCWSTR lpsz) const
{
// Just call the deprecated function here - no matter we are null terminated
// Did you read my statement about how safe is this implementation?
- return wcscoll(m_pchData, lpsz);
+ return wcscoll(reinterpret_cast<LPCWSTR>(m_pchData),
reinterpret_cast<LPCWSTR>(lpsz));
}
/*
* @implemented
*/
-int CHString::Compare(LPCWSTR lpsz) const
+int CHString::Compare(CHSTRING_LPCWSTR lpsz) const
{
// Just call the deprecated function here - no matter we are null terminated
// Did you read my statement about how safe is this implementation?
- return wcscmp(m_pchData, lpsz);
+ return wcscmp(reinterpret_cast<LPCWSTR>(m_pchData),
reinterpret_cast<LPCWSTR>(lpsz));
}
/*
* @implemented
*/
-int CHString::CompareNoCase(LPCWSTR lpsz) const
+int CHString::CompareNoCase(CHSTRING_LPCWSTR lpsz) const
{
// Just call the deprecated function here - no matter we are null terminated
// Did you read my statement about how safe is this implementation?
- return wcsicmp(m_pchData, lpsz);
+ return wcsicmp(reinterpret_cast<LPCWSTR>(m_pchData),
reinterpret_cast<LPCWSTR>(lpsz));
}
/*
* @implemented
*/
-void CHString::ConcatInPlace(int nSrcLen, LPCWSTR lpszSrcData)
+void CHString::ConcatInPlace(int nSrcLen, CHSTRING_LPCWSTR lpszSrcData)
{
// With null length, there's not that much to concat...
if (nSrcLen == 0)
@@ -467,7 +474,9 @@ void CHString::ConcatInPlace(int nSrcLen, LPCWSTR lpszSrcData)
}
// Then, just copy and null terminate
- wcsncpy(m_pchData + GetData()->nDataLength, lpszSrcData, nSrcLen);
+ wcsncpy(reinterpret_cast<LPWSTR>(m_pchData + GetData()->nDataLength),
+ reinterpret_cast<LPCWSTR>(lpszSrcData),
+ nSrcLen);
GetData()->nDataLength += nSrcLen;
m_pchData[GetData()->nDataLength] = 0;
}
@@ -476,7 +485,9 @@ void CHString::ConcatInPlace(int nSrcLen, LPCWSTR lpszSrcData)
/*
* @implemented
*/
-void CHString::ConcatCopy(int nSrc1Len, LPCWSTR lpszSrc1Data, int nSrc2Len, LPCWSTR
lpszSrc2Data)
+void CHString::ConcatCopy(
+ int nSrc1Len, CHSTRING_LPCWSTR lpszSrc1Data,
+ int nSrc2Len, CHSTRING_LPCWSTR lpszSrc2Data)
{
int TotalLen;
@@ -495,8 +506,12 @@ void CHString::ConcatCopy(int nSrc1Len, LPCWSTR lpszSrc1Data, int
nSrc2Len, LPCW
// Otherwise, allocate a new buffer to hold everything (caller will release previous
buffer)
AllocBuffer(TotalLen);
// And concat stuff
- wcsncpy(m_pchData, lpszSrc1Data, nSrc1Len);
- wcsncpy(m_pchData + nSrc1Len, lpszSrc2Data, nSrc2Len);
+ wcsncpy(reinterpret_cast<LPWSTR>(m_pchData),
+ reinterpret_cast<LPCWSTR>(lpszSrc1Data),
+ nSrc1Len);
+ wcsncpy(reinterpret_cast<LPWSTR>(m_pchData + nSrc1Len),
+ reinterpret_cast<LPCWSTR>(lpszSrc2Data),
+ nSrc2Len);
}
/*
@@ -521,7 +536,9 @@ void CHString::CopyBeforeWrite()
Release();
// Alloc new buffer and copy old data in it
AllocBuffer(Data->nDataLength);
- wcsncpy(m_pchData, Data->data(), Data->nDataLength);
+ wcsncpy(reinterpret_cast<LPWSTR>(m_pchData),
+ reinterpret_cast<LPCWSTR>(Data->data()),
+ Data->nDataLength);
}
/*
@@ -552,12 +569,12 @@ void CHString::Empty()
/*
* @implemented
*/
-int CHString::Find(WCHAR ch) const
+int CHString::Find(CHSTRING_WCHAR ch) const
{
- WCHAR *Found;
+ CHSTRING_LPCWSTR Found;
// Let's use appropriate helper
- Found = wcschr(m_pchData, ch);
+ Found =
reinterpret_cast<CHSTRING_LPCWSTR>(wcschr(reinterpret_cast<LPCWSTR>(m_pchData),
ch));
// We have to return a position, so compute it
if (Found)
{
@@ -571,12 +588,12 @@ int CHString::Find(WCHAR ch) const
/*
* @implemented
*/
-int CHString::Find(LPCWSTR lpszSub) const
+int CHString::Find(CHSTRING_LPCWSTR lpszSub) const
{
- WCHAR *Found;
+ CHSTRING_LPCWSTR Found;
// Let's use appropriate helper
- Found = wcsstr(m_pchData, lpszSub);
+ Found =
reinterpret_cast<CHSTRING_LPCWSTR>(wcsstr(reinterpret_cast<LPCWSTR>(m_pchData),
reinterpret_cast<LPCWSTR>(lpszSub)));
// We have to return a position, so compute it
if (Found)
{
@@ -590,12 +607,12 @@ int CHString::Find(LPCWSTR lpszSub) const
/*
* @implemented
*/
-int CHString::FindOneOf(LPCWSTR lpszCharSet) const
+int CHString::FindOneOf(CHSTRING_LPCWSTR lpszCharSet) const
{
- WCHAR *Found;
+ CHSTRING_LPCWSTR Found;
// Let's use appropriate helper
- Found = wcspbrk(m_pchData, lpszCharSet);
+ Found =
reinterpret_cast<CHSTRING_LPCWSTR>(wcspbrk(reinterpret_cast<LPCWSTR>(m_pchData),
reinterpret_cast<LPCWSTR>(lpszCharSet)));
// We have to return a position, so compute it
if (Found)
{
@@ -618,7 +635,7 @@ void CHString::Format(UINT nFormatID, ...)
/*
* @implemented
*/
-void CHString::Format(LPCWSTR lpszFormat, ...)
+void CHString::Format(CHSTRING_LPCWSTR lpszFormat, ...)
{
// Forward to FormatV
va_list ArgsList;
@@ -640,7 +657,7 @@ void CHString::FormatMessageW(UINT nFormatID, ...)
/*
* @unimplemented
*/
-void CHString::FormatMessageW(LPCWSTR lpszFormat, ...)
+void CHString::FormatMessageW(CHSTRING_LPCWSTR lpszFormat, ...)
{
UNIMPLEMENTED;
}
@@ -648,7 +665,7 @@ void CHString::FormatMessageW(LPCWSTR lpszFormat, ...)
/*
* @unimplemented
*/
-void CHString::FormatV(LPCWSTR lpszFormat, va_list argList)
+void CHString::FormatV(CHSTRING_LPCWSTR lpszFormat, va_list argList)
{
UNIMPLEMENTED;
}
@@ -671,7 +688,7 @@ void CHString::FreeExtra()
// Allocate a new one, at the right size (with no place for \0 :-))
AllocBuffer(GetData()->nDataLength);
// Copy old and release it
- wcsncpy(m_pchData, OldData->data(), OldData->nDataLength);
+ wcsncpy(reinterpret_cast<LPWSTR>(m_pchData),
reinterpret_cast<LPCWSTR>(OldData->data()), OldData->nDataLength);
Release(OldData);
}
@@ -686,7 +703,7 @@ int CHString::GetAllocLength() const
/*
* @implemented
*/
-WCHAR CHString::GetAt(int nIndex) const
+CHSTRING_WCHAR CHString::GetAt(int nIndex) const
{
// It's up to you to check the index!
return m_pchData[nIndex];
@@ -695,9 +712,9 @@ WCHAR CHString::GetAt(int nIndex) const
/*
* @implemented
*/
-LPWSTR CHString::GetBuffer(int nMinBufLength)
+CHSTRING_LPWSTR CHString::GetBuffer(int nMinBufLength)
{
- LPWSTR OldBuffer = m_pchData;
+ CHSTRING_LPWSTR OldBuffer = m_pchData;
// We'll have to allocate a new buffer if it's not big enough
// or if it's shared by several strings
@@ -715,7 +732,7 @@ LPWSTR CHString::GetBuffer(int nMinBufLength)
// Allocate new buffer
AllocBuffer(nMinBufLength);
// Copy contents
- wcsncpy(m_pchData, OldBuffer, OldLen);
+ wcsncpy(reinterpret_cast<LPWSTR>(m_pchData),
reinterpret_cast<LPCWSTR>(OldBuffer), OldLen);
GetData()->nDataLength = OldLen;
// Release old
@@ -730,7 +747,7 @@ LPWSTR CHString::GetBuffer(int nMinBufLength)
/*
* @implemented
*/
-LPWSTR CHString::GetBufferSetLength(int nNewLength)
+CHSTRING_LPWSTR CHString::GetBufferSetLength(int nNewLength)
{
// Get a buffer big enough
// We don't care about the return, it will be set in the string
@@ -813,7 +830,7 @@ int CHString::LoadStringW(UINT nID)
/*
* @implemented
*/
-int CHString::LoadStringW(UINT nID, LPWSTR lpszBuf, UINT nMaxBuf)
+int CHString::LoadStringW(UINT nID, CHSTRING_LPWSTR lpszBuf, UINT nMaxBuf)
{
// Deprecated and not implemented any longer - well, this is its implementation
return 0;
@@ -822,9 +839,9 @@ int CHString::LoadStringW(UINT nID, LPWSTR lpszBuf, UINT nMaxBuf)
/*
* @implemented
*/
-LPWSTR CHString::LockBuffer()
+CHSTRING_LPWSTR CHString::LockBuffer()
{
- LPWSTR LockedBuffer;
+ CHSTRING_LPWSTR LockedBuffer;
// The purpose here is basically to set the nRefs to max int
LockedBuffer = GetBuffer(0);
@@ -842,7 +859,7 @@ void CHString::MakeLower()
CopyBeforeWrite();
// Let's use appropriate helper
- _wcslwr(m_pchData);
+ _wcslwr(reinterpret_cast<LPWSTR>(m_pchData));
}
/*
@@ -854,7 +871,7 @@ void CHString::MakeReverse()
CopyBeforeWrite();
// Let's use appropriate helper
- _wcsrev(m_pchData);
+ _wcsrev(reinterpret_cast<LPWSTR>(m_pchData));
}
/*
@@ -866,7 +883,7 @@ void CHString::MakeUpper()
CopyBeforeWrite();
// Let's use appropriate helper
- _wcsupr(m_pchData);
+ _wcsupr(reinterpret_cast<LPWSTR>(m_pchData));
}
/*
@@ -968,7 +985,7 @@ void CHString::ReleaseBuffer(int nNewLength)
// If no len provided, get one
if (nNewLength == -1)
{
- nNewLength = (int)wcslen(m_pchData);
+ nNewLength = (int)wcslen(reinterpret_cast<LPCWSTR>(m_pchData));
}
// Set appropriate size and null-terminate
@@ -980,12 +997,12 @@ void CHString::ReleaseBuffer(int nNewLength)
/*
* @implemented
*/
-int CHString::ReverseFind(WCHAR ch) const
+int CHString::ReverseFind(CHSTRING_WCHAR ch) const
{
- WCHAR *Last;
+ CHSTRING_WCHAR *Last;
// Let's use appropriate helper
- Last = wcsrchr(m_pchData, ch);
+ Last =
reinterpret_cast<CHSTRING_WCHAR*>(wcsrchr(reinterpret_cast<LPCWSTR>(m_pchData),
ch));
// We have to return a position, so compute it
if (Last)
{
@@ -1020,7 +1037,7 @@ CHString CHString::Right(int nCount) const
/*
* @implemented
*/
-int CHString::SafeStrlen(LPCWSTR lpsz)
+int CHString::SafeStrlen(CHSTRING_LPCWSTR lpsz)
{
// Check we have a string and then get its length
if (lpsz == 0)
@@ -1031,13 +1048,13 @@ int CHString::SafeStrlen(LPCWSTR lpsz)
// Of course, it's not safe at all in case string is not null-terminated.
// Things that may happen given strings are not to be null-terminated
// in this class...
- return (int)wcslen(lpsz);
+ return (int)wcslen(reinterpret_cast<LPCWSTR>(lpsz));
}
/*
* @implemented
*/
-void CHString::SetAt(int nIndex, WCHAR ch)
+void CHString::SetAt(int nIndex, CHSTRING_WCHAR ch)
{
CopyBeforeWrite();
@@ -1047,24 +1064,24 @@ void CHString::SetAt(int nIndex, WCHAR ch)
/*
* @implemented
*/
-CHString CHString::SpanExcluding(LPCWSTR lpszCharSet) const
+CHString CHString::SpanExcluding(CHSTRING_LPCWSTR lpszCharSet) const
{
int Count;
// Get position and then, extract
- Count = (int)wcscspn(m_pchData, lpszCharSet);
+ Count = (int)wcscspn(reinterpret_cast<LPCWSTR>(m_pchData),
reinterpret_cast<LPCWSTR>(lpszCharSet));
return Left(Count);
}
/*
* @implemented
*/
-CHString CHString::SpanIncluding(LPCWSTR lpszCharSet) const
+CHString CHString::SpanIncluding(CHSTRING_LPCWSTR lpszCharSet) const
{
int Count;
// Get position and then, extract
- Count = (int)wcsspn(m_pchData, lpszCharSet);
+ Count = (int)wcsspn(reinterpret_cast<LPCWSTR>(m_pchData),
reinterpret_cast<LPCWSTR>(lpszCharSet));
return Left(Count);
}
@@ -1075,7 +1092,7 @@ void CHString::TrimLeft()
{
int NewBegin;
int NewLength;
- WCHAR *CurrentChar;
+ CHSTRING_WCHAR *CurrentChar;
// We'll modify, so copy first
CopyBeforeWrite();
@@ -1097,7 +1114,7 @@ void CHString::TrimLeft()
// And move memory
NewBegin = (CurrentChar - m_pchData);
NewLength = GetData()->nDataLength - NewBegin;
- memmove(m_pchData, CurrentChar, NewLength * sizeof(WCHAR));
+ memmove(m_pchData, CurrentChar, NewLength * sizeof(CHSTRING_WCHAR));
GetData()->nDataLength = NewLength;
}
@@ -1106,8 +1123,8 @@ void CHString::TrimLeft()
*/
void CHString::TrimRight()
{
- WCHAR *CurrentChar;
- WCHAR *CanBeEaten;
+ CHSTRING_WCHAR *CurrentChar;
+ CHSTRING_WCHAR *CanBeEaten;
// We'll modify, so copy first
CopyBeforeWrite();
@@ -1167,14 +1184,14 @@ void CHString::UnlockBuffer()
*/
const CHString& CHString::operator=(char ch)
{
- *this = (WCHAR)ch;
+ *this = (CHSTRING_WCHAR)ch;
return *this;
}
/*
* @implemented
*/
-const CHString& CHString::operator=(WCHAR ch)
+const CHString& CHString::operator=(CHSTRING_WCHAR ch)
{
AssignCopy(1, &ch);
return *this;
@@ -1215,7 +1232,7 @@ const CHString& CHString::operator=(LPCSTR lpsz)
}
// Convert and copy
- mbstowcsz(m_pchData, lpsz, Len + 1);
+ mbstowcsz(reinterpret_cast<LPWSTR>(m_pchData), lpsz, Len + 1);
// Get new size and so on
ReleaseBuffer();
@@ -1225,7 +1242,7 @@ const CHString& CHString::operator=(LPCSTR lpsz)
/*
* @implemented
*/
-const CHString& CHString::operator=(LPCWSTR lpsz)
+const CHString& CHString::operator=(CHSTRING_LPCWSTR lpsz)
{
int Len;
@@ -1279,14 +1296,14 @@ const CHString& CHString::operator=(const unsigned char*
lpsz)
*/
const CHString& CHString::operator+=(char ch)
{
- *this += (WCHAR)ch;
+ *this += (CHSTRING_WCHAR)ch;
return *this;
}
/*
* @implemented
*/
-const CHString& CHString::operator+=(WCHAR ch)
+const CHString& CHString::operator+=(CHSTRING_WCHAR ch)
{
ConcatInPlace(1, &ch);
return *this;
@@ -1295,7 +1312,7 @@ const CHString& CHString::operator+=(WCHAR ch)
/*
* @implemented
*/
-const CHString& CHString::operator+=(LPCWSTR lpsz)
+const CHString& CHString::operator+=(CHSTRING_LPCWSTR lpsz)
{
int Len;
@@ -1318,7 +1335,7 @@ const CHString& CHString::operator+=(const CHString&
string)
/*
* @implemented
*/
-WCHAR CHString::operator[](int nIndex) const
+CHSTRING_WCHAR CHString::operator[](int nIndex) const
{
return m_pchData[nIndex];
}
@@ -1326,7 +1343,7 @@ WCHAR CHString::operator[](int nIndex) const
/*
* @implemented
*/
-CHString::operator LPCWSTR() const
+CHString::operator CHSTRING_LPCWSTR() const
{
return m_pchData;
}
@@ -1334,7 +1351,7 @@ CHString::operator LPCWSTR() const
/*
* @implemented
*/
-CHString WINAPI operator+(WCHAR ch, const CHString& string)
+CHString WINAPI operator+(CHSTRING_WCHAR ch, const CHString& string)
{
CHString NewString;
@@ -1347,7 +1364,7 @@ CHString WINAPI operator+(WCHAR ch, const CHString& string)
/*
* @implemented
*/
-CHString WINAPI operator+(const CHString& string, WCHAR ch)
+CHString WINAPI operator+(const CHString& string, CHSTRING_WCHAR ch)
{
CHString NewString;
@@ -1360,7 +1377,7 @@ CHString WINAPI operator+(const CHString& string, WCHAR ch)
/*
* @implemented
*/
-CHString WINAPI operator+(const CHString& string, LPCWSTR lpsz)
+CHString WINAPI operator+(const CHString& string, CHSTRING_LPCWSTR lpsz)
{
int Len;
CHString NewString;
@@ -1376,7 +1393,7 @@ CHString WINAPI operator+(const CHString& string, LPCWSTR lpsz)
/*
* @implemented
*/
-CHString WINAPI operator+(LPCWSTR lpsz, const CHString& string)
+CHString WINAPI operator+(CHSTRING_LPCWSTR lpsz, const CHString& string)
{
int Len;
CHString NewString;
diff --git a/dll/win32/framedyn/framedyn.spec b/dll/win32/framedyn/framedyn.spec
index 99bc8ca5074..99a22f33598 100644
--- a/dll/win32/framedyn/framedyn.spec
+++ b/dll/win32/framedyn/framedyn.spec
@@ -4,29 +4,29 @@
@ thiscall -arch=i386 ?AllocBuffer@CHString@@IAEXH@Z(long) _ZN8CHString11AllocBufferEi #
protected: void __thiscall CHString::AllocBuffer(int)
@ thiscall -arch=i386 ?AllocCopy@CHString@@IBEXAAV1@HHH@Z(ptr long long long)
_ZNK8CHString9AllocCopyERS_iii # protected: void __thiscall CHString::AllocCopy(class
CHString &,int,int,int)const
@ thiscall -arch=i386 ?AllocSysString@CHString@@QBEPAGXZ()
_ZNK8CHString14AllocSysStringEv
-@ thiscall -arch=i386 ?AssignCopy@CHString@@IAEXHPBG@Z(long wstr)
_ZN8CHString10AssignCopyEiPKw
+@ thiscall -arch=i386 ?AssignCopy@CHString@@IAEXHPBG@Z(long wstr)
_ZN8CHString10AssignCopyEiPKt
@ thiscall -arch=i386 ??0CHString@@QAE@ABV0@@Z(ptr) _ZN8CHStringC1ERKS_
@ thiscall -arch=i386 ??0CHString@@QAE@PBD@Z(str) _ZN8CHStringC1EPKc
@ thiscall -arch=i386 ??0CHString@@QAE@PBE@Z(str) _ZN8CHStringC1EPKh
-@ thiscall -arch=i386 ??0CHString@@QAE@PBG@Z(wstr) _ZN8CHStringC1EPKw
-@ thiscall -arch=i386 ??0CHString@@QAE@PBGH@Z(wstr long) _ZN8CHStringC1EPKwi
-@ thiscall -arch=i386 ??0CHString@@QAE@GH@Z(long long) _ZN8CHStringC1Ewi
+@ thiscall -arch=i386 ??0CHString@@QAE@PBG@Z(wstr) _ZN8CHStringC1EPKt
+@ thiscall -arch=i386 ??0CHString@@QAE@PBGH@Z(wstr long) _ZN8CHStringC1EPKti
+@ thiscall -arch=i386 ??0CHString@@QAE@GH@Z(long long) _ZN8CHStringC1Eti
@ thiscall -arch=i386 ??0CHString@@QAE@XZ() _ZN8CHStringC1Ev # public: __thiscall
CHString::CHString(void)
-@ thiscall -arch=i386 ?Collate@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString7CollateEPKw #
public: int __thiscall CHString::Collate(unsigned short const *)const
-@ thiscall -arch=i386 ?Compare@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString7CompareEPKw #
public: int __thiscall CHString::Compare(unsigned short const *)const
-@ thiscall -arch=i386 ?CompareNoCase@CHString@@QBEHPBG@Z(wstr)
_ZNK8CHString13CompareNoCaseEPKw # public: int __thiscall CHString::CompareNoCase(unsigned
short const *)const
-@ thiscall -arch=i386 ?ConcatCopy@CHString@@IAEXHPBGH0@Z(long wstr long wstr)
_ZN8CHString10ConcatCopyEiPKwiS1_ # protected: void __thiscall
CHString::ConcatCopy(int,unsigned short const *,int,unsigned short const *)
-@ thiscall -arch=i386 ?ConcatInPlace@CHString@@IAEXHPBG@Z(long wstr)
_ZN8CHString13ConcatInPlaceEiPKw # protected: void __thiscall
CHString::ConcatInPlace(int,unsigned short const *)
+@ thiscall -arch=i386 ?Collate@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString7CollateEPKt #
public: int __thiscall CHString::Collate(unsigned short const *)const
+@ thiscall -arch=i386 ?Compare@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString7CompareEPKt #
public: int __thiscall CHString::Compare(unsigned short const *)const
+@ thiscall -arch=i386 ?CompareNoCase@CHString@@QBEHPBG@Z(wstr)
_ZNK8CHString13CompareNoCaseEPKt # public: int __thiscall CHString::CompareNoCase(unsigned
short const *)const
+@ thiscall -arch=i386 ?ConcatCopy@CHString@@IAEXHPBGH0@Z(long wstr long wstr)
_ZN8CHString10ConcatCopyEiPKtiS1_ # protected: void __thiscall
CHString::ConcatCopy(int,unsigned short const *,int,unsigned short const *)
+@ thiscall -arch=i386 ?ConcatInPlace@CHString@@IAEXHPBG@Z(long wstr)
_ZN8CHString13ConcatInPlaceEiPKt # protected: void __thiscall
CHString::ConcatInPlace(int,unsigned short const *)
@ thiscall -arch=i386 ?CopyBeforeWrite@CHString@@IAEXXZ() _ZN8CHString15CopyBeforeWriteEv
# protected: void __thiscall CHString::CopyBeforeWrite(void)
@ thiscall -arch=i386 ?Empty@CHString@@QAEXXZ() _ZN8CHString5EmptyEv # public: void
__thiscall CHString::Empty(void)
-@ thiscall -arch=i386 ?Find@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString4FindEPKw # public:
int __thiscall CHString::Find(unsigned short const *)const
-@ thiscall -arch=i386 ?Find@CHString@@QBEHG@Z(long) _ZNK8CHString4FindEw # public: int
__thiscall CHString::Find(unsigned short)const
-@ thiscall -arch=i386 ?FindOneOf@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString9FindOneOfEPKw #
public: int __thiscall CHString::FindOneOf(unsigned short const *)const
+@ thiscall -arch=i386 ?Find@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString4FindEPKt # public:
int __thiscall CHString::Find(unsigned short const *)const
+@ thiscall -arch=i386 ?Find@CHString@@QBEHG@Z(long) _ZNK8CHString4FindEt # public: int
__thiscall CHString::Find(unsigned short)const
+@ thiscall -arch=i386 ?FindOneOf@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString9FindOneOfEPKt #
public: int __thiscall CHString::FindOneOf(unsigned short const *)const
@ thiscall -arch=i386 ?Format@CHString@@QAAXIZZ(long long long) _ZN8CHString6FormatEjz #
public: void __cdecl CHString::Format(unsigned int,...)
-@ thiscall -arch=i386 ?Format@CHString@@QAAXPBGZZ(long wstr long)
_ZN8CHString6FormatEPKwz # public: void __cdecl CHString::Format(unsigned short const
*,...)
+@ thiscall -arch=i386 ?Format@CHString@@QAAXPBGZZ(long wstr long)
_ZN8CHString6FormatEPKtz # public: void __cdecl CHString::Format(unsigned short const
*,...)
@ thiscall -arch=i386 ?FormatMessageW@CHString@@QAAXIZZ(long long long)
_ZN8CHString14FormatMessageWEjz # public: void __cdecl CHString::FormatMessageW(unsigned
int,...)
-@ thiscall -arch=i386 ?FormatMessageW@CHString@@QAAXPBGZZ(long ptr long)
_ZN8CHString14FormatMessageWEPKwz # public: void __cdecl CHString::FormatMessageW(unsigned
short const *,...)
-@ thiscall -arch=i386 ?FormatV@CHString@@QAEXPBGPAD@Z(wstr long)
_ZN8CHString7FormatVEPKwPc # public: void __thiscall CHString::FormatV(unsigned short
const *,char *)
+@ thiscall -arch=i386 ?FormatMessageW@CHString@@QAAXPBGZZ(long ptr long)
_ZN8CHString14FormatMessageWEPKtz # public: void __cdecl CHString::FormatMessageW(unsigned
short const *,...)
+@ thiscall -arch=i386 ?FormatV@CHString@@QAEXPBGPAD@Z(wstr long)
_ZN8CHString7FormatVEPKtPc # public: void __thiscall CHString::FormatV(unsigned short
const *,char *)
@ thiscall -arch=i386 ?FreeExtra@CHString@@QAEXXZ() _ZN8CHString9FreeExtraEv # public:
void __thiscall CHString::FreeExtra(void)
@ thiscall -arch=i386 ?GetAllocLength@CHString@@QBEHXZ() _ZNK8CHString14GetAllocLengthEv
# public: int __thiscall CHString::GetAllocLength(void)const
@ thiscall -arch=i386 ?GetAt@CHString@@QBEGH@Z(long) _ZNK8CHString5GetAtEi # public:
unsigned short __thiscall CHString::GetAt(int)const
@@ -38,7 +38,7 @@
@ thiscall -arch=i386 ?IsEmpty@CHString@@QBEHXZ() _ZNK8CHString7IsEmptyEv # public: int
__thiscall CHString::IsEmpty(void)const
@ thiscall -arch=i386 ?Left@CHString@@QBE?AV1@H@Z(long) _ZNK8CHString4LeftEi # public:
class CHString __thiscall CHString::Left(int)const
@ thiscall -arch=i386 ?LoadStringW@CHString@@QAEHI@Z(long) _ZN8CHString11LoadStringWEj #
public: int __thiscall CHString::LoadStringW(unsigned int)
-@ thiscall -arch=i386 ?LoadStringW@CHString@@IAEHIPAGI@Z(long wstr long)
_ZN8CHString11LoadStringWEjPwj # protected: int __thiscall CHString::LoadStringW(unsigned
int,unsigned short *,unsigned int)
+@ thiscall -arch=i386 ?LoadStringW@CHString@@IAEHIPAGI@Z(long wstr long)
_ZN8CHString11LoadStringWEjPtj # protected: int __thiscall CHString::LoadStringW(unsigned
int,unsigned short *,unsigned int)
@ thiscall -arch=i386 ?LockBuffer@CHString@@QAEPAGXZ() _ZN8CHString10LockBufferEv #
public: unsigned short * __thiscall CHString::LockBuffer(void)
@ thiscall -arch=i386 ?MakeLower@CHString@@QAEXXZ() _ZN8CHString9MakeLowerEv # public:
void __thiscall CHString::MakeLower(void)
@ thiscall -arch=i386 ?MakeReverse@CHString@@QAEXXZ() _ZN8CHString11MakeReverseEv #
public: void __thiscall CHString::MakeReverse(void)
@@ -48,33 +48,33 @@
@ thiscall -arch=i386 ?Release@CHString@@KGXPAUCHStringData@@@Z(ptr)
_ZN8CHString7ReleaseEP12CHStringData@4 # protected: static void __stdcall
CHString::Release(struct CHStringData *)
@ thiscall -arch=i386 ?Release@CHString@@IAEXXZ() _ZN8CHString7ReleaseEv # protected:
void __thiscall CHString::Release(void)
@ thiscall -arch=i386 ?ReleaseBuffer@CHString@@QAEXH@Z(long)
_ZN8CHString13ReleaseBufferEi # public: void __thiscall CHString::ReleaseBuffer(int)
-@ thiscall -arch=i386 ?ReverseFind@CHString@@QBEHG@Z(long) _ZNK8CHString11ReverseFindEw #
public: int __thiscall CHString::ReverseFind(unsigned short)const
+@ thiscall -arch=i386 ?ReverseFind@CHString@@QBEHG@Z(long) _ZNK8CHString11ReverseFindEt #
public: int __thiscall CHString::ReverseFind(unsigned short)const
@ thiscall -arch=i386 ?Right@CHString@@QBE?AV1@H@Z(long) _ZNK8CHString5RightEi # public:
class CHString __thiscall CHString::Right(int)const
-@ stdcall -arch=i386 ?SafeStrlen@CHString@@KGHPBG@Z(wstr) _ZN8CHString10SafeStrlenEPKw #
protected: static int__stdcall CHString::SafeStrlen(unsigned short const *)
-@ thiscall -arch=i386 ?SetAt@CHString@@QAEXHG@Z(long long) _ZN8CHString5SetAtEiw #
public: void __thiscall CHString::SetAt(int,unsigned short)
-@ thiscall -arch=i386 ?SpanExcluding@CHString@@QBE?AV1@PBG@Z(long wstr)
_ZNK8CHString13SpanExcludingEPKw # public: class CHString __thiscall
CHString::SpanExcluding(unsigned short const *)const
-@ thiscall -arch=i386 ?SpanIncluding@CHString@@QBE?AV1@PBG@Z(long wstr)
_ZNK8CHString13SpanIncludingEPKw # public: class CHString __thiscall
CHString::SpanIncluding(unsigned short const *)const
+@ stdcall -arch=i386 ?SafeStrlen@CHString@@KGHPBG@Z(wstr) _ZN8CHString10SafeStrlenEPKt #
protected: static int__stdcall CHString::SafeStrlen(unsigned short const *)
+@ thiscall -arch=i386 ?SetAt@CHString@@QAEXHG@Z(long long) _ZN8CHString5SetAtEit #
public: void __thiscall CHString::SetAt(int,unsigned short)
+@ thiscall -arch=i386 ?SpanExcluding@CHString@@QBE?AV1@PBG@Z(long wstr)
_ZNK8CHString13SpanExcludingEPKt # public: class CHString __thiscall
CHString::SpanExcluding(unsigned short const *)const
+@ thiscall -arch=i386 ?SpanIncluding@CHString@@QBE?AV1@PBG@Z(long wstr)
_ZNK8CHString13SpanIncludingEPKt # public: class CHString __thiscall
CHString::SpanIncluding(unsigned short const *)const
@ thiscall -arch=i386 ?TrimLeft@CHString@@QAEXXZ() _ZN8CHString8TrimLeftEv # public: void
__thiscall CHString::TrimLeft(void)
@ thiscall -arch=i386 ?TrimRight@CHString@@QAEXXZ() _ZN8CHString9TrimRightEv # public:
void __thiscall CHString::TrimRight(void)
@ thiscall -arch=i386 ?UnlockBuffer@CHString@@QAEXXZ() _ZN8CHString12UnlockBufferEv #
public: void __thiscall CHString::UnlockBuffer(void)
-@ thiscall -arch=i386 ??BCHString@@QBEPBGXZ(ptr) _ZNK8CHStringcvPKwEv # public:
__thiscall CHString::operator unsigned short const *(void)const
+@ thiscall -arch=i386 ??BCHString@@QBEPBGXZ(ptr) _ZNK8CHStringcvPKtEv # public:
__thiscall CHString::operator unsigned short const *(void)const
@ thiscall -arch=i386 ??YCHString@@QAEABV0@ABV0@@Z(ptr) _ZN8CHStringpLERKS_ # public:
class CHString const & __thiscall CHString::operator+=(class CHString const &)
@ thiscall -arch=i386 ??YCHString@@QAEABV0@D@Z(long) _ZN8CHStringpLEc # public: class
CHString const & __thiscall CHString::operator+=(char)
-@ thiscall -arch=i386 ??YCHString@@QAEABV0@PBG@Z(wstr) _ZN8CHStringpLEPKw # public: class
CHString const & __thiscall CHString::operator+=(unsigned short const *)
-@ thiscall -arch=i386 ??YCHString@@QAEABV0@G@Z(long) _ZN8CHStringpLEw # public: class
CHString const & __thiscall CHString::operator+=(unsigned short)
+@ thiscall -arch=i386 ??YCHString@@QAEABV0@PBG@Z(wstr) _ZN8CHStringpLEPKt # public: class
CHString const & __thiscall CHString::operator+=(unsigned short const *)
+@ thiscall -arch=i386 ??YCHString@@QAEABV0@G@Z(long) _ZN8CHStringpLEt # public: class
CHString const & __thiscall CHString::operator+=(unsigned short)
@ thiscall -arch=i386 ??4CHString@@QAEABV0@PAV0@@Z(ptr) _ZN8CHStringaSEPS_ # public:
class CHString const & __thiscall CHString::operator=(class CHString *)
@ thiscall -arch=i386 ??4CHString@@QAEABV0@ABV0@@Z(ptr) _ZN8CHStringaSERKS_ # public:
class CHString const & __thiscall CHString::operator=(class CHString const &)
@ thiscall -arch=i386 ??4CHString@@QAEABV0@PBD@Z(str) _ZN8CHStringaSEPKc # public: class
CHString const & __thiscall CHString::operator=(char const *)
@ thiscall -arch=i386 ??4CHString@@QAEABV0@D@Z(long) _ZN8CHStringaSEc # public: class
CHString const & __thiscall CHString::operator=(char)
@ thiscall -arch=i386 ??4CHString@@QAEABV0@PBE@Z(str) _ZN8CHStringaSEPKh # public: class
CHString const & __thiscall CHString::operator=(unsigned char const *)
-@ thiscall -arch=i386 ??4CHString@@QAEABV0@PBG@Z(wstr) _ZN8CHStringaSEPKw # public: class
CHString const & __thiscall CHString::operator=(unsigned short const *)
-@ thiscall -arch=i386 ??4CHString@@QAEABV0@G@Z(long) _ZN8CHStringaSEw # public: class
CHString const & __thiscall CHString::operator=(unsigned short)
+@ thiscall -arch=i386 ??4CHString@@QAEABV0@PBG@Z(wstr) _ZN8CHStringaSEPKt # public: class
CHString const & __thiscall CHString::operator=(unsigned short const *)
+@ thiscall -arch=i386 ??4CHString@@QAEABV0@G@Z(long) _ZN8CHStringaSEt # public: class
CHString const & __thiscall CHString::operator=(unsigned short)
@ thiscall -arch=i386 ??ACHString@@QBEGH@Z(long) _ZNK8CHStringixEi # public: unsigned
short __thiscall CHString::operator[](int)const
@ thiscall -arch=i386 ??1CHString@@QAE@XZ() _ZN8CHStringD1Ev # public: __thiscall
CHString::~CHString(void), complete object destructor, identical to _ZN8CHStringD2Ev aka
base object destructor
-@ stdcall -arch=i386 ??H@YG?AVCHString@@GABV0@@Z(long ptr) _ZplwRK8CHString # class
CHString __stdcall operator+(unsigned short,class CHString const &)
-@ stdcall -arch=i386 ??H@YG?AVCHString@@ABV0@G@Z(ptr long) _ZplRK8CHStringw # class
CHString __stdcall operator+(class CHString const &,unsigned short)
-@ stdcall -arch=i386 ??H@YG?AVCHString@@ABV0@PBG@Z(ptr wstr) _ZplRK8CHStringPKw # class
CHString __stdcall operator+(class CHString const &,unsigned short const *)
-@ stdcall -arch=i386 ??H@YG?AVCHString@@PBGABV0@@Z(wstr ptr) _ZplPKwRK8CHString # class
CHString __stdcall operator+(unsigned short const *,class CHString const &)
+@ stdcall -arch=i386 ??H@YG?AVCHString@@GABV0@@Z(long ptr) _ZpltRK8CHString # class
CHString __stdcall operator+(unsigned short,class CHString const &)
+@ stdcall -arch=i386 ??H@YG?AVCHString@@ABV0@G@Z(ptr long) _ZplRK8CHStringt # class
CHString __stdcall operator+(class CHString const &,unsigned short)
+@ stdcall -arch=i386 ??H@YG?AVCHString@@ABV0@PBG@Z(ptr wstr) _ZplRK8CHStringPKt # class
CHString __stdcall operator+(class CHString const &,unsigned short const *)
+@ stdcall -arch=i386 ??H@YG?AVCHString@@PBGABV0@@Z(wstr ptr) _ZplPKtRK8CHString # class
CHString __stdcall operator+(unsigned short const *,class CHString const &)
@ stdcall -arch=i386 ??H@YG?AVCHString@@ABV0@0@Z(ptr ptr) _ZplRK8CHStringS1_ # class
CHString __stdcall operator+(class CHString const &,class CHString const &)
@ thiscall -arch=i386 ?Flush@Provider@@MAEXXZ() _ZN8Provider5FlushEv # protected: virtual
void __thiscall Provider::Flush(void)
@ thiscall -arch=i386 ?ValidateDeletionFlags@Provider@@MAEJJ@Z(long)
_ZN8Provider21ValidateDeletionFlagsEl # protected: virtual long __thiscall
Provider::ValidateDeletionFlags(long)
@@ -86,29 +86,29 @@
@ thiscall -arch=win64 ?AllocBuffer@CHString@@IEAAXH@Z(long) _ZN8CHString11AllocBufferEi
# protected: void __thiscall CHString::AllocBuffer(int)
@ thiscall -arch=win64 ?AllocCopy@CHString@@IEBAXAEAV1@HHH@Z(ptr long long long)
_ZNK8CHString9AllocCopyERS_iii # protected: void __thiscall CHString::AllocCopy(class
CHString &,int,int,int)const
@ thiscall -arch=win64 ?AllocSysString@CHString@@QEBAPEAGXZ()
_ZNK8CHString14AllocSysStringEv
-@ thiscall -arch=win64 ?AssignCopy@CHString@@IEAAXHPEBG@Z(long wstr)
_ZN8CHString10AssignCopyEiPKw
+@ thiscall -arch=win64 ?AssignCopy@CHString@@IEAAXHPEBG@Z(long wstr)
_ZN8CHString10AssignCopyEiPKt
@ thiscall -arch=win64 ??0CHString@@QEAA@AEBV0@@Z(ptr) _ZN8CHStringC1ERKS_
@ thiscall -arch=win64 ??0CHString@@QEAA@PEBD@Z(str) _ZN8CHStringC1EPKc
@ thiscall -arch=win64 ??0CHString@@QEAA@PEBE@Z(str) _ZN8CHStringC1EPKh
-@ thiscall -arch=win64 ??0CHString@@QEAA@PEBG@Z(wstr) _ZN8CHStringC1EPKw
-@ thiscall -arch=win64 ??0CHString@@QEAA@PEBGH@Z(wstr long) _ZN8CHStringC1EPKwi
-@ thiscall -arch=win64 ??0CHString@@QEAA@GH@Z(long long) _ZN8CHStringC1Ewi
+@ thiscall -arch=win64 ??0CHString@@QEAA@PEBG@Z(wstr) _ZN8CHStringC1EPKt
+@ thiscall -arch=win64 ??0CHString@@QEAA@PEBGH@Z(wstr long) _ZN8CHStringC1EPKti
+@ thiscall -arch=win64 ??0CHString@@QEAA@GH@Z(long long) _ZN8CHStringC1Eti
@ thiscall -arch=win64 ??0CHString@@QEAA@XZ() _ZN8CHStringC1Ev # public: __thiscall
CHString::CHString(void)
-@ thiscall -arch=win64 ?Collate@CHString@@QEBAHPEBG@Z(wstr) _ZNK8CHString7CollateEPKw #
public: int __thiscall CHString::Collate(unsigned short const *)const
-@ thiscall -arch=win64 ?Compare@CHString@@QEBAHPEBG@Z(wstr) _ZNK8CHString7CompareEPKw #
public: int __thiscall CHString::Compare(unsigned short const *)const
-@ thiscall -arch=win64 ?CompareNoCase@CHString@@QEBAHPEBG@Z(wstr)
_ZNK8CHString13CompareNoCaseEPKw # public: int __thiscall CHString::CompareNoCase(unsigned
short const *)const
-@ thiscall -arch=win64 ?ConcatCopy@CHString@@IEAAXHPEBGH0@Z(long wstr long wstr)
_ZN8CHString10ConcatCopyEiPKwiS1_ # protected: void __thiscall
CHString::ConcatCopy(int,unsigned short const *,int,unsigned short const *)
-@ thiscall -arch=win64 ?ConcatInPlace@CHString@@IEAAXHPEBG@Z(long wstr)
_ZN8CHString13ConcatInPlaceEiPKw # protected: void __thiscall
CHString::ConcatInPlace(int,unsigned short const *)
+@ thiscall -arch=win64 ?Collate@CHString@@QEBAHPEBG@Z(wstr) _ZNK8CHString7CollateEPKt #
public: int __thiscall CHString::Collate(unsigned short const *)const
+@ thiscall -arch=win64 ?Compare@CHString@@QEBAHPEBG@Z(wstr) _ZNK8CHString7CompareEPKt #
public: int __thiscall CHString::Compare(unsigned short const *)const
+@ thiscall -arch=win64 ?CompareNoCase@CHString@@QEBAHPEBG@Z(wstr)
_ZNK8CHString13CompareNoCaseEPKt # public: int __thiscall CHString::CompareNoCase(unsigned
short const *)const
+@ thiscall -arch=win64 ?ConcatCopy@CHString@@IEAAXHPEBGH0@Z(long wstr long wstr)
_ZN8CHString10ConcatCopyEiPKtiS1_ # protected: void __thiscall
CHString::ConcatCopy(int,unsigned short const *,int,unsigned short const *)
+@ thiscall -arch=win64 ?ConcatInPlace@CHString@@IEAAXHPEBG@Z(long wstr)
_ZN8CHString13ConcatInPlaceEiPKt # protected: void __thiscall
CHString::ConcatInPlace(int,unsigned short const *)
@ thiscall -arch=win64 ?CopyBeforeWrite@CHString@@IEAAXXZ()
_ZN8CHString15CopyBeforeWriteEv # protected: void __thiscall
CHString::CopyBeforeWrite(void)
@ thiscall -arch=win64 ?Empty@CHString@@QEAAXXZ() _ZN8CHString5EmptyEv # public: void
__thiscall CHString::Empty(void)
-@ thiscall -arch=win64 ?Find@CHString@@QEBAHPEBG@Z(wstr) _ZNK8CHString4FindEPKw # public:
int __thiscall CHString::Find(unsigned short const *)const
-@ thiscall -arch=win64 ?Find@CHString@@QEBAHG@Z(long) _ZNK8CHString4FindEPKw # public:
int __thiscall CHString::Find(unsigned short)const
-@ thiscall -arch=win64 ?FindOneOf@CHString@@QEBAHPEBG@Z(wstr) _ZNK8CHString9FindOneOfEPKw
# public: int __thiscall CHString::FindOneOf(unsigned short const *)const
+@ thiscall -arch=win64 ?Find@CHString@@QEBAHPEBG@Z(wstr) _ZNK8CHString4FindEPKt # public:
int __thiscall CHString::Find(unsigned short const *)const
+@ thiscall -arch=win64 ?Find@CHString@@QEBAHG@Z(long) _ZNK8CHString4FindEt # public: int
__thiscall CHString::Find(unsigned short)const
+@ thiscall -arch=win64 ?FindOneOf@CHString@@QEBAHPEBG@Z(wstr) _ZNK8CHString9FindOneOfEPKt
# public: int __thiscall CHString::FindOneOf(unsigned short const *)const
@ thiscall -arch=win64 ?Format@CHString@@QEAAXIZZ(long long long) _ZN8CHString6FormatEjz
# public: void __cdecl CHString::Format(unsigned int,...)
-@ thiscall -arch=win64 ?Format@CHString@@QEAAXPEBGZZ(long wstr long)
_ZN8CHString6FormatEPKwz # public: void __cdecl CHString::Format(unsigned short const
*,...)
+@ thiscall -arch=win64 ?Format@CHString@@QEAAXPEBGZZ(long wstr long)
_ZN8CHString6FormatEPKtz # public: void __cdecl CHString::Format(unsigned short const
*,...)
@ thiscall -arch=win64 ?FormatMessageW@CHString@@QEAAXIZZ(long long long)
_ZN8CHString14FormatMessageWEjz # public: void __cdecl CHString::FormatMessageW(unsigned
int,...)
-@ thiscall -arch=win64 ?FormatMessageW@CHString@@QEAAXPEBGZZ(long ptr long)
_ZN8CHString14FormatMessageWEPKwz # public: void __cdecl CHString::FormatMessageW(unsigned
short const *,...)
-@ thiscall -arch=win64 ?FormatV@CHString@@QEAAXPEBGPEAD@Z(wstr long)
_ZN8CHString7FormatVEPKwPc # public: void __thiscall CHString::FormatV(unsigned short
const *,char *)
+@ thiscall -arch=win64 ?FormatMessageW@CHString@@QEAAXPEBGZZ(long ptr long)
_ZN8CHString14FormatMessageWEPKtz # public: void __cdecl CHString::FormatMessageW(unsigned
short const *,...)
+@ thiscall -arch=win64 ?FormatV@CHString@@QEAAXPEBGPEAD@Z(wstr long)
_ZN8CHString7FormatVEPKtPc # public: void __thiscall CHString::FormatV(unsigned short
const *,char *)
@ thiscall -arch=win64 ?FreeExtra@CHString@@QEAAXXZ() _ZN8CHString9FreeExtraEv # public:
void __thiscall CHString::FreeExtra(void)
@ thiscall -arch=win64 ?GetAllocLength@CHString@@QEBAHXZ()
_ZNK8CHString14GetAllocLengthEv # public: int __thiscall
CHString::GetAllocLength(void)const
@ thiscall -arch=win64 ?GetAt@CHString@@QEBAGH@Z(long) _ZNK8CHString5GetAtEi # public:
unsigned short __thiscall CHString::GetAt(int)const
@@ -120,7 +120,7 @@
@ thiscall -arch=win64 ?IsEmpty@CHString@@QEBAHXZ() _ZNK8CHString7IsEmptyEv # public: int
__thiscall CHString::IsEmpty(void)const
@ thiscall -arch=win64 ?Left@CHString@@QEBA?AV1@H@Z(long) _ZNK8CHString4LeftEi # public:
class CHString __thiscall CHString::Left(int)const
@ thiscall -arch=win64 ?LoadStringW@CHString@@QEAAHI@Z(long) _ZN8CHString11LoadStringWEj
# public: int __thiscall CHString::LoadStringW(unsigned int)
-@ thiscall -arch=win64 ?LoadStringW@CHString@@IEAAHIPEAGI@Z(long wstr long)
_ZN8CHString11LoadStringWEjPwj # protected: int __thiscall CHString::LoadStringW(unsigned
int,unsigned short *,unsigned int)
+@ thiscall -arch=win64 ?LoadStringW@CHString@@IEAAHIPEAGI@Z(long wstr long)
_ZN8CHString11LoadStringWEjPtj # protected: int __thiscall CHString::LoadStringW(unsigned
int,unsigned short *,unsigned int)
@ thiscall -arch=win64 ?LockBuffer@CHString@@QEAAPEAGXZ() _ZN8CHString10LockBufferEv #
public: unsigned short * __thiscall CHString::LockBuffer(void)
@ thiscall -arch=win64 ?MakeLower@CHString@@QEAAXXZ() _ZN8CHString9MakeLowerEv # public:
void __thiscall CHString::MakeLower(void)
@ thiscall -arch=win64 ?MakeReverse@CHString@@QEAAXXZ() _ZN8CHString11MakeReverseEv #
public: void __thiscall CHString::MakeReverse(void)
@@ -130,33 +130,33 @@
@ thiscall -arch=win64 ?Release@CHString@@KAXPEAUCHStringData@@@Z(ptr)
_ZN8CHString7ReleaseEP12CHStringData # protected: static void __stdcall
CHString::Release(struct CHStringData *)
@ thiscall -arch=win64 ?Release@CHString@@IEAAXXZ() _ZN8CHString7ReleaseEv # protected:
void __thiscall CHString::Release(void)
@ thiscall -arch=win64 ?ReleaseBuffer@CHString@@QEAAXH@Z(long)
_ZN8CHString13ReleaseBufferEi # public: void __thiscall CHString::ReleaseBuffer(int)
-@ thiscall -arch=win64 ?ReverseFind@CHString@@QEBAHG@Z(long) _ZNK8CHString11ReverseFindEw
# public: int __thiscall CHString::ReverseFind(unsigned short)const
+@ thiscall -arch=win64 ?ReverseFind@CHString@@QEBAHG@Z(long) _ZNK8CHString11ReverseFindEt
# public: int __thiscall CHString::ReverseFind(unsigned short)const
@ thiscall -arch=win64 ?Right@CHString@@QEBA?AV1@H@Z(long) _ZNK8CHString5RightEi #
public: class CHString __thiscall CHString::Right(int)const
-@ stdcall -arch=win64 ?SafeStrlen@CHString@@KAHPEBG@Z(wstr) _ZN8CHString10SafeStrlenEPKw
# protected: static int__stdcall CHString::SafeStrlen(unsigned short const *)
-@ thiscall -arch=win64 ?SetAt@CHString@@QEAAXHG@Z(long long) _ZN8CHString5SetAtEiw #
public: void __thiscall CHString::SetAt(int,unsigned short)
-@ thiscall -arch=win64 ?SpanExcluding@CHString@@QEBA?AV1@PEBG@Z(long wstr)
_ZNK8CHString13SpanExcludingEPKw # public: class CHString __thiscall
CHString::SpanExcluding(unsigned short const *)const
-@ thiscall -arch=win64 ?SpanIncluding@CHString@@QEBA?AV1@PEBG@Z(long wstr)
_ZNK8CHString13SpanIncludingEPKw # public: class CHString __thiscall
CHString::SpanIncluding(unsigned short const *)const
+@ stdcall -arch=win64 ?SafeStrlen@CHString@@KAHPEBG@Z(wstr) _ZN8CHString10SafeStrlenEPKt
# protected: static int__stdcall CHString::SafeStrlen(unsigned short const *)
+@ thiscall -arch=win64 ?SetAt@CHString@@QEAAXHG@Z(long long) _ZN8CHString5SetAtEit #
public: void __thiscall CHString::SetAt(int,unsigned short)
+@ thiscall -arch=win64 ?SpanExcluding@CHString@@QEBA?AV1@PEBG@Z(long wstr)
_ZNK8CHString13SpanExcludingEPKt # public: class CHString __thiscall
CHString::SpanExcluding(unsigned short const *)const
+@ thiscall -arch=win64 ?SpanIncluding@CHString@@QEBA?AV1@PEBG@Z(long wstr)
_ZNK8CHString13SpanIncludingEPKt # public: class CHString __thiscall
CHString::SpanIncluding(unsigned short const *)const
@ thiscall -arch=win64 ?TrimLeft@CHString@@QEAAXXZ() _ZN8CHString8TrimLeftEv # public:
void __thiscall CHString::TrimLeft(void)
@ thiscall -arch=win64 ?TrimRight@CHString@@QEAAXXZ() _ZN8CHString9TrimRightEv # public:
void __thiscall CHString::TrimRight(void)
@ thiscall -arch=win64 ?UnlockBuffer@CHString@@QEAAXXZ() _ZN8CHString12UnlockBufferEv #
public: void __thiscall CHString::UnlockBuffer(void)
-@ thiscall -arch=win64 ??BCHString@@QEBAPEBGXZ(ptr) _ZNK8CHStringcvPKwEv # public:
__thiscall CHString::operator unsigned short const *(void)const
+@ thiscall -arch=win64 ??BCHString@@QEBAPEBGXZ(ptr) _ZNK8CHStringcvPKtEv # public:
__thiscall CHString::operator unsigned short const *(void)const
@ thiscall -arch=win64 ??YCHString@@QEAAAEBV0@AEBV0@@Z(ptr) _ZN8CHStringpLERKS_ # public:
class CHString const & __thiscall CHString::operator+=(class CHString const &)
@ thiscall -arch=win64 ??YCHString@@QEAAAEBV0@D@Z(long) _ZN8CHStringpLEc # public: class
CHString const & __thiscall CHString::operator+=(char)
-@ thiscall -arch=win64 ??YCHString@@QEAAAEBV0@PEBG@Z(wstr) _ZN8CHStringpLEPKw # public:
class CHString const & __thiscall CHString::operator+=(unsigned short const *)
-@ thiscall -arch=win64 ??YCHString@@QEAAAEBV0@G@Z(long) _ZN8CHStringpLEw # public: class
CHString const & __thiscall CHString::operator+=(unsigned short)
+@ thiscall -arch=win64 ??YCHString@@QEAAAEBV0@PEBG@Z(wstr) _ZN8CHStringpLEPKt # public:
class CHString const & __thiscall CHString::operator+=(unsigned short const *)
+@ thiscall -arch=win64 ??YCHString@@QEAAAEBV0@G@Z(long) _ZN8CHStringpLEt # public: class
CHString const & __thiscall CHString::operator+=(unsigned short)
@ thiscall -arch=win64 ??4CHString@@QEAAAEBV0@PEAV0@@Z(ptr) _ZN8CHStringaSEPS_ # public:
class CHString const & __thiscall CHString::operator=(class CHString *)
@ thiscall -arch=win64 ??4CHString@@QEAAAEBV0@AEBV0@@Z(ptr) _ZN8CHStringaSERKS_ # public:
class CHString const & __thiscall CHString::operator=(class CHString const &)
@ thiscall -arch=win64 ??4CHString@@QEAAAEBV0@PEBD@Z(str) _ZN8CHStringaSEPKc # public:
class CHString const & __thiscall CHString::operator=(char const *)
@ thiscall -arch=win64 ??4CHString@@QEAAAEBV0@D@Z(long) _ZN8CHStringaSEc # public: class
CHString const & __thiscall CHString::operator=(char)
@ thiscall -arch=win64 ??4CHString@@QEAAAEBV0@PEBE@Z(str) _ZN8CHStringaSEPKh # public:
class CHString const & __thiscall CHString::operator=(unsigned char const *)
-@ thiscall -arch=win64 ??4CHString@@QEAAAEBV0@PEBG@Z(wstr) _ZN8CHStringaSEPKw # public:
class CHString const & __thiscall CHString::operator=(unsigned short const *)
-@ thiscall -arch=win64 ??4CHString@@QEAAAEBV0@G@Z(long) _ZN8CHStringaSEw # public: class
CHString const & __thiscall CHString::operator=(unsigned short)
+@ thiscall -arch=win64 ??4CHString@@QEAAAEBV0@PEBG@Z(wstr) _ZN8CHStringaSEPKt # public:
class CHString const & __thiscall CHString::operator=(unsigned short const *)
+@ thiscall -arch=win64 ??4CHString@@QEAAAEBV0@G@Z(long) _ZN8CHStringaSEt # public: class
CHString const & __thiscall CHString::operator=(unsigned short)
@ thiscall -arch=win64 ??ACHString@@QEBAGH@Z(long) _ZNK8CHStringixEi # public: unsigned
short __thiscall CHString::operator[](int)const
@ thiscall -arch=win64 ??1CHString@@QEAA@XZ() _ZN8CHStringD1Ev # public: __thiscall
CHString::~CHString(void), complete object destructor, identical to _ZN8CHStringD2Ev aka
base object destructor
-@ stdcall -arch=win64 ??H@YA?AVCHString@@GAEBV0@@Z(long ptr) _ZplwRK8CHString # class
CHString __stdcall operator+(unsigned short,class CHString const &)
-@ stdcall -arch=win64 ??H@YA?AVCHString@@AEBV0@G@Z(ptr long) _ZplRK8CHStringw # class
CHString __stdcall operator+(class CHString const &,unsigned short)
-@ stdcall -arch=win64 ??H@YA?AVCHString@@AEBV0@PEBG@Z(ptr wstr) _ZplRK8CHStringPKw #
class CHString __stdcall operator+(class CHString const &,unsigned short const *)
-@ stdcall -arch=win64 ??H@YA?AVCHString@@PEBGAEBV0@@Z(wstr ptr) _ZplPKwRK8CHString #
class CHString __stdcall operator+(unsigned short const *,class CHString const &)
+@ stdcall -arch=win64 ??H@YA?AVCHString@@GAEBV0@@Z(long ptr) _ZpltRK8CHString # class
CHString __stdcall operator+(unsigned short,class CHString const &)
+@ stdcall -arch=win64 ??H@YA?AVCHString@@AEBV0@G@Z(ptr long) _ZplRK8CHStringt # class
CHString __stdcall operator+(class CHString const &,unsigned short)
+@ stdcall -arch=win64 ??H@YA?AVCHString@@AEBV0@PEBG@Z(ptr wstr) _ZplRK8CHStringPKt #
class CHString __stdcall operator+(class CHString const &,unsigned short const *)
+@ stdcall -arch=win64 ??H@YA?AVCHString@@PEBGAEBV0@@Z(wstr ptr) _ZplPKtRK8CHString #
class CHString __stdcall operator+(unsigned short const *,class CHString const &)
@ stdcall -arch=win64 ??H@YA?AVCHString@@AEBV0@0@Z(ptr ptr) _ZplRK8CHStringS1_ # class
CHString __stdcall operator+(class CHString const &,class CHString const &)
@ thiscall -arch=win64 ?Flush@Provider@@MEAAXXZ() _ZN8Provider5FlushEv # protected:
virtual void __thiscall Provider::Flush(void)
@ thiscall -arch=win64 ?ValidateDeletionFlags@Provider@@MEAAJJ@Z(long)
_ZN8Provider21ValidateDeletionFlagsEl # protected: virtual long __thiscall
Provider::ValidateDeletionFlags(long)
diff --git a/modules/rostests/tests/dllexport/CMakeLists.txt
b/modules/rostests/tests/dllexport/CMakeLists.txt
index 65e87cec3bb..111921cf7f0 100644
--- a/modules/rostests/tests/dllexport/CMakeLists.txt
+++ b/modules/rostests/tests/dllexport/CMakeLists.txt
@@ -23,17 +23,7 @@ add_executable(dllexport_test dllexport_test.c)
set_module_type(dllexport_test win32cui)
add_importlibs(dllexport_test dllexport_test_dll1 msvcrt kernel32 ntdll)
-# framedyn is skipped in the clang-cl build
-if(NOT USE_CLANG_CL)
-
add_library(dllimport_test MODULE dllimport_framedyn.cpp)
set_module_type(dllimport_test module)
add_importlibs(dllimport_test framedyn)
-
-if (MSVC)
- target_compile_options(dllimport_test PRIVATE /Zc:wchar_t-)
-else()
- target_link_libraries(dllimport_test framedynex)
-endif()
-
-endif()
+add_dependencies(dllimport_test psdk)
diff --git a/sdk/include/psdk/chstring.h b/sdk/include/psdk/chstring.h
index 2db344a2262..a2994bc064b 100644
--- a/sdk/include/psdk/chstring.h
+++ b/sdk/include/psdk/chstring.h
@@ -6,15 +6,25 @@
#include <windows.h>
#include <provexce.h>
+/*
+ * Framedyn dates from ancient times when wchar_t was a typedef to unsigned short.
+ * In order be able to use newer compilers, we define inline overloaded wrappers.
+ */
+using CHSTRING_WCHAR=unsigned short ;
+using CHSTRING_LPCWSTR=const CHSTRING_WCHAR*;
+using CHSTRING_LPWSTR=CHSTRING_WCHAR*;
+static_assert(sizeof(CHSTRING_WCHAR) == sizeof(wchar_t), "CHSTRING_WCHAR must be of
same size than wchar_t");
+
+
struct CHStringData
{
long nRefs;
int nDataLength;
int nAllocLength;
- WCHAR* data()
+ CHSTRING_WCHAR* data()
{
- return (WCHAR*)(this+1);
+ return (CHSTRING_WCHAR*)(this+1);
}
};
@@ -22,109 +32,346 @@ class CHString
{
public:
CHString();
- CHString(WCHAR ch, int nRepeat = 1);
- CHString(LPCWSTR lpsz);
- CHString(LPCWSTR lpch, int nLength);
+ CHString(CHSTRING_WCHAR ch, int nRepeat = 1);
+ CHString(CHSTRING_LPCWSTR lpsz);
+ CHString(CHSTRING_LPCWSTR lpch, int nLength);
CHString(LPCSTR lpsz);
CHString(const CHString& stringSrc);
CHString(const unsigned char* lpsz);
~CHString();
- BSTR AllocSysString() const;
- int Collate(LPCWSTR lpsz) const;
- int Compare(LPCWSTR lpsz) const;
- int CompareNoCase(LPCWSTR lpsz) const;
+ CHSTRING_LPWSTR AllocSysString() const;
+ int Collate(CHSTRING_LPCWSTR lpsz) const;
+ int Collate(const wchar_t* lpsz) const
+ {
+ return Collate(reinterpret_cast<CHSTRING_LPCWSTR>(lpsz));
+ }
+ int Compare(CHSTRING_LPCWSTR lpsz) const;
+ int Compare(const wchar_t* lpsz) const
+ {
+ return Compare(reinterpret_cast<CHSTRING_LPCWSTR>(lpsz));
+ }
+ int CompareNoCase(CHSTRING_LPCWSTR lpsz) const;
+ int CompareNoCase(const wchar_t* lpsz) const
+ {
+ return CompareNoCase(reinterpret_cast<CHSTRING_LPCWSTR>(lpsz));
+ }
void Empty();
- int Find(WCHAR ch) const;
- int Find(LPCWSTR lpszSub) const;
- int FindOneOf(LPCWSTR lpszCharSet) const;
+ int Find(CHSTRING_WCHAR ch) const;
+ int Find(CHSTRING_LPCWSTR lpszSub) const;
+ int Find(const wchar_t* lpszSub) const
+ {
+ return FindOneOf(reinterpret_cast<CHSTRING_LPCWSTR>(lpszSub));
+ }
+ int FindOneOf(CHSTRING_LPCWSTR lpszCharSet) const;
+ int FindOneOf(const wchar_t* lpszCharSet) const
+ {
+ return FindOneOf(reinterpret_cast<CHSTRING_LPCWSTR>(lpszCharSet));
+ }
void Format(UINT nFormatID, ...);
- void Format(LPCWSTR lpszFormat, ...);
+ void Format(CHSTRING_LPCWSTR lpszFormat, ...);
+ template <typename ...Params>
+ void Format(const wchar_t* lpszFormat, Params&&... params)
+ {
+ Format(reinterpret_cast<CHSTRING_LPCWSTR>(lpszFormat), params...);
+ }
void FormatMessageW(UINT nFormatID, ...);
- void FormatMessageW(LPCWSTR lpszFormat, ...);
- void FormatV(LPCWSTR lpszFormat, va_list argList);
+ void FormatMessageW(CHSTRING_LPCWSTR lpszFormat, ...);
+ template <typename ...Params>
+ void FormatMessageW(const wchar_t* lpszFormat, Params&&... params)
+ {
+ FormatMessageW(reinterpret_cast<CHSTRING_LPCWSTR>(lpszFormat), params...);
+ }
+ void FormatV(CHSTRING_LPCWSTR lpszFormat, va_list argList);
+ void FormatV(const wchar_t* lpszFormat, va_list argList)
+ {
+ return FormatV(reinterpret_cast<CHSTRING_LPCWSTR>(lpszFormat), argList);
+ }
void FreeExtra();
int GetAllocLength() const;
- WCHAR GetAt(int nIndex) const;
- LPWSTR GetBuffer(int nMinBufLength);
- LPWSTR GetBufferSetLength(int nNewLength);
+ CHSTRING_WCHAR GetAt(int nIndex) const;
+ CHSTRING_LPWSTR GetBuffer(int nMinBufLength);
+ CHSTRING_LPWSTR GetBufferSetLength(int nNewLength);
int GetLength() const;
BOOL IsEmpty() const;
CHString Left(int nCount) const;
int LoadStringW(UINT nID);
- LPWSTR LockBuffer();
+ CHSTRING_LPWSTR LockBuffer();
void MakeLower();
void MakeReverse();
void MakeUpper();
CHString Mid(int nFirst) const;
CHString Mid(int nFirst, int nCount) const;
void ReleaseBuffer(int nNewLength = -1);
- int ReverseFind(WCHAR ch) const;
+ int ReverseFind(CHSTRING_WCHAR ch) const;
CHString Right(int nCount) const;
- void SetAt(int nIndex, WCHAR ch);
- CHString SpanExcluding(LPCWSTR lpszCharSet) const;
- CHString SpanIncluding(LPCWSTR lpszCharSet) const;
+ void SetAt(int nIndex, CHSTRING_WCHAR ch);
+ CHString SpanExcluding(CHSTRING_LPCWSTR lpszCharSet) const;
+ CHString SpanExcluding(const wchar_t* lpszCharSet) const
+ {
+ return SpanExcluding(reinterpret_cast<CHSTRING_LPCWSTR>(lpszCharSet));
+ }
+ CHString SpanIncluding(CHSTRING_LPCWSTR lpszCharSet) const;
+ CHString SpanIncluding(const wchar_t* lpszCharSet) const
+ {
+ return SpanIncluding(reinterpret_cast<CHSTRING_LPCWSTR>(lpszCharSet));
+ }
void TrimLeft();
void TrimRight();
void UnlockBuffer();
const CHString& operator=(char ch);
- const CHString& operator=(WCHAR ch);
+ const CHString& operator=(CHSTRING_WCHAR ch);
const CHString& operator=(CHString *p);
const CHString& operator=(LPCSTR lpsz);
- const CHString& operator=(LPCWSTR lpsz);
+ const CHString& operator=(CHSTRING_LPCWSTR lpsz);
const CHString& operator=(const CHString& stringSrc);
const CHString& operator=(const unsigned char* lpsz);
const CHString& operator+=(char ch);
- const CHString& operator+=(WCHAR ch);
- const CHString& operator+=(LPCWSTR lpsz);
+ const CHString& operator+=(CHSTRING_WCHAR ch);
+ const CHString& operator+=(CHSTRING_LPCWSTR lpsz);
const CHString& operator+=(const CHString& string);
- WCHAR operator[](int nIndex) const;
+ CHSTRING_WCHAR operator[](int nIndex) const;
- operator LPCWSTR() const;
+ operator CHSTRING_LPCWSTR() const;
- friend CHString WINAPI operator+(WCHAR ch, const CHString& string);
- friend CHString WINAPI operator+(const CHString& string, WCHAR ch);
- friend CHString WINAPI operator+(const CHString& string, LPCWSTR lpsz);
- friend CHString WINAPI operator+(LPCWSTR lpsz, const CHString& string);
+ friend CHString WINAPI operator+(CHSTRING_WCHAR ch, const CHString& string);
+ friend CHString WINAPI operator+(const CHString& string, CHSTRING_WCHAR ch);
+ friend CHString WINAPI operator+(const CHString& string, CHSTRING_LPCWSTR lpsz);
+ friend CHString WINAPI operator+(CHSTRING_LPCWSTR lpsz, const CHString& string);
friend CHString WINAPI operator+(const CHString& string1, const CHString&
string2);
protected:
- LPWSTR m_pchData;
+ CHSTRING_LPWSTR m_pchData;
void AllocBeforeWrite(int nLen);
void AllocBuffer(int nLen);
void AllocCopy(CHString& dest, int nCopyLen, int nCopyIndex, int nExtraLen)
const;
- void AssignCopy(int nSrcLen, LPCWSTR lpszSrcData);
- void ConcatCopy(int nSrc1Len, LPCWSTR lpszSrc1Data, int nSrc2Len, LPCWSTR
lpszSrc2Data);
- void ConcatInPlace(int nSrcLen, LPCWSTR lpszSrcData);
+ void AssignCopy(int nSrcLen, CHSTRING_LPCWSTR lpszSrcData);
+ void AssignCopy(int nSrcLen, const wchar_t* lpszSrcData)
+ {
+ AssignCopy(nSrcLen, reinterpret_cast<CHSTRING_LPCWSTR>(lpszSrcData));
+ }
+ void ConcatCopy(int nSrc1Len, CHSTRING_LPCWSTR lpszSrc1Data, int nSrc2Len,
CHSTRING_LPCWSTR lpszSrc2Data);
+ void ConcatCopy(int nSrc1Len, const wchar_t* lpszSrc1Data, int nSrc2Len, const
wchar_t* lpszSrc2Data)
+ {
+ ConcatCopy(nSrc1Len, reinterpret_cast<CHSTRING_LPCWSTR>(lpszSrc1Data),
nSrc2Len, reinterpret_cast<CHSTRING_LPCWSTR>(lpszSrc2Data));
+ }
+ void ConcatInPlace(int nSrcLen, CHSTRING_LPCWSTR lpszSrcData);
+ void ConcatInPlace(int nSrcLen, const wchar_t* lpszSrcData)
+ {
+ ConcatInPlace(nSrcLen, reinterpret_cast<CHSTRING_LPCWSTR>(lpszSrcData));
+ }
void CopyBeforeWrite();
CHStringData* GetData() const;
void Init();
- int LoadStringW(UINT nID, LPWSTR lpszBuf, UINT nMaxBuf);
+ int LoadStringW(UINT nID, CHSTRING_LPWSTR lpszBuf, UINT nMaxBuf);
void Release();
static void WINAPI Release(CHStringData* pData);
- static int WINAPI SafeStrlen(LPCWSTR lpsz);
+ static int WINAPI SafeStrlen(CHSTRING_LPCWSTR lpsz);
+ static int WINAPI SafeStrlen(const wchar_t* lpsz)
+ {
+ return SafeStrlen(reinterpret_cast<CHSTRING_LPCWSTR>(lpsz));
+ }
};
-inline BOOL operator==(const CHString& s1, LPCWSTR s2) { return s1.Compare(s2) == 0;
}
+inline BOOL operator==(const CHString& s1, CHSTRING_LPCWSTR s2) { return
s1.Compare(s2) == 0; }
inline BOOL operator==(const CHString& s1, const CHString& s2) { return
s1.Compare(s2) == 0; }
-inline BOOL operator!=(const CHString& s1, LPCWSTR s2) { return s1.Compare(s2) != 0;
}
+inline BOOL operator!=(const CHString& s1, CHSTRING_LPCWSTR s2) { return
s1.Compare(s2) != 0; }
inline BOOL operator!=(const CHString& s1, const CHString& s2) { return
s1.Compare(s2) != 0; }
-inline BOOL operator<(const CHString& s1, LPCWSTR s2) { return s1.Compare(s2) <
0; }
+inline BOOL operator<(const CHString& s1, CHSTRING_LPCWSTR s2) { return
s1.Compare(s2) < 0; }
inline BOOL operator<(const CHString& s1, const CHString& s2) { return
s1.Compare(s2) < 0; }
-inline BOOL operator>(const CHString& s1, LPCWSTR s2) { return s1.Compare(s2) >
0; }
+inline BOOL operator>(const CHString& s1, CHSTRING_LPCWSTR s2) { return
s1.Compare(s2) > 0; }
inline BOOL operator>(const CHString& s1, const CHString& s2) { return
s1.Compare(s2) > 0; }
-inline BOOL operator<=(const CHString& s1, LPCWSTR s2) { return s1.Compare(s2)
<= 0; }
+inline BOOL operator<=(const CHString& s1, CHSTRING_LPCWSTR s2) { return
s1.Compare(s2) <= 0; }
inline BOOL operator<=(const CHString& s1, const CHString& s2) { return
s1.Compare(s2) <= 0; }
-inline BOOL operator>=(const CHString& s1, LPCWSTR s2) { return s1.Compare(s2)
>= 0; }
+inline BOOL operator>=(const CHString& s1, CHSTRING_LPCWSTR s2) { return
s1.Compare(s2) >= 0; }
inline BOOL operator>=(const CHString& s1, const CHString& s2) { return
s1.Compare(s2) >= 0; }
+/* Have GCC link to the symbols exported by framedyn.dll */
+#ifdef __GNUC__
+
+#define DEFINE_FRAMEDYN_ALIAS(alias, orig) __asm__(".set " #alias ",
\"" #orig "\"");
+
+#ifdef _M_IX86
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString16AllocBeforeWriteEi,
?AllocBeforeWrite@CHString@@IAEXH@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString11AllocBufferEi, ?AllocBuffer@CHString@@IAEXH@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString9AllocCopyERS_iii,
?AllocCopy@CHString@@IBEXAAV1@HHH@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString14AllocSysStringEv,
?AllocSysString@CHString@@QBEPAGXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString10AssignCopyEiPKt, ?AssignCopy@CHString@@IAEXHPBG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC1ERKS_, ??0CHString@@QAE@ABV0@@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC1EPKc, ??0CHString@@QAE@PBD@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC1EPKh, ??0CHString@@QAE@PBE@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC1EPKt, ??0CHString@@QAE@PBG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC1EPKti, ??0CHString@@QAE@PBGH@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC1Eti, ??0CHString@@QAE@GH@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC1Ev, ??0CHString@@QAE@XZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC2Ev, ??0CHString@@QAE@XZ) //
CHString::CHString(void)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString7CollateEPKt, ?Collate@CHString@@QBEHPBG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString7CompareEPKt, ?Compare@CHString@@QBEHPBG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString13CompareNoCaseEPKt,
?CompareNoCase@CHString@@QBEHPBG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString10ConcatCopyEiPKtiS1_,
?ConcatCopy@CHString@@IAEXHPBGH0@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString13ConcatInPlaceEiPKt,
?ConcatInPlace@CHString@@IAEXHPBG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString15CopyBeforeWriteEv,
?CopyBeforeWrite@CHString@@IAEXXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString5EmptyEv, ?Empty@CHString@@QAEXXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString4FindEPKt, ?Find@CHString@@QBEHPBG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString4FindEt, ?Find@CHString@@QBEHG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString9FindOneOfEPKt, ?FindOneOf@CHString@@QBEHPBG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString6FormatEjz, ?Format@CHString@@QAAXIZZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString6FormatEPKtz, ?Format@CHString@@QAAXPBGZZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString14FormatMessageWEjz,
?FormatMessageW@CHString@@QAAXIZZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString14FormatMessageWEPKtz,
?FormatMessageW@CHString@@QAAXPBGZZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString7FormatVEPKtPc, ?FormatV@CHString@@QAEXPBGPAD@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString9FreeExtraEv, ?FreeExtra@CHString@@QAEXXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString14GetAllocLengthEv,
?GetAllocLength@CHString@@QBEHXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString5GetAtEi, ?GetAt@CHString@@QBEGH@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString9GetBufferEi, ?GetBuffer@CHString@@QAEPAGH@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString18GetBufferSetLengthEi,
?GetBufferSetLength@CHString@@QAEPAGH@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString7GetDataEv,
?GetData@CHString@@IBEPAUCHStringData@@XZ)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString9GetLengthEv, ?GetLength@CHString@@QBEHXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString4InitEv, ?Init@CHString@@IAEXXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString7IsEmptyEv, ?IsEmpty@CHString@@QBEHXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString4LeftEi, ?Left@CHString@@QBE?AV1@H@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString11LoadStringWEj, ?LoadStringW@CHString@@QAEHI@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString11LoadStringWEjPtj,
?LoadStringW@CHString@@IAEHIPAGI@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString10LockBufferEv, ?LockBuffer@CHString@@QAEPAGXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString9MakeLowerEv, ?MakeLower@CHString@@QAEXXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString11MakeReverseEv, ?MakeReverse@CHString@@QAEXXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString9MakeUpperEv, ?MakeUpper@CHString@@QAEXXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString3MidEi, ?Mid@CHString@@QBE?AV1@H@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString3MidEii, ?Mid@CHString@@QBE?AV1@HH@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString7ReleaseEP12CHStringData@4,
?Release@CHString@@KGXPAUCHStringData@@@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString7ReleaseEv, ?Release@CHString@@IAEXXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString13ReleaseBufferEi, ?ReleaseBuffer@CHString@@QAEXH@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString11ReverseFindEt, ?ReverseFind@CHString@@QBEHG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString5RightEi, ?Right@CHString@@QBE?AV1@H@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString10SafeStrlenEPKt@4, ?SafeStrlen@CHString@@KGHPBG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString5SetAtEit, ?SetAt@CHString@@QAEXHG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString13SpanExcludingEPKt,
?SpanExcluding@CHString@@QBE?AV1@PBG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString13SpanIncludingEPKt,
?SpanIncluding@CHString@@QBE?AV1@PBG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString8TrimLeftEv, ?TrimLeft@CHString@@QAEXXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString9TrimRightEv, ?TrimRight@CHString@@QAEXXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHString12UnlockBufferEv, ?UnlockBuffer@CHString@@QAEXXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHStringcvPKwEv, ??BCHString@@QBEPBGXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringpLERKS_, ??YCHString@@QAEABV0@ABV0@@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringpLEc, ??YCHString@@QAEABV0@D@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringpLEPKw, ??YCHString@@QAEABV0@PBG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringpLEw, ??YCHString@@QAEABV0@G@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringaSEPS_, ??4CHString@@QAEABV0@PAV0@@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringaSERKS_, ??4CHString@@QAEABV0@ABV0@@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringaSEPKc, ??4CHString@@QAEABV0@PBD@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringaSEc, ??4CHString@@QAEABV0@D@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringaSEPKh, ??4CHString@@QAEABV0@PBE@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringaSEPKw, ??4CHString@@QAEABV0@PBG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringaSEw, ??4CHString@@QAEABV0@G@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZNK8CHStringixEi, ??ACHString@@QBEGH@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringD1Ev, ??1CHString@@QAE@XZ) // CHString::~CHString()
complete object destructor
+DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringD2Ev, ??1CHString@@QAE@XZ) // CHString::~CHString()
base object destructor
+DEFINE_FRAMEDYN_ALIAS(__ZplwRK8CHString, ??H@YG?AVCHString@@GABV0@@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZplRK8CHStringw, ??H@YG?AVCHString@@ABV0@G@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZplRK8CHStringPKw, ??H@YG?AVCHString@@ABV0@PBG@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZplPKwRK8CHString, ??H@YG?AVCHString@@PBGABV0@@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZplRK8CHStringS1_, ??H@YG?AVCHString@@ABV0@0@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8Provider5FlushEv, ?Flush@Provider@@MAEXXZ)
+DEFINE_FRAMEDYN_ALIAS(__ZN8Provider21ValidateDeletionFlagsEl,
?ValidateDeletionFlags@Provider@@MAEJJ@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8Provider19ValidateMethodFlagsEl,
?ValidateMethodFlags@Provider@@MAEJJ@Z)
+DEFINE_FRAMEDYN_ALIAS(__ZN8Provider18ValidateQueryFlagsEl,
?ValidateQueryFlags@Provider@@MAEJJ@Z)
+#elif defined(_M_AMD64)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString16AllocBeforeWriteEi,
?AllocBeforeWrite@CHString@@IEAAXH@Z) // protected: void __thiscall
CHString::AllocBeforeWrite(int)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString11AllocBufferEi, ?AllocBuffer@CHString@@IEAAXH@Z) //
protected: void __thiscall CHString::AllocBuffer(int)
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString9AllocCopyERS_iii,
?AllocCopy@CHString@@IEBAXAEAV1@HHH@Z) // protected: void __thiscall
CHString::AllocCopy(class CHString &,int,int,int)const
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString14AllocSysStringEv,
?AllocSysString@CHString@@QEBAPEAGXZ)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString10AssignCopyEiPKt, ?AssignCopy@CHString@@IEAAXHPEBG@Z)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC1ERKS_, ??0CHString@@QEAA@AEBV0@@Z) //
CHString::CHString(CHString const&)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC1EPKc, ??0CHString@@QEAA@PEBD@Z) //
CHString::CHString(char const*)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC1EPKh, ??0CHString@@QEAA@PEBE@Z) //
CHString::CHString(unsigned char const*)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC1EPKt, ??0CHString@@QEAA@PEBG@Z) //
CHString::CHString(unsigned short const*)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC1EPKti, ??0CHString@@QEAA@PEBGH@Z) //
CHString::CHString(unsigned short const*, int)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC1Eti, ??0CHString@@QEAA@GH@Z) //
CHString::CHString(unsigned short, int)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC1Ev, ??0CHString@@QEAA@XZ) // public: __thiscall
CHString::CHString(void)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC2Ev, ??0CHString@@QEAA@XZ) // public: __thiscall
CHString::CHString(void)
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString7CollateEPKt, ?Collate@CHString@@QEBAHPEBG@Z) //
public: int __thiscall CHString::Collate(unsigned short const *)const
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString7CompareEPKt, ?Compare@CHString@@QEBAHPEBG@Z) //
public: int __thiscall CHString::Compare(unsigned short const *)const
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString13CompareNoCaseEPKt,
?CompareNoCase@CHString@@QEBAHPEBG@Z) // public: int __thiscall
CHString::CompareNoCase(unsigned short const *)const
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString10ConcatCopyEiPKtiS1_,
?ConcatCopy@CHString@@IEAAXHPEBGH0@Z) // protected: void __thiscall
CHString::ConcatCopy(int,unsigned short const *,int,unsigned short const *)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString13ConcatInPlaceEiPKt,
?ConcatInPlace@CHString@@IEAAXHPEBG@Z) // protected: void __thiscall
CHString::ConcatInPlace(int,unsigned short const *)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString15CopyBeforeWriteEv,
?CopyBeforeWrite@CHString@@IEAAXXZ) // protected: void __thiscall
CHString::CopyBeforeWrite(void)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString5EmptyEv, ?Empty@CHString@@QEAAXXZ) // public: void
__thiscall CHString::Empty(void)
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString4FindEPKt, ?Find@CHString@@QEBAHPEBG@Z) // public: int
__thiscall CHString::Find(unsigned short const *)const
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString4FindEt, ?Find@CHString@@QEBAHG@Z) // public: int
__thiscall CHString::Find(unsigned short)const
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString9FindOneOfEPKt, ?FindOneOf@CHString@@QEBAHPEBG@Z) //
public: int __thiscall CHString::FindOneOf(unsigned short const *)const
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString6FormatEjz, ?Format@CHString@@QEAAXIZZ) // public: void
__cdecl CHString::Format(unsigned int,...)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString6FormatEPKtz, ?Format@CHString@@QEAAXPEBGZZ) // public:
void __cdecl CHString::Format(unsigned short const *,...)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString14FormatMessageWEjz,
?FormatMessageW@CHString@@QEAAXIZZ) // public: void __cdecl
CHString::FormatMessageW(unsigned int,...)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString14FormatMessageWEPKtz,
?FormatMessageW@CHString@@QEAAXPEBGZZ) // public: void __cdecl
CHString::FormatMessageW(unsigned short const *,...)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString7FormatVEPKtPc, ?FormatV@CHString@@QEAAXPEBGPEAD@Z) //
public: void __thiscall CHString::FormatV(unsigned short const *,char *)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString9FreeExtraEv, ?FreeExtra@CHString@@QEAAXXZ) // public:
void __thiscall CHString::FreeExtra(void)
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString14GetAllocLengthEv, ?GetAllocLength@CHString@@QEBAHXZ)
// public: int __thiscall CHString::GetAllocLength(void)const
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString5GetAtEi, ?GetAt@CHString@@QEBAGH@Z) // public:
unsigned short __thiscall CHString::GetAt(int)const
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString9GetBufferEi, ?GetBuffer@CHString@@QEAAPEAGH@Z) //
public: unsigned short * __thiscall CHString::GetBuffer(int)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString18GetBufferSetLengthEi,
?GetBufferSetLength@CHString@@QEAAPEAGH@Z) // public: unsigned short * __thiscall
CHString::GetBufferSetLength(int)
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString7GetDataEv,
?GetData@CHString@@IEBAPEAUCHStringData@@XZ) // protected: struct CHStringData *
__thiscall CHString::GetData(void)const
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString9GetLengthEv, ?GetLength@CHString@@QEBAHXZ) // public:
int __thiscall CHString::GetLength(void)const
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString4InitEv, ?Init@CHString@@IEAAXXZ) // protected: void
__thiscall CHString::Init(void)
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString7IsEmptyEv, ?IsEmpty@CHString@@QEBAHXZ) // public: int
__thiscall CHString::IsEmpty(void)const
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString4LeftEi, ?Left@CHString@@QEBA?AV1@H@Z) // public:
class CHString __thiscall CHString::Left(int)const
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString11LoadStringWEj, ?LoadStringW@CHString@@QEAAHI@Z) //
public: int __thiscall CHString::LoadStringW(unsigned int)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString11LoadStringWEjPtj,
?LoadStringW@CHString@@IEAAHIPEAGI@Z) // protected: int __thiscall
CHString::LoadStringW(unsigned int,unsigned short *,unsigned int)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString10LockBufferEv, ?LockBuffer@CHString@@QEAAPEAGXZ) //
public: unsigned short * __thiscall CHString::LockBuffer(void)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString9MakeLowerEv, ?MakeLower@CHString@@QEAAXXZ) // public:
void __thiscall CHString::MakeLower(void)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString11MakeReverseEv, ?MakeReverse@CHString@@QEAAXXZ) //
public: void __thiscall CHString::MakeReverse(void)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString9MakeUpperEv, ?MakeUpper@CHString@@QEAAXXZ) // public:
void __thiscall CHString::MakeUpper(void)
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString3MidEi, ?Mid@CHString@@QEBA?AV1@H@Z) // public: class
CHString __thiscall CHString::Mid(int)const
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString3MidEii, ?Mid@CHString@@QEBA?AV1@HH@Z) // public:
class CHString __thiscall CHString::Mid(int,int)const
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString7ReleaseEP12CHStringData,
?Release@CHString@@KAXPEAUCHStringData@@@Z) // protected: static void __stdcall
CHString::Release(struct CHStringData *)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString7ReleaseEv, ?Release@CHString@@IEAAXXZ) // protected:
void __thiscall CHString::Release(void)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString13ReleaseBufferEi, ?ReleaseBuffer@CHString@@QEAAXH@Z)
// public: void __thiscall CHString::ReleaseBuffer(int)
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString11ReverseFindEt, ?ReverseFind@CHString@@QEBAHG@Z) //
public: int __thiscall CHString::ReverseFind(unsigned short)const
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString5RightEi, ?Right@CHString@@QEBA?AV1@H@Z) // public:
class CHString __thiscall CHString::Right(int)const
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString10SafeStrlenEPKt, ?SafeStrlen@CHString@@KAHPEBG@Z) //
protected: static int__stdcall CHString::SafeStrlen(unsigned short const *)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString5SetAtEit, ?SetAt@CHString@@QEAAXHG@Z) // public: void
__thiscall CHString::SetAt(int,unsigned short)
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString13SpanExcludingEPKt,
?SpanExcluding@CHString@@QEBA?AV1@PEBG@Z) // public: class CHString __thiscall
CHString::SpanExcluding(unsigned short const *)const
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString13SpanIncludingEPKt,
?SpanIncluding@CHString@@QEBA?AV1@PEBG@Z) // public: class CHString __thiscall
CHString::SpanIncluding(unsigned short const *)const
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString8TrimLeftEv, ?TrimLeft@CHString@@QEAAXXZ) // public:
void __thiscall CHString::TrimLeft(void)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString9TrimRightEv, ?TrimRight@CHString@@QEAAXXZ) // public:
void __thiscall CHString::TrimRight(void)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHString12UnlockBufferEv, ?UnlockBuffer@CHString@@QEAAXXZ) //
public: void __thiscall CHString::UnlockBuffer(void)
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHStringcvPKtEv, ??BCHString@@QEBAPEBGXZ) // public:
__thiscall CHString::operator unsigned short const *(void)const
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringpLERKS_, ??YCHString@@QEAAAEBV0@AEBV0@@Z) // public:
class CHString const & __thiscall CHString::operator+=(class CHString const &)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringpLEc, ??YCHString@@QEAAAEBV0@D@Z) // public: class
CHString const & __thiscall CHString::operator+=(char)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringpLEPKt, ??YCHString@@QEAAAEBV0@PEBG@Z) // public: class
CHString const & __thiscall CHString::operator+=(unsigned short const *)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringpLEt, ??YCHString@@QEAAAEBV0@G@Z) // public: class
CHString const & __thiscall CHString::operator+=(unsigned short)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringaSEPS_, ??4CHString@@QEAAAEBV0@PEAV0@@Z) // public:
class CHString const & __thiscall CHString::operator=(class CHString *)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringaSERKS_, ??4CHString@@QEAAAEBV0@AEBV0@@Z) // public:
class CHString const & __thiscall CHString::operator=(class CHString const &)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringaSEPKc, ??4CHString@@QEAAAEBV0@PEBD@Z) // public: class
CHString const & __thiscall CHString::operator=(char const *)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringaSEc, ??4CHString@@QEAAAEBV0@D@Z) // public: class
CHString const & __thiscall CHString::operator=(char)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringaSEPKh, ??4CHString@@QEAAAEBV0@PEBE@Z) // public: class
CHString const & __thiscall CHString::operator=(unsigned char const *)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringaSEPKt, ??4CHString@@QEAAAEBV0@PEBG@Z) // public: class
CHString const & __thiscall CHString::operator=(unsigned short const *)
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringaSEt, ??4CHString@@QEAAAEBV0@G@Z) // public: class
CHString const & __thiscall CHString::operator=(unsigned short)
+DEFINE_FRAMEDYN_ALIAS(_ZNK8CHStringixEi, ??ACHString@@QEBAGH@Z) // public: unsigned short
__thiscall CHString::operator[](int)const
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringD1Ev, ??1CHString@@QEAA@XZ) // public: __thiscall
CHString::~CHString(void), complete object destructor
+DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringD2Ev, ??1CHString@@QEAA@XZ) // public: __thiscall
CHString::~CHString(void), base object destructor
+DEFINE_FRAMEDYN_ALIAS(_ZpltRK8CHString, ??H@YA?AVCHString@@GAEBV0@@Z) // class CHString
__stdcall operator+(unsigned short,class CHString const &)
+DEFINE_FRAMEDYN_ALIAS(_ZplRK8CHStringt, ??H@YA?AVCHString@@AEBV0@G@Z) // class CHString
__stdcall operator+(class CHString const &,unsigned short)
+DEFINE_FRAMEDYN_ALIAS(_ZplRK8CHStringPKt, ??H@YA?AVCHString@@AEBV0@PEBG@Z) // class
CHString __stdcall operator+(class CHString const &,unsigned short const *)
+DEFINE_FRAMEDYN_ALIAS(_ZplPKtRK8CHString, ??H@YA?AVCHString@@PEBGAEBV0@@Z) // class
CHString __stdcall operator+(unsigned short const *,class CHString const &)
+DEFINE_FRAMEDYN_ALIAS(_ZplRK8CHStringS1_, ??H@YA?AVCHString@@AEBV0@0@Z) // class CHString
__stdcall operator+(class CHString const &,class CHString const &)
+DEFINE_FRAMEDYN_ALIAS(_ZN8Provider5FlushEv, ?Flush@Provider@@MEAAXXZ) // protected:
virtual void __thiscall Provider::Flush(void)
+DEFINE_FRAMEDYN_ALIAS(_ZN8Provider21ValidateDeletionFlagsEl,
?ValidateDeletionFlags@Provider@@MEAAJJ@Z) // protected: virtual long __thiscall
Provider::ValidateDeletionFlags(long)
+DEFINE_FRAMEDYN_ALIAS(_ZN8Provider19ValidateMethodFlagsEl,
?ValidateMethodFlags@Provider@@MEAAJJ@Z) // protected: virtual long __thiscall
Provider::ValidateMethodFlags(long)
+DEFINE_FRAMEDYN_ALIAS(_ZN8Provider18ValidateQueryFlagsEl,
?ValidateQueryFlags@Provider@@MEAAJJ@Z) // protected: virtual long __thiscall
Provider::ValidateQueryFlags(long)
+#else
+#error Unsupported arch
+#endif
+
+#undef DEFINE_FRAMEDYN_ALIAS
+
+#endif // __GNUC__
+
#endif