; 
; Exports of file CertObj.DLL
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY CertObj.DLL
EXPORTS
; public: __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::list<class IIS::CString,class std::allocator<class IIS::CString> >(class list<class IIS::CString,class std::allocator<class IIS::CString> >::list<class IIS::CString,class std::allocator<class IIS::CString> > const &)
??0?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAE@ABV01@@Z
; public: __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::list<class IIS::CString,class std::allocator<class IIS::CString> >(class list<class IIS::CString,class std::allocator<class IIS::CString> >::allocator<class IIS::CString> const &)
??0?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAE@ABV?$allocator@VCString@IIS@@@1@@Z
; public: __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::list<class IIS::CString,class std::allocator<class IIS::CString> >(unsigned int,class IIS::CString const &,class list<class IIS::CString,class std::allocator<class IIS::CString> >::allocator<class IIS::CString> const &)
??0?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAE@IABVCString@IIS@@ABV?$allocator@VCString@IIS@@@1@@Z
; public: __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::list<class IIS::CString,class std::allocator<class IIS::CString> >(class IIS::CString const *,class IIS::CString const *,class list<class IIS::CString,class std::allocator<class IIS::CString> >::allocator<class IIS::CString> const &)
??0?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAE@PBVCString@IIS@@0ABV?$allocator@VCString@IIS@@@1@@Z
; public: __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::list<class IIS::CString,class std::allocator<class IIS::CString> >(class list<class IIS::CString,class std::allocator<class IIS::CString> >::list<class IIS::CString,class std::allocator<class IIS::CString> >::const_iterator,class list<class IIS::CString,class std::allocator<class IIS::CString> >::list<class IIS::CString,class std::allocator<class IIS::CString> >::const_iterator,class list<class IIS::CString,class std::allocator<class IIS::CString> >::allocator<class IIS::CString> const &)
??0?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAE@Vconst_iterator@01@0ABV?$allocator@VCString@IIS@@@1@@Z
; public: __thiscall CError::CError(class CError const &)
??0CError@@QAE@ABV0@@Z
; public: __thiscall CError::CError(long)
??0CError@@QAE@J@Z
; public: __thiscall CError::CError(unsigned long)
??0CError@@QAE@K@Z
; public: __thiscall CError::CError(void)
??0CError@@QAE@XZ
; public: __thiscall CIISApplication::CIISApplication(class CIISApplication &)
??0CIISApplication@@QAE@AAV0@@Z
; public: __thiscall CIISInterface::CIISInterface(class CIISInterface &)
??0CIISInterface@@QAE@AAV0@@Z
; public: __thiscall CIISSvcControl::CIISSvcControl(class CIISSvcControl &)
??0CIISSvcControl@@QAE@AAV0@@Z
; public: __thiscall CMetaBack::CMetaBack(class CMetaBack &)
??0CMetaBack@@QAE@AAV0@@Z
; public: __thiscall CMetaEnumerator::CMetaEnumerator(class CMetaEnumerator &)
??0CMetaEnumerator@@QAE@AAV0@@Z
; public: __thiscall CMetaInterface::CMetaInterface(class CMetaInterface &)
??0CMetaInterface@@QAE@AAV0@@Z
; public: __thiscall CMetaKey::CMetaKey(class CMetaKey &)
??0CMetaKey@@QAE@AAV0@@Z
; public: __thiscall CMetabasePath::CMetabasePath(class CMetabasePath const &)
??0CMetabasePath@@QAE@ABV0@@Z
; public: __thiscall CStringListEx::CStringListEx(class CStringListEx const &)
??0CStringListEx@@QAE@ABV0@@Z
; public: __thiscall CWamInterface::CWamInterface(class CWamInterface &)
??0CWamInterface@@QAE@AAV0@@Z
; public: __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::~list<class IIS::CString,class std::allocator<class IIS::CString> >(void)
??1?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAE@XZ
; public: __thiscall CBlob::~CBlob(void)
??1CBlob@@QAE@XZ
; public: __thiscall CComAuthInfo::~CComAuthInfo(void)
??1CComAuthInfo@@QAE@XZ
; public: virtual __thiscall CIISApplication::~CIISApplication(void)
??1CIISApplication@@UAE@XZ
; public: __thiscall CIISInterface::~CIISInterface(void)
??1CIISInterface@@QAE@XZ
; public: virtual __thiscall CMetaBack::~CMetaBack(void)
??1CMetaBack@@UAE@XZ
; public: virtual __thiscall CMetaEnumerator::~CMetaEnumerator(void)
??1CMetaEnumerator@@UAE@XZ
; public: __thiscall CMetabasePath::~CMetabasePath(void)
??1CMetabasePath@@QAE@XZ
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> > & __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::operator=(class std::list<class IIS::CString,class std::allocator<class IIS::CString> > const &)
??4?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEAAV01@ABV01@@Z
; public: class CError const & __thiscall CError::operator=(class CError const &)
??4CError@@QAEABV0@ABV0@@Z
; public: class CError const & __thiscall CError::operator=(long)
??4CError@@QAEABV0@J@Z
; public: class CIISApplication & __thiscall CIISApplication::operator=(class CIISApplication &)
??4CIISApplication@@QAEAAV0@AAV0@@Z
; public: class CIISInterface & __thiscall CIISInterface::operator=(class CIISInterface &)
??4CIISInterface@@QAEAAV0@AAV0@@Z
; public: class CIISSvcControl & __thiscall CIISSvcControl::operator=(class CIISSvcControl &)
??4CIISSvcControl@@QAEAAV0@AAV0@@Z
; public: class CMetaBack & __thiscall CMetaBack::operator=(class CMetaBack &)
??4CMetaBack@@QAEAAV0@AAV0@@Z
; public: class CMetaEnumerator & __thiscall CMetaEnumerator::operator=(class CMetaEnumerator &)
??4CMetaEnumerator@@QAEAAV0@AAV0@@Z
; public: class CMetaInterface & __thiscall CMetaInterface::operator=(class CMetaInterface &)
??4CMetaInterface@@QAEAAV0@AAV0@@Z
; public: class CMetaKey & __thiscall CMetaKey::operator=(class CMetaKey &)
??4CMetaKey@@QAEAAV0@AAV0@@Z
; public: class CMetabasePath & __thiscall CMetabasePath::operator=(class CMetabasePath const &)
??4CMetabasePath@@QAEAAV0@ABV0@@Z
; public: class CStringListEx & __thiscall CStringListEx::operator=(class CStringListEx const &)
??4CStringListEx@@QAEAAV0@ABV0@@Z
; public: class CWamInterface & __thiscall CWamInterface::operator=(class CWamInterface &)
??4CWamInterface@@QAEAAV0@AAV0@@Z
; public: int const  __thiscall CError::operator==(class CError &)
??8CError@@QAE?BHAAV0@@Z
; public: int const  __thiscall CError::operator==(long)
??8CError@@QAE?BHJ@Z
; public: int __thiscall CBlob::operator!=(class CBlob const &)const 
??9CBlob@@QBEHABV0@@Z
; public: int const  __thiscall CError::operator!=(class CError &)
??9CError@@QAE?BHAAV0@@Z
; public: int const  __thiscall CError::operator!=(long)
??9CError@@QAE?BHJ@Z
; public: bool __thiscall CStrPassword::operator!=(class CStrPassword &)
??9CStrPassword@@QAE_NAAV0@@Z
; public: __thiscall CComAuthInfo::operator unsigned short *(void)
??BCComAuthInfo@@QAEPAGXZ
; public: __thiscall CComAuthInfo::operator class CComAuthInfo *(void)
??BCComAuthInfo@@QAEPAV0@XZ
; public: __thiscall CError::operator unsigned short const *(void)
??BCError@@QAEPBGXZ
; public: __thiscall CError::operator int const (void)const 
??BCError@@QBE?BHXZ
; public: __thiscall CError::operator long const (void)const 
??BCError@@QBE?BJXZ
; public: __thiscall CError::operator unsigned long const (void)const 
??BCError@@QBE?BKXZ
; public: __thiscall CIISInterface::operator int(void)const 
??BCIISInterface@@QBEHXZ
; public: __thiscall CIISInterface::operator long(void)const 
??BCIISInterface@@QBEJXZ
; public: __thiscall CMetaKey::operator int(void)const 
??BCMetaKey@@QBEHXZ
; public: __thiscall CMetaKey::operator unsigned long(void)const 
??BCMetaKey@@QBEKXZ
; public: __thiscall CMetaKey::operator unsigned short const *(void)const 
??BCMetaKey@@QBEPBGXZ
; public: __thiscall CMetabasePath::operator unsigned short const *(void)const 
??BCMetabasePath@@QBEPBGXZ
; const  CIISApplication::`vftable'{for `CMetaKey'}
??_7CIISApplication@@6BCMetaKey@@@
; const  CIISApplication::`vftable'{for `CWamInterface'}
??_7CIISApplication@@6BCWamInterface@@@
; const  CIISInterface::`vftable'
??_7CIISInterface@@6B@
; const  CIISSvcControl::`vftable'
??_7CIISSvcControl@@6B@
; const  CMetaBack::`vftable'{for `CMetaInterface'}
??_7CMetaBack@@6BCMetaInterface@@@
; const  CMetaBack::`vftable'{for `CWamInterface'}
??_7CMetaBack@@6BCWamInterface@@@
; const  CMetaEnumerator::`vftable'
??_7CMetaEnumerator@@6B@
; const  CMetaInterface::`vftable'
??_7CMetaInterface@@6B@
; const  CMetaKey::`vftable'
??_7CMetaKey@@6B@
; const  CWamInterface::`vftable'
??_7CWamInterface@@6B@
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::`default constructor closure'(void)
??_F?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXXZ
; public: void __thiscall CComAuthInfo::`default constructor closure'(void)
??_FCComAuthInfo@@QAEXXZ
; public: void __thiscall CMetabasePath::`default constructor closure'(void)
??_FCMetabasePath@@QAEXXZ
; protected: long __thiscall CMetaInterface::AddKey(unsigned long,unsigned short const *)
?AddKey@CMetaInterface@@IAEJKPBG@Z
; public: long __thiscall CMetaKey::AddKey(unsigned short const *)
?AddKey@CMetaKey@@QAEJPBG@Z
; protected: long __thiscall CWamInterface::AppDelete(unsigned short const *,int)
?AppDelete@CWamInterface@@IAEJPBGH@Z
; protected: long __thiscall CWamInterface::AppDeleteRecoverable(unsigned short const *,int)
?AppDeleteRecoverable@CWamInterface@@IAEJPBGH@Z
; protected: long __thiscall CWamInterface::AppGetStatus(unsigned short const *,unsigned long *)
?AppGetStatus@CWamInterface@@IAEJPBGPAK@Z
; protected: long __thiscall CWamInterface::AppRecover(unsigned short const *,int)
?AppRecover@CWamInterface@@IAEJPBGH@Z
; protected: long __thiscall CWamInterface::AppUnLoad(unsigned short const *,int)
?AppUnLoad@CWamInterface@@IAEJPBGH@Z
; protected: virtual long __thiscall CIISSvcControl::ApplyProxyBlanket(void)
?ApplyProxyBlanket@CIISSvcControl@@MAEJXZ
; protected: virtual long __thiscall CMetaBack::ApplyProxyBlanket(void)
?ApplyProxyBlanket@CMetaBack@@MAEJXZ
; protected: virtual long __thiscall CMetaInterface::ApplyProxyBlanket(void)
?ApplyProxyBlanket@CMetaInterface@@MAEJXZ
; protected: virtual long __thiscall CWamInterface::ApplyProxyBlanket(void)
?ApplyProxyBlanket@CWamInterface@@MAEJXZ
; public: long __thiscall CMetaBack::Backup(unsigned short const *)
?Backup@CMetaBack@@QAEJPBG@Z
; protected: long __thiscall CMetaInterface::Backup(unsigned short const *,unsigned long,unsigned long)
?Backup@CMetaInterface@@IAEJPBGKK@Z
; public: virtual long __thiscall CIISInterface::ChangeProxyBlanket(unsigned short const *,unsigned short const *)
?ChangeProxyBlanket@CIISInterface@@UAEJPBG0@Z
; protected: long __thiscall CMetaInterface::CloseKey(unsigned long)
?CloseKey@CMetaInterface@@IAEJK@Z
; protected: long __thiscall CMetaInterface::CopyData(unsigned long,unsigned short const *,unsigned long,unsigned short const *,unsigned long,unsigned long,unsigned long,int)
?CopyData@CMetaInterface@@IAEJKPBGK0KKKH@Z
; protected: long __thiscall CMetaInterface::CopyKey(unsigned long,unsigned short const *,unsigned long,unsigned short const *,int,int)
?CopyKey@CMetaInterface@@IAEJKPBGK0HH@Z
; public: long __thiscall CIISApplication::Delete(int)
?Delete@CIISApplication@@QAEJH@Z
; public: long __thiscall CMetaBack::Delete(unsigned short const *,unsigned long)
?Delete@CMetaBack@@QAEJPBGK@Z
; protected: long __thiscall CMetaInterface::DeleteAllData(unsigned long,unsigned short const *,unsigned long,unsigned long)
?DeleteAllData@CMetaInterface@@IAEJKPBGKK@Z
; protected: long __thiscall CMetaInterface::DeleteBackup(unsigned short const *,unsigned long)
?DeleteBackup@CMetaInterface@@IAEJPBGK@Z
; protected: long __thiscall CMetaInterface::DeleteChildKeys(unsigned long,unsigned short const *)
?DeleteChildKeys@CMetaInterface@@IAEJKPBG@Z
; protected: long __thiscall CMetaInterface::DeleteData(unsigned long,unsigned short const *,unsigned long,unsigned long)
?DeleteData@CMetaInterface@@IAEJKPBGKK@Z
; protected: long __thiscall CMetaInterface::DeleteKey(unsigned long,unsigned short const *)
?DeleteKey@CMetaInterface@@IAEJKPBG@Z
; public: long __thiscall CMetaKey::DeleteKey(unsigned short const *)
?DeleteKey@CMetaKey@@QAEJPBG@Z
; public: long __thiscall CIISApplication::DeleteRecoverable(int)
?DeleteRecoverable@CIISApplication@@QAEJH@Z
; protected: long __thiscall CMetaInterface::EnumBackups(unsigned short *,unsigned long *,struct _FILETIME *,unsigned long)
?EnumBackups@CMetaInterface@@IAEJPAGPAKPAU_FILETIME@@K@Z
; protected: long __thiscall CMetaInterface::EnumData(unsigned long,unsigned short const *,struct _METADATA_RECORD *,unsigned long,unsigned long *)
?EnumData@CMetaInterface@@IAEJKPBGPAU_METADATA_RECORD@@KPAK@Z
; protected: long __thiscall CMetaInterface::EnumKeys(unsigned long,unsigned short const *,unsigned short *,unsigned long)
?EnumKeys@CMetaInterface@@IAEJKPBGPAGK@Z
; public: int __thiscall CError::Failed(void)const 
?Failed@CError@@QBEHXZ
; public: static int __stdcall CError::Failed(long)
?Failed@CError@@SGHJ@Z
; protected: long __thiscall CMetaInterface::GetAllData(unsigned long,unsigned short const *,unsigned long,unsigned long,unsigned long,unsigned long *,unsigned long *,unsigned long,unsigned char *,unsigned long *)
?GetAllData@CMetaInterface@@IAEJKPBGKKKPAK1KPAE1@Z
; public: unsigned long __thiscall CMetaKey::GetBase(void)const 
?GetBase@CMetaKey@@QBEKXZ
; public: unsigned char * __thiscall CBlob::GetData(void)
?GetData@CBlob@@QAEPAEXZ
; protected: long __thiscall CMetaInterface::GetData(unsigned long,unsigned short const *,struct _METADATA_RECORD *,unsigned long *)
?GetData@CMetaInterface@@IAEJKPBGPAU_METADATA_RECORD@@PAK@Z
; protected: long __thiscall CMetaInterface::GetDataPaths(unsigned long,unsigned short const *,unsigned long,unsigned long,unsigned long,unsigned short *,unsigned long *)
?GetDataPaths@CMetaInterface@@IAEJKPBGKKKPAGPAK@Z
; public: unsigned long __thiscall CMetaKey::GetHandle(void)const 
?GetHandle@CMetaKey@@QBEKXZ
; public: unsigned long __thiscall CMetaEnumerator::GetIndex(void)
?GetIndex@CMetaEnumerator@@QAEKXZ
; public: static unsigned short const * __stdcall CMetabasePath::GetInstancePath(unsigned short const *,class IIS::CString &,class IIS::CString *)
?GetInstancePath@CMetabasePath@@SGPBGPBGAAVCString@IIS@@PAV23@@Z
; public: struct IMSAdminBaseW * __thiscall CMetaInterface::GetInterface(void)
?GetInterface@CMetaInterface@@QAEPAUIMSAdminBaseW@@XZ
; protected: long __thiscall CMetaInterface::GetLastChangeTime(unsigned long,unsigned short const *,struct _FILETIME *,int)
?GetLastChangeTime@CMetaInterface@@IAEJKPBGPAU_FILETIME@@H@Z
; public: void __thiscall CError::GetLastWinError(void)
?GetLastWinError@CError@@QAEXXZ
; public: static unsigned short const * __stdcall CMetabasePath::GetMachinePath(unsigned short const *,class IIS::CString &,class IIS::CString *)
?GetMachinePath@CMetabasePath@@SGPBGPBGAAVCString@IIS@@PAV23@@Z
; public: static unsigned short const * __stdcall CMetabasePath::GetRootPath(unsigned short const *,class IIS::CString &,class IIS::CString *)
?GetRootPath@CMetabasePath@@SGPBGPBGAAVCString@IIS@@PAV23@@Z
; public: static unsigned short const * __stdcall CMetabasePath::GetServicePath(unsigned short const *,class IIS::CString &,class IIS::CString *)
?GetServicePath@CMetabasePath@@SGPBGPBGAAVCString@IIS@@PAV23@@Z
; public: unsigned long __thiscall CBlob::GetSize(void)const 
?GetSize@CBlob@@QBEKXZ
; public: long __thiscall CError::HResult(void)const 
?HResult@CError@@QBEJXZ
; public: static long __stdcall CError::HResult(long)
?HResult@CError@@SGJJ@Z
; protected: int __thiscall CIISSvcControl::HasInterface(void)const 
?HasInterface@CIISSvcControl@@IBEHXZ
; protected: int __thiscall CMetaInterface::HasInterface(void)const 
?HasInterface@CMetaInterface@@IBEHXZ
; protected: int __thiscall CWamInterface::HasInterface(void)const 
?HasInterface@CWamInterface@@IBEHXZ
; public: int __thiscall CBlob::IsEmpty(void)const 
?IsEmpty@CBlob@@QBEHXZ
; public: int __thiscall CIISApplication::IsEnabledApplication(void)const 
?IsEnabledApplication@CIISApplication@@QBEHXZ
; public: int __thiscall CMetaKey::IsHomeDirectoryPath(void)const 
?IsHomeDirectoryPath@CMetaKey@@QBEHXZ
; public: int __thiscall CMetabasePath::IsHomeDirectoryPath(void)const 
?IsHomeDirectoryPath@CMetabasePath@@QBEHXZ
; public: int __thiscall CIISApplication::IsInproc(void)const 
?IsInproc@CIISApplication@@QBEHXZ
; public: int __thiscall CComAuthInfo::IsLocal(void)const 
?IsLocal@CComAuthInfo@@QBEHXZ
; public: int __thiscall CIISInterface::IsLocal(void)const 
?IsLocal@CIISInterface@@QBEHXZ
; public: int __thiscall CMetaKey::IsOpen(void)const 
?IsOpen@CMetaKey@@QBEHXZ
; public: int __thiscall CIISApplication::IsOutOfProc(void)const 
?IsOutOfProc@CIISApplication@@QBEHXZ
; public: int __thiscall CIISApplication::IsPooledProc(void)const 
?IsPooledProc@CIISApplication@@QBEHXZ
; public: long __thiscall CIISSvcControl::Kill(void)
?Kill@CIISSvcControl@@QAEJXZ
; public: long __thiscall CMetaBack::Next(unsigned long *,unsigned short *,struct _FILETIME *)
?Next@CMetaBack@@QAEJPAKPAGPAU_FILETIME@@@Z
; protected: long __thiscall CMetaInterface::OpenKey(unsigned long,unsigned short const *,unsigned long,unsigned long *)
?OpenKey@CMetaInterface@@IAEJKPBGKPAK@Z
; public: void __thiscall CMetaEnumerator::Pop(void)
?Pop@CMetaEnumerator@@QAEXXZ
; public: void __thiscall CMetaEnumerator::Push(void)
?Push@CMetaEnumerator@@QAEXXZ
; public: unsigned long __thiscall CIISApplication::QueryAppState(void)const 
?QueryAppState@CIISApplication@@QBEKXZ
; public: class CComAuthInfo * __thiscall CIISInterface::QueryAuthInfo(void)
?QueryAuthInfo@CIISInterface@@QAEPAVCComAuthInfo@@XZ
; public: unsigned long __thiscall CMetaKey::QueryFlags(void)const 
?QueryFlags@CMetaKey@@QBEKXZ
; public: unsigned short const * __thiscall CMetaKey::QueryMetaPath(void)const 
?QueryMetaPath@CMetaKey@@QBEPBGXZ
; public: unsigned short const * __thiscall CMetabasePath::QueryMetaPath(void)const 
?QueryMetaPath@CMetabasePath@@QBEPBGXZ
; public: unsigned short * __thiscall CComAuthInfo::QueryPassword(void)const 
?QueryPassword@CComAuthInfo@@QBEPAGXZ
; public: virtual long __thiscall CIISInterface::QueryResult(void)const 
?QueryResult@CIISInterface@@UBEJXZ
; public: unsigned short * __thiscall CComAuthInfo::QueryServerName(void)const 
?QueryServerName@CComAuthInfo@@QBEPAGXZ
; public: unsigned short const * __thiscall CIISInterface::QueryServerName(void)const 
?QueryServerName@CIISInterface@@QBEPBGXZ
; public: unsigned short * __thiscall CComAuthInfo::QueryUserName(void)const 
?QueryUserName@CComAuthInfo@@QBEPAGXZ
; public: long __thiscall CMetaKey::QueryValue(unsigned long,int &,int *,unsigned short const *,unsigned long *)
?QueryValue@CMetaKey@@QAEJKAAHPAHPBGPAK@Z
; public: unsigned short const * __thiscall CIISApplication::QueryWamPath(void)const 
?QueryWamPath@CIISApplication@@QBEPBGXZ
; public: long __thiscall CMetaKey::ReOpen(unsigned long)
?ReOpen@CMetaKey@@QAEJK@Z
; public: long __thiscall CMetaKey::ReOpen(void)
?ReOpen@CMetaKey@@QAEJXZ
; public: long __thiscall CIISSvcControl::Reboot(unsigned long,int)
?Reboot@CIISSvcControl@@QAEJKH@Z
; public: long __thiscall CIISApplication::Recover(int)
?Recover@CIISApplication@@QAEJH@Z
; public: void __thiscall CError::RemoveOverride(long)
?RemoveOverride@CError@@QAEXJ@Z
; protected: long __thiscall CMetaInterface::RenameKey(unsigned long,unsigned short const *,unsigned short const *)
?RenameKey@CMetaInterface@@IAEJKPBG0@Z
; public: long __thiscall CMetaKey::RenameKey(unsigned short const *,unsigned short const *)
?RenameKey@CMetaKey@@QAEJPBG0@Z
; public: void __thiscall CError::Reset(void)
?Reset@CError@@QAEXXZ
; public: void __thiscall CMetaBack::Reset(void)
?Reset@CMetaBack@@QAEXXZ
; public: void __thiscall CMetaEnumerator::Reset(unsigned long)
?Reset@CMetaEnumerator@@QAEXK@Z
; protected: long __thiscall CMetaInterface::Restore(unsigned short const *,unsigned long,unsigned long)
?Restore@CMetaInterface@@IAEJPBGKK@Z
; public: long __thiscall CMetaInterface::SaveData(void)
?SaveData@CMetaInterface@@QAEJXZ
; protected: long __thiscall CMetaInterface::SetData(unsigned long,unsigned short const *,struct _METADATA_RECORD *)
?SetData@CMetaInterface@@IAEJKPBGPAU_METADATA_RECORD@@@Z
; protected: long __thiscall CMetaInterface::SetLastChangeTime(unsigned long,unsigned short const *,struct _FILETIME *,int)
?SetLastChangeTime@CMetaInterface@@IAEJKPBGPAU_FILETIME@@H@Z
; public: void __thiscall CError::SetLastWinError(void)const 
?SetLastWinError@CError@@QBEXXZ
; public: long __thiscall CMetaKey::SetValue(unsigned long,class IIS::CString &,int *,unsigned short const *)
?SetValue@CMetaKey@@QAEJKAAVCString@IIS@@PAHPBG@Z
; public: long __thiscall CMetaKey::SetValue(unsigned long,int,int *,unsigned short const *)
?SetValue@CMetaKey@@QAEJKHPAHPBG@Z
; public: long __thiscall CMetaKey::SetValue(unsigned long,unsigned long,int *,unsigned short const *)
?SetValue@CMetaKey@@QAEJKKPAHPBG@Z
; public: long __thiscall CIISSvcControl::Start(unsigned long)
?Start@CIISSvcControl@@QAEJK@Z
; public: long __thiscall CIISSvcControl::Status(unsigned long,unsigned char *,unsigned long *,unsigned long *)
?Status@CIISSvcControl@@QAEJKPAEPAK1@Z
; public: long __thiscall CIISSvcControl::Stop(unsigned long,int)
?Stop@CIISSvcControl@@QAEJKH@Z
; public: void __thiscall CComAuthInfo::StorePassword(unsigned short const *)
?StorePassword@CComAuthInfo@@QAEXPBG@Z
; public: int __thiscall CError::Succeeded(void)const 
?Succeeded@CError@@QBEHXZ
; public: static int __stdcall CError::Succeeded(long)
?Succeeded@CError@@SGHJ@Z
; public: virtual int __thiscall CIISInterface::Succeeded(void)const 
?Succeeded@CIISInterface@@UBEHXZ
; public: int __thiscall CWamInterface::SupportsPooledProc(void)const 
?SupportsPooledProc@CWamInterface@@QBEHXZ
; public: long __thiscall CIISApplication::Unload(int)
?Unload@CIISApplication@@QAEJH@Z
; public: static void __stdcall CError::UnregisterFacility(unsigned long)
?UnregisterFacility@CError@@SGXK@Z
; public: int __thiscall CComAuthInfo::UsesImpersonation(void)const 
?UsesImpersonation@CComAuthInfo@@QBEHXZ
; public: unsigned long __thiscall CError::Win32Error(void)const 
?Win32Error@CError@@QBEKXZ
; public: static unsigned long __stdcall CError::Win32Error(long)
?Win32Error@CError@@SGKJ@Z
; protected: struct std::list<class IIS::CString,class std::allocator<class IIS::CString> >::_Node * __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::_Buynode(struct std::list<class IIS::CString,class std::allocator<class IIS::CString> >::_Node *,struct std::list<class IIS::CString,class std::allocator<class IIS::CString> >::_Node *)
?_Buynode@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@IAEPAU_Node@12@PAU312@0@Z
; protected: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::_Freenode(struct std::list<class IIS::CString,class std::allocator<class IIS::CString> >::_Node *)
?_Freenode@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@IAEXPAU_Node@12@@Z
; protected: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::_Splice(class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator,class std::list<class IIS::CString,class std::allocator<class IIS::CString> > &,class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator,class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator)
?_Splice@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@IAEXViterator@12@AAV12@00@Z
; protected: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::_Xran(void)const 
?_Xran@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@IBEXXZ
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::assign(unsigned int,class IIS::CString const &)
?assign@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXIABVCString@IIS@@@Z
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::assign(class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::const_iterator,class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::const_iterator)
?assign@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXVconst_iterator@12@0@Z
; public: class IIS::CString & __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::back(void)
?back@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEAAVCString@IIS@@XZ
; public: class IIS::CString const & __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::back(void)const 
?back@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QBEABVCString@IIS@@XZ
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator  __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::begin(void)
?begin@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAE?AViterator@12@XZ
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::const_iterator  __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::begin(void)const 
?begin@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QBE?AVconst_iterator@12@XZ
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::clear(void)
?clear@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXXZ
; public: bool __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::empty(void)const 
?empty@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QBE_NXZ
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator  __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::end(void)
?end@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAE?AViterator@12@XZ
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::const_iterator  __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::end(void)const 
?end@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QBE?AVconst_iterator@12@XZ
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator  __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::erase(class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator,class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator)
?erase@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAE?AViterator@12@V312@0@Z
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator  __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::erase(class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator)
?erase@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAE?AViterator@12@V312@@Z
; public: class IIS::CString & __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::front(void)
?front@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEAAVCString@IIS@@XZ
; public: class IIS::CString const & __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::front(void)const 
?front@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QBEABVCString@IIS@@XZ
; public: class std::allocator<class IIS::CString>  __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::get_allocator(void)const 
?get_allocator@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QBE?AV?$allocator@VCString@IIS@@@2@XZ
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator  __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::insert(class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator,class IIS::CString const &)
?insert@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAE?AViterator@12@V312@ABVCString@IIS@@@Z
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::insert(class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator,unsigned int,class IIS::CString const &)
?insert@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXViterator@12@IABVCString@IIS@@@Z
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::insert(class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator,class IIS::CString const *,class IIS::CString const *)
?insert@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXViterator@12@PBVCString@IIS@@1@Z
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::insert(class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator,class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::const_iterator,class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::const_iterator)
?insert@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXViterator@12@Vconst_iterator@12@1@Z
; public: unsigned int __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::max_size(void)const 
?max_size@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QBEIXZ
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::merge(class std::list<class IIS::CString,class std::allocator<class IIS::CString> > &)
?merge@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXAAV12@@Z
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::merge(class std::list<class IIS::CString,class std::allocator<class IIS::CString> > &,struct std::greater<class IIS::CString>)
?merge@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXAAV12@U?$greater@VCString@IIS@@@2@@Z
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::pop_back(void)
?pop_back@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXXZ
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::pop_front(void)
?pop_front@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXXZ
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::push_back(class IIS::CString const &)
?push_back@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXABVCString@IIS@@@Z
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::push_front(class IIS::CString const &)
?push_front@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXABVCString@IIS@@@Z
; public: class std::reverse_bidirectional_iterator<class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator,class IIS::CString,class IIS::CString &,class IIS::CString *,int>  __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::rbegin(void)
?rbegin@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAE?AV?$reverse_bidirectional_iterator@Viterator@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@VCString@IIS@@AAV45@PAV45@H@2@XZ
; public: class std::reverse_bidirectional_iterator<class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::const_iterator,class IIS::CString,class IIS::CString const &,class IIS::CString const *,int>  __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::rbegin(void)const 
?rbegin@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QBE?AV?$reverse_bidirectional_iterator@Vconst_iterator@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@VCString@IIS@@ABV45@PBV45@H@2@XZ
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::remove(class IIS::CString const &)
?remove@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXABVCString@IIS@@@Z
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::remove_if(class std::binder2nd<struct std::not_equal_to<class IIS::CString> >)
?remove_if@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXV?$binder2nd@U?$not_equal_to@VCString@IIS@@@std@@@2@@Z
; public: class std::reverse_bidirectional_iterator<class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator,class IIS::CString,class IIS::CString &,class IIS::CString *,int>  __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::rend(void)
?rend@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAE?AV?$reverse_bidirectional_iterator@Viterator@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@VCString@IIS@@AAV45@PAV45@H@2@XZ
; public: class std::reverse_bidirectional_iterator<class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::const_iterator,class IIS::CString,class IIS::CString const &,class IIS::CString const *,int>  __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::rend(void)const 
?rend@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QBE?AV?$reverse_bidirectional_iterator@Vconst_iterator@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@VCString@IIS@@ABV45@PBV45@H@2@XZ
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::resize(unsigned int,class IIS::CString)
?resize@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXIVCString@IIS@@@Z
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::reverse(void)
?reverse@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXXZ
; public: unsigned int __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::size(void)const 
?size@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QBEIXZ
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::sort(struct std::greater<class IIS::CString>)
?sort@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXU?$greater@VCString@IIS@@@2@@Z
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::sort(void)
?sort@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXXZ
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::splice(class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator,class std::list<class IIS::CString,class std::allocator<class IIS::CString> > &,class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator,class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator)
?splice@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXViterator@12@AAV12@00@Z
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::splice(class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator,class std::list<class IIS::CString,class std::allocator<class IIS::CString> > &,class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator)
?splice@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXViterator@12@AAV12@0@Z
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::splice(class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator,class std::list<class IIS::CString,class std::allocator<class IIS::CString> > &)
?splice@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXViterator@12@AAV12@@Z
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::swap(class std::list<class IIS::CString,class std::allocator<class IIS::CString> > &)
?swap@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXAAV12@@Z
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::unique(struct std::not_equal_to<class IIS::CString>)
?unique@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXU?$not_equal_to@VCString@IIS@@@2@@Z
; public: void __thiscall std::list<class IIS::CString,class std::allocator<class IIS::CString> >::unique(void)
?unique@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QAEXXZ
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer
