; 
; Exports of file hhsetup.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY hhsetup.dll
EXPORTS
; public: __cdecl CCollection::CCollection(void) __ptr64
??0CCollection@@QEAA@XZ
; public: __cdecl CFIFOString::CFIFOString(void) __ptr64
??0CFIFOString@@QEAA@XZ
; public: __cdecl CFolder::CFolder(void) __ptr64
??0CFolder@@QEAA@XZ
; public: __cdecl CLocation::CLocation(void) __ptr64
??0CLocation@@QEAA@XZ
; public: __cdecl CPointerList::CPointerList(void) __ptr64
??0CPointerList@@QEAA@XZ
; public: __cdecl CTitle::CTitle(void) __ptr64
??0CTitle@@QEAA@XZ
; public: __cdecl CCollection::~CCollection(void) __ptr64
??1CCollection@@QEAA@XZ
; public: __cdecl CFIFOString::~CFIFOString(void) __ptr64
??1CFIFOString@@QEAA@XZ
; public: __cdecl CFolder::~CFolder(void) __ptr64
??1CFolder@@QEAA@XZ
; public: __cdecl CLocation::~CLocation(void) __ptr64
??1CLocation@@QEAA@XZ
; public: __cdecl CPointerList::~CPointerList(void) __ptr64
??1CPointerList@@QEAA@XZ
; public: __cdecl CTitle::~CTitle(void) __ptr64
??1CTitle@@QEAA@XZ
; public: class CCollection & __ptr64 __cdecl CCollection::operator=(class CCollection const & __ptr64) __ptr64
??4CCollection@@QEAAAEAV0@AEBV0@@Z
; public: class CFIFOString & __ptr64 __cdecl CFIFOString::operator=(class CFIFOString const & __ptr64) __ptr64
??4CFIFOString@@QEAAAEAV0@AEBV0@@Z
; public: class CFolder & __ptr64 __cdecl CFolder::operator=(class CFolder const & __ptr64) __ptr64
??4CFolder@@QEAAAEAV0@AEBV0@@Z
; public: class CLocation & __ptr64 __cdecl CLocation::operator=(class CLocation const & __ptr64) __ptr64
??4CLocation@@QEAAAEAV0@AEBV0@@Z
; public: class CPointerList & __ptr64 __cdecl CPointerList::operator=(class CPointerList const & __ptr64) __ptr64
??4CPointerList@@QEAAAEAV0@AEBV0@@Z
; public: class CTitle & __ptr64 __cdecl CTitle::operator=(class CTitle const & __ptr64) __ptr64
??4CTitle@@QEAAAEAV0@AEBV0@@Z
; public: struct ListItem * __ptr64 __cdecl CPointerList::Add(void * __ptr64) __ptr64
?Add@CPointerList@@QEAAPEAUListItem@@PEAX@Z
; public: unsigned long __cdecl CFolder::AddChildFolder(class CFolder * __ptr64) __ptr64
?AddChildFolder@CFolder@@QEAAKPEAV1@@Z
; public: class CFolder * __ptr64 __cdecl CFolder::AddChildFolder(char const * __ptr64,unsigned long,unsigned long * __ptr64,unsigned short) __ptr64
?AddChildFolder@CFolder@@QEAAPEAV1@PEBDKPEAKG@Z
; public: class CFolder * __ptr64 __cdecl CFolder::AddChildFolder(unsigned short const * __ptr64,unsigned long,unsigned long * __ptr64,unsigned short) __ptr64
?AddChildFolder@CFolder@@QEAAPEAV1@PEBGKPEAKG@Z
; public: class CColList * __ptr64 __cdecl CCollection::AddCollection(void) __ptr64
?AddCollection@CCollection@@QEAAPEAVCColList@@XZ
; public: class CFolder * __ptr64 __cdecl CCollection::AddFolder(char const * __ptr64,unsigned long,unsigned long * __ptr64,unsigned short) __ptr64
?AddFolder@CCollection@@QEAAPEAVCFolder@@PEBDKPEAKG@Z
; public: class CFolder * __ptr64 __cdecl CCollection::AddFolder(unsigned short const * __ptr64,unsigned long,unsigned long * __ptr64,unsigned short) __ptr64
?AddFolder@CCollection@@QEAAPEAVCFolder@@PEBGKPEAKG@Z
; public: class CLocation * __ptr64 __cdecl CCollection::AddLocation(char const * __ptr64,char const * __ptr64,char const * __ptr64,char const * __ptr64,unsigned long * __ptr64) __ptr64
?AddLocation@CCollection@@QEAAPEAVCLocation@@PEBD000PEAK@Z
; public: class CLocation * __ptr64 __cdecl CCollection::AddLocation(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long * __ptr64) __ptr64
?AddLocation@CCollection@@QEAAPEAVCLocation@@PEBG000PEAK@Z
; public: unsigned long __cdecl CTitle::AddLocationHistory(unsigned long,char const * __ptr64,char const * __ptr64,char const * __ptr64,class CLocation const * __ptr64,char const * __ptr64,char const * __ptr64,int) __ptr64
?AddLocationHistory@CTitle@@QEAAKKPEBD00PEBVCLocation@@00H@Z
; public: unsigned long __cdecl CTitle::AddLocationHistory(unsigned long,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,class CLocation const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
?AddLocationHistory@CTitle@@QEAAKKPEBG00PEBVCLocation@@00H@Z
; public: void __cdecl CCollection::AddRef(void) __ptr64
?AddRef@CCollection@@QEAAXXZ
; private: unsigned long __cdecl CCollection::AddRefedTitle(class CFolder * __ptr64) __ptr64
?AddRefedTitle@CCollection@@AEAAKPEAVCFolder@@@Z
; public: unsigned long __cdecl CFIFOString::AddTail(char * __ptr64) __ptr64
?AddTail@CFIFOString@@QEAAKPEAD@Z
; public: class CTitle * __ptr64 __cdecl CCollection::AddTitle(char const * __ptr64,char const * __ptr64,char const * __ptr64,char const * __ptr64,char const * __ptr64,unsigned short,unsigned int,class CLocation * __ptr64,unsigned long * __ptr64,int,char const * __ptr64) __ptr64
?AddTitle@CCollection@@QEAAPEAVCTitle@@PEBD0000GIPEAVCLocation@@PEAKH0@Z
; public: class CTitle * __ptr64 __cdecl CCollection::AddTitle(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short,unsigned int,class CLocation * __ptr64,unsigned long * __ptr64,int,unsigned short const * __ptr64) __ptr64
?AddTitle@CCollection@@QEAAPEAVCTitle@@PEBG0000GIPEAVCLocation@@PEAKH0@Z
; private: unsigned long __cdecl CCollection::AllocCopyValue(class CParseXML * __ptr64,char * __ptr64,char * __ptr64 * __ptr64) __ptr64
?AllocCopyValue@CCollection@@AEAAKPEAVCParseXML@@PEADPEAPEAD@Z
; unsigned long __cdecl AllocSetValue(char const * __ptr64,char * __ptr64 * __ptr64)
?AllocSetValue@@YAKPEBDPEAPEAD@Z
; private: unsigned long __cdecl CCollection::CheckTitleRef(char const * __ptr64,unsigned short) __ptr64
?CheckTitleRef@CCollection@@AEAAKPEBDG@Z
; private: unsigned long __cdecl CCollection::CheckTitleRef(unsigned short const * __ptr64,unsigned short) __ptr64
?CheckTitleRef@CCollection@@AEAAKPEBGG@Z
; public: unsigned long __cdecl CCollection::Close(void) __ptr64
?Close@CCollection@@QEAAKXZ
; public: void __cdecl CCollection::ConfirmTitles(void) __ptr64
?ConfirmTitles@CCollection@@QEAAXXZ
; public: void __cdecl CCollection::DecrementRefTitleCount(void) __ptr64
?DecrementRefTitleCount@CCollection@@QEAAXXZ
; private: void __cdecl CCollection::DeleteChildren(class CFolder * __ptr64 * __ptr64) __ptr64
?DeleteChildren@CCollection@@AEAAXPEAPEAVCFolder@@@Z
; public: unsigned long __cdecl CCollection::DeleteFolder(class CFolder * __ptr64) __ptr64
?DeleteFolder@CCollection@@QEAAKPEAVCFolder@@@Z
; private: void __cdecl CCollection::DeleteFolders(class CFolder * __ptr64 * __ptr64) __ptr64
?DeleteFolders@CCollection@@AEAAXPEAPEAVCFolder@@@Z
; private: void __cdecl CCollection::DeleteLocalFiles(struct LocationHistory * __ptr64,class CTitle * __ptr64) __ptr64
?DeleteLocalFiles@CCollection@@AEAAXPEAULocationHistory@@PEAVCTitle@@@Z
; private: unsigned long __cdecl CCollection::DeleteLocation(class CLocation * __ptr64) __ptr64
?DeleteLocation@CCollection@@AEAAKPEAVCLocation@@@Z
; private: unsigned long __cdecl CCollection::DeleteTitle(class CTitle * __ptr64) __ptr64
?DeleteTitle@CCollection@@AEAAKPEAVCTitle@@@Z
; public: void __cdecl CCollection::Dirty(void) __ptr64
?Dirty@CCollection@@QEAAXXZ
; public: class CColList * __ptr64 __cdecl CCollection::FindCollection(char * __ptr64) __ptr64
?FindCollection@CCollection@@QEAAPEAVCColList@@PEAD@Z
; public: class CLocation * __ptr64 __cdecl CCollection::FindLocation(char const * __ptr64,unsigned int * __ptr64) __ptr64
?FindLocation@CCollection@@QEAAPEAVCLocation@@PEBDPEAI@Z
; public: class CLocation * __ptr64 __cdecl CCollection::FindLocation(unsigned short const * __ptr64,unsigned int * __ptr64) __ptr64
?FindLocation@CCollection@@QEAAPEAVCLocation@@PEBGPEAI@Z
; public: class CTitle * __ptr64 __cdecl CCollection::FindTitle(char const * __ptr64,unsigned short) __ptr64
?FindTitle@CCollection@@QEAAPEAVCTitle@@PEBDG@Z
; public: class CTitle * __ptr64 __cdecl CCollection::FindTitle(unsigned short const * __ptr64,unsigned short) __ptr64
?FindTitle@CCollection@@QEAAPEAVCTitle@@PEBGG@Z
; public: struct ListItem * __ptr64 __cdecl CPointerList::First(void) __ptr64
?First@CPointerList@@QEAAPEAUListItem@@XZ
; public: class CLocation * __ptr64 __cdecl CCollection::FirstLocation(void) __ptr64
?FirstLocation@CCollection@@QEAAPEAVCLocation@@XZ
; public: unsigned long __cdecl CCollection::GetColNo(void) __ptr64
?GetColNo@CCollection@@QEAAKXZ
; public: char const * __ptr64 __cdecl CCollection::GetCollectionFileName(void) __ptr64
?GetCollectionFileName@CCollection@@QEAAPEBDXZ
; public: unsigned short const * __ptr64 __cdecl CCollection::GetCollectionFileNameW(void) __ptr64
?GetCollectionFileNameW@CCollection@@QEAAPEBGXZ
; public: int __cdecl CCollection::GetFindMergedCHMS(void) __ptr64
?GetFindMergedCHMS@CCollection@@QEAAHXZ
; public: class CFolder * __ptr64 __cdecl CFolder::GetFirstChildFolder(void) __ptr64
?GetFirstChildFolder@CFolder@@QEAAPEAV1@XZ
; public: class CTitle * __ptr64 __cdecl CCollection::GetFirstTitle(void) __ptr64
?GetFirstTitle@CCollection@@QEAAPEAVCTitle@@XZ
; public: char * __ptr64 __cdecl CLocation::GetId(void)const  __ptr64
?GetId@CLocation@@QEBAPEADXZ
; public: char * __ptr64 __cdecl CTitle::GetId(void) __ptr64
?GetId@CTitle@@QEAAPEADXZ
; public: unsigned short const * __ptr64 __cdecl CLocation::GetIdW(void) __ptr64
?GetIdW@CLocation@@QEAAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl CTitle::GetIdW(void) __ptr64
?GetIdW@CTitle@@QEAAPEBGXZ
; public: unsigned short __cdecl CCollection::GetLangId(char const * __ptr64) __ptr64
?GetLangId@CCollection@@QEAAGPEBD@Z
; public: unsigned short __cdecl CCollection::GetLangId(unsigned short const * __ptr64) __ptr64
?GetLangId@CCollection@@QEAAGPEBG@Z
; public: unsigned short __cdecl CFolder::GetLanguage(void) __ptr64
?GetLanguage@CFolder@@QEAAGXZ
; public: unsigned short __cdecl CTitle::GetLanguage(void) __ptr64
?GetLanguage@CTitle@@QEAAGXZ
; public: struct LocationHistory * __ptr64 __cdecl CTitle::GetLocation(unsigned long) __ptr64
?GetLocation@CTitle@@QEAAPEAULocationHistory@@K@Z
; public: int __cdecl CCollection::GetMasterCHM(char * __ptr64 * __ptr64,unsigned short * __ptr64) __ptr64
?GetMasterCHM@CCollection@@QEAAHPEAPEADPEAG@Z
; public: int __cdecl CCollection::GetMasterCHM(unsigned short * __ptr64 * __ptr64,unsigned short * __ptr64) __ptr64
?GetMasterCHM@CCollection@@QEAAHPEAPEAGPEAG@Z
; public: class CFolder * __ptr64 __cdecl CFolder::GetNextFolder(void) __ptr64
?GetNextFolder@CFolder@@QEAAPEAV1@XZ
; public: class CLocation * __ptr64 __cdecl CLocation::GetNextLocation(void) __ptr64
?GetNextLocation@CLocation@@QEAAPEAV1@XZ
; public: class CTitle * __ptr64 __cdecl CTitle::GetNextTitle(void) __ptr64
?GetNextTitle@CTitle@@QEAAPEAV1@XZ
; public: unsigned long __cdecl CFolder::GetOrder(void) __ptr64
?GetOrder@CFolder@@QEAAKXZ
; public: class CFolder * __ptr64 __cdecl CFolder::GetParent(void) __ptr64
?GetParent@CFolder@@QEAAPEAV1@XZ
; public: char * __ptr64 __cdecl CLocation::GetPath(void) __ptr64
?GetPath@CLocation@@QEAAPEADXZ
; public: unsigned short const * __ptr64 __cdecl CLocation::GetPathW(void) __ptr64
?GetPathW@CLocation@@QEAAPEBGXZ
; public: unsigned long __cdecl CCollection::GetRefTitleCount(void) __ptr64
?GetRefTitleCount@CCollection@@QEAAKXZ
; public: class CFolder * __ptr64 __cdecl CCollection::GetRootFolder(void) __ptr64
?GetRootFolder@CCollection@@QEAAPEAVCFolder@@XZ
; public: char * __ptr64 __cdecl CCollection::GetSampleLocation(void) __ptr64
?GetSampleLocation@CCollection@@QEAAPEADXZ
; public: unsigned short const * __ptr64 __cdecl CCollection::GetSampleLocationW(void) __ptr64
?GetSampleLocationW@CCollection@@QEAAPEBGXZ
; public: unsigned long __cdecl CFIFOString::GetTail(char * __ptr64 * __ptr64) __ptr64
?GetTail@CFIFOString@@QEAAKPEAPEAD@Z
; public: char * __ptr64 __cdecl CFolder::GetTitle(void) __ptr64
?GetTitle@CFolder@@QEAAPEADXZ
; public: char * __ptr64 __cdecl CLocation::GetTitle(void) __ptr64
?GetTitle@CLocation@@QEAAPEADXZ
; public: unsigned short const * __ptr64 __cdecl CFolder::GetTitleW(void) __ptr64
?GetTitleW@CFolder@@QEAAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl CLocation::GetTitleW(void) __ptr64
?GetTitleW@CLocation@@QEAAPEBGXZ
; public: unsigned long __cdecl CCollection::GetVersion(void) __ptr64
?GetVersion@CCollection@@QEAAKXZ
; public: class CFolder * __ptr64 __cdecl CCollection::GetVisableRootFolder(void) __ptr64
?GetVisableRootFolder@CCollection@@QEAAPEAVCFolder@@XZ
; public: char * __ptr64 __cdecl CLocation::GetVolume(void) __ptr64
?GetVolume@CLocation@@QEAAPEADXZ
; public: unsigned short const * __ptr64 __cdecl CLocation::GetVolumeW(void) __ptr64
?GetVolumeW@CLocation@@QEAAPEBGXZ
; private: unsigned long __cdecl CCollection::HandleCollection(class CParseXML * __ptr64,char * __ptr64) __ptr64
?HandleCollection@CCollection@@AEAAKPEAVCParseXML@@PEAD@Z
; private: unsigned long __cdecl CCollection::HandleCollectionEntry(class CParseXML * __ptr64,char * __ptr64) __ptr64
?HandleCollectionEntry@CCollection@@AEAAKPEAVCParseXML@@PEAD@Z
; private: unsigned long __cdecl CCollection::HandleFolder(class CParseXML * __ptr64,char * __ptr64) __ptr64
?HandleFolder@CCollection@@AEAAKPEAVCParseXML@@PEAD@Z
; private: unsigned long __cdecl CCollection::HandleLocation(class CParseXML * __ptr64,char * __ptr64) __ptr64
?HandleLocation@CCollection@@AEAAKPEAVCParseXML@@PEAD@Z
; private: unsigned long __cdecl CCollection::HandleTitle(class CParseXML * __ptr64,char * __ptr64) __ptr64
?HandleTitle@CCollection@@AEAAKPEAVCParseXML@@PEAD@Z
; public: void __cdecl CCollection::IncrementRefTitleCount(void) __ptr64
?IncrementRefTitleCount@CCollection@@QEAAXXZ
; public: int __cdecl CCollection::IsDirty(void) __ptr64
?IsDirty@CCollection@@QEAAHXZ
; public: int __cdecl CCollection::MergeKeywords(char * __ptr64) __ptr64
?MergeKeywords@CCollection@@QEAAHPEAD@Z
; public: int __cdecl CCollection::MergeKeywords(unsigned short * __ptr64) __ptr64
?MergeKeywords@CCollection@@QEAAHPEAG@Z
; private: class CLocation * __ptr64 __cdecl CCollection::NewLocation(void) __ptr64
?NewLocation@CCollection@@AEAAPEAVCLocation@@XZ
; public: struct LocationHistory * __ptr64 __cdecl CTitle::NewLocationHistory(void) __ptr64
?NewLocationHistory@CTitle@@QEAAPEAULocationHistory@@XZ
; private: class CTitle * __ptr64 __cdecl CCollection::NewTitle(void) __ptr64
?NewTitle@CCollection@@AEAAPEAVCTitle@@XZ
; public: struct ListItem * __ptr64 __cdecl CPointerList::Next(struct ListItem * __ptr64) __ptr64
?Next@CPointerList@@QEAAPEAUListItem@@PEAU2@@Z
; public: unsigned long __cdecl CCollection::Open(char const * __ptr64) __ptr64
?Open@CCollection@@QEAAKPEBD@Z
; public: unsigned long __cdecl CCollection::Open(unsigned short const * __ptr64) __ptr64
?Open@CCollection@@QEAAKPEBG@Z
; private: unsigned long __cdecl CCollection::ParseFile(char const * __ptr64) __ptr64
?ParseFile@CCollection@@AEAAKPEBD@Z
; private: unsigned long __cdecl CCollection::Release(void) __ptr64
?Release@CCollection@@AEAAKXZ
; public: void __cdecl CFIFOString::RemoveAll(void) __ptr64
?RemoveAll@CFIFOString@@QEAAXXZ
; public: void __cdecl CPointerList::RemoveAll(void) __ptr64
?RemoveAll@CPointerList@@QEAAXXZ
; public: unsigned long __cdecl CCollection::RemoveCollection(int) __ptr64
?RemoveCollection@CCollection@@QEAAKH@Z
; public: void __cdecl CCollection::RemoveCollectionEntry(char * __ptr64) __ptr64
?RemoveCollectionEntry@CCollection@@QEAAXPEAD@Z
; public: unsigned long __cdecl CCollection::Save(void) __ptr64
?Save@CCollection@@QEAAKXZ
; public: void __cdecl CFolder::SetExTitlePtr(class CExTitle * __ptr64) __ptr64
?SetExTitlePtr@CFolder@@QEAAXPEAVCExTitle@@@Z
; public: void __cdecl CCollection::SetFindMergedCHMS(int) __ptr64
?SetFindMergedCHMS@CCollection@@QEAAXH@Z
; public: void __cdecl CFolder::SetFirstChildFolder(class CFolder * __ptr64) __ptr64
?SetFirstChildFolder@CFolder@@QEAAXPEAV1@@Z
; public: void __cdecl CLocation::SetId(char const * __ptr64) __ptr64
?SetId@CLocation@@QEAAXPEBD@Z
; public: void __cdecl CLocation::SetId(unsigned short const * __ptr64) __ptr64
?SetId@CLocation@@QEAAXPEBG@Z
; public: void __cdecl CTitle::SetId(char const * __ptr64) __ptr64
?SetId@CTitle@@QEAAXPEBD@Z
; public: void __cdecl CTitle::SetId(unsigned short const * __ptr64) __ptr64
?SetId@CTitle@@QEAAXPEBG@Z
; public: void __cdecl CFolder::SetLanguage(unsigned short) __ptr64
?SetLanguage@CFolder@@QEAAXG@Z
; public: void __cdecl CTitle::SetLanguage(unsigned short) __ptr64
?SetLanguage@CTitle@@QEAAXG@Z
; public: void __cdecl CCollection::SetMasterCHM(char const * __ptr64,unsigned short) __ptr64
?SetMasterCHM@CCollection@@QEAAXPEBDG@Z
; public: void __cdecl CCollection::SetMasterCHM(unsigned short const * __ptr64,unsigned short) __ptr64
?SetMasterCHM@CCollection@@QEAAXPEBGG@Z
; public: void __cdecl CFolder::SetNextFolder(class CFolder * __ptr64) __ptr64
?SetNextFolder@CFolder@@QEAAXPEAV1@@Z
; public: void __cdecl CLocation::SetNextLocation(class CLocation * __ptr64) __ptr64
?SetNextLocation@CLocation@@QEAAXPEAV1@@Z
; public: void __cdecl CTitle::SetNextTitle(class CTitle * __ptr64) __ptr64
?SetNextTitle@CTitle@@QEAAXPEAV1@@Z
; public: void __cdecl CFolder::SetOrder(unsigned long) __ptr64
?SetOrder@CFolder@@QEAAXK@Z
; public: void __cdecl CFolder::SetParent(class CFolder * __ptr64) __ptr64
?SetParent@CFolder@@QEAAXPEAV1@@Z
; public: void __cdecl CLocation::SetPath(char const * __ptr64) __ptr64
?SetPath@CLocation@@QEAAXPEBD@Z
; public: void __cdecl CLocation::SetPath(unsigned short const * __ptr64) __ptr64
?SetPath@CLocation@@QEAAXPEBG@Z
; public: void __cdecl CCollection::SetSampleLocation(char const * __ptr64) __ptr64
?SetSampleLocation@CCollection@@QEAAXPEBD@Z
; public: void __cdecl CCollection::SetSampleLocation(unsigned short const * __ptr64) __ptr64
?SetSampleLocation@CCollection@@QEAAXPEBG@Z
; public: void __cdecl CFolder::SetTitle(char const * __ptr64) __ptr64
?SetTitle@CFolder@@QEAAXPEBD@Z
; public: void __cdecl CFolder::SetTitle(unsigned short const * __ptr64) __ptr64
?SetTitle@CFolder@@QEAAXPEBG@Z
; public: void __cdecl CLocation::SetTitle(char const * __ptr64) __ptr64
?SetTitle@CLocation@@QEAAXPEBD@Z
; public: void __cdecl CLocation::SetTitle(unsigned short const * __ptr64) __ptr64
?SetTitle@CLocation@@QEAAXPEBG@Z
; public: void __cdecl CCollection::SetVersion(unsigned long) __ptr64
?SetVersion@CCollection@@QEAAXK@Z
; public: void __cdecl CLocation::SetVolume(char const * __ptr64) __ptr64
?SetVolume@CLocation@@QEAAXPEBD@Z
; public: void __cdecl CLocation::SetVolume(unsigned short const * __ptr64) __ptr64
?SetVolume@CLocation@@QEAAXPEBG@Z
; private: int __cdecl CCollection::WriteFolder(class CFolder * __ptr64 * __ptr64) __ptr64
?WriteFolder@CCollection@@AEAAHPEAPEAVCFolder@@@Z
; private: int __cdecl CCollection::WriteFolders(class CFolder * __ptr64 * __ptr64) __ptr64
?WriteFolders@CCollection@@AEAAHPEAPEAVCFolder@@@Z
; public: int __cdecl CFolder::bIsVisable(void) __ptr64
?bIsVisable@CFolder@@QEAAHXZ
; private: void __cdecl CCollection::wssResetNextColNum(void) __ptr64
?wssResetNextColNum@CCollection@@AEAAXXZ
