; 
; 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
