; 
; Exports of file MfcSubs.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY MfcSubs.dll
EXPORTS
; VCString::?$ConstructElements(@@YAXPEAVCString@@H@Z)
??$ConstructElements@VCString@@@@YAXPEAVCString@@H@Z
; VCString::?$CopyElements(@@YAXPEAVCString@@PEBV0@H@Z)
??$CopyElements@VCString@@@@YAXPEAVCString@@PEBV0@H@Z
; VCString::?$DestructElements(@@YAXPEAVCString@@H@Z)
??$DestructElements@VCString@@@@YAXPEAVCString@@H@Z
; AEBU_GUID::?$HashKey(@@YAIAEBU_GUID@@@Z)
??$HashKey@AEBU_GUID@@@@YAIAEBU_GUID@@@Z
; PEBD::?$HashKey(YAIPEBD@Z)
??$HashKey@PEBD@@YAIPEBD@Z
; PEBG::?$HashKey(YAIPEBG@Z)
??$HashKey@PEBG@@YAIPEBG@Z
; public: __cdecl CCriticalSection::CCriticalSection(void) __ptr64
??0CCriticalSection@@QEAA@XZ
; public: __cdecl CMapStringToPtr::CMapStringToPtr(int) __ptr64
??0CMapStringToPtr@@QEAA@H@Z
; protected: __cdecl CObject::CObject(void) __ptr64
??0CObject@@IEAA@XZ
; public: __cdecl CString::CString(class CString const & __ptr64) __ptr64
??0CString@@QEAA@AEBV0@@Z
; public: __cdecl CString::CString(unsigned short,int) __ptr64
??0CString@@QEAA@GH@Z
; public: __cdecl CString::CString(char const * __ptr64) __ptr64
??0CString@@QEAA@PEBD@Z
; public: __cdecl CString::CString(unsigned char const * __ptr64) __ptr64
??0CString@@QEAA@PEBE@Z
; public: __cdecl CString::CString(unsigned short const * __ptr64) __ptr64
??0CString@@QEAA@PEBG@Z
; public: __cdecl CString::CString(unsigned short const * __ptr64,int) __ptr64
??0CString@@QEAA@PEBGH@Z
; public: __cdecl CString::CString(void) __ptr64
??0CString@@QEAA@XZ
; public: __cdecl CStringArray::CStringArray(void) __ptr64
??0CStringArray@@QEAA@XZ
; public: __cdecl CSyncObject::CSyncObject(unsigned short const * __ptr64) __ptr64
??0CSyncObject@@QEAA@PEBG@Z
; public: virtual __cdecl CCriticalSection::~CCriticalSection(void) __ptr64
??1CCriticalSection@@UEAA@XZ
; public: virtual __cdecl CMapStringToPtr::~CMapStringToPtr(void) __ptr64
??1CMapStringToPtr@@UEAA@XZ
; public: virtual __cdecl CObject::~CObject(void) __ptr64
??1CObject@@UEAA@XZ
; public: __cdecl CString::~CString(void) __ptr64
??1CString@@QEAA@XZ
; public: virtual __cdecl CStringArray::~CStringArray(void) __ptr64
??1CStringArray@@UEAA@XZ
; public: virtual __cdecl CSyncObject::~CSyncObject(void) __ptr64
??1CSyncObject@@UEAA@XZ
; public: struct CPlex & __ptr64 __cdecl CPlex::operator=(struct CPlex const & __ptr64) __ptr64
??4CPlex@@QEAAAEAU0@AEBU0@@Z
; public: class CString const & __ptr64 __cdecl CString::operator=(class CString const & __ptr64) __ptr64
??4CString@@QEAAAEBV0@AEBV0@@Z
; public: class CString const & __ptr64 __cdecl CString::operator=(char) __ptr64
??4CString@@QEAAAEBV0@D@Z
; public: class CString const & __ptr64 __cdecl CString::operator=(unsigned short) __ptr64
??4CString@@QEAAAEBV0@G@Z
; public: class CString const & __ptr64 __cdecl CString::operator=(char const * __ptr64) __ptr64
??4CString@@QEAAAEBV0@PEBD@Z
; public: class CString const & __ptr64 __cdecl CString::operator=(unsigned char const * __ptr64) __ptr64
??4CString@@QEAAAEBV0@PEBE@Z
; public: class CString const & __ptr64 __cdecl CString::operator=(unsigned short const * __ptr64) __ptr64
??4CString@@QEAAAEBV0@PEBG@Z
; bool __cdecl operator==(class CString const & __ptr64,class CString const & __ptr64)
??8@YA_NAEBVCString@@0@Z
; bool __cdecl operator==(class CString const & __ptr64,unsigned short const * __ptr64)
??8@YA_NAEBVCString@@PEBG@Z
; bool __cdecl operator==(unsigned short const * __ptr64,class CString const & __ptr64)
??8@YA_NPEBGAEBVCString@@@Z
; bool __cdecl operator!=(class CString const & __ptr64,class CString const & __ptr64)
??9@YA_NAEBVCString@@0@Z
; bool __cdecl operator!=(class CString const & __ptr64,unsigned short const * __ptr64)
??9@YA_NAEBVCString@@PEBG@Z
; bool __cdecl operator!=(unsigned short const * __ptr64,class CString const & __ptr64)
??9@YA_NPEBGAEBVCString@@@Z
; public: void * __ptr64 & __ptr64 __cdecl CMapStringToPtr::operator[](unsigned short const * __ptr64) __ptr64
??ACMapStringToPtr@@QEAAAEAPEAXPEBG@Z
; public: unsigned short __cdecl CString::operator[](int)const  __ptr64
??ACString@@QEBAGH@Z
; public: class CString & __ptr64 __cdecl CStringArray::operator[](int) __ptr64
??ACStringArray@@QEAAAEAVCString@@H@Z
; public: class CString  __cdecl CStringArray::operator[](int)const  __ptr64
??ACStringArray@@QEBA?AVCString@@H@Z
; public: __cdecl CCriticalSection::operator struct _RTL_CRITICAL_SECTION * __ptr64(void) __ptr64
??BCCriticalSection@@QEAAPEAU_RTL_CRITICAL_SECTION@@XZ
; public: __cdecl CString::operator unsigned short const * __ptr64(void)const  __ptr64
??BCString@@QEBAPEBGXZ
; public: __cdecl CSyncObject::operator void * __ptr64(void)const  __ptr64
??BCSyncObject@@QEBAPEAXXZ
; class CString  __cdecl operator+(class CString const & __ptr64,class CString const & __ptr64)
??H@YA?AVCString@@AEBV0@0@Z
; class CString  __cdecl operator+(class CString const & __ptr64,char)
??H@YA?AVCString@@AEBV0@D@Z
; class CString  __cdecl operator+(class CString const & __ptr64,unsigned short)
??H@YA?AVCString@@AEBV0@G@Z
; class CString  __cdecl operator+(class CString const & __ptr64,unsigned short const * __ptr64)
??H@YA?AVCString@@AEBV0@PEBG@Z
; class CString  __cdecl operator+(char,class CString const & __ptr64)
??H@YA?AVCString@@DAEBV0@@Z
; class CString  __cdecl operator+(unsigned short,class CString const & __ptr64)
??H@YA?AVCString@@GAEBV0@@Z
; class CString  __cdecl operator+(unsigned short const * __ptr64,class CString const & __ptr64)
??H@YA?AVCString@@PEBGAEBV0@@Z
; bool __cdecl operator<(class CString const & __ptr64,class CString const & __ptr64)
??M@YA_NAEBVCString@@0@Z
; bool __cdecl operator<(class CString const & __ptr64,unsigned short const * __ptr64)
??M@YA_NAEBVCString@@PEBG@Z
; bool __cdecl operator<(unsigned short const * __ptr64,class CString const & __ptr64)
??M@YA_NPEBGAEBVCString@@@Z
; bool __cdecl operator<=(class CString const & __ptr64,class CString const & __ptr64)
??N@YA_NAEBVCString@@0@Z
; bool __cdecl operator<=(class CString const & __ptr64,unsigned short const * __ptr64)
??N@YA_NAEBVCString@@PEBG@Z
; bool __cdecl operator<=(unsigned short const * __ptr64,class CString const & __ptr64)
??N@YA_NPEBGAEBVCString@@@Z
; bool __cdecl operator>(class CString const & __ptr64,class CString const & __ptr64)
??O@YA_NAEBVCString@@0@Z
; bool __cdecl operator>(class CString const & __ptr64,unsigned short const * __ptr64)
??O@YA_NAEBVCString@@PEBG@Z
; bool __cdecl operator>(unsigned short const * __ptr64,class CString const & __ptr64)
??O@YA_NPEBGAEBVCString@@@Z
; bool __cdecl operator>=(class CString const & __ptr64,class CString const & __ptr64)
??P@YA_NAEBVCString@@0@Z
; bool __cdecl operator>=(class CString const & __ptr64,unsigned short const * __ptr64)
??P@YA_NAEBVCString@@PEBG@Z
; bool __cdecl operator>=(unsigned short const * __ptr64,class CString const & __ptr64)
??P@YA_NPEBGAEBVCString@@@Z
; public: class CString const & __ptr64 __cdecl CString::operator+=(class CString const & __ptr64) __ptr64
??YCString@@QEAAAEBV0@AEBV0@@Z
; public: class CString const & __ptr64 __cdecl CString::operator+=(char) __ptr64
??YCString@@QEAAAEBV0@D@Z
; public: class CString const & __ptr64 __cdecl CString::operator+=(unsigned short) __ptr64
??YCString@@QEAAAEBV0@G@Z
; public: class CString const & __ptr64 __cdecl CString::operator+=(unsigned short const * __ptr64) __ptr64
??YCString@@QEAAAEBV0@PEBG@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 __cdecl CMapStringToPtr::`default constructor closure'(void) __ptr64
??_FCMapStringToPtr@@QEAAXXZ
; public: int __cdecl CStringArray::Add(unsigned short const * __ptr64) __ptr64
?Add@CStringArray@@QEAAHPEBG@Z
; unsigned short * __ptr64 __cdecl AfxA2WHelper(unsigned short * __ptr64,char const * __ptr64,int)
?AfxA2WHelper@@YAPEAGPEAGPEBDH@Z
; int __cdecl AfxExtractSubString(class CString & __ptr64,unsigned short const * __ptr64,int,unsigned short)
?AfxExtractSubString@@YAHAEAVCString@@PEBGHG@Z
; class CString const & __ptr64 __cdecl AfxGetEmptyString(void)
?AfxGetEmptyString@@YAAEBVCString@@XZ
; int __cdecl AfxLoadString(unsigned int,unsigned short * __ptr64,unsigned int)
?AfxLoadString@@YAHIPEAGI@Z
; char * __ptr64 __cdecl AfxW2AHelper(char * __ptr64,unsigned short const * __ptr64,int)
?AfxW2AHelper@@YAPEADPEADPEBGH@Z
; protected: void __cdecl CString::AllocBeforeWrite(int) __ptr64
?AllocBeforeWrite@CString@@IEAAXH@Z
; protected: void __cdecl CString::AllocBuffer(int) __ptr64
?AllocBuffer@CString@@IEAAXH@Z
; protected: void __cdecl CString::AllocCopy(class CString & __ptr64,int,int,int)const  __ptr64
?AllocCopy@CString@@IEBAXAEAV1@HHH@Z
; public: int __cdecl CStringArray::Append(class CStringArray const & __ptr64) __ptr64
?Append@CStringArray@@QEAAHAEBV1@@Z
; protected: void __cdecl CString::AssignCopy(int,unsigned short const * __ptr64) __ptr64
?AssignCopy@CString@@IEAAXHPEBG@Z
; public: int __cdecl CString::Collate(unsigned short const * __ptr64)const  __ptr64
?Collate@CString@@QEBAHPEBG@Z
; public: int __cdecl CString::Compare(unsigned short const * __ptr64)const  __ptr64
?Compare@CString@@QEBAHPEBG@Z
; public: int __cdecl CString::CompareNoCase(unsigned short const * __ptr64)const  __ptr64
?CompareNoCase@CString@@QEBAHPEBG@Z
; protected: void __cdecl CString::ConcatCopy(int,unsigned short const * __ptr64,int,unsigned short const * __ptr64) __ptr64
?ConcatCopy@CString@@IEAAXHPEBGH0@Z
; protected: void __cdecl CString::ConcatInPlace(int,unsigned short const * __ptr64) __ptr64
?ConcatInPlace@CString@@IEAAXHPEBG@Z
; public: void __cdecl CStringArray::Copy(class CStringArray const & __ptr64) __ptr64
?Copy@CStringArray@@QEAAXAEBV1@@Z
; protected: void __cdecl CString::CopyBeforeWrite(void) __ptr64
?CopyBeforeWrite@CString@@IEAAXXZ
; public: static struct CPlex * __ptr64 __cdecl CPlex::Create(struct CPlex * __ptr64 & __ptr64,unsigned int,unsigned int)
?Create@CPlex@@SAPEAU1@AEAPEAU1@II@Z
; public: class CString & __ptr64 __cdecl CStringArray::ElementAt(int) __ptr64
?ElementAt@CStringArray@@QEAAAEAVCString@@H@Z
; public: void __cdecl CString::Empty(void) __ptr64
?Empty@CString@@QEAAXXZ
; public: int __cdecl CString::Find(unsigned short)const  __ptr64
?Find@CString@@QEBAHG@Z
; public: int __cdecl CString::Find(unsigned short const * __ptr64)const  __ptr64
?Find@CString@@QEBAHPEBG@Z
; public: int __cdecl CString::FindOneOf(unsigned short const * __ptr64)const  __ptr64
?FindOneOf@CString@@QEBAHPEBG@Z
; public: void __cdecl CString::Format(unsigned int,...) __ptr64
?Format@CString@@QEAAXIZZ
; public: void __cdecl CString::Format(unsigned short const * __ptr64,...) __ptr64
?Format@CString@@QEAAXPEBGZZ
; public: void __cdecl CString::FormatMessageW(unsigned int,...) __ptr64
?FormatMessageW@CString@@QEAAXIZZ
; public: void __cdecl CString::FormatMessageW(unsigned short const * __ptr64,...) __ptr64
?FormatMessageW@CString@@QEAAXPEBGZZ
; protected: void __cdecl CString::FormatV(unsigned short const * __ptr64,char * __ptr64) __ptr64
?FormatV@CString@@IEAAXPEBGPEAD@Z
; protected: void __cdecl CMapStringToPtr::FreeAssoc(struct CMapStringToPtr::CAssoc * __ptr64) __ptr64
?FreeAssoc@CMapStringToPtr@@IEAAXPEAUCAssoc@1@@Z
; public: void __cdecl CPlex::FreeDataChain(void) __ptr64
?FreeDataChain@CPlex@@QEAAXXZ
; public: void __cdecl CString::FreeExtra(void) __ptr64
?FreeExtra@CString@@QEAAXXZ
; public: void __cdecl CStringArray::FreeExtra(void) __ptr64
?FreeExtra@CStringArray@@QEAAXXZ
; public: int __cdecl CString::GetAllocLength(void)const  __ptr64
?GetAllocLength@CString@@QEBAHXZ
; protected: struct CMapStringToPtr::CAssoc * __ptr64 __cdecl CMapStringToPtr::GetAssocAt(unsigned short const * __ptr64,unsigned int & __ptr64)const  __ptr64
?GetAssocAt@CMapStringToPtr@@IEBAPEAUCAssoc@1@PEBGAEAI@Z
; public: unsigned short __cdecl CString::GetAt(int)const  __ptr64
?GetAt@CString@@QEBAGH@Z
; public: class CString  __cdecl CStringArray::GetAt(int)const  __ptr64
?GetAt@CStringArray@@QEBA?AVCString@@H@Z
; public: unsigned short * __ptr64 __cdecl CString::GetBuffer(int) __ptr64
?GetBuffer@CString@@QEAAPEAGH@Z
; public: unsigned short * __ptr64 __cdecl CString::GetBufferSetLength(int) __ptr64
?GetBufferSetLength@CString@@QEAAPEAGH@Z
; public: int __cdecl CMapStringToPtr::GetCount(void)const  __ptr64
?GetCount@CMapStringToPtr@@QEBAHXZ
; protected: struct CStringData * __ptr64 __cdecl CString::GetData(void)const  __ptr64
?GetData@CString@@IEBAPEAUCStringData@@XZ
; public: class CString * __ptr64 __cdecl CStringArray::GetData(void) __ptr64
?GetData@CStringArray@@QEAAPEAVCString@@XZ
; public: class CString const * __ptr64 __cdecl CStringArray::GetData(void)const  __ptr64
?GetData@CStringArray@@QEBAPEBVCString@@XZ
; public: unsigned int __cdecl CMapStringToPtr::GetHashTableSize(void)const  __ptr64
?GetHashTableSize@CMapStringToPtr@@QEBAIXZ
; public: int __cdecl CString::GetLength(void)const  __ptr64
?GetLength@CString@@QEBAHXZ
; public: void __cdecl CMapStringToPtr::GetNextAssoc(struct __POSITION * __ptr64 & __ptr64,class CString & __ptr64,void * __ptr64 & __ptr64)const  __ptr64
?GetNextAssoc@CMapStringToPtr@@QEBAXAEAPEAU__POSITION@@AEAVCString@@AEAPEAX@Z
; public: int __cdecl CStringArray::GetSize(void)const  __ptr64
?GetSize@CStringArray@@QEBAHXZ
; public: struct __POSITION * __ptr64 __cdecl CMapStringToPtr::GetStartPosition(void)const  __ptr64
?GetStartPosition@CMapStringToPtr@@QEBAPEAU__POSITION@@XZ
; public: int __cdecl CStringArray::GetUpperBound(void)const  __ptr64
?GetUpperBound@CStringArray@@QEBAHXZ
; public: unsigned int __cdecl CMapStringToPtr::HashKey(unsigned short const * __ptr64)const  __ptr64
?HashKey@CMapStringToPtr@@QEBAIPEBG@Z
; protected: void __cdecl CString::Init(void) __ptr64
?Init@CString@@IEAAXXZ
; public: void __cdecl CMapStringToPtr::InitHashTable(unsigned int,int) __ptr64
?InitHashTable@CMapStringToPtr@@QEAAXIH@Z
; public: void __cdecl CStringArray::InsertAt(int,class CStringArray * __ptr64) __ptr64
?InsertAt@CStringArray@@QEAAXHPEAV1@@Z
; public: void __cdecl CStringArray::InsertAt(int,unsigned short const * __ptr64,int) __ptr64
?InsertAt@CStringArray@@QEAAXHPEBGH@Z
; public: int __cdecl CMapStringToPtr::IsEmpty(void)const  __ptr64
?IsEmpty@CMapStringToPtr@@QEBAHXZ
; public: int __cdecl CString::IsEmpty(void)const  __ptr64
?IsEmpty@CString@@QEBAHXZ
; public: class CString  __cdecl CString::Left(int)const  __ptr64
?Left@CString@@QEBA?AV1@H@Z
; public: int __cdecl CString::LoadStringW(unsigned int) __ptr64
?LoadStringW@CString@@QEAAHI@Z
; public: int __cdecl CCriticalSection::Lock(void) __ptr64
?Lock@CCriticalSection@@QEAAHXZ
; public: virtual int __cdecl CCriticalSection::Lock(unsigned long) __ptr64
?Lock@CCriticalSection@@UEAAHK@Z
; public: virtual int __cdecl CSyncObject::Lock(unsigned long) __ptr64
?Lock@CSyncObject@@UEAAHK@Z
; public: unsigned short * __ptr64 __cdecl CString::LockBuffer(void) __ptr64
?LockBuffer@CString@@QEAAPEAGXZ
; public: int __cdecl CMapStringToPtr::Lookup(unsigned short const * __ptr64,void * __ptr64 & __ptr64)const  __ptr64
?Lookup@CMapStringToPtr@@QEBAHPEBGAEAPEAX@Z
; public: int __cdecl CMapStringToPtr::LookupKey(unsigned short const * __ptr64,unsigned short const * __ptr64 & __ptr64)const  __ptr64
?LookupKey@CMapStringToPtr@@QEBAHPEBGAEAPEBG@Z
; public: void __cdecl CString::MakeLower(void) __ptr64
?MakeLower@CString@@QEAAXXZ
; public: void __cdecl CString::MakeReverse(void) __ptr64
?MakeReverse@CString@@QEAAXXZ
; public: void __cdecl CString::MakeUpper(void) __ptr64
?MakeUpper@CString@@QEAAXXZ
; public: class CString  __cdecl CString::Mid(int)const  __ptr64
?Mid@CString@@QEBA?AV1@H@Z
; public: class CString  __cdecl CString::Mid(int,int)const  __ptr64
?Mid@CString@@QEBA?AV1@HH@Z
; protected: struct CMapStringToPtr::CAssoc * __ptr64 __cdecl CMapStringToPtr::NewAssoc(void) __ptr64
?NewAssoc@CMapStringToPtr@@IEAAPEAUCAssoc@1@XZ
; protected: void __cdecl CString::Release(void) __ptr64
?Release@CString@@IEAAXXZ
; protected: static void __cdecl CString::Release(struct CStringData * __ptr64)
?Release@CString@@KAXPEAUCStringData@@@Z
; public: void __cdecl CString::ReleaseBuffer(int) __ptr64
?ReleaseBuffer@CString@@QEAAXH@Z
; public: void __cdecl CMapStringToPtr::RemoveAll(void) __ptr64
?RemoveAll@CMapStringToPtr@@QEAAXXZ
; public: void __cdecl CStringArray::RemoveAll(void) __ptr64
?RemoveAll@CStringArray@@QEAAXXZ
; public: void __cdecl CStringArray::RemoveAt(int,int) __ptr64
?RemoveAt@CStringArray@@QEAAXHH@Z
; public: int __cdecl CMapStringToPtr::RemoveKey(unsigned short const * __ptr64) __ptr64
?RemoveKey@CMapStringToPtr@@QEAAHPEBG@Z
; public: int __cdecl CString::ReverseFind(unsigned short)const  __ptr64
?ReverseFind@CString@@QEBAHG@Z
; public: class CString  __cdecl CString::Right(int)const  __ptr64
?Right@CString@@QEBA?AV1@H@Z
; protected: static int __cdecl CString::SafeStrlen(unsigned short const * __ptr64)
?SafeStrlen@CString@@KAHPEBG@Z
; public: void __cdecl CMapStringToPtr::SetAt(unsigned short const * __ptr64,void * __ptr64) __ptr64
?SetAt@CMapStringToPtr@@QEAAXPEBGPEAX@Z
; public: void __cdecl CString::SetAt(int,unsigned short) __ptr64
?SetAt@CString@@QEAAXHG@Z
; public: void __cdecl CStringArray::SetAt(int,unsigned short const * __ptr64) __ptr64
?SetAt@CStringArray@@QEAAXHPEBG@Z
; public: void __cdecl CStringArray::SetAtGrow(int,unsigned short const * __ptr64) __ptr64
?SetAtGrow@CStringArray@@QEAAXHPEBG@Z
; public: void __cdecl CStringArray::SetSize(int,int) __ptr64
?SetSize@CStringArray@@QEAAXHH@Z
; public: class CString  __cdecl CString::SpanExcluding(unsigned short const * __ptr64)const  __ptr64
?SpanExcluding@CString@@QEBA?AV1@PEBG@Z
; public: class CString  __cdecl CString::SpanIncluding(unsigned short const * __ptr64)const  __ptr64
?SpanIncluding@CString@@QEBA?AV1@PEBG@Z
; public: void __cdecl CString::TrimLeft(void) __ptr64
?TrimLeft@CString@@QEAAXXZ
; public: void __cdecl CString::TrimRight(void) __ptr64
?TrimRight@CString@@QEAAXXZ
; public: virtual int __cdecl CCriticalSection::Unlock(void) __ptr64
?Unlock@CCriticalSection@@UEAAHXZ
; public: virtual int __cdecl CSyncObject::Unlock(long,long * __ptr64) __ptr64
?Unlock@CSyncObject@@UEAAHJPEAJ@Z
; public: void __cdecl CString::UnlockBuffer(void) __ptr64
?UnlockBuffer@CString@@QEAAXXZ
; public: void * __ptr64 __cdecl CPlex::data(void) __ptr64
?data@CPlex@@QEAAPEAXXZ
