; 
; Exports of file hhsetup.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY hhsetup.dll
EXPORTS
; public: __thiscall CCollection::CCollection(void)
??0CCollection@@QAE@XZ
; public: __thiscall CFIFOString::CFIFOString(void)
??0CFIFOString@@QAE@XZ
; public: __thiscall CFolder::CFolder(void)
??0CFolder@@QAE@XZ
; public: __thiscall CLocation::CLocation(void)
??0CLocation@@QAE@XZ
; public: __thiscall CPointerList::CPointerList(void)
??0CPointerList@@QAE@XZ
; public: __thiscall CTitle::CTitle(void)
??0CTitle@@QAE@XZ
; public: __thiscall CCollection::~CCollection(void)
??1CCollection@@QAE@XZ
; public: __thiscall CFIFOString::~CFIFOString(void)
??1CFIFOString@@QAE@XZ
; public: __thiscall CFolder::~CFolder(void)
??1CFolder@@QAE@XZ
; public: __thiscall CLocation::~CLocation(void)
??1CLocation@@QAE@XZ
; public: __thiscall CPointerList::~CPointerList(void)
??1CPointerList@@QAE@XZ
; public: __thiscall CTitle::~CTitle(void)
??1CTitle@@QAE@XZ
; public: class CCollection & __thiscall CCollection::operator=(class CCollection const &)
??4CCollection@@QAEAAV0@ABV0@@Z
; public: class CFIFOString & __thiscall CFIFOString::operator=(class CFIFOString const &)
??4CFIFOString@@QAEAAV0@ABV0@@Z
; public: class CFolder & __thiscall CFolder::operator=(class CFolder const &)
??4CFolder@@QAEAAV0@ABV0@@Z
; public: class CLocation & __thiscall CLocation::operator=(class CLocation const &)
??4CLocation@@QAEAAV0@ABV0@@Z
; public: class CPointerList & __thiscall CPointerList::operator=(class CPointerList const &)
??4CPointerList@@QAEAAV0@ABV0@@Z
; public: class CTitle & __thiscall CTitle::operator=(class CTitle const &)
??4CTitle@@QAEAAV0@ABV0@@Z
; public: struct ListItem * __thiscall CPointerList::Add(void *)
?Add@CPointerList@@QAEPAUListItem@@PAX@Z
; public: unsigned long __thiscall CFolder::AddChildFolder(class CFolder *)
?AddChildFolder@CFolder@@QAEKPAV1@@Z
; public: class CFolder * __thiscall CFolder::AddChildFolder(char const *,unsigned long,unsigned long *,unsigned short)
?AddChildFolder@CFolder@@QAEPAV1@PBDKPAKG@Z
; public: class CFolder * __thiscall CFolder::AddChildFolder(unsigned short const *,unsigned long,unsigned long *,unsigned short)
?AddChildFolder@CFolder@@QAEPAV1@PBGKPAKG@Z
; public: class CColList * __thiscall CCollection::AddCollection(void)
?AddCollection@CCollection@@QAEPAVCColList@@XZ
; public: class CFolder * __thiscall CCollection::AddFolder(char const *,unsigned long,unsigned long *,unsigned short)
?AddFolder@CCollection@@QAEPAVCFolder@@PBDKPAKG@Z
; public: class CFolder * __thiscall CCollection::AddFolder(unsigned short const *,unsigned long,unsigned long *,unsigned short)
?AddFolder@CCollection@@QAEPAVCFolder@@PBGKPAKG@Z
; public: class CLocation * __thiscall CCollection::AddLocation(char const *,char const *,char const *,char const *,unsigned long *)
?AddLocation@CCollection@@QAEPAVCLocation@@PBD000PAK@Z
; public: class CLocation * __thiscall CCollection::AddLocation(unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned long *)
?AddLocation@CCollection@@QAEPAVCLocation@@PBG000PAK@Z
; public: unsigned long __thiscall CTitle::AddLocationHistory(unsigned long,char const *,char const *,char const *,class CLocation const *,char const *,char const *,int)
?AddLocationHistory@CTitle@@QAEKKPBD00PBVCLocation@@00H@Z
; public: unsigned long __thiscall CTitle::AddLocationHistory(unsigned long,unsigned short const *,unsigned short const *,unsigned short const *,class CLocation const *,unsigned short const *,unsigned short const *,int)
?AddLocationHistory@CTitle@@QAEKKPBG00PBVCLocation@@00H@Z
; public: void __thiscall CCollection::AddRef(void)
?AddRef@CCollection@@QAEXXZ
; private: unsigned long __thiscall CCollection::AddRefedTitle(class CFolder *)
?AddRefedTitle@CCollection@@AAEKPAVCFolder@@@Z
; public: unsigned long __thiscall CFIFOString::AddTail(char *)
?AddTail@CFIFOString@@QAEKPAD@Z
; public: class CTitle * __thiscall CCollection::AddTitle(char const *,char const *,char const *,char const *,char const *,unsigned short,unsigned int,class CLocation *,unsigned long *,int,char const *)
?AddTitle@CCollection@@QAEPAVCTitle@@PBD0000GIPAVCLocation@@PAKH0@Z
; public: class CTitle * __thiscall CCollection::AddTitle(unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned short,unsigned int,class CLocation *,unsigned long *,int,unsigned short const *)
?AddTitle@CCollection@@QAEPAVCTitle@@PBG0000GIPAVCLocation@@PAKH0@Z
; private: unsigned long __thiscall CCollection::AllocCopyValue(class CParseXML *,char *,char * *)
?AllocCopyValue@CCollection@@AAEKPAVCParseXML@@PADPAPAD@Z
; unsigned long __stdcall AllocSetValue(char const *,char * *)
?AllocSetValue@@YGKPBDPAPAD@Z
; private: unsigned long __thiscall CCollection::CheckTitleRef(char const *,unsigned short)
?CheckTitleRef@CCollection@@AAEKPBDG@Z
; private: unsigned long __thiscall CCollection::CheckTitleRef(unsigned short const *,unsigned short)
?CheckTitleRef@CCollection@@AAEKPBGG@Z
; public: unsigned long __thiscall CCollection::Close(void)
?Close@CCollection@@QAEKXZ
; public: void __thiscall CCollection::ConfirmTitles(void)
?ConfirmTitles@CCollection@@QAEXXZ
; public: void __thiscall CCollection::DecrementRefTitleCount(void)
?DecrementRefTitleCount@CCollection@@QAEXXZ
; private: void __thiscall CCollection::DeleteChildren(class CFolder * *)
?DeleteChildren@CCollection@@AAEXPAPAVCFolder@@@Z
; public: unsigned long __thiscall CCollection::DeleteFolder(class CFolder *)
?DeleteFolder@CCollection@@QAEKPAVCFolder@@@Z
; private: void __thiscall CCollection::DeleteFolders(class CFolder * *)
?DeleteFolders@CCollection@@AAEXPAPAVCFolder@@@Z
; private: void __thiscall CCollection::DeleteLocalFiles(struct LocationHistory *,class CTitle *)
?DeleteLocalFiles@CCollection@@AAEXPAULocationHistory@@PAVCTitle@@@Z
; private: unsigned long __thiscall CCollection::DeleteLocation(class CLocation *)
?DeleteLocation@CCollection@@AAEKPAVCLocation@@@Z
; private: unsigned long __thiscall CCollection::DeleteTitle(class CTitle *)
?DeleteTitle@CCollection@@AAEKPAVCTitle@@@Z
; public: void __thiscall CCollection::Dirty(void)
?Dirty@CCollection@@QAEXXZ
; public: class CColList * __thiscall CCollection::FindCollection(char *)
?FindCollection@CCollection@@QAEPAVCColList@@PAD@Z
; public: class CLocation * __thiscall CCollection::FindLocation(char const *,unsigned int *)
?FindLocation@CCollection@@QAEPAVCLocation@@PBDPAI@Z
; public: class CLocation * __thiscall CCollection::FindLocation(unsigned short const *,unsigned int *)
?FindLocation@CCollection@@QAEPAVCLocation@@PBGPAI@Z
; public: class CTitle * __thiscall CCollection::FindTitle(char const *,unsigned short)
?FindTitle@CCollection@@QAEPAVCTitle@@PBDG@Z
; public: class CTitle * __thiscall CCollection::FindTitle(unsigned short const *,unsigned short)
?FindTitle@CCollection@@QAEPAVCTitle@@PBGG@Z
; public: struct ListItem * __thiscall CPointerList::First(void)
?First@CPointerList@@QAEPAUListItem@@XZ
; public: class CLocation * __thiscall CCollection::FirstLocation(void)
?FirstLocation@CCollection@@QAEPAVCLocation@@XZ
; public: unsigned long __thiscall CCollection::GetColNo(void)
?GetColNo@CCollection@@QAEKXZ
; public: char const * __thiscall CCollection::GetCollectionFileName(void)
?GetCollectionFileName@CCollection@@QAEPBDXZ
; public: unsigned short const * __thiscall CCollection::GetCollectionFileNameW(void)
?GetCollectionFileNameW@CCollection@@QAEPBGXZ
; public: int __thiscall CCollection::GetFindMergedCHMS(void)
?GetFindMergedCHMS@CCollection@@QAEHXZ
; public: class CFolder * __thiscall CFolder::GetFirstChildFolder(void)
?GetFirstChildFolder@CFolder@@QAEPAV1@XZ
; public: class CTitle * __thiscall CCollection::GetFirstTitle(void)
?GetFirstTitle@CCollection@@QAEPAVCTitle@@XZ
; public: char * __thiscall CLocation::GetId(void)const 
?GetId@CLocation@@QBEPADXZ
; public: char * __thiscall CTitle::GetId(void)
?GetId@CTitle@@QAEPADXZ
; public: unsigned short const * __thiscall CLocation::GetIdW(void)
?GetIdW@CLocation@@QAEPBGXZ
; public: unsigned short const * __thiscall CTitle::GetIdW(void)
?GetIdW@CTitle@@QAEPBGXZ
; public: unsigned short __thiscall CCollection::GetLangId(char const *)
?GetLangId@CCollection@@QAEGPBD@Z
; public: unsigned short __thiscall CCollection::GetLangId(unsigned short const *)
?GetLangId@CCollection@@QAEGPBG@Z
; public: unsigned short __thiscall CFolder::GetLanguage(void)
?GetLanguage@CFolder@@QAEGXZ
; public: unsigned short __thiscall CTitle::GetLanguage(void)
?GetLanguage@CTitle@@QAEGXZ
; public: struct LocationHistory * __thiscall CTitle::GetLocation(unsigned long)
?GetLocation@CTitle@@QAEPAULocationHistory@@K@Z
; public: int __thiscall CCollection::GetMasterCHM(char * *,unsigned short *)
?GetMasterCHM@CCollection@@QAEHPAPADPAG@Z
; public: int __thiscall CCollection::GetMasterCHM(unsigned short * *,unsigned short *)
?GetMasterCHM@CCollection@@QAEHPAPAGPAG@Z
; public: class CFolder * __thiscall CFolder::GetNextFolder(void)
?GetNextFolder@CFolder@@QAEPAV1@XZ
; public: class CLocation * __thiscall CLocation::GetNextLocation(void)
?GetNextLocation@CLocation@@QAEPAV1@XZ
; public: class CTitle * __thiscall CTitle::GetNextTitle(void)
?GetNextTitle@CTitle@@QAEPAV1@XZ
; public: unsigned long __thiscall CFolder::GetOrder(void)
?GetOrder@CFolder@@QAEKXZ
; public: class CFolder * __thiscall CFolder::GetParent(void)
?GetParent@CFolder@@QAEPAV1@XZ
; public: char * __thiscall CLocation::GetPath(void)
?GetPath@CLocation@@QAEPADXZ
; public: unsigned short const * __thiscall CLocation::GetPathW(void)
?GetPathW@CLocation@@QAEPBGXZ
; public: unsigned long __thiscall CCollection::GetRefTitleCount(void)
?GetRefTitleCount@CCollection@@QAEKXZ
; public: class CFolder * __thiscall CCollection::GetRootFolder(void)
?GetRootFolder@CCollection@@QAEPAVCFolder@@XZ
; public: char * __thiscall CCollection::GetSampleLocation(void)
?GetSampleLocation@CCollection@@QAEPADXZ
; public: unsigned short const * __thiscall CCollection::GetSampleLocationW(void)
?GetSampleLocationW@CCollection@@QAEPBGXZ
; public: unsigned long __thiscall CFIFOString::GetTail(char * *)
?GetTail@CFIFOString@@QAEKPAPAD@Z
; public: char * __thiscall CFolder::GetTitle(void)
?GetTitle@CFolder@@QAEPADXZ
; public: char * __thiscall CLocation::GetTitle(void)
?GetTitle@CLocation@@QAEPADXZ
; public: unsigned short const * __thiscall CFolder::GetTitleW(void)
?GetTitleW@CFolder@@QAEPBGXZ
; public: unsigned short const * __thiscall CLocation::GetTitleW(void)
?GetTitleW@CLocation@@QAEPBGXZ
; public: unsigned long __thiscall CCollection::GetVersion(void)
?GetVersion@CCollection@@QAEKXZ
; public: class CFolder * __thiscall CCollection::GetVisableRootFolder(void)
?GetVisableRootFolder@CCollection@@QAEPAVCFolder@@XZ
; public: char * __thiscall CLocation::GetVolume(void)
?GetVolume@CLocation@@QAEPADXZ
; public: unsigned short const * __thiscall CLocation::GetVolumeW(void)
?GetVolumeW@CLocation@@QAEPBGXZ
; private: unsigned long __thiscall CCollection::HandleCollection(class CParseXML *,char *)
?HandleCollection@CCollection@@AAEKPAVCParseXML@@PAD@Z
; private: unsigned long __thiscall CCollection::HandleCollectionEntry(class CParseXML *,char *)
?HandleCollectionEntry@CCollection@@AAEKPAVCParseXML@@PAD@Z
; private: unsigned long __thiscall CCollection::HandleFolder(class CParseXML *,char *)
?HandleFolder@CCollection@@AAEKPAVCParseXML@@PAD@Z
; private: unsigned long __thiscall CCollection::HandleLocation(class CParseXML *,char *)
?HandleLocation@CCollection@@AAEKPAVCParseXML@@PAD@Z
; private: unsigned long __thiscall CCollection::HandleTitle(class CParseXML *,char *)
?HandleTitle@CCollection@@AAEKPAVCParseXML@@PAD@Z
; public: void __thiscall CCollection::IncrementRefTitleCount(void)
?IncrementRefTitleCount@CCollection@@QAEXXZ
; public: int __thiscall CCollection::IsDirty(void)
?IsDirty@CCollection@@QAEHXZ
; public: int __thiscall CCollection::MergeKeywords(char *)
?MergeKeywords@CCollection@@QAEHPAD@Z
; public: int __thiscall CCollection::MergeKeywords(unsigned short *)
?MergeKeywords@CCollection@@QAEHPAG@Z
; private: class CLocation * __thiscall CCollection::NewLocation(void)
?NewLocation@CCollection@@AAEPAVCLocation@@XZ
; public: struct LocationHistory * __thiscall CTitle::NewLocationHistory(void)
?NewLocationHistory@CTitle@@QAEPAULocationHistory@@XZ
; private: class CTitle * __thiscall CCollection::NewTitle(void)
?NewTitle@CCollection@@AAEPAVCTitle@@XZ
; public: struct ListItem * __thiscall CPointerList::Next(struct ListItem *)
?Next@CPointerList@@QAEPAUListItem@@PAU2@@Z
; public: unsigned long __thiscall CCollection::Open(char const *)
?Open@CCollection@@QAEKPBD@Z
; public: unsigned long __thiscall CCollection::Open(unsigned short const *)
?Open@CCollection@@QAEKPBG@Z
; private: unsigned long __thiscall CCollection::ParseFile(char const *)
?ParseFile@CCollection@@AAEKPBD@Z
; private: unsigned long __thiscall CCollection::Release(void)
?Release@CCollection@@AAEKXZ
; public: void __thiscall CFIFOString::RemoveAll(void)
?RemoveAll@CFIFOString@@QAEXXZ
; public: void __thiscall CPointerList::RemoveAll(void)
?RemoveAll@CPointerList@@QAEXXZ
; public: unsigned long __thiscall CCollection::RemoveCollection(int)
?RemoveCollection@CCollection@@QAEKH@Z
; public: void __thiscall CCollection::RemoveCollectionEntry(char *)
?RemoveCollectionEntry@CCollection@@QAEXPAD@Z
; public: unsigned long __thiscall CCollection::Save(void)
?Save@CCollection@@QAEKXZ
; public: void __thiscall CFolder::SetExTitlePtr(class CExTitle *)
?SetExTitlePtr@CFolder@@QAEXPAVCExTitle@@@Z
; public: void __thiscall CCollection::SetFindMergedCHMS(int)
?SetFindMergedCHMS@CCollection@@QAEXH@Z
; public: void __thiscall CFolder::SetFirstChildFolder(class CFolder *)
?SetFirstChildFolder@CFolder@@QAEXPAV1@@Z
; public: void __thiscall CLocation::SetId(char const *)
?SetId@CLocation@@QAEXPBD@Z
; public: void __thiscall CLocation::SetId(unsigned short const *)
?SetId@CLocation@@QAEXPBG@Z
; public: void __thiscall CTitle::SetId(char const *)
?SetId@CTitle@@QAEXPBD@Z
; public: void __thiscall CTitle::SetId(unsigned short const *)
?SetId@CTitle@@QAEXPBG@Z
; public: void __thiscall CFolder::SetLanguage(unsigned short)
?SetLanguage@CFolder@@QAEXG@Z
; public: void __thiscall CTitle::SetLanguage(unsigned short)
?SetLanguage@CTitle@@QAEXG@Z
; public: void __thiscall CCollection::SetMasterCHM(char const *,unsigned short)
?SetMasterCHM@CCollection@@QAEXPBDG@Z
; public: void __thiscall CCollection::SetMasterCHM(unsigned short const *,unsigned short)
?SetMasterCHM@CCollection@@QAEXPBGG@Z
; public: void __thiscall CFolder::SetNextFolder(class CFolder *)
?SetNextFolder@CFolder@@QAEXPAV1@@Z
; public: void __thiscall CLocation::SetNextLocation(class CLocation *)
?SetNextLocation@CLocation@@QAEXPAV1@@Z
; public: void __thiscall CTitle::SetNextTitle(class CTitle *)
?SetNextTitle@CTitle@@QAEXPAV1@@Z
; public: void __thiscall CFolder::SetOrder(unsigned long)
?SetOrder@CFolder@@QAEXK@Z
; public: void __thiscall CFolder::SetParent(class CFolder *)
?SetParent@CFolder@@QAEXPAV1@@Z
; public: void __thiscall CLocation::SetPath(char const *)
?SetPath@CLocation@@QAEXPBD@Z
; public: void __thiscall CLocation::SetPath(unsigned short const *)
?SetPath@CLocation@@QAEXPBG@Z
; public: void __thiscall CCollection::SetSampleLocation(char const *)
?SetSampleLocation@CCollection@@QAEXPBD@Z
; public: void __thiscall CCollection::SetSampleLocation(unsigned short const *)
?SetSampleLocation@CCollection@@QAEXPBG@Z
; public: void __thiscall CFolder::SetTitle(char const *)
?SetTitle@CFolder@@QAEXPBD@Z
; public: void __thiscall CFolder::SetTitle(unsigned short const *)
?SetTitle@CFolder@@QAEXPBG@Z
; public: void __thiscall CLocation::SetTitle(char const *)
?SetTitle@CLocation@@QAEXPBD@Z
; public: void __thiscall CLocation::SetTitle(unsigned short const *)
?SetTitle@CLocation@@QAEXPBG@Z
; public: void __thiscall CCollection::SetVersion(unsigned long)
?SetVersion@CCollection@@QAEXK@Z
; public: void __thiscall CLocation::SetVolume(char const *)
?SetVolume@CLocation@@QAEXPBD@Z
; public: void __thiscall CLocation::SetVolume(unsigned short const *)
?SetVolume@CLocation@@QAEXPBG@Z
; private: int __thiscall CCollection::WriteFolder(class CFolder * *)
?WriteFolder@CCollection@@AAEHPAPAVCFolder@@@Z
; private: int __thiscall CCollection::WriteFolders(class CFolder * *)
?WriteFolders@CCollection@@AAEHPAPAVCFolder@@@Z
; public: int __thiscall CFolder::bIsVisable(void)
?bIsVisable@CFolder@@QAEHXZ
; private: void __thiscall CCollection::wssResetNextColNum(void)
?wssResetNextColNum@CCollection@@AAEXXZ
