; 
; Exports of file iisui.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY iisui.dll
EXPORTS
InitCommonDll
; public: __cdecl CAccessEntry::CAccessEntry(class CAccessEntry & __ptr64) __ptr64
??0CAccessEntry@@QEAA@AEAV0@@Z
; public: __cdecl CAccessEntry::CAccessEntry(unsigned long,void * __ptr64,unsigned short const * __ptr64,int) __ptr64
??0CAccessEntry@@QEAA@KPEAXPEBGH@Z
; public: __cdecl CAccessEntry::CAccessEntry(void * __ptr64,int) __ptr64
??0CAccessEntry@@QEAA@PEAXH@Z
; public: __cdecl CAccessEntry::CAccessEntry(void * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0CAccessEntry@@QEAA@PEAXPEBG1@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 CConfirmDlg::CConfirmDlg(class CWnd * __ptr64) __ptr64
??0CConfirmDlg@@QEAA@PEAVCWnd@@@Z
; public: __cdecl CDirBrowseDlg::CDirBrowseDlg(class CDirBrowseDlg const & __ptr64) __ptr64
??0CDirBrowseDlg@@QEAA@AEBV0@@Z
; public: __cdecl CDirBrowseDlg::CDirBrowseDlg(class CWnd * __ptr64,unsigned short const * __ptr64) __ptr64
??0CDirBrowseDlg@@QEAA@PEAVCWnd@@PEBG@Z
; public: __cdecl CDownButton::CDownButton(void) __ptr64
??0CDownButton@@QEAA@XZ
; public: __cdecl CEmphasizedDialog::CEmphasizedDialog(unsigned int,class CWnd * __ptr64) __ptr64
??0CEmphasizedDialog@@QEAA@IPEAVCWnd@@@Z
; public: __cdecl CEmphasizedDialog::CEmphasizedDialog(unsigned short const * __ptr64,class CWnd * __ptr64) __ptr64
??0CEmphasizedDialog@@QEAA@PEBGPEAVCWnd@@@Z
; public: __cdecl CEmphasizedDialog::CEmphasizedDialog(void) __ptr64
??0CEmphasizedDialog@@QEAA@XZ
; 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 CGetComputer::CGetComputer(class CGetComputer const & __ptr64) __ptr64
??0CGetComputer@@QEAA@AEBV0@@Z
; public: __cdecl CGetComputer::CGetComputer(void) __ptr64
??0CGetComputer@@QEAA@XZ
; public: __cdecl CGetUsers::CGetUsers(unsigned short const * __ptr64,int) __ptr64
??0CGetUsers@@QEAA@PEBGH@Z
; public: __cdecl CHeaderListBox::CHeaderListBox(unsigned long,unsigned short const * __ptr64) __ptr64
??0CHeaderListBox@@QEAA@KPEBG@Z
; public: __cdecl CIISAppPool::CIISAppPool(class CIISAppPool & __ptr64) __ptr64
??0CIISAppPool@@QEAA@AEAV0@@Z
; public: __cdecl CIISAppPool::CIISAppPool(class CComAuthInfo * __ptr64,unsigned short const * __ptr64) __ptr64
??0CIISAppPool@@QEAA@PEAVCComAuthInfo@@PEBG@Z
; 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 CIISWizardBookEnd::CIISWizardBookEnd(unsigned int,unsigned int,unsigned int,unsigned int,unsigned int) __ptr64
??0CIISWizardBookEnd@@QEAA@IIIII@Z
; public: __cdecl CIISWizardBookEnd::CIISWizardBookEnd(long * __ptr64,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int) __ptr64
??0CIISWizardBookEnd@@QEAA@PEAJIIIIIII@Z
; public: __cdecl CIISWizardPage::CIISWizardPage(unsigned int,unsigned int,int,unsigned int,unsigned int) __ptr64
??0CIISWizardPage@@QEAA@IIHII@Z
; public: __cdecl CIISWizardSheet::CIISWizardSheet(unsigned int,unsigned int,unsigned long,unsigned long) __ptr64
??0CIISWizardSheet@@QEAA@IIKK@Z
; public: __cdecl CILong::CILong(long) __ptr64
??0CILong@@QEAA@J@Z
; public: __cdecl CILong::CILong(unsigned short const * __ptr64) __ptr64
??0CILong@@QEAA@PEBG@Z
; public: __cdecl CILong::CILong(void) __ptr64
??0CILong@@QEAA@XZ
; protected: __cdecl CINumber::CINumber(void) __ptr64
??0CINumber@@IEAA@XZ
; public: __cdecl CIPAccessDescriptor::CIPAccessDescriptor(class CIPAccessDescriptor const & __ptr64) __ptr64
??0CIPAccessDescriptor@@QEAA@AEBV0@@Z
; public: __cdecl CIPAccessDescriptor::CIPAccessDescriptor(int) __ptr64
??0CIPAccessDescriptor@@QEAA@H@Z
; public: __cdecl CIPAccessDescriptor::CIPAccessDescriptor(int,unsigned long,unsigned long,int) __ptr64
??0CIPAccessDescriptor@@QEAA@HKKH@Z
; public: __cdecl CIPAccessDescriptor::CIPAccessDescriptor(int,unsigned short const * __ptr64) __ptr64
??0CIPAccessDescriptor@@QEAA@HPEBG@Z
; public: __cdecl CIPAddress::CIPAddress(class CIPAddress const & __ptr64) __ptr64
??0CIPAddress@@QEAA@AEBV0@@Z
; public: __cdecl CIPAddress::CIPAddress(class CString const & __ptr64) __ptr64
??0CIPAddress@@QEAA@AEBVCString@@@Z
; public: __cdecl CIPAddress::CIPAddress(unsigned char,unsigned char,unsigned char,unsigned char) __ptr64
??0CIPAddress@@QEAA@EEEE@Z
; public: __cdecl CIPAddress::CIPAddress(unsigned long,int) __ptr64
??0CIPAddress@@QEAA@KH@Z
; public: __cdecl CIPAddress::CIPAddress(unsigned char * __ptr64,int) __ptr64
??0CIPAddress@@QEAA@PEAEH@Z
; public: __cdecl CIPAddress::CIPAddress(unsigned short const * __ptr64,int) __ptr64
??0CIPAddress@@QEAA@PEBGH@Z
; public: __cdecl CIPAddress::CIPAddress(void) __ptr64
??0CIPAddress@@QEAA@XZ
; public: __cdecl CInheritanceDlg::CInheritanceDlg(int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned short const * __ptr64,int,class CComAuthInfo * __ptr64,unsigned short const * __ptr64,class CWnd * __ptr64) __ptr64
??0CInheritanceDlg@@QEAA@HKKKKPEBGHPEAVCComAuthInfo@@0PEAVCWnd@@@Z
; public: __cdecl CInheritanceDlg::CInheritanceDlg(unsigned long,int,class CComAuthInfo * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,class CWnd * __ptr64) __ptr64
??0CInheritanceDlg@@QEAA@KHPEAVCComAuthInfo@@PEBG1PEAVCWnd@@@Z
; public: __cdecl CInheritanceDlg::CInheritanceDlg(unsigned long,int,class CComAuthInfo * __ptr64,unsigned short const * __ptr64,class CStringList & __ptr64,unsigned short const * __ptr64,class CWnd * __ptr64) __ptr64
??0CInheritanceDlg@@QEAA@KHPEAVCComAuthInfo@@PEBGAEAVCStringList@@1PEAVCWnd@@@Z
; public: __cdecl CMappedBitmapButton::CMappedBitmapButton(void) __ptr64
??0CMappedBitmapButton@@QEAA@XZ
; 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
; protected: __cdecl CODLBox::CODLBox(void) __ptr64
??0CODLBox@@IEAA@XZ
; public: __cdecl CObListIter::CObListIter(class CObListPlus const & __ptr64) __ptr64
??0CObListIter@@QEAA@AEBVCObListPlus@@@Z
; public: __cdecl CObListPlus::CObListPlus(int) __ptr64
??0CObListPlus@@QEAA@H@Z
; protected: __cdecl CObjHelper::CObjHelper(void) __ptr64
??0CObjHelper@@IEAA@XZ
; public: __cdecl CObjHelper::CObjHelper(class CObjHelper const & __ptr64) __ptr64
??0CObjHelper@@QEAA@AEBV0@@Z
; public: __cdecl CObjectPlus::CObjectPlus(void) __ptr64
??0CObjectPlus@@QEAA@XZ
; public: __cdecl CRMCComboBox::CRMCComboBox(void) __ptr64
??0CRMCComboBox@@QEAA@XZ
; public: __cdecl CRMCListBox::CRMCListBox(void) __ptr64
??0CRMCListBox@@QEAA@XZ
; public: __cdecl CRMCListBoxDrawStruct::CRMCListBoxDrawStruct(class CDC * __ptr64,struct tagRECT * __ptr64,int,unsigned __int64,int,class CRMCListBoxResources const * __ptr64) __ptr64
??0CRMCListBoxDrawStruct@@QEAA@PEAVCDC@@PEAUtagRECT@@H_KHPEBVCRMCListBoxResources@@@Z
; public: __cdecl CRMCListBoxHeader::CRMCListBoxHeader(unsigned long) __ptr64
??0CRMCListBoxHeader@@QEAA@K@Z
; public: __cdecl CRMCListBoxResources::CRMCListBoxResources(int,int,unsigned long) __ptr64
??0CRMCListBoxResources@@QEAA@HHK@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 CStringListEx::CStringListEx(int) __ptr64
??0CStringListEx@@QEAA@H@Z
; public: __cdecl CUpButton::CUpButton(void) __ptr64
??0CUpButton@@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: virtual __cdecl CAccessEntry::~CAccessEntry(void) __ptr64
??1CAccessEntry@@UEAA@XZ
; public: __cdecl CBlob::~CBlob(void) __ptr64
??1CBlob@@QEAA@XZ
; public: __cdecl CComAuthInfo::~CComAuthInfo(void) __ptr64
??1CComAuthInfo@@QEAA@XZ
; public: virtual __cdecl CConfirmDlg::~CConfirmDlg(void) __ptr64
??1CConfirmDlg@@UEAA@XZ
; public: __cdecl CDirBrowseDlg::~CDirBrowseDlg(void) __ptr64
??1CDirBrowseDlg@@QEAA@XZ
; public: virtual __cdecl CDownButton::~CDownButton(void) __ptr64
??1CDownButton@@UEAA@XZ
; public: virtual __cdecl CEmphasizedDialog::~CEmphasizedDialog(void) __ptr64
??1CEmphasizedDialog@@UEAA@XZ
; public: __cdecl CError::~CError(void) __ptr64
??1CError@@QEAA@XZ
; public: __cdecl CGetComputer::~CGetComputer(void) __ptr64
??1CGetComputer@@QEAA@XZ
; public: virtual __cdecl CGetUsers::~CGetUsers(void) __ptr64
??1CGetUsers@@UEAA@XZ
; public: virtual __cdecl CHeaderListBox::~CHeaderListBox(void) __ptr64
??1CHeaderListBox@@UEAA@XZ
; public: virtual __cdecl CIISAppPool::~CIISAppPool(void) __ptr64
??1CIISAppPool@@UEAA@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 CIISWizardBookEnd::~CIISWizardBookEnd(void) __ptr64
??1CIISWizardBookEnd@@UEAA@XZ
; public: virtual __cdecl CIISWizardPage::~CIISWizardPage(void) __ptr64
??1CIISWizardPage@@UEAA@XZ
; public: virtual __cdecl CIISWizardSheet::~CIISWizardSheet(void) __ptr64
??1CIISWizardSheet@@UEAA@XZ
; public: __cdecl CILong::~CILong(void) __ptr64
??1CILong@@QEAA@XZ
; protected: __cdecl CINumber::~CINumber(void) __ptr64
??1CINumber@@IEAA@XZ
; public: virtual __cdecl CIPAccessDescriptor::~CIPAccessDescriptor(void) __ptr64
??1CIPAccessDescriptor@@UEAA@XZ
; public: virtual __cdecl CIPAddress::~CIPAddress(void) __ptr64
??1CIPAddress@@UEAA@XZ
; public: virtual __cdecl CInheritanceDlg::~CInheritanceDlg(void) __ptr64
??1CInheritanceDlg@@UEAA@XZ
; public: virtual __cdecl CMappedBitmapButton::~CMappedBitmapButton(void) __ptr64
??1CMappedBitmapButton@@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
; protected: __cdecl CODLBox::~CODLBox(void) __ptr64
??1CODLBox@@IEAA@XZ
; public: virtual __cdecl CObListIter::~CObListIter(void) __ptr64
??1CObListIter@@UEAA@XZ
; public: virtual __cdecl CObListPlus::~CObListPlus(void) __ptr64
??1CObListPlus@@UEAA@XZ
; public: virtual __cdecl CObjectPlus::~CObjectPlus(void) __ptr64
??1CObjectPlus@@UEAA@XZ
; public: virtual __cdecl CRMCComboBox::~CRMCComboBox(void) __ptr64
??1CRMCComboBox@@UEAA@XZ
; public: virtual __cdecl CRMCListBox::~CRMCListBox(void) __ptr64
??1CRMCListBox@@UEAA@XZ
; public: virtual __cdecl CRMCListBoxHeader::~CRMCListBoxHeader(void) __ptr64
??1CRMCListBoxHeader@@UEAA@XZ
; public: __cdecl CRMCListBoxResources::~CRMCListBoxResources(void) __ptr64
??1CRMCListBoxResources@@QEAA@XZ
; public: __cdecl CStrPassword::~CStrPassword(void) __ptr64
??1CStrPassword@@QEAA@XZ
; public: virtual __cdecl CStringListEx::~CStringListEx(void) __ptr64
??1CStringListEx@@UEAA@XZ
; public: virtual __cdecl CUpButton::~CUpButton(void) __ptr64
??1CUpButton@@UEAA@XZ
; public: virtual __cdecl CWamInterface::~CWamInterface(void) __ptr64
??1CWamInterface@@UEAA@XZ
; 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 CDirBrowseDlg & __ptr64 __cdecl CDirBrowseDlg::operator=(class CDirBrowseDlg const & __ptr64) __ptr64
??4CDirBrowseDlg@@QEAAAEAV0@AEBV0@@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 CGetComputer & __ptr64 __cdecl CGetComputer::operator=(class CGetComputer const & __ptr64) __ptr64
??4CGetComputer@@QEAAAEAV0@AEBV0@@Z
; public: class CIISAppPool & __ptr64 __cdecl CIISAppPool::operator=(class CIISAppPool & __ptr64) __ptr64
??4CIISAppPool@@QEAAAEAV0@AEAV0@@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 CILong & __ptr64 __cdecl CILong::operator=(class CILong const & __ptr64) __ptr64
??4CILong@@QEAAAEAV0@AEBV0@@Z
; public: class CILong & __ptr64 __cdecl CILong::operator=(long) __ptr64
??4CILong@@QEAAAEAV0@J@Z
; public: class CILong & __ptr64 __cdecl CILong::operator=(unsigned short const * __ptr64) __ptr64
??4CILong@@QEAAAEAV0@PEBG@Z
; public: class CINumber & __ptr64 __cdecl CINumber::operator=(class CINumber const & __ptr64) __ptr64
??4CINumber@@QEAAAEAV0@AEBV0@@Z
; public: class CIPAddress const & __ptr64 __cdecl CIPAddress::operator=(class CIPAddress const & __ptr64) __ptr64
??4CIPAddress@@QEAAAEBV0@AEBV0@@Z
; public: class CIPAddress const & __ptr64 __cdecl CIPAddress::operator=(class CString const & __ptr64) __ptr64
??4CIPAddress@@QEAAAEBV0@AEBVCString@@@Z
; public: class CIPAddress const & __ptr64 __cdecl CIPAddress::operator=(unsigned long) __ptr64
??4CIPAddress@@QEAAAEBV0@K@Z
; public: class CIPAddress const & __ptr64 __cdecl CIPAddress::operator=(unsigned short const * __ptr64) __ptr64
??4CIPAddress@@QEAAAEBV0@PEBG@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 CObjHelper & __ptr64 __cdecl CObjHelper::operator=(class CObjHelper const & __ptr64) __ptr64
??4CObjHelper@@QEAAAEAV0@AEBV0@@Z
; public: class CRMCListBoxDrawStruct & __ptr64 __cdecl CRMCListBoxDrawStruct::operator=(class CRMCListBoxDrawStruct const & __ptr64) __ptr64
??4CRMCListBoxDrawStruct@@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 CStringListEx & __ptr64 __cdecl CStringListEx::operator=(class CStringListEx const & __ptr64) __ptr64
??4CStringListEx@@QEAAAEAV0@AEBV0@@Z
; public: class CStringListEx & __ptr64 __cdecl CStringListEx::operator=(class CStringList const & __ptr64) __ptr64
??4CStringListEx@@QEAAAEAV0@AEBVCStringList@@@Z
; public: class CWamInterface & __ptr64 __cdecl CWamInterface::operator=(class CWamInterface & __ptr64) __ptr64
??4CWamInterface@@QEAAAEAV0@AEAV0@@Z
; public: int __cdecl CAccessEntry::operator==(class CAccessEntry const & __ptr64)const  __ptr64
??8CAccessEntry@@QEBAHAEBV0@@Z
; public: int __cdecl CAccessEntry::operator==(void * __ptr64 const)const  __ptr64
??8CAccessEntry@@QEBAHQEAX@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: int __cdecl CILong::operator==(long) __ptr64
??8CILong@@QEAAHJ@Z
; public: int __cdecl CIPAccessDescriptor::operator==(class CIPAccessDescriptor const & __ptr64)const  __ptr64
??8CIPAccessDescriptor@@QEBAHAEBV0@@Z
; public: int __cdecl CIPAddress::operator==(class CIPAddress const & __ptr64)const  __ptr64
??8CIPAddress@@QEBAHAEBV0@@Z
; public: int __cdecl CIPAddress::operator==(unsigned long)const  __ptr64
??8CIPAddress@@QEBAHK@Z
; public: bool __cdecl CStrPassword::operator==(class CStrPassword & __ptr64) __ptr64
??8CStrPassword@@QEAA_NAEAV0@@Z
; public: int __cdecl CStringListEx::operator==(class CStringList const & __ptr64) __ptr64
??8CStringListEx@@QEAAHAEBVCStringList@@@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: int __cdecl CILong::operator!=(class CILong & __ptr64) __ptr64
??9CILong@@QEAAHAEAV0@@Z
; public: int __cdecl CIPAddress::operator!=(class CIPAddress const & __ptr64)const  __ptr64
??9CIPAddress@@QEBAHAEBV0@@Z
; public: int __cdecl CIPAddress::operator!=(unsigned long)const  __ptr64
??9CIPAddress@@QEBAHK@Z
; public: bool __cdecl CStrPassword::operator!=(class CStrPassword & __ptr64) __ptr64
??9CStrPassword@@QEAA_NAEAV0@@Z
; public: int __cdecl CStringListEx::operator!=(class CStringList const & __ptr64) __ptr64
??9CStringListEx@@QEAAHAEBVCStringList@@@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 * __ptr64(void) __ptr64
??BCError@@QEAAPEAGXZ
; 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 CILong::operator long const (void)const  __ptr64
??BCILong@@QEBA?BJXZ
; public: __cdecl CILong::operator unsigned short const * __ptr64(void)const  __ptr64
??BCILong@@QEBAPEBGXZ
; public: __cdecl CIPAddress::operator class CString(void)const  __ptr64
??BCIPAddress@@QEBA?AVCString@@XZ
; public: __cdecl CIPAddress::operator unsigned long const (void)const  __ptr64
??BCIPAddress@@QEBA?BKXZ
; public: __cdecl CIPAddress::operator unsigned short const * __ptr64(void)const  __ptr64
??BCIPAddress@@QEBAPEBGXZ
; 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 CObjHelper::operator int(void) __ptr64
??BCObjHelper@@QEAAHXZ
; public: __cdecl CStrPassword::operator class CString(void) __ptr64
??BCStrPassword@@QEAA?AVCString@@XZ
; public: class CILong & __ptr64 __cdecl CILong::operator*=(class CILong const & __ptr64) __ptr64
??XCILong@@QEAAAEAV0@AEBV0@@Z
; public: class CILong & __ptr64 __cdecl CILong::operator*=(long) __ptr64
??XCILong@@QEAAAEAV0@J@Z
; public: class CILong & __ptr64 __cdecl CILong::operator*=(unsigned short const * __ptr64 const) __ptr64
??XCILong@@QEAAAEAV0@QEBG@Z
; public: class CILong & __ptr64 __cdecl CILong::operator+=(class CILong const & __ptr64) __ptr64
??YCILong@@QEAAAEAV0@AEBV0@@Z
; public: class CILong & __ptr64 __cdecl CILong::operator+=(long) __ptr64
??YCILong@@QEAAAEAV0@J@Z
; public: class CILong & __ptr64 __cdecl CILong::operator+=(unsigned short const * __ptr64 const) __ptr64
??YCILong@@QEAAAEAV0@QEBG@Z
; public: class CILong & __ptr64 __cdecl CILong::operator-=(class CILong const & __ptr64) __ptr64
??ZCILong@@QEAAAEAV0@AEBV0@@Z
; public: class CILong & __ptr64 __cdecl CILong::operator-=(long) __ptr64
??ZCILong@@QEAAAEAV0@J@Z
; public: class CILong & __ptr64 __cdecl CILong::operator-=(unsigned short const * __ptr64 const) __ptr64
??ZCILong@@QEAAAEAV0@QEBG@Z
; public: class CILong & __ptr64 __cdecl CILong::operator/=(class CILong const & __ptr64) __ptr64
??_0CILong@@QEAAAEAV0@AEBV0@@Z
; public: class CILong & __ptr64 __cdecl CILong::operator/=(long) __ptr64
??_0CILong@@QEAAAEAV0@J@Z
; public: class CILong & __ptr64 __cdecl CILong::operator/=(unsigned short const * __ptr64 const) __ptr64
??_0CILong@@QEAAAEAV0@QEBG@Z
; const  CAccessEntry::`vftable'{for `CObjHelper'}
??_7CAccessEntry@@6BCObjHelper@@@
; const  CAccessEntry::`vftable'{for `CObject'}
??_7CAccessEntry@@6BCObject@@@
; const  CConfirmDlg::`vftable'
??_7CConfirmDlg@@6B@
; const  CDirBrowseDlg::`vftable'
??_7CDirBrowseDlg@@6B@
; const  CDownButton::`vftable'
??_7CDownButton@@6B@
; const  CEmphasizedDialog::`vftable'
??_7CEmphasizedDialog@@6B@
; const  CGetUsers::`vftable'
??_7CGetUsers@@6B@
; const  CHeaderListBox::`vftable'{for `CListBox'}
??_7CHeaderListBox@@6BCListBox@@@
; const  CHeaderListBox::`vftable'{for `CODLBox'}
??_7CHeaderListBox@@6BCODLBox@@@
; const  CIISAppPool::`vftable'{for `CMetaKey'}
??_7CIISAppPool@@6BCMetaKey@@@
; const  CIISAppPool::`vftable'{for `CWamInterface'}
??_7CIISAppPool@@6BCWamInterface@@@
; 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  CIISWizardBookEnd::`vftable'
??_7CIISWizardBookEnd@@6B@
; const  CIISWizardPage::`vftable'
??_7CIISWizardPage@@6B@
; const  CIISWizardSheet::`vftable'
??_7CIISWizardSheet@@6B@
; const  CIPAccessDescriptor::`vftable'{for `CObjHelper'}
??_7CIPAccessDescriptor@@6BCObjHelper@@@
; const  CIPAccessDescriptor::`vftable'{for `CObject'}
??_7CIPAccessDescriptor@@6BCObject@@@
; const  CIPAddress::`vftable'{for `CObjHelper'}
??_7CIPAddress@@6BCObjHelper@@@
; const  CIPAddress::`vftable'{for `CObject'}
??_7CIPAddress@@6BCObject@@@
; const  CInheritanceDlg::`vftable'
??_7CInheritanceDlg@@6B@
; const  CMappedBitmapButton::`vftable'
??_7CMappedBitmapButton@@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  CODLBox::`vftable'
??_7CODLBox@@6B@
; const  CObListIter::`vftable'{for `CObjHelper'}
??_7CObListIter@@6BCObjHelper@@@
; const  CObListIter::`vftable'{for `CObject'}
??_7CObListIter@@6BCObject@@@
; const  CObListPlus::`vftable'{for `CObList'}
??_7CObListPlus@@6BCObList@@@
; const  CObListPlus::`vftable'{for `CObjHelper'}
??_7CObListPlus@@6BCObjHelper@@@
; const  CObjHelper::`vftable'
??_7CObjHelper@@6B@
; const  CObjectPlus::`vftable'{for `CObjHelper'}
??_7CObjectPlus@@6BCObjHelper@@@
; const  CObjectPlus::`vftable'{for `CObject'}
??_7CObjectPlus@@6BCObject@@@
; const  CRMCComboBox::`vftable'{for `CComboBox'}
??_7CRMCComboBox@@6BCComboBox@@@
; const  CRMCComboBox::`vftable'{for `CODLBox'}
??_7CRMCComboBox@@6BCODLBox@@@
; const  CRMCListBox::`vftable'{for `CListBox'}
??_7CRMCListBox@@6BCListBox@@@
; const  CRMCListBox::`vftable'{for `CODLBox'}
??_7CRMCListBox@@6BCODLBox@@@
; const  CRMCListBoxHeader::`vftable'
??_7CRMCListBoxHeader@@6B@
; const  CStringListEx::`vftable'
??_7CStringListEx@@6B@
; const  CUpButton::`vftable'
??_7CUpButton@@6B@
; const  CWamInterface::`vftable'
??_7CWamInterface@@6B@
; public: void __cdecl CComAuthInfo::`default constructor closure'(void) __ptr64
??_FCComAuthInfo@@QEAAXXZ
; public: void __cdecl CConfirmDlg::`default constructor closure'(void) __ptr64
??_FCConfirmDlg@@QEAAXXZ
; public: void __cdecl CDirBrowseDlg::`default constructor closure'(void) __ptr64
??_FCDirBrowseDlg@@QEAAXXZ
; public: void __cdecl CHeaderListBox::`default constructor closure'(void) __ptr64
??_FCHeaderListBox@@QEAAXXZ
; public: void __cdecl CIISWizardBookEnd::`default constructor closure'(void) __ptr64
??_FCIISWizardBookEnd@@QEAAXXZ
; public: void __cdecl CIISWizardPage::`default constructor closure'(void) __ptr64
??_FCIISWizardPage@@QEAAXXZ
; public: void __cdecl CIISWizardSheet::`default constructor closure'(void) __ptr64
??_FCIISWizardSheet@@QEAAXXZ
; public: void __cdecl CIPAccessDescriptor::`default constructor closure'(void) __ptr64
??_FCIPAccessDescriptor@@QEAAXXZ
; public: void __cdecl CMetabasePath::`default constructor closure'(void) __ptr64
??_FCMetabasePath@@QEAAXXZ
; public: void __cdecl CObListPlus::`default constructor closure'(void) __ptr64
??_FCObListPlus@@QEAAXXZ
; public: void __cdecl CRMCListBoxHeader::`default constructor closure'(void) __ptr64
??_FCRMCListBoxHeader@@QEAAXXZ
; public: void __cdecl CStringListEx::`default constructor closure'(void) __ptr64
??_FCStringListEx@@QEAAXXZ
; void __cdecl ActivateControl(class CWnd & __ptr64,int)
?ActivateControl@@YAXAEAVCWnd@@H@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 CAccessEntry::AddPermissions(unsigned long) __ptr64
?AddPermissions@CAccessEntry@@QEAAXK@Z
; public: int __cdecl CODLBox::AddTab(unsigned int) __ptr64
?AddTab@CODLBox@@QEAAHI@Z
; public: int __cdecl CODLBox::AddTabFromHeaders(class CWnd & __ptr64,class CWnd & __ptr64) __ptr64
?AddTabFromHeaders@CODLBox@@QEAAHAEAVCWnd@@0@Z
; public: int __cdecl CODLBox::AddTabFromHeaders(unsigned int,unsigned int) __ptr64
?AddTabFromHeaders@CODLBox@@QEAAHII@Z
; char * __ptr64 __cdecl AllocAnsiString(unsigned short const * __ptr64)
?AllocAnsiString@@YAPEADPEBG@Z
; unsigned short * __ptr64 __cdecl AllocString(unsigned short const * __ptr64,int)
?AllocString@@YAPEAGPEBGH@Z
; protected: static int __cdecl CINumber::Allocate(void)
?Allocate@CINumber@@KAHXZ
; 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
; class CString  __cdecl AppendToDevicePath(class CString,unsigned short const * __ptr64)
?AppendToDevicePath@@YA?AVCString@@V1@PEBG@Z
; void __cdecl ApplyFontToControls(class CWnd * __ptr64,class CFont * __ptr64,unsigned int,unsigned int)
?ApplyFontToControls@@YAXPEAVCWnd@@PEAVCFont@@II@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: void __cdecl CODLBox::AttachResources(class CRMCListBoxResources const * __ptr64) __ptr64
?AttachResources@CODLBox@@QEAAXPEBVCRMCListBoxResources@@@Z
; protected: void __cdecl CODLBox::AttachWindow(class CWnd * __ptr64) __ptr64
?AttachWindow@CODLBox@@IEAAXPEAVCWnd@@@Z
; 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: long __cdecl CMetaBack::BackupWithPassword(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?BackupWithPassword@CMetaBack@@QEAAJPEBG0@Z
; protected: long __cdecl CMetaInterface::BackupWithPassword(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned short const * __ptr64) __ptr64
?BackupWithPassword@CMetaInterface@@IEAAJPEBGKK0@Z
; public: int __cdecl CRMCListBoxResources::BitmapHeight(void)const  __ptr64
?BitmapHeight@CRMCListBoxResources@@QEBAHXZ
; public: int __cdecl CRMCListBoxResources::BitmapWidth(void)const  __ptr64
?BitmapWidth@CRMCListBoxResources@@QEBAHXZ
; int __cdecl BuildAclBlob(class CObListPlus & __ptr64,class CBlob & __ptr64)
?BuildAclBlob@@YAHAEAVCObListPlus@@AEAVCBlob@@@Z
; unsigned long __cdecl BuildAclOblistFromBlob(class CBlob & __ptr64,class CObListPlus & __ptr64)
?BuildAclOblistFromBlob@@YAKAEAVCBlob@@AEAVCObListPlus@@@Z
; public: static double __cdecl CINumber::BuildFloat(long,long)
?BuildFloat@CINumber@@SANJJ@Z
; void __cdecl BuildIplBlob(class CObListPlus & __ptr64,int,class CBlob & __ptr64)
?BuildIplBlob@@YAXAEAVCObListPlus@@HAEAVCBlob@@@Z
; unsigned long __cdecl BuildIplOblistFromBlob(class CBlob & __ptr64,class CObListPlus & __ptr64,int & __ptr64)
?BuildIplOblistFromBlob@@YAKAEAVCBlob@@AEAVCObListPlus@@AEAH@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
; int __cdecl CStringFindNoCase(class CString const & __ptr64,unsigned short const * __ptr64)
?CStringFindNoCase@@YAHAEBVCString@@PEBG@Z
; protected: void __cdecl CODLBox::CalculateTextHeight(class CFont * __ptr64) __ptr64
?CalculateTextHeight@CODLBox@@IEAAXPEAVCFont@@@Z
; public: int __cdecl CODLBox::ChangeFont(class CFont * __ptr64) __ptr64
?ChangeFont@CODLBox@@QEAAHPEAVCFont@@@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
; protected: class CString & __ptr64 __cdecl CInheritanceDlg::CleanDescendantPath(class CString & __ptr64) __ptr64
?CleanDescendantPath@CInheritanceDlg@@IEAAAEAVCString@@AEAV2@@Z
; public: static unsigned short const * __ptr64 __cdecl CMetabasePath::CleanMetaPath(class CString & __ptr64)
?CleanMetaPath@CMetabasePath@@SAPEBGAEAVCString@@@Z
; public: void __cdecl CBlob::CleanUp(void) __ptr64
?CleanUp@CBlob@@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: unsigned long __cdecl CRMCListBoxResources::ColorHighlight(void)const  __ptr64
?ColorHighlight@CRMCListBoxResources@@QEBAKXZ
; public: unsigned long __cdecl CRMCListBoxResources::ColorHighlightText(void)const  __ptr64
?ColorHighlightText@CRMCListBoxResources@@QEBAKXZ
; public: unsigned long __cdecl CRMCListBoxResources::ColorWindow(void)const  __ptr64
?ColorWindow@CRMCListBoxResources@@QEBAKXZ
; public: unsigned long __cdecl CRMCListBoxResources::ColorWindowText(void)const  __ptr64
?ColorWindowText@CRMCListBoxResources@@QEBAKXZ
; protected: int __cdecl CODLBox::ColumnText(class CRMCListBoxDrawStruct & __ptr64,int,int,unsigned short const * __ptr64) __ptr64
?ColumnText@CODLBox@@IEAAHAEAVCRMCListBoxDrawStruct@@HHPEBG@Z
; protected: static int __cdecl CODLBox::ColumnText(class CDC * __ptr64,int,int,int,int,unsigned short const * __ptr64)
?ColumnText@CODLBox@@KAHPEAVCDC@@HHHHPEBG@Z
; protected: void __cdecl CIISApplication::CommonConstruct(void) __ptr64
?CommonConstruct@CIISApplication@@IEAAXXZ
; public: virtual int __cdecl CObjectPlus::Compare(class CObjectPlus const * __ptr64)const  __ptr64
?Compare@CObjectPlus@@UEBAHPEBV1@@Z
; public: int __cdecl CStrPassword::Compare(class CStrPassword & __ptr64)const  __ptr64
?Compare@CStrPassword@@QEBAHAEAV1@@Z
; public: int __cdecl CStrPassword::Compare(class CString & __ptr64)const  __ptr64
?Compare@CStrPassword@@QEBAHAEAVCString@@@Z
; public: int __cdecl CStrPassword::Compare(unsigned short const * __ptr64)const  __ptr64
?Compare@CStrPassword@@QEBAHPEBG@Z
; public: int __cdecl CIPAddress::CompareItem(class CIPAddress const & __ptr64)const  __ptr64
?CompareItem@CIPAddress@@QEBAHAEBV1@@Z
; protected: void __cdecl CODLBox::ComputeMargins(class CRMCListBoxDrawStruct & __ptr64,int,int & __ptr64,int & __ptr64) __ptr64
?ComputeMargins@CODLBox@@IEAAXAEAVCRMCListBoxDrawStruct@@HAEAH1@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
; unsigned long __cdecl ConvertDoubleNullListToStringList(unsigned short const * __ptr64,class CStringList & __ptr64,int)
?ConvertDoubleNullListToStringList@@YAKPEBGAEAVCStringList@@H@Z
; public: static unsigned short const * __ptr64 __cdecl CINumber::ConvertFloatToString(double,int,class CString & __ptr64)
?ConvertFloatToString@CINumber@@SAPEBGNHAEAVCString@@@Z
; public: static unsigned short const * __ptr64 __cdecl CINumber::ConvertLongToString(long,class CString & __ptr64)
?ConvertLongToString@CINumber@@SAPEBGJAEAVCString@@@Z
; int __cdecl ConvertSepLineToStringList(unsigned short const * __ptr64,class CStringList & __ptr64,unsigned short const * __ptr64)
?ConvertSepLineToStringList@@YAHPEBGAEAVCStringList@@0@Z
; unsigned long __cdecl ConvertStringListToDoubleNullList(class CStringList & __ptr64,unsigned long & __ptr64,unsigned short * __ptr64 & __ptr64)
?ConvertStringListToDoubleNullList@@YAKAEAVCStringList@@AEAKAEAPEAG@Z
; unsigned short const * __ptr64 __cdecl ConvertStringListToSepLine(class CStringList & __ptr64,class CString & __ptr64,unsigned short const * __ptr64)
?ConvertStringListToSepLine@@YAPEBGAEAVCStringList@@AEAVCString@@PEBG@Z
; public: static int __cdecl CINumber::ConvertStringToFloat(unsigned short const * __ptr64,double & __ptr64)
?ConvertStringToFloat@CINumber@@SAHPEBGAEAN@Z
; public: static int __cdecl CINumber::ConvertStringToLong(unsigned short const * __ptr64,long & __ptr64)
?ConvertStringToLong@CINumber@@SAHPEBGAEAJ@Z
; public: long __cdecl CMetaKey::ConvertToParentPath(int) __ptr64
?ConvertToParentPath@CMetaKey@@QEAAJH@Z
; public: static unsigned short const * __ptr64 __cdecl CMetabasePath::ConvertToParentPath(class CString & __ptr64)
?ConvertToParentPath@CMetabasePath@@SAPEBGAEAVCString@@@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 CString & __ptr64) __ptr64
?CopyTo@CStrPassword@@QEAAXAEAVCString@@@Z
; public: long __cdecl CIISAppPool::Create(unsigned short const * __ptr64) __ptr64
?Create@CIISAppPool@@QEAAJPEBG@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
; public: int __cdecl CRMCListBoxHeader::Create(unsigned long,struct tagRECT const & __ptr64,class CWnd * __ptr64,class CHeaderListBox * __ptr64,unsigned int) __ptr64
?Create@CRMCListBoxHeader@@QEAAHKAEBUtagRECT@@PEAVCWnd@@PEAVCHeaderListBox@@I@Z
; protected: long __cdecl CWamInterface::Create(void) __ptr64
?Create@CWamInterface@@IEAAJXZ
; protected: long __cdecl CWamInterface::CreateApplication(unsigned short const * __ptr64,unsigned long,unsigned short const * __ptr64,int) __ptr64
?CreateApplication@CWamInterface@@IEAAJPEBGK0H@Z
; protected: long __cdecl CWamInterface::CreateApplicationPool(unsigned short const * __ptr64) __ptr64
?CreateApplicationPool@CWamInterface@@IEAAJPEBG@Z
; public: static class CObject * __ptr64 __cdecl CEmphasizedDialog::CreateObject(void)
?CreateObject@CEmphasizedDialog@@SAPEAVCObject@@XZ
; public: static class CObject * __ptr64 __cdecl CIISWizardBookEnd::CreateObject(void)
?CreateObject@CIISWizardBookEnd@@SAPEAVCObject@@XZ
; public: static class CObject * __ptr64 __cdecl CIISWizardPage::CreateObject(void)
?CreateObject@CIISWizardPage@@SAPEAVCObject@@XZ
; public: static class CObject * __ptr64 __cdecl CIISWizardSheet::CreateObject(void)
?CreateObject@CIISWizardSheet@@SAPEAVCObject@@XZ
; public: long __cdecl CMetaKey::CreatePathFromFailedOpen(void) __ptr64
?CreatePathFromFailedOpen@CMetaKey@@QEAAJXZ
; public: long __cdecl CIISApplication::CreatePooled(unsigned short const * __ptr64,unsigned long,unsigned short const * __ptr64,int) __ptr64
?CreatePooled@CIISApplication@@QEAAJPEBGK0H@Z
; 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
; public: long __cdecl CMetaInterface::CreateSite(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64) __ptr64
?CreateSite@CMetaInterface@@QEAAJPEBG000PEAK1@Z
; int __cdecl CreateSpecialDialogFont(class CWnd * __ptr64,class CFont * __ptr64,long,long,long,int,int)
?CreateSpecialDialogFont@@YAHPEAVCWnd@@PEAVCFont@@JJJHH@Z
; int __cdecl CvtGMTStringToInternal(unsigned short const * __ptr64,__int64 * __ptr64)
?CvtGMTStringToInternal@@YAHPEBGPEA_J@Z
; void __cdecl CvtInternalToGMTString(__int64,class CString & __ptr64)
?CvtInternalToGMTString@@YAX_JAEAVCString@@@Z
; int __cdecl CvtStringToLong(unsigned short const * __ptr64,unsigned long * __ptr64)
?CvtStringToLong@@YAHPEBGPEAK@Z
; protected: static long __cdecl CError::CvtToInternalFormat(long)
?CvtToInternalFormat@CError@@KAJJ@Z
; void __cdecl DDV_FilePath(class CDataExchange * __ptr64,class CString & __ptr64,int)
?DDV_FilePath@@YAXPEAVCDataExchange@@AEAVCString@@H@Z
; void __cdecl DDV_FolderPath(class CDataExchange * __ptr64,class CString & __ptr64,int)
?DDV_FolderPath@@YAXPEAVCDataExchange@@AEAVCString@@H@Z
; void __cdecl DDV_MaxCharsBalloon(class CDataExchange * __ptr64,class CString const & __ptr64,int)
?DDV_MaxCharsBalloon@@YAXPEAVCDataExchange@@AEBVCString@@H@Z
; void __cdecl DDV_MaxCharsBalloon_SecuredString(class CDataExchange * __ptr64,class CStrPassword const & __ptr64,int)
?DDV_MaxCharsBalloon_SecuredString@@YAXPEAVCDataExchange@@AEBVCStrPassword@@H@Z
; void __cdecl DDV_MaxChars_SecuredString(class CDataExchange * __ptr64,class CStrPassword const & __ptr64,int)
?DDV_MaxChars_SecuredString@@YAXPEAVCDataExchange@@AEBVCStrPassword@@H@Z
; void __cdecl DDV_MinChars(class CDataExchange * __ptr64,class CString const & __ptr64,int)
?DDV_MinChars@@YAXPEAVCDataExchange@@AEBVCString@@H@Z
; void __cdecl DDV_MinChars_SecuredString(class CDataExchange * __ptr64,class CStrPassword const & __ptr64,int)
?DDV_MinChars_SecuredString@@YAXPEAVCDataExchange@@AEBVCStrPassword@@H@Z
; void __cdecl DDV_MinMaxBalloon(class CDataExchange * __ptr64,int,unsigned long,unsigned long)
?DDV_MinMaxBalloon@@YAXPEAVCDataExchange@@HKK@Z
; void __cdecl DDV_MinMaxChars(class CDataExchange * __ptr64,class CString const & __ptr64,int,int)
?DDV_MinMaxChars@@YAXPEAVCDataExchange@@AEBVCString@@HH@Z
; void __cdecl DDV_MinMaxChars_SecuredString(class CDataExchange * __ptr64,class CStrPassword const & __ptr64,int,int)
?DDV_MinMaxChars_SecuredString@@YAXPEAVCDataExchange@@AEBVCStrPassword@@HH@Z
; void __cdecl DDV_MinMaxSpin(class CDataExchange * __ptr64,struct HWND__ * __ptr64,int,int)
?DDV_MinMaxSpin@@YAXPEAVCDataExchange@@PEAUHWND__@@HH@Z
; void __cdecl DDV_ShowBalloonAndFail(class CDataExchange * __ptr64,unsigned int)
?DDV_ShowBalloonAndFail@@YAXPEAVCDataExchange@@I@Z
; void __cdecl DDV_ShowBalloonAndFail(class CDataExchange * __ptr64,class CString)
?DDV_ShowBalloonAndFail@@YAXPEAVCDataExchange@@VCString@@@Z
; void __cdecl DDV_UNCFolderPath(class CDataExchange * __ptr64,class CString & __ptr64,int)
?DDV_UNCFolderPath@@YAXPEAVCDataExchange@@AEAVCString@@H@Z
; void __cdecl DDV_Url(class CDataExchange * __ptr64,class CString & __ptr64)
?DDV_Url@@YAXPEAVCDataExchange@@AEAVCString@@@Z
; void __cdecl DDX_Password(class CDataExchange * __ptr64,int,class CString & __ptr64,unsigned short const * __ptr64)
?DDX_Password@@YAXPEAVCDataExchange@@HAEAVCString@@PEBG@Z
; void __cdecl DDX_Password_SecuredString(class CDataExchange * __ptr64,int,class CStrPassword & __ptr64,unsigned short const * __ptr64)
?DDX_Password_SecuredString@@YAXPEAVCDataExchange@@HAEAVCStrPassword@@PEBG@Z
; void __cdecl DDX_Spin(class CDataExchange * __ptr64,int,int & __ptr64)
?DDX_Spin@@YAXPEAVCDataExchange@@HAEAH@Z
; void __cdecl DDX_Text(class CDataExchange * __ptr64,int,class CILong & __ptr64)
?DDX_Text@@YAXPEAVCDataExchange@@HAEAVCILong@@@Z
; void __cdecl DDX_TextBalloon(class CDataExchange * __ptr64,int,unsigned char & __ptr64)
?DDX_TextBalloon@@YAXPEAVCDataExchange@@HAEAE@Z
; void __cdecl DDX_TextBalloon(class CDataExchange * __ptr64,int,short & __ptr64)
?DDX_TextBalloon@@YAXPEAVCDataExchange@@HAEAF@Z
; void __cdecl DDX_TextBalloon(class CDataExchange * __ptr64,int,int & __ptr64)
?DDX_TextBalloon@@YAXPEAVCDataExchange@@HAEAH@Z
; void __cdecl DDX_TextBalloon(class CDataExchange * __ptr64,int,unsigned int & __ptr64)
?DDX_TextBalloon@@YAXPEAVCDataExchange@@HAEAI@Z
; void __cdecl DDX_TextBalloon(class CDataExchange * __ptr64,int,long & __ptr64)
?DDX_TextBalloon@@YAXPEAVCDataExchange@@HAEAJ@Z
; void __cdecl DDX_TextBalloon(class CDataExchange * __ptr64,int,unsigned long & __ptr64)
?DDX_TextBalloon@@YAXPEAVCDataExchange@@HAEAK@Z
; void __cdecl DDX_TextBalloon(class CDataExchange * __ptr64,int,__int64 & __ptr64)
?DDX_TextBalloon@@YAXPEAVCDataExchange@@HAEA_J@Z
; void __cdecl DDX_TextBalloon(class CDataExchange * __ptr64,int,unsigned __int64 & __ptr64)
?DDX_TextBalloon@@YAXPEAVCDataExchange@@HAEA_K@Z
; void __cdecl DDX_Text_SecuredString(class CDataExchange * __ptr64,int,class CStrPassword & __ptr64)
?DDX_Text_SecuredString@@YAXPEAVCDataExchange@@HAEAVCStrPassword@@@Z
; public: static unsigned char * __ptr64 __cdecl CIPAddress::DWORDtoLPBYTE(unsigned long,unsigned char * __ptr64)
?DWORDtoLPBYTE@CIPAddress@@SAPEAEKPEAE@Z
; protected: static void __cdecl CINumber::DeAllocate(void)
?DeAllocate@CINumber@@KAXXZ
; protected: static void __cdecl CError::DeAllocateStatics(void)
?DeAllocateStatics@CError@@KAXXZ
; unsigned long __cdecl DeflateEnvironmentVariablePath(unsigned short const * __ptr64,class CString & __ptr64)
?DeflateEnvironmentVariablePath@@YAKPEBGAEAVCString@@@Z
; public: long __cdecl CIISAppPool::Delete(unsigned short const * __ptr64) __ptr64
?Delete@CIISAppPool@@QEAAJPEBG@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 CWamInterface::DeleteApplication(unsigned short const * __ptr64,int) __ptr64
?DeleteApplication@CWamInterface@@IEAAJPEBGH@Z
; protected: long __cdecl CWamInterface::DeleteApplicationPool(unsigned short const * __ptr64) __ptr64
?DeleteApplicationPool@CWamInterface@@IEAAJPEBG@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: int __cdecl CHeaderListBox::DeleteHeaderItem(int) __ptr64
?DeleteHeaderItem@CHeaderListBox@@IEAAHH@Z
; public: int __cdecl CRMCListBoxHeader::DeleteItem(int) __ptr64
?DeleteItem@CRMCListBoxHeader@@QEAAHH@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
; protected: void __cdecl CHeaderListBox::DistributeColumns(void) __ptr64
?DistributeColumns@CHeaderListBox@@IEAAXXZ
; protected: virtual void __cdecl CConfirmDlg::DoDataExchange(class CDataExchange * __ptr64) __ptr64
?DoDataExchange@CConfirmDlg@@MEAAXPEAVCDataExchange@@@Z
; protected: virtual void __cdecl CInheritanceDlg::DoDataExchange(class CDataExchange * __ptr64) __ptr64
?DoDataExchange@CInheritanceDlg@@MEAAXPEAVCDataExchange@@@Z
; public: virtual int __cdecl CDirBrowseDlg::DoModal(void) __ptr64
?DoModal@CDirBrowseDlg@@UEAAHXZ
; public: virtual __int64 __cdecl CInheritanceDlg::DoModal(void) __ptr64
?DoModal@CInheritanceDlg@@UEAA_JXZ
; public: long __cdecl CMetaKey::DoesPathExist(unsigned short const * __ptr64) __ptr64
?DoesPathExist@CMetaKey@@QEAAJPEBG@Z
; public: int __cdecl CRMCListBoxHeader::DoesRespondToColumnWidthChanges(void)const  __ptr64
?DoesRespondToColumnWidthChanges@CRMCListBoxHeader@@QEBAHXZ
; int __cdecl DoesUNCShareExist(class CString & __ptr64)
?DoesUNCShareExist@@YAHAEAVCString@@@Z
; protected: int __cdecl CODLBox::DrawBitmap(class CRMCListBoxDrawStruct & __ptr64,int,int) __ptr64
?DrawBitmap@CODLBox@@IEAAHAEAVCRMCListBoxDrawStruct@@HH@Z
; protected: virtual void __cdecl CRMCComboBox::DrawItem(struct tagDRAWITEMSTRUCT * __ptr64) __ptr64
?DrawItem@CRMCComboBox@@MEAAXPEAUtagDRAWITEMSTRUCT@@@Z
; protected: virtual void __cdecl CRMCListBox::DrawItem(struct tagDRAWITEMSTRUCT * __ptr64) __ptr64
?DrawItem@CRMCListBox@@MEAAXPEAUtagDRAWITEMSTRUCT@@@Z
; protected: virtual void __cdecl CRMCComboBox::DrawItemEx(class CRMCListBoxDrawStruct & __ptr64) __ptr64
?DrawItemEx@CRMCComboBox@@MEAAXAEAVCRMCListBoxDrawStruct@@@Z
; protected: virtual void __cdecl CRMCListBox::DrawItemEx(class CRMCListBoxDrawStruct & __ptr64) __ptr64
?DrawItemEx@CRMCListBox@@MEAAXAEAVCRMCListBoxDrawStruct@@@Z
; public: int __cdecl CIPAccessDescriptor::DuplicateInList(class CObListPlus & __ptr64) __ptr64
?DuplicateInList@CIPAccessDescriptor@@QEAAHAEAVCObListPlus@@@Z
; void __cdecl EditHideBalloon(void)
?EditHideBalloon@@YAXXZ
; void __cdecl EditShowBalloon(struct HWND__ * __ptr64,unsigned int)
?EditShowBalloon@@YAXPEAUHWND__@@I@Z
; void __cdecl EditShowBalloon(struct HWND__ * __ptr64,class CString)
?EditShowBalloon@@YAXPEAUHWND__@@VCString@@@Z
; public: void __cdecl CStrPassword::Empty(void) __ptr64
?Empty@CStrPassword@@QEAAXXZ
; public: void __cdecl CIISWizardSheet::EnableButton(int,int) __ptr64
?EnableButton@CIISWizardSheet@@QEAAXHH@Z
; protected: void __cdecl CIISWizardPage::EnableSheetButton(int,int) __ptr64
?EnableSheetButton@CIISWizardPage@@IEAAXHH@Z
; public: int __cdecl CHeaderListBox::EnableWindow(int) __ptr64
?EnableWindow@CHeaderListBox@@QEAAHH@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::EnumHistory(unsigned short * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,struct _FILETIME * __ptr64,unsigned long) __ptr64
?EnumHistory@CMetaInterface@@IEAAJPEAGPEAK1PEAU_FILETIME@@K@Z
; protected: long __cdecl CMetaInterface::EnumKeys(unsigned long,unsigned short const * __ptr64,unsigned short * __ptr64,unsigned long) __ptr64
?EnumKeys@CMetaInterface@@IEAAJKPEBGPEAGK@Z
; public: long __cdecl CIISAppPool::EnumerateApplications(class CStringListEx & __ptr64) __ptr64
?EnumerateApplications@CIISAppPool@@QEAAJAEAVCStringListEx@@@Z
; protected: long __cdecl CWamInterface::EnumerateApplicationsInPool(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
?EnumerateApplicationsInPool@CWamInterface@@IEAAJPEBGPEAPEAG@Z
; protected: int __cdecl CError::ExpandEscapeCode(unsigned short * __ptr64,unsigned long,unsigned short * __ptr64 & __ptr64,class CString & __ptr64,long & __ptr64)const  __ptr64
?ExpandEscapeCode@CError@@IEBAHPEAGKAEAPEAGAEAVCString@@AEAJ@Z
; public: int __cdecl CError::Failed(void)const  __ptr64
?Failed@CError@@QEBAHXZ
; public: static int __cdecl CError::Failed(long)
?Failed@CError@@SAHJ@Z
; int __cdecl FetchIpAddressFromCombo(class CComboBox & __ptr64,class CObListPlus & __ptr64,class CIPAddress & __ptr64)
?FetchIpAddressFromCombo@@YAHAEAVCComboBox@@AEAVCObListPlus@@AEAVCIPAddress@@@Z
; public: int __cdecl CObListPlus::FindElement(class CObject * __ptr64)const  __ptr64
?FindElement@CObListPlus@@QEBAHPEAVCObject@@@Z
; protected: static unsigned short const * __ptr64 __cdecl CError::FindFacility(unsigned long)
?FindFacility@CError@@KAPEBGK@Z
; void __cdecl FitPathToControl(class CWnd & __ptr64,unsigned short const * __ptr64,int)
?FitPathToControl@@YAXAEAVCWnd@@PEBGH@Z
; public: void __cdecl CAccessEntry::FlagForDeletion(int) __ptr64
?FlagForDeletion@CAccessEntry@@QEAAXH@Z
; public: void __cdecl CComAuthInfo::FreeServerInfoStruct(struct _COSERVERINFO * __ptr64)const  __ptr64
?FreeServerInfoStruct@CComAuthInfo@@QEBAXPEAU_COSERVERINFO@@@Z
; protected: int __cdecl CInheritanceDlg::FriendlyInstance(class CString & __ptr64,class CString & __ptr64) __ptr64
?FriendlyInstance@CInheritanceDlg@@IEAAHAEAVCString@@0@Z
; unsigned short const * __ptr64 __cdecl GUIDToCString(struct _GUID const & __ptr64,class CString & __ptr64)
?GUIDToCString@@YAPEBGAEBU_GUID@@AEAVCString@@@Z
; unsigned short const * __ptr64 __cdecl GenerateRegistryKey(class CString & __ptr64,unsigned short const * __ptr64)
?GenerateRegistryKey@@YAPEBGAEAVCString@@PEBG@Z
; public: long __cdecl CMetaInterface::GetAdminInterface2(struct IMSAdminBase2W * __ptr64 * __ptr64) __ptr64
?GetAdminInterface2@CMetaInterface@@QEAAJPEAPEAUIMSAdminBase2W@@@Z
; public: long __cdecl CMetaInterface::GetAdminInterface3(struct IMSAdminBase3W * __ptr64 * __ptr64) __ptr64
?GetAdminInterface3@CMetaInterface@@QEAAJPEAPEAUIMSAdminBase3W@@@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: long __cdecl CWamInterface::GetAppAdminInterface(struct IIISApplicationAdmin * __ptr64 * __ptr64) __ptr64
?GetAppAdminInterface@CWamInterface@@QEAAJPEAPEAUIIISApplicationAdmin@@@Z
; protected: struct HBRUSH__ * __ptr64 __cdecl CIISWizardPage::GetBackgroundBrush(void)const  __ptr64
?GetBackgroundBrush@CIISWizardPage@@IEBAPEAUHBRUSH__@@XZ
; public: struct HBRUSH__ * __ptr64 __cdecl CIISWizardSheet::GetBackgroundBrush(void)const  __ptr64
?GetBackgroundBrush@CIISWizardSheet@@QEBAPEAUHBRUSH__@@XZ
; public: unsigned long __cdecl CMetaKey::GetBase(void)const  __ptr64
?GetBase@CMetaKey@@QEBAKXZ
; protected: class CFont * __ptr64 __cdecl CIISWizardPage::GetBigFont(void) __ptr64
?GetBigFont@CIISWizardPage@@IEAAPEAVCFont@@XZ
; public: class CFont * __ptr64 __cdecl CIISWizardSheet::GetBigFont(void) __ptr64
?GetBigFont@CIISWizardSheet@@QEAAPEAVCFont@@XZ
; protected: class CDC * __ptr64 __cdecl CIISWizardPage::GetBitmapMemDC(void) __ptr64
?GetBitmapMemDC@CIISWizardPage@@IEAAPEAVCDC@@XZ
; public: class CDC * __ptr64 __cdecl CIISWizardSheet::GetBitmapMemDC(int) __ptr64
?GetBitmapMemDC@CIISWizardSheet@@QEAAPEAVCDC@@H@Z
; protected: class CFont * __ptr64 __cdecl CIISWizardPage::GetBoldFont(void) __ptr64
?GetBoldFont@CIISWizardPage@@IEAAPEAVCFont@@XZ
; public: class CFont * __ptr64 __cdecl CIISWizardSheet::GetBoldFont(void) __ptr64
?GetBoldFont@CIISWizardSheet@@QEAAPEAVCFont@@XZ
; public: int __cdecl CStrPassword::GetByteLength(void)const  __ptr64
?GetByteLength@CStrPassword@@QEBAHXZ
; protected: long __cdecl CMetaInterface::GetChildPaths(unsigned long,unsigned short const * __ptr64,unsigned long,unsigned short * __ptr64,unsigned long * __ptr64) __ptr64
?GetChildPaths@CMetaInterface@@IEAAJKPEBGKPEAGPEAK@Z
; public: long __cdecl CMetaKey::GetChildPaths(class CStringListEx & __ptr64,unsigned short const * __ptr64) __ptr64
?GetChildPaths@CMetaKey@@QEAAJAEAVCStringListEx@@PEBG@Z
; public: unsigned short * __ptr64 __cdecl CStrPassword::GetClearTextPassword(void) __ptr64
?GetClearTextPassword@CStrPassword@@QEAAPEAGXZ
; public: int __cdecl CRMCListBoxHeader::GetColumnWidth(int)const  __ptr64
?GetColumnWidth@CRMCListBoxHeader@@QEBAHH@Z
; public: int __cdecl CGetComputer::GetComputer(struct HWND__ * __ptr64) __ptr64
?GetComputer@CGetComputer@@QEAAHPEAUHWND__@@@Z
; public: int __cdecl CRMCListBox::GetCurSel(void)const  __ptr64
?GetCurSel@CRMCListBox@@QEBAHXZ
; 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 CInheritanceDlg::GetDataPaths(void) __ptr64
?GetDataPaths@CInheritanceDlg@@IEAAJXZ
; 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
; void __cdecl GetDlgCtlRect(struct HWND__ * __ptr64,struct HWND__ * __ptr64,struct tagRECT * __ptr64)
?GetDlgCtlRect@@YAXPEAUHWND__@@0PEAUtagRECT@@@Z
; public: unsigned short const * __ptr64 __cdecl CDirBrowseDlg::GetFullPath(class CString & __ptr64,int)const  __ptr64
?GetFullPath@CDirBrowseDlg@@QEBAPEBGAEAVCString@@H@Z
; void __cdecl GetFullPathLocalOrRemote(unsigned short const * __ptr64,unsigned short const * __ptr64,class CString & __ptr64)
?GetFullPathLocalOrRemote@@YAXPEBG0AEAVCString@@@Z
; public: unsigned long __cdecl CMetaKey::GetHandle(void)const  __ptr64
?GetHandle@CMetaKey@@QEBAKXZ
; protected: class CRMCListBoxHeader * __ptr64 __cdecl CHeaderListBox::GetHeader(void) __ptr64
?GetHeader@CHeaderListBox@@IEAAPEAVCRMCListBoxHeader@@XZ
; protected: int __cdecl CHeaderListBox::GetHeaderItem(int,struct _HD_ITEMW * __ptr64)const  __ptr64
?GetHeaderItem@CHeaderListBox@@IEBAHHPEAU_HD_ITEMW@@@Z
; protected: int __cdecl CHeaderListBox::GetHeaderItemCount(void)const  __ptr64
?GetHeaderItemCount@CHeaderListBox@@IEBAHXZ
; int __cdecl GetIUsrAccount(unsigned short const * __ptr64,class CWnd * __ptr64,class CString & __ptr64)
?GetIUsrAccount@@YAHPEBGPEAVCWnd@@AEAVCString@@@Z
; int __cdecl GetIUsrAccount(unsigned short const * __ptr64,class CWnd * __ptr64,unsigned short * __ptr64,int)
?GetIUsrAccount@@YAHPEBGPEAVCWnd@@PEAGH@Z
; 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 CString & __ptr64,class CString * __ptr64)
?GetInstancePath@CMetabasePath@@SAPEBGPEBGAEAVCString@@PEAV2@@Z
; public: struct IMSAdminBaseW * __ptr64 __cdecl CMetaInterface::GetInterface(void) __ptr64
?GetInterface@CMetaInterface@@QEAAPEAUIMSAdminBaseW@@XZ
; public: int __cdecl CRMCListBoxHeader::GetItem(int,struct _HD_ITEMW * __ptr64)const  __ptr64
?GetItem@CRMCListBoxHeader@@QEBAHHPEAU_HD_ITEMW@@@Z
; public: int __cdecl CRMCListBoxHeader::GetItemCount(void)const  __ptr64
?GetItemCount@CRMCListBoxHeader@@QEBAHXZ
; 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 CString & __ptr64)
?GetLastNodeName@CMetabasePath@@SAPEBGPEBGAEAVCString@@@Z
; public: void __cdecl CError::GetLastWinError(void) __ptr64
?GetLastWinError@CError@@QEAAXXZ
; public: int __cdecl CStrPassword::GetLength(void)const  __ptr64
?GetLength@CStrPassword@@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 CString & __ptr64,class CString * __ptr64)
?GetMachinePath@CMetabasePath@@SAPEBGPEBGAEAVCString@@PEAV2@@Z
; protected: virtual struct AFX_MSGMAP const * __ptr64 __cdecl CConfirmDlg::GetMessageMap(void)const  __ptr64
?GetMessageMap@CConfirmDlg@@MEBAPEBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __ptr64 __cdecl CEmphasizedDialog::GetMessageMap(void)const  __ptr64
?GetMessageMap@CEmphasizedDialog@@MEBAPEBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __ptr64 __cdecl CHeaderListBox::GetMessageMap(void)const  __ptr64
?GetMessageMap@CHeaderListBox@@MEBAPEBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __ptr64 __cdecl CIISWizardBookEnd::GetMessageMap(void)const  __ptr64
?GetMessageMap@CIISWizardBookEnd@@MEBAPEBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __ptr64 __cdecl CIISWizardPage::GetMessageMap(void)const  __ptr64
?GetMessageMap@CIISWizardPage@@MEBAPEBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __ptr64 __cdecl CIISWizardSheet::GetMessageMap(void)const  __ptr64
?GetMessageMap@CIISWizardSheet@@MEBAPEBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __ptr64 __cdecl CInheritanceDlg::GetMessageMap(void)const  __ptr64
?GetMessageMap@CInheritanceDlg@@MEBAPEBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __ptr64 __cdecl CRMCComboBox::GetMessageMap(void)const  __ptr64
?GetMessageMap@CRMCComboBox@@MEBAPEBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __ptr64 __cdecl CRMCListBox::GetMessageMap(void)const  __ptr64
?GetMessageMap@CRMCListBox@@MEBAPEBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __ptr64 __cdecl CRMCListBoxHeader::GetMessageMap(void)const  __ptr64
?GetMessageMap@CRMCListBoxHeader@@MEBAPEBUAFX_MSGMAP@@XZ
; public: static struct CMetaKey::tagMDFIELDDEF const * __ptr64 __cdecl CMetaKey::GetMetaProp(unsigned long)
?GetMetaProp@CMetaKey@@SAPEBUtagMDFIELDDEF@1@K@Z
; public: void * __ptr64 __cdecl CRMCListBox::GetNextSelectedItem(int * __ptr64) __ptr64
?GetNextSelectedItem@CRMCListBox@@QEAAPEAXPEAH@Z
; public: class CString & __ptr64 __cdecl CConfirmDlg::GetPassword(void) __ptr64
?GetPassword@CConfirmDlg@@QEAAAEAVCString@@XZ
; public: long __cdecl CIISAppPool::GetProcessMode(unsigned long * __ptr64) __ptr64
?GetProcessMode@CIISAppPool@@QEAAJPEAK@Z
; protected: long __cdecl CWamInterface::GetProcessMode(unsigned long * __ptr64) __ptr64
?GetProcessMode@CWamInterface@@IEAAJPEAK@Z
; public: static int __cdecl CMetaKey::GetPropertyDescription(unsigned long,class CString & __ptr64)
?GetPropertyDescription@CMetaKey@@SAHKAEAVCString@@@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
; protected: static int __cdecl CODLBox::GetRequiredWidth(class CDC * __ptr64,class CRect const & __ptr64,unsigned short const * __ptr64,int)
?GetRequiredWidth@CODLBox@@KAHPEAVCDC@@AEBVCRect@@PEBGH@Z
; public: static unsigned short const * __ptr64 __cdecl CMetabasePath::GetRootPath(unsigned short const * __ptr64,class CString & __ptr64,class CString * __ptr64)
?GetRootPath@CMetabasePath@@SAPEBGPEBGAEAVCString@@PEAV2@@Z
; public: virtual struct CRuntimeClass * __ptr64 __cdecl CEmphasizedDialog::GetRuntimeClass(void)const  __ptr64
?GetRuntimeClass@CEmphasizedDialog@@UEBAPEAUCRuntimeClass@@XZ
; public: virtual struct CRuntimeClass * __ptr64 __cdecl CHeaderListBox::GetRuntimeClass(void)const  __ptr64
?GetRuntimeClass@CHeaderListBox@@UEBAPEAUCRuntimeClass@@XZ
; public: virtual struct CRuntimeClass * __ptr64 __cdecl CIISWizardBookEnd::GetRuntimeClass(void)const  __ptr64
?GetRuntimeClass@CIISWizardBookEnd@@UEBAPEAUCRuntimeClass@@XZ
; public: virtual struct CRuntimeClass * __ptr64 __cdecl CIISWizardPage::GetRuntimeClass(void)const  __ptr64
?GetRuntimeClass@CIISWizardPage@@UEBAPEAUCRuntimeClass@@XZ
; public: virtual struct CRuntimeClass * __ptr64 __cdecl CIISWizardSheet::GetRuntimeClass(void)const  __ptr64
?GetRuntimeClass@CIISWizardSheet@@UEBAPEAUCRuntimeClass@@XZ
; public: virtual struct CRuntimeClass * __ptr64 __cdecl CRMCComboBox::GetRuntimeClass(void)const  __ptr64
?GetRuntimeClass@CRMCComboBox@@UEBAPEAUCRuntimeClass@@XZ
; public: virtual struct CRuntimeClass * __ptr64 __cdecl CRMCListBox::GetRuntimeClass(void)const  __ptr64
?GetRuntimeClass@CRMCListBox@@UEBAPEAUCRuntimeClass@@XZ
; public: virtual struct CRuntimeClass * __ptr64 __cdecl CRMCListBoxHeader::GetRuntimeClass(void)const  __ptr64
?GetRuntimeClass@CRMCListBoxHeader@@UEBAPEAUCRuntimeClass@@XZ
; public: int __cdecl CRMCListBox::GetSel(int)const  __ptr64
?GetSel@CRMCListBox@@QEBAHH@Z
; public: int __cdecl CRMCListBox::GetSelCount(void)const  __ptr64
?GetSelCount@CRMCListBox@@QEBAHXZ
; public: void * __ptr64 __cdecl CRMCListBox::GetSelectedListItem(int * __ptr64) __ptr64
?GetSelectedListItem@CRMCListBox@@QEAAPEAXPEAH@Z
; public: static unsigned short const * __ptr64 __cdecl CMetabasePath::GetServiceInfoPath(unsigned short const * __ptr64,class CString & __ptr64,unsigned short const * __ptr64)
?GetServiceInfoPath@CMetabasePath@@SAPEBGPEBGAEAVCString@@0@Z
; public: static unsigned short const * __ptr64 __cdecl CMetabasePath::GetServicePath(unsigned short const * __ptr64,class CString & __ptr64,class CString * __ptr64)
?GetServicePath@CMetabasePath@@SAPEBGPEBGAEAVCString@@PEAV2@@Z
; protected: class CIISWizardSheet * __ptr64 __cdecl CIISWizardPage::GetSheet(void)const  __ptr64
?GetSheet@CIISWizardPage@@IEBAPEAVCIISWizardSheet@@XZ
; public: void * __ptr64 __cdecl CAccessEntry::GetSid(void) __ptr64
?GetSid@CAccessEntry@@QEAAPEAXXZ
; public: unsigned long __cdecl CBlob::GetSize(void)const  __ptr64
?GetSize@CBlob@@QEBAKXZ
; protected: class CFont * __ptr64 __cdecl CIISWizardPage::GetSpecialFont(void) __ptr64
?GetSpecialFont@CIISWizardPage@@IEAAPEAVCFont@@XZ
; public: class CFont * __ptr64 __cdecl CIISWizardSheet::GetSpecialFont(int) __ptr64
?GetSpecialFont@CIISWizardSheet@@QEAAPEAVCFont@@H@Z
; int __cdecl GetSpecialPathRealPath(int,class CString const & __ptr64,class CString & __ptr64)
?GetSpecialPathRealPath@@YAHHAEBVCString@@AEAV1@@Z
; protected: void __cdecl CRMCListBoxResources::GetSysColors(void) __ptr64
?GetSysColors@CRMCListBoxResources@@IEAAXXZ
; public: long __cdecl CMetaInterface::GetSystemChangeNumber(unsigned long * __ptr64) __ptr64
?GetSystemChangeNumber@CMetaInterface@@QEAAJPEAK@Z
; public: unsigned int __cdecl CODLBox::GetTab(int)const  __ptr64
?GetTab@CODLBox@@QEBAIH@Z
; public: int __cdecl CGetUsers::GetUsers(struct HWND__ * __ptr64,int) __ptr64
?GetUsers@CGetUsers@@QEAAHPEAUHWND__@@H@Z
; int __cdecl GetVolumeInformationSystemFlags(unsigned short const * __ptr64,unsigned long * __ptr64)
?GetVolumeInformationSystemFlags@@YAHPEBGPEAK@Z
; protected: class CBrush * __ptr64 __cdecl CIISWizardPage::GetWindowBrush(void) __ptr64
?GetWindowBrush@CIISWizardPage@@IEAAPEAVCBrush@@XZ
; public: class CBrush * __ptr64 __cdecl CIISWizardSheet::GetWindowBrush(void) __ptr64
?GetWindowBrush@CIISWizardSheet@@QEAAPEAVCBrush@@XZ
; public: void __cdecl CIPAccessDescriptor::GrantAccess(int) __ptr64
?GrantAccess@CIPAccessDescriptor@@QEAAXH@Z
; public: long __cdecl CError::HResult(void)const  __ptr64
?HResult@CError@@QEBAJXZ
; public: static long __cdecl CError::HResult(long)
?HResult@CError@@SAJJ@Z
; public: int __cdecl CIPAccessDescriptor::HasAccess(void)const  __ptr64
?HasAccess@CIPAccessDescriptor@@QEBAHXZ
; public: int __cdecl CAccessEntry::HasAppropriateAccess(unsigned long)const  __ptr64
?HasAppropriateAccess@CAccessEntry@@QEBAHK@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
; protected: int __cdecl CError::HasOverride(unsigned int * __ptr64)const  __ptr64
?HasOverride@CError@@IEBAHPEAI@Z
; public: int __cdecl CAccessEntry::HasSomeAccess(void)const  __ptr64
?HasSomeAccess@CAccessEntry@@QEBAHXZ
; public: class CObject * __ptr64 __cdecl CObListPlus::Index(int) __ptr64
?Index@CObListPlus@@QEAAPEAVCObject@@H@Z
; public: virtual int __cdecl CHeaderListBox::Initialize(void) __ptr64
?Initialize@CHeaderListBox@@UEAAHXZ
; public: static int __cdecl CINumber::Initialize(int)
?Initialize@CINumber@@SAHH@Z
; protected: void __cdecl CInheritanceDlg::Initialize(void) __ptr64
?Initialize@CInheritanceDlg@@IEAAXXZ
; protected: virtual int __cdecl CODLBox::Initialize(void) __ptr64
?Initialize@CODLBox@@MEAAHXZ
; public: virtual int __cdecl CRMCComboBox::Initialize(void) __ptr64
?Initialize@CRMCComboBox@@UEAAHXZ
; public: virtual int __cdecl CRMCListBox::Initialize(void) __ptr64
?Initialize@CRMCListBox@@UEAAHXZ
; protected: int __cdecl CHeaderListBox::InsertColumn(int,int,unsigned int,struct HINSTANCE__ * __ptr64) __ptr64
?InsertColumn@CHeaderListBox@@IEAAHHHIPEAUHINSTANCE__@@@Z
; protected: int __cdecl CHeaderListBox::InsertHeaderItem(int,struct _HD_ITEMW * __ptr64) __ptr64
?InsertHeaderItem@CHeaderListBox@@IEAAHHPEAU_HD_ITEMW@@@Z
; public: int __cdecl CRMCListBoxHeader::InsertItem(int,struct _HD_ITEMW * __ptr64) __ptr64
?InsertItem@CRMCListBoxHeader@@QEAAHHPEAU_HD_ITEMW@@@Z
; public: void __cdecl CODLBox::InsertTab(int,unsigned int) __ptr64
?InsertTab@CODLBox@@QEAAXHI@Z
; public: void __cdecl CRMCListBox::InvalidateSelection(int) __ptr64
?InvalidateSelection@CRMCListBox@@QEAAXH@Z
; long __cdecl IsAllNumHostHeader(unsigned short const * __ptr64)
?IsAllNumHostHeader@@YAJPEBG@Z
; protected: static int __cdecl CINumber::IsAllocated(void)
?IsAllocated@CINumber@@KAHXZ
; public: int __cdecl CIPAddress::IsBadValue(void)const  __ptr64
?IsBadValue@CIPAddress@@QEBAHXZ
; int __cdecl IsBiDiLocalizedSystem(void)
?IsBiDiLocalizedSystem@@YAHXZ
; public: int __cdecl CAccessEntry::IsDeletable(void)const  __ptr64
?IsDeletable@CAccessEntry@@QEBAHXZ
; public: int __cdecl CAccessEntry::IsDeleted(void)const  __ptr64
?IsDeleted@CAccessEntry@@QEBAHXZ
; int __cdecl IsDevicePath(class CString const & __ptr64)
?IsDevicePath@@YAHAEBVCString@@@Z
; public: int __cdecl CAccessEntry::IsDirty(void)const  __ptr64
?IsDirty@CAccessEntry@@QEBAHXZ
; public: int __cdecl CObjHelper::IsDirty(void)const  __ptr64
?IsDirty@CObjHelper@@QEBAHXZ
; public: int __cdecl CIPAccessDescriptor::IsDomainName(void)const  __ptr64
?IsDomainName@CIPAccessDescriptor@@QEBAHXZ
; public: int __cdecl CBlob::IsEmpty(void)const  __ptr64
?IsEmpty@CBlob@@QEBAHXZ
; public: int __cdecl CInheritanceDlg::IsEmpty(void)const  __ptr64
?IsEmpty@CInheritanceDlg@@QEBAHXZ
; public: int __cdecl CStrPassword::IsEmpty(void)const  __ptr64
?IsEmpty@CStrPassword@@QEBAHXZ
; public: int __cdecl CIISApplication::IsEnabledApplication(void)const  __ptr64
?IsEnabledApplication@CIISApplication@@QEBAHXZ
; int __cdecl IsFullyQualifiedPath(class CString const & __ptr64)
?IsFullyQualifiedPath@@YAHAEBVCString@@@Z
; protected: int __cdecl CIISWizardPage::IsHeaderPage(void)const  __ptr64
?IsHeaderPage@CIISWizardPage@@IEBAHXZ
; 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: static int __cdecl CINumber::IsInitialized(void)
?IsInitialized@CINumber@@SAHXZ
; 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
; int __cdecl IsLocalComputer(unsigned short const * __ptr64)
?IsLocalComputer@@YAHPEBG@Z
; public: static int __cdecl CMetabasePath::IsMasterInstance(unsigned short const * __ptr64)
?IsMasterInstance@CMetabasePath@@SAHPEBG@Z
; protected: int __cdecl CRMCListBox::IsMultiSelect(void)const  __ptr64
?IsMultiSelect@CRMCListBox@@IEBAHXZ
; public: int __cdecl CIPAccessDescriptor::IsMultiple(void)const  __ptr64
?IsMultiple@CIPAccessDescriptor@@QEBAHXZ
; int __cdecl IsNetworkPath(class CString const & __ptr64,class CString * __ptr64,class CString * __ptr64)
?IsNetworkPath@@YAHAEBVCString@@PEAV1@1@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
; int __cdecl IsRestrictedFilename(class CString const & __ptr64)
?IsRestrictedFilename@@YAHAEBVCString@@@Z
; public: int __cdecl CAccessEntry::IsSIDResolved(void)const  __ptr64
?IsSIDResolved@CAccessEntry@@QEBAHXZ
; int __cdecl IsServerLocal(unsigned short const * __ptr64)
?IsServerLocal@@YAHPEBG@Z
; public: int __cdecl CIPAccessDescriptor::IsSingle(void)const  __ptr64
?IsSingle@CIPAccessDescriptor@@QEBAHXZ
; int __cdecl IsSpecialPath(class CString const & __ptr64,int,int)
?IsSpecialPath@@YAHAEBVCString@@HH@Z
; int __cdecl IsUNCName(class CString const & __ptr64)
?IsUNCName@@YAHAEBVCString@@@Z
; int __cdecl IsURLName(class CString const & __ptr64)
?IsURLName@@YAHAEBVCString@@@Z
; public: virtual int __cdecl CObjHelper::IsValid(void)const  __ptr64
?IsValid@CObjHelper@@UEBAHXZ
; long __cdecl IsValidHostHeader(unsigned short const * __ptr64)
?IsValidHostHeader@@YAJPEBG@Z
; public: int __cdecl CAccessEntry::IsVisible(void)const  __ptr64
?IsVisible@CAccessEntry@@QEBAHXZ
; protected: int __cdecl CIISWizardBookEnd::IsWelcomePage(void)const  __ptr64
?IsWelcomePage@CIISWizardBookEnd@@IEBAHXZ
; protected: int __cdecl CIISWizardPage::IsWizard97(void)const  __ptr64
?IsWizard97@CIISWizardPage@@IEBAHXZ
; public: int __cdecl CIISWizardSheet::IsWizard97(void)const  __ptr64
?IsWizard97@CIISWizardSheet@@QEBAHXZ
; public: int __cdecl CIPAddress::IsZeroValue(void)const  __ptr64
?IsZeroValue@CIPAddress@@QEBAHXZ
; public: long __cdecl CIISSvcControl::Kill(void) __ptr64
?Kill@CIISSvcControl@@QEAAJXZ
; long __cdecl LimitInputDomainName(struct HWND__ * __ptr64)
?LimitInputDomainName@@YAJPEAUHWND__@@@Z
; long __cdecl LimitInputPath(struct HWND__ * __ptr64,int)
?LimitInputPath@@YAJPEAUHWND__@@H@Z
; protected: int __cdecl CMappedBitmapButton::LoadMappedBitmaps(unsigned int,unsigned int,unsigned int,unsigned int) __ptr64
?LoadMappedBitmaps@CMappedBitmapButton@@IEAAHIIII@Z
; public: static unsigned short * __ptr64 __cdecl CIPAddress::LongToString(unsigned long,unsigned short * __ptr64,int)
?LongToString@CIPAddress@@SAPEAGKPEAGH@Z
; public: static unsigned short const * __ptr64 __cdecl CIPAddress::LongToString(unsigned long,class ATL::CComBSTR & __ptr64)
?LongToString@CIPAddress@@SAPEBGKAEAVCComBSTR@ATL@@@Z
; public: static unsigned short const * __ptr64 __cdecl CIPAddress::LongToString(unsigned long,class CString & __ptr64)
?LongToString@CIPAddress@@SAPEBGKAEAVCString@@@Z
; int __cdecl LooksLikeIPAddress(unsigned short const * __ptr64)
?LooksLikeIPAddress@@YAHPEBG@Z
; public: static int __cdecl CAccessEntry::LookupAccountSidW(class CString & __ptr64,int & __ptr64,void * __ptr64,unsigned short const * __ptr64)
?LookupAccountSidW@CAccessEntry@@SAHAEAVCString@@AEAHPEAXPEBG@Z
; unsigned short const * __ptr64 __cdecl MakeUNCPath(class CString & __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64)
?MakeUNCPath@@YAPEBGAEAVCString@@PEBG1@Z
; public: static int __cdecl CMetaKey::MapMDIDToTableIndex(unsigned long)
?MapMDIDToTableIndex@CMetaKey@@SAHK@Z
; public: void __cdecl CAccessEntry::MarkEntryAsChanged(void) __ptr64
?MarkEntryAsChanged@CAccessEntry@@QEAAXXZ
; public: void __cdecl CAccessEntry::MarkEntryAsClean(void) __ptr64
?MarkEntryAsClean@CAccessEntry@@QEAAXXZ
; public: void __cdecl CAccessEntry::MarkEntryAsNew(void) __ptr64
?MarkEntryAsNew@CAccessEntry@@QEAAXXZ
; protected: virtual void __cdecl CRMCComboBox::MeasureItem(struct tagMEASUREITEMSTRUCT * __ptr64) __ptr64
?MeasureItem@CRMCComboBox@@MEAAXPEAUtagMEASUREITEMSTRUCT@@@Z
; protected: virtual void __cdecl CRMCListBox::MeasureItem(struct tagMEASUREITEMSTRUCT * __ptr64) __ptr64
?MeasureItem@CRMCListBox@@MEAAXPEAUtagMEASUREITEMSTRUCT@@@Z
; public: int __cdecl CError::MessageBoxFormat(struct HWND__ * __ptr64,unsigned int,unsigned int,unsigned int,...)const  __ptr64
?MessageBoxFormat@CError@@QEBAHPEAUHWND__@@IIIZZ
; public: int __cdecl CError::MessageBoxOnFailure(struct HWND__ * __ptr64,unsigned int,unsigned int)const  __ptr64
?MessageBoxOnFailure@CError@@QEBAHPEAUHWND__@@II@Z
; public: int __cdecl CError::MessageBoxW(struct HWND__ * __ptr64,unsigned int,unsigned int)const  __ptr64
?MessageBoxW@CError@@QEBAHPEAUHWND__@@II@Z
; unsigned long __cdecl MyGetHostName(unsigned long,class CString & __ptr64)
?MyGetHostName@@YAKKAEAVCString@@@Z
; long __cdecl MyValidatePath(unsigned short const * __ptr64,int,int,unsigned long,unsigned long)
?MyValidatePath@@YAJPEBGHHKK@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 CString & __ptr64,unsigned short const * __ptr64) __ptr64
?Next@CMetaEnumerator@@QEAAJAEAKAEAVCString@@PEBG@Z
; public: long __cdecl CMetaEnumerator::Next(class CString & __ptr64,unsigned short const * __ptr64) __ptr64
?Next@CMetaEnumerator@@QEAAJAEAVCString@@PEBG@Z
; public: class CObject * __ptr64 __cdecl CObListIter::Next(void) __ptr64
?Next@CObListIter@@QEAAPEAVCObject@@XZ
; public: long __cdecl CMetaBack::NextHistory(unsigned long * __ptr64,unsigned long * __ptr64,unsigned short * __ptr64,struct _FILETIME * __ptr64) __ptr64
?NextHistory@CMetaBack@@QEAAJPEAK0PEAGPEAU_FILETIME@@@Z
; public: int __cdecl CODLBox::NumTabs(void)const  __ptr64
?NumTabs@CODLBox@@QEBAHXZ
; protected: void __cdecl CInheritanceDlg::OnButtonSelectAll(void) __ptr64
?OnButtonSelectAll@CInheritanceDlg@@IEAAXXZ
; protected: int __cdecl CHeaderListBox::OnCreate(struct tagCREATESTRUCTW * __ptr64) __ptr64
?OnCreate@CHeaderListBox@@IEAAHPEAUtagCREATESTRUCTW@@@Z
; protected: int __cdecl CRMCComboBox::OnCreate(struct tagCREATESTRUCTW * __ptr64) __ptr64
?OnCreate@CRMCComboBox@@IEAAHPEAUtagCREATESTRUCTW@@@Z
; protected: int __cdecl CRMCListBox::OnCreate(struct tagCREATESTRUCTW * __ptr64) __ptr64
?OnCreate@CRMCListBox@@IEAAHPEAUtagCREATESTRUCTW@@@Z
; protected: struct HBRUSH__ * __ptr64 __cdecl CIISWizardPage::OnCtlColor(class CDC * __ptr64,class CWnd * __ptr64,unsigned int) __ptr64
?OnCtlColor@CIISWizardPage@@IEAAPEAUHBRUSH__@@PEAVCDC@@PEAVCWnd@@I@Z
; protected: void __cdecl CEmphasizedDialog::OnDestroy(void) __ptr64
?OnDestroy@CEmphasizedDialog@@IEAAXXZ
; protected: void __cdecl CHeaderListBox::OnDestroy(void) __ptr64
?OnDestroy@CHeaderListBox@@IEAAXXZ
; protected: void __cdecl CIISWizardSheet::OnDestroy(void) __ptr64
?OnDestroy@CIISWizardSheet@@IEAAXXZ
; protected: void __cdecl CRMCListBoxHeader::OnDestroy(void) __ptr64
?OnDestroy@CRMCListBoxHeader@@IEAAXXZ
; protected: int __cdecl CIISWizardPage::OnEraseBkgnd(class CDC * __ptr64) __ptr64
?OnEraseBkgnd@CIISWizardPage@@IEAAHPEAVCDC@@@Z
; protected: void __cdecl CRMCListBoxHeader::OnHeaderEndTrack(unsigned int,struct tagNMHDR * __ptr64,__int64 * __ptr64) __ptr64
?OnHeaderEndTrack@CRMCListBoxHeader@@IEAAXIPEAUtagNMHDR@@PEA_J@Z
; protected: void __cdecl CRMCListBoxHeader::OnHeaderItemChanged(unsigned int,struct tagNMHDR * __ptr64,__int64 * __ptr64) __ptr64
?OnHeaderItemChanged@CRMCListBoxHeader@@IEAAXIPEAUtagNMHDR@@PEA_J@Z
; protected: void __cdecl CRMCListBoxHeader::OnHeaderItemClick(unsigned int,struct tagNMHDR * __ptr64,__int64 * __ptr64) __ptr64
?OnHeaderItemClick@CRMCListBoxHeader@@IEAAXIPEAUtagNMHDR@@PEA_J@Z
; protected: void __cdecl CInheritanceDlg::OnHelp(void) __ptr64
?OnHelp@CInheritanceDlg@@IEAAXXZ
; protected: virtual int __cdecl CEmphasizedDialog::OnInitDialog(void) __ptr64
?OnInitDialog@CEmphasizedDialog@@MEAAHXZ
; protected: virtual int __cdecl CIISWizardBookEnd::OnInitDialog(void) __ptr64
?OnInitDialog@CIISWizardBookEnd@@MEAAHXZ
; protected: virtual int __cdecl CIISWizardPage::OnInitDialog(void) __ptr64
?OnInitDialog@CIISWizardPage@@MEAAHXZ
; protected: virtual int __cdecl CIISWizardSheet::OnInitDialog(void) __ptr64
?OnInitDialog@CIISWizardSheet@@MEAAHXZ
; protected: virtual int __cdecl CInheritanceDlg::OnInitDialog(void) __ptr64
?OnInitDialog@CInheritanceDlg@@MEAAHXZ
; protected: virtual void __cdecl CInheritanceDlg::OnOK(void) __ptr64
?OnOK@CInheritanceDlg@@MEAAXXZ
; public: virtual int __cdecl CIISWizardBookEnd::OnSetActive(void) __ptr64
?OnSetActive@CIISWizardBookEnd@@UEAAHXZ
; protected: void __cdecl CRMCListBoxHeader::OnSetFocus(class CWnd * __ptr64) __ptr64
?OnSetFocus@CRMCListBoxHeader@@IEAAXPEAVCWnd@@@Z
; public: long __cdecl CMetaKey::Open(unsigned long,unsigned short const * __ptr64,unsigned long) __ptr64
?Open@CMetaKey@@QEAAJKPEBGK@Z
; protected: long __cdecl CMetaInterface::OpenKey(unsigned long,unsigned short const * __ptr64,unsigned long,unsigned long * __ptr64) __ptr64
?OpenKey@CMetaInterface@@IEAAJKPEBGKPEAK@Z
; public: int __cdecl CIPAccessDescriptor::OrderByAddress(class CObjectPlus const * __ptr64)const  __ptr64
?OrderByAddress@CIPAccessDescriptor@@QEBAHPEBVCObjectPlus@@@Z
; int __cdecl PCToUnixText(unsigned short * __ptr64 & __ptr64,class CString)
?PCToUnixText@@YAHAEAPEAGVCString@@@Z
; int __cdecl PathIsValid(unsigned short const * __ptr64,int)
?PathIsValid@@YAHPEBGH@Z
; unsigned long __cdecl PopulateComboWithKnownIpAddresses(unsigned short const * __ptr64,class CComboBox & __ptr64,class CIPAddress & __ptr64,class CObListPlus & __ptr64,int & __ptr64)
?PopulateComboWithKnownIpAddresses@@YAKPEBGAEAVCComboBox@@AEAVCIPAddress@@AEAVCObListPlus@@AEAH@Z
; protected: void __cdecl CRMCListBoxResources::PrepareBitmaps(void) __ptr64
?PrepareBitmaps@CRMCListBoxResources@@IEAAXXZ
; protected: void __cdecl CGetComputer::ProcessSelectedObjects(struct IDataObject * __ptr64) __ptr64
?ProcessSelectedObjects@CGetComputer@@IEAAXPEAUIDataObject@@@Z
; protected: void __cdecl CGetUsers::ProcessSelectedObjects(struct IDataObject * __ptr64) __ptr64
?ProcessSelectedObjects@CGetUsers@@IEAAXPEAUIDataObject@@@Z
; public: unsigned long __cdecl CAccessEntry::QueryAccessMask(void)const  __ptr64
?QueryAccessMask@CAccessEntry@@QEBAKXZ
; public: unsigned long __cdecl CObjHelper::QueryAge(void)const  __ptr64
?QueryAge@CObjHelper@@QEBAKXZ
; public: long __cdecl CObjHelper::QueryApiErr(void)const  __ptr64
?QueryApiErr@CObjHelper@@QEBAJXZ
; 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
; protected: long __cdecl CIISWizardPage::QueryBitmapHeight(void)const  __ptr64
?QueryBitmapHeight@CIISWizardPage@@IEBAJXZ
; public: long __cdecl CIISWizardSheet::QueryBitmapHeight(int)const  __ptr64
?QueryBitmapHeight@CIISWizardSheet@@QEBAJH@Z
; protected: long __cdecl CIISWizardPage::QueryBitmapWidth(void)const  __ptr64
?QueryBitmapWidth@CIISWizardPage@@IEBAJXZ
; public: long __cdecl CIISWizardSheet::QueryBitmapWidth(int)const  __ptr64
?QueryBitmapWidth@CIISWizardSheet@@QEBAJH@Z
; public: int __cdecl CHeaderListBox::QueryColumnWidth(int)const  __ptr64
?QueryColumnWidth@CHeaderListBox@@QEBAHH@Z
; public: unsigned long __cdecl CObjHelper::QueryCreationTime(void)const  __ptr64
?QueryCreationTime@CObjHelper@@QEBAKXZ
; public: static unsigned short const * __ptr64 __cdecl CINumber::QueryCurrency(void)
?QueryCurrency@CINumber@@SAPEBGXZ
; public: static unsigned short const * __ptr64 __cdecl CINumber::QueryDecimalPoint(void)
?QueryDecimalPoint@CINumber@@SAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl CIPAccessDescriptor::QueryDomainName(void)const  __ptr64
?QueryDomainName@CIPAccessDescriptor@@QEBAPEBGXZ
; public: long __cdecl CObjHelper::QueryError(void)const  __ptr64
?QueryError@CObjHelper@@QEBAJXZ
; public: unsigned long __cdecl CMetaKey::QueryFlags(void)const  __ptr64
?QueryFlags@CMetaKey@@QEBAKXZ
; public: unsigned long __cdecl CIPAddress::QueryHostOrderIPAddress(void)const  __ptr64
?QueryHostOrderIPAddress@CIPAddress@@QEBAKXZ
; public: class CIPAddress  __cdecl CIPAccessDescriptor::QueryIPAddress(void)const  __ptr64
?QueryIPAddress@CIPAccessDescriptor@@QEBA?AVCIPAddress@@XZ
; public: unsigned long __cdecl CIPAccessDescriptor::QueryIPAddress(int)const  __ptr64
?QueryIPAddress@CIPAccessDescriptor@@QEBAKH@Z
; public: unsigned long __cdecl CIPAddress::QueryIPAddress(int)const  __ptr64
?QueryIPAddress@CIPAddress@@QEBAKH@Z
; public: unsigned short const * __ptr64 __cdecl CIPAddress::QueryIPAddress(class ATL::CComBSTR & __ptr64)const  __ptr64
?QueryIPAddress@CIPAddress@@QEBAPEBGAEAVCComBSTR@ATL@@@Z
; public: unsigned short const * __ptr64 __cdecl CIPAddress::QueryIPAddress(class CString & __ptr64)const  __ptr64
?QueryIPAddress@CIPAddress@@QEBAPEBGAEAVCString@@@Z
; 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 long __cdecl CIPAddress::QueryNetworkOrderIPAddress(void)const  __ptr64
?QueryNetworkOrderIPAddress@CIPAddress@@QEBAKXZ
; public: int __cdecl CHeaderListBox::QueryNumColumns(void)const  __ptr64
?QueryNumColumns@CHeaderListBox@@QEBAHXZ
; public: int __cdecl CRMCListBoxHeader::QueryNumColumns(void)const  __ptr64
?QueryNumColumns@CRMCListBoxHeader@@QEBAHXZ
; public: unsigned short * __ptr64 __cdecl CComAuthInfo::QueryPassword(void)const  __ptr64
?QueryPassword@CComAuthInfo@@QEBAPEAGXZ
; public: int __cdecl CAccessEntry::QueryPictureID(void)const  __ptr64
?QueryPictureID@CAccessEntry@@QEBAHXZ
; public: unsigned long __cdecl CIISAppPool::QueryPoolState(void)const  __ptr64
?QueryPoolState@CIISAppPool@@QEBAKXZ
; public: struct __POSITION * __ptr64 __cdecl CObListIter::QueryPosition(void)const  __ptr64
?QueryPosition@CObListIter@@QEBAPEAU__POSITION@@XZ
; public: virtual long __cdecl CIISAppPool::QueryResult(void)const  __ptr64
?QueryResult@CIISAppPool@@UEBAJXZ
; 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: class CIPAddress  __cdecl CIPAccessDescriptor::QuerySubnetMask(void)const  __ptr64
?QuerySubnetMask@CIPAccessDescriptor@@QEBA?AVCIPAddress@@XZ
; public: unsigned long __cdecl CIPAccessDescriptor::QuerySubnetMask(int)const  __ptr64
?QuerySubnetMask@CIPAccessDescriptor@@QEBAKH@Z
; public: static unsigned short const * __ptr64 __cdecl CINumber::QueryThousandSeparator(void)
?QueryThousandSeparator@CINumber@@SAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl CAccessEntry::QueryUserName(void)const  __ptr64
?QueryUserName@CAccessEntry@@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 CString & __ptr64,int * __ptr64,unsigned short const * __ptr64,unsigned long * __ptr64) __ptr64
?QueryValue@CMetaKey@@QEAAJKAEAVCString@@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 CIISAppPool::QueryWamPath(void)const  __ptr64
?QueryWamPath@CIISAppPool@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl CIISApplication::QueryWamPath(void)const  __ptr64
?QueryWamPath@CIISApplication@@QEBAPEBGXZ
; protected: unsigned long __cdecl CIISWizardPage::QueryWindowColor(void)const  __ptr64
?QueryWindowColor@CIISWizardPage@@IEBAKXZ
; public: unsigned long __cdecl CIISWizardSheet::QueryWindowColor(void)const  __ptr64
?QueryWindowColor@CIISWizardSheet@@QEBAKXZ
; protected: unsigned long __cdecl CIISWizardPage::QueryWindowTextColor(void)const  __ptr64
?QueryWindowTextColor@CIISWizardPage@@IEBAKXZ
; public: unsigned long __cdecl CIISWizardSheet::QueryWindowTextColor(void)const  __ptr64
?QueryWindowTextColor@CIISWizardSheet@@QEBAKXZ
; 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: long __cdecl CIISAppPool::Recycle(unsigned short const * __ptr64) __ptr64
?Recycle@CIISAppPool@@QEAAJPEBG@Z
; protected: long __cdecl CWamInterface::RecycleApplicationPool(unsigned short const * __ptr64) __ptr64
?RecycleApplicationPool@CWamInterface@@IEAAJPEBG@Z
; public: long __cdecl CIISApplication::RefreshAppState(void) __ptr64
?RefreshAppState@CIISApplication@@QEAAJXZ
; public: long __cdecl CIISAppPool::RefreshState(void) __ptr64
?RefreshState@CIISAppPool@@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: int __cdecl CObListPlus::Remove(class CObject * __ptr64) __ptr64
?Remove@CObListPlus@@QEAAHPEAVCObject@@@Z
; public: void __cdecl CObListPlus::RemoveAll(void) __ptr64
?RemoveAll@CObListPlus@@QEAAXXZ
; public: void __cdecl CError::RemoveAllOverrides(void) __ptr64
?RemoveAllOverrides@CError@@QEAAXXZ
; public: void __cdecl CODLBox::RemoveAllTabs(void) __ptr64
?RemoveAllTabs@CODLBox@@QEAAXXZ
; public: void __cdecl CObListPlus::RemoveAt(struct __POSITION * __ptr64 & __ptr64) __ptr64
?RemoveAt@CObListPlus@@QEAAXAEAPEAU__POSITION@@@Z
; public: void __cdecl CComAuthInfo::RemoveImpersonation(void) __ptr64
?RemoveImpersonation@CComAuthInfo@@QEAAXXZ
; public: int __cdecl CObListPlus::RemoveIndex(int) __ptr64
?RemoveIndex@CObListPlus@@QEAAHH@Z
; public: void __cdecl CError::RemoveOverride(long) __ptr64
?RemoveOverride@CError@@QEAAXJ@Z
; public: void __cdecl CAccessEntry::RemovePermissions(unsigned long) __ptr64
?RemovePermissions@CAccessEntry@@QEAAXK@Z
; public: void __cdecl CODLBox::RemoveTab(int,int) __ptr64
?RemoveTab@CODLBox@@QEAAXHH@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
; unsigned long __cdecl ReplaceStringInString(class CString & __ptr64,class CString & __ptr64,class CString & __ptr64,int)
?ReplaceStringInString@@YAKAEAVCString@@00H@Z
; public: void __cdecl CObjHelper::ReportError(long) __ptr64
?ReportError@CObjHelper@@QEAAXJ@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(void) __ptr64
?Reset@CMetaEnumerator@@QEAAXXZ
; public: void __cdecl CObListIter::Reset(void) __ptr64
?Reset@CObListIter@@QEAAXXZ
; public: void __cdecl CObjHelper::ResetErrors(void) __ptr64
?ResetErrors@CObjHelper@@QEAAXXZ
; public: int __cdecl CAccessEntry::ResolveSID(void) __ptr64
?ResolveSID@CAccessEntry@@QEAAHXZ
; public: void __cdecl CRMCListBoxHeader::RespondToColumnWidthChanges(int) __ptr64
?RespondToColumnWidthChanges@CRMCListBoxHeader@@QEAAXH@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
; protected: long __cdecl CMetaInterface::RestoreHistory(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long) __ptr64
?RestoreHistory@CMetaInterface@@IEAAJPEBGKKK@Z
; public: long __cdecl CMetaBack::RestoreHistoryBackup(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long) __ptr64
?RestoreHistoryBackup@CMetaBack@@QEAAJPEBGKKK@Z
; public: long __cdecl CMetaBack::RestoreWithPassword(unsigned short const * __ptr64,unsigned long,unsigned short const * __ptr64) __ptr64
?RestoreWithPassword@CMetaBack@@QEAAJPEBGK0@Z
; protected: long __cdecl CMetaInterface::RestoreWithPassword(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned short const * __ptr64) __ptr64
?RestoreWithPassword@CMetaInterface@@IEAAJPEBGKK0@Z
; public: long __cdecl CMetaInterface::SaveData(void) __ptr64
?SaveData@CMetaInterface@@QEAAJXZ
; public: int __cdecl CRMCListBox::SelectItem(void * __ptr64) __ptr64
?SelectItem@CRMCListBox@@QEAAHPEAX@Z
; public: int __cdecl CObListPlus::SetAll(int) __ptr64
?SetAll@CObListPlus@@QEAAHH@Z
; public: long __cdecl CObjHelper::SetApiErr(long) __ptr64
?SetApiErr@CObjHelper@@QEAAJJ@Z
; public: int __cdecl CHeaderListBox::SetColumnWidth(int,int) __ptr64
?SetColumnWidth@CHeaderListBox@@QEAAHHH@Z
; public: void __cdecl CRMCListBoxHeader::SetColumnWidth(int,int) __ptr64
?SetColumnWidth@CRMCListBoxHeader@@QEAAXHH@Z
; protected: void __cdecl CComAuthInfo::SetComputerNameW(unsigned short const * __ptr64) __ptr64
?SetComputerNameW@CComAuthInfo@@IEAAXPEBG@Z
; public: int __cdecl CRMCListBox::SetCurSel(int) __ptr64
?SetCurSel@CRMCListBox@@QEAAHH@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 CObjHelper::SetDirty(int) __ptr64
?SetDirty@CObjHelper@@QEAAXH@Z
; protected: int __cdecl CHeaderListBox::SetHeaderItem(int,struct _HD_ITEMW * __ptr64) __ptr64
?SetHeaderItem@CHeaderListBox@@IEAAHHPEAU_HD_ITEMW@@@Z
; public: void __cdecl CComAuthInfo::SetImpersonation(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?SetImpersonation@CComAuthInfo@@QEAAXPEBG0@Z
; public: int __cdecl CRMCListBoxHeader::SetItem(int,struct _HD_ITEMW * __ptr64) __ptr64
?SetItem@CRMCListBoxHeader@@QEAAHHPEAU_HD_ITEMW@@@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: int __cdecl CObListPlus::SetOwnership(int) __ptr64
?SetOwnership@CObListPlus@@QEAAHH@Z
; public: void __cdecl CObListIter::SetPosition(struct __POSITION * __ptr64) __ptr64
?SetPosition@CObListIter@@QEAAXPEAU__POSITION@@@Z
; protected: long __cdecl CMetaKey::SetPropertyValue(unsigned long,unsigned long,void * __ptr64,int * __ptr64,unsigned short const * __ptr64) __ptr64
?SetPropertyValue@CMetaKey@@IEAAJKKPEAXPEAHPEBG@Z
; public: void __cdecl CConfirmDlg::SetReference(class CString & __ptr64) __ptr64
?SetReference@CConfirmDlg@@QEAAXAEAVCString@@@Z
; public: void __cdecl CODLBox::SetTab(int,unsigned int) __ptr64
?SetTab@CODLBox@@QEAAXHI@Z
; protected: void __cdecl CRMCListBoxHeader::SetTabsFromHeader(void) __ptr64
?SetTabsFromHeader@CRMCListBoxHeader@@IEAAXXZ
; 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 CString & __ptr64,int * __ptr64,unsigned short const * __ptr64) __ptr64
?SetValue@CMetaKey@@QEAAJKAEAVCString@@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: void __cdecl CIPAccessDescriptor::SetValues(int,unsigned long,unsigned long,int) __ptr64
?SetValues@CIPAccessDescriptor@@QEAAXHKKH@Z
; public: void __cdecl CIPAccessDescriptor::SetValues(int,unsigned short const * __ptr64) __ptr64
?SetValues@CIPAccessDescriptor@@QEAAXHPEBG@Z
; protected: int __cdecl CHeaderListBox::SetWidthsFromReg(void) __ptr64
?SetWidthsFromReg@CHeaderListBox@@IEAAHXZ
; protected: void __cdecl CIISWizardPage::SetWizardButtons(unsigned long) __ptr64
?SetWizardButtons@CIISWizardPage@@IEAAXK@Z
; public: void __cdecl CIPAddress::SetZeroValue(void) __ptr64
?SetZeroValue@CIPAddress@@QEAAXXZ
; public: int __cdecl CHeaderListBox::ShowWindow(int) __ptr64
?ShowWindow@CHeaderListBox@@QEAAHH@Z
; public: unsigned long __cdecl CObListPlus::Sort(int (__cdecl CObjectPlus::*)(class CObjectPlus const * __ptr64)const  __ptr64) __ptr64
?Sort@CObListPlus@@QEAAKP8CObjectPlus@@EBAHPEBV2@@Z@Z
; protected: static int __cdecl CObListPlus::SortHelper(void const * __ptr64,void const * __ptr64)
?SortHelper@CObListPlus@@KAHPEBX0@Z
; public: static void __cdecl CMetabasePath::SplitMetaPathAtInstance(unsigned short const * __ptr64,class CString & __ptr64,class CString & __ptr64)
?SplitMetaPathAtInstance@CMetabasePath@@SAXPEBGAEAVCString@@1@Z
; public: static int __cdecl CComAuthInfo::SplitUserNameAndDomain(class CString & __ptr64,class CString & __ptr64)
?SplitUserNameAndDomain@CComAuthInfo@@SAHAEAVCString@@0@Z
; public: long __cdecl CIISSvcControl::Start(unsigned long) __ptr64
?Start@CIISSvcControl@@QEAAJK@Z
; public: long __cdecl CIISSvcControl::Status(unsigned long,unsigned char * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64) __ptr64
?Status@CIISSvcControl@@QEAAJKPEAEPEAK1@Z
; public: long __cdecl CIISSvcControl::Stop(unsigned long,int) __ptr64
?Stop@CIISSvcControl@@QEAAJKH@Z
; public: void __cdecl CComAuthInfo::StorePassword(unsigned short const * __ptr64) __ptr64
?StorePassword@CComAuthInfo@@QEAAXPEBG@Z
; public: static unsigned long __cdecl CIPAddress::StringToLong(class ATL::CComBSTR const & __ptr64)
?StringToLong@CIPAddress@@SAKAEBVCComBSTR@ATL@@@Z
; public: static unsigned long __cdecl CIPAddress::StringToLong(class CString const & __ptr64)
?StringToLong@CIPAddress@@SAKAEBVCString@@@Z
; public: static unsigned long __cdecl CIPAddress::StringToLong(unsigned short const * __ptr64,int)
?StringToLong@CIPAddress@@SAKPEBGH@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 CIISAppPool::Succeeded(void)const  __ptr64
?Succeeded@CIISAppPool@@UEBAHXZ
; 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
; int __cdecl SupportsSecurityACLs(unsigned short const * __ptr64)
?SupportsSecurityACLs@@YAHPEBG@Z
; public: void __cdecl CRMCListBoxResources::SysColorChanged(void) __ptr64
?SysColorChanged@CRMCListBoxResources@@QEAAXXZ
; public: long __cdecl CError::TextFromHRESULT(class CString & __ptr64)const  __ptr64
?TextFromHRESULT@CError@@QEBAJAEAVCString@@@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 CString & __ptr64)const  __ptr64
?TextFromHRESULTExpand@CError@@QEBAPEBGAEAVCString@@@Z
; public: unsigned short const * __ptr64 __cdecl CError::TextFromHRESULTExpand(unsigned short * __ptr64,unsigned long,long * __ptr64)const  __ptr64
?TextFromHRESULTExpand@CError@@QEBAPEBGPEAGKPEAJ@Z
; public: int __cdecl CODLBox::TextHeight(void)const  __ptr64
?TextHeight@CODLBox@@QEBAHXZ
; public: static unsigned short const * __ptr64 __cdecl CMetabasePath::TruncatePath(int,unsigned short const * __ptr64,class CString & __ptr64,class CString * __ptr64)
?TruncatePath@CMetabasePath@@SAPEBGHPEBGAEAVCString@@PEAV2@@Z
; int __cdecl UnixToPCText(class CString & __ptr64,unsigned short const * __ptr64)
?UnixToPCText@@YAHAEAVCString@@PEBG@Z
; public: long __cdecl CIISApplication::Unload(int) __ptr64
?Unload@CIISApplication@@QEAAJH@Z
; protected: void __cdecl CRMCListBoxResources::UnprepareBitmaps(void) __ptr64
?UnprepareBitmaps@CRMCListBoxResources@@IEAAXXZ
; public: static void __cdecl CError::UnregisterFacility(unsigned long)
?UnregisterFacility@CError@@SAXK@Z
; protected: int __cdecl CRMCListBoxHeader::UseButtons(void)const  __ptr64
?UseButtons@CRMCListBoxHeader@@IEBAHXZ
; protected: int __cdecl CRMCListBoxHeader::UseStretch(void)const  __ptr64
?UseStretch@CRMCListBoxHeader@@IEBAHXZ
; public: static int __cdecl CINumber::UseSystemDefault(void)
?UseSystemDefault@CINumber@@SAHXZ
; public: static int __cdecl CINumber::UseUserDefault(void)
?UseUserDefault@CINumber@@SAHXZ
; public: int __cdecl CComAuthInfo::UsesImpersonation(void)const  __ptr64
?UsesImpersonation@CComAuthInfo@@QEBAHXZ
; public: int __cdecl CIISWizardPage::ValidateString(class CEdit & __ptr64,class CString & __ptr64,int,int) __ptr64
?ValidateString@CIISWizardPage@@QEAAHAEAVCEdit@@AEAVCString@@HH@Z
; int __cdecl VerifyState(void)
?VerifyState@@YAHXZ
; 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
; protected: virtual void __cdecl CIISWizardSheet::WinHelpW(unsigned long,unsigned int) __ptr64
?WinHelpW@CIISWizardSheet@@MEAAXKI@Z
; public: long __cdecl CIISApplication::WriteFriendlyName(unsigned short const * __ptr64) __ptr64
?WriteFriendlyName@CIISApplication@@QEAAJPEBG@Z
; public: long __cdecl CIISApplication::WritePoolId(unsigned short const * __ptr64) __ptr64
?WritePoolId@CIISApplication@@QEAAJPEBG@Z
; protected: static struct CRuntimeClass * __ptr64 __cdecl CEmphasizedDialog::_GetBaseClass(void)
?_GetBaseClass@CEmphasizedDialog@@KAPEAUCRuntimeClass@@XZ
; protected: static struct CRuntimeClass * __ptr64 __cdecl CHeaderListBox::_GetBaseClass(void)
?_GetBaseClass@CHeaderListBox@@KAPEAUCRuntimeClass@@XZ
; protected: static struct CRuntimeClass * __ptr64 __cdecl CIISWizardBookEnd::_GetBaseClass(void)
?_GetBaseClass@CIISWizardBookEnd@@KAPEAUCRuntimeClass@@XZ
; protected: static struct CRuntimeClass * __ptr64 __cdecl CIISWizardPage::_GetBaseClass(void)
?_GetBaseClass@CIISWizardPage@@KAPEAUCRuntimeClass@@XZ
; protected: static struct CRuntimeClass * __ptr64 __cdecl CIISWizardSheet::_GetBaseClass(void)
?_GetBaseClass@CIISWizardSheet@@KAPEAUCRuntimeClass@@XZ
; protected: static struct CRuntimeClass * __ptr64 __cdecl CRMCComboBox::_GetBaseClass(void)
?_GetBaseClass@CRMCComboBox@@KAPEAUCRuntimeClass@@XZ
; protected: static struct CRuntimeClass * __ptr64 __cdecl CRMCListBox::_GetBaseClass(void)
?_GetBaseClass@CRMCListBox@@KAPEAUCRuntimeClass@@XZ
; protected: static struct CRuntimeClass * __ptr64 __cdecl CRMCListBoxHeader::_GetBaseClass(void)
?_GetBaseClass@CRMCListBoxHeader@@KAPEAUCRuntimeClass@@XZ
; protected: static struct AFX_MSGMAP const * __ptr64 __cdecl CConfirmDlg::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CConfirmDlg@@KAPEBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __ptr64 __cdecl CEmphasizedDialog::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CEmphasizedDialog@@KAPEBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __ptr64 __cdecl CHeaderListBox::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CHeaderListBox@@KAPEBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __ptr64 __cdecl CIISWizardBookEnd::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CIISWizardBookEnd@@KAPEBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __ptr64 __cdecl CIISWizardPage::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CIISWizardPage@@KAPEBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __ptr64 __cdecl CIISWizardSheet::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CIISWizardSheet@@KAPEBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __ptr64 __cdecl CInheritanceDlg::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CInheritanceDlg@@KAPEBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __ptr64 __cdecl CRMCComboBox::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CRMCComboBox@@KAPEBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __ptr64 __cdecl CRMCListBox::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CRMCListBox@@KAPEBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __ptr64 __cdecl CRMCListBoxHeader::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CRMCListBoxHeader@@KAPEBUAFX_MSGMAP@@XZ
; protected: void __cdecl CODLBox::__DrawItem(struct tagDRAWITEMSTRUCT * __ptr64) __ptr64
?__DrawItem@CODLBox@@IEAAXPEAUtagDRAWITEMSTRUCT@@@Z
; public: virtual int __cdecl CRMCComboBox::__GetCount(void)const  __ptr64
?__GetCount@CRMCComboBox@@UEBAHXZ
; public: virtual int __cdecl CRMCListBox::__GetCount(void)const  __ptr64
?__GetCount@CRMCListBox@@UEBAHXZ
; protected: void __cdecl CODLBox::__MeasureItem(struct tagMEASUREITEMSTRUCT * __ptr64) __ptr64
?__MeasureItem@CODLBox@@IEAAXPEAUtagMEASUREITEMSTRUCT@@@Z
; public: virtual int __cdecl CRMCComboBox::__SetItemHeight(int,unsigned int) __ptr64
?__SetItemHeight@CRMCComboBox@@UEAAHHI@Z
; public: virtual int __cdecl CRMCListBox::__SetItemHeight(int,unsigned int) __ptr64
?__SetItemHeight@CRMCListBox@@UEAAHHI@Z
; 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
; private: static int  CINumber::_fAllocated
?_fAllocated@CINumber@@0HA DATA
; private: static int  CINumber::_fCurrencyPrefix
?_fCurrencyPrefix@CINumber@@0HA DATA
; private: static int  CINumber::_fInitialized
?_fInitialized@CINumber@@0HA DATA
; private: static struct AFX_MSGMAP_ENTRY const * const  CConfirmDlg::_messageEntries
?_messageEntries@CConfirmDlg@@0QBUAFX_MSGMAP_ENTRY@@B
; private: static struct AFX_MSGMAP_ENTRY const * const  CEmphasizedDialog::_messageEntries
?_messageEntries@CEmphasizedDialog@@0QBUAFX_MSGMAP_ENTRY@@B
; private: static struct AFX_MSGMAP_ENTRY const * const  CHeaderListBox::_messageEntries
?_messageEntries@CHeaderListBox@@0QBUAFX_MSGMAP_ENTRY@@B
; private: static struct AFX_MSGMAP_ENTRY const * const  CIISWizardBookEnd::_messageEntries
?_messageEntries@CIISWizardBookEnd@@0QBUAFX_MSGMAP_ENTRY@@B
; private: static struct AFX_MSGMAP_ENTRY const * const  CIISWizardPage::_messageEntries
?_messageEntries@CIISWizardPage@@0QBUAFX_MSGMAP_ENTRY@@B
; private: static struct AFX_MSGMAP_ENTRY const * const  CIISWizardSheet::_messageEntries
?_messageEntries@CIISWizardSheet@@0QBUAFX_MSGMAP_ENTRY@@B
; private: static struct AFX_MSGMAP_ENTRY const * const  CInheritanceDlg::_messageEntries
?_messageEntries@CInheritanceDlg@@0QBUAFX_MSGMAP_ENTRY@@B
; private: static struct AFX_MSGMAP_ENTRY const * const  CRMCComboBox::_messageEntries
?_messageEntries@CRMCComboBox@@0QBUAFX_MSGMAP_ENTRY@@B
; private: static struct AFX_MSGMAP_ENTRY const * const  CRMCListBox::_messageEntries
?_messageEntries@CRMCListBox@@0QBUAFX_MSGMAP_ENTRY@@B
; private: static struct AFX_MSGMAP_ENTRY const * const  CRMCListBoxHeader::_messageEntries
?_messageEntries@CRMCListBoxHeader@@0QBUAFX_MSGMAP_ENTRY@@B
; protected: static class CString * __ptr64  __ptr64 CINumber::_pstr
?_pstr@CINumber@@1PEAVCString@@EA DATA
; public: static class CString * __ptr64  __ptr64 CINumber::_pstrBadNumber
?_pstrBadNumber@CINumber@@2PEAVCString@@EA DATA
; private: static class CString * __ptr64  __ptr64 CINumber::_pstrCurrency
?_pstrCurrency@CINumber@@0PEAVCString@@EA DATA
; private: static class CString * __ptr64  __ptr64 CINumber::_pstrDecimalPoint
?_pstrDecimalPoint@CINumber@@0PEAVCString@@EA DATA
; private: static class CString * __ptr64  __ptr64 CINumber::_pstrThousandSeparator
?_pstrThousandSeparator@CINumber@@0PEAVCString@@EA DATA
; public: static struct CRuntimeClass const  CEmphasizedDialog::classCEmphasizedDialog
?classCEmphasizedDialog@CEmphasizedDialog@@2UCRuntimeClass@@B
; public: static struct CRuntimeClass const  CHeaderListBox::classCHeaderListBox
?classCHeaderListBox@CHeaderListBox@@2UCRuntimeClass@@B
; public: static struct CRuntimeClass const  CIISWizardBookEnd::classCIISWizardBookEnd
?classCIISWizardBookEnd@CIISWizardBookEnd@@2UCRuntimeClass@@B
; public: static struct CRuntimeClass const  CIISWizardPage::classCIISWizardPage
?classCIISWizardPage@CIISWizardPage@@2UCRuntimeClass@@B
; public: static struct CRuntimeClass const  CIISWizardSheet::classCIISWizardSheet
?classCIISWizardSheet@CIISWizardSheet@@2UCRuntimeClass@@B
; public: static struct CRuntimeClass const  CRMCComboBox::classCRMCComboBox
?classCRMCComboBox@CRMCComboBox@@2UCRuntimeClass@@B
; public: static struct CRuntimeClass const  CRMCListBox::classCRMCListBox
?classCRMCListBox@CRMCListBox@@2UCRuntimeClass@@B
; public: static struct CRuntimeClass const  CRMCListBoxHeader::classCRMCListBoxHeader
?classCRMCListBoxHeader@CRMCListBoxHeader@@2UCRuntimeClass@@B
; public: class CDC const & __ptr64 __cdecl CRMCListBoxResources::dcBitMap(void)const  __ptr64
?dcBitMap@CRMCListBoxResources@@QEBAAEBVCDC@@XZ
; unsigned short const * __ptr64 const  __ptr64 g_lpszDummyPassword
?g_lpszDummyPassword@@3PEBGEB DATA
; protected: static struct AFX_MSGMAP const  CConfirmDlg::messageMap
?messageMap@CConfirmDlg@@1UAFX_MSGMAP@@B
; protected: static struct AFX_MSGMAP const  CEmphasizedDialog::messageMap
?messageMap@CEmphasizedDialog@@1UAFX_MSGMAP@@B
; protected: static struct AFX_MSGMAP const  CHeaderListBox::messageMap
?messageMap@CHeaderListBox@@1UAFX_MSGMAP@@B
; protected: static struct AFX_MSGMAP const  CIISWizardBookEnd::messageMap
?messageMap@CIISWizardBookEnd@@1UAFX_MSGMAP@@B
; protected: static struct AFX_MSGMAP const  CIISWizardPage::messageMap
?messageMap@CIISWizardPage@@1UAFX_MSGMAP@@B
; protected: static struct AFX_MSGMAP const  CIISWizardSheet::messageMap
?messageMap@CIISWizardSheet@@1UAFX_MSGMAP@@B
; protected: static struct AFX_MSGMAP const  CInheritanceDlg::messageMap
?messageMap@CInheritanceDlg@@1UAFX_MSGMAP@@B
; protected: static struct AFX_MSGMAP const  CRMCComboBox::messageMap
?messageMap@CRMCComboBox@@1UAFX_MSGMAP@@B
; protected: static struct AFX_MSGMAP const  CRMCListBox::messageMap
?messageMap@CRMCListBox@@1UAFX_MSGMAP@@B
; protected: static struct AFX_MSGMAP const  CRMCListBoxHeader::messageMap
?messageMap@CRMCListBoxHeader@@1UAFX_MSGMAP@@B
; protected: static int const  CMetaKey::s_MetaTableSize
?s_MetaTableSize@CMetaKey@@1HB
; 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 int const  CIISWizardSheet::s_cnBoldDeltaFont
?s_cnBoldDeltaFont@CIISWizardSheet@@1HB
; protected: static int const  CIISWizardSheet::s_cnBoldDeltaHeight
?s_cnBoldDeltaHeight@CIISWizardSheet@@1HB
; protected: static int const  CIISWizardSheet::s_cnBoldDeltaWidth
?s_cnBoldDeltaWidth@CIISWizardSheet@@1HB
; protected: static int const  CIISWizardPage::s_cnHeaderOffset
?s_cnHeaderOffset@CIISWizardPage@@1HB
; 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 CMap<unsigned long,unsigned long & __ptr64,class CString,class CString & __ptr64> * __ptr64  __ptr64 CError::s_pmapFacilities
?s_pmapFacilities@CError@@1PEAV?$CMap@KAEAKVCString@@AEAV1@@@EA DATA
; protected: static class CString * __ptr64  __ptr64 CError::s_pstrDefError
?s_pstrDefError@CError@@1PEAVCString@@EA DATA
; protected: static class CString * __ptr64  __ptr64 CError::s_pstrDefSuccs
?s_pstrDefSuccs@CError@@1PEAVCString@@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
DllRegisterServer
DllUnregisterServer
