; 
; Exports of file MfcSubs.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY MfcSubs.dll
EXPORTS
; VCString::?$ConstructElements(@@YGXPAVCString@@H@Z)
??$ConstructElements@VCString@@@@YGXPAVCString@@H@Z
; VCString::?$CopyElements(@@YGXPAVCString@@PBV0@H@Z)
??$CopyElements@VCString@@@@YGXPAVCString@@PBV0@H@Z
; VCString::?$DestructElements(@@YGXPAVCString@@H@Z)
??$DestructElements@VCString@@@@YGXPAVCString@@H@Z
; ABU_GUID::?$HashKey(@@YGIABU_GUID@@@Z)
??$HashKey@ABU_GUID@@@@YGIABU_GUID@@@Z
; PBD::?$HashKey(YGIPBD@Z)
??$HashKey@PBD@@YGIPBD@Z
; PBG::?$HashKey(YGIPBG@Z)
??$HashKey@PBG@@YGIPBG@Z
; public: __thiscall CCriticalSection::CCriticalSection(void)
??0CCriticalSection@@QAE@XZ
; public: __thiscall CMapStringToPtr::CMapStringToPtr(int)
??0CMapStringToPtr@@QAE@H@Z
; protected: __thiscall CObject::CObject(void)
??0CObject@@IAE@XZ
; public: __thiscall CString::CString(class CString const &)
??0CString@@QAE@ABV0@@Z
; public: __thiscall CString::CString(unsigned short,int)
??0CString@@QAE@GH@Z
; public: __thiscall CString::CString(char const *)
??0CString@@QAE@PBD@Z
; public: __thiscall CString::CString(unsigned char const *)
??0CString@@QAE@PBE@Z
; public: __thiscall CString::CString(unsigned short const *)
??0CString@@QAE@PBG@Z
; public: __thiscall CString::CString(unsigned short const *,int)
??0CString@@QAE@PBGH@Z
; public: __thiscall CString::CString(void)
??0CString@@QAE@XZ
; public: __thiscall CStringArray::CStringArray(void)
??0CStringArray@@QAE@XZ
; public: __thiscall CSyncObject::CSyncObject(unsigned short const *)
??0CSyncObject@@QAE@PBG@Z
; public: virtual __thiscall CCriticalSection::~CCriticalSection(void)
??1CCriticalSection@@UAE@XZ
; public: virtual __thiscall CMapStringToPtr::~CMapStringToPtr(void)
??1CMapStringToPtr@@UAE@XZ
; public: virtual __thiscall CObject::~CObject(void)
??1CObject@@UAE@XZ
; public: __thiscall CString::~CString(void)
??1CString@@QAE@XZ
; public: virtual __thiscall CStringArray::~CStringArray(void)
??1CStringArray@@UAE@XZ
; public: virtual __thiscall CSyncObject::~CSyncObject(void)
??1CSyncObject@@UAE@XZ
; public: struct CPlex & __thiscall CPlex::operator=(struct CPlex const &)
??4CPlex@@QAEAAU0@ABU0@@Z
; public: class CString const & __thiscall CString::operator=(class CString const &)
??4CString@@QAEABV0@ABV0@@Z
; public: class CString const & __thiscall CString::operator=(char)
??4CString@@QAEABV0@D@Z
; public: class CString const & __thiscall CString::operator=(unsigned short)
??4CString@@QAEABV0@G@Z
; public: class CString const & __thiscall CString::operator=(char const *)
??4CString@@QAEABV0@PBD@Z
; public: class CString const & __thiscall CString::operator=(unsigned char const *)
??4CString@@QAEABV0@PBE@Z
; public: class CString const & __thiscall CString::operator=(unsigned short const *)
??4CString@@QAEABV0@PBG@Z
; bool __stdcall operator==(class CString const &,class CString const &)
??8@YG_NABVCString@@0@Z
; bool __stdcall operator==(class CString const &,unsigned short const *)
??8@YG_NABVCString@@PBG@Z
; bool __stdcall operator==(unsigned short const *,class CString const &)
??8@YG_NPBGABVCString@@@Z
; bool __stdcall operator!=(class CString const &,class CString const &)
??9@YG_NABVCString@@0@Z
; bool __stdcall operator!=(class CString const &,unsigned short const *)
??9@YG_NABVCString@@PBG@Z
; bool __stdcall operator!=(unsigned short const *,class CString const &)
??9@YG_NPBGABVCString@@@Z
; public: void * & __thiscall CMapStringToPtr::operator[](unsigned short const *)
??ACMapStringToPtr@@QAEAAPAXPBG@Z
; public: unsigned short __thiscall CString::operator[](int)const 
??ACString@@QBEGH@Z
; public: class CString & __thiscall CStringArray::operator[](int)
??ACStringArray@@QAEAAVCString@@H@Z
; public: class CString  __thiscall CStringArray::operator[](int)const 
??ACStringArray@@QBE?AVCString@@H@Z
; public: __thiscall CCriticalSection::operator struct _RTL_CRITICAL_SECTION *(void)
??BCCriticalSection@@QAEPAU_RTL_CRITICAL_SECTION@@XZ
; public: __thiscall CString::operator unsigned short const *(void)const 
??BCString@@QBEPBGXZ
; public: __thiscall CSyncObject::operator void *(void)const 
??BCSyncObject@@QBEPAXXZ
; class CString  __stdcall operator+(class CString const &,class CString const &)
??H@YG?AVCString@@ABV0@0@Z
; class CString  __stdcall operator+(class CString const &,char)
??H@YG?AVCString@@ABV0@D@Z
; class CString  __stdcall operator+(class CString const &,unsigned short)
??H@YG?AVCString@@ABV0@G@Z
; class CString  __stdcall operator+(class CString const &,unsigned short const *)
??H@YG?AVCString@@ABV0@PBG@Z
; class CString  __stdcall operator+(char,class CString const &)
??H@YG?AVCString@@DABV0@@Z
; class CString  __stdcall operator+(unsigned short,class CString const &)
??H@YG?AVCString@@GABV0@@Z
; class CString  __stdcall operator+(unsigned short const *,class CString const &)
??H@YG?AVCString@@PBGABV0@@Z
; bool __stdcall operator<(class CString const &,class CString const &)
??M@YG_NABVCString@@0@Z
; bool __stdcall operator<(class CString const &,unsigned short const *)
??M@YG_NABVCString@@PBG@Z
; bool __stdcall operator<(unsigned short const *,class CString const &)
??M@YG_NPBGABVCString@@@Z
; bool __stdcall operator<=(class CString const &,class CString const &)
??N@YG_NABVCString@@0@Z
; bool __stdcall operator<=(class CString const &,unsigned short const *)
??N@YG_NABVCString@@PBG@Z
; bool __stdcall operator<=(unsigned short const *,class CString const &)
??N@YG_NPBGABVCString@@@Z
; bool __stdcall operator>(class CString const &,class CString const &)
??O@YG_NABVCString@@0@Z
; bool __stdcall operator>(class CString const &,unsigned short const *)
??O@YG_NABVCString@@PBG@Z
; bool __stdcall operator>(unsigned short const *,class CString const &)
??O@YG_NPBGABVCString@@@Z
; bool __stdcall operator>=(class CString const &,class CString const &)
??P@YG_NABVCString@@0@Z
; bool __stdcall operator>=(class CString const &,unsigned short const *)
??P@YG_NABVCString@@PBG@Z
; bool __stdcall operator>=(unsigned short const *,class CString const &)
??P@YG_NPBGABVCString@@@Z
; public: class CString const & __thiscall CString::operator+=(class CString const &)
??YCString@@QAEABV0@ABV0@@Z
; public: class CString const & __thiscall CString::operator+=(char)
??YCString@@QAEABV0@D@Z
; public: class CString const & __thiscall CString::operator+=(unsigned short)
??YCString@@QAEABV0@G@Z
; public: class CString const & __thiscall CString::operator+=(unsigned short const *)
??YCString@@QAEABV0@PBG@Z
; const  CCriticalSection::`vftable'
??_7CCriticalSection@@6B@
; const  CMapStringToPtr::`vftable'
??_7CMapStringToPtr@@6B@
; const  CObject::`vftable'
??_7CObject@@6B@
; const  CStringArray::`vftable'
??_7CStringArray@@6B@
; const  CSyncObject::`vftable'
??_7CSyncObject@@6B@
; public: void __thiscall CMapStringToPtr::`default constructor closure'(void)
??_FCMapStringToPtr@@QAEXXZ
; public: int __thiscall CStringArray::Add(unsigned short const *)
?Add@CStringArray@@QAEHPBG@Z
; unsigned short * __stdcall AfxA2WHelper(unsigned short *,char const *,int)
?AfxA2WHelper@@YGPAGPAGPBDH@Z
; int __stdcall AfxExtractSubString(class CString &,unsigned short const *,int,unsigned short)
?AfxExtractSubString@@YGHAAVCString@@PBGHG@Z
; class CString const & __stdcall AfxGetEmptyString(void)
?AfxGetEmptyString@@YGABVCString@@XZ
; int __stdcall AfxLoadString(unsigned int,unsigned short *,unsigned int)
?AfxLoadString@@YGHIPAGI@Z
; char * __stdcall AfxW2AHelper(char *,unsigned short const *,int)
?AfxW2AHelper@@YGPADPADPBGH@Z
; protected: void __thiscall CString::AllocBeforeWrite(int)
?AllocBeforeWrite@CString@@IAEXH@Z
; protected: void __thiscall CString::AllocBuffer(int)
?AllocBuffer@CString@@IAEXH@Z
; protected: void __thiscall CString::AllocCopy(class CString &,int,int,int)const 
?AllocCopy@CString@@IBEXAAV1@HHH@Z
; public: int __thiscall CStringArray::Append(class CStringArray const &)
?Append@CStringArray@@QAEHABV1@@Z
; protected: void __thiscall CString::AssignCopy(int,unsigned short const *)
?AssignCopy@CString@@IAEXHPBG@Z
; public: int __thiscall CString::Collate(unsigned short const *)const 
?Collate@CString@@QBEHPBG@Z
; public: int __thiscall CString::Compare(unsigned short const *)const 
?Compare@CString@@QBEHPBG@Z
; public: int __thiscall CString::CompareNoCase(unsigned short const *)const 
?CompareNoCase@CString@@QBEHPBG@Z
; protected: void __thiscall CString::ConcatCopy(int,unsigned short const *,int,unsigned short const *)
?ConcatCopy@CString@@IAEXHPBGH0@Z
; protected: void __thiscall CString::ConcatInPlace(int,unsigned short const *)
?ConcatInPlace@CString@@IAEXHPBG@Z
; public: void __thiscall CStringArray::Copy(class CStringArray const &)
?Copy@CStringArray@@QAEXABV1@@Z
; protected: void __thiscall CString::CopyBeforeWrite(void)
?CopyBeforeWrite@CString@@IAEXXZ
; public: static struct CPlex * __stdcall CPlex::Create(struct CPlex * &,unsigned int,unsigned int)
?Create@CPlex@@SGPAU1@AAPAU1@II@Z
; public: class CString & __thiscall CStringArray::ElementAt(int)
?ElementAt@CStringArray@@QAEAAVCString@@H@Z
; public: void __thiscall CString::Empty(void)
?Empty@CString@@QAEXXZ
; public: int __thiscall CString::Find(unsigned short)const 
?Find@CString@@QBEHG@Z
; public: int __thiscall CString::Find(unsigned short const *)const 
?Find@CString@@QBEHPBG@Z
; public: int __thiscall CString::FindOneOf(unsigned short const *)const 
?FindOneOf@CString@@QBEHPBG@Z
; public: void __cdecl CString::Format(unsigned int,...)
?Format@CString@@QAAXIZZ
; public: void __cdecl CString::Format(unsigned short const *,...)
?Format@CString@@QAAXPBGZZ
; public: void __cdecl CString::FormatMessageW(unsigned int,...)
?FormatMessageW@CString@@QAAXIZZ
; public: void __cdecl CString::FormatMessageW(unsigned short const *,...)
?FormatMessageW@CString@@QAAXPBGZZ
; protected: void __thiscall CString::FormatV(unsigned short const *,char *)
?FormatV@CString@@IAEXPBGPAD@Z
; protected: void __thiscall CMapStringToPtr::FreeAssoc(struct CMapStringToPtr::CAssoc *)
?FreeAssoc@CMapStringToPtr@@IAEXPAUCAssoc@1@@Z
; public: void __thiscall CPlex::FreeDataChain(void)
?FreeDataChain@CPlex@@QAEXXZ
; public: void __thiscall CString::FreeExtra(void)
?FreeExtra@CString@@QAEXXZ
; public: void __thiscall CStringArray::FreeExtra(void)
?FreeExtra@CStringArray@@QAEXXZ
; public: int __thiscall CString::GetAllocLength(void)const 
?GetAllocLength@CString@@QBEHXZ
; protected: struct CMapStringToPtr::CAssoc * __thiscall CMapStringToPtr::GetAssocAt(unsigned short const *,unsigned int &)const 
?GetAssocAt@CMapStringToPtr@@IBEPAUCAssoc@1@PBGAAI@Z
; public: unsigned short __thiscall CString::GetAt(int)const 
?GetAt@CString@@QBEGH@Z
; public: class CString  __thiscall CStringArray::GetAt(int)const 
?GetAt@CStringArray@@QBE?AVCString@@H@Z
; public: unsigned short * __thiscall CString::GetBuffer(int)
?GetBuffer@CString@@QAEPAGH@Z
; public: unsigned short * __thiscall CString::GetBufferSetLength(int)
?GetBufferSetLength@CString@@QAEPAGH@Z
; public: int __thiscall CMapStringToPtr::GetCount(void)const 
?GetCount@CMapStringToPtr@@QBEHXZ
; protected: struct CStringData * __thiscall CString::GetData(void)const 
?GetData@CString@@IBEPAUCStringData@@XZ
; public: class CString * __thiscall CStringArray::GetData(void)
?GetData@CStringArray@@QAEPAVCString@@XZ
; public: class CString const * __thiscall CStringArray::GetData(void)const 
?GetData@CStringArray@@QBEPBVCString@@XZ
; public: unsigned int __thiscall CMapStringToPtr::GetHashTableSize(void)const 
?GetHashTableSize@CMapStringToPtr@@QBEIXZ
; public: int __thiscall CString::GetLength(void)const 
?GetLength@CString@@QBEHXZ
; public: void __thiscall CMapStringToPtr::GetNextAssoc(struct __POSITION * &,class CString &,void * &)const 
?GetNextAssoc@CMapStringToPtr@@QBEXAAPAU__POSITION@@AAVCString@@AAPAX@Z
; public: int __thiscall CStringArray::GetSize(void)const 
?GetSize@CStringArray@@QBEHXZ
; public: struct __POSITION * __thiscall CMapStringToPtr::GetStartPosition(void)const 
?GetStartPosition@CMapStringToPtr@@QBEPAU__POSITION@@XZ
; public: int __thiscall CStringArray::GetUpperBound(void)const 
?GetUpperBound@CStringArray@@QBEHXZ
; public: unsigned int __thiscall CMapStringToPtr::HashKey(unsigned short const *)const 
?HashKey@CMapStringToPtr@@QBEIPBG@Z
; protected: void __thiscall CString::Init(void)
?Init@CString@@IAEXXZ
; public: void __thiscall CMapStringToPtr::InitHashTable(unsigned int,int)
?InitHashTable@CMapStringToPtr@@QAEXIH@Z
; public: void __thiscall CStringArray::InsertAt(int,class CStringArray *)
?InsertAt@CStringArray@@QAEXHPAV1@@Z
; public: void __thiscall CStringArray::InsertAt(int,unsigned short const *,int)
?InsertAt@CStringArray@@QAEXHPBGH@Z
; public: int __thiscall CMapStringToPtr::IsEmpty(void)const 
?IsEmpty@CMapStringToPtr@@QBEHXZ
; public: int __thiscall CString::IsEmpty(void)const 
?IsEmpty@CString@@QBEHXZ
; public: class CString  __thiscall CString::Left(int)const 
?Left@CString@@QBE?AV1@H@Z
; public: int __thiscall CString::LoadStringW(unsigned int)
?LoadStringW@CString@@QAEHI@Z
; public: int __thiscall CCriticalSection::Lock(void)
?Lock@CCriticalSection@@QAEHXZ
; public: virtual int __thiscall CCriticalSection::Lock(unsigned long)
?Lock@CCriticalSection@@UAEHK@Z
; public: virtual int __thiscall CSyncObject::Lock(unsigned long)
?Lock@CSyncObject@@UAEHK@Z
; public: unsigned short * __thiscall CString::LockBuffer(void)
?LockBuffer@CString@@QAEPAGXZ
; public: int __thiscall CMapStringToPtr::Lookup(unsigned short const *,void * &)const 
?Lookup@CMapStringToPtr@@QBEHPBGAAPAX@Z
; public: int __thiscall CMapStringToPtr::LookupKey(unsigned short const *,unsigned short const * &)const 
?LookupKey@CMapStringToPtr@@QBEHPBGAAPBG@Z
; public: void __thiscall CString::MakeLower(void)
?MakeLower@CString@@QAEXXZ
; public: void __thiscall CString::MakeReverse(void)
?MakeReverse@CString@@QAEXXZ
; public: void __thiscall CString::MakeUpper(void)
?MakeUpper@CString@@QAEXXZ
; public: class CString  __thiscall CString::Mid(int)const 
?Mid@CString@@QBE?AV1@H@Z
; public: class CString  __thiscall CString::Mid(int,int)const 
?Mid@CString@@QBE?AV1@HH@Z
; protected: struct CMapStringToPtr::CAssoc * __thiscall CMapStringToPtr::NewAssoc(void)
?NewAssoc@CMapStringToPtr@@IAEPAUCAssoc@1@XZ
; protected: void __thiscall CString::Release(void)
?Release@CString@@IAEXXZ
; protected: static void __stdcall CString::Release(struct CStringData *)
?Release@CString@@KGXPAUCStringData@@@Z
; public: void __thiscall CString::ReleaseBuffer(int)
?ReleaseBuffer@CString@@QAEXH@Z
; public: void __thiscall CMapStringToPtr::RemoveAll(void)
?RemoveAll@CMapStringToPtr@@QAEXXZ
; public: void __thiscall CStringArray::RemoveAll(void)
?RemoveAll@CStringArray@@QAEXXZ
; public: void __thiscall CStringArray::RemoveAt(int,int)
?RemoveAt@CStringArray@@QAEXHH@Z
; public: int __thiscall CMapStringToPtr::RemoveKey(unsigned short const *)
?RemoveKey@CMapStringToPtr@@QAEHPBG@Z
; public: int __thiscall CString::ReverseFind(unsigned short)const 
?ReverseFind@CString@@QBEHG@Z
; public: class CString  __thiscall CString::Right(int)const 
?Right@CString@@QBE?AV1@H@Z
; protected: static int __stdcall CString::SafeStrlen(unsigned short const *)
?SafeStrlen@CString@@KGHPBG@Z
; public: void __thiscall CMapStringToPtr::SetAt(unsigned short const *,void *)
?SetAt@CMapStringToPtr@@QAEXPBGPAX@Z
; public: void __thiscall CString::SetAt(int,unsigned short)
?SetAt@CString@@QAEXHG@Z
; public: void __thiscall CStringArray::SetAt(int,unsigned short const *)
?SetAt@CStringArray@@QAEXHPBG@Z
; public: void __thiscall CStringArray::SetAtGrow(int,unsigned short const *)
?SetAtGrow@CStringArray@@QAEXHPBG@Z
; public: void __thiscall CStringArray::SetSize(int,int)
?SetSize@CStringArray@@QAEXHH@Z
; public: class CString  __thiscall CString::SpanExcluding(unsigned short const *)const 
?SpanExcluding@CString@@QBE?AV1@PBG@Z
; public: class CString  __thiscall CString::SpanIncluding(unsigned short const *)const 
?SpanIncluding@CString@@QBE?AV1@PBG@Z
; public: void __thiscall CString::TrimLeft(void)
?TrimLeft@CString@@QAEXXZ
; public: void __thiscall CString::TrimRight(void)
?TrimRight@CString@@QAEXXZ
; public: virtual int __thiscall CCriticalSection::Unlock(void)
?Unlock@CCriticalSection@@UAEHXZ
; public: virtual int __thiscall CSyncObject::Unlock(long,long *)
?Unlock@CSyncObject@@UAEHJPAJ@Z
; public: void __thiscall CString::UnlockBuffer(void)
?UnlockBuffer@CString@@QAEXXZ
; public: void * __thiscall CPlex::data(void)
?data@CPlex@@QAEPAXXZ
