; 
; Exports of file uihelper.DLL
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY uihelper.DLL
EXPORTS
; public: __cdecl ATL::CWindowImpl<class CFileChooser,class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::CWindowImpl<class CFileChooser,class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >(class CWindowImpl<class CFileChooser,class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::CWindowImpl<class CFileChooser,class ATL::CWindow,class ATL::CWinTraits<1442840576,0> > const & __ptr64) __ptr64
??0?$CWindowImpl@VCFileChooser@@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@3@@ATL@@QEAA@AEBV01@@Z
; public: __cdecl ATL::CWindowImpl<class CFileChooser,class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::CWindowImpl<class CFileChooser,class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >(void) __ptr64
??0?$CWindowImpl@VCFileChooser@@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@3@@ATL@@QEAA@XZ
; public: __cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >(class CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> > const & __ptr64) __ptr64
??0?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@QEAA@AEBV01@@Z
; public: __cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >(void) __ptr64
??0?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@QEAA@XZ
; public: __cdecl ATL::CWindowImplRoot<class ATL::CWindow>::CWindowImplRoot<class ATL::CWindow>(class CWindowImplRoot<class ATL::CWindow>::CWindowImplRoot<class ATL::CWindow> const & __ptr64) __ptr64
??0?$CWindowImplRoot@VCWindow@ATL@@@ATL@@QEAA@AEBV01@@Z
; public: __cdecl ATL::CWindowImplRoot<class ATL::CWindow>::CWindowImplRoot<class ATL::CWindow>(void) __ptr64
??0?$CWindowImplRoot@VCWindow@ATL@@@ATL@@QEAA@XZ
; 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 CBlob::CBlob(class CBlob const & __ptr64) __ptr64
??0CBlob@@QEAA@AEBV0@@Z
; public: __cdecl CBlob::CBlob(unsigned long,unsigned char * __ptr64,int) __ptr64
??0CBlob@@QEAA@KPEAEH@Z
; public: __cdecl CBlob::CBlob(void) __ptr64
??0CBlob@@QEAA@XZ
; public: __cdecl CComAuthInfo::CComAuthInfo(class CComAuthInfo & __ptr64) __ptr64
??0CComAuthInfo@@QEAA@AEAV0@@Z
; public: __cdecl CComAuthInfo::CComAuthInfo(class CComAuthInfo * __ptr64) __ptr64
??0CComAuthInfo@@QEAA@PEAV0@@Z
; public: __cdecl CComAuthInfo::CComAuthInfo(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0CComAuthInfo@@QEAA@PEBG00@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 CFileChooser::CFileChooser(class CFileChooser const & __ptr64) __ptr64
??0CFileChooser@@QEAA@AEBV0@@Z
; public: __cdecl CFileChooser::CFileChooser(void) __ptr64
??0CFileChooser@@QEAA@XZ
; public: __cdecl CIISApplication::CIISApplication(class CIISApplication & __ptr64) __ptr64
??0CIISApplication@@QEAA@AEAV0@@Z
; public: __cdecl CIISApplication::CIISApplication(class CComAuthInfo * __ptr64,unsigned short const * __ptr64) __ptr64
??0CIISApplication@@QEAA@PEAVCComAuthInfo@@PEBG@Z
; public: __cdecl CIISInterface::CIISInterface(class CIISInterface & __ptr64) __ptr64
??0CIISInterface@@QEAA@AEAV0@@Z
; public: __cdecl CIISInterface::CIISInterface(class CComAuthInfo * __ptr64,long) __ptr64
??0CIISInterface@@QEAA@PEAVCComAuthInfo@@J@Z
; public: __cdecl CIISSvcControl::CIISSvcControl(class CIISSvcControl & __ptr64) __ptr64
??0CIISSvcControl@@QEAA@AEAV0@@Z
; public: __cdecl CIISSvcControl::CIISSvcControl(class CIISSvcControl * __ptr64) __ptr64
??0CIISSvcControl@@QEAA@PEAV0@@Z
; public: __cdecl CIISSvcControl::CIISSvcControl(class CComAuthInfo * __ptr64) __ptr64
??0CIISSvcControl@@QEAA@PEAVCComAuthInfo@@@Z
; public: __cdecl CMetaBack::CMetaBack(class CMetaBack & __ptr64) __ptr64
??0CMetaBack@@QEAA@AEAV0@@Z
; public: __cdecl CMetaBack::CMetaBack(class CComAuthInfo * __ptr64) __ptr64
??0CMetaBack@@QEAA@PEAVCComAuthInfo@@@Z
; public: __cdecl CMetaEnumerator::CMetaEnumerator(class CMetaEnumerator & __ptr64) __ptr64
??0CMetaEnumerator@@QEAA@AEAV0@@Z
; public: __cdecl CMetaEnumerator::CMetaEnumerator(int,class CMetaKey * __ptr64) __ptr64
??0CMetaEnumerator@@QEAA@HPEAVCMetaKey@@@Z
; public: __cdecl CMetaEnumerator::CMetaEnumerator(class CComAuthInfo * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
??0CMetaEnumerator@@QEAA@PEAVCComAuthInfo@@PEBGK@Z
; public: __cdecl CMetaEnumerator::CMetaEnumerator(class CMetaInterface * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
??0CMetaEnumerator@@QEAA@PEAVCMetaInterface@@PEBGK@Z
; protected: __cdecl CMetaInterface::CMetaInterface(class CMetaInterface * __ptr64) __ptr64
??0CMetaInterface@@IEAA@PEAV0@@Z
; protected: __cdecl CMetaInterface::CMetaInterface(class CComAuthInfo * __ptr64) __ptr64
??0CMetaInterface@@IEAA@PEAVCComAuthInfo@@@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 CMetaKey::CMetaKey(int,class CMetaKey * __ptr64) __ptr64
??0CMetaKey@@QEAA@HPEAV0@@Z
; public: __cdecl CMetaKey::CMetaKey(class CComAuthInfo * __ptr64) __ptr64
??0CMetaKey@@QEAA@PEAVCComAuthInfo@@@Z
; public: __cdecl CMetaKey::CMetaKey(class CComAuthInfo * __ptr64,unsigned short const * __ptr64,unsigned long,unsigned long) __ptr64
??0CMetaKey@@QEAA@PEAVCComAuthInfo@@PEBGKK@Z
; public: __cdecl CMetaKey::CMetaKey(class CMetaInterface * __ptr64) __ptr64
??0CMetaKey@@QEAA@PEAVCMetaInterface@@@Z
; public: __cdecl CMetaKey::CMetaKey(class CMetaInterface * __ptr64,unsigned short const * __ptr64,unsigned long,unsigned long) __ptr64
??0CMetaKey@@QEAA@PEAVCMetaInterface@@PEBGKK@Z
; public: __cdecl CMetabasePath::CMetabasePath(class CMetabasePath const & __ptr64) __ptr64
??0CMetabasePath@@QEAA@AEBV0@@Z
; public: __cdecl CMetabasePath::CMetabasePath(int,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0CMetabasePath@@QEAA@HPEBG000@Z
; public: __cdecl CMetabasePath::CMetabasePath(unsigned short const * __ptr64,unsigned long,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0CMetabasePath@@QEAA@PEBGK00@Z
; public: __cdecl CStrPassword::CStrPassword(class CStrPassword & __ptr64) __ptr64
??0CStrPassword@@QEAA@AEAV0@@Z
; public: __cdecl CStrPassword::CStrPassword(unsigned short * __ptr64) __ptr64
??0CStrPassword@@QEAA@PEAG@Z
; public: __cdecl CStrPassword::CStrPassword(unsigned short const * __ptr64) __ptr64
??0CStrPassword@@QEAA@PEBG@Z
; public: __cdecl CStrPassword::CStrPassword(void) __ptr64
??0CStrPassword@@QEAA@XZ
; public: __cdecl IIS::CString::CString(class CString::CString const & __ptr64) __ptr64
??0CString@IIS@@QEAA@AEBV01@@Z
; public: __cdecl IIS::CString::CString(class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > const & __ptr64) __ptr64
??0CString@IIS@@QEAA@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@Z
; public: __cdecl IIS::CString::CString(class ATL::CComBSTR const & __ptr64) __ptr64
??0CString@IIS@@QEAA@AEBVCComBSTR@ATL@@@Z
; public: __cdecl IIS::CString::CString(unsigned short,int) __ptr64
??0CString@IIS@@QEAA@GH@Z
; public: __cdecl IIS::CString::CString(char const * __ptr64) __ptr64
??0CString@IIS@@QEAA@PEBD@Z
; public: __cdecl IIS::CString::CString(unsigned short const * __ptr64) __ptr64
??0CString@IIS@@QEAA@PEBG@Z
; public: __cdecl IIS::CString::CString(void) __ptr64
??0CString@IIS@@QEAA@XZ
; public: __cdecl CStringListEx::CStringListEx(class CStringListEx const & __ptr64) __ptr64
??0CStringListEx@@QEAA@AEBV0@@Z
; public: __cdecl CStringListEx::CStringListEx(void) __ptr64
??0CStringListEx@@QEAA@XZ
; protected: __cdecl CWamInterface::CWamInterface(class CWamInterface * __ptr64) __ptr64
??0CWamInterface@@IEAA@PEAV0@@Z
; protected: __cdecl CWamInterface::CWamInterface(class CComAuthInfo * __ptr64) __ptr64
??0CWamInterface@@IEAA@PEAVCComAuthInfo@@@Z
; public: __cdecl CWamInterface::CWamInterface(class CWamInterface & __ptr64) __ptr64
??0CWamInterface@@QEAA@AEAV0@@Z
; public: __cdecl ATL::CWindowImpl<class CFileChooser,class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::~CWindowImpl<class CFileChooser,class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >(void) __ptr64
??1?$CWindowImpl@VCFileChooser@@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@3@@ATL@@QEAA@XZ
; public: __cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::~CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >(void) __ptr64
??1?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@QEAA@XZ
; public: __cdecl ATL::CWindowImplRoot<class ATL::CWindow>::~CWindowImplRoot<class ATL::CWindow>(void) __ptr64
??1?$CWindowImplRoot@VCWindow@ATL@@@ATL@@QEAA@XZ
; 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: __cdecl CError::~CError(void) __ptr64
??1CError@@QEAA@XZ
; public: __cdecl CFileChooser::~CFileChooser(void) __ptr64
??1CFileChooser@@QEAA@XZ
; public: virtual __cdecl CIISApplication::~CIISApplication(void) __ptr64
??1CIISApplication@@UEAA@XZ
; public: __cdecl CIISInterface::~CIISInterface(void) __ptr64
??1CIISInterface@@QEAA@XZ
; public: virtual __cdecl CIISSvcControl::~CIISSvcControl(void) __ptr64
??1CIISSvcControl@@UEAA@XZ
; public: virtual __cdecl CMetaBack::~CMetaBack(void) __ptr64
??1CMetaBack@@UEAA@XZ
; public: virtual __cdecl CMetaEnumerator::~CMetaEnumerator(void) __ptr64
??1CMetaEnumerator@@UEAA@XZ
; public: virtual __cdecl CMetaInterface::~CMetaInterface(void) __ptr64
??1CMetaInterface@@UEAA@XZ
; public: virtual __cdecl CMetaKey::~CMetaKey(void) __ptr64
??1CMetaKey@@UEAA@XZ
; public: __cdecl CMetabasePath::~CMetabasePath(void) __ptr64
??1CMetabasePath@@QEAA@XZ
; public: __cdecl CStrPassword::~CStrPassword(void) __ptr64
??1CStrPassword@@QEAA@XZ
; public: __cdecl IIS::CString::~CString(void) __ptr64
??1CString@IIS@@QEAA@XZ
; public: __cdecl CStringListEx::~CStringListEx(void) __ptr64
??1CStringListEx@@QEAA@XZ
; public: virtual __cdecl CWamInterface::~CWamInterface(void) __ptr64
??1CWamInterface@@UEAA@XZ
; public: class ATL::CWindowImpl<class CFileChooser,class ATL::CWindow,class ATL::CWinTraits<1442840576,0> > & __ptr64 __cdecl ATL::CWindowImpl<class CFileChooser,class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::operator=(class ATL::CWindowImpl<class CFileChooser,class ATL::CWindow,class ATL::CWinTraits<1442840576,0> > const & __ptr64) __ptr64
??4?$CWindowImpl@VCFileChooser@@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@3@@ATL@@QEAAAEAV01@AEBV01@@Z
; public: class ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> > & __ptr64 __cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::operator=(class ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> > const & __ptr64) __ptr64
??4?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@QEAAAEAV01@AEBV01@@Z
; public: class ATL::CWindowImplRoot<class ATL::CWindow> & __ptr64 __cdecl ATL::CWindowImplRoot<class ATL::CWindow>::operator=(class ATL::CWindowImplRoot<class ATL::CWindow> const & __ptr64) __ptr64
??4?$CWindowImplRoot@VCWindow@ATL@@@ATL@@QEAAAEAV01@AEBV01@@Z
; 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 CBlob & __ptr64 __cdecl CBlob::operator=(class CBlob const & __ptr64) __ptr64
??4CBlob@@QEAAAEAV0@AEBV0@@Z
; public: class CComAuthInfo & __ptr64 __cdecl CComAuthInfo::operator=(class CComAuthInfo & __ptr64) __ptr64
??4CComAuthInfo@@QEAAAEAV0@AEAV0@@Z
; public: class CComAuthInfo & __ptr64 __cdecl CComAuthInfo::operator=(class CComAuthInfo * __ptr64) __ptr64
??4CComAuthInfo@@QEAAAEAV0@PEAV0@@Z
; public: class CComAuthInfo & __ptr64 __cdecl CComAuthInfo::operator=(unsigned short const * __ptr64) __ptr64
??4CComAuthInfo@@QEAAAEAV0@PEBG@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 CFileChooser & __ptr64 __cdecl CFileChooser::operator=(class CFileChooser const & __ptr64) __ptr64
??4CFileChooser@@QEAAAEAV0@AEBV0@@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 CStrPassword const & __ptr64 __cdecl CStrPassword::operator=(class CStrPassword & __ptr64) __ptr64
??4CStrPassword@@QEAAAEBV0@AEAV0@@Z
; public: class CStrPassword const & __ptr64 __cdecl CStrPassword::operator=(unsigned short const * __ptr64) __ptr64
??4CStrPassword@@QEAAAEBV0@PEBG@Z
; public: class IIS::CString const & __ptr64 __cdecl IIS::CString::operator=(class IIS::CString const & __ptr64) __ptr64
??4CString@IIS@@QEAAAEBV01@AEBV01@@Z
; public: class IIS::CString const & __ptr64 __cdecl IIS::CString::operator=(char) __ptr64
??4CString@IIS@@QEAAAEBV01@D@Z
; public: class IIS::CString const & __ptr64 __cdecl IIS::CString::operator=(unsigned short) __ptr64
??4CString@IIS@@QEAAAEBV01@G@Z
; public: class IIS::CString const & __ptr64 __cdecl IIS::CString::operator=(unsigned char const * __ptr64) __ptr64
??4CString@IIS@@QEAAAEBV01@PEBE@Z
; public: class IIS::CString const & __ptr64 __cdecl IIS::CString::operator=(unsigned short const * __ptr64) __ptr64
??4CString@IIS@@QEAAAEBV01@PEBG@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 __cdecl CBlob::operator==(class CBlob const & __ptr64)const  __ptr64
??8CBlob@@QEBAHAEBV0@@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: bool __cdecl CStrPassword::operator==(class CStrPassword & __ptr64) __ptr64
??8CStrPassword@@QEAA_NAEAV0@@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: unsigned short __cdecl IIS::CString::operator[](int)const  __ptr64
??ACString@IIS@@QEBAGH@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
; public: __cdecl CStrPassword::operator class IIS::CString(void) __ptr64
??BCStrPassword@@QEAA?AVCString@IIS@@XZ
; public: __cdecl IIS::CString::operator unsigned short const * __ptr64(void)const  __ptr64
??BCString@IIS@@QEBAPEBGXZ
; public: class IIS::CString const & __ptr64 __cdecl IIS::CString::operator+=(class IIS::CString const & __ptr64) __ptr64
??YCString@IIS@@QEAAAEBV01@AEBV01@@Z
; public: class IIS::CString const & __ptr64 __cdecl IIS::CString::operator+=(char) __ptr64
??YCString@IIS@@QEAAAEBV01@D@Z
; public: class IIS::CString const & __ptr64 __cdecl IIS::CString::operator+=(unsigned short) __ptr64
??YCString@IIS@@QEAAAEBV01@G@Z
; public: class IIS::CString const & __ptr64 __cdecl IIS::CString::operator+=(unsigned short const * __ptr64) __ptr64
??YCString@IIS@@QEAAAEBV01@PEBG@Z
; const  CFileChooser::`vftable'
??_7CFileChooser@@6B@
; 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
; public: void __cdecl CFileChooser::AddExtension(struct HINSTANCE__ * __ptr64,unsigned int,unsigned int) __ptr64
?AddExtension@CFileChooser@@QEAAXPEAUHINSTANCE__@@II@Z
; public: void __cdecl CFileChooser::AddExtension(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?AddExtension@CFileChooser@@QEAAXPEBG0@Z
; 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
; public: unsigned int __cdecl CError::AddOverride(long,unsigned int) __ptr64
?AddOverride@CError@@QEAAIJI@Z
; public: void __cdecl CFileChooser::AddStyle(unsigned long) __ptr64
?AddStyle@CFileChooser@@QEAAXK@Z
; protected: static int __cdecl CError::AllocateStatics(void)
?AllocateStatics@CError@@KAHXZ
; protected: long __cdecl CWamInterface::AppCreate(unsigned short const * __ptr64,unsigned long) __ptr64
?AppCreate@CWamInterface@@IEAAJPEBGK@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: void __cdecl CMetabasePath::AppendPath(unsigned long) __ptr64
?AppendPath@CMetabasePath@@IEAAXK@Z
; protected: void __cdecl CMetabasePath::AppendPath(unsigned short const * __ptr64) __ptr64
?AppendPath@CMetabasePath@@IEAAXPEBG@Z
; public: long __cdecl CComAuthInfo::ApplyProxyBlanket(struct IUnknown * __ptr64) __ptr64
?ApplyProxyBlanket@CComAuthInfo@@QEAAJPEAUIUnknown@@@Z
; public: long __cdecl CComAuthInfo::ApplyProxyBlanket(struct IUnknown * __ptr64,unsigned long) __ptr64
?ApplyProxyBlanket@CComAuthInfo@@QEAAJPEAUIUnknown@@K@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
; protected: static int __cdecl CError::AreStaticsAllocated(void)
?AreStaticsAllocated@CError@@KAHXZ
; 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
; protected: int __cdecl CFileChooser::BrowseForFile(class IIS::CString & __ptr64,class IIS::CString & __ptr64) __ptr64
?BrowseForFile@CFileChooser@@IEAAHAEAVCString@IIS@@0@Z
; protected: int __cdecl CFileChooser::BrowseForFolder(class IIS::CString & __ptr64) __ptr64
?BrowseForFolder@CFileChooser@@IEAAHAEAVCString@IIS@@@Z
; public: int __cdecl CFileChooser::BrowseForFolderCallback(struct HWND__ * __ptr64,unsigned int,__int64) __ptr64
?BrowseForFolderCallback@CFileChooser@@QEAAHPEAUHWND__@@I_J@Z
; protected: void __cdecl CMetabasePath::BuildMetaPath(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?BuildMetaPath@CMetabasePath@@IEAAXPEBG000@Z
; protected: void __cdecl CMetabasePath::BuildMetaPath(unsigned short const * __ptr64,unsigned long,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?BuildMetaPath@CMetabasePath@@IEAAXPEBGK00@Z
; public: virtual long __cdecl CIISInterface::ChangeProxyBlanket(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?ChangeProxyBlanket@CIISInterface@@UEAAJPEBG0@Z
; public: long __cdecl CMetaKey::CheckDescendants(unsigned long,class CComAuthInfo * __ptr64,unsigned short const * __ptr64) __ptr64
?CheckDescendants@CMetaKey@@QEAAJKPEAVCComAuthInfo@@PEBG@Z
; public: static unsigned short const * __ptr64 __cdecl CMetabasePath::CleanMetaPath(class CMetabasePath & __ptr64)
?CleanMetaPath@CMetabasePath@@SAPEBGAEAV1@@Z
; public: static unsigned short const * __ptr64 __cdecl CMetabasePath::CleanMetaPath(class IIS::CString & __ptr64)
?CleanMetaPath@CMetabasePath@@SAPEBGAEAVCString@IIS@@@Z
; public: void __cdecl CBlob::CleanUp(void) __ptr64
?CleanUp@CBlob@@QEAAXXZ
; public: void __cdecl CStringListEx::Clear(void) __ptr64
?Clear@CStringListEx@@QEAAXXZ
; private: void __cdecl CStrPassword::ClearPasswordBuffers(void) __ptr64
?ClearPasswordBuffers@CStrPassword@@AEAAXXZ
; public: long __cdecl CMetaKey::Close(void) __ptr64
?Close@CMetaKey@@QEAAJXZ
; protected: long __cdecl CMetaInterface::CloseKey(unsigned long) __ptr64
?CloseKey@CMetaInterface@@IEAAJK@Z
; public: int __cdecl IIS::CString::Collate(unsigned short const * __ptr64)const  __ptr64
?Collate@CString@IIS@@QEBAHPEBG@Z
; protected: void __cdecl CIISApplication::CommonConstruct(void) __ptr64
?CommonConstruct@CIISApplication@@IEAAXXZ
; public: int __cdecl CStrPassword::Compare(class CStrPassword & __ptr64)const  __ptr64
?Compare@CStrPassword@@QEBAHAEAV1@@Z
; public: int __cdecl CStrPassword::Compare(class IIS::CString & __ptr64)const  __ptr64
?Compare@CStrPassword@@QEBAHAEAVCString@IIS@@@Z
; public: int __cdecl CStrPassword::Compare(unsigned short const * __ptr64)const  __ptr64
?Compare@CStrPassword@@QEBAHPEBG@Z
; public: int __cdecl IIS::CString::Compare(unsigned short const * __ptr64)const  __ptr64
?Compare@CString@IIS@@QEBAHPEBG@Z
; public: int __cdecl IIS::CString::CompareNoCase(unsigned short const * __ptr64)const  __ptr64
?CompareNoCase@CString@IIS@@QEBAHPEBG@Z
; protected: class CError const & __ptr64 __cdecl CError::Construct(class CError const & __ptr64) __ptr64
?Construct@CError@@IEAAAEBV1@AEBV1@@Z
; protected: class CError const & __ptr64 __cdecl CError::Construct(long) __ptr64
?Construct@CError@@IEAAAEBV1@J@Z
; public: unsigned long __cdecl CStringListEx::ConvertFromDoubleNullList(unsigned short const * __ptr64,int) __ptr64
?ConvertFromDoubleNullList@CStringListEx@@QEAAKPEBGH@Z
; public: unsigned long __cdecl CStringListEx::ConvertToDoubleNullList(unsigned long & __ptr64,unsigned short * __ptr64 & __ptr64) __ptr64
?ConvertToDoubleNullList@CStringListEx@@QEAAKAEAKAEAPEAG@Z
; public: long __cdecl CMetaKey::ConvertToParentPath(int) __ptr64
?ConvertToParentPath@CMetaKey@@QEAAJH@Z
; public: static unsigned short const * __ptr64 __cdecl CMetabasePath::ConvertToParentPath(class CMetabasePath & __ptr64)
?ConvertToParentPath@CMetabasePath@@SAPEBGAEAV1@@Z
; public: static unsigned short const * __ptr64 __cdecl CMetabasePath::ConvertToParentPath(class IIS::CString & __ptr64)
?ConvertToParentPath@CMetabasePath@@SAPEBGAEAVCString@IIS@@@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: void __cdecl CStrPassword::CopyTo(class CStrPassword & __ptr64) __ptr64
?CopyTo@CStrPassword@@QEAAXAEAV1@@Z
; public: void __cdecl CStrPassword::CopyTo(class IIS::CString & __ptr64) __ptr64
?CopyTo@CStrPassword@@QEAAXAEAVCString@IIS@@@Z
; public: struct HWND__ * __ptr64 __cdecl ATL::CWindowImpl<class CFileChooser,class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::Create(struct HWND__ * __ptr64,struct tagRECT & __ptr64,unsigned short const * __ptr64,unsigned long,unsigned long,unsigned int,void * __ptr64) __ptr64
?Create@?$CWindowImpl@VCFileChooser@@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@3@@ATL@@QEAAPEAUHWND__@@PEAU3@AEAUtagRECT@@PEBGKKIPEAX@Z
; public: struct HWND__ * __ptr64 __cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::Create(struct HWND__ * __ptr64,struct tagRECT & __ptr64,unsigned short const * __ptr64,unsigned long,unsigned long,unsigned int,unsigned short,void * __ptr64) __ptr64
?Create@?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@QEAAPEAUHWND__@@PEAU3@AEAUtagRECT@@PEBGKKIGPEAX@Z
; public: long __cdecl CIISApplication::Create(unsigned short const * __ptr64,unsigned long) __ptr64
?Create@CIISApplication@@QEAAJPEBGK@Z
; protected: long __cdecl CIISInterface::Create(int,struct _GUID const * __ptr64 const,struct _GUID const * __ptr64 const,int * __ptr64,struct IUnknown * __ptr64 * __ptr64) __ptr64
?Create@CIISInterface@@IEAAJHQEBU_GUID@@0PEAHPEAPEAUIUnknown@@@Z
; protected: long __cdecl CIISSvcControl::Create(void) __ptr64
?Create@CIISSvcControl@@IEAAJXZ
; protected: long __cdecl CMetaInterface::Create(void) __ptr64
?Create@CMetaInterface@@IEAAJXZ
; protected: long __cdecl CWamInterface::Create(void) __ptr64
?Create@CWamInterface@@IEAAJXZ
; protected: void __cdecl CFileChooser::CreateDefaultPathForRead(void) __ptr64
?CreateDefaultPathForRead@CFileChooser@@IEAAXXZ
; protected: void __cdecl CFileChooser::CreateFilter(class IIS::CString & __ptr64,class IIS::CString & __ptr64) __ptr64
?CreateFilter@CFileChooser@@IEAAXAEAVCString@IIS@@0@Z
; public: long __cdecl CMetaKey::CreatePathFromFailedOpen(void) __ptr64
?CreatePathFromFailedOpen@CMetaKey@@QEAAJXZ
; public: struct _COSERVERINFO * __ptr64 __cdecl CComAuthInfo::CreateServerInfoStruct(unsigned long)const  __ptr64
?CreateServerInfoStruct@CComAuthInfo@@QEBAPEAU_COSERVERINFO@@K@Z
; public: struct _COSERVERINFO * __ptr64 __cdecl CComAuthInfo::CreateServerInfoStruct(void)const  __ptr64
?CreateServerInfoStruct@CComAuthInfo@@QEBAPEAU_COSERVERINFO@@XZ
; protected: static long __cdecl CError::CvtToInternalFormat(long)
?CvtToInternalFormat@CError@@KAJJ@Z
; protected: static void __cdecl CError::DeAllocateStatics(void)
?DeAllocateStatics@CError@@KAXXZ
; long __cdecl DecryptMemoryPassword(unsigned short * __ptr64,unsigned short * __ptr64 * __ptr64,unsigned long)
?DecryptMemoryPassword@@YAJPEAGPEAPEAGK@Z
; public: __int64 __cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::DefWindowProcW(unsigned int,unsigned __int64,__int64) __ptr64
?DefWindowProcW@?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@QEAA_JI_K_J@Z
; public: __int64 __cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::DefWindowProcW(void) __ptr64
?DefWindowProcW@?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@QEAA_JXZ
; public: static int __cdecl ATL::CWindowImplRoot<class ATL::CWindow>::DefaultReflectionHandler(struct HWND__ * __ptr64,unsigned int,unsigned __int64,__int64,__int64 & __ptr64)
?DefaultReflectionHandler@?$CWindowImplRoot@VCWindow@ATL@@@ATL@@SAHPEAUHWND__@@I_K_JAEA_J@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
; public: long __cdecl CMetaKey::DeleteValue(unsigned long,unsigned short const * __ptr64) __ptr64
?DeleteValue@CMetaKey@@QEAAJKPEBG@Z
; public: void __cdecl CStrPassword::DestroyClearTextPassword(unsigned short * __ptr64)const  __ptr64
?DestroyClearTextPassword@CStrPassword@@QEBAXPEAG@Z
; public: int __cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::DestroyWindow(void) __ptr64
?DestroyWindow@?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@QEAAHXZ
; public: long __cdecl CMetaKey::DoesPathExist(unsigned short const * __ptr64) __ptr64
?DoesPathExist@CMetaKey@@QEAAJPEBG@Z
; void __cdecl EditHideBalloon(void)
?EditHideBalloon@@YAXXZ
; void __cdecl EditShowBalloon(struct HWND__ * __ptr64,struct HINSTANCE__ * __ptr64,unsigned int)
?EditShowBalloon@@YAXPEAUHWND__@@PEAUHINSTANCE__@@I@Z
; void __cdecl EditShowBalloon(struct HWND__ * __ptr64,unsigned short const * __ptr64)
?EditShowBalloon@@YAXPEAUHWND__@@PEBG@Z
; __int64 __cdecl Edit_ShowBalloonTipHandler(struct HWND__ * __ptr64,unsigned short const * __ptr64)
?Edit_ShowBalloonTipHandler@@YA_JPEAUHWND__@@PEBG@Z
; public: void __cdecl CStrPassword::Empty(void) __ptr64
?Empty@CStrPassword@@QEAAXXZ
; public: void __cdecl IIS::CString::Empty(void) __ptr64
?Empty@CString@IIS@@QEAAXXZ
; long __cdecl EncryptMemoryPassword(unsigned short * __ptr64,unsigned short * __ptr64 * __ptr64,unsigned long * __ptr64)
?EncryptMemoryPassword@@YAJPEAGPEAPEAGPEAK@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
; protected: int __cdecl CError::ExpandEscapeCode(unsigned short * __ptr64,unsigned long,unsigned short * __ptr64 & __ptr64,class IIS::CString & __ptr64,long & __ptr64)const  __ptr64
?ExpandEscapeCode@CError@@IEBAHPEAGKAEAPEAGAEAVCString@IIS@@AEAJ@Z
; protected: int __cdecl CFileChooser::ExtractArgs(unsigned short * __ptr64) __ptr64
?ExtractArgs@CFileChooser@@IEAAHPEAG@Z
; protected: int __cdecl CFileChooser::ExtractPath(unsigned short * __ptr64) __ptr64
?ExtractPath@CFileChooser@@IEAAHPEAG@Z
; public: int __cdecl CError::Failed(void)const  __ptr64
?Failed@CError@@QEBAHXZ
; public: static int __cdecl CError::Failed(long)
?Failed@CError@@SAHJ@Z
; public: int __cdecl IIS::CString::Find(unsigned short)const  __ptr64
?Find@CString@IIS@@QEBAHG@Z
; public: int __cdecl IIS::CString::Find(unsigned short const * __ptr64)const  __ptr64
?Find@CString@IIS@@QEBAHPEBG@Z
; protected: static unsigned short const * __ptr64 __cdecl CError::FindFacility(unsigned long)
?FindFacility@CError@@KAPEBGK@Z
; public: int __cdecl IIS::CString::FindOneOf(unsigned short const * __ptr64)const  __ptr64
?FindOneOf@CString@IIS@@QEBAHPEBG@Z
; public: void __cdecl IIS::CString::Format(struct HINSTANCE__ * __ptr64,unsigned int,...) __ptr64
?Format@CString@IIS@@QEAAXPEAUHINSTANCE__@@IZZ
; public: void __cdecl IIS::CString::Format(unsigned short const * __ptr64,...) __ptr64
?Format@CString@IIS@@QEAAXPEBGZZ
; public: int __cdecl IIS::CString::FormatMessageW(struct HINSTANCE__ * __ptr64,unsigned int,...) __ptr64
?FormatMessageW@CString@IIS@@QEAAHPEAUHINSTANCE__@@IZZ
; public: int __cdecl IIS::CString::FormatMessageW(unsigned short const * __ptr64,...) __ptr64
?FormatMessageW@CString@IIS@@QEAAHPEBGZZ
; public: void __cdecl IIS::CString::FormatV(unsigned short const * __ptr64,char * __ptr64) __ptr64
?FormatV@CString@IIS@@QEAAXPEBGPEAD@Z
; public: void __cdecl CComAuthInfo::FreeServerInfoStruct(struct _COSERVERINFO * __ptr64)const  __ptr64
?FreeServerInfoStruct@CComAuthInfo@@QEBAXPEAU_COSERVERINFO@@@Z
; unsigned short const * __ptr64 __cdecl GenerateRegistryKey(class IIS::CString & __ptr64,unsigned short const * __ptr64)
?GenerateRegistryKey@@YAPEBGAEAVCString@IIS@@PEBG@Z
; public: long __cdecl CMetaInterface::GetAdminInterface2(struct IMSAdminBase2W * __ptr64 * __ptr64) __ptr64
?GetAdminInterface2@CMetaInterface@@QEAAJPEAPEAUIMSAdminBase2W@@@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
; protected: long __cdecl CMetaKey::GetAllData(unsigned long,unsigned long,unsigned long,unsigned long * __ptr64,unsigned long * __ptr64,unsigned char * __ptr64 * __ptr64,unsigned short const * __ptr64) __ptr64
?GetAllData@CMetaKey@@IEAAJKKKPEAK0PEAPEAEPEBG@Z
; public: unsigned short __cdecl IIS::CString::GetAt(int)const  __ptr64
?GetAt@CString@IIS@@QEBAGH@Z
; public: unsigned long __cdecl CMetaKey::GetBase(void)const  __ptr64
?GetBase@CMetaKey@@QEBAKXZ
; public: int __cdecl CStrPassword::GetByteLength(void)const  __ptr64
?GetByteLength@CStrPassword@@QEBAHXZ
; public: unsigned short * __ptr64 __cdecl CStrPassword::GetClearTextPassword(void) __ptr64
?GetClearTextPassword@CStrPassword@@QEAAPEAGXZ
; public: struct tagMSG const * __ptr64 __cdecl ATL::CWindowImplRoot<class ATL::CWindow>::GetCurrentMessage(void)const  __ptr64
?GetCurrentMessage@?$CWindowImplRoot@VCWindow@ATL@@@ATL@@QEBAPEBUtagMSG@@XZ
; 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: long __cdecl CMetaKey::GetDataPaths(class CStringListEx & __ptr64,unsigned long,unsigned long,unsigned short const * __ptr64) __ptr64
?GetDataPaths@CMetaKey@@QEAAJAEAVCStringListEx@@KKPEBG@Z
; public: unsigned long __cdecl CFileChooser::GetFileName(class IIS::CString & __ptr64) __ptr64
?GetFileName@CFileChooser@@QEAAKAEAVCString@IIS@@@Z
; protected: int __cdecl CFileChooser::GetFilterIndex(class IIS::CString const & __ptr64) __ptr64
?GetFilterIndex@CFileChooser@@IEAAHAEBVCString@IIS@@@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 long __cdecl CMetabasePath::GetInstanceNumber(unsigned short const * __ptr64)
?GetInstanceNumber@CMetabasePath@@SAKPEBG@Z
; 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: static unsigned short const * __ptr64 __cdecl CMetabasePath::GetLastNodeName(unsigned short const * __ptr64,class IIS::CString & __ptr64)
?GetLastNodeName@CMetabasePath@@SAPEBGPEBGAEAVCString@IIS@@@Z
; public: void __cdecl CError::GetLastWinError(void) __ptr64
?GetLastWinError@CError@@QEAAXXZ
; public: int __cdecl CStrPassword::GetLength(void)const  __ptr64
?GetLength@CStrPassword@@QEBAHXZ
; public: int __cdecl IIS::CString::GetLength(void)const  __ptr64
?GetLength@CString@IIS@@QEBAHXZ
; public: static int __cdecl CMetaKey::GetMDFieldDef(unsigned long,unsigned long & __ptr64,unsigned long & __ptr64,unsigned long & __ptr64,unsigned long & __ptr64)
?GetMDFieldDef@CMetaKey@@SAHKAEAK000@Z
; 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: unsigned long __cdecl CFileChooser::GetOfnFlags(void) __ptr64
?GetOfnFlags@CFileChooser@@QEAAKXZ
; public: static int __cdecl CMetaKey::GetPropertyDescription(unsigned long,class IIS::CString & __ptr64)
?GetPropertyDescription@CMetaKey@@SAHKAEAVCString@IIS@@@Z
; protected: long __cdecl CMetaKey::GetPropertyValue(unsigned long,unsigned long & __ptr64,void * __ptr64 & __ptr64,unsigned long * __ptr64,int * __ptr64,unsigned short const * __ptr64,unsigned long * __ptr64) __ptr64
?GetPropertyValue@CMetaKey@@IEAAJKAEAKAEAPEAXPEAKPEAHPEBG2@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::GetServiceInfoPath(unsigned short const * __ptr64,class IIS::CString & __ptr64,unsigned short const * __ptr64)
?GetServiceInfoPath@CMetabasePath@@SAPEBGPEBGAEAVCString@IIS@@0@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
; int __cdecl GetSpecialPathRealPath(class IIS::CString const & __ptr64,class IIS::CString & __ptr64)
?GetSpecialPathRealPath@@YAHAEBVCString@IIS@@AEAV12@@Z
; public: unsigned long __cdecl CFileChooser::GetStyle(void)const  __ptr64
?GetStyle@CFileChooser@@QEBAKXZ
; protected: void __cdecl CFileChooser::GetText(unsigned short * __ptr64) __ptr64
?GetText@CFileChooser@@IEAAXPEAG@Z
; int __cdecl GetVolumeInformationSystemFlags(unsigned short const * __ptr64,unsigned long * __ptr64)
?GetVolumeInformationSystemFlags@@YAHPEBGPEAK@Z
; public: virtual __int64 (__cdecl*__cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::GetWindowProc(void) __ptr64)(struct HWND__ * __ptr64,unsigned int,unsigned __int64,__int64)
?GetWindowProc@?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@UEAAP6A_JPEAUHWND__@@I_K_J@ZXZ
; public: static struct _ATL_WNDCLASSINFOW & __ptr64 __cdecl ATL::CWindowImpl<class CFileChooser,class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::GetWndClassInfo(void)
?GetWndClassInfo@?$CWindowImpl@VCFileChooser@@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@3@@ATL@@SAAEAU_ATL_WNDCLASSINFOW@@XZ
; public: static unsigned long __cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::GetWndExStyle(unsigned long)
?GetWndExStyle@?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@SAKK@Z
; public: static unsigned long __cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::GetWndStyle(unsigned long)
?GetWndStyle@?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@SAKK@Z
; 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 CFileChooser::HasEditFocus(void) __ptr64
?HasEditFocus@CFileChooser@@IEAAHXZ
; 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
; protected: int __cdecl CError::HasOverride(unsigned int * __ptr64)const  __ptr64
?HasOverride@CError@@IEBAHPEAI@Z
; public: int __cdecl CFileChooser::Init(class ATL::CWindow * __ptr64,unsigned long,unsigned int,unsigned int) __ptr64
?Init@CFileChooser@@QEAAHPEAVCWindow@ATL@@KII@Z
; int __cdecl IsBiDiLocalizedSystem(void)
?IsBiDiLocalizedSystem@@YAHXZ
; int __cdecl IsDevicePath(class IIS::CString const & __ptr64)
?IsDevicePath@@YAHAEBVCString@IIS@@@Z
; public: int __cdecl CBlob::IsEmpty(void)const  __ptr64
?IsEmpty@CBlob@@QEBAHXZ
; public: int __cdecl CStrPassword::IsEmpty(void)const  __ptr64
?IsEmpty@CStrPassword@@QEBAHXZ
; public: bool __cdecl IIS::CString::IsEmpty(void)const  __ptr64
?IsEmpty@CString@IIS@@QEBA_NXZ
; 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: static int __cdecl CMetabasePath::IsHomeDirectoryPath(unsigned short const * __ptr64)
?IsHomeDirectoryPath@CMetabasePath@@SAHPEBG@Z
; 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: static int __cdecl CMetabasePath::IsMasterInstance(unsigned short const * __ptr64)
?IsMasterInstance@CMetabasePath@@SAHPEBG@Z
; 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: static int __cdecl CMetaKey::IsPropertyInheritable(unsigned long)
?IsPropertyInheritable@CMetaKey@@SAHK@Z
; public: static int __cdecl CMetabasePath::IsSeparator(unsigned short)
?IsSeparator@CMetabasePath@@SAHG@Z
; int __cdecl IsServerLocal(unsigned short const * __ptr64)
?IsServerLocal@@YAHPEBG@Z
; int __cdecl IsSpecialPath(class IIS::CString const & __ptr64,int)
?IsSpecialPath@@YAHAEBVCString@IIS@@H@Z
; protected: int __cdecl CFileChooser::IsValidChar(unsigned int,int) __ptr64
?IsValidChar@CFileChooser@@IEAAHIH@Z
; int __cdecl IsValidFilePath(struct HWND__ * __ptr64,unsigned short const * __ptr64,int)
?IsValidFilePath@@YAHPEAUHWND__@@PEBGH@Z
; int __cdecl IsValidFolderPath(struct HWND__ * __ptr64,unsigned short const * __ptr64,int)
?IsValidFolderPath@@YAHPEAUHWND__@@PEBGH@Z
; int __cdecl IsValidName(unsigned short const * __ptr64)
?IsValidName@@YAHPEBG@Z
; int __cdecl IsValidPath(unsigned short const * __ptr64)
?IsValidPath@@YAHPEBG@Z
; protected: int __cdecl CFileChooser::IsValidPath(unsigned short const * __ptr64) __ptr64
?IsValidPath@CFileChooser@@IEAAHPEBG@Z
; int __cdecl IsValidUNCFolderPath(struct HWND__ * __ptr64,unsigned short const * __ptr64)
?IsValidUNCFolderPath@@YAHPEAUHWND__@@PEBG@Z
; public: long __cdecl CIISSvcControl::Kill(void) __ptr64
?Kill@CIISSvcControl@@QEAAJXZ
; public: class IIS::CString  __cdecl IIS::CString::Left(int)const  __ptr64
?Left@CString@IIS@@QEBA?AV12@H@Z
; public: int __cdecl IIS::CString::LoadStringW(struct HINSTANCE__ * __ptr64,unsigned int) __ptr64
?LoadStringW@CString@IIS@@QEAAHPEAUHINSTANCE__@@I@Z
; public: void __cdecl IIS::CString::MakeLower(void) __ptr64
?MakeLower@CString@IIS@@QEAAXXZ
; public: void __cdecl IIS::CString::MakeReverse(void) __ptr64
?MakeReverse@CString@IIS@@QEAAXXZ
; public: void __cdecl IIS::CString::MakeUpper(void) __ptr64
?MakeUpper@CString@IIS@@QEAAXXZ
; public: static int __cdecl CMetaKey::MapMDIDToTableIndex(unsigned long)
?MapMDIDToTableIndex@CMetaKey@@SAHK@Z
; public: int __cdecl CError::MessageBoxFormat(struct HINSTANCE__ * __ptr64,unsigned int,unsigned int,unsigned int,...)const  __ptr64
?MessageBoxFormat@CError@@QEBAHPEAUHINSTANCE__@@IIIZZ
; public: int __cdecl CError::MessageBoxOnFailure(unsigned int,unsigned int)const  __ptr64
?MessageBoxOnFailure@CError@@QEBAHII@Z
; public: int __cdecl CError::MessageBoxW(unsigned int,unsigned int)const  __ptr64
?MessageBoxW@CError@@QEBAHII@Z
; public: class IIS::CString  __cdecl IIS::CString::Mid(int)const  __ptr64
?Mid@CString@IIS@@QEBA?AV12@H@Z
; public: class IIS::CString  __cdecl IIS::CString::Mid(int,int)const  __ptr64
?Mid@CString@IIS@@QEBA?AV12@HH@Z
; public: long __cdecl CMetaBack::Next(unsigned long * __ptr64,unsigned short * __ptr64,struct _FILETIME * __ptr64) __ptr64
?Next@CMetaBack@@QEAAJPEAKPEAGPEAU_FILETIME@@@Z
; public: long __cdecl CMetaEnumerator::Next(unsigned long & __ptr64,class IIS::CString & __ptr64,unsigned short const * __ptr64) __ptr64
?Next@CMetaEnumerator@@QEAAJAEAKAEAVCString@IIS@@PEBG@Z
; public: long __cdecl CMetaEnumerator::Next(class IIS::CString & __ptr64,unsigned short const * __ptr64) __ptr64
?Next@CMetaEnumerator@@QEAAJAEAVCString@IIS@@PEBG@Z
; protected: void __cdecl CFileChooser::OnBrowseBtn(void) __ptr64
?OnBrowseBtn@CFileChooser@@IEAAXXZ
; public: void __cdecl CFileChooser::OnEditChange(void) __ptr64
?OnEditChange@CFileChooser@@QEAAXXZ
; protected: __int64 __cdecl CFileChooser::OnEditChar(unsigned int,unsigned __int64,__int64,int & __ptr64) __ptr64
?OnEditChar@CFileChooser@@IEAA_JI_K_JAEAH@Z
; protected: __int64 __cdecl CFileChooser::OnEditKillFocus(unsigned int,unsigned __int64,__int64,int & __ptr64) __ptr64
?OnEditKillFocus@CFileChooser@@IEAA_JI_K_JAEAH@Z
; protected: __int64 __cdecl CFileChooser::OnEditSetFocus(unsigned int,unsigned __int64,__int64,int & __ptr64) __ptr64
?OnEditSetFocus@CFileChooser@@IEAA_JI_K_JAEAH@Z
; public: virtual void __cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::OnFinalMessage(struct HWND__ * __ptr64) __ptr64
?OnFinalMessage@?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@UEAAXPEAUHWND__@@@Z
; public: void __cdecl CFileChooser::OnPaste(void) __ptr64
?OnPaste@CFileChooser@@QEAAXXZ
; protected: __int64 __cdecl CFileChooser::OnSetBrowseState(unsigned int,unsigned __int64,__int64,int & __ptr64) __ptr64
?OnSetBrowseState@CFileChooser@@IEAA_JI_K_JAEAH@Z
; public: long __cdecl CMetaKey::Open(unsigned long,unsigned short const * __ptr64,unsigned long) __ptr64
?Open@CMetaKey@@QEAAJKPEBGK@Z
; public: int __cdecl CFileChooser::OpenForRead(void) __ptr64
?OpenForRead@CFileChooser@@QEAAHXZ
; 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: virtual int __cdecl CFileChooser::ProcessWindowMessage(struct HWND__ * __ptr64,unsigned int,unsigned __int64,__int64,__int64 & __ptr64,unsigned long) __ptr64
?ProcessWindowMessage@CFileChooser@@UEAAHPEAUHWND__@@I_K_JAEA_JK@Z
; public: void __cdecl CMetaEnumerator::Push(void) __ptr64
?Push@CMetaEnumerator@@QEAAXXZ
; public: void __cdecl CStringListEx::PushBack(unsigned short const * __ptr64) __ptr64
?PushBack@CStringListEx@@QEAAXPEBG@Z
; 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 CIISApplication::QueryResult(void)const  __ptr64
?QueryResult@CIISApplication@@UEBAJXZ
; public: virtual long __cdecl CIISInterface::QueryResult(void)const  __ptr64
?QueryResult@CIISInterface@@UEBAJXZ
; public: virtual long __cdecl CMetaBack::QueryResult(void)const  __ptr64
?QueryResult@CMetaBack@@UEBAJXZ
; public: virtual long __cdecl CMetaKey::QueryResult(void)const  __ptr64
?QueryResult@CMetaKey@@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: long __cdecl CMetaKey::QueryValue(unsigned long,unsigned long & __ptr64,int * __ptr64,unsigned short const * __ptr64,unsigned long * __ptr64) __ptr64
?QueryValue@CMetaKey@@QEAAJKAEAKPEAHPEBGPEAK@Z
; public: long __cdecl CMetaKey::QueryValue(unsigned long,class CBlob & __ptr64,int * __ptr64,unsigned short const * __ptr64,unsigned long * __ptr64) __ptr64
?QueryValue@CMetaKey@@QEAAJKAEAVCBlob@@PEAHPEBGPEAK@Z
; public: long __cdecl CMetaKey::QueryValue(unsigned long,class ATL::CComBSTR & __ptr64,int * __ptr64,unsigned short const * __ptr64,unsigned long * __ptr64) __ptr64
?QueryValue@CMetaKey@@QEAAJKAEAVCComBSTR@ATL@@PEAHPEBGPEAK@Z
; public: long __cdecl CMetaKey::QueryValue(unsigned long,class CStrPassword & __ptr64,int * __ptr64,unsigned short const * __ptr64,unsigned long * __ptr64) __ptr64
?QueryValue@CMetaKey@@QEAAJKAEAVCStrPassword@@PEAHPEBGPEAK@Z
; public: long __cdecl CMetaKey::QueryValue(unsigned long,class IIS::CString & __ptr64,int * __ptr64,unsigned short const * __ptr64,unsigned long * __ptr64) __ptr64
?QueryValue@CMetaKey@@QEAAJKAEAVCString@IIS@@PEAHPEBGPEAK@Z
; public: long __cdecl CMetaKey::QueryValue(unsigned long,class CStringListEx & __ptr64,int * __ptr64,unsigned short const * __ptr64,unsigned long * __ptr64) __ptr64
?QueryValue@CMetaKey@@QEAAJKAEAVCStringListEx@@PEAHPEBGPEAK@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: __int64 __cdecl ATL::CWindowImplRoot<class ATL::CWindow>::ReflectNotifications(unsigned int,unsigned __int64,__int64,int & __ptr64) __ptr64
?ReflectNotifications@?$CWindowImplRoot@VCWindow@ATL@@@ATL@@QEAA_JI_K_JAEAH@Z
; public: long __cdecl CIISApplication::RefreshAppState(void) __ptr64
?RefreshAppState@CIISApplication@@QEAAJXZ
; public: long __cdecl CMetaInterface::Regenerate(void) __ptr64
?Regenerate@CMetaInterface@@QEAAJXZ
; public: static void __cdecl CError::RegisterFacility(unsigned long,char const * __ptr64)
?RegisterFacility@CError@@SAXKPEBD@Z
; public: void __cdecl CError::RemoveAllOverrides(void) __ptr64
?RemoveAllOverrides@CError@@QEAAXXZ
; public: void __cdecl CComAuthInfo::RemoveImpersonation(void) __ptr64
?RemoveImpersonation@CComAuthInfo@@QEAAXXZ
; public: void __cdecl CError::RemoveOverride(long) __ptr64
?RemoveOverride@CError@@QEAAXJ@Z
; public: void __cdecl CFileChooser::RemoveStyle(unsigned long) __ptr64
?RemoveStyle@CFileChooser@@QEAAXK@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
; public: long __cdecl CMetaBack::Restore(unsigned short const * __ptr64,unsigned long) __ptr64
?Restore@CMetaBack@@QEAAJPEBGK@Z
; protected: long __cdecl CMetaInterface::Restore(unsigned short const * __ptr64,unsigned long,unsigned long) __ptr64
?Restore@CMetaInterface@@IEAAJPEBGKK@Z
; public: int __cdecl IIS::CString::ReverseFind(unsigned short)const  __ptr64
?ReverseFind@CString@IIS@@QEBAHG@Z
; public: class IIS::CString  __cdecl IIS::CString::Right(int)const  __ptr64
?Right@CString@IIS@@QEBA?AV12@H@Z
; public: long __cdecl CMetaInterface::SaveData(void) __ptr64
?SaveData@CMetaInterface@@QEAAJXZ
; public: void __cdecl IIS::CString::SetAt(int,unsigned short) __ptr64
?SetAt@CString@IIS@@QEAAXHG@Z
; protected: void __cdecl CFileChooser::SetCompactedPath(unsigned short const * __ptr64) __ptr64
?SetCompactedPath@CFileChooser@@IEAAXPEBG@Z
; protected: void __cdecl CComAuthInfo::SetComputerNameW(unsigned short const * __ptr64) __ptr64
?SetComputerNameW@CComAuthInfo@@IEAAXPEBG@Z
; protected: long __cdecl CMetaInterface::SetData(unsigned long,unsigned short const * __ptr64,struct _METADATA_RECORD * __ptr64) __ptr64
?SetData@CMetaInterface@@IEAAJKPEBGPEAU_METADATA_RECORD@@@Z
; public: void __cdecl CFileChooser::SetDialogTitle(unsigned short const * __ptr64) __ptr64
?SetDialogTitle@CFileChooser@@QEAAXPEBG@Z
; public: void __cdecl CComAuthInfo::SetImpersonation(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?SetImpersonation@CComAuthInfo@@QEAAXPEBG0@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: void __cdecl CFileChooser::SetOfnFlags(unsigned long) __ptr64
?SetOfnFlags@CFileChooser@@QEAAXK@Z
; public: void __cdecl CFileChooser::SetPath(class IIS::CString const & __ptr64) __ptr64
?SetPath@CFileChooser@@QEAAXAEBVCString@IIS@@@Z
; protected: void __cdecl CFileChooser::SetPathToEdit(unsigned short const * __ptr64) __ptr64
?SetPathToEdit@CFileChooser@@IEAAXPEBG@Z
; protected: long __cdecl CMetaKey::SetPropertyValue(unsigned long,unsigned long,void * __ptr64,int * __ptr64,unsigned short const * __ptr64) __ptr64
?SetPropertyValue@CMetaKey@@IEAAJKKPEAXPEAHPEBG@Z
; public: unsigned long __cdecl CFileChooser::SetStyle(unsigned long) __ptr64
?SetStyle@CFileChooser@@QEAAKK@Z
; public: void __cdecl CBlob::SetValue(unsigned long,unsigned char * __ptr64,int) __ptr64
?SetValue@CBlob@@QEAAXKPEAEH@Z
; public: long __cdecl CMetaKey::SetValue(unsigned long,class CBlob & __ptr64,int * __ptr64,unsigned short const * __ptr64) __ptr64
?SetValue@CMetaKey@@QEAAJKAEAVCBlob@@PEAHPEBG@Z
; public: long __cdecl CMetaKey::SetValue(unsigned long,class CStrPassword & __ptr64,int * __ptr64,unsigned short const * __ptr64) __ptr64
?SetValue@CMetaKey@@QEAAJKAEAVCStrPassword@@PEAHPEBG@Z
; 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,class CStringListEx & __ptr64,int * __ptr64,unsigned short const * __ptr64) __ptr64
?SetValue@CMetaKey@@QEAAJKAEAVCStringListEx@@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: class IIS::CString  __cdecl IIS::CString::SpanExcluding(unsigned short const * __ptr64)const  __ptr64
?SpanExcluding@CString@IIS@@QEBA?AV12@PEBG@Z
; public: class IIS::CString  __cdecl IIS::CString::SpanIncluding(unsigned short const * __ptr64)const  __ptr64
?SpanIncluding@CString@IIS@@QEBA?AV12@PEBG@Z
; public: static void __cdecl CMetabasePath::SplitMetaPathAtInstance(unsigned short const * __ptr64,class IIS::CString & __ptr64,class IIS::CString & __ptr64)
?SplitMetaPathAtInstance@CMetabasePath@@SAXPEBGAEAVCString@IIS@@1@Z
; public: static int __cdecl CComAuthInfo::SplitUserNameAndDomain(class IIS::CString & __ptr64,class IIS::CString & __ptr64)
?SplitUserNameAndDomain@CComAuthInfo@@SAHAEAVCString@IIS@@0@Z
; public: long __cdecl CIISSvcControl::Start(unsigned long) __ptr64
?Start@CIISSvcControl@@QEAAJK@Z
; public: static __int64 __cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::StartWindowProc(struct HWND__ * __ptr64,unsigned int,unsigned __int64,__int64)
?StartWindowProc@?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@SA_JPEAUHWND__@@I_K_J@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 CFileChooser::StyleBitSet(unsigned long) __ptr64
?StyleBitSet@CFileChooser@@QEAAHK@Z
; public: int __cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::SubclassWindow(struct HWND__ * __ptr64) __ptr64
?SubclassWindow@?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@QEAAHPEAUHWND__@@@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 CIISApplication::Succeeded(void)const  __ptr64
?Succeeded@CIISApplication@@UEBAHXZ
; public: virtual int __cdecl CIISInterface::Succeeded(void)const  __ptr64
?Succeeded@CIISInterface@@UEBAHXZ
; public: virtual int __cdecl CMetaBack::Succeeded(void)const  __ptr64
?Succeeded@CMetaBack@@UEBAHXZ
; public: virtual int __cdecl CMetaKey::Succeeded(void)const  __ptr64
?Succeeded@CMetaKey@@UEBAHXZ
; public: int __cdecl CWamInterface::SupportsPooledProc(void)const  __ptr64
?SupportsPooledProc@CWamInterface@@QEBAHXZ
; public: long __cdecl CError::TextFromHRESULT(class IIS::CString & __ptr64)const  __ptr64
?TextFromHRESULT@CError@@QEBAJAEAVCString@IIS@@@Z
; public: long __cdecl CError::TextFromHRESULT(unsigned short * __ptr64,unsigned long)const  __ptr64
?TextFromHRESULT@CError@@QEBAJPEAGK@Z
; public: unsigned short const * __ptr64 __cdecl CError::TextFromHRESULTExpand(class IIS::CString & __ptr64)const  __ptr64
?TextFromHRESULTExpand@CError@@QEBAPEBGAEAVCString@IIS@@@Z
; public: unsigned short const * __ptr64 __cdecl CError::TextFromHRESULTExpand(unsigned short * __ptr64,unsigned long,long * __ptr64)const  __ptr64
?TextFromHRESULTExpand@CError@@QEBAPEBGPEAGKPEAJ@Z
; public: void __cdecl IIS::CString::TrimLeft(void) __ptr64
?TrimLeft@CString@IIS@@QEAAXXZ
; public: void __cdecl IIS::CString::TrimRight(void) __ptr64
?TrimRight@CString@IIS@@QEAAXXZ
; public: static unsigned short const * __ptr64 __cdecl CMetabasePath::TruncatePath(int,unsigned short const * __ptr64,class IIS::CString & __ptr64,class IIS::CString * __ptr64)
?TruncatePath@CMetabasePath@@SAPEBGHPEBGAEAVCString@IIS@@PEAV23@@Z
; public: long __cdecl CIISApplication::Unload(int) __ptr64
?Unload@CIISApplication@@QEAAJH@Z
; public: static void __cdecl CError::UnregisterFacility(unsigned long)
?UnregisterFacility@CError@@SAXK@Z
; public: struct HWND__ * __ptr64 __cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::UnsubclassWindow(int) __ptr64
?UnsubclassWindow@?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@QEAAPEAUHWND__@@H@Z
; public: int __cdecl CComAuthInfo::UsesImpersonation(void)const  __ptr64
?UsesImpersonation@CComAuthInfo@@QEBAHXZ
; public: static unsigned long __cdecl CComAuthInfo::VerifyUserPassword(unsigned short const * __ptr64,unsigned short const * __ptr64)
?VerifyUserPassword@CComAuthInfo@@SAKPEBG0@Z
; public: unsigned long __cdecl CError::Win32Error(void)const  __ptr64
?Win32Error@CError@@QEBAKXZ
; public: static unsigned long __cdecl CError::Win32Error(long)
?Win32Error@CError@@SAKJ@Z
; public: static __int64 __cdecl ATL::CWindowImplBaseT<class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::WindowProc(struct HWND__ * __ptr64,unsigned int,unsigned __int64,__int64)
?WindowProc@?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@2@@ATL@@SA_JPEAUHWND__@@I_K_J@Z
; public: long __cdecl CIISApplication::WriteFriendlyName(unsigned short const * __ptr64) __ptr64
?WriteFriendlyName@CIISApplication@@QEAAJPEBG@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
; protected: static class IIS::CString const  CMetabasePath::_anySep
?_anySep@CMetabasePath@@1VCString@IIS@@B DATA
; protected: static unsigned short const  CMetabasePath::_chSep
?_chSep@CMetabasePath@@1GB
; protected: static unsigned short const * __ptr64 const  __ptr64 CMetabasePath::_cszMachine
?_cszMachine@CMetabasePath@@1QEBGEB
; protected: static unsigned short const * __ptr64 const  __ptr64 CMetabasePath::_cszRoot
?_cszRoot@CMetabasePath@@1QEBGEB
; protected: static unsigned short const * __ptr64 const  __ptr64 CMetabasePath::_cszSep
?_cszSep@CMetabasePath@@1QEBGEB
; 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
; protected: static unsigned long  CError::s_cdwFacilities
?s_cdwFacilities@CError@@1KA DATA
; protected: static long  CError::s_cdwMaxLMErr
?s_cdwMaxLMErr@CError@@1JA DATA
; protected: static long  CError::s_cdwMaxWSErr
?s_cdwMaxWSErr@CError@@1JA DATA
; protected: static long  CError::s_cdwMinLMErr
?s_cdwMinLMErr@CError@@1JA DATA
; protected: static long  CError::s_cdwMinWSErr
?s_cdwMinWSErr@CError@@1JA DATA
; protected: static unsigned short const  CError::s_chEscNumber
?s_chEscNumber@CError@@1GB
; protected: static unsigned short const  CError::s_chEscText
?s_chEscText@CError@@1GB
; protected: static unsigned short const  CError::s_chEscape
?s_chEscape@CError@@1GB
; protected: static unsigned short const * __ptr64 *  CError::s_cszFacility
?s_cszFacility@CError@@1PAPEBGA DATA
; protected: static unsigned short const * __ptr64 const  __ptr64 CError::s_cszLMDLL
?s_cszLMDLL@CError@@1PEBGEB DATA
; protected: static unsigned short const * __ptr64 const  __ptr64 CError::s_cszWSDLL
?s_cszWSDLL@CError@@1PEBGEB DATA
; protected: static int  CError::s_fAllocated
?s_fAllocated@CError@@1HA DATA
; protected: static class CFacilityMap * __ptr64  __ptr64 CError::s_pmapFacilities
?s_pmapFacilities@CError@@1PEAVCFacilityMap@@EA DATA
; protected: static class IIS::CString * __ptr64  __ptr64 CError::s_pstrDefError
?s_pstrDefError@CError@@1PEAVCString@IIS@@EA DATA
; protected: static class IIS::CString * __ptr64  __ptr64 CError::s_pstrDefSuccs
?s_pstrDefSuccs@CError@@1PEAVCString@IIS@@EA DATA
; protected: static struct CMetaKey::tagMDFIELDDEF const * const  CMetaKey::s_rgMetaTable
?s_rgMetaTable@CMetaKey@@1QBUtagMDFIELDDEF@1@B
; protected: static unsigned short const * __ptr64 const  __ptr64 CMetaBack::s_szMasterAppRoot
?s_szMasterAppRoot@CMetaBack@@1QEBGEB
; 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
; struct _ATL_WNDCLASSINFOW  `public: static struct _ATL_WNDCLASSINFOW & __ptr64 __cdecl ATL::CWindowImpl<class CFileChooser,class ATL::CWindow,class ATL::CWinTraits<1442840576,0> >::GetWndClassInfo(void)'::`2'::wc
?wc@?1??GetWndClassInfo@?$CWindowImpl@VCFileChooser@@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A@@3@@ATL@@SAAEAU_ATL_WNDCLASSINFOW@@XZ@4U4@A DATA
