; 
; Exports of file CertObj.DLL
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY CertObj.DLL
EXPORTS
; public: __cdecl 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 & __ptr64) __ptr64
??0?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAA@AEBV01@@Z
; public: __cdecl 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 & __ptr64) __ptr64
??0?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAA@AEBV?$allocator@VCString@IIS@@@1@@Z
; public: __cdecl 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 * __ptr64,class IIS::CString const * __ptr64,class list<class IIS::CString,class std::allocator<class IIS::CString> >::allocator<class IIS::CString> const & __ptr64) __ptr64
??0?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAA@PEBVCString@IIS@@0AEBV?$allocator@VCString@IIS@@@1@@Z
; public: __cdecl 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 & __ptr64) __ptr64
??0?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAA@Vconst_iterator@01@0AEBV?$allocator@VCString@IIS@@@1@@Z
; public: __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::list<class IIS::CString,class std::allocator<class IIS::CString> >(unsigned __int64,class IIS::CString const & __ptr64,class list<class IIS::CString,class std::allocator<class IIS::CString> >::allocator<class IIS::CString> const & __ptr64) __ptr64
??0?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAA@_KAEBVCString@IIS@@AEBV?$allocator@VCString@IIS@@@1@@Z
; public: __cdecl CError::CError(class CError const & __ptr64) __ptr64
??0CError@@QEAA@AEBV0@@Z
; public: __cdecl CError::CError(long) __ptr64
??0CError@@QEAA@J@Z
; public: __cdecl CError::CError(unsigned long) __ptr64
??0CError@@QEAA@K@Z
; public: __cdecl CError::CError(void) __ptr64
??0CError@@QEAA@XZ
; public: __cdecl CIISApplication::CIISApplication(class CIISApplication & __ptr64) __ptr64
??0CIISApplication@@QEAA@AEAV0@@Z
; public: __cdecl CIISInterface::CIISInterface(class CIISInterface & __ptr64) __ptr64
??0CIISInterface@@QEAA@AEAV0@@Z
; public: __cdecl CIISSvcControl::CIISSvcControl(class CIISSvcControl & __ptr64) __ptr64
??0CIISSvcControl@@QEAA@AEAV0@@Z
; public: __cdecl CMetaBack::CMetaBack(class CMetaBack & __ptr64) __ptr64
??0CMetaBack@@QEAA@AEAV0@@Z
; public: __cdecl CMetaEnumerator::CMetaEnumerator(class CMetaEnumerator & __ptr64) __ptr64
??0CMetaEnumerator@@QEAA@AEAV0@@Z
; public: __cdecl CMetaInterface::CMetaInterface(class CMetaInterface & __ptr64) __ptr64
??0CMetaInterface@@QEAA@AEAV0@@Z
; public: __cdecl CMetaKey::CMetaKey(class CMetaKey & __ptr64) __ptr64
??0CMetaKey@@QEAA@AEAV0@@Z
; public: __cdecl CMetabasePath::CMetabasePath(class CMetabasePath const & __ptr64) __ptr64
??0CMetabasePath@@QEAA@AEBV0@@Z
; public: __cdecl CStringListEx::CStringListEx(class CStringListEx const & __ptr64) __ptr64
??0CStringListEx@@QEAA@AEBV0@@Z
; public: __cdecl CWamInterface::CWamInterface(class CWamInterface & __ptr64) __ptr64
??0CWamInterface@@QEAA@AEAV0@@Z
; public: __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::~list<class IIS::CString,class std::allocator<class IIS::CString> >(void) __ptr64
??1?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAA@XZ
; public: __cdecl CBlob::~CBlob(void) __ptr64
??1CBlob@@QEAA@XZ
; public: __cdecl CComAuthInfo::~CComAuthInfo(void) __ptr64
??1CComAuthInfo@@QEAA@XZ
; public: virtual __cdecl CIISApplication::~CIISApplication(void) __ptr64
??1CIISApplication@@UEAA@XZ
; public: __cdecl CIISInterface::~CIISInterface(void) __ptr64
??1CIISInterface@@QEAA@XZ
; public: virtual __cdecl CMetaBack::~CMetaBack(void) __ptr64
??1CMetaBack@@UEAA@XZ
; public: virtual __cdecl CMetaEnumerator::~CMetaEnumerator(void) __ptr64
??1CMetaEnumerator@@UEAA@XZ
; public: __cdecl CMetabasePath::~CMetabasePath(void) __ptr64
??1CMetabasePath@@QEAA@XZ
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> > & __ptr64 __cdecl 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 & __ptr64) __ptr64
??4?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAAEAV01@AEBV01@@Z
; public: class CError const & __ptr64 __cdecl CError::operator=(class CError const & __ptr64) __ptr64
??4CError@@QEAAAEBV0@AEBV0@@Z
; public: class CError const & __ptr64 __cdecl CError::operator=(long) __ptr64
??4CError@@QEAAAEBV0@J@Z
; public: class CIISApplication & __ptr64 __cdecl CIISApplication::operator=(class CIISApplication & __ptr64) __ptr64
??4CIISApplication@@QEAAAEAV0@AEAV0@@Z
; public: class CIISInterface & __ptr64 __cdecl CIISInterface::operator=(class CIISInterface & __ptr64) __ptr64
??4CIISInterface@@QEAAAEAV0@AEAV0@@Z
; public: class CIISSvcControl & __ptr64 __cdecl CIISSvcControl::operator=(class CIISSvcControl & __ptr64) __ptr64
??4CIISSvcControl@@QEAAAEAV0@AEAV0@@Z
; public: class CMetaBack & __ptr64 __cdecl CMetaBack::operator=(class CMetaBack & __ptr64) __ptr64
??4CMetaBack@@QEAAAEAV0@AEAV0@@Z
; public: class CMetaEnumerator & __ptr64 __cdecl CMetaEnumerator::operator=(class CMetaEnumerator & __ptr64) __ptr64
??4CMetaEnumerator@@QEAAAEAV0@AEAV0@@Z
; public: class CMetaInterface & __ptr64 __cdecl CMetaInterface::operator=(class CMetaInterface & __ptr64) __ptr64
??4CMetaInterface@@QEAAAEAV0@AEAV0@@Z
; public: class CMetaKey & __ptr64 __cdecl CMetaKey::operator=(class CMetaKey & __ptr64) __ptr64
??4CMetaKey@@QEAAAEAV0@AEAV0@@Z
; public: class CMetabasePath & __ptr64 __cdecl CMetabasePath::operator=(class CMetabasePath const & __ptr64) __ptr64
??4CMetabasePath@@QEAAAEAV0@AEBV0@@Z
; public: class CStringListEx & __ptr64 __cdecl CStringListEx::operator=(class CStringListEx const & __ptr64) __ptr64
??4CStringListEx@@QEAAAEAV0@AEBV0@@Z
; public: class CWamInterface & __ptr64 __cdecl CWamInterface::operator=(class CWamInterface & __ptr64) __ptr64
??4CWamInterface@@QEAAAEAV0@AEAV0@@Z
; public: int const  __cdecl CError::operator==(class CError & __ptr64) __ptr64
??8CError@@QEAA?BHAEAV0@@Z
; public: int const  __cdecl CError::operator==(long) __ptr64
??8CError@@QEAA?BHJ@Z
; public: int __cdecl CBlob::operator!=(class CBlob const & __ptr64)const  __ptr64
??9CBlob@@QEBAHAEBV0@@Z
; public: int const  __cdecl CError::operator!=(class CError & __ptr64) __ptr64
??9CError@@QEAA?BHAEAV0@@Z
; public: int const  __cdecl CError::operator!=(long) __ptr64
??9CError@@QEAA?BHJ@Z
; public: bool __cdecl CStrPassword::operator!=(class CStrPassword & __ptr64) __ptr64
??9CStrPassword@@QEAA_NAEAV0@@Z
; public: __cdecl CComAuthInfo::operator unsigned short * __ptr64(void) __ptr64
??BCComAuthInfo@@QEAAPEAGXZ
; public: __cdecl CComAuthInfo::operator class CComAuthInfo * __ptr64(void) __ptr64
??BCComAuthInfo@@QEAAPEAV0@XZ
; public: __cdecl CError::operator unsigned short const * __ptr64(void) __ptr64
??BCError@@QEAAPEBGXZ
; public: __cdecl CError::operator int const (void)const  __ptr64
??BCError@@QEBA?BHXZ
; public: __cdecl CError::operator long const (void)const  __ptr64
??BCError@@QEBA?BJXZ
; public: __cdecl CError::operator unsigned long const (void)const  __ptr64
??BCError@@QEBA?BKXZ
; public: __cdecl CIISInterface::operator int(void)const  __ptr64
??BCIISInterface@@QEBAHXZ
; public: __cdecl CIISInterface::operator long(void)const  __ptr64
??BCIISInterface@@QEBAJXZ
; public: __cdecl CMetaKey::operator int(void)const  __ptr64
??BCMetaKey@@QEBAHXZ
; public: __cdecl CMetaKey::operator unsigned long(void)const  __ptr64
??BCMetaKey@@QEBAKXZ
; public: __cdecl CMetaKey::operator unsigned short const * __ptr64(void)const  __ptr64
??BCMetaKey@@QEBAPEBGXZ
; public: __cdecl CMetabasePath::operator unsigned short const * __ptr64(void)const  __ptr64
??BCMetabasePath@@QEBAPEBGXZ
; 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 __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::`default constructor closure'(void) __ptr64
??_F?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXXZ
; public: void __cdecl CComAuthInfo::`default constructor closure'(void) __ptr64
??_FCComAuthInfo@@QEAAXXZ
; public: void __cdecl CMetabasePath::`default constructor closure'(void) __ptr64
??_FCMetabasePath@@QEAAXXZ
; protected: long __cdecl CMetaInterface::AddKey(unsigned long,unsigned short const * __ptr64) __ptr64
?AddKey@CMetaInterface@@IEAAJKPEBG@Z
; public: long __cdecl CMetaKey::AddKey(unsigned short const * __ptr64) __ptr64
?AddKey@CMetaKey@@QEAAJPEBG@Z
; protected: long __cdecl CWamInterface::AppDelete(unsigned short const * __ptr64,int) __ptr64
?AppDelete@CWamInterface@@IEAAJPEBGH@Z
; protected: long __cdecl CWamInterface::AppDeleteRecoverable(unsigned short const * __ptr64,int) __ptr64
?AppDeleteRecoverable@CWamInterface@@IEAAJPEBGH@Z
; protected: long __cdecl CWamInterface::AppGetStatus(unsigned short const * __ptr64,unsigned long * __ptr64) __ptr64
?AppGetStatus@CWamInterface@@IEAAJPEBGPEAK@Z
; protected: long __cdecl CWamInterface::AppRecover(unsigned short const * __ptr64,int) __ptr64
?AppRecover@CWamInterface@@IEAAJPEBGH@Z
; protected: long __cdecl CWamInterface::AppUnLoad(unsigned short const * __ptr64,int) __ptr64
?AppUnLoad@CWamInterface@@IEAAJPEBGH@Z
; protected: virtual long __cdecl CIISSvcControl::ApplyProxyBlanket(void) __ptr64
?ApplyProxyBlanket@CIISSvcControl@@MEAAJXZ
; protected: virtual long __cdecl CMetaBack::ApplyProxyBlanket(void) __ptr64
?ApplyProxyBlanket@CMetaBack@@MEAAJXZ
; protected: virtual long __cdecl CMetaInterface::ApplyProxyBlanket(void) __ptr64
?ApplyProxyBlanket@CMetaInterface@@MEAAJXZ
; protected: virtual long __cdecl CWamInterface::ApplyProxyBlanket(void) __ptr64
?ApplyProxyBlanket@CWamInterface@@MEAAJXZ
; public: long __cdecl CMetaBack::Backup(unsigned short const * __ptr64) __ptr64
?Backup@CMetaBack@@QEAAJPEBG@Z
; protected: long __cdecl CMetaInterface::Backup(unsigned short const * __ptr64,unsigned long,unsigned long) __ptr64
?Backup@CMetaInterface@@IEAAJPEBGKK@Z
; public: virtual long __cdecl CIISInterface::ChangeProxyBlanket(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?ChangeProxyBlanket@CIISInterface@@UEAAJPEBG0@Z
; protected: long __cdecl CMetaInterface::CloseKey(unsigned long) __ptr64
?CloseKey@CMetaInterface@@IEAAJK@Z
; protected: long __cdecl CMetaInterface::CopyData(unsigned long,unsigned short const * __ptr64,unsigned long,unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long,int) __ptr64
?CopyData@CMetaInterface@@IEAAJKPEBGK0KKKH@Z
; protected: long __cdecl CMetaInterface::CopyKey(unsigned long,unsigned short const * __ptr64,unsigned long,unsigned short const * __ptr64,int,int) __ptr64
?CopyKey@CMetaInterface@@IEAAJKPEBGK0HH@Z
; public: long __cdecl CIISApplication::Delete(int) __ptr64
?Delete@CIISApplication@@QEAAJH@Z
; public: long __cdecl CMetaBack::Delete(unsigned short const * __ptr64,unsigned long) __ptr64
?Delete@CMetaBack@@QEAAJPEBGK@Z
; protected: long __cdecl CMetaInterface::DeleteAllData(unsigned long,unsigned short const * __ptr64,unsigned long,unsigned long) __ptr64
?DeleteAllData@CMetaInterface@@IEAAJKPEBGKK@Z
; protected: long __cdecl CMetaInterface::DeleteBackup(unsigned short const * __ptr64,unsigned long) __ptr64
?DeleteBackup@CMetaInterface@@IEAAJPEBGK@Z
; protected: long __cdecl CMetaInterface::DeleteChildKeys(unsigned long,unsigned short const * __ptr64) __ptr64
?DeleteChildKeys@CMetaInterface@@IEAAJKPEBG@Z
; protected: long __cdecl CMetaInterface::DeleteData(unsigned long,unsigned short const * __ptr64,unsigned long,unsigned long) __ptr64
?DeleteData@CMetaInterface@@IEAAJKPEBGKK@Z
; protected: long __cdecl CMetaInterface::DeleteKey(unsigned long,unsigned short const * __ptr64) __ptr64
?DeleteKey@CMetaInterface@@IEAAJKPEBG@Z
; public: long __cdecl CMetaKey::DeleteKey(unsigned short const * __ptr64) __ptr64
?DeleteKey@CMetaKey@@QEAAJPEBG@Z
; public: long __cdecl CIISApplication::DeleteRecoverable(int) __ptr64
?DeleteRecoverable@CIISApplication@@QEAAJH@Z
; protected: long __cdecl CMetaInterface::EnumBackups(unsigned short * __ptr64,unsigned long * __ptr64,struct _FILETIME * __ptr64,unsigned long) __ptr64
?EnumBackups@CMetaInterface@@IEAAJPEAGPEAKPEAU_FILETIME@@K@Z
; protected: long __cdecl CMetaInterface::EnumData(unsigned long,unsigned short const * __ptr64,struct _METADATA_RECORD * __ptr64,unsigned long,unsigned long * __ptr64) __ptr64
?EnumData@CMetaInterface@@IEAAJKPEBGPEAU_METADATA_RECORD@@KPEAK@Z
; protected: long __cdecl CMetaInterface::EnumKeys(unsigned long,unsigned short const * __ptr64,unsigned short * __ptr64,unsigned long) __ptr64
?EnumKeys@CMetaInterface@@IEAAJKPEBGPEAGK@Z
; public: int __cdecl CError::Failed(void)const  __ptr64
?Failed@CError@@QEBAHXZ
; public: static int __cdecl CError::Failed(long)
?Failed@CError@@SAHJ@Z
; protected: long __cdecl CMetaInterface::GetAllData(unsigned long,unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long * __ptr64,unsigned long * __ptr64,unsigned long,unsigned char * __ptr64,unsigned long * __ptr64) __ptr64
?GetAllData@CMetaInterface@@IEAAJKPEBGKKKPEAK1KPEAE1@Z
; public: unsigned long __cdecl CMetaKey::GetBase(void)const  __ptr64
?GetBase@CMetaKey@@QEBAKXZ
; public: unsigned char * __ptr64 __cdecl CBlob::GetData(void) __ptr64
?GetData@CBlob@@QEAAPEAEXZ
; protected: long __cdecl CMetaInterface::GetData(unsigned long,unsigned short const * __ptr64,struct _METADATA_RECORD * __ptr64,unsigned long * __ptr64) __ptr64
?GetData@CMetaInterface@@IEAAJKPEBGPEAU_METADATA_RECORD@@PEAK@Z
; protected: long __cdecl CMetaInterface::GetDataPaths(unsigned long,unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long,unsigned short * __ptr64,unsigned long * __ptr64) __ptr64
?GetDataPaths@CMetaInterface@@IEAAJKPEBGKKKPEAGPEAK@Z
; public: unsigned long __cdecl CMetaKey::GetHandle(void)const  __ptr64
?GetHandle@CMetaKey@@QEBAKXZ
; public: unsigned long __cdecl CMetaEnumerator::GetIndex(void) __ptr64
?GetIndex@CMetaEnumerator@@QEAAKXZ
; public: static unsigned short const * __ptr64 __cdecl CMetabasePath::GetInstancePath(unsigned short const * __ptr64,class IIS::CString & __ptr64,class IIS::CString * __ptr64)
?GetInstancePath@CMetabasePath@@SAPEBGPEBGAEAVCString@IIS@@PEAV23@@Z
; public: struct IMSAdminBaseW * __ptr64 __cdecl CMetaInterface::GetInterface(void) __ptr64
?GetInterface@CMetaInterface@@QEAAPEAUIMSAdminBaseW@@XZ
; protected: long __cdecl CMetaInterface::GetLastChangeTime(unsigned long,unsigned short const * __ptr64,struct _FILETIME * __ptr64,int) __ptr64
?GetLastChangeTime@CMetaInterface@@IEAAJKPEBGPEAU_FILETIME@@H@Z
; public: void __cdecl CError::GetLastWinError(void) __ptr64
?GetLastWinError@CError@@QEAAXXZ
; public: static unsigned short const * __ptr64 __cdecl CMetabasePath::GetMachinePath(unsigned short const * __ptr64,class IIS::CString & __ptr64,class IIS::CString * __ptr64)
?GetMachinePath@CMetabasePath@@SAPEBGPEBGAEAVCString@IIS@@PEAV23@@Z
; public: static unsigned short const * __ptr64 __cdecl CMetabasePath::GetRootPath(unsigned short const * __ptr64,class IIS::CString & __ptr64,class IIS::CString * __ptr64)
?GetRootPath@CMetabasePath@@SAPEBGPEBGAEAVCString@IIS@@PEAV23@@Z
; public: static unsigned short const * __ptr64 __cdecl CMetabasePath::GetServicePath(unsigned short const * __ptr64,class IIS::CString & __ptr64,class IIS::CString * __ptr64)
?GetServicePath@CMetabasePath@@SAPEBGPEBGAEAVCString@IIS@@PEAV23@@Z
; public: unsigned long __cdecl CBlob::GetSize(void)const  __ptr64
?GetSize@CBlob@@QEBAKXZ
; public: long __cdecl CError::HResult(void)const  __ptr64
?HResult@CError@@QEBAJXZ
; public: static long __cdecl CError::HResult(long)
?HResult@CError@@SAJJ@Z
; protected: int __cdecl CIISSvcControl::HasInterface(void)const  __ptr64
?HasInterface@CIISSvcControl@@IEBAHXZ
; protected: int __cdecl CMetaInterface::HasInterface(void)const  __ptr64
?HasInterface@CMetaInterface@@IEBAHXZ
; protected: int __cdecl CWamInterface::HasInterface(void)const  __ptr64
?HasInterface@CWamInterface@@IEBAHXZ
; public: int __cdecl CBlob::IsEmpty(void)const  __ptr64
?IsEmpty@CBlob@@QEBAHXZ
; public: int __cdecl CIISApplication::IsEnabledApplication(void)const  __ptr64
?IsEnabledApplication@CIISApplication@@QEBAHXZ
; public: int __cdecl CMetaKey::IsHomeDirectoryPath(void)const  __ptr64
?IsHomeDirectoryPath@CMetaKey@@QEBAHXZ
; public: int __cdecl CMetabasePath::IsHomeDirectoryPath(void)const  __ptr64
?IsHomeDirectoryPath@CMetabasePath@@QEBAHXZ
; public: int __cdecl CIISApplication::IsInproc(void)const  __ptr64
?IsInproc@CIISApplication@@QEBAHXZ
; public: int __cdecl CComAuthInfo::IsLocal(void)const  __ptr64
?IsLocal@CComAuthInfo@@QEBAHXZ
; public: int __cdecl CIISInterface::IsLocal(void)const  __ptr64
?IsLocal@CIISInterface@@QEBAHXZ
; public: int __cdecl CMetaKey::IsOpen(void)const  __ptr64
?IsOpen@CMetaKey@@QEBAHXZ
; public: int __cdecl CIISApplication::IsOutOfProc(void)const  __ptr64
?IsOutOfProc@CIISApplication@@QEBAHXZ
; public: int __cdecl CIISApplication::IsPooledProc(void)const  __ptr64
?IsPooledProc@CIISApplication@@QEBAHXZ
; public: long __cdecl CIISSvcControl::Kill(void) __ptr64
?Kill@CIISSvcControl@@QEAAJXZ
; public: long __cdecl CMetaBack::Next(unsigned long * __ptr64,unsigned short * __ptr64,struct _FILETIME * __ptr64) __ptr64
?Next@CMetaBack@@QEAAJPEAKPEAGPEAU_FILETIME@@@Z
; protected: long __cdecl CMetaInterface::OpenKey(unsigned long,unsigned short const * __ptr64,unsigned long,unsigned long * __ptr64) __ptr64
?OpenKey@CMetaInterface@@IEAAJKPEBGKPEAK@Z
; public: void __cdecl CMetaEnumerator::Pop(void) __ptr64
?Pop@CMetaEnumerator@@QEAAXXZ
; public: void __cdecl CMetaEnumerator::Push(void) __ptr64
?Push@CMetaEnumerator@@QEAAXXZ
; public: unsigned long __cdecl CIISApplication::QueryAppState(void)const  __ptr64
?QueryAppState@CIISApplication@@QEBAKXZ
; public: class CComAuthInfo * __ptr64 __cdecl CIISInterface::QueryAuthInfo(void) __ptr64
?QueryAuthInfo@CIISInterface@@QEAAPEAVCComAuthInfo@@XZ
; public: unsigned long __cdecl CMetaKey::QueryFlags(void)const  __ptr64
?QueryFlags@CMetaKey@@QEBAKXZ
; public: unsigned short const * __ptr64 __cdecl CMetaKey::QueryMetaPath(void)const  __ptr64
?QueryMetaPath@CMetaKey@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl CMetabasePath::QueryMetaPath(void)const  __ptr64
?QueryMetaPath@CMetabasePath@@QEBAPEBGXZ
; public: unsigned short * __ptr64 __cdecl CComAuthInfo::QueryPassword(void)const  __ptr64
?QueryPassword@CComAuthInfo@@QEBAPEAGXZ
; public: virtual long __cdecl CIISInterface::QueryResult(void)const  __ptr64
?QueryResult@CIISInterface@@UEBAJXZ
; public: unsigned short * __ptr64 __cdecl CComAuthInfo::QueryServerName(void)const  __ptr64
?QueryServerName@CComAuthInfo@@QEBAPEAGXZ
; public: unsigned short const * __ptr64 __cdecl CIISInterface::QueryServerName(void)const  __ptr64
?QueryServerName@CIISInterface@@QEBAPEBGXZ
; public: unsigned short * __ptr64 __cdecl CComAuthInfo::QueryUserName(void)const  __ptr64
?QueryUserName@CComAuthInfo@@QEBAPEAGXZ
; public: long __cdecl CMetaKey::QueryValue(unsigned long,int & __ptr64,int * __ptr64,unsigned short const * __ptr64,unsigned long * __ptr64) __ptr64
?QueryValue@CMetaKey@@QEAAJKAEAHPEAHPEBGPEAK@Z
; public: unsigned short const * __ptr64 __cdecl CIISApplication::QueryWamPath(void)const  __ptr64
?QueryWamPath@CIISApplication@@QEBAPEBGXZ
; public: long __cdecl CMetaKey::ReOpen(unsigned long) __ptr64
?ReOpen@CMetaKey@@QEAAJK@Z
; public: long __cdecl CMetaKey::ReOpen(void) __ptr64
?ReOpen@CMetaKey@@QEAAJXZ
; public: long __cdecl CIISSvcControl::Reboot(unsigned long,int) __ptr64
?Reboot@CIISSvcControl@@QEAAJKH@Z
; public: long __cdecl CIISApplication::Recover(int) __ptr64
?Recover@CIISApplication@@QEAAJH@Z
; public: void __cdecl CError::RemoveOverride(long) __ptr64
?RemoveOverride@CError@@QEAAXJ@Z
; protected: long __cdecl CMetaInterface::RenameKey(unsigned long,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?RenameKey@CMetaInterface@@IEAAJKPEBG0@Z
; public: long __cdecl CMetaKey::RenameKey(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?RenameKey@CMetaKey@@QEAAJPEBG0@Z
; public: void __cdecl CError::Reset(void) __ptr64
?Reset@CError@@QEAAXXZ
; public: void __cdecl CMetaBack::Reset(void) __ptr64
?Reset@CMetaBack@@QEAAXXZ
; public: void __cdecl CMetaEnumerator::Reset(unsigned long) __ptr64
?Reset@CMetaEnumerator@@QEAAXK@Z
; protected: long __cdecl CMetaInterface::Restore(unsigned short const * __ptr64,unsigned long,unsigned long) __ptr64
?Restore@CMetaInterface@@IEAAJPEBGKK@Z
; public: long __cdecl CMetaInterface::SaveData(void) __ptr64
?SaveData@CMetaInterface@@QEAAJXZ
; protected: long __cdecl CMetaInterface::SetData(unsigned long,unsigned short const * __ptr64,struct _METADATA_RECORD * __ptr64) __ptr64
?SetData@CMetaInterface@@IEAAJKPEBGPEAU_METADATA_RECORD@@@Z
; protected: long __cdecl CMetaInterface::SetLastChangeTime(unsigned long,unsigned short const * __ptr64,struct _FILETIME * __ptr64,int) __ptr64
?SetLastChangeTime@CMetaInterface@@IEAAJKPEBGPEAU_FILETIME@@H@Z
; public: void __cdecl CError::SetLastWinError(void)const  __ptr64
?SetLastWinError@CError@@QEBAXXZ
; public: long __cdecl CMetaKey::SetValue(unsigned long,class IIS::CString & __ptr64,int * __ptr64,unsigned short const * __ptr64) __ptr64
?SetValue@CMetaKey@@QEAAJKAEAVCString@IIS@@PEAHPEBG@Z
; public: long __cdecl CMetaKey::SetValue(unsigned long,int,int * __ptr64,unsigned short const * __ptr64) __ptr64
?SetValue@CMetaKey@@QEAAJKHPEAHPEBG@Z
; public: long __cdecl CMetaKey::SetValue(unsigned long,unsigned long,int * __ptr64,unsigned short const * __ptr64) __ptr64
?SetValue@CMetaKey@@QEAAJKKPEAHPEBG@Z
; public: long __cdecl CIISSvcControl::Start(unsigned long) __ptr64
?Start@CIISSvcControl@@QEAAJK@Z
; public: long __cdecl CIISSvcControl::Status(unsigned long,unsigned char * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64) __ptr64
?Status@CIISSvcControl@@QEAAJKPEAEPEAK1@Z
; public: long __cdecl CIISSvcControl::Stop(unsigned long,int) __ptr64
?Stop@CIISSvcControl@@QEAAJKH@Z
; public: void __cdecl CComAuthInfo::StorePassword(unsigned short const * __ptr64) __ptr64
?StorePassword@CComAuthInfo@@QEAAXPEBG@Z
; public: int __cdecl CError::Succeeded(void)const  __ptr64
?Succeeded@CError@@QEBAHXZ
; public: static int __cdecl CError::Succeeded(long)
?Succeeded@CError@@SAHJ@Z
; public: virtual int __cdecl CIISInterface::Succeeded(void)const  __ptr64
?Succeeded@CIISInterface@@UEBAHXZ
; public: int __cdecl CWamInterface::SupportsPooledProc(void)const  __ptr64
?SupportsPooledProc@CWamInterface@@QEBAHXZ
; public: long __cdecl CIISApplication::Unload(int) __ptr64
?Unload@CIISApplication@@QEAAJH@Z
; public: static void __cdecl CError::UnregisterFacility(unsigned long)
?UnregisterFacility@CError@@SAXK@Z
; public: int __cdecl CComAuthInfo::UsesImpersonation(void)const  __ptr64
?UsesImpersonation@CComAuthInfo@@QEBAHXZ
; public: unsigned long __cdecl CError::Win32Error(void)const  __ptr64
?Win32Error@CError@@QEBAKXZ
; public: static unsigned long __cdecl CError::Win32Error(long)
?Win32Error@CError@@SAKJ@Z
; protected: struct std::list<class IIS::CString,class std::allocator<class IIS::CString> >::_Node * __ptr64 __cdecl 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 * __ptr64,struct std::list<class IIS::CString,class std::allocator<class IIS::CString> >::_Node * __ptr64) __ptr64
?_Buynode@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@IEAAPEAU_Node@12@PEAU312@0@Z
; protected: void __cdecl 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 * __ptr64) __ptr64
?_Freenode@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@IEAAXPEAU_Node@12@@Z
; protected: void __cdecl 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> > & __ptr64,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) __ptr64
?_Splice@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@IEAAXViterator@12@AEAV12@00@Z
; protected: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::_Xran(void)const  __ptr64
?_Xran@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@IEBAXXZ
; public: void __cdecl 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) __ptr64
?assign@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXVconst_iterator@12@0@Z
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::assign(unsigned __int64,class IIS::CString const & __ptr64) __ptr64
?assign@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAX_KAEBVCString@IIS@@@Z
; public: class IIS::CString & __ptr64 __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::back(void) __ptr64
?back@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAAEAVCString@IIS@@XZ
; public: class IIS::CString const & __ptr64 __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::back(void)const  __ptr64
?back@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEBAAEBVCString@IIS@@XZ
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator  __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::begin(void) __ptr64
?begin@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAA?AViterator@12@XZ
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::const_iterator  __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::begin(void)const  __ptr64
?begin@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEBA?AVconst_iterator@12@XZ
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::clear(void) __ptr64
?clear@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXXZ
; public: bool __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::empty(void)const  __ptr64
?empty@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEBA_NXZ
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator  __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::end(void) __ptr64
?end@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAA?AViterator@12@XZ
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::const_iterator  __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::end(void)const  __ptr64
?end@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEBA?AVconst_iterator@12@XZ
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator  __cdecl 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) __ptr64
?erase@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAA?AViterator@12@V312@0@Z
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator  __cdecl 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) __ptr64
?erase@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAA?AViterator@12@V312@@Z
; public: class IIS::CString & __ptr64 __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::front(void) __ptr64
?front@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAAEAVCString@IIS@@XZ
; public: class IIS::CString const & __ptr64 __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::front(void)const  __ptr64
?front@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEBAAEBVCString@IIS@@XZ
; public: class std::allocator<class IIS::CString>  __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::get_allocator(void)const  __ptr64
?get_allocator@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEBA?AV?$allocator@VCString@IIS@@@2@XZ
; public: class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator  __cdecl 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 & __ptr64) __ptr64
?insert@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAA?AViterator@12@V312@AEBVCString@IIS@@@Z
; public: void __cdecl 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 * __ptr64,class IIS::CString const * __ptr64) __ptr64
?insert@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXViterator@12@PEBVCString@IIS@@1@Z
; public: void __cdecl 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) __ptr64
?insert@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXViterator@12@Vconst_iterator@12@1@Z
; public: void __cdecl 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 __int64,class IIS::CString const & __ptr64) __ptr64
?insert@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXViterator@12@_KAEBVCString@IIS@@@Z
; public: unsigned __int64 __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::max_size(void)const  __ptr64
?max_size@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEBA_KXZ
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::merge(class std::list<class IIS::CString,class std::allocator<class IIS::CString> > & __ptr64) __ptr64
?merge@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXAEAV12@@Z
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::merge(class std::list<class IIS::CString,class std::allocator<class IIS::CString> > & __ptr64,struct std::greater<class IIS::CString>) __ptr64
?merge@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXAEAV12@U?$greater@VCString@IIS@@@2@@Z
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::pop_back(void) __ptr64
?pop_back@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXXZ
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::pop_front(void) __ptr64
?pop_front@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXXZ
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::push_back(class IIS::CString const & __ptr64) __ptr64
?push_back@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXAEBVCString@IIS@@@Z
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::push_front(class IIS::CString const & __ptr64) __ptr64
?push_front@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXAEBVCString@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 & __ptr64,class IIS::CString * __ptr64,__int64>  __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::rbegin(void) __ptr64
?rbegin@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAA?AV?$reverse_bidirectional_iterator@Viterator@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@VCString@IIS@@AEAV45@PEAV45@_J@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 & __ptr64,class IIS::CString const * __ptr64,__int64>  __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::rbegin(void)const  __ptr64
?rbegin@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEBA?AV?$reverse_bidirectional_iterator@Vconst_iterator@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@VCString@IIS@@AEBV45@PEBV45@_J@2@XZ
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::remove(class IIS::CString const & __ptr64) __ptr64
?remove@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXAEBVCString@IIS@@@Z
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::remove_if(class std::binder2nd<struct std::not_equal_to<class IIS::CString> >) __ptr64
?remove_if@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXV?$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 & __ptr64,class IIS::CString * __ptr64,__int64>  __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::rend(void) __ptr64
?rend@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAA?AV?$reverse_bidirectional_iterator@Viterator@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@VCString@IIS@@AEAV45@PEAV45@_J@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 & __ptr64,class IIS::CString const * __ptr64,__int64>  __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::rend(void)const  __ptr64
?rend@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEBA?AV?$reverse_bidirectional_iterator@Vconst_iterator@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@VCString@IIS@@AEBV45@PEBV45@_J@2@XZ
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::resize(unsigned __int64,class IIS::CString) __ptr64
?resize@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAX_KVCString@IIS@@@Z
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::reverse(void) __ptr64
?reverse@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXXZ
; public: unsigned __int64 __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::size(void)const  __ptr64
?size@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEBA_KXZ
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::sort(struct std::greater<class IIS::CString>) __ptr64
?sort@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXU?$greater@VCString@IIS@@@2@@Z
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::sort(void) __ptr64
?sort@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXXZ
; public: void __cdecl 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> > & __ptr64,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) __ptr64
?splice@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXViterator@12@AEAV12@00@Z
; public: void __cdecl 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> > & __ptr64,class std::list<class IIS::CString,class std::allocator<class IIS::CString> >::iterator) __ptr64
?splice@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXViterator@12@AEAV12@0@Z
; public: void __cdecl 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> > & __ptr64) __ptr64
?splice@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXViterator@12@AEAV12@@Z
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::swap(class std::list<class IIS::CString,class std::allocator<class IIS::CString> > & __ptr64) __ptr64
?swap@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXAEAV12@@Z
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::unique(struct std::not_equal_to<class IIS::CString>) __ptr64
?unique@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXU?$not_equal_to@VCString@IIS@@@2@@Z
; public: void __cdecl std::list<class IIS::CString,class std::allocator<class IIS::CString> >::unique(void) __ptr64
?unique@?$list@VCString@IIS@@V?$allocator@VCString@IIS@@@std@@@std@@QEAAXXZ
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer
