; 
; Exports of file iisui.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY iisui.dll
EXPORTS
InitCommonDll
; public: __thiscall CAccessEntry::CAccessEntry(class CAccessEntry &)
??0CAccessEntry@@QAE@AAV0@@Z
; public: __thiscall CAccessEntry::CAccessEntry(unsigned long,void *,unsigned short const *,int)
??0CAccessEntry@@QAE@KPAXPBGH@Z
; public: __thiscall CAccessEntry::CAccessEntry(void *,int)
??0CAccessEntry@@QAE@PAXH@Z
; public: __thiscall CAccessEntry::CAccessEntry(void *,unsigned short const *,unsigned short const *)
??0CAccessEntry@@QAE@PAXPBG1@Z
; public: __thiscall CBlob::CBlob(class CBlob const &)
??0CBlob@@QAE@ABV0@@Z
; public: __thiscall CBlob::CBlob(unsigned long,unsigned char *,int)
??0CBlob@@QAE@KPAEH@Z
; public: __thiscall CBlob::CBlob(void)
??0CBlob@@QAE@XZ
; public: __thiscall CComAuthInfo::CComAuthInfo(class CComAuthInfo &)
??0CComAuthInfo@@QAE@AAV0@@Z
; public: __thiscall CComAuthInfo::CComAuthInfo(class CComAuthInfo *)
??0CComAuthInfo@@QAE@PAV0@@Z
; public: __thiscall CComAuthInfo::CComAuthInfo(unsigned short const *,unsigned short const *,unsigned short const *)
??0CComAuthInfo@@QAE@PBG00@Z
; public: __thiscall CConfirmDlg::CConfirmDlg(class CWnd *)
??0CConfirmDlg@@QAE@PAVCWnd@@@Z
; public: __thiscall CDirBrowseDlg::CDirBrowseDlg(class CDirBrowseDlg const &)
??0CDirBrowseDlg@@QAE@ABV0@@Z
; public: __thiscall CDirBrowseDlg::CDirBrowseDlg(class CWnd *,unsigned short const *)
??0CDirBrowseDlg@@QAE@PAVCWnd@@PBG@Z
; public: __thiscall CDownButton::CDownButton(void)
??0CDownButton@@QAE@XZ
; public: __thiscall CEmphasizedDialog::CEmphasizedDialog(unsigned int,class CWnd *)
??0CEmphasizedDialog@@QAE@IPAVCWnd@@@Z
; public: __thiscall CEmphasizedDialog::CEmphasizedDialog(unsigned short const *,class CWnd *)
??0CEmphasizedDialog@@QAE@PBGPAVCWnd@@@Z
; public: __thiscall CEmphasizedDialog::CEmphasizedDialog(void)
??0CEmphasizedDialog@@QAE@XZ
; public: __thiscall CError::CError(long)
??0CError@@QAE@J@Z
; public: __thiscall CError::CError(unsigned long)
??0CError@@QAE@K@Z
; public: __thiscall CError::CError(void)
??0CError@@QAE@XZ
; public: __thiscall CGetComputer::CGetComputer(class CGetComputer const &)
??0CGetComputer@@QAE@ABV0@@Z
; public: __thiscall CGetComputer::CGetComputer(void)
??0CGetComputer@@QAE@XZ
; public: __thiscall CGetUsers::CGetUsers(unsigned short const *,int)
??0CGetUsers@@QAE@PBGH@Z
; public: __thiscall CHeaderListBox::CHeaderListBox(unsigned long,unsigned short const *)
??0CHeaderListBox@@QAE@KPBG@Z
; public: __thiscall CIISAppPool::CIISAppPool(class CIISAppPool &)
??0CIISAppPool@@QAE@AAV0@@Z
; public: __thiscall CIISAppPool::CIISAppPool(class CComAuthInfo *,unsigned short const *)
??0CIISAppPool@@QAE@PAVCComAuthInfo@@PBG@Z
; public: __thiscall CIISApplication::CIISApplication(class CIISApplication &)
??0CIISApplication@@QAE@AAV0@@Z
; public: __thiscall CIISApplication::CIISApplication(class CComAuthInfo *,unsigned short const *)
??0CIISApplication@@QAE@PAVCComAuthInfo@@PBG@Z
; public: __thiscall CIISInterface::CIISInterface(class CIISInterface &)
??0CIISInterface@@QAE@AAV0@@Z
; public: __thiscall CIISInterface::CIISInterface(class CComAuthInfo *,long)
??0CIISInterface@@QAE@PAVCComAuthInfo@@J@Z
; public: __thiscall CIISSvcControl::CIISSvcControl(class CIISSvcControl &)
??0CIISSvcControl@@QAE@AAV0@@Z
; public: __thiscall CIISSvcControl::CIISSvcControl(class CIISSvcControl *)
??0CIISSvcControl@@QAE@PAV0@@Z
; public: __thiscall CIISSvcControl::CIISSvcControl(class CComAuthInfo *)
??0CIISSvcControl@@QAE@PAVCComAuthInfo@@@Z
; public: __thiscall CIISWizardBookEnd::CIISWizardBookEnd(unsigned int,unsigned int,unsigned int,unsigned int,unsigned int)
??0CIISWizardBookEnd@@QAE@IIIII@Z
; public: __thiscall CIISWizardBookEnd::CIISWizardBookEnd(long *,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int)
??0CIISWizardBookEnd@@QAE@PAJIIIIIII@Z
; public: __thiscall CIISWizardPage::CIISWizardPage(unsigned int,unsigned int,int,unsigned int,unsigned int)
??0CIISWizardPage@@QAE@IIHII@Z
; public: __thiscall CIISWizardSheet::CIISWizardSheet(unsigned int,unsigned int,unsigned long,unsigned long)
??0CIISWizardSheet@@QAE@IIKK@Z
; public: __thiscall CILong::CILong(long)
??0CILong@@QAE@J@Z
; public: __thiscall CILong::CILong(unsigned short const *)
??0CILong@@QAE@PBG@Z
; public: __thiscall CILong::CILong(void)
??0CILong@@QAE@XZ
; protected: __thiscall CINumber::CINumber(void)
??0CINumber@@IAE@XZ
; public: __thiscall CIPAccessDescriptor::CIPAccessDescriptor(class CIPAccessDescriptor const &)
??0CIPAccessDescriptor@@QAE@ABV0@@Z
; public: __thiscall CIPAccessDescriptor::CIPAccessDescriptor(int)
??0CIPAccessDescriptor@@QAE@H@Z
; public: __thiscall CIPAccessDescriptor::CIPAccessDescriptor(int,unsigned long,unsigned long,int)
??0CIPAccessDescriptor@@QAE@HKKH@Z
; public: __thiscall CIPAccessDescriptor::CIPAccessDescriptor(int,unsigned short const *)
??0CIPAccessDescriptor@@QAE@HPBG@Z
; public: __thiscall CIPAddress::CIPAddress(class CIPAddress const &)
??0CIPAddress@@QAE@ABV0@@Z
; public: __thiscall CIPAddress::CIPAddress(class CString const &)
??0CIPAddress@@QAE@ABVCString@@@Z
; public: __thiscall CIPAddress::CIPAddress(unsigned char,unsigned char,unsigned char,unsigned char)
??0CIPAddress@@QAE@EEEE@Z
; public: __thiscall CIPAddress::CIPAddress(unsigned long,int)
??0CIPAddress@@QAE@KH@Z
; public: __thiscall CIPAddress::CIPAddress(unsigned char *,int)
??0CIPAddress@@QAE@PAEH@Z
; public: __thiscall CIPAddress::CIPAddress(unsigned short const *,int)
??0CIPAddress@@QAE@PBGH@Z
; public: __thiscall CIPAddress::CIPAddress(void)
??0CIPAddress@@QAE@XZ
; public: __thiscall CInheritanceDlg::CInheritanceDlg(int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned short const *,int,class CComAuthInfo *,unsigned short const *,class CWnd *)
??0CInheritanceDlg@@QAE@HKKKKPBGHPAVCComAuthInfo@@0PAVCWnd@@@Z
; public: __thiscall CInheritanceDlg::CInheritanceDlg(unsigned long,int,class CComAuthInfo *,unsigned short const *,unsigned short const *,class CWnd *)
??0CInheritanceDlg@@QAE@KHPAVCComAuthInfo@@PBG1PAVCWnd@@@Z
; public: __thiscall CInheritanceDlg::CInheritanceDlg(unsigned long,int,class CComAuthInfo *,unsigned short const *,class CStringList &,unsigned short const *,class CWnd *)
??0CInheritanceDlg@@QAE@KHPAVCComAuthInfo@@PBGAAVCStringList@@1PAVCWnd@@@Z
; public: __thiscall CMappedBitmapButton::CMappedBitmapButton(void)
??0CMappedBitmapButton@@QAE@XZ
; public: __thiscall CMetaBack::CMetaBack(class CMetaBack &)
??0CMetaBack@@QAE@AAV0@@Z
; public: __thiscall CMetaBack::CMetaBack(class CComAuthInfo *)
??0CMetaBack@@QAE@PAVCComAuthInfo@@@Z
; public: __thiscall CMetaEnumerator::CMetaEnumerator(class CMetaEnumerator &)
??0CMetaEnumerator@@QAE@AAV0@@Z
; public: __thiscall CMetaEnumerator::CMetaEnumerator(int,class CMetaKey *)
??0CMetaEnumerator@@QAE@HPAVCMetaKey@@@Z
; public: __thiscall CMetaEnumerator::CMetaEnumerator(class CComAuthInfo *,unsigned short const *,unsigned long)
??0CMetaEnumerator@@QAE@PAVCComAuthInfo@@PBGK@Z
; public: __thiscall CMetaEnumerator::CMetaEnumerator(class CMetaInterface *,unsigned short const *,unsigned long)
??0CMetaEnumerator@@QAE@PAVCMetaInterface@@PBGK@Z
; protected: __thiscall CMetaInterface::CMetaInterface(class CMetaInterface *)
??0CMetaInterface@@IAE@PAV0@@Z
; protected: __thiscall CMetaInterface::CMetaInterface(class CComAuthInfo *)
??0CMetaInterface@@IAE@PAVCComAuthInfo@@@Z
; public: __thiscall CMetaInterface::CMetaInterface(class CMetaInterface &)
??0CMetaInterface@@QAE@AAV0@@Z
; public: __thiscall CMetaKey::CMetaKey(class CMetaKey &)
??0CMetaKey@@QAE@AAV0@@Z
; public: __thiscall CMetaKey::CMetaKey(int,class CMetaKey *)
??0CMetaKey@@QAE@HPAV0@@Z
; public: __thiscall CMetaKey::CMetaKey(class CComAuthInfo *)
??0CMetaKey@@QAE@PAVCComAuthInfo@@@Z
; public: __thiscall CMetaKey::CMetaKey(class CComAuthInfo *,unsigned short const *,unsigned long,unsigned long)
??0CMetaKey@@QAE@PAVCComAuthInfo@@PBGKK@Z
; public: __thiscall CMetaKey::CMetaKey(class CMetaInterface *)
??0CMetaKey@@QAE@PAVCMetaInterface@@@Z
; public: __thiscall CMetaKey::CMetaKey(class CMetaInterface *,unsigned short const *,unsigned long,unsigned long)
??0CMetaKey@@QAE@PAVCMetaInterface@@PBGKK@Z
; public: __thiscall CMetabasePath::CMetabasePath(class CMetabasePath const &)
??0CMetabasePath@@QAE@ABV0@@Z
; public: __thiscall CMetabasePath::CMetabasePath(int,unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *)
??0CMetabasePath@@QAE@HPBG000@Z
; public: __thiscall CMetabasePath::CMetabasePath(unsigned short const *,unsigned long,unsigned short const *,unsigned short const *)
??0CMetabasePath@@QAE@PBGK00@Z
; protected: __thiscall CODLBox::CODLBox(void)
??0CODLBox@@IAE@XZ
; public: __thiscall CObListIter::CObListIter(class CObListPlus const &)
??0CObListIter@@QAE@ABVCObListPlus@@@Z
; public: __thiscall CObListPlus::CObListPlus(int)
??0CObListPlus@@QAE@H@Z
; protected: __thiscall CObjHelper::CObjHelper(void)
??0CObjHelper@@IAE@XZ
; public: __thiscall CObjHelper::CObjHelper(class CObjHelper const &)
??0CObjHelper@@QAE@ABV0@@Z
; public: __thiscall CObjectPlus::CObjectPlus(void)
??0CObjectPlus@@QAE@XZ
; public: __thiscall CRMCComboBox::CRMCComboBox(void)
??0CRMCComboBox@@QAE@XZ
; public: __thiscall CRMCListBox::CRMCListBox(void)
??0CRMCListBox@@QAE@XZ
; public: __thiscall CRMCListBoxDrawStruct::CRMCListBoxDrawStruct(class CDC *,struct tagRECT *,int,unsigned long,int,class CRMCListBoxResources const *)
??0CRMCListBoxDrawStruct@@QAE@PAVCDC@@PAUtagRECT@@HKHPBVCRMCListBoxResources@@@Z
; public: __thiscall CRMCListBoxHeader::CRMCListBoxHeader(unsigned long)
??0CRMCListBoxHeader@@QAE@K@Z
; public: __thiscall CRMCListBoxResources::CRMCListBoxResources(int,int,unsigned long)
??0CRMCListBoxResources@@QAE@HHK@Z
; public: __thiscall CStrPassword::CStrPassword(class CStrPassword &)
??0CStrPassword@@QAE@AAV0@@Z
; public: __thiscall CStrPassword::CStrPassword(unsigned short *)
??0CStrPassword@@QAE@PAG@Z
; public: __thiscall CStrPassword::CStrPassword(unsigned short const *)
??0CStrPassword@@QAE@PBG@Z
; public: __thiscall CStrPassword::CStrPassword(void)
??0CStrPassword@@QAE@XZ
; public: __thiscall CStringListEx::CStringListEx(int)
??0CStringListEx@@QAE@H@Z
; public: __thiscall CUpButton::CUpButton(void)
??0CUpButton@@QAE@XZ
; protected: __thiscall CWamInterface::CWamInterface(class CWamInterface *)
??0CWamInterface@@IAE@PAV0@@Z
; protected: __thiscall CWamInterface::CWamInterface(class CComAuthInfo *)
??0CWamInterface@@IAE@PAVCComAuthInfo@@@Z
; public: __thiscall CWamInterface::CWamInterface(class CWamInterface &)
??0CWamInterface@@QAE@AAV0@@Z
; public: virtual __thiscall CAccessEntry::~CAccessEntry(void)
??1CAccessEntry@@UAE@XZ
; public: __thiscall CBlob::~CBlob(void)
??1CBlob@@QAE@XZ
; public: __thiscall CComAuthInfo::~CComAuthInfo(void)
??1CComAuthInfo@@QAE@XZ
; public: virtual __thiscall CConfirmDlg::~CConfirmDlg(void)
??1CConfirmDlg@@UAE@XZ
; public: __thiscall CDirBrowseDlg::~CDirBrowseDlg(void)
??1CDirBrowseDlg@@QAE@XZ
; public: virtual __thiscall CDownButton::~CDownButton(void)
??1CDownButton@@UAE@XZ
; public: virtual __thiscall CEmphasizedDialog::~CEmphasizedDialog(void)
??1CEmphasizedDialog@@UAE@XZ
; public: __thiscall CError::~CError(void)
??1CError@@QAE@XZ
; public: __thiscall CGetComputer::~CGetComputer(void)
??1CGetComputer@@QAE@XZ
; public: virtual __thiscall CGetUsers::~CGetUsers(void)
??1CGetUsers@@UAE@XZ
; public: virtual __thiscall CHeaderListBox::~CHeaderListBox(void)
??1CHeaderListBox@@UAE@XZ
; public: virtual __thiscall CIISAppPool::~CIISAppPool(void)
??1CIISAppPool@@UAE@XZ
; public: virtual __thiscall CIISApplication::~CIISApplication(void)
??1CIISApplication@@UAE@XZ
; public: __thiscall CIISInterface::~CIISInterface(void)
??1CIISInterface@@QAE@XZ
; public: virtual __thiscall CIISSvcControl::~CIISSvcControl(void)
??1CIISSvcControl@@UAE@XZ
; public: virtual __thiscall CIISWizardBookEnd::~CIISWizardBookEnd(void)
??1CIISWizardBookEnd@@UAE@XZ
; public: virtual __thiscall CIISWizardPage::~CIISWizardPage(void)
??1CIISWizardPage@@UAE@XZ
; public: virtual __thiscall CIISWizardSheet::~CIISWizardSheet(void)
??1CIISWizardSheet@@UAE@XZ
; public: __thiscall CILong::~CILong(void)
??1CILong@@QAE@XZ
; protected: __thiscall CINumber::~CINumber(void)
??1CINumber@@IAE@XZ
; public: virtual __thiscall CIPAccessDescriptor::~CIPAccessDescriptor(void)
??1CIPAccessDescriptor@@UAE@XZ
; public: virtual __thiscall CIPAddress::~CIPAddress(void)
??1CIPAddress@@UAE@XZ
; public: virtual __thiscall CInheritanceDlg::~CInheritanceDlg(void)
??1CInheritanceDlg@@UAE@XZ
; public: virtual __thiscall CMappedBitmapButton::~CMappedBitmapButton(void)
??1CMappedBitmapButton@@UAE@XZ
; public: virtual __thiscall CMetaBack::~CMetaBack(void)
??1CMetaBack@@UAE@XZ
; public: virtual __thiscall CMetaEnumerator::~CMetaEnumerator(void)
??1CMetaEnumerator@@UAE@XZ
; public: virtual __thiscall CMetaInterface::~CMetaInterface(void)
??1CMetaInterface@@UAE@XZ
; public: virtual __thiscall CMetaKey::~CMetaKey(void)
??1CMetaKey@@UAE@XZ
; public: __thiscall CMetabasePath::~CMetabasePath(void)
??1CMetabasePath@@QAE@XZ
; protected: __thiscall CODLBox::~CODLBox(void)
??1CODLBox@@IAE@XZ
; public: virtual __thiscall CObListIter::~CObListIter(void)
??1CObListIter@@UAE@XZ
; public: virtual __thiscall CObListPlus::~CObListPlus(void)
??1CObListPlus@@UAE@XZ
; public: virtual __thiscall CObjectPlus::~CObjectPlus(void)
??1CObjectPlus@@UAE@XZ
; public: virtual __thiscall CRMCComboBox::~CRMCComboBox(void)
??1CRMCComboBox@@UAE@XZ
; public: virtual __thiscall CRMCListBox::~CRMCListBox(void)
??1CRMCListBox@@UAE@XZ
; public: virtual __thiscall CRMCListBoxHeader::~CRMCListBoxHeader(void)
??1CRMCListBoxHeader@@UAE@XZ
; public: __thiscall CRMCListBoxResources::~CRMCListBoxResources(void)
??1CRMCListBoxResources@@QAE@XZ
; public: __thiscall CStrPassword::~CStrPassword(void)
??1CStrPassword@@QAE@XZ
; public: virtual __thiscall CStringListEx::~CStringListEx(void)
??1CStringListEx@@UAE@XZ
; public: virtual __thiscall CUpButton::~CUpButton(void)
??1CUpButton@@UAE@XZ
; public: virtual __thiscall CWamInterface::~CWamInterface(void)
??1CWamInterface@@UAE@XZ
; public: class CBlob & __thiscall CBlob::operator=(class CBlob const &)
??4CBlob@@QAEAAV0@ABV0@@Z
; public: class CComAuthInfo & __thiscall CComAuthInfo::operator=(class CComAuthInfo &)
??4CComAuthInfo@@QAEAAV0@AAV0@@Z
; public: class CComAuthInfo & __thiscall CComAuthInfo::operator=(class CComAuthInfo *)
??4CComAuthInfo@@QAEAAV0@PAV0@@Z
; public: class CComAuthInfo & __thiscall CComAuthInfo::operator=(unsigned short const *)
??4CComAuthInfo@@QAEAAV0@PBG@Z
; public: class CDirBrowseDlg & __thiscall CDirBrowseDlg::operator=(class CDirBrowseDlg const &)
??4CDirBrowseDlg@@QAEAAV0@ABV0@@Z
; public: class CError const & __thiscall CError::operator=(class CError const &)
??4CError@@QAEABV0@ABV0@@Z
; public: class CError const & __thiscall CError::operator=(long)
??4CError@@QAEABV0@J@Z
; public: class CGetComputer & __thiscall CGetComputer::operator=(class CGetComputer const &)
??4CGetComputer@@QAEAAV0@ABV0@@Z
; public: class CIISAppPool & __thiscall CIISAppPool::operator=(class CIISAppPool &)
??4CIISAppPool@@QAEAAV0@AAV0@@Z
; public: class CIISApplication & __thiscall CIISApplication::operator=(class CIISApplication &)
??4CIISApplication@@QAEAAV0@AAV0@@Z
; public: class CIISInterface & __thiscall CIISInterface::operator=(class CIISInterface &)
??4CIISInterface@@QAEAAV0@AAV0@@Z
; public: class CIISSvcControl & __thiscall CIISSvcControl::operator=(class CIISSvcControl &)
??4CIISSvcControl@@QAEAAV0@AAV0@@Z
; public: class CILong & __thiscall CILong::operator=(class CILong const &)
??4CILong@@QAEAAV0@ABV0@@Z
; public: class CILong & __thiscall CILong::operator=(long)
??4CILong@@QAEAAV0@J@Z
; public: class CILong & __thiscall CILong::operator=(unsigned short const *)
??4CILong@@QAEAAV0@PBG@Z
; public: class CINumber & __thiscall CINumber::operator=(class CINumber const &)
??4CINumber@@QAEAAV0@ABV0@@Z
; public: class CIPAddress const & __thiscall CIPAddress::operator=(class CIPAddress const &)
??4CIPAddress@@QAEABV0@ABV0@@Z
; public: class CIPAddress const & __thiscall CIPAddress::operator=(class CString const &)
??4CIPAddress@@QAEABV0@ABVCString@@@Z
; public: class CIPAddress const & __thiscall CIPAddress::operator=(unsigned long)
??4CIPAddress@@QAEABV0@K@Z
; public: class CIPAddress const & __thiscall CIPAddress::operator=(unsigned short const *)
??4CIPAddress@@QAEABV0@PBG@Z
; public: class CMetaBack & __thiscall CMetaBack::operator=(class CMetaBack &)
??4CMetaBack@@QAEAAV0@AAV0@@Z
; public: class CMetaEnumerator & __thiscall CMetaEnumerator::operator=(class CMetaEnumerator &)
??4CMetaEnumerator@@QAEAAV0@AAV0@@Z
; public: class CMetaInterface & __thiscall CMetaInterface::operator=(class CMetaInterface &)
??4CMetaInterface@@QAEAAV0@AAV0@@Z
; public: class CMetaKey & __thiscall CMetaKey::operator=(class CMetaKey &)
??4CMetaKey@@QAEAAV0@AAV0@@Z
; public: class CMetabasePath & __thiscall CMetabasePath::operator=(class CMetabasePath const &)
??4CMetabasePath@@QAEAAV0@ABV0@@Z
; public: class CObjHelper & __thiscall CObjHelper::operator=(class CObjHelper const &)
??4CObjHelper@@QAEAAV0@ABV0@@Z
; public: class CRMCListBoxDrawStruct & __thiscall CRMCListBoxDrawStruct::operator=(class CRMCListBoxDrawStruct const &)
??4CRMCListBoxDrawStruct@@QAEAAV0@ABV0@@Z
; public: class CStrPassword const & __thiscall CStrPassword::operator=(class CStrPassword &)
??4CStrPassword@@QAEABV0@AAV0@@Z
; public: class CStrPassword const & __thiscall CStrPassword::operator=(unsigned short const *)
??4CStrPassword@@QAEABV0@PBG@Z
; public: class CStringListEx & __thiscall CStringListEx::operator=(class CStringListEx const &)
??4CStringListEx@@QAEAAV0@ABV0@@Z
; public: class CStringListEx & __thiscall CStringListEx::operator=(class CStringList const &)
??4CStringListEx@@QAEAAV0@ABVCStringList@@@Z
; public: class CWamInterface & __thiscall CWamInterface::operator=(class CWamInterface &)
??4CWamInterface@@QAEAAV0@AAV0@@Z
; public: int __thiscall CAccessEntry::operator==(class CAccessEntry const &)const 
??8CAccessEntry@@QBEHABV0@@Z
; public: int __thiscall CAccessEntry::operator==(void * const)const 
??8CAccessEntry@@QBEHQAX@Z
; public: int __thiscall CBlob::operator==(class CBlob const &)const 
??8CBlob@@QBEHABV0@@Z
; public: int const  __thiscall CError::operator==(class CError &)
??8CError@@QAE?BHAAV0@@Z
; public: int const  __thiscall CError::operator==(long)
??8CError@@QAE?BHJ@Z
; public: int __thiscall CILong::operator==(long)
??8CILong@@QAEHJ@Z
; public: int __thiscall CIPAccessDescriptor::operator==(class CIPAccessDescriptor const &)const 
??8CIPAccessDescriptor@@QBEHABV0@@Z
; public: int __thiscall CIPAddress::operator==(class CIPAddress const &)const 
??8CIPAddress@@QBEHABV0@@Z
; public: int __thiscall CIPAddress::operator==(unsigned long)const 
??8CIPAddress@@QBEHK@Z
; public: bool __thiscall CStrPassword::operator==(class CStrPassword &)
??8CStrPassword@@QAE_NAAV0@@Z
; public: int __thiscall CStringListEx::operator==(class CStringList const &)
??8CStringListEx@@QAEHABVCStringList@@@Z
; public: int __thiscall CBlob::operator!=(class CBlob const &)const 
??9CBlob@@QBEHABV0@@Z
; public: int const  __thiscall CError::operator!=(class CError &)
??9CError@@QAE?BHAAV0@@Z
; public: int const  __thiscall CError::operator!=(long)
??9CError@@QAE?BHJ@Z
; public: int __thiscall CILong::operator!=(class CILong &)
??9CILong@@QAEHAAV0@@Z
; public: int __thiscall CIPAddress::operator!=(class CIPAddress const &)const 
??9CIPAddress@@QBEHABV0@@Z
; public: int __thiscall CIPAddress::operator!=(unsigned long)const 
??9CIPAddress@@QBEHK@Z
; public: bool __thiscall CStrPassword::operator!=(class CStrPassword &)
??9CStrPassword@@QAE_NAAV0@@Z
; public: int __thiscall CStringListEx::operator!=(class CStringList const &)
??9CStringListEx@@QAEHABVCStringList@@@Z
; public: __thiscall CComAuthInfo::operator unsigned short *(void)
??BCComAuthInfo@@QAEPAGXZ
; public: __thiscall CComAuthInfo::operator class CComAuthInfo *(void)
??BCComAuthInfo@@QAEPAV0@XZ
; public: __thiscall CError::operator unsigned short *(void)
??BCError@@QAEPAGXZ
; public: __thiscall CError::operator unsigned short const *(void)
??BCError@@QAEPBGXZ
; public: __thiscall CError::operator int const (void)const 
??BCError@@QBE?BHXZ
; public: __thiscall CError::operator long const (void)const 
??BCError@@QBE?BJXZ
; public: __thiscall CError::operator unsigned long const (void)const 
??BCError@@QBE?BKXZ
; public: __thiscall CIISInterface::operator int(void)const 
??BCIISInterface@@QBEHXZ
; public: __thiscall CIISInterface::operator long(void)const 
??BCIISInterface@@QBEJXZ
; public: __thiscall CILong::operator long const (void)const 
??BCILong@@QBE?BJXZ
; public: __thiscall CILong::operator unsigned short const *(void)const 
??BCILong@@QBEPBGXZ
; public: __thiscall CIPAddress::operator class CString(void)const 
??BCIPAddress@@QBE?AVCString@@XZ
; public: __thiscall CIPAddress::operator unsigned long const (void)const 
??BCIPAddress@@QBE?BKXZ
; public: __thiscall CIPAddress::operator unsigned short const *(void)const 
??BCIPAddress@@QBEPBGXZ
; public: __thiscall CMetaKey::operator int(void)const 
??BCMetaKey@@QBEHXZ
; public: __thiscall CMetaKey::operator unsigned long(void)const 
??BCMetaKey@@QBEKXZ
; public: __thiscall CMetaKey::operator unsigned short const *(void)const 
??BCMetaKey@@QBEPBGXZ
; public: __thiscall CMetabasePath::operator unsigned short const *(void)const 
??BCMetabasePath@@QBEPBGXZ
; public: __thiscall CObjHelper::operator int(void)
??BCObjHelper@@QAEHXZ
; public: __thiscall CStrPassword::operator class CString(void)
??BCStrPassword@@QAE?AVCString@@XZ
; public: class CILong & __thiscall CILong::operator*=(class CILong const &)
??XCILong@@QAEAAV0@ABV0@@Z
; public: class CILong & __thiscall CILong::operator*=(long)
??XCILong@@QAEAAV0@J@Z
; public: class CILong & __thiscall CILong::operator*=(unsigned short const * const)
??XCILong@@QAEAAV0@QBG@Z
; public: class CILong & __thiscall CILong::operator+=(class CILong const &)
??YCILong@@QAEAAV0@ABV0@@Z
; public: class CILong & __thiscall CILong::operator+=(long)
??YCILong@@QAEAAV0@J@Z
; public: class CILong & __thiscall CILong::operator+=(unsigned short const * const)
??YCILong@@QAEAAV0@QBG@Z
; public: class CILong & __thiscall CILong::operator-=(class CILong const &)
??ZCILong@@QAEAAV0@ABV0@@Z
; public: class CILong & __thiscall CILong::operator-=(long)
??ZCILong@@QAEAAV0@J@Z
; public: class CILong & __thiscall CILong::operator-=(unsigned short const * const)
??ZCILong@@QAEAAV0@QBG@Z
; public: class CILong & __thiscall CILong::operator/=(class CILong const &)
??_0CILong@@QAEAAV0@ABV0@@Z
; public: class CILong & __thiscall CILong::operator/=(long)
??_0CILong@@QAEAAV0@J@Z
; public: class CILong & __thiscall CILong::operator/=(unsigned short const * const)
??_0CILong@@QAEAAV0@QBG@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 __thiscall CComAuthInfo::`default constructor closure'(void)
??_FCComAuthInfo@@QAEXXZ
; public: void __thiscall CConfirmDlg::`default constructor closure'(void)
??_FCConfirmDlg@@QAEXXZ
; public: void __thiscall CDirBrowseDlg::`default constructor closure'(void)
??_FCDirBrowseDlg@@QAEXXZ
; public: void __thiscall CHeaderListBox::`default constructor closure'(void)
??_FCHeaderListBox@@QAEXXZ
; public: void __thiscall CIISWizardBookEnd::`default constructor closure'(void)
??_FCIISWizardBookEnd@@QAEXXZ
; public: void __thiscall CIISWizardPage::`default constructor closure'(void)
??_FCIISWizardPage@@QAEXXZ
; public: void __thiscall CIISWizardSheet::`default constructor closure'(void)
??_FCIISWizardSheet@@QAEXXZ
; public: void __thiscall CIPAccessDescriptor::`default constructor closure'(void)
??_FCIPAccessDescriptor@@QAEXXZ
; public: void __thiscall CMetabasePath::`default constructor closure'(void)
??_FCMetabasePath@@QAEXXZ
; public: void __thiscall CObListPlus::`default constructor closure'(void)
??_FCObListPlus@@QAEXXZ
; public: void __thiscall CRMCListBoxHeader::`default constructor closure'(void)
??_FCRMCListBoxHeader@@QAEXXZ
; public: void __thiscall CStringListEx::`default constructor closure'(void)
??_FCStringListEx@@QAEXXZ
; void __stdcall ActivateControl(class CWnd &,int)
?ActivateControl@@YGXAAVCWnd@@H@Z
; protected: long __thiscall CMetaInterface::AddKey(unsigned long,unsigned short const *)
?AddKey@CMetaInterface@@IAEJKPBG@Z
; public: long __thiscall CMetaKey::AddKey(unsigned short const *)
?AddKey@CMetaKey@@QAEJPBG@Z
; public: unsigned int __thiscall CError::AddOverride(long,unsigned int)
?AddOverride@CError@@QAEIJI@Z
; public: void __thiscall CAccessEntry::AddPermissions(unsigned long)
?AddPermissions@CAccessEntry@@QAEXK@Z
; public: int __thiscall CODLBox::AddTab(unsigned int)
?AddTab@CODLBox@@QAEHI@Z
; public: int __thiscall CODLBox::AddTabFromHeaders(class CWnd &,class CWnd &)
?AddTabFromHeaders@CODLBox@@QAEHAAVCWnd@@0@Z
; public: int __thiscall CODLBox::AddTabFromHeaders(unsigned int,unsigned int)
?AddTabFromHeaders@CODLBox@@QAEHII@Z
; char * __stdcall AllocAnsiString(unsigned short const *)
?AllocAnsiString@@YGPADPBG@Z
; unsigned short * __stdcall AllocString(unsigned short const *,int)
?AllocString@@YGPAGPBGH@Z
; protected: static int __stdcall CINumber::Allocate(void)
?Allocate@CINumber@@KGHXZ
; protected: static int __stdcall CError::AllocateStatics(void)
?AllocateStatics@CError@@KGHXZ
; protected: long __thiscall CWamInterface::AppCreate(unsigned short const *,unsigned long)
?AppCreate@CWamInterface@@IAEJPBGK@Z
; protected: long __thiscall CWamInterface::AppDelete(unsigned short const *,int)
?AppDelete@CWamInterface@@IAEJPBGH@Z
; protected: long __thiscall CWamInterface::AppDeleteRecoverable(unsigned short const *,int)
?AppDeleteRecoverable@CWamInterface@@IAEJPBGH@Z
; protected: long __thiscall CWamInterface::AppGetStatus(unsigned short const *,unsigned long *)
?AppGetStatus@CWamInterface@@IAEJPBGPAK@Z
; protected: long __thiscall CWamInterface::AppRecover(unsigned short const *,int)
?AppRecover@CWamInterface@@IAEJPBGH@Z
; protected: long __thiscall CWamInterface::AppUnLoad(unsigned short const *,int)
?AppUnLoad@CWamInterface@@IAEJPBGH@Z
; protected: void __thiscall CMetabasePath::AppendPath(unsigned long)
?AppendPath@CMetabasePath@@IAEXK@Z
; protected: void __thiscall CMetabasePath::AppendPath(unsigned short const *)
?AppendPath@CMetabasePath@@IAEXPBG@Z
; class CString  __stdcall AppendToDevicePath(class CString,unsigned short const *)
?AppendToDevicePath@@YG?AVCString@@V1@PBG@Z
; void __stdcall ApplyFontToControls(class CWnd *,class CFont *,unsigned int,unsigned int)
?ApplyFontToControls@@YGXPAVCWnd@@PAVCFont@@II@Z
; public: long __thiscall CComAuthInfo::ApplyProxyBlanket(struct IUnknown *)
?ApplyProxyBlanket@CComAuthInfo@@QAEJPAUIUnknown@@@Z
; public: long __thiscall CComAuthInfo::ApplyProxyBlanket(struct IUnknown *,unsigned long)
?ApplyProxyBlanket@CComAuthInfo@@QAEJPAUIUnknown@@K@Z
; protected: virtual long __thiscall CIISSvcControl::ApplyProxyBlanket(void)
?ApplyProxyBlanket@CIISSvcControl@@MAEJXZ
; protected: virtual long __thiscall CMetaBack::ApplyProxyBlanket(void)
?ApplyProxyBlanket@CMetaBack@@MAEJXZ
; protected: virtual long __thiscall CMetaInterface::ApplyProxyBlanket(void)
?ApplyProxyBlanket@CMetaInterface@@MAEJXZ
; protected: virtual long __thiscall CWamInterface::ApplyProxyBlanket(void)
?ApplyProxyBlanket@CWamInterface@@MAEJXZ
; protected: static int __stdcall CError::AreStaticsAllocated(void)
?AreStaticsAllocated@CError@@KGHXZ
; public: void __thiscall CODLBox::AttachResources(class CRMCListBoxResources const *)
?AttachResources@CODLBox@@QAEXPBVCRMCListBoxResources@@@Z
; protected: void __thiscall CODLBox::AttachWindow(class CWnd *)
?AttachWindow@CODLBox@@IAEXPAVCWnd@@@Z
; public: long __thiscall CMetaBack::Backup(unsigned short const *)
?Backup@CMetaBack@@QAEJPBG@Z
; protected: long __thiscall CMetaInterface::Backup(unsigned short const *,unsigned long,unsigned long)
?Backup@CMetaInterface@@IAEJPBGKK@Z
; public: long __thiscall CMetaBack::BackupWithPassword(unsigned short const *,unsigned short const *)
?BackupWithPassword@CMetaBack@@QAEJPBG0@Z
; protected: long __thiscall CMetaInterface::BackupWithPassword(unsigned short const *,unsigned long,unsigned long,unsigned short const *)
?BackupWithPassword@CMetaInterface@@IAEJPBGKK0@Z
; public: int __thiscall CRMCListBoxResources::BitmapHeight(void)const 
?BitmapHeight@CRMCListBoxResources@@QBEHXZ
; public: int __thiscall CRMCListBoxResources::BitmapWidth(void)const 
?BitmapWidth@CRMCListBoxResources@@QBEHXZ
; int __stdcall BuildAclBlob(class CObListPlus &,class CBlob &)
?BuildAclBlob@@YGHAAVCObListPlus@@AAVCBlob@@@Z
; unsigned long __stdcall BuildAclOblistFromBlob(class CBlob &,class CObListPlus &)
?BuildAclOblistFromBlob@@YGKAAVCBlob@@AAVCObListPlus@@@Z
; public: static double __stdcall CINumber::BuildFloat(long,long)
?BuildFloat@CINumber@@SGNJJ@Z
; void __stdcall BuildIplBlob(class CObListPlus &,int,class CBlob &)
?BuildIplBlob@@YGXAAVCObListPlus@@HAAVCBlob@@@Z
; unsigned long __stdcall BuildIplOblistFromBlob(class CBlob &,class CObListPlus &,int &)
?BuildIplOblistFromBlob@@YGKAAVCBlob@@AAVCObListPlus@@AAH@Z
; protected: void __thiscall CMetabasePath::BuildMetaPath(unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *)
?BuildMetaPath@CMetabasePath@@IAEXPBG000@Z
; protected: void __thiscall CMetabasePath::BuildMetaPath(unsigned short const *,unsigned long,unsigned short const *,unsigned short const *)
?BuildMetaPath@CMetabasePath@@IAEXPBGK00@Z
; int __stdcall CStringFindNoCase(class CString const &,unsigned short const *)
?CStringFindNoCase@@YGHABVCString@@PBG@Z
; protected: void __thiscall CODLBox::CalculateTextHeight(class CFont *)
?CalculateTextHeight@CODLBox@@IAEXPAVCFont@@@Z
; public: int __thiscall CODLBox::ChangeFont(class CFont *)
?ChangeFont@CODLBox@@QAEHPAVCFont@@@Z
; public: virtual long __thiscall CIISInterface::ChangeProxyBlanket(unsigned short const *,unsigned short const *)
?ChangeProxyBlanket@CIISInterface@@UAEJPBG0@Z
; public: long __thiscall CMetaKey::CheckDescendants(unsigned long,class CComAuthInfo *,unsigned short const *)
?CheckDescendants@CMetaKey@@QAEJKPAVCComAuthInfo@@PBG@Z
; protected: class CString & __thiscall CInheritanceDlg::CleanDescendantPath(class CString &)
?CleanDescendantPath@CInheritanceDlg@@IAEAAVCString@@AAV2@@Z
; public: static unsigned short const * __stdcall CMetabasePath::CleanMetaPath(class CString &)
?CleanMetaPath@CMetabasePath@@SGPBGAAVCString@@@Z
; public: void __thiscall CBlob::CleanUp(void)
?CleanUp@CBlob@@QAEXXZ
; private: void __thiscall CStrPassword::ClearPasswordBuffers(void)
?ClearPasswordBuffers@CStrPassword@@AAEXXZ
; public: long __thiscall CMetaKey::Close(void)
?Close@CMetaKey@@QAEJXZ
; protected: long __thiscall CMetaInterface::CloseKey(unsigned long)
?CloseKey@CMetaInterface@@IAEJK@Z
; public: unsigned long __thiscall CRMCListBoxResources::ColorHighlight(void)const 
?ColorHighlight@CRMCListBoxResources@@QBEKXZ
; public: unsigned long __thiscall CRMCListBoxResources::ColorHighlightText(void)const 
?ColorHighlightText@CRMCListBoxResources@@QBEKXZ
; public: unsigned long __thiscall CRMCListBoxResources::ColorWindow(void)const 
?ColorWindow@CRMCListBoxResources@@QBEKXZ
; public: unsigned long __thiscall CRMCListBoxResources::ColorWindowText(void)const 
?ColorWindowText@CRMCListBoxResources@@QBEKXZ
; protected: int __thiscall CODLBox::ColumnText(class CRMCListBoxDrawStruct &,int,int,unsigned short const *)
?ColumnText@CODLBox@@IAEHAAVCRMCListBoxDrawStruct@@HHPBG@Z
; protected: static int __stdcall CODLBox::ColumnText(class CDC *,int,int,int,int,unsigned short const *)
?ColumnText@CODLBox@@KGHPAVCDC@@HHHHPBG@Z
; protected: void __thiscall CIISApplication::CommonConstruct(void)
?CommonConstruct@CIISApplication@@IAEXXZ
; public: virtual int __thiscall CObjectPlus::Compare(class CObjectPlus const *)const 
?Compare@CObjectPlus@@UBEHPBV1@@Z
; public: int __thiscall CStrPassword::Compare(class CStrPassword &)const 
?Compare@CStrPassword@@QBEHAAV1@@Z
; public: int __thiscall CStrPassword::Compare(class CString &)const 
?Compare@CStrPassword@@QBEHAAVCString@@@Z
; public: int __thiscall CStrPassword::Compare(unsigned short const *)const 
?Compare@CStrPassword@@QBEHPBG@Z
; public: int __thiscall CIPAddress::CompareItem(class CIPAddress const &)const 
?CompareItem@CIPAddress@@QBEHABV1@@Z
; protected: void __thiscall CODLBox::ComputeMargins(class CRMCListBoxDrawStruct &,int,int &,int &)
?ComputeMargins@CODLBox@@IAEXAAVCRMCListBoxDrawStruct@@HAAH1@Z
; protected: class CError const & __thiscall CError::Construct(class CError const &)
?Construct@CError@@IAEABV1@ABV1@@Z
; protected: class CError const & __thiscall CError::Construct(long)
?Construct@CError@@IAEABV1@J@Z
; unsigned long __stdcall ConvertDoubleNullListToStringList(unsigned short const *,class CStringList &,int)
?ConvertDoubleNullListToStringList@@YGKPBGAAVCStringList@@H@Z
; public: static unsigned short const * __stdcall CINumber::ConvertFloatToString(double,int,class CString &)
?ConvertFloatToString@CINumber@@SGPBGNHAAVCString@@@Z
; public: static unsigned short const * __stdcall CINumber::ConvertLongToString(long,class CString &)
?ConvertLongToString@CINumber@@SGPBGJAAVCString@@@Z
; int __stdcall ConvertSepLineToStringList(unsigned short const *,class CStringList &,unsigned short const *)
?ConvertSepLineToStringList@@YGHPBGAAVCStringList@@0@Z
; unsigned long __stdcall ConvertStringListToDoubleNullList(class CStringList &,unsigned long &,unsigned short * &)
?ConvertStringListToDoubleNullList@@YGKAAVCStringList@@AAKAAPAG@Z
; unsigned short const * __stdcall ConvertStringListToSepLine(class CStringList &,class CString &,unsigned short const *)
?ConvertStringListToSepLine@@YGPBGAAVCStringList@@AAVCString@@PBG@Z
; public: static int __stdcall CINumber::ConvertStringToFloat(unsigned short const *,double &)
?ConvertStringToFloat@CINumber@@SGHPBGAAN@Z
; public: static int __stdcall CINumber::ConvertStringToLong(unsigned short const *,long &)
?ConvertStringToLong@CINumber@@SGHPBGAAJ@Z
; public: long __thiscall CMetaKey::ConvertToParentPath(int)
?ConvertToParentPath@CMetaKey@@QAEJH@Z
; public: static unsigned short const * __stdcall CMetabasePath::ConvertToParentPath(class CString &)
?ConvertToParentPath@CMetabasePath@@SGPBGAAVCString@@@Z
; protected: long __thiscall CMetaInterface::CopyData(unsigned long,unsigned short const *,unsigned long,unsigned short const *,unsigned long,unsigned long,unsigned long,int)
?CopyData@CMetaInterface@@IAEJKPBGK0KKKH@Z
; protected: long __thiscall CMetaInterface::CopyKey(unsigned long,unsigned short const *,unsigned long,unsigned short const *,int,int)
?CopyKey@CMetaInterface@@IAEJKPBGK0HH@Z
; public: void __thiscall CStrPassword::CopyTo(class CStrPassword &)
?CopyTo@CStrPassword@@QAEXAAV1@@Z
; public: void __thiscall CStrPassword::CopyTo(class CString &)
?CopyTo@CStrPassword@@QAEXAAVCString@@@Z
; public: long __thiscall CIISAppPool::Create(unsigned short const *)
?Create@CIISAppPool@@QAEJPBG@Z
; public: long __thiscall CIISApplication::Create(unsigned short const *,unsigned long)
?Create@CIISApplication@@QAEJPBGK@Z
; protected: long __thiscall CIISInterface::Create(int,struct _GUID const * const,struct _GUID const * const,int *,struct IUnknown * *)
?Create@CIISInterface@@IAEJHQBU_GUID@@0PAHPAPAUIUnknown@@@Z
; protected: long __thiscall CIISSvcControl::Create(void)
?Create@CIISSvcControl@@IAEJXZ
; protected: long __thiscall CMetaInterface::Create(void)
?Create@CMetaInterface@@IAEJXZ
; public: int __thiscall CRMCListBoxHeader::Create(unsigned long,struct tagRECT const &,class CWnd *,class CHeaderListBox *,unsigned int)
?Create@CRMCListBoxHeader@@QAEHKABUtagRECT@@PAVCWnd@@PAVCHeaderListBox@@I@Z
; protected: long __thiscall CWamInterface::Create(void)
?Create@CWamInterface@@IAEJXZ
; protected: long __thiscall CWamInterface::CreateApplication(unsigned short const *,unsigned long,unsigned short const *,int)
?CreateApplication@CWamInterface@@IAEJPBGK0H@Z
; protected: long __thiscall CWamInterface::CreateApplicationPool(unsigned short const *)
?CreateApplicationPool@CWamInterface@@IAEJPBG@Z
; public: static class CObject * __stdcall CEmphasizedDialog::CreateObject(void)
?CreateObject@CEmphasizedDialog@@SGPAVCObject@@XZ
; public: static class CObject * __stdcall CIISWizardBookEnd::CreateObject(void)
?CreateObject@CIISWizardBookEnd@@SGPAVCObject@@XZ
; public: static class CObject * __stdcall CIISWizardPage::CreateObject(void)
?CreateObject@CIISWizardPage@@SGPAVCObject@@XZ
; public: static class CObject * __stdcall CIISWizardSheet::CreateObject(void)
?CreateObject@CIISWizardSheet@@SGPAVCObject@@XZ
; public: long __thiscall CMetaKey::CreatePathFromFailedOpen(void)
?CreatePathFromFailedOpen@CMetaKey@@QAEJXZ
; public: long __thiscall CIISApplication::CreatePooled(unsigned short const *,unsigned long,unsigned short const *,int)
?CreatePooled@CIISApplication@@QAEJPBGK0H@Z
; public: struct _COSERVERINFO * __thiscall CComAuthInfo::CreateServerInfoStruct(unsigned long)const 
?CreateServerInfoStruct@CComAuthInfo@@QBEPAU_COSERVERINFO@@K@Z
; public: struct _COSERVERINFO * __thiscall CComAuthInfo::CreateServerInfoStruct(void)const 
?CreateServerInfoStruct@CComAuthInfo@@QBEPAU_COSERVERINFO@@XZ
; public: long __thiscall CMetaInterface::CreateSite(unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned long *,unsigned long *)
?CreateSite@CMetaInterface@@QAEJPBG000PAK1@Z
; int __stdcall CreateSpecialDialogFont(class CWnd *,class CFont *,long,long,long,int,int)
?CreateSpecialDialogFont@@YGHPAVCWnd@@PAVCFont@@JJJHH@Z
; int __stdcall CvtGMTStringToInternal(unsigned short const *,long *)
?CvtGMTStringToInternal@@YGHPBGPAJ@Z
; void __stdcall CvtInternalToGMTString(long,class CString &)
?CvtInternalToGMTString@@YGXJAAVCString@@@Z
; int __stdcall CvtStringToLong(unsigned short const *,unsigned long *)
?CvtStringToLong@@YGHPBGPAK@Z
; protected: static long __stdcall CError::CvtToInternalFormat(long)
?CvtToInternalFormat@CError@@KGJJ@Z
; void __stdcall DDV_FilePath(class CDataExchange *,class CString &,int)
?DDV_FilePath@@YGXPAVCDataExchange@@AAVCString@@H@Z
; void __stdcall DDV_FolderPath(class CDataExchange *,class CString &,int)
?DDV_FolderPath@@YGXPAVCDataExchange@@AAVCString@@H@Z
; void __stdcall DDV_MaxCharsBalloon(class CDataExchange *,class CString const &,int)
?DDV_MaxCharsBalloon@@YGXPAVCDataExchange@@ABVCString@@H@Z
; void __stdcall DDV_MaxCharsBalloon_SecuredString(class CDataExchange *,class CStrPassword const &,int)
?DDV_MaxCharsBalloon_SecuredString@@YGXPAVCDataExchange@@ABVCStrPassword@@H@Z
; void __stdcall DDV_MaxChars_SecuredString(class CDataExchange *,class CStrPassword const &,int)
?DDV_MaxChars_SecuredString@@YGXPAVCDataExchange@@ABVCStrPassword@@H@Z
; void __stdcall DDV_MinChars(class CDataExchange *,class CString const &,int)
?DDV_MinChars@@YGXPAVCDataExchange@@ABVCString@@H@Z
; void __stdcall DDV_MinChars_SecuredString(class CDataExchange *,class CStrPassword const &,int)
?DDV_MinChars_SecuredString@@YGXPAVCDataExchange@@ABVCStrPassword@@H@Z
; void __stdcall DDV_MinMaxBalloon(class CDataExchange *,int,unsigned long,unsigned long)
?DDV_MinMaxBalloon@@YGXPAVCDataExchange@@HKK@Z
; void __stdcall DDV_MinMaxChars(class CDataExchange *,class CString const &,int,int)
?DDV_MinMaxChars@@YGXPAVCDataExchange@@ABVCString@@HH@Z
; void __stdcall DDV_MinMaxChars_SecuredString(class CDataExchange *,class CStrPassword const &,int,int)
?DDV_MinMaxChars_SecuredString@@YGXPAVCDataExchange@@ABVCStrPassword@@HH@Z
; void __stdcall DDV_MinMaxSpin(class CDataExchange *,struct HWND__ *,int,int)
?DDV_MinMaxSpin@@YGXPAVCDataExchange@@PAUHWND__@@HH@Z
; void __stdcall DDV_ShowBalloonAndFail(class CDataExchange *,unsigned int)
?DDV_ShowBalloonAndFail@@YGXPAVCDataExchange@@I@Z
; void __stdcall DDV_ShowBalloonAndFail(class CDataExchange *,class CString)
?DDV_ShowBalloonAndFail@@YGXPAVCDataExchange@@VCString@@@Z
; void __stdcall DDV_UNCFolderPath(class CDataExchange *,class CString &,int)
?DDV_UNCFolderPath@@YGXPAVCDataExchange@@AAVCString@@H@Z
; void __stdcall DDV_Url(class CDataExchange *,class CString &)
?DDV_Url@@YGXPAVCDataExchange@@AAVCString@@@Z
; void __stdcall DDX_Password(class CDataExchange *,int,class CString &,unsigned short const *)
?DDX_Password@@YGXPAVCDataExchange@@HAAVCString@@PBG@Z
; void __stdcall DDX_Password_SecuredString(class CDataExchange *,int,class CStrPassword &,unsigned short const *)
?DDX_Password_SecuredString@@YGXPAVCDataExchange@@HAAVCStrPassword@@PBG@Z
; void __stdcall DDX_Spin(class CDataExchange *,int,int &)
?DDX_Spin@@YGXPAVCDataExchange@@HAAH@Z
; void __stdcall DDX_Text(class CDataExchange *,int,class CILong &)
?DDX_Text@@YGXPAVCDataExchange@@HAAVCILong@@@Z
; void __stdcall DDX_TextBalloon(class CDataExchange *,int,unsigned char &)
?DDX_TextBalloon@@YGXPAVCDataExchange@@HAAE@Z
; void __stdcall DDX_TextBalloon(class CDataExchange *,int,short &)
?DDX_TextBalloon@@YGXPAVCDataExchange@@HAAF@Z
; void __stdcall DDX_TextBalloon(class CDataExchange *,int,int &)
?DDX_TextBalloon@@YGXPAVCDataExchange@@HAAH@Z
; void __stdcall DDX_TextBalloon(class CDataExchange *,int,unsigned int &)
?DDX_TextBalloon@@YGXPAVCDataExchange@@HAAI@Z
; void __stdcall DDX_TextBalloon(class CDataExchange *,int,long &)
?DDX_TextBalloon@@YGXPAVCDataExchange@@HAAJ@Z
; void __stdcall DDX_TextBalloon(class CDataExchange *,int,unsigned long &)
?DDX_TextBalloon@@YGXPAVCDataExchange@@HAAK@Z
; void __stdcall DDX_TextBalloon(class CDataExchange *,int,__int64 &)
?DDX_TextBalloon@@YGXPAVCDataExchange@@HAA_J@Z
; void __stdcall DDX_TextBalloon(class CDataExchange *,int,unsigned __int64 &)
?DDX_TextBalloon@@YGXPAVCDataExchange@@HAA_K@Z
; void __stdcall DDX_Text_SecuredString(class CDataExchange *,int,class CStrPassword &)
?DDX_Text_SecuredString@@YGXPAVCDataExchange@@HAAVCStrPassword@@@Z
; public: static unsigned char * __stdcall CIPAddress::DWORDtoLPBYTE(unsigned long,unsigned char *)
?DWORDtoLPBYTE@CIPAddress@@SGPAEKPAE@Z
; protected: static void __stdcall CINumber::DeAllocate(void)
?DeAllocate@CINumber@@KGXXZ
; protected: static void __stdcall CError::DeAllocateStatics(void)
?DeAllocateStatics@CError@@KGXXZ
; unsigned long __stdcall DeflateEnvironmentVariablePath(unsigned short const *,class CString &)
?DeflateEnvironmentVariablePath@@YGKPBGAAVCString@@@Z
; public: long __thiscall CIISAppPool::Delete(unsigned short const *)
?Delete@CIISAppPool@@QAEJPBG@Z
; public: long __thiscall CIISApplication::Delete(int)
?Delete@CIISApplication@@QAEJH@Z
; public: long __thiscall CMetaBack::Delete(unsigned short const *,unsigned long)
?Delete@CMetaBack@@QAEJPBGK@Z
; protected: long __thiscall CMetaInterface::DeleteAllData(unsigned long,unsigned short const *,unsigned long,unsigned long)
?DeleteAllData@CMetaInterface@@IAEJKPBGKK@Z
; protected: long __thiscall CWamInterface::DeleteApplication(unsigned short const *,int)
?DeleteApplication@CWamInterface@@IAEJPBGH@Z
; protected: long __thiscall CWamInterface::DeleteApplicationPool(unsigned short const *)
?DeleteApplicationPool@CWamInterface@@IAEJPBG@Z
; protected: long __thiscall CMetaInterface::DeleteBackup(unsigned short const *,unsigned long)
?DeleteBackup@CMetaInterface@@IAEJPBGK@Z
; protected: long __thiscall CMetaInterface::DeleteChildKeys(unsigned long,unsigned short const *)
?DeleteChildKeys@CMetaInterface@@IAEJKPBG@Z
; protected: long __thiscall CMetaInterface::DeleteData(unsigned long,unsigned short const *,unsigned long,unsigned long)
?DeleteData@CMetaInterface@@IAEJKPBGKK@Z
; protected: int __thiscall CHeaderListBox::DeleteHeaderItem(int)
?DeleteHeaderItem@CHeaderListBox@@IAEHH@Z
; public: int __thiscall CRMCListBoxHeader::DeleteItem(int)
?DeleteItem@CRMCListBoxHeader@@QAEHH@Z
; protected: long __thiscall CMetaInterface::DeleteKey(unsigned long,unsigned short const *)
?DeleteKey@CMetaInterface@@IAEJKPBG@Z
; public: long __thiscall CMetaKey::DeleteKey(unsigned short const *)
?DeleteKey@CMetaKey@@QAEJPBG@Z
; public: long __thiscall CIISApplication::DeleteRecoverable(int)
?DeleteRecoverable@CIISApplication@@QAEJH@Z
; public: long __thiscall CMetaKey::DeleteValue(unsigned long,unsigned short const *)
?DeleteValue@CMetaKey@@QAEJKPBG@Z
; public: void __thiscall CStrPassword::DestroyClearTextPassword(unsigned short *)const 
?DestroyClearTextPassword@CStrPassword@@QBEXPAG@Z
; protected: void __thiscall CHeaderListBox::DistributeColumns(void)
?DistributeColumns@CHeaderListBox@@IAEXXZ
; protected: virtual void __thiscall CConfirmDlg::DoDataExchange(class CDataExchange *)
?DoDataExchange@CConfirmDlg@@MAEXPAVCDataExchange@@@Z
; protected: virtual void __thiscall CInheritanceDlg::DoDataExchange(class CDataExchange *)
?DoDataExchange@CInheritanceDlg@@MAEXPAVCDataExchange@@@Z
; public: virtual int __thiscall CDirBrowseDlg::DoModal(void)
?DoModal@CDirBrowseDlg@@UAEHXZ
; public: virtual int __thiscall CInheritanceDlg::DoModal(void)
?DoModal@CInheritanceDlg@@UAEHXZ
; public: long __thiscall CMetaKey::DoesPathExist(unsigned short const *)
?DoesPathExist@CMetaKey@@QAEJPBG@Z
; public: int __thiscall CRMCListBoxHeader::DoesRespondToColumnWidthChanges(void)const 
?DoesRespondToColumnWidthChanges@CRMCListBoxHeader@@QBEHXZ
; int __stdcall DoesUNCShareExist(class CString &)
?DoesUNCShareExist@@YGHAAVCString@@@Z
; protected: int __thiscall CODLBox::DrawBitmap(class CRMCListBoxDrawStruct &,int,int)
?DrawBitmap@CODLBox@@IAEHAAVCRMCListBoxDrawStruct@@HH@Z
; protected: virtual void __thiscall CRMCComboBox::DrawItem(struct tagDRAWITEMSTRUCT *)
?DrawItem@CRMCComboBox@@MAEXPAUtagDRAWITEMSTRUCT@@@Z
; protected: virtual void __thiscall CRMCListBox::DrawItem(struct tagDRAWITEMSTRUCT *)
?DrawItem@CRMCListBox@@MAEXPAUtagDRAWITEMSTRUCT@@@Z
; protected: virtual void __thiscall CRMCComboBox::DrawItemEx(class CRMCListBoxDrawStruct &)
?DrawItemEx@CRMCComboBox@@MAEXAAVCRMCListBoxDrawStruct@@@Z
; protected: virtual void __thiscall CRMCListBox::DrawItemEx(class CRMCListBoxDrawStruct &)
?DrawItemEx@CRMCListBox@@MAEXAAVCRMCListBoxDrawStruct@@@Z
; public: int __thiscall CIPAccessDescriptor::DuplicateInList(class CObListPlus &)
?DuplicateInList@CIPAccessDescriptor@@QAEHAAVCObListPlus@@@Z
; void __stdcall EditHideBalloon(void)
?EditHideBalloon@@YGXXZ
; void __stdcall EditShowBalloon(struct HWND__ *,unsigned int)
?EditShowBalloon@@YGXPAUHWND__@@I@Z
; void __stdcall EditShowBalloon(struct HWND__ *,class CString)
?EditShowBalloon@@YGXPAUHWND__@@VCString@@@Z
; public: void __thiscall CStrPassword::Empty(void)
?Empty@CStrPassword@@QAEXXZ
; public: void __thiscall CIISWizardSheet::EnableButton(int,int)
?EnableButton@CIISWizardSheet@@QAEXHH@Z
; protected: void __thiscall CIISWizardPage::EnableSheetButton(int,int)
?EnableSheetButton@CIISWizardPage@@IAEXHH@Z
; public: int __thiscall CHeaderListBox::EnableWindow(int)
?EnableWindow@CHeaderListBox@@QAEHH@Z
; protected: long __thiscall CMetaInterface::EnumBackups(unsigned short *,unsigned long *,struct _FILETIME *,unsigned long)
?EnumBackups@CMetaInterface@@IAEJPAGPAKPAU_FILETIME@@K@Z
; protected: long __thiscall CMetaInterface::EnumData(unsigned long,unsigned short const *,struct _METADATA_RECORD *,unsigned long,unsigned long *)
?EnumData@CMetaInterface@@IAEJKPBGPAU_METADATA_RECORD@@KPAK@Z
; protected: long __thiscall CMetaInterface::EnumHistory(unsigned short *,unsigned long *,unsigned long *,struct _FILETIME *,unsigned long)
?EnumHistory@CMetaInterface@@IAEJPAGPAK1PAU_FILETIME@@K@Z
; protected: long __thiscall CMetaInterface::EnumKeys(unsigned long,unsigned short const *,unsigned short *,unsigned long)
?EnumKeys@CMetaInterface@@IAEJKPBGPAGK@Z
; public: long __thiscall CIISAppPool::EnumerateApplications(class CStringListEx &)
?EnumerateApplications@CIISAppPool@@QAEJAAVCStringListEx@@@Z
; protected: long __thiscall CWamInterface::EnumerateApplicationsInPool(unsigned short const *,unsigned short * *)
?EnumerateApplicationsInPool@CWamInterface@@IAEJPBGPAPAG@Z
; protected: int __thiscall CError::ExpandEscapeCode(unsigned short *,unsigned long,unsigned short * &,class CString &,long &)const 
?ExpandEscapeCode@CError@@IBEHPAGKAAPAGAAVCString@@AAJ@Z
; public: int __thiscall CError::Failed(void)const 
?Failed@CError@@QBEHXZ
; public: static int __stdcall CError::Failed(long)
?Failed@CError@@SGHJ@Z
; int __stdcall FetchIpAddressFromCombo(class CComboBox &,class CObListPlus &,class CIPAddress &)
?FetchIpAddressFromCombo@@YGHAAVCComboBox@@AAVCObListPlus@@AAVCIPAddress@@@Z
; public: int __thiscall CObListPlus::FindElement(class CObject *)const 
?FindElement@CObListPlus@@QBEHPAVCObject@@@Z
; protected: static unsigned short const * __stdcall CError::FindFacility(unsigned long)
?FindFacility@CError@@KGPBGK@Z
; void __stdcall FitPathToControl(class CWnd &,unsigned short const *,int)
?FitPathToControl@@YGXAAVCWnd@@PBGH@Z
; public: void __thiscall CAccessEntry::FlagForDeletion(int)
?FlagForDeletion@CAccessEntry@@QAEXH@Z
; public: void __thiscall CComAuthInfo::FreeServerInfoStruct(struct _COSERVERINFO *)const 
?FreeServerInfoStruct@CComAuthInfo@@QBEXPAU_COSERVERINFO@@@Z
; protected: int __thiscall CInheritanceDlg::FriendlyInstance(class CString &,class CString &)
?FriendlyInstance@CInheritanceDlg@@IAEHAAVCString@@0@Z
; unsigned short const * __stdcall GUIDToCString(struct _GUID const &,class CString &)
?GUIDToCString@@YGPBGABU_GUID@@AAVCString@@@Z
; unsigned short const * __stdcall GenerateRegistryKey(class CString &,unsigned short const *)
?GenerateRegistryKey@@YGPBGAAVCString@@PBG@Z
; public: long __thiscall CMetaInterface::GetAdminInterface2(struct IMSAdminBase2W * *)
?GetAdminInterface2@CMetaInterface@@QAEJPAPAUIMSAdminBase2W@@@Z
; public: long __thiscall CMetaInterface::GetAdminInterface3(struct IMSAdminBase3W * *)
?GetAdminInterface3@CMetaInterface@@QAEJPAPAUIMSAdminBase3W@@@Z
; protected: long __thiscall CMetaInterface::GetAllData(unsigned long,unsigned short const *,unsigned long,unsigned long,unsigned long,unsigned long *,unsigned long *,unsigned long,unsigned char *,unsigned long *)
?GetAllData@CMetaInterface@@IAEJKPBGKKKPAK1KPAE1@Z
; protected: long __thiscall CMetaKey::GetAllData(unsigned long,unsigned long,unsigned long,unsigned long *,unsigned long *,unsigned char * *,unsigned short const *)
?GetAllData@CMetaKey@@IAEJKKKPAK0PAPAEPBG@Z
; public: long __thiscall CWamInterface::GetAppAdminInterface(struct IIISApplicationAdmin * *)
?GetAppAdminInterface@CWamInterface@@QAEJPAPAUIIISApplicationAdmin@@@Z
; protected: struct HBRUSH__ * __thiscall CIISWizardPage::GetBackgroundBrush(void)const 
?GetBackgroundBrush@CIISWizardPage@@IBEPAUHBRUSH__@@XZ
; public: struct HBRUSH__ * __thiscall CIISWizardSheet::GetBackgroundBrush(void)const 
?GetBackgroundBrush@CIISWizardSheet@@QBEPAUHBRUSH__@@XZ
; public: unsigned long __thiscall CMetaKey::GetBase(void)const 
?GetBase@CMetaKey@@QBEKXZ
; protected: class CFont * __thiscall CIISWizardPage::GetBigFont(void)
?GetBigFont@CIISWizardPage@@IAEPAVCFont@@XZ
; public: class CFont * __thiscall CIISWizardSheet::GetBigFont(void)
?GetBigFont@CIISWizardSheet@@QAEPAVCFont@@XZ
; protected: class CDC * __thiscall CIISWizardPage::GetBitmapMemDC(void)
?GetBitmapMemDC@CIISWizardPage@@IAEPAVCDC@@XZ
; public: class CDC * __thiscall CIISWizardSheet::GetBitmapMemDC(int)
?GetBitmapMemDC@CIISWizardSheet@@QAEPAVCDC@@H@Z
; protected: class CFont * __thiscall CIISWizardPage::GetBoldFont(void)
?GetBoldFont@CIISWizardPage@@IAEPAVCFont@@XZ
; public: class CFont * __thiscall CIISWizardSheet::GetBoldFont(void)
?GetBoldFont@CIISWizardSheet@@QAEPAVCFont@@XZ
; public: int __thiscall CStrPassword::GetByteLength(void)const 
?GetByteLength@CStrPassword@@QBEHXZ
; protected: long __thiscall CMetaInterface::GetChildPaths(unsigned long,unsigned short const *,unsigned long,unsigned short *,unsigned long *)
?GetChildPaths@CMetaInterface@@IAEJKPBGKPAGPAK@Z
; public: long __thiscall CMetaKey::GetChildPaths(class CStringListEx &,unsigned short const *)
?GetChildPaths@CMetaKey@@QAEJAAVCStringListEx@@PBG@Z
; public: unsigned short * __thiscall CStrPassword::GetClearTextPassword(void)
?GetClearTextPassword@CStrPassword@@QAEPAGXZ
; public: int __thiscall CRMCListBoxHeader::GetColumnWidth(int)const 
?GetColumnWidth@CRMCListBoxHeader@@QBEHH@Z
; public: int __thiscall CGetComputer::GetComputer(struct HWND__ *)
?GetComputer@CGetComputer@@QAEHPAUHWND__@@@Z
; public: int __thiscall CRMCListBox::GetCurSel(void)const 
?GetCurSel@CRMCListBox@@QBEHXZ
; public: unsigned char * __thiscall CBlob::GetData(void)
?GetData@CBlob@@QAEPAEXZ
; protected: long __thiscall CMetaInterface::GetData(unsigned long,unsigned short const *,struct _METADATA_RECORD *,unsigned long *)
?GetData@CMetaInterface@@IAEJKPBGPAU_METADATA_RECORD@@PAK@Z
; protected: long __thiscall CInheritanceDlg::GetDataPaths(void)
?GetDataPaths@CInheritanceDlg@@IAEJXZ
; protected: long __thiscall CMetaInterface::GetDataPaths(unsigned long,unsigned short const *,unsigned long,unsigned long,unsigned long,unsigned short *,unsigned long *)
?GetDataPaths@CMetaInterface@@IAEJKPBGKKKPAGPAK@Z
; public: long __thiscall CMetaKey::GetDataPaths(class CStringListEx &,unsigned long,unsigned long,unsigned short const *)
?GetDataPaths@CMetaKey@@QAEJAAVCStringListEx@@KKPBG@Z
; void __stdcall GetDlgCtlRect(struct HWND__ *,struct HWND__ *,struct tagRECT *)
?GetDlgCtlRect@@YGXPAUHWND__@@0PAUtagRECT@@@Z
; public: unsigned short const * __thiscall CDirBrowseDlg::GetFullPath(class CString &,int)const 
?GetFullPath@CDirBrowseDlg@@QBEPBGAAVCString@@H@Z
; void __stdcall GetFullPathLocalOrRemote(unsigned short const *,unsigned short const *,class CString &)
?GetFullPathLocalOrRemote@@YGXPBG0AAVCString@@@Z
; public: unsigned long __thiscall CMetaKey::GetHandle(void)const 
?GetHandle@CMetaKey@@QBEKXZ
; protected: class CRMCListBoxHeader * __thiscall CHeaderListBox::GetHeader(void)
?GetHeader@CHeaderListBox@@IAEPAVCRMCListBoxHeader@@XZ
; protected: int __thiscall CHeaderListBox::GetHeaderItem(int,struct _HD_ITEMW *)const 
?GetHeaderItem@CHeaderListBox@@IBEHHPAU_HD_ITEMW@@@Z
; protected: int __thiscall CHeaderListBox::GetHeaderItemCount(void)const 
?GetHeaderItemCount@CHeaderListBox@@IBEHXZ
; int __stdcall GetIUsrAccount(unsigned short const *,class CWnd *,class CString &)
?GetIUsrAccount@@YGHPBGPAVCWnd@@AAVCString@@@Z
; int __stdcall GetIUsrAccount(unsigned short const *,class CWnd *,unsigned short *,int)
?GetIUsrAccount@@YGHPBGPAVCWnd@@PAGH@Z
; public: static unsigned long __stdcall CMetabasePath::GetInstanceNumber(unsigned short const *)
?GetInstanceNumber@CMetabasePath@@SGKPBG@Z
; public: static unsigned short const * __stdcall CMetabasePath::GetInstancePath(unsigned short const *,class CString &,class CString *)
?GetInstancePath@CMetabasePath@@SGPBGPBGAAVCString@@PAV2@@Z
; public: struct IMSAdminBaseW * __thiscall CMetaInterface::GetInterface(void)
?GetInterface@CMetaInterface@@QAEPAUIMSAdminBaseW@@XZ
; public: int __thiscall CRMCListBoxHeader::GetItem(int,struct _HD_ITEMW *)const 
?GetItem@CRMCListBoxHeader@@QBEHHPAU_HD_ITEMW@@@Z
; public: int __thiscall CRMCListBoxHeader::GetItemCount(void)const 
?GetItemCount@CRMCListBoxHeader@@QBEHXZ
; protected: long __thiscall CMetaInterface::GetLastChangeTime(unsigned long,unsigned short const *,struct _FILETIME *,int)
?GetLastChangeTime@CMetaInterface@@IAEJKPBGPAU_FILETIME@@H@Z
; public: static unsigned short const * __stdcall CMetabasePath::GetLastNodeName(unsigned short const *,class CString &)
?GetLastNodeName@CMetabasePath@@SGPBGPBGAAVCString@@@Z
; public: void __thiscall CError::GetLastWinError(void)
?GetLastWinError@CError@@QAEXXZ
; public: int __thiscall CStrPassword::GetLength(void)const 
?GetLength@CStrPassword@@QBEHXZ
; public: static int __stdcall CMetaKey::GetMDFieldDef(unsigned long,unsigned long &,unsigned long &,unsigned long &,unsigned long &)
?GetMDFieldDef@CMetaKey@@SGHKAAK000@Z
; public: static unsigned short const * __stdcall CMetabasePath::GetMachinePath(unsigned short const *,class CString &,class CString *)
?GetMachinePath@CMetabasePath@@SGPBGPBGAAVCString@@PAV2@@Z
; protected: virtual struct AFX_MSGMAP const * __thiscall CConfirmDlg::GetMessageMap(void)const 
?GetMessageMap@CConfirmDlg@@MBEPBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __thiscall CEmphasizedDialog::GetMessageMap(void)const 
?GetMessageMap@CEmphasizedDialog@@MBEPBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __thiscall CHeaderListBox::GetMessageMap(void)const 
?GetMessageMap@CHeaderListBox@@MBEPBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __thiscall CIISWizardBookEnd::GetMessageMap(void)const 
?GetMessageMap@CIISWizardBookEnd@@MBEPBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __thiscall CIISWizardPage::GetMessageMap(void)const 
?GetMessageMap@CIISWizardPage@@MBEPBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __thiscall CIISWizardSheet::GetMessageMap(void)const 
?GetMessageMap@CIISWizardSheet@@MBEPBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __thiscall CInheritanceDlg::GetMessageMap(void)const 
?GetMessageMap@CInheritanceDlg@@MBEPBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __thiscall CRMCComboBox::GetMessageMap(void)const 
?GetMessageMap@CRMCComboBox@@MBEPBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __thiscall CRMCListBox::GetMessageMap(void)const 
?GetMessageMap@CRMCListBox@@MBEPBUAFX_MSGMAP@@XZ
; protected: virtual struct AFX_MSGMAP const * __thiscall CRMCListBoxHeader::GetMessageMap(void)const 
?GetMessageMap@CRMCListBoxHeader@@MBEPBUAFX_MSGMAP@@XZ
; public: static struct CMetaKey::tagMDFIELDDEF const * __stdcall CMetaKey::GetMetaProp(unsigned long)
?GetMetaProp@CMetaKey@@SGPBUtagMDFIELDDEF@1@K@Z
; public: void * __thiscall CRMCListBox::GetNextSelectedItem(int *)
?GetNextSelectedItem@CRMCListBox@@QAEPAXPAH@Z
; public: class CString & __thiscall CConfirmDlg::GetPassword(void)
?GetPassword@CConfirmDlg@@QAEAAVCString@@XZ
; public: long __thiscall CIISAppPool::GetProcessMode(unsigned long *)
?GetProcessMode@CIISAppPool@@QAEJPAK@Z
; protected: long __thiscall CWamInterface::GetProcessMode(unsigned long *)
?GetProcessMode@CWamInterface@@IAEJPAK@Z
; public: static int __stdcall CMetaKey::GetPropertyDescription(unsigned long,class CString &)
?GetPropertyDescription@CMetaKey@@SGHKAAVCString@@@Z
; protected: long __thiscall CMetaKey::GetPropertyValue(unsigned long,unsigned long &,void * &,unsigned long *,int *,unsigned short const *,unsigned long *)
?GetPropertyValue@CMetaKey@@IAEJKAAKAAPAXPAKPAHPBG2@Z
; protected: static int __stdcall CODLBox::GetRequiredWidth(class CDC *,class CRect const &,unsigned short const *,int)
?GetRequiredWidth@CODLBox@@KGHPAVCDC@@ABVCRect@@PBGH@Z
; public: static unsigned short const * __stdcall CMetabasePath::GetRootPath(unsigned short const *,class CString &,class CString *)
?GetRootPath@CMetabasePath@@SGPBGPBGAAVCString@@PAV2@@Z
; public: virtual struct CRuntimeClass * __thiscall CEmphasizedDialog::GetRuntimeClass(void)const 
?GetRuntimeClass@CEmphasizedDialog@@UBEPAUCRuntimeClass@@XZ
; public: virtual struct CRuntimeClass * __thiscall CHeaderListBox::GetRuntimeClass(void)const 
?GetRuntimeClass@CHeaderListBox@@UBEPAUCRuntimeClass@@XZ
; public: virtual struct CRuntimeClass * __thiscall CIISWizardBookEnd::GetRuntimeClass(void)const 
?GetRuntimeClass@CIISWizardBookEnd@@UBEPAUCRuntimeClass@@XZ
; public: virtual struct CRuntimeClass * __thiscall CIISWizardPage::GetRuntimeClass(void)const 
?GetRuntimeClass@CIISWizardPage@@UBEPAUCRuntimeClass@@XZ
; public: virtual struct CRuntimeClass * __thiscall CIISWizardSheet::GetRuntimeClass(void)const 
?GetRuntimeClass@CIISWizardSheet@@UBEPAUCRuntimeClass@@XZ
; public: virtual struct CRuntimeClass * __thiscall CRMCComboBox::GetRuntimeClass(void)const 
?GetRuntimeClass@CRMCComboBox@@UBEPAUCRuntimeClass@@XZ
; public: virtual struct CRuntimeClass * __thiscall CRMCListBox::GetRuntimeClass(void)const 
?GetRuntimeClass@CRMCListBox@@UBEPAUCRuntimeClass@@XZ
; public: virtual struct CRuntimeClass * __thiscall CRMCListBoxHeader::GetRuntimeClass(void)const 
?GetRuntimeClass@CRMCListBoxHeader@@UBEPAUCRuntimeClass@@XZ
; public: int __thiscall CRMCListBox::GetSel(int)const 
?GetSel@CRMCListBox@@QBEHH@Z
; public: int __thiscall CRMCListBox::GetSelCount(void)const 
?GetSelCount@CRMCListBox@@QBEHXZ
; public: void * __thiscall CRMCListBox::GetSelectedListItem(int *)
?GetSelectedListItem@CRMCListBox@@QAEPAXPAH@Z
; public: static unsigned short const * __stdcall CMetabasePath::GetServiceInfoPath(unsigned short const *,class CString &,unsigned short const *)
?GetServiceInfoPath@CMetabasePath@@SGPBGPBGAAVCString@@0@Z
; public: static unsigned short const * __stdcall CMetabasePath::GetServicePath(unsigned short const *,class CString &,class CString *)
?GetServicePath@CMetabasePath@@SGPBGPBGAAVCString@@PAV2@@Z
; protected: class CIISWizardSheet * __thiscall CIISWizardPage::GetSheet(void)const 
?GetSheet@CIISWizardPage@@IBEPAVCIISWizardSheet@@XZ
; public: void * __thiscall CAccessEntry::GetSid(void)
?GetSid@CAccessEntry@@QAEPAXXZ
; public: unsigned long __thiscall CBlob::GetSize(void)const 
?GetSize@CBlob@@QBEKXZ
; protected: class CFont * __thiscall CIISWizardPage::GetSpecialFont(void)
?GetSpecialFont@CIISWizardPage@@IAEPAVCFont@@XZ
; public: class CFont * __thiscall CIISWizardSheet::GetSpecialFont(int)
?GetSpecialFont@CIISWizardSheet@@QAEPAVCFont@@H@Z
; int __stdcall GetSpecialPathRealPath(int,class CString const &,class CString &)
?GetSpecialPathRealPath@@YGHHABVCString@@AAV1@@Z
; protected: void __thiscall CRMCListBoxResources::GetSysColors(void)
?GetSysColors@CRMCListBoxResources@@IAEXXZ
; public: long __thiscall CMetaInterface::GetSystemChangeNumber(unsigned long *)
?GetSystemChangeNumber@CMetaInterface@@QAEJPAK@Z
; public: unsigned int __thiscall CODLBox::GetTab(int)const 
?GetTab@CODLBox@@QBEIH@Z
; public: int __thiscall CGetUsers::GetUsers(struct HWND__ *,int)
?GetUsers@CGetUsers@@QAEHPAUHWND__@@H@Z
; int __stdcall GetVolumeInformationSystemFlags(unsigned short const *,unsigned long *)
?GetVolumeInformationSystemFlags@@YGHPBGPAK@Z
; protected: class CBrush * __thiscall CIISWizardPage::GetWindowBrush(void)
?GetWindowBrush@CIISWizardPage@@IAEPAVCBrush@@XZ
; public: class CBrush * __thiscall CIISWizardSheet::GetWindowBrush(void)
?GetWindowBrush@CIISWizardSheet@@QAEPAVCBrush@@XZ
; public: void __thiscall CIPAccessDescriptor::GrantAccess(int)
?GrantAccess@CIPAccessDescriptor@@QAEXH@Z
; public: long __thiscall CError::HResult(void)const 
?HResult@CError@@QBEJXZ
; public: static long __stdcall CError::HResult(long)
?HResult@CError@@SGJJ@Z
; public: int __thiscall CIPAccessDescriptor::HasAccess(void)const 
?HasAccess@CIPAccessDescriptor@@QBEHXZ
; public: int __thiscall CAccessEntry::HasAppropriateAccess(unsigned long)const 
?HasAppropriateAccess@CAccessEntry@@QBEHK@Z
; protected: int __thiscall CIISSvcControl::HasInterface(void)const 
?HasInterface@CIISSvcControl@@IBEHXZ
; protected: int __thiscall CMetaInterface::HasInterface(void)const 
?HasInterface@CMetaInterface@@IBEHXZ
; protected: int __thiscall CWamInterface::HasInterface(void)const 
?HasInterface@CWamInterface@@IBEHXZ
; protected: int __thiscall CError::HasOverride(unsigned int *)const 
?HasOverride@CError@@IBEHPAI@Z
; public: int __thiscall CAccessEntry::HasSomeAccess(void)const 
?HasSomeAccess@CAccessEntry@@QBEHXZ
; public: class CObject * __thiscall CObListPlus::Index(int)
?Index@CObListPlus@@QAEPAVCObject@@H@Z
; public: virtual int __thiscall CHeaderListBox::Initialize(void)
?Initialize@CHeaderListBox@@UAEHXZ
; public: static int __stdcall CINumber::Initialize(int)
?Initialize@CINumber@@SGHH@Z
; protected: void __thiscall CInheritanceDlg::Initialize(void)
?Initialize@CInheritanceDlg@@IAEXXZ
; protected: virtual int __thiscall CODLBox::Initialize(void)
?Initialize@CODLBox@@MAEHXZ
; public: virtual int __thiscall CRMCComboBox::Initialize(void)
?Initialize@CRMCComboBox@@UAEHXZ
; public: virtual int __thiscall CRMCListBox::Initialize(void)
?Initialize@CRMCListBox@@UAEHXZ
; protected: int __thiscall CHeaderListBox::InsertColumn(int,int,unsigned int,struct HINSTANCE__ *)
?InsertColumn@CHeaderListBox@@IAEHHHIPAUHINSTANCE__@@@Z
; protected: int __thiscall CHeaderListBox::InsertHeaderItem(int,struct _HD_ITEMW *)
?InsertHeaderItem@CHeaderListBox@@IAEHHPAU_HD_ITEMW@@@Z
; public: int __thiscall CRMCListBoxHeader::InsertItem(int,struct _HD_ITEMW *)
?InsertItem@CRMCListBoxHeader@@QAEHHPAU_HD_ITEMW@@@Z
; public: void __thiscall CODLBox::InsertTab(int,unsigned int)
?InsertTab@CODLBox@@QAEXHI@Z
; public: void __thiscall CRMCListBox::InvalidateSelection(int)
?InvalidateSelection@CRMCListBox@@QAEXH@Z
; long __stdcall IsAllNumHostHeader(unsigned short const *)
?IsAllNumHostHeader@@YGJPBG@Z
; protected: static int __stdcall CINumber::IsAllocated(void)
?IsAllocated@CINumber@@KGHXZ
; public: int __thiscall CIPAddress::IsBadValue(void)const 
?IsBadValue@CIPAddress@@QBEHXZ
; int __stdcall IsBiDiLocalizedSystem(void)
?IsBiDiLocalizedSystem@@YGHXZ
; public: int __thiscall CAccessEntry::IsDeletable(void)const 
?IsDeletable@CAccessEntry@@QBEHXZ
; public: int __thiscall CAccessEntry::IsDeleted(void)const 
?IsDeleted@CAccessEntry@@QBEHXZ
; int __stdcall IsDevicePath(class CString const &)
?IsDevicePath@@YGHABVCString@@@Z
; public: int __thiscall CAccessEntry::IsDirty(void)const 
?IsDirty@CAccessEntry@@QBEHXZ
; public: int __thiscall CObjHelper::IsDirty(void)const 
?IsDirty@CObjHelper@@QBEHXZ
; public: int __thiscall CIPAccessDescriptor::IsDomainName(void)const 
?IsDomainName@CIPAccessDescriptor@@QBEHXZ
; public: int __thiscall CBlob::IsEmpty(void)const 
?IsEmpty@CBlob@@QBEHXZ
; public: int __thiscall CInheritanceDlg::IsEmpty(void)const 
?IsEmpty@CInheritanceDlg@@QBEHXZ
; public: int __thiscall CStrPassword::IsEmpty(void)const 
?IsEmpty@CStrPassword@@QBEHXZ
; public: int __thiscall CIISApplication::IsEnabledApplication(void)const 
?IsEnabledApplication@CIISApplication@@QBEHXZ
; int __stdcall IsFullyQualifiedPath(class CString const &)
?IsFullyQualifiedPath@@YGHABVCString@@@Z
; protected: int __thiscall CIISWizardPage::IsHeaderPage(void)const 
?IsHeaderPage@CIISWizardPage@@IBEHXZ
; public: int __thiscall CMetaKey::IsHomeDirectoryPath(void)const 
?IsHomeDirectoryPath@CMetaKey@@QBEHXZ
; public: int __thiscall CMetabasePath::IsHomeDirectoryPath(void)const 
?IsHomeDirectoryPath@CMetabasePath@@QBEHXZ
; public: static int __stdcall CMetabasePath::IsHomeDirectoryPath(unsigned short const *)
?IsHomeDirectoryPath@CMetabasePath@@SGHPBG@Z
; public: static int __stdcall CINumber::IsInitialized(void)
?IsInitialized@CINumber@@SGHXZ
; public: int __thiscall CIISApplication::IsInproc(void)const 
?IsInproc@CIISApplication@@QBEHXZ
; public: int __thiscall CComAuthInfo::IsLocal(void)const 
?IsLocal@CComAuthInfo@@QBEHXZ
; public: int __thiscall CIISInterface::IsLocal(void)const 
?IsLocal@CIISInterface@@QBEHXZ
; int __stdcall IsLocalComputer(unsigned short const *)
?IsLocalComputer@@YGHPBG@Z
; public: static int __stdcall CMetabasePath::IsMasterInstance(unsigned short const *)
?IsMasterInstance@CMetabasePath@@SGHPBG@Z
; protected: int __thiscall CRMCListBox::IsMultiSelect(void)const 
?IsMultiSelect@CRMCListBox@@IBEHXZ
; public: int __thiscall CIPAccessDescriptor::IsMultiple(void)const 
?IsMultiple@CIPAccessDescriptor@@QBEHXZ
; int __stdcall IsNetworkPath(class CString const &,class CString *,class CString *)
?IsNetworkPath@@YGHABVCString@@PAV1@1@Z
; public: int __thiscall CMetaKey::IsOpen(void)const 
?IsOpen@CMetaKey@@QBEHXZ
; public: int __thiscall CIISApplication::IsOutOfProc(void)const 
?IsOutOfProc@CIISApplication@@QBEHXZ
; public: int __thiscall CIISApplication::IsPooledProc(void)const 
?IsPooledProc@CIISApplication@@QBEHXZ
; public: static int __stdcall CMetaKey::IsPropertyInheritable(unsigned long)
?IsPropertyInheritable@CMetaKey@@SGHK@Z
; int __stdcall IsRestrictedFilename(class CString const &)
?IsRestrictedFilename@@YGHABVCString@@@Z
; public: int __thiscall CAccessEntry::IsSIDResolved(void)const 
?IsSIDResolved@CAccessEntry@@QBEHXZ
; int __stdcall IsServerLocal(unsigned short const *)
?IsServerLocal@@YGHPBG@Z
; public: int __thiscall CIPAccessDescriptor::IsSingle(void)const 
?IsSingle@CIPAccessDescriptor@@QBEHXZ
; int __stdcall IsSpecialPath(class CString const &,int,int)
?IsSpecialPath@@YGHABVCString@@HH@Z
; int __stdcall IsUNCName(class CString const &)
?IsUNCName@@YGHABVCString@@@Z
; int __stdcall IsURLName(class CString const &)
?IsURLName@@YGHABVCString@@@Z
; public: virtual int __thiscall CObjHelper::IsValid(void)const 
?IsValid@CObjHelper@@UBEHXZ
; long __stdcall IsValidHostHeader(unsigned short const *)
?IsValidHostHeader@@YGJPBG@Z
; public: int __thiscall CAccessEntry::IsVisible(void)const 
?IsVisible@CAccessEntry@@QBEHXZ
; protected: int __thiscall CIISWizardBookEnd::IsWelcomePage(void)const 
?IsWelcomePage@CIISWizardBookEnd@@IBEHXZ
; protected: int __thiscall CIISWizardPage::IsWizard97(void)const 
?IsWizard97@CIISWizardPage@@IBEHXZ
; public: int __thiscall CIISWizardSheet::IsWizard97(void)const 
?IsWizard97@CIISWizardSheet@@QBEHXZ
; public: int __thiscall CIPAddress::IsZeroValue(void)const 
?IsZeroValue@CIPAddress@@QBEHXZ
; public: long __thiscall CIISSvcControl::Kill(void)
?Kill@CIISSvcControl@@QAEJXZ
; long __stdcall LimitInputDomainName(struct HWND__ *)
?LimitInputDomainName@@YGJPAUHWND__@@@Z
; long __stdcall LimitInputPath(struct HWND__ *,int)
?LimitInputPath@@YGJPAUHWND__@@H@Z
; protected: int __thiscall CMappedBitmapButton::LoadMappedBitmaps(unsigned int,unsigned int,unsigned int,unsigned int)
?LoadMappedBitmaps@CMappedBitmapButton@@IAEHIIII@Z
; public: static unsigned short * __stdcall CIPAddress::LongToString(unsigned long,unsigned short *,int)
?LongToString@CIPAddress@@SGPAGKPAGH@Z
; public: static unsigned short const * __stdcall CIPAddress::LongToString(unsigned long,class ATL::CComBSTR &)
?LongToString@CIPAddress@@SGPBGKAAVCComBSTR@ATL@@@Z
; public: static unsigned short const * __stdcall CIPAddress::LongToString(unsigned long,class CString &)
?LongToString@CIPAddress@@SGPBGKAAVCString@@@Z
; int __stdcall LooksLikeIPAddress(unsigned short const *)
?LooksLikeIPAddress@@YGHPBG@Z
; public: static int __stdcall CAccessEntry::LookupAccountSidW(class CString &,int &,void *,unsigned short const *)
?LookupAccountSidW@CAccessEntry@@SGHAAVCString@@AAHPAXPBG@Z
; unsigned short const * __stdcall MakeUNCPath(class CString &,unsigned short const *,unsigned short const *)
?MakeUNCPath@@YGPBGAAVCString@@PBG1@Z
; public: static int __stdcall CMetaKey::MapMDIDToTableIndex(unsigned long)
?MapMDIDToTableIndex@CMetaKey@@SGHK@Z
; public: void __thiscall CAccessEntry::MarkEntryAsChanged(void)
?MarkEntryAsChanged@CAccessEntry@@QAEXXZ
; public: void __thiscall CAccessEntry::MarkEntryAsClean(void)
?MarkEntryAsClean@CAccessEntry@@QAEXXZ
; public: void __thiscall CAccessEntry::MarkEntryAsNew(void)
?MarkEntryAsNew@CAccessEntry@@QAEXXZ
; protected: virtual void __thiscall CRMCComboBox::MeasureItem(struct tagMEASUREITEMSTRUCT *)
?MeasureItem@CRMCComboBox@@MAEXPAUtagMEASUREITEMSTRUCT@@@Z
; protected: virtual void __thiscall CRMCListBox::MeasureItem(struct tagMEASUREITEMSTRUCT *)
?MeasureItem@CRMCListBox@@MAEXPAUtagMEASUREITEMSTRUCT@@@Z
; public: int __cdecl CError::MessageBoxFormat(struct HWND__ *,unsigned int,unsigned int,unsigned int,...)const 
?MessageBoxFormat@CError@@QBAHPAUHWND__@@IIIZZ
; public: int __thiscall CError::MessageBoxOnFailure(struct HWND__ *,unsigned int,unsigned int)const 
?MessageBoxOnFailure@CError@@QBEHPAUHWND__@@II@Z
; public: int __thiscall CError::MessageBoxW(struct HWND__ *,unsigned int,unsigned int)const 
?MessageBoxW@CError@@QBEHPAUHWND__@@II@Z
; unsigned long __stdcall MyGetHostName(unsigned long,class CString &)
?MyGetHostName@@YGKKAAVCString@@@Z
; long __stdcall MyValidatePath(unsigned short const *,int,int,unsigned long,unsigned long)
?MyValidatePath@@YGJPBGHHKK@Z
; public: long __thiscall CMetaBack::Next(unsigned long *,unsigned short *,struct _FILETIME *)
?Next@CMetaBack@@QAEJPAKPAGPAU_FILETIME@@@Z
; public: long __thiscall CMetaEnumerator::Next(unsigned long &,class CString &,unsigned short const *)
?Next@CMetaEnumerator@@QAEJAAKAAVCString@@PBG@Z
; public: long __thiscall CMetaEnumerator::Next(class CString &,unsigned short const *)
?Next@CMetaEnumerator@@QAEJAAVCString@@PBG@Z
; public: class CObject * __thiscall CObListIter::Next(void)
?Next@CObListIter@@QAEPAVCObject@@XZ
; public: long __thiscall CMetaBack::NextHistory(unsigned long *,unsigned long *,unsigned short *,struct _FILETIME *)
?NextHistory@CMetaBack@@QAEJPAK0PAGPAU_FILETIME@@@Z
; public: int __thiscall CODLBox::NumTabs(void)const 
?NumTabs@CODLBox@@QBEHXZ
; protected: void __thiscall CInheritanceDlg::OnButtonSelectAll(void)
?OnButtonSelectAll@CInheritanceDlg@@IAEXXZ
; protected: int __thiscall CHeaderListBox::OnCreate(struct tagCREATESTRUCTW *)
?OnCreate@CHeaderListBox@@IAEHPAUtagCREATESTRUCTW@@@Z
; protected: int __thiscall CRMCComboBox::OnCreate(struct tagCREATESTRUCTW *)
?OnCreate@CRMCComboBox@@IAEHPAUtagCREATESTRUCTW@@@Z
; protected: int __thiscall CRMCListBox::OnCreate(struct tagCREATESTRUCTW *)
?OnCreate@CRMCListBox@@IAEHPAUtagCREATESTRUCTW@@@Z
; protected: struct HBRUSH__ * __thiscall CIISWizardPage::OnCtlColor(class CDC *,class CWnd *,unsigned int)
?OnCtlColor@CIISWizardPage@@IAEPAUHBRUSH__@@PAVCDC@@PAVCWnd@@I@Z
; protected: void __thiscall CEmphasizedDialog::OnDestroy(void)
?OnDestroy@CEmphasizedDialog@@IAEXXZ
; protected: void __thiscall CHeaderListBox::OnDestroy(void)
?OnDestroy@CHeaderListBox@@IAEXXZ
; protected: void __thiscall CIISWizardSheet::OnDestroy(void)
?OnDestroy@CIISWizardSheet@@IAEXXZ
; protected: void __thiscall CRMCListBoxHeader::OnDestroy(void)
?OnDestroy@CRMCListBoxHeader@@IAEXXZ
; protected: int __thiscall CIISWizardPage::OnEraseBkgnd(class CDC *)
?OnEraseBkgnd@CIISWizardPage@@IAEHPAVCDC@@@Z
; protected: void __thiscall CRMCListBoxHeader::OnHeaderEndTrack(unsigned int,struct tagNMHDR *,long *)
?OnHeaderEndTrack@CRMCListBoxHeader@@IAEXIPAUtagNMHDR@@PAJ@Z
; protected: void __thiscall CRMCListBoxHeader::OnHeaderItemChanged(unsigned int,struct tagNMHDR *,long *)
?OnHeaderItemChanged@CRMCListBoxHeader@@IAEXIPAUtagNMHDR@@PAJ@Z
; protected: void __thiscall CRMCListBoxHeader::OnHeaderItemClick(unsigned int,struct tagNMHDR *,long *)
?OnHeaderItemClick@CRMCListBoxHeader@@IAEXIPAUtagNMHDR@@PAJ@Z
; protected: void __thiscall CInheritanceDlg::OnHelp(void)
?OnHelp@CInheritanceDlg@@IAEXXZ
; protected: virtual int __thiscall CEmphasizedDialog::OnInitDialog(void)
?OnInitDialog@CEmphasizedDialog@@MAEHXZ
; protected: virtual int __thiscall CIISWizardBookEnd::OnInitDialog(void)
?OnInitDialog@CIISWizardBookEnd@@MAEHXZ
; protected: virtual int __thiscall CIISWizardPage::OnInitDialog(void)
?OnInitDialog@CIISWizardPage@@MAEHXZ
; protected: virtual int __thiscall CIISWizardSheet::OnInitDialog(void)
?OnInitDialog@CIISWizardSheet@@MAEHXZ
; protected: virtual int __thiscall CInheritanceDlg::OnInitDialog(void)
?OnInitDialog@CInheritanceDlg@@MAEHXZ
; protected: virtual void __thiscall CInheritanceDlg::OnOK(void)
?OnOK@CInheritanceDlg@@MAEXXZ
; public: virtual int __thiscall CIISWizardBookEnd::OnSetActive(void)
?OnSetActive@CIISWizardBookEnd@@UAEHXZ
; protected: void __thiscall CRMCListBoxHeader::OnSetFocus(class CWnd *)
?OnSetFocus@CRMCListBoxHeader@@IAEXPAVCWnd@@@Z
; public: long __thiscall CMetaKey::Open(unsigned long,unsigned short const *,unsigned long)
?Open@CMetaKey@@QAEJKPBGK@Z
; protected: long __thiscall CMetaInterface::OpenKey(unsigned long,unsigned short const *,unsigned long,unsigned long *)
?OpenKey@CMetaInterface@@IAEJKPBGKPAK@Z
; public: int __thiscall CIPAccessDescriptor::OrderByAddress(class CObjectPlus const *)const 
?OrderByAddress@CIPAccessDescriptor@@QBEHPBVCObjectPlus@@@Z
; int __stdcall PCToUnixText(unsigned short * &,class CString)
?PCToUnixText@@YGHAAPAGVCString@@@Z
; int __stdcall PathIsValid(unsigned short const *,int)
?PathIsValid@@YGHPBGH@Z
; unsigned long __stdcall PopulateComboWithKnownIpAddresses(unsigned short const *,class CComboBox &,class CIPAddress &,class CObListPlus &,int &)
?PopulateComboWithKnownIpAddresses@@YGKPBGAAVCComboBox@@AAVCIPAddress@@AAVCObListPlus@@AAH@Z
; protected: void __thiscall CRMCListBoxResources::PrepareBitmaps(void)
?PrepareBitmaps@CRMCListBoxResources@@IAEXXZ
; protected: void __thiscall CGetComputer::ProcessSelectedObjects(struct IDataObject *)
?ProcessSelectedObjects@CGetComputer@@IAEXPAUIDataObject@@@Z
; protected: void __thiscall CGetUsers::ProcessSelectedObjects(struct IDataObject *)
?ProcessSelectedObjects@CGetUsers@@IAEXPAUIDataObject@@@Z
; public: unsigned long __thiscall CAccessEntry::QueryAccessMask(void)const 
?QueryAccessMask@CAccessEntry@@QBEKXZ
; public: unsigned long __thiscall CObjHelper::QueryAge(void)const 
?QueryAge@CObjHelper@@QBEKXZ
; public: long __thiscall CObjHelper::QueryApiErr(void)const 
?QueryApiErr@CObjHelper@@QBEJXZ
; public: unsigned long __thiscall CIISApplication::QueryAppState(void)const 
?QueryAppState@CIISApplication@@QBEKXZ
; public: class CComAuthInfo * __thiscall CIISInterface::QueryAuthInfo(void)
?QueryAuthInfo@CIISInterface@@QAEPAVCComAuthInfo@@XZ
; protected: long __thiscall CIISWizardPage::QueryBitmapHeight(void)const 
?QueryBitmapHeight@CIISWizardPage@@IBEJXZ
; public: long __thiscall CIISWizardSheet::QueryBitmapHeight(int)const 
?QueryBitmapHeight@CIISWizardSheet@@QBEJH@Z
; protected: long __thiscall CIISWizardPage::QueryBitmapWidth(void)const 
?QueryBitmapWidth@CIISWizardPage@@IBEJXZ
; public: long __thiscall CIISWizardSheet::QueryBitmapWidth(int)const 
?QueryBitmapWidth@CIISWizardSheet@@QBEJH@Z
; public: int __thiscall CHeaderListBox::QueryColumnWidth(int)const 
?QueryColumnWidth@CHeaderListBox@@QBEHH@Z
; public: unsigned long __thiscall CObjHelper::QueryCreationTime(void)const 
?QueryCreationTime@CObjHelper@@QBEKXZ
; public: static unsigned short const * __stdcall CINumber::QueryCurrency(void)
?QueryCurrency@CINumber@@SGPBGXZ
; public: static unsigned short const * __stdcall CINumber::QueryDecimalPoint(void)
?QueryDecimalPoint@CINumber@@SGPBGXZ
; public: unsigned short const * __thiscall CIPAccessDescriptor::QueryDomainName(void)const 
?QueryDomainName@CIPAccessDescriptor@@QBEPBGXZ
; public: long __thiscall CObjHelper::QueryError(void)const 
?QueryError@CObjHelper@@QBEJXZ
; public: unsigned long __thiscall CMetaKey::QueryFlags(void)const 
?QueryFlags@CMetaKey@@QBEKXZ
; public: unsigned long __thiscall CIPAddress::QueryHostOrderIPAddress(void)const 
?QueryHostOrderIPAddress@CIPAddress@@QBEKXZ
; public: class CIPAddress  __thiscall CIPAccessDescriptor::QueryIPAddress(void)const 
?QueryIPAddress@CIPAccessDescriptor@@QBE?AVCIPAddress@@XZ
; public: unsigned long __thiscall CIPAccessDescriptor::QueryIPAddress(int)const 
?QueryIPAddress@CIPAccessDescriptor@@QBEKH@Z
; public: unsigned long __thiscall CIPAddress::QueryIPAddress(int)const 
?QueryIPAddress@CIPAddress@@QBEKH@Z
; public: unsigned short const * __thiscall CIPAddress::QueryIPAddress(class ATL::CComBSTR &)const 
?QueryIPAddress@CIPAddress@@QBEPBGAAVCComBSTR@ATL@@@Z
; public: unsigned short const * __thiscall CIPAddress::QueryIPAddress(class CString &)const 
?QueryIPAddress@CIPAddress@@QBEPBGAAVCString@@@Z
; public: unsigned short const * __thiscall CMetaKey::QueryMetaPath(void)const 
?QueryMetaPath@CMetaKey@@QBEPBGXZ
; public: unsigned short const * __thiscall CMetabasePath::QueryMetaPath(void)const 
?QueryMetaPath@CMetabasePath@@QBEPBGXZ
; public: unsigned long __thiscall CIPAddress::QueryNetworkOrderIPAddress(void)const 
?QueryNetworkOrderIPAddress@CIPAddress@@QBEKXZ
; public: int __thiscall CHeaderListBox::QueryNumColumns(void)const 
?QueryNumColumns@CHeaderListBox@@QBEHXZ
; public: int __thiscall CRMCListBoxHeader::QueryNumColumns(void)const 
?QueryNumColumns@CRMCListBoxHeader@@QBEHXZ
; public: unsigned short * __thiscall CComAuthInfo::QueryPassword(void)const 
?QueryPassword@CComAuthInfo@@QBEPAGXZ
; public: int __thiscall CAccessEntry::QueryPictureID(void)const 
?QueryPictureID@CAccessEntry@@QBEHXZ
; public: unsigned long __thiscall CIISAppPool::QueryPoolState(void)const 
?QueryPoolState@CIISAppPool@@QBEKXZ
; public: struct __POSITION * __thiscall CObListIter::QueryPosition(void)const 
?QueryPosition@CObListIter@@QBEPAU__POSITION@@XZ
; public: virtual long __thiscall CIISAppPool::QueryResult(void)const 
?QueryResult@CIISAppPool@@UBEJXZ
; public: virtual long __thiscall CIISApplication::QueryResult(void)const 
?QueryResult@CIISApplication@@UBEJXZ
; public: virtual long __thiscall CIISInterface::QueryResult(void)const 
?QueryResult@CIISInterface@@UBEJXZ
; public: virtual long __thiscall CMetaBack::QueryResult(void)const 
?QueryResult@CMetaBack@@UBEJXZ
; public: virtual long __thiscall CMetaKey::QueryResult(void)const 
?QueryResult@CMetaKey@@UBEJXZ
; public: unsigned short * __thiscall CComAuthInfo::QueryServerName(void)const 
?QueryServerName@CComAuthInfo@@QBEPAGXZ
; public: unsigned short const * __thiscall CIISInterface::QueryServerName(void)const 
?QueryServerName@CIISInterface@@QBEPBGXZ
; public: class CIPAddress  __thiscall CIPAccessDescriptor::QuerySubnetMask(void)const 
?QuerySubnetMask@CIPAccessDescriptor@@QBE?AVCIPAddress@@XZ
; public: unsigned long __thiscall CIPAccessDescriptor::QuerySubnetMask(int)const 
?QuerySubnetMask@CIPAccessDescriptor@@QBEKH@Z
; public: static unsigned short const * __stdcall CINumber::QueryThousandSeparator(void)
?QueryThousandSeparator@CINumber@@SGPBGXZ
; public: unsigned short const * __thiscall CAccessEntry::QueryUserName(void)const 
?QueryUserName@CAccessEntry@@QBEPBGXZ
; public: unsigned short * __thiscall CComAuthInfo::QueryUserName(void)const 
?QueryUserName@CComAuthInfo@@QBEPAGXZ
; public: long __thiscall CMetaKey::QueryValue(unsigned long,int &,int *,unsigned short const *,unsigned long *)
?QueryValue@CMetaKey@@QAEJKAAHPAHPBGPAK@Z
; public: long __thiscall CMetaKey::QueryValue(unsigned long,unsigned long &,int *,unsigned short const *,unsigned long *)
?QueryValue@CMetaKey@@QAEJKAAKPAHPBGPAK@Z
; public: long __thiscall CMetaKey::QueryValue(unsigned long,class CBlob &,int *,unsigned short const *,unsigned long *)
?QueryValue@CMetaKey@@QAEJKAAVCBlob@@PAHPBGPAK@Z
; public: long __thiscall CMetaKey::QueryValue(unsigned long,class ATL::CComBSTR &,int *,unsigned short const *,unsigned long *)
?QueryValue@CMetaKey@@QAEJKAAVCComBSTR@ATL@@PAHPBGPAK@Z
; public: long __thiscall CMetaKey::QueryValue(unsigned long,class CStrPassword &,int *,unsigned short const *,unsigned long *)
?QueryValue@CMetaKey@@QAEJKAAVCStrPassword@@PAHPBGPAK@Z
; public: long __thiscall CMetaKey::QueryValue(unsigned long,class CString &,int *,unsigned short const *,unsigned long *)
?QueryValue@CMetaKey@@QAEJKAAVCString@@PAHPBGPAK@Z
; public: long __thiscall CMetaKey::QueryValue(unsigned long,class CStringListEx &,int *,unsigned short const *,unsigned long *)
?QueryValue@CMetaKey@@QAEJKAAVCStringListEx@@PAHPBGPAK@Z
; public: unsigned short const * __thiscall CIISAppPool::QueryWamPath(void)const 
?QueryWamPath@CIISAppPool@@QBEPBGXZ
; public: unsigned short const * __thiscall CIISApplication::QueryWamPath(void)const 
?QueryWamPath@CIISApplication@@QBEPBGXZ
; protected: unsigned long __thiscall CIISWizardPage::QueryWindowColor(void)const 
?QueryWindowColor@CIISWizardPage@@IBEKXZ
; public: unsigned long __thiscall CIISWizardSheet::QueryWindowColor(void)const 
?QueryWindowColor@CIISWizardSheet@@QBEKXZ
; protected: unsigned long __thiscall CIISWizardPage::QueryWindowTextColor(void)const 
?QueryWindowTextColor@CIISWizardPage@@IBEKXZ
; public: unsigned long __thiscall CIISWizardSheet::QueryWindowTextColor(void)const 
?QueryWindowTextColor@CIISWizardSheet@@QBEKXZ
; public: long __thiscall CMetaKey::ReOpen(unsigned long)
?ReOpen@CMetaKey@@QAEJK@Z
; public: long __thiscall CMetaKey::ReOpen(void)
?ReOpen@CMetaKey@@QAEJXZ
; public: long __thiscall CIISSvcControl::Reboot(unsigned long,int)
?Reboot@CIISSvcControl@@QAEJKH@Z
; public: long __thiscall CIISApplication::Recover(int)
?Recover@CIISApplication@@QAEJH@Z
; public: long __thiscall CIISAppPool::Recycle(unsigned short const *)
?Recycle@CIISAppPool@@QAEJPBG@Z
; protected: long __thiscall CWamInterface::RecycleApplicationPool(unsigned short const *)
?RecycleApplicationPool@CWamInterface@@IAEJPBG@Z
; public: long __thiscall CIISApplication::RefreshAppState(void)
?RefreshAppState@CIISApplication@@QAEJXZ
; public: long __thiscall CIISAppPool::RefreshState(void)
?RefreshState@CIISAppPool@@QAEJXZ
; public: long __thiscall CMetaInterface::Regenerate(void)
?Regenerate@CMetaInterface@@QAEJXZ
; public: static void __stdcall CError::RegisterFacility(unsigned long,char const *)
?RegisterFacility@CError@@SGXKPBD@Z
; public: int __thiscall CObListPlus::Remove(class CObject *)
?Remove@CObListPlus@@QAEHPAVCObject@@@Z
; public: void __thiscall CObListPlus::RemoveAll(void)
?RemoveAll@CObListPlus@@QAEXXZ
; public: void __thiscall CError::RemoveAllOverrides(void)
?RemoveAllOverrides@CError@@QAEXXZ
; public: void __thiscall CODLBox::RemoveAllTabs(void)
?RemoveAllTabs@CODLBox@@QAEXXZ
; public: void __thiscall CObListPlus::RemoveAt(struct __POSITION * &)
?RemoveAt@CObListPlus@@QAEXAAPAU__POSITION@@@Z
; public: void __thiscall CComAuthInfo::RemoveImpersonation(void)
?RemoveImpersonation@CComAuthInfo@@QAEXXZ
; public: int __thiscall CObListPlus::RemoveIndex(int)
?RemoveIndex@CObListPlus@@QAEHH@Z
; public: void __thiscall CError::RemoveOverride(long)
?RemoveOverride@CError@@QAEXJ@Z
; public: void __thiscall CAccessEntry::RemovePermissions(unsigned long)
?RemovePermissions@CAccessEntry@@QAEXK@Z
; public: void __thiscall CODLBox::RemoveTab(int,int)
?RemoveTab@CODLBox@@QAEXHH@Z
; protected: long __thiscall CMetaInterface::RenameKey(unsigned long,unsigned short const *,unsigned short const *)
?RenameKey@CMetaInterface@@IAEJKPBG0@Z
; public: long __thiscall CMetaKey::RenameKey(unsigned short const *,unsigned short const *)
?RenameKey@CMetaKey@@QAEJPBG0@Z
; unsigned long __stdcall ReplaceStringInString(class CString &,class CString &,class CString &,int)
?ReplaceStringInString@@YGKAAVCString@@00H@Z
; public: void __thiscall CObjHelper::ReportError(long)
?ReportError@CObjHelper@@QAEXJ@Z
; public: void __thiscall CError::Reset(void)
?Reset@CError@@QAEXXZ
; public: void __thiscall CMetaBack::Reset(void)
?Reset@CMetaBack@@QAEXXZ
; public: void __thiscall CMetaEnumerator::Reset(void)
?Reset@CMetaEnumerator@@QAEXXZ
; public: void __thiscall CObListIter::Reset(void)
?Reset@CObListIter@@QAEXXZ
; public: void __thiscall CObjHelper::ResetErrors(void)
?ResetErrors@CObjHelper@@QAEXXZ
; public: int __thiscall CAccessEntry::ResolveSID(void)
?ResolveSID@CAccessEntry@@QAEHXZ
; public: void __thiscall CRMCListBoxHeader::RespondToColumnWidthChanges(int)
?RespondToColumnWidthChanges@CRMCListBoxHeader@@QAEXH@Z
; public: long __thiscall CMetaBack::Restore(unsigned short const *,unsigned long)
?Restore@CMetaBack@@QAEJPBGK@Z
; protected: long __thiscall CMetaInterface::Restore(unsigned short const *,unsigned long,unsigned long)
?Restore@CMetaInterface@@IAEJPBGKK@Z
; protected: long __thiscall CMetaInterface::RestoreHistory(unsigned short const *,unsigned long,unsigned long,unsigned long)
?RestoreHistory@CMetaInterface@@IAEJPBGKKK@Z
; public: long __thiscall CMetaBack::RestoreHistoryBackup(unsigned short const *,unsigned long,unsigned long,unsigned long)
?RestoreHistoryBackup@CMetaBack@@QAEJPBGKKK@Z
; public: long __thiscall CMetaBack::RestoreWithPassword(unsigned short const *,unsigned long,unsigned short const *)
?RestoreWithPassword@CMetaBack@@QAEJPBGK0@Z
; protected: long __thiscall CMetaInterface::RestoreWithPassword(unsigned short const *,unsigned long,unsigned long,unsigned short const *)
?RestoreWithPassword@CMetaInterface@@IAEJPBGKK0@Z
; public: long __thiscall CMetaInterface::SaveData(void)
?SaveData@CMetaInterface@@QAEJXZ
; public: int __thiscall CRMCListBox::SelectItem(void *)
?SelectItem@CRMCListBox@@QAEHPAX@Z
; public: int __thiscall CObListPlus::SetAll(int)
?SetAll@CObListPlus@@QAEHH@Z
; public: long __thiscall CObjHelper::SetApiErr(long)
?SetApiErr@CObjHelper@@QAEJJ@Z
; public: int __thiscall CHeaderListBox::SetColumnWidth(int,int)
?SetColumnWidth@CHeaderListBox@@QAEHHH@Z
; public: void __thiscall CRMCListBoxHeader::SetColumnWidth(int,int)
?SetColumnWidth@CRMCListBoxHeader@@QAEXHH@Z
; protected: void __thiscall CComAuthInfo::SetComputerNameW(unsigned short const *)
?SetComputerNameW@CComAuthInfo@@IAEXPBG@Z
; public: int __thiscall CRMCListBox::SetCurSel(int)
?SetCurSel@CRMCListBox@@QAEHH@Z
; protected: long __thiscall CMetaInterface::SetData(unsigned long,unsigned short const *,struct _METADATA_RECORD *)
?SetData@CMetaInterface@@IAEJKPBGPAU_METADATA_RECORD@@@Z
; public: void __thiscall CObjHelper::SetDirty(int)
?SetDirty@CObjHelper@@QAEXH@Z
; protected: int __thiscall CHeaderListBox::SetHeaderItem(int,struct _HD_ITEMW *)
?SetHeaderItem@CHeaderListBox@@IAEHHPAU_HD_ITEMW@@@Z
; public: void __thiscall CComAuthInfo::SetImpersonation(unsigned short const *,unsigned short const *)
?SetImpersonation@CComAuthInfo@@QAEXPBG0@Z
; public: int __thiscall CRMCListBoxHeader::SetItem(int,struct _HD_ITEMW *)
?SetItem@CRMCListBoxHeader@@QAEHHPAU_HD_ITEMW@@@Z
; protected: long __thiscall CMetaInterface::SetLastChangeTime(unsigned long,unsigned short const *,struct _FILETIME *,int)
?SetLastChangeTime@CMetaInterface@@IAEJKPBGPAU_FILETIME@@H@Z
; public: void __thiscall CError::SetLastWinError(void)const 
?SetLastWinError@CError@@QBEXXZ
; public: int __thiscall CObListPlus::SetOwnership(int)
?SetOwnership@CObListPlus@@QAEHH@Z
; public: void __thiscall CObListIter::SetPosition(struct __POSITION *)
?SetPosition@CObListIter@@QAEXPAU__POSITION@@@Z
; protected: long __thiscall CMetaKey::SetPropertyValue(unsigned long,unsigned long,void *,int *,unsigned short const *)
?SetPropertyValue@CMetaKey@@IAEJKKPAXPAHPBG@Z
; public: void __thiscall CConfirmDlg::SetReference(class CString &)
?SetReference@CConfirmDlg@@QAEXAAVCString@@@Z
; public: void __thiscall CODLBox::SetTab(int,unsigned int)
?SetTab@CODLBox@@QAEXHI@Z
; protected: void __thiscall CRMCListBoxHeader::SetTabsFromHeader(void)
?SetTabsFromHeader@CRMCListBoxHeader@@IAEXXZ
; public: void __thiscall CBlob::SetValue(unsigned long,unsigned char *,int)
?SetValue@CBlob@@QAEXKPAEH@Z
; public: long __thiscall CMetaKey::SetValue(unsigned long,class CBlob &,int *,unsigned short const *)
?SetValue@CMetaKey@@QAEJKAAVCBlob@@PAHPBG@Z
; public: long __thiscall CMetaKey::SetValue(unsigned long,class CStrPassword &,int *,unsigned short const *)
?SetValue@CMetaKey@@QAEJKAAVCStrPassword@@PAHPBG@Z
; public: long __thiscall CMetaKey::SetValue(unsigned long,class CString &,int *,unsigned short const *)
?SetValue@CMetaKey@@QAEJKAAVCString@@PAHPBG@Z
; public: long __thiscall CMetaKey::SetValue(unsigned long,class CStringListEx &,int *,unsigned short const *)
?SetValue@CMetaKey@@QAEJKAAVCStringListEx@@PAHPBG@Z
; public: long __thiscall CMetaKey::SetValue(unsigned long,int,int *,unsigned short const *)
?SetValue@CMetaKey@@QAEJKHPAHPBG@Z
; public: long __thiscall CMetaKey::SetValue(unsigned long,unsigned long,int *,unsigned short const *)
?SetValue@CMetaKey@@QAEJKKPAHPBG@Z
; public: void __thiscall CIPAccessDescriptor::SetValues(int,unsigned long,unsigned long,int)
?SetValues@CIPAccessDescriptor@@QAEXHKKH@Z
; public: void __thiscall CIPAccessDescriptor::SetValues(int,unsigned short const *)
?SetValues@CIPAccessDescriptor@@QAEXHPBG@Z
; protected: int __thiscall CHeaderListBox::SetWidthsFromReg(void)
?SetWidthsFromReg@CHeaderListBox@@IAEHXZ
; protected: void __thiscall CIISWizardPage::SetWizardButtons(unsigned long)
?SetWizardButtons@CIISWizardPage@@IAEXK@Z
; public: void __thiscall CIPAddress::SetZeroValue(void)
?SetZeroValue@CIPAddress@@QAEXXZ
; public: int __thiscall CHeaderListBox::ShowWindow(int)
?ShowWindow@CHeaderListBox@@QAEHH@Z
; public: unsigned long __thiscall CObListPlus::Sort(int (__thiscall CObjectPlus::*)(class CObjectPlus const *)const )
?Sort@CObListPlus@@QAEKP8CObjectPlus@@BEHPBV2@@Z@Z
; protected: static int __cdecl CObListPlus::SortHelper(void const *,void const *)
?SortHelper@CObListPlus@@KAHPBX0@Z
; public: static void __stdcall CMetabasePath::SplitMetaPathAtInstance(unsigned short const *,class CString &,class CString &)
?SplitMetaPathAtInstance@CMetabasePath@@SGXPBGAAVCString@@1@Z
; public: static int __stdcall CComAuthInfo::SplitUserNameAndDomain(class CString &,class CString &)
?SplitUserNameAndDomain@CComAuthInfo@@SGHAAVCString@@0@Z
; public: long __thiscall CIISSvcControl::Start(unsigned long)
?Start@CIISSvcControl@@QAEJK@Z
; public: long __thiscall CIISSvcControl::Status(unsigned long,unsigned char *,unsigned long *,unsigned long *)
?Status@CIISSvcControl@@QAEJKPAEPAK1@Z
; public: long __thiscall CIISSvcControl::Stop(unsigned long,int)
?Stop@CIISSvcControl@@QAEJKH@Z
; public: void __thiscall CComAuthInfo::StorePassword(unsigned short const *)
?StorePassword@CComAuthInfo@@QAEXPBG@Z
; public: static unsigned long __stdcall CIPAddress::StringToLong(class ATL::CComBSTR const &)
?StringToLong@CIPAddress@@SGKABVCComBSTR@ATL@@@Z
; public: static unsigned long __stdcall CIPAddress::StringToLong(class CString const &)
?StringToLong@CIPAddress@@SGKABVCString@@@Z
; public: static unsigned long __stdcall CIPAddress::StringToLong(unsigned short const *,int)
?StringToLong@CIPAddress@@SGKPBGH@Z
; public: int __thiscall CError::Succeeded(void)const 
?Succeeded@CError@@QBEHXZ
; public: static int __stdcall CError::Succeeded(long)
?Succeeded@CError@@SGHJ@Z
; public: virtual int __thiscall CIISAppPool::Succeeded(void)const 
?Succeeded@CIISAppPool@@UBEHXZ
; public: virtual int __thiscall CIISApplication::Succeeded(void)const 
?Succeeded@CIISApplication@@UBEHXZ
; public: virtual int __thiscall CIISInterface::Succeeded(void)const 
?Succeeded@CIISInterface@@UBEHXZ
; public: virtual int __thiscall CMetaBack::Succeeded(void)const 
?Succeeded@CMetaBack@@UBEHXZ
; public: virtual int __thiscall CMetaKey::Succeeded(void)const 
?Succeeded@CMetaKey@@UBEHXZ
; public: int __thiscall CWamInterface::SupportsPooledProc(void)const 
?SupportsPooledProc@CWamInterface@@QBEHXZ
; int __stdcall SupportsSecurityACLs(unsigned short const *)
?SupportsSecurityACLs@@YGHPBG@Z
; public: void __thiscall CRMCListBoxResources::SysColorChanged(void)
?SysColorChanged@CRMCListBoxResources@@QAEXXZ
; public: long __thiscall CError::TextFromHRESULT(class CString &)const 
?TextFromHRESULT@CError@@QBEJAAVCString@@@Z
; public: long __thiscall CError::TextFromHRESULT(unsigned short *,unsigned long)const 
?TextFromHRESULT@CError@@QBEJPAGK@Z
; public: unsigned short const * __thiscall CError::TextFromHRESULTExpand(class CString &)const 
?TextFromHRESULTExpand@CError@@QBEPBGAAVCString@@@Z
; public: unsigned short const * __thiscall CError::TextFromHRESULTExpand(unsigned short *,unsigned long,long *)const 
?TextFromHRESULTExpand@CError@@QBEPBGPAGKPAJ@Z
; public: int __thiscall CODLBox::TextHeight(void)const 
?TextHeight@CODLBox@@QBEHXZ
; public: static unsigned short const * __stdcall CMetabasePath::TruncatePath(int,unsigned short const *,class CString &,class CString *)
?TruncatePath@CMetabasePath@@SGPBGHPBGAAVCString@@PAV2@@Z
; int __stdcall UnixToPCText(class CString &,unsigned short const *)
?UnixToPCText@@YGHAAVCString@@PBG@Z
; public: long __thiscall CIISApplication::Unload(int)
?Unload@CIISApplication@@QAEJH@Z
; protected: void __thiscall CRMCListBoxResources::UnprepareBitmaps(void)
?UnprepareBitmaps@CRMCListBoxResources@@IAEXXZ
; public: static void __stdcall CError::UnregisterFacility(unsigned long)
?UnregisterFacility@CError@@SGXK@Z
; protected: int __thiscall CRMCListBoxHeader::UseButtons(void)const 
?UseButtons@CRMCListBoxHeader@@IBEHXZ
; protected: int __thiscall CRMCListBoxHeader::UseStretch(void)const 
?UseStretch@CRMCListBoxHeader@@IBEHXZ
; public: static int __stdcall CINumber::UseSystemDefault(void)
?UseSystemDefault@CINumber@@SGHXZ
; public: static int __stdcall CINumber::UseUserDefault(void)
?UseUserDefault@CINumber@@SGHXZ
; public: int __thiscall CComAuthInfo::UsesImpersonation(void)const 
?UsesImpersonation@CComAuthInfo@@QBEHXZ
; public: int __thiscall CIISWizardPage::ValidateString(class CEdit &,class CString &,int,int)
?ValidateString@CIISWizardPage@@QAEHAAVCEdit@@AAVCString@@HH@Z
; int __stdcall VerifyState(void)
?VerifyState@@YGHXZ
; public: static unsigned long __stdcall CComAuthInfo::VerifyUserPassword(unsigned short const *,unsigned short const *)
?VerifyUserPassword@CComAuthInfo@@SGKPBG0@Z
; public: unsigned long __thiscall CError::Win32Error(void)const 
?Win32Error@CError@@QBEKXZ
; public: static unsigned long __stdcall CError::Win32Error(long)
?Win32Error@CError@@SGKJ@Z
; protected: virtual void __thiscall CIISWizardSheet::WinHelpW(unsigned long,unsigned int)
?WinHelpW@CIISWizardSheet@@MAEXKI@Z
; public: long __thiscall CIISApplication::WriteFriendlyName(unsigned short const *)
?WriteFriendlyName@CIISApplication@@QAEJPBG@Z
; public: long __thiscall CIISApplication::WritePoolId(unsigned short const *)
?WritePoolId@CIISApplication@@QAEJPBG@Z
; protected: static struct CRuntimeClass * __stdcall CEmphasizedDialog::_GetBaseClass(void)
?_GetBaseClass@CEmphasizedDialog@@KGPAUCRuntimeClass@@XZ
; protected: static struct CRuntimeClass * __stdcall CHeaderListBox::_GetBaseClass(void)
?_GetBaseClass@CHeaderListBox@@KGPAUCRuntimeClass@@XZ
; protected: static struct CRuntimeClass * __stdcall CIISWizardBookEnd::_GetBaseClass(void)
?_GetBaseClass@CIISWizardBookEnd@@KGPAUCRuntimeClass@@XZ
; protected: static struct CRuntimeClass * __stdcall CIISWizardPage::_GetBaseClass(void)
?_GetBaseClass@CIISWizardPage@@KGPAUCRuntimeClass@@XZ
; protected: static struct CRuntimeClass * __stdcall CIISWizardSheet::_GetBaseClass(void)
?_GetBaseClass@CIISWizardSheet@@KGPAUCRuntimeClass@@XZ
; protected: static struct CRuntimeClass * __stdcall CRMCComboBox::_GetBaseClass(void)
?_GetBaseClass@CRMCComboBox@@KGPAUCRuntimeClass@@XZ
; protected: static struct CRuntimeClass * __stdcall CRMCListBox::_GetBaseClass(void)
?_GetBaseClass@CRMCListBox@@KGPAUCRuntimeClass@@XZ
; protected: static struct CRuntimeClass * __stdcall CRMCListBoxHeader::_GetBaseClass(void)
?_GetBaseClass@CRMCListBoxHeader@@KGPAUCRuntimeClass@@XZ
; protected: static struct AFX_MSGMAP const * __stdcall CConfirmDlg::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CConfirmDlg@@KGPBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __stdcall CEmphasizedDialog::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CEmphasizedDialog@@KGPBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __stdcall CHeaderListBox::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CHeaderListBox@@KGPBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __stdcall CIISWizardBookEnd::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CIISWizardBookEnd@@KGPBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __stdcall CIISWizardPage::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CIISWizardPage@@KGPBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __stdcall CIISWizardSheet::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CIISWizardSheet@@KGPBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __stdcall CInheritanceDlg::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CInheritanceDlg@@KGPBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __stdcall CRMCComboBox::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CRMCComboBox@@KGPBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __stdcall CRMCListBox::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CRMCListBox@@KGPBUAFX_MSGMAP@@XZ
; protected: static struct AFX_MSGMAP const * __stdcall CRMCListBoxHeader::_GetBaseMessageMap(void)
?_GetBaseMessageMap@CRMCListBoxHeader@@KGPBUAFX_MSGMAP@@XZ
; protected: void __thiscall CODLBox::__DrawItem(struct tagDRAWITEMSTRUCT *)
?__DrawItem@CODLBox@@IAEXPAUtagDRAWITEMSTRUCT@@@Z
; public: virtual int __thiscall CRMCComboBox::__GetCount(void)const 
?__GetCount@CRMCComboBox@@UBEHXZ
; public: virtual int __thiscall CRMCListBox::__GetCount(void)const 
?__GetCount@CRMCListBox@@UBEHXZ
; protected: void __thiscall CODLBox::__MeasureItem(struct tagMEASUREITEMSTRUCT *)
?__MeasureItem@CODLBox@@IAEXPAUtagMEASUREITEMSTRUCT@@@Z
; public: virtual int __thiscall CRMCComboBox::__SetItemHeight(int,unsigned int)
?__SetItemHeight@CRMCComboBox@@UAEHHI@Z
; public: virtual int __thiscall CRMCListBox::__SetItemHeight(int,unsigned int)
?__SetItemHeight@CRMCListBox@@UAEHHI@Z
; protected: static unsigned short const  CMetabasePath::_chSep
?_chSep@CMetabasePath@@1GB
; protected: static unsigned short const * const  CMetabasePath::_cszMachine
?_cszMachine@CMetabasePath@@1QBGB
; protected: static unsigned short const * const  CMetabasePath::_cszRoot
?_cszRoot@CMetabasePath@@1QBGB
; protected: static unsigned short const * const  CMetabasePath::_cszSep
?_cszSep@CMetabasePath@@1QBGB
; 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 *  CINumber::_pstr
?_pstr@CINumber@@1PAVCString@@A DATA
; public: static class CString *  CINumber::_pstrBadNumber
?_pstrBadNumber@CINumber@@2PAVCString@@A DATA
; private: static class CString *  CINumber::_pstrCurrency
?_pstrCurrency@CINumber@@0PAVCString@@A DATA
; private: static class CString *  CINumber::_pstrDecimalPoint
?_pstrDecimalPoint@CINumber@@0PAVCString@@A DATA
; private: static class CString *  CINumber::_pstrThousandSeparator
?_pstrThousandSeparator@CINumber@@0PAVCString@@A 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 & __thiscall CRMCListBoxResources::dcBitMap(void)const 
?dcBitMap@CRMCListBoxResources@@QBEABVCDC@@XZ
; unsigned short const * const  g_lpszDummyPassword
?g_lpszDummyPassword@@3PBGB 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 * *  CError::s_cszFacility
?s_cszFacility@CError@@1PAPBGA DATA
; protected: static unsigned short const * const  CError::s_cszLMDLL
?s_cszLMDLL@CError@@1PBGB DATA
; protected: static unsigned short const * const  CError::s_cszWSDLL
?s_cszWSDLL@CError@@1PBGB DATA
; protected: static int  CError::s_fAllocated
?s_fAllocated@CError@@1HA DATA
; protected: static class CMap<unsigned long,unsigned long &,class CString,class CString &> *  CError::s_pmapFacilities
?s_pmapFacilities@CError@@1PAV?$CMap@KAAKVCString@@AAV1@@@A DATA
; protected: static class CString *  CError::s_pstrDefError
?s_pstrDefError@CError@@1PAVCString@@A DATA
; protected: static class CString *  CError::s_pstrDefSuccs
?s_pstrDefSuccs@CError@@1PAVCString@@A DATA
; protected: static struct CMetaKey::tagMDFIELDDEF const * const  CMetaKey::s_rgMetaTable
?s_rgMetaTable@CMetaKey@@1QBUtagMDFIELDDEF@1@B
; protected: static unsigned short const * const  CMetaBack::s_szMasterAppRoot
?s_szMasterAppRoot@CMetaBack@@1QBGB
DllRegisterServer
DllUnregisterServer
