; 
; Exports of file w3ext.DLL
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY w3ext.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 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 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 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 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 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 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 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 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  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
; 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: void __cdecl CFileChooser::AddStyle(unsigned long) __ptr64
?AddStyle@CFileChooser@@QEAAXK@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: 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: __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: 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
; 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: 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: 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: unsigned long __cdecl CFileChooser::GetOfnFlags(void) __ptr64
?GetOfnFlags@CFileChooser@@QEAAKXZ
; 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: unsigned long __cdecl CFileChooser::GetStyle(void)const  __ptr64
?GetStyle@CFileChooser@@QEBAKXZ
; 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 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
; 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: 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: 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: __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: 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
; 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
; public: void __cdecl CFileChooser::SetDialogTitle(unsigned short const * __ptr64) __ptr64
?SetDialogTitle@CFileChooser@@QEAAXPEBG@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: unsigned long __cdecl CFileChooser::SetStyle(unsigned long) __ptr64
?SetStyle@CFileChooser@@QEAAKK@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,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: 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 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: 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: 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
; 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
; 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
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer
