; 
; Exports of file query.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY query.dll
EXPORTS
; class CCoTaskAllocator  CoTaskAllocator
?CoTaskAllocator@@3VCCoTaskAllocator@@A DATA
; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(struct tagPROPVARIANT & __ptr64,class PMemoryAllocator & __ptr64) __ptr64
??0CAllocStorageVariant@@QEAA@AEAUtagPROPVARIANT@@AEAVPMemoryAllocator@@@Z
; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(class PDeSerStream & __ptr64,class PMemoryAllocator & __ptr64) __ptr64
??0CAllocStorageVariant@@QEAA@AEAVPDeSerStream@@AEAVPMemoryAllocator@@@Z
; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(char const * __ptr64,class PMemoryAllocator & __ptr64) __ptr64
??0CAllocStorageVariant@@QEAA@PEBDAEAVPMemoryAllocator@@@Z
; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(unsigned short const * __ptr64,class PMemoryAllocator & __ptr64) __ptr64
??0CAllocStorageVariant@@QEAA@PEBGAEAVPMemoryAllocator@@@Z
; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(struct _GUID const * __ptr64,class PMemoryAllocator & __ptr64) __ptr64
??0CAllocStorageVariant@@QEAA@PEBU_GUID@@AEAVPMemoryAllocator@@@Z
; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(enum VARENUM,unsigned long,class PMemoryAllocator & __ptr64) __ptr64
??0CAllocStorageVariant@@QEAA@W4VARENUM@@KAEAVPMemoryAllocator@@@Z
; public: __cdecl CCatState::CCatState(void) __ptr64
??0CCatState@@QEAA@XZ
; public: __cdecl CCategorizationSet::CCategorizationSet(class CCategorizationSet const & __ptr64) __ptr64
??0CCategorizationSet@@QEAA@AEBV0@@Z
; public: __cdecl CCategorizationSet::CCategorizationSet(unsigned int) __ptr64
??0CCategorizationSet@@QEAA@I@Z
; public: __cdecl CCiAdminParams::CCiAdminParams(class CLangList * __ptr64) __ptr64
??0CCiAdminParams@@QEAA@PEAVCLangList@@@Z
; public: __cdecl CCiRegParams::CCiRegParams(unsigned short const * __ptr64) __ptr64
??0CCiRegParams@@QEAA@PEBG@Z
; public: __cdecl CColumnSet::CColumnSet(unsigned int) __ptr64
??0CColumnSet@@QEAA@I@Z
; public: __cdecl CColumns::CColumns(class CColumns const & __ptr64) __ptr64
??0CColumns@@QEAA@AEBV0@@Z
; public: __cdecl CColumns::CColumns(unsigned int) __ptr64
??0CColumns@@QEAA@I@Z
; public: __cdecl CContentRestriction::CContentRestriction(unsigned short const * __ptr64,class CFullPropSpec const & __ptr64,unsigned long,unsigned long) __ptr64
??0CContentRestriction@@QEAA@PEBGAEBVCFullPropSpec@@KK@Z
; public: __cdecl CDFA::CDFA(unsigned short const * __ptr64,class CTimeLimit & __ptr64,unsigned char) __ptr64
??0CDFA@@QEAA@PEBGAEAVCTimeLimit@@E@Z
; public: __cdecl CDbColId::CDbColId(struct _GUID const & __ptr64,unsigned short const * __ptr64) __ptr64
??0CDbColId@@QEAA@AEBU_GUID@@PEBG@Z
; public: __cdecl CDbColId::CDbColId(struct tagDBID const & __ptr64) __ptr64
??0CDbColId@@QEAA@AEBUtagDBID@@@Z
; public: __cdecl CDbColId::CDbColId(class CDbColId const & __ptr64) __ptr64
??0CDbColId@@QEAA@AEBV0@@Z
; public: __cdecl CDbColId::CDbColId(void) __ptr64
??0CDbColId@@QEAA@XZ
; public: __cdecl CDbColumns::CDbColumns(unsigned int) __ptr64
??0CDbColumns@@QEAA@I@Z
; public: __cdecl CDbContentRestriction::CDbContentRestriction(unsigned short const * __ptr64,struct tagDBID const & __ptr64,unsigned long,unsigned long) __ptr64
??0CDbContentRestriction@@QEAA@PEBGAEBUtagDBID@@KK@Z
; public: __cdecl CDbContentRestriction::CDbContentRestriction(unsigned short const * __ptr64,class CDbColumnNode const & __ptr64,unsigned long,unsigned long) __ptr64
??0CDbContentRestriction@@QEAA@PEBGAEBVCDbColumnNode@@KK@Z
; public: __cdecl CDbNatLangRestriction::CDbNatLangRestriction(unsigned short const * __ptr64,struct tagDBID const & __ptr64,unsigned long) __ptr64
??0CDbNatLangRestriction@@QEAA@PEBGAEBUtagDBID@@K@Z
; public: __cdecl CDbNatLangRestriction::CDbNatLangRestriction(unsigned short const * __ptr64,class CDbColumnNode const & __ptr64,unsigned long) __ptr64
??0CDbNatLangRestriction@@QEAA@PEBGAEBVCDbColumnNode@@K@Z
; public: __cdecl CDbQueryResults::CDbQueryResults(void) __ptr64
??0CDbQueryResults@@QEAA@XZ
; public: __cdecl CDbSelectNode::CDbSelectNode(void) __ptr64
??0CDbSelectNode@@QEAA@XZ
; public: __cdecl CDbSortSet::CDbSortSet(unsigned int) __ptr64
??0CDbSortSet@@QEAA@I@Z
; public: __cdecl CDefColumnRegEntry::CDefColumnRegEntry(void) __ptr64
??0CDefColumnRegEntry@@QEAA@XZ
; public: __cdecl CDriveInfo::CDriveInfo(unsigned short const * __ptr64,unsigned long) __ptr64
??0CDriveInfo@@QEAA@PEBGK@Z
; public: __cdecl CDynStream::CDynStream(class PMmStream * __ptr64) __ptr64
??0CDynStream@@QEAA@PEAVPMmStream@@@Z
; public: __cdecl CEventItem::CEventItem(unsigned short,unsigned short,unsigned long,unsigned short,unsigned long,void const * __ptr64) __ptr64
??0CEventItem@@QEAA@GGKGKPEBX@Z
; public: __cdecl CEventLog::CEventLog(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0CEventLog@@QEAA@PEBG0@Z
; public: __cdecl CException::CException(long) __ptr64
??0CException@@QEAA@J@Z
; public: __cdecl CException::CException(void) __ptr64
??0CException@@QEAA@XZ
; public: __cdecl CFileBuffer::CFileBuffer(class CFileMapView & __ptr64,unsigned int) __ptr64
??0CFileBuffer@@QEAA@AEAVCFileMapView@@I@Z
; public: __cdecl CFileMapView::CFileMapView(unsigned short const * __ptr64) __ptr64
??0CFileMapView@@QEAA@PEBG@Z
; public: __cdecl CFilterDaemon::CFilterDaemon(class CiProxy & __ptr64,class CCiFrameworkParams & __ptr64,class CLangList & __ptr64,unsigned char * __ptr64,unsigned long,struct ICiCFilterClient * __ptr64) __ptr64
??0CFilterDaemon@@QEAA@AEAVCiProxy@@AEAVCCiFrameworkParams@@AEAVCLangList@@PEAEKPEAUICiCFilterClient@@@Z
; public: __cdecl CFullPath::CFullPath(unsigned short const * __ptr64) __ptr64
??0CFullPath@@QEAA@PEBG@Z
; public: __cdecl CFullPath::CFullPath(unsigned short const * __ptr64,unsigned int) __ptr64
??0CFullPath@@QEAA@PEBGI@Z
; public: __cdecl CFullPropSpec::CFullPropSpec(class PDeSerStream & __ptr64) __ptr64
??0CFullPropSpec@@QEAA@AEAVPDeSerStream@@@Z
; public: __cdecl CFullPropSpec::CFullPropSpec(class CFullPropSpec const & __ptr64) __ptr64
??0CFullPropSpec@@QEAA@AEBV0@@Z
; public: __cdecl CFullPropSpec::CFullPropSpec(void) __ptr64
??0CFullPropSpec@@QEAA@XZ
; public: __cdecl CFwAsyncWorkItem::CFwAsyncWorkItem(class CWorkManager & __ptr64,class CWorkQueue & __ptr64) __ptr64
??0CFwAsyncWorkItem@@QEAA@AEAVCWorkManager@@AEAVCWorkQueue@@@Z
; public: __cdecl CFwEventItem::CFwEventItem(unsigned short,unsigned long,unsigned short,unsigned long,void * __ptr64) __ptr64
??0CFwEventItem@@QEAA@GKGKPEAX@Z
; public: __cdecl CGenericCiProxy::CGenericCiProxy(class CSharedNameGen & __ptr64,unsigned long,unsigned long) __ptr64
??0CGenericCiProxy@@QEAA@AEAVCSharedNameGen@@KK@Z
; public: __cdecl CGetDbProps::CGetDbProps(void) __ptr64
??0CGetDbProps@@QEAA@XZ
; public: __cdecl CImpersonateRemoteAccess::CImpersonateRemoteAccess(class CImpersonationTokenCache * __ptr64) __ptr64
??0CImpersonateRemoteAccess@@QEAA@PEAVCImpersonationTokenCache@@@Z
; public: __cdecl CImpersonationTokenCache::CImpersonationTokenCache(unsigned short const * __ptr64) __ptr64
??0CImpersonationTokenCache@@QEAA@PEBG@Z
; public: __cdecl CIndexTable::CIndexTable(class CiStorage & __ptr64,class CTransaction & __ptr64) __ptr64
??0CIndexTable@@QEAA@AEAVCiStorage@@AEAVCTransaction@@@Z
; public: __cdecl CInternalPropertyRestriction::CInternalPropertyRestriction(unsigned long,unsigned long,class CStorageVariant const & __ptr64,class CRestriction * __ptr64) __ptr64
??0CInternalPropertyRestriction@@QEAA@KKAEBVCStorageVariant@@PEAVCRestriction@@@Z
; public: __cdecl CKeyArray::CKeyArray(int,int) __ptr64
??0CKeyArray@@QEAA@HH@Z
; public: __cdecl CLangList::CLangList(struct ICiCLangRes * __ptr64,unsigned long) __ptr64
??0CLangList@@QEAA@PEAUICiCLangRes@@K@Z
; public: __cdecl CLocalGlobalPropertyList::CLocalGlobalPropertyList(unsigned long) __ptr64
??0CLocalGlobalPropertyList@@QEAA@K@Z
; public: __cdecl CLocalGlobalPropertyList::CLocalGlobalPropertyList(class CEmptyPropertyList * __ptr64,int,unsigned short const * __ptr64,unsigned long) __ptr64
??0CLocalGlobalPropertyList@@QEAA@PEAVCEmptyPropertyList@@HPEBGK@Z
; public: __cdecl CMachineAdmin::CMachineAdmin(unsigned short const * __ptr64,int) __ptr64
??0CMachineAdmin@@QEAA@PEBGH@Z
; public: __cdecl CMemSerStream::CMemSerStream(unsigned int) __ptr64
??0CMemSerStream@@QEAA@I@Z
; public: __cdecl CMemSerStream::CMemSerStream(unsigned char * __ptr64,unsigned long) __ptr64
??0CMemSerStream@@QEAA@PEAEK@Z
; public: __cdecl CMetaDataMgr::CMetaDataMgr(int,enum CiVRootTypeEnum,unsigned long,unsigned short const * __ptr64) __ptr64
??0CMetaDataMgr@@QEAA@HW4CiVRootTypeEnum@@KPEBG@Z
; public: __cdecl CMmStream::CMmStream(unsigned long,int) __ptr64
??0CMmStream@@QEAA@KH@Z
; public: __cdecl CMmStreamConsecBuf::CMmStreamConsecBuf(void) __ptr64
??0CMmStreamConsecBuf@@QEAA@XZ
; public: __cdecl CNatLanguageRestriction::CNatLanguageRestriction(unsigned short const * __ptr64,class CFullPropSpec const & __ptr64,unsigned long) __ptr64
??0CNatLanguageRestriction@@QEAA@PEBGAEBVCFullPropSpec@@K@Z
; public: __cdecl CNodeRestriction::CNodeRestriction(unsigned long,unsigned int) __ptr64
??0CNodeRestriction@@QEAA@KI@Z
; public: __cdecl CNormalizer::CNormalizer(class PNoiseList & __ptr64) __ptr64
??0CNormalizer@@QEAA@AEAVPNoiseList@@@Z
; public: __cdecl CPathParser::CPathParser(unsigned short const * __ptr64,unsigned long) __ptr64
??0CPathParser@@QEAA@PEBGK@Z
; public: __cdecl CPerfMon::CPerfMon(unsigned short const * __ptr64) __ptr64
??0CPerfMon@@QEAA@PEBG@Z
; public: __cdecl CPersDeComp::CPersDeComp(class PDirectory & __ptr64,unsigned long,class CPhysIndex & __ptr64,unsigned long,int,int) __ptr64
??0CPersDeComp@@QEAA@AEAVPDirectory@@KAEAVCPhysIndex@@KHH@Z
; protected: __cdecl CPhysStorage::CPhysStorage(class PStorage & __ptr64,class PStorageObject & __ptr64,unsigned long,unsigned int,class PMmStream * __ptr64,int,unsigned int,int) __ptr64
??0CPhysStorage@@IEAA@AEAVPStorage@@AEAVPStorageObject@@KIPEAVPMmStream@@HIH@Z
; protected: __cdecl CPhysStorage::CPhysStorage(class PStorage & __ptr64,class PStorageObject & __ptr64,unsigned long,class PMmStream * __ptr64,enum CPhysStorage::EOpenMode,int,unsigned int,int) __ptr64
??0CPhysStorage@@IEAA@AEAVPStorage@@AEAVPStorageObject@@KPEAVPMmStream@@W4EOpenMode@1@HIH@Z
; public: __cdecl CPidLookupTable::CPidLookupTable(void) __ptr64
??0CPidLookupTable@@QEAA@XZ
; public: __cdecl CPidRemapper::CPidRemapper(class XInterface<struct IPropertyMapper> & __ptr64) __ptr64
??0CPidRemapper@@QEAA@AEAV?$XInterface@UIPropertyMapper@@@@@Z
; public: __cdecl CPidRemapper::CPidRemapper(class CPidMapper const & __ptr64,class XInterface<struct IPropertyMapper> & __ptr64,class CRestriction * __ptr64,class CColumnSet * __ptr64,class CSortSet * __ptr64) __ptr64
??0CPidRemapper@@QEAA@AEBVCPidMapper@@AEAV?$XInterface@UIPropertyMapper@@@@PEAVCRestriction@@PEAVCColumnSet@@PEAVCSortSet@@@Z
; public: __cdecl CPropListFile::CPropListFile(class CEmptyPropertyList * __ptr64,int,unsigned short const * __ptr64,unsigned long) __ptr64
??0CPropListFile@@QEAA@PEAVCEmptyPropertyList@@HPEBGK@Z
; public: __cdecl CPropNameArray::CPropNameArray(class PDeSerStream & __ptr64) __ptr64
??0CPropNameArray@@QEAA@AEAVPDeSerStream@@@Z
; public: __cdecl CPropNameArray::CPropNameArray(unsigned int) __ptr64
??0CPropNameArray@@QEAA@I@Z
; public: __cdecl CPropStoreManager::CPropStoreManager(unsigned long) __ptr64
??0CPropStoreManager@@QEAA@K@Z
; public: __cdecl CPropertyRestriction::CPropertyRestriction(unsigned long,class CFullPropSpec const & __ptr64,class CStorageVariant const & __ptr64) __ptr64
??0CPropertyRestriction@@QEAA@KAEBVCFullPropSpec@@AEBVCStorageVariant@@@Z
; public: __cdecl CPropertyRestriction::CPropertyRestriction(void) __ptr64
??0CPropertyRestriction@@QEAA@XZ
; public: __cdecl CPropertyStoreWids::CPropertyStoreWids(class CPropStoreManager & __ptr64) __ptr64
??0CPropertyStoreWids@@QEAA@AEAVCPropStoreManager@@@Z
; public: __cdecl CPropertyValueParser::CPropertyValueParser(class CQueryScanner & __ptr64,unsigned short,unsigned long) __ptr64
??0CPropertyValueParser@@QEAA@AEAVCQueryScanner@@GK@Z
; public: __cdecl CQueryScanner::CQueryScanner(unsigned short const * __ptr64,int,unsigned long,int) __ptr64
??0CQueryScanner@@QEAA@PEBGHKH@Z
; public: __cdecl CRangeKeyRepository::CRangeKeyRepository(void) __ptr64
??0CRangeKeyRepository@@QEAA@XZ
; public: __cdecl CRcovStrmAppendTrans::CRcovStrmAppendTrans(class PRcovStorageObj & __ptr64) __ptr64
??0CRcovStrmAppendTrans@@QEAA@AEAVPRcovStorageObj@@@Z
; public: __cdecl CRcovStrmMDTrans::CRcovStrmMDTrans(class PRcovStorageObj & __ptr64,enum CRcovStrmMDTrans::MDOp,unsigned long) __ptr64
??0CRcovStrmMDTrans@@QEAA@AEAVPRcovStorageObj@@W4MDOp@0@K@Z
; protected: __cdecl CRcovStrmTrans::CRcovStrmTrans(class PRcovStorageObj & __ptr64,enum RcovOpType) __ptr64
??0CRcovStrmTrans@@IEAA@AEAVPRcovStorageObj@@W4RcovOpType@@@Z
; public: __cdecl CRegAccess::CRegAccess(unsigned long,unsigned short const * __ptr64) __ptr64
??0CRegAccess@@QEAA@KPEBG@Z
; public: __cdecl CRegChangeEvent::CRegChangeEvent(unsigned short const * __ptr64,int) __ptr64
??0CRegChangeEvent@@QEAA@PEBGH@Z
; public: __cdecl CRegNotify::CRegNotify(unsigned short const * __ptr64) __ptr64
??0CRegNotify@@QEAA@PEBG@Z
; public: __cdecl CRequestClient::CRequestClient(unsigned short const * __ptr64,struct IDBProperties * __ptr64) __ptr64
??0CRequestClient@@QEAA@PEBGPEAUIDBProperties@@@Z
; public: __cdecl CRequestQueue::CRequestQueue(unsigned int,unsigned int,unsigned int,int,unsigned int,unsigned int,struct _GUID const & __ptr64) __ptr64
??0CRequestQueue@@QEAA@IIIHIIAEBU_GUID@@@Z
; public: __cdecl CScopeRestriction::CScopeRestriction(unsigned short const * __ptr64,int,int) __ptr64
??0CScopeRestriction@@QEAA@PEBGHH@Z
; public: __cdecl CSdidLookupTable::CSdidLookupTable(void) __ptr64
??0CSdidLookupTable@@QEAA@XZ
; public: __cdecl CSizeSerStream::CSizeSerStream(void) __ptr64
??0CSizeSerStream@@QEAA@XZ
; public: __cdecl CSort::CSort(unsigned int) __ptr64
??0CSort@@QEAA@I@Z
; public: __cdecl CSortSet::CSortSet(unsigned int) __ptr64
??0CSortSet@@QEAA@I@Z
; public: __cdecl CStandardPropMapper::CStandardPropMapper(void) __ptr64
??0CStandardPropMapper@@QEAA@XZ
; public: __cdecl CSvcQuery::CSvcQuery(unsigned short const * __ptr64,struct IDBProperties * __ptr64) __ptr64
??0CSvcQuery@@QEAA@PEBGPEAUIDBProperties@@@Z
; public: __cdecl CSynRestriction::CSynRestriction(class CKey const & __ptr64,unsigned long,unsigned long,unsigned long,int) __ptr64
??0CSynRestriction@@QEAA@AEBVCKey@@KKKH@Z
; public: __cdecl CTimeLimit::CTimeLimit(unsigned long,unsigned long) __ptr64
??0CTimeLimit@@QEAA@KK@Z
; public: __cdecl CTransaction::CTransaction(void) __ptr64
??0CTransaction@@QEAA@XZ
; public: __cdecl CUnfilteredRestriction::CUnfilteredRestriction(void) __ptr64
??0CUnfilteredRestriction@@QEAA@XZ
; public: __cdecl CValueNormalizer::CValueNormalizer(class PKeyRepository & __ptr64) __ptr64
??0CValueNormalizer@@QEAA@AEAVPKeyRepository@@@Z
; public: __cdecl CVirtualString::CVirtualString(unsigned int) __ptr64
??0CVirtualString@@QEAA@I@Z
; public: __cdecl CWin32RegAccess::CWin32RegAccess(struct HKEY__ * __ptr64,unsigned short const * __ptr64) __ptr64
??0CWin32RegAccess@@QEAA@PEAUHKEY__@@PEBG@Z
; public: __cdecl CWordRestriction::CWordRestriction(class CKeyBuf const & __ptr64,unsigned long,unsigned long,unsigned long,int) __ptr64
??0CWordRestriction@@QEAA@AEBVCKeyBuf@@KKKH@Z
; public: __cdecl CWorkQueue::CWorkQueue(unsigned int,enum CWorkQueue::WorkQueueType) __ptr64
??0CWorkQueue@@QEAA@IW4WorkQueueType@0@@Z
; public: __cdecl CiStorage::CiStorage(unsigned short const * __ptr64,struct ICiCAdviseStatus & __ptr64,unsigned long,unsigned long,int) __ptr64
??0CiStorage@@QEAA@PEBGAEAUICiCAdviseStatus@@KKH@Z
; public: __cdecl SStorageObject::SStorageObject(class PStorageObject * __ptr64) __ptr64
??0SStorageObject@@QEAA@PEAVPStorageObject@@@Z
; protected: __cdecl CAllocStorageVariant::~CAllocStorageVariant(void) __ptr64
??1CAllocStorageVariant@@IEAA@XZ
; public: __cdecl CCatState::~CCatState(void) __ptr64
??1CCatState@@QEAA@XZ
; public: __cdecl CCatalogAdmin::~CCatalogAdmin(void) __ptr64
??1CCatalogAdmin@@QEAA@XZ
; public: __cdecl CCatalogEnum::~CCatalogEnum(void) __ptr64
??1CCatalogEnum@@QEAA@XZ
; public: __cdecl CColumns::~CColumns(void) __ptr64
??1CColumns@@QEAA@XZ
; public: __cdecl CContentRestriction::~CContentRestriction(void) __ptr64
??1CContentRestriction@@QEAA@XZ
; public: __cdecl CDFA::~CDFA(void) __ptr64
??1CDFA@@QEAA@XZ
; public: __cdecl CDbCmdTreeNode::~CDbCmdTreeNode(void) __ptr64
??1CDbCmdTreeNode@@QEAA@XZ
; public: __cdecl CDbColumns::~CDbColumns(void) __ptr64
??1CDbColumns@@QEAA@XZ
; public: __cdecl CDbPropSet::~CDbPropSet(void) __ptr64
??1CDbPropSet@@QEAA@XZ
; public: __cdecl CDbQueryResults::~CDbQueryResults(void) __ptr64
??1CDbQueryResults@@QEAA@XZ
; public: __cdecl CDbSortSet::~CDbSortSet(void) __ptr64
??1CDbSortSet@@QEAA@XZ
; public: __cdecl CDynStream::~CDynStream(void) __ptr64
??1CDynStream@@QEAA@XZ
; public: __cdecl CEventItem::~CEventItem(void) __ptr64
??1CEventItem@@QEAA@XZ
; public: __cdecl CEventLog::~CEventLog(void) __ptr64
??1CEventLog@@QEAA@XZ
; public: __cdecl CFileMapView::~CFileMapView(void) __ptr64
??1CFileMapView@@QEAA@XZ
; public: __cdecl CFilterDaemon::~CFilterDaemon(void) __ptr64
??1CFilterDaemon@@QEAA@XZ
; public: virtual __cdecl CFwAsyncWorkItem::~CFwAsyncWorkItem(void) __ptr64
??1CFwAsyncWorkItem@@UEAA@XZ
; public: __cdecl CFwEventItem::~CFwEventItem(void) __ptr64
??1CFwEventItem@@QEAA@XZ
; public: virtual __cdecl CGenericCiProxy::~CGenericCiProxy(void) __ptr64
??1CGenericCiProxy@@UEAA@XZ
; public: __cdecl CImpersonateClient::~CImpersonateClient(void) __ptr64
??1CImpersonateClient@@QEAA@XZ
; public: __cdecl CImpersonateSystem::~CImpersonateSystem(void) __ptr64
??1CImpersonateSystem@@QEAA@XZ
; public: __cdecl CImpersonationTokenCache::~CImpersonationTokenCache(void) __ptr64
??1CImpersonationTokenCache@@QEAA@XZ
; public: __cdecl CInternalPropertyRestriction::~CInternalPropertyRestriction(void) __ptr64
??1CInternalPropertyRestriction@@QEAA@XZ
; public: __cdecl CKeyArray::~CKeyArray(void) __ptr64
??1CKeyArray@@QEAA@XZ
; public: __cdecl CLangList::~CLangList(void) __ptr64
??1CLangList@@QEAA@XZ
; public: __cdecl CMachineAdmin::~CMachineAdmin(void) __ptr64
??1CMachineAdmin@@QEAA@XZ
; public: virtual __cdecl CMemSerStream::~CMemSerStream(void) __ptr64
??1CMemSerStream@@UEAA@XZ
; public: __cdecl CMetaDataMgr::~CMetaDataMgr(void) __ptr64
??1CMetaDataMgr@@QEAA@XZ
; public: virtual __cdecl CMmStream::~CMmStream(void) __ptr64
??1CMmStream@@UEAA@XZ
; public: __cdecl CMmStreamConsecBuf::~CMmStreamConsecBuf(void) __ptr64
??1CMmStreamConsecBuf@@QEAA@XZ
; public: __cdecl CNatLanguageRestriction::~CNatLanguageRestriction(void) __ptr64
??1CNatLanguageRestriction@@QEAA@XZ
; public: __cdecl CNodeRestriction::~CNodeRestriction(void) __ptr64
??1CNodeRestriction@@QEAA@XZ
; public: __cdecl CNotRestriction::~CNotRestriction(void) __ptr64
??1CNotRestriction@@QEAA@XZ
; public: __cdecl COccRestriction::~COccRestriction(void) __ptr64
??1COccRestriction@@QEAA@XZ
; public: __cdecl CParseCommandTree::~CParseCommandTree(void) __ptr64
??1CParseCommandTree@@QEAA@XZ
; public: __cdecl CPerfMon::~CPerfMon(void) __ptr64
??1CPerfMon@@QEAA@XZ
; public: __cdecl CPhraseRestriction::~CPhraseRestriction(void) __ptr64
??1CPhraseRestriction@@QEAA@XZ
; public: virtual __cdecl CPhysStorage::~CPhysStorage(void) __ptr64
??1CPhysStorage@@UEAA@XZ
; public: __cdecl CPidLookupTable::~CPidLookupTable(void) __ptr64
??1CPidLookupTable@@QEAA@XZ
; public: __cdecl CPidRemapper::~CPidRemapper(void) __ptr64
??1CPidRemapper@@QEAA@XZ
; public: __cdecl CProcess::~CProcess(void) __ptr64
??1CProcess@@QEAA@XZ
; public: __cdecl CPropStoreManager::~CPropStoreManager(void) __ptr64
??1CPropStoreManager@@QEAA@XZ
; public: virtual __cdecl CPropertyList::~CPropertyList(void) __ptr64
??1CPropertyList@@UEAA@XZ
; public: __cdecl CPropertyRestriction::~CPropertyRestriction(void) __ptr64
??1CPropertyRestriction@@QEAA@XZ
; public: __cdecl CPropertyStore::~CPropertyStore(void) __ptr64
??1CPropertyStore@@QEAA@XZ
; public: __cdecl CPropertyStoreWids::~CPropertyStoreWids(void) __ptr64
??1CPropertyStoreWids@@QEAA@XZ
; public: __cdecl CQueryUnknown::~CQueryUnknown(void) __ptr64
??1CQueryUnknown@@QEAA@XZ
; public: virtual __cdecl CRangeKeyRepository::~CRangeKeyRepository(void) __ptr64
??1CRangeKeyRepository@@UEAA@XZ
; public: __cdecl CRegChangeEvent::~CRegChangeEvent(void) __ptr64
??1CRegChangeEvent@@QEAA@XZ
; protected: virtual __cdecl CRegNotify::~CRegNotify(void) __ptr64
??1CRegNotify@@MEAA@XZ
; public: __cdecl CRestriction::~CRestriction(void) __ptr64
??1CRestriction@@QEAA@XZ
; public: __cdecl CScopeAdmin::~CScopeAdmin(void) __ptr64
??1CScopeAdmin@@QEAA@XZ
; public: __cdecl CScopeEnum::~CScopeEnum(void) __ptr64
??1CScopeEnum@@QEAA@XZ
; public: __cdecl CScopeRestriction::~CScopeRestriction(void) __ptr64
??1CScopeRestriction@@QEAA@XZ
; public: __cdecl CSdidLookupTable::~CSdidLookupTable(void) __ptr64
??1CSdidLookupTable@@QEAA@XZ
; public: virtual __cdecl CSizeSerStream::~CSizeSerStream(void) __ptr64
??1CSizeSerStream@@UEAA@XZ
; public: __cdecl CSort::~CSort(void) __ptr64
??1CSort@@QEAA@XZ
; public: __cdecl CSynRestriction::~CSynRestriction(void) __ptr64
??1CSynRestriction@@QEAA@XZ
; public: __cdecl CVirtualString::~CVirtualString(void) __ptr64
??1CVirtualString@@QEAA@XZ
; public: __cdecl CWin32RegAccess::~CWin32RegAccess(void) __ptr64
??1CWin32RegAccess@@QEAA@XZ
; public: __cdecl CWordRestriction::~CWordRestriction(void) __ptr64
??1CWordRestriction@@QEAA@XZ
; public: __cdecl CWorkManager::~CWorkManager(void) __ptr64
??1CWorkManager@@QEAA@XZ
; public: __cdecl CWorkQueue::~CWorkQueue(void) __ptr64
??1CWorkQueue@@QEAA@XZ
; public: __cdecl SStorageObject::~SStorageObject(void) __ptr64
??1SStorageObject@@QEAA@XZ
; public: class CDbColId & __ptr64 __cdecl CDbColId::operator=(class CDbColId const & __ptr64) __ptr64
??4CDbColId@@QEAAAEAV0@AEBV0@@Z
; public: int __cdecl CDbColId::operator==(class CDbColId const & __ptr64)const  __ptr64
??8CDbColId@@QEBAHAEBV0@@Z
; public: void __cdecl CWorkManager::AbortWorkItems(void) __ptr64
?AbortWorkItems@CWorkManager@@QEAAXXZ
; public: void __cdecl CQueryScanner::Accept(void) __ptr64
?Accept@CQueryScanner@@QEAAXXZ
; public: void __cdecl CQueryScanner::AcceptCommand(void) __ptr64
?AcceptCommand@CQueryScanner@@QEAAXXZ
; public: void __cdecl CQueryScanner::AcceptWord(void) __ptr64
?AcceptWord@CQueryScanner@@QEAAXXZ
; public: int __cdecl CSdidLookupTable::AccessCheck(unsigned long,void * __ptr64,unsigned long,int & __ptr64) __ptr64
?AccessCheck@CSdidLookupTable@@QEAAHKPEAXKAEAH@Z
; public: unsigned short * __ptr64 __cdecl CQueryScanner::AcqLine(int) __ptr64
?AcqLine@CQueryScanner@@QEAAPEAGH@Z
; public: unsigned short * __ptr64 __cdecl CQueryScanner::AcqPath(void) __ptr64
?AcqPath@CQueryScanner@@QEAAPEAGXZ
; public: unsigned short * __ptr64 __cdecl CQueryScanner::AcqPhrase(void) __ptr64
?AcqPhrase@CQueryScanner@@QEAAPEAGXZ
; public: class CRangeRestriction * __ptr64 __cdecl CRangeKeyRepository::AcqRst(void) __ptr64
?AcqRst@CRangeKeyRepository@@QEAAPEAVCRangeRestriction@@XZ
; public: unsigned short * __ptr64 __cdecl CQueryScanner::AcqWord(void) __ptr64
?AcqWord@CQueryScanner@@QEAAPEAGXZ
; private: void __cdecl CPropertyStore::AcquireRead(class CReadWriteLockRecord & __ptr64) __ptr64
?AcquireRead@CPropertyStore@@AEAAXAEAVCReadWriteLockRecord@@@Z
; public: int __cdecl CDbColumns::Add(class CDbColId const & __ptr64,unsigned int) __ptr64
?Add@CDbColumns@@QEAAHAEBVCDbColId@@I@Z
; public: void __cdecl CDbQueryResults::Add(unsigned short * __ptr64,unsigned long) __ptr64
?Add@CDbQueryResults@@QEAAXPEAGK@Z
; public: int __cdecl CDbSortSet::Add(class CDbColId const & __ptr64,unsigned long,unsigned int) __ptr64
?Add@CDbSortSet@@QEAAHAEBVCDbColId@@KI@Z
; public: int __cdecl CDbSortSet::Add(class CDbSortKey const & __ptr64,unsigned int) __ptr64
?Add@CDbSortSet@@QEAAHAEBVCDbSortKey@@I@Z
; public: int __cdecl CKeyArray::Add(int,class CKey const & __ptr64) __ptr64
?Add@CKeyArray@@QEAAHHAEBVCKey@@@Z
; public: int __cdecl CKeyArray::Add(int,class CKeyBuf const & __ptr64) __ptr64
?Add@CKeyArray@@QEAAHHAEBVCKeyBuf@@@Z
; public: void __cdecl CWorkQueue::Add(class PWorkItem * __ptr64) __ptr64
?Add@CWorkQueue@@QEAAXPEAVPWorkItem@@@Z
; public: void __cdecl CEventItem::AddArg(unsigned long) __ptr64
?AddArg@CEventItem@@QEAAXK@Z
; public: void __cdecl CEventItem::AddArg(unsigned short const * __ptr64) __ptr64
?AddArg@CEventItem@@QEAAXPEBG@Z
; public: void __cdecl CFwEventItem::AddArg(unsigned long) __ptr64
?AddArg@CFwEventItem@@QEAAXK@Z
; public: void __cdecl CFwEventItem::AddArg(unsigned short const * __ptr64) __ptr64
?AddArg@CFwEventItem@@QEAAXPEBG@Z
; public: void __cdecl CCatalogAdmin::AddCachedProperty(class CFullPropSpec const & __ptr64,unsigned long,unsigned long,unsigned long,int) __ptr64
?AddCachedProperty@CCatalogAdmin@@QEAAXAEBVCFullPropSpec@@KKKH@Z
; public: void __cdecl CCatState::AddCatalog(class XPtrST<unsigned short> & __ptr64) __ptr64
?AddCatalog@CCatState@@QEAAXAEAV?$XPtrST@G@@@Z
; public: void __cdecl CMachineAdmin::AddCatalog(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?AddCatalog@CMachineAdmin@@QEAAXPEBG0@Z
; public: void __cdecl CNodeRestriction::AddChild(class CRestriction * __ptr64,unsigned int & __ptr64) __ptr64
?AddChild@CNodeRestriction@@QEAAXPEAVCRestriction@@AEAI@Z
; public: void __cdecl CCatState::AddDir(class XPtrST<unsigned short> & __ptr64) __ptr64
?AddDir@CCatState@@QEAAXAEAV?$XPtrST@G@@@Z
; public: virtual void __cdecl CPropertyList::AddEntry(class CPropEntry * __ptr64,int) __ptr64
?AddEntry@CPropertyList@@UEAAXPEAVCPropEntry@@H@Z
; public: void __cdecl CEventItem::AddError(unsigned long) __ptr64
?AddError@CEventItem@@QEAAXK@Z
; public: void __cdecl CSynRestriction::AddKey(class CKeyBuf const & __ptr64) __ptr64
?AddKey@CSynRestriction@@QEAAXAEBVCKeyBuf@@@Z
; public: void __cdecl CCatState::AddMachine(class XPtrST<unsigned short> & __ptr64) __ptr64
?AddMachine@CCatState@@QEAAXAEAV?$XPtrST@G@@@Z
; public: virtual unsigned long __cdecl CDbProperties::AddRef(void) __ptr64
?AddRef@CDbProperties@@UEAAKXZ
; public: virtual unsigned long __cdecl CEmptyPropertyList::AddRef(void) __ptr64
?AddRef@CEmptyPropertyList@@UEAAKXZ
; public: virtual unsigned long __cdecl CEnumString::AddRef(void) __ptr64
?AddRef@CEnumString@@UEAAKXZ
; public: virtual unsigned long __cdecl CEnumWorkid::AddRef(void) __ptr64
?AddRef@CEnumWorkid@@UEAAKXZ
; public: virtual unsigned long __cdecl CFwPropertyMapper::AddRef(void) __ptr64
?AddRef@CFwPropertyMapper@@UEAAKXZ
; public: virtual unsigned long __cdecl CQueryUnknown::AddRef(void) __ptr64
?AddRef@CQueryUnknown@@UEAAKXZ
; public: void __cdecl CWorkQueue::AddRefWorkThreads(void) __ptr64
?AddRefWorkThreads@CWorkQueue@@QEAAXXZ
; public: void __cdecl CCatalogAdmin::AddScope(unsigned short const * __ptr64,unsigned short const * __ptr64,int,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?AddScope@CCatalogAdmin@@QEAAXPEBG0H00@Z
; public: int __cdecl CDbSortNode::AddSortColumn(struct tagDBID const & __ptr64,int,unsigned long) __ptr64
?AddSortColumn@CDbSortNode@@QEAAHAEBUtagDBID@@HK@Z
; public: int __cdecl CDbNestingNode::AddTable(class CDbCmdTreeNode * __ptr64) __ptr64
?AddTable@CDbNestingNode@@QEAAHPEAVCDbCmdTreeNode@@@Z
; public: void __cdecl CWorkManager::AddToWorkList(class CFwAsyncWorkItem * __ptr64) __ptr64
?AddToWorkList@CWorkManager@@QEAAXPEAVCFwAsyncWorkItem@@@Z
; public: void __cdecl CFwAsyncWorkItem::AddToWorkQueue(void) __ptr64
?AddToWorkQueue@CFwAsyncWorkItem@@QEAAXXZ
; public: static unsigned short * __ptr64 __cdecl CDbCmdTreeNode::AllocAndCopyWString(unsigned short const * __ptr64)
?AllocAndCopyWString@CDbCmdTreeNode@@SAPEAGPEBG@Z
; unsigned short * __ptr64 __cdecl AllocHeapAndCopy(unsigned short const * __ptr64,unsigned long & __ptr64)
?AllocHeapAndCopy@@YAPEAGPEBGAEAK@Z
; unsigned short * __ptr64 __cdecl AllocHeapAndGetWString(class PDeSerStream & __ptr64)
?AllocHeapAndGetWString@@YAPEAGAEAVPDeSerStream@@@Z
; public: void __cdecl CEnumString::Append(unsigned short const * __ptr64) __ptr64
?Append@CEnumString@@QEAAXPEBG@Z
; public: void __cdecl CEnumWorkid::Append(unsigned long) __ptr64
?Append@CEnumWorkid@@QEAAXK@Z
; protected: void __cdecl CDbCmdTreeNode::AppendChild(class CDbCmdTreeNode * __ptr64) __ptr64
?AppendChild@CDbCmdTreeNode@@IEAAXPEAV1@@Z
; protected: int __cdecl CDbListAnchor::AppendListElement(unsigned short,struct tagDBID const & __ptr64) __ptr64
?AppendListElement@CDbListAnchor@@IEAAHGAEBUtagDBID@@@Z
; protected: int __cdecl CDbListAnchor::AppendListElement(class CDbCmdTreeNode * __ptr64) __ptr64
?AppendListElement@CDbListAnchor@@IEAAHPEAVCDbCmdTreeNode@@@Z
; public: int __cdecl CDbProjectListAnchor::AppendListElement(struct tagDBID const & __ptr64,unsigned short * __ptr64) __ptr64
?AppendListElement@CDbProjectListAnchor@@QEAAHAEBUtagDBID@@PEAG@Z
; public: unsigned __int64 __cdecl CPropStoreManager::BeginTransaction(void) __ptr64
?BeginTransaction@CPropStoreManager@@QEAA_KXZ
; public: static long __cdecl CCiOle::BindIFilter(unsigned short const * __ptr64,struct IUnknown * __ptr64,struct _GUID const & __ptr64,struct IFilter * __ptr64 * __ptr64,int)
?BindIFilter@CCiOle@@SAJPEBGPEAUIUnknown@@AEBU_GUID@@PEAPEAUIFilter@@H@Z
; public: static long __cdecl CCiOle::BindIFilter(unsigned short const * __ptr64,struct IUnknown * __ptr64,struct IFilter * __ptr64 * __ptr64,int)
?BindIFilter@CCiOle@@SAJPEBGPEAUIUnknown@@PEAPEAUIFilter@@H@Z
; public: unsigned long * __ptr64 __cdecl CPhysStorage::BorrowBuffer(unsigned long,int,int) __ptr64
?BorrowBuffer@CPhysStorage@@QEAAPEAKKHH@Z
; public: unsigned long * __ptr64 __cdecl CPhysStorage::BorrowNewBuffer(unsigned long) __ptr64
?BorrowNewBuffer@CPhysStorage@@QEAAPEAKK@Z
; void __cdecl BuildRegistryPropertiesKey(class XArray<unsigned short> & __ptr64,unsigned short const * __ptr64)
?BuildRegistryPropertiesKey@@YAXAEAV?$XArray@G@@PEBG@Z
; void __cdecl BuildRegistryScopesKey(class XArray<unsigned short> & __ptr64,unsigned short const * __ptr64)
?BuildRegistryScopesKey@@YAXAEAV?$XArray@G@@PEBG@Z
; void __cdecl CIShutdown(void)
?CIShutdown@@YAXXZ
; public: void __cdecl CCatState::ChangeCurrentCatalog(unsigned short const * __ptr64) __ptr64
?ChangeCurrentCatalog@CCatState@@QEAAXPEBG@Z
; public: void __cdecl CCatState::ChangeCurrentDepth(int) __ptr64
?ChangeCurrentDepth@CCatState@@QEAAXH@Z
; public: void __cdecl CCatState::ChangeCurrentMachine(unsigned short const * __ptr64) __ptr64
?ChangeCurrentMachine@CCatState@@QEAAXPEBG@Z
; public: void __cdecl CCatState::ChangeCurrentScope(unsigned short const * __ptr64) __ptr64
?ChangeCurrentScope@CCatState@@QEAAXPEBG@Z
; private: void __cdecl CPropStoreInfo::ChangeDirty(int) __ptr64
?ChangeDirty@CPropStoreInfo@@AEAAXH@Z
; public: long __cdecl CLocalGlobalPropertyList::CheckError(unsigned long & __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
?CheckError@CLocalGlobalPropertyList@@QEAAJAEAKPEAPEAG@Z
; public: long __cdecl CPropListFile::CheckError(unsigned long & __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
?CheckError@CPropListFile@@QEAAJAEAKPEAPEAG@Z
; public: static int __cdecl CiStorage::CheckHasIndexTable(unsigned short const * __ptr64)
?CheckHasIndexTable@CiStorage@@SAHPEBG@Z
CiCreateSecurityDescriptor
; int __cdecl CiGetPassword(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short * __ptr64)
?CiGetPassword@@YAHPEBG0PEAG@Z
; void * __ptr64 __cdecl CiNtOpen(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long)
?CiNtOpen@@YAPEAXPEBGKKK@Z
; long __cdecl CiNtOpenNoThrow(void * __ptr64 & __ptr64,unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long)
?CiNtOpenNoThrow@@YAJAEAPEAXPEBGKKK@Z
; public: void __cdecl CDbColId::Cleanup(void) __ptr64
?Cleanup@CDbColId@@QEAAXXZ
; protected: void __cdecl CDbCmdTreeNode::CleanupDataValue(void) __ptr64
?CleanupDataValue@CDbCmdTreeNode@@IEAAXXZ
; public: void __cdecl CCombinedPropertyList::ClearList(void) __ptr64
?ClearList@CCombinedPropertyList@@QEAAXXZ
; public: void __cdecl CPropertyList::ClearList(void) __ptr64
?ClearList@CPropertyList@@QEAAXXZ
; public: class CDbCmdTreeNode * __ptr64 __cdecl CDbCmdTreeNode::Clone(int)const  __ptr64
?Clone@CDbCmdTreeNode@@QEBAPEAV1@H@Z
; public: virtual long __cdecl CEnumString::Clone(struct IEnumString * __ptr64 * __ptr64) __ptr64
?Clone@CEnumString@@UEAAJPEAPEAUIEnumString@@@Z
; public: class CNodeRestriction * __ptr64 __cdecl CNodeRestriction::Clone(void)const  __ptr64
?Clone@CNodeRestriction@@QEBAPEAV1@XZ
; public: class COccRestriction * __ptr64 __cdecl COccRestriction::Clone(void)const  __ptr64
?Clone@COccRestriction@@QEBAPEAV1@XZ
; public: class CRestriction * __ptr64 __cdecl CRestriction::Clone(void)const  __ptr64
?Clone@CRestriction@@QEBAPEAV1@XZ
; public: void __cdecl CPhysStorage::Close(void) __ptr64
?Close@CPhysStorage@@QEAAXXZ
; protected: void __cdecl CPipeClient::Close(void) __ptr64
?Close@CPipeClient@@IEAAXXZ
; public: void __cdecl COLEPropManager::CPropSetMap::Close(void) __ptr64
?Close@CPropSetMap@COLEPropManager@@QEAAXXZ
; public: void __cdecl CPropStoreManager::CloseRecord(class CCompositePropRecord * __ptr64) __ptr64
?CloseRecord@CPropStoreManager@@QEAAXPEAVCCompositePropRecord@@@Z
; public: void __cdecl CPropStoreManager::CloseRecord(class CCompositePropRecordForWrites * __ptr64) __ptr64
?CloseRecord@CPropStoreManager@@QEAAXPEAVCCompositePropRecordForWrites@@@Z
; public: void __cdecl CRcovStrmAppendTrans::Commit(void) __ptr64
?Commit@CRcovStrmAppendTrans@@QEAAXXZ
; public: void __cdecl CRcovStrmMDTrans::Commit(void) __ptr64
?Commit@CRcovStrmMDTrans@@QEAAXXZ
; public: void __cdecl CRcovStrmWriteTrans::Commit(void) __ptr64
?Commit@CRcovStrmWriteTrans@@QEAAXXZ
; public: static int __cdecl CDriveInfo::ContainsDrive(unsigned short const * __ptr64)
?ContainsDrive@CDriveInfo@@SAHPEBG@Z
; public: void __cdecl CMachineAdmin::CreateSubdirs(unsigned short const * __ptr64) __ptr64
?CreateSubdirs@CMachineAdmin@@QEAAXPEBG@Z
; public: void __cdecl CRequestClient::DataWriteRead(void * __ptr64,unsigned long,void * __ptr64,unsigned long,unsigned long & __ptr64) __ptr64
?DataWriteRead@CRequestClient@@QEAAXPEAXK0KAEAK@Z
; void __cdecl DecodeEscapes(unsigned short * __ptr64,unsigned long & __ptr64,unsigned short * __ptr64)
?DecodeEscapes@@YAXPEAGAEAK0@Z
; void __cdecl DecodeHtmlNumeric(unsigned short * __ptr64)
?DecodeHtmlNumeric@@YAXPEAG@Z
; void __cdecl DecodeURLEscapes(unsigned char * __ptr64,unsigned long & __ptr64,unsigned short * __ptr64,unsigned long)
?DecodeURLEscapes@@YAXPEAEAEAKPEAGK@Z
; public: void __cdecl CPropStoreManager::DeleteRecord(unsigned long) __ptr64
?DeleteRecord@CPropStoreManager@@QEAAXK@Z
; public: void __cdecl CCatalogAdmin::DeleteRegistryParamNoThrow(unsigned short const * __ptr64) __ptr64
?DeleteRegistryParamNoThrow@CCatalogAdmin@@QEAAXPEBG@Z
; public: static unsigned int __cdecl CiStorage::DetermineDriveType(unsigned short const * __ptr64)
?DetermineDriveType@CiStorage@@SAIPEBG@Z
; public: int __cdecl CMachineAdmin::DisableCI(void) __ptr64
?DisableCI@CMachineAdmin@@QEAAHXZ
; public: void __cdecl CRegNotify::DisableNotification(void) __ptr64
?DisableNotification@CRegNotify@@QEAAXXZ
; public: void __cdecl CMetaDataMgr::DisableVPathNotify(void) __ptr64
?DisableVPathNotify@CMetaDataMgr@@QEAAXXZ
; public: void __cdecl CRequestClient::Disconnect(void) __ptr64
?Disconnect@CRequestClient@@QEAAXXZ
; public: long __cdecl CCopyRcovObject::DoIt(void) __ptr64
?DoIt@CCopyRcovObject@@QEAAJXZ
; public: long __cdecl CFilterDaemon::DoUpdates(void) __ptr64
?DoUpdates@CFilterDaemon@@QEAAJXZ
; public: void __cdecl CFwAsyncWorkItem::Done(void) __ptr64
?Done@CFwAsyncWorkItem@@QEAAXXZ
; long __cdecl DumpWorkId(unsigned short const * __ptr64,unsigned long,unsigned char * __ptr64,unsigned long & __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long)
?DumpWorkId@@YAJPEBGKPEAEAEAK00K@Z
; public: void __cdecl CPidLookupTable::Empty(void) __ptr64
?Empty@CPidLookupTable@@QEAAXXZ
; public: void __cdecl CPropStoreManager::Empty(void) __ptr64
?Empty@CPropStoreManager@@QEAAXXZ
; public: void __cdecl CRcovStrmWriteTrans::Empty(void) __ptr64
?Empty@CRcovStrmWriteTrans@@QEAAXXZ
; public: void __cdecl CSdidLookupTable::Empty(void) __ptr64
?Empty@CSdidLookupTable@@QEAAXXZ
; public: int __cdecl CMachineAdmin::EnableCI(void) __ptr64
?EnableCI@CMachineAdmin@@QEAAHXZ
; public: void __cdecl CMetaDataMgr::EnableVPathNotify(class CMetaDataVPathChangeCallBack * __ptr64) __ptr64
?EnableVPathNotify@CMetaDataMgr@@QEAAXPEAVCMetaDataVPathChangeCallBack@@@Z
; public: void __cdecl CPropStoreManager::EndTransaction(unsigned __int64,int,unsigned long,unsigned long) __ptr64
?EndTransaction@CPropStoreManager@@QEAAX_KHKK@Z
; public: int __cdecl CWin32RegAccess::Enum(unsigned short * __ptr64,unsigned long) __ptr64
?Enum@CWin32RegAccess@@QEAAHPEAGK@Z
; public: virtual long __cdecl CEmptyPropertyList::EnumPropInfo(unsigned long,unsigned short const * __ptr64 * __ptr64,struct tagDBID * __ptr64 * __ptr64,unsigned short * __ptr64,unsigned int * __ptr64) __ptr64
?EnumPropInfo@CEmptyPropertyList@@UEAAJKPEAPEBGPEAPEAUtagDBID@@PEAGPEAI@Z
; public: void __cdecl CMetaDataMgr::EnumVPaths(class CMetaDataCallBack & __ptr64) __ptr64
?EnumVPaths@CMetaDataMgr@@QEAAXAEAVCMetaDataCallBack@@@Z
; public: void __cdecl CMetaDataMgr::EnumVServers(class CMetaDataVirtualServerCallBack & __ptr64) __ptr64
?EnumVServers@CMetaDataMgr@@QEAAXAEAVCMetaDataVirtualServerCallBack@@@Z
; public: static void __cdecl CiStorage::EnumerateFilesInDir(unsigned short const * __ptr64,class CEnumString & __ptr64)
?EnumerateFilesInDir@CiStorage@@SAXPEBGAEAVCEnumString@@@Z
; public: int __cdecl CPidLookupTable::EnumerateProperty(class CFullPropSpec & __ptr64,unsigned int & __ptr64) __ptr64
?EnumerateProperty@CPidLookupTable@@QEAAHAEAVCFullPropSpec@@AEAI@Z
; public: void __cdecl CRegAccess::EnumerateValues(unsigned short * __ptr64,class CRegCallBack & __ptr64) __ptr64
?EnumerateValues@CRegAccess@@QEAAXPEAGAEAVCRegCallBack@@@Z
; public: int __cdecl CMmStreamConsecBuf::Eof(void) __ptr64
?Eof@CMmStreamConsecBuf@@QEAAHXZ
; public: int __cdecl CMetaDataMgr::ExtensionHasScriptMap(unsigned short const * __ptr64) __ptr64
?ExtensionHasScriptMap@CMetaDataMgr@@QEAAHPEBG@Z
; public: virtual long __cdecl CPidConverter::FPSToPROPID(class CFullPropSpec const & __ptr64,unsigned long & __ptr64) __ptr64
?FPSToPROPID@CPidConverter@@UEAAJAEBVCFullPropSpec@@AEAK@Z
; public: void __cdecl CPropStoreManager::FastInit(class CiStorage * __ptr64) __ptr64
?FastInit@CPropStoreManager@@QEAAXPEAVCiStorage@@@Z
; public: void __cdecl COLEPropManager::FetchProperty(struct _GUID const & __ptr64,struct tagPROPSPEC const & __ptr64,struct tagPROPVARIANT * __ptr64,unsigned int * __ptr64) __ptr64
?FetchProperty@COLEPropManager@@QEAAXAEBU_GUID@@AEBUtagPROPSPEC@@PEAUtagPROPVARIANT@@PEAI@Z
; public: int __cdecl CKeyArray::FillMax(int) __ptr64
?FillMax@CKeyArray@@QEAAHH@Z
; public: class CPropEntry const * __ptr64 __cdecl CEmptyPropertyList::Find(class CDbColId const & __ptr64) __ptr64
?Find@CEmptyPropertyList@@QEAAPEBVCPropEntry@@AEBVCDbColId@@@Z
; public: virtual class CPropEntry const * __ptr64 __cdecl CPropertyList::Find(class CDbColId const & __ptr64) __ptr64
?Find@CPropertyList@@UEAAPEBVCPropEntry@@AEBVCDbColId@@@Z
; public: virtual class CPropEntry const * __ptr64 __cdecl CPropertyList::Find(unsigned short const * __ptr64) __ptr64
?Find@CPropertyList@@UEAAPEBVCPropEntry@@PEBG@Z
; public: int __cdecl CPidLookupTable::FindPropid(class CFullPropSpec const & __ptr64,unsigned long & __ptr64,int) __ptr64
?FindPropid@CPidLookupTable@@QEAAHAEBVCFullPropSpec@@AEAKH@Z
; public: void __cdecl CDynStream::Flush(void) __ptr64
?Flush@CDynStream@@QEAAXXZ
; public: void __cdecl CPhysStorage::Flush(int) __ptr64
?Flush@CPhysStorage@@QEAAXH@Z
; public: void __cdecl CPropStoreManager::Flush(void) __ptr64
?Flush@CPropStoreManager@@QEAAXXZ
; public: static void __cdecl CCiOle::FlushIdle(void)
?FlushIdle@CCiOle@@SAXXZ
; public: struct tagDBCOMMANDTREE * __ptr64 __cdecl CTextToTree::FormFullTree(void) __ptr64
?FormFullTree@CTextToTree@@QEAAPEAUtagDBCOMMANDTREE@@XZ
; class CDbCmdTreeNode * __ptr64 __cdecl FormQueryTree(class CDbCmdTreeNode & __ptr64,class CCatState & __ptr64,struct IColumnMapper * __ptr64,int,int)
?FormQueryTree@@YAPEAVCDbCmdTreeNode@@AEAV1@AEAVCCatState@@PEAUIColumnMapper@@HH@Z
FsCiShutdown
; public: unsigned long __cdecl CRegAccess::Get(unsigned short const * __ptr64) __ptr64
?Get@CRegAccess@@QEAAKPEBG@Z
; public: void __cdecl CRegAccess::Get(unsigned short const * __ptr64,unsigned short * __ptr64,unsigned int) __ptr64
?Get@CRegAccess@@QEAAXPEBGPEAGI@Z
; public: int __cdecl CWin32RegAccess::Get(unsigned short const * __ptr64,unsigned long & __ptr64) __ptr64
?Get@CWin32RegAccess@@QEAAHPEBGAEAK@Z
; public: int __cdecl CWin32RegAccess::Get(unsigned short const * __ptr64,unsigned short * __ptr64,unsigned int,int) __ptr64
?Get@CWin32RegAccess@@QEAAHPEBGPEAGIH@Z
; public: virtual long __cdecl CPropertyList::GetAllEntries(class CPropEntry * __ptr64 * __ptr64,unsigned long) __ptr64
?GetAllEntries@CPropertyList@@UEAAJPEAPEAVCPropEntry@@K@Z
; public: short __cdecl CAllocStorageVariant::GetBOOL(unsigned int)const  __ptr64
?GetBOOL@CAllocStorageVariant@@QEBAFI@Z
; public: unsigned long __cdecl CPropStoreManager::GetBackupSize(unsigned long) __ptr64
?GetBackupSize@CPropStoreManager@@QEAAKK@Z
; public: virtual void __cdecl CMemDeSerStream::GetBlob(unsigned char * __ptr64,unsigned long) __ptr64
?GetBlob@CMemDeSerStream@@UEAAXPEAEK@Z
; unsigned long __cdecl GetBrowserCodepage(class CWebServer & __ptr64,unsigned long)
?GetBrowserCodepage@@YAKAEAVCWebServer@@K@Z
; public: virtual unsigned char __cdecl CMemDeSerStream::GetByte(void) __ptr64
?GetByte@CMemDeSerStream@@UEAAEXZ
; public: unsigned short const * __ptr64 __cdecl CCatState::GetCD(void) __ptr64
?GetCD@CCatState@@QEAAPEBGXZ
; public: int __cdecl CWebServer::GetCGIVariable(char const * __ptr64,class XArray<unsigned short> & __ptr64,unsigned long & __ptr64) __ptr64
?GetCGIVariable@CWebServer@@QEAAHPEBDAEAV?$XArray@G@@AEAK@Z
; public: int __cdecl CWebServer::GetCGIVariableW(unsigned short const * __ptr64,class XArray<unsigned short> & __ptr64,unsigned long & __ptr64) __ptr64
?GetCGIVariableW@CWebServer@@QEAAHPEBGAEAV?$XArray@G@@AEAK@Z
; public: struct _GUID  __cdecl CAllocStorageVariant::GetCLSID(unsigned int)const  __ptr64
?GetCLSID@CAllocStorageVariant@@QEBA?AU_GUID@@I@Z
; public: union tagCY  __cdecl CAllocStorageVariant::GetCY(unsigned int)const  __ptr64
?GetCY@CAllocStorageVariant@@QEBA?ATtagCY@@I@Z
; public: unsigned short const * __ptr64 __cdecl CCatState::GetCategory(unsigned int)const  __ptr64
?GetCategory@CCatState@@QEBAPEBGI@Z
; public: virtual void __cdecl CMemDeSerStream::GetChar(char * __ptr64,unsigned long) __ptr64
?GetChar@CMemDeSerStream@@UEAAXPEADK@Z
; public: unsigned short const * __ptr64 __cdecl CCatState::GetColumn(unsigned int)const  __ptr64
?GetColumn@CCatState@@QEBAPEBGI@Z
; public: unsigned short __cdecl CQueryScanner::GetCommandChar(void) __ptr64
?GetCommandChar@CQueryScanner@@QEAAGXZ
; public: double __cdecl CAllocStorageVariant::GetDATE(unsigned int)const  __ptr64
?GetDATE@CAllocStorageVariant@@QEBANI@Z
; public: int __cdecl CCatalogAdmin::GetDWORDParam(unsigned short const * __ptr64,unsigned long & __ptr64) __ptr64
?GetDWORDParam@CCatalogAdmin@@QEAAHPEBGAEAK@Z
; public: int __cdecl CMachineAdmin::GetDWORDParam(unsigned short const * __ptr64,unsigned long & __ptr64) __ptr64
?GetDWORDParam@CMachineAdmin@@QEAAHPEBGAEAK@Z
; public: void __cdecl CDriveInfo::GetDiskSpace(__int64 & __ptr64,__int64 & __ptr64) __ptr64
?GetDiskSpace@CDriveInfo@@QEAAXAEA_J0@Z
; public: virtual double __cdecl CMemDeSerStream::GetDouble(void) __ptr64
?GetDouble@CMemDeSerStream@@UEAANXZ
; public: static void __cdecl CDriveInfo::GetDrive(unsigned short const * __ptr64,unsigned short * __ptr64)
?GetDrive@CDriveInfo@@SAXPEBGPEAG@Z
; public: unsigned char * __ptr64 __cdecl CGenericCiProxy::GetEntryBuffer(unsigned long & __ptr64) __ptr64
?GetEntryBuffer@CGenericCiProxy@@QEAAPEAEAEAK@Z
; public: struct _FILETIME  __cdecl CAllocStorageVariant::GetFILETIME(unsigned int)const  __ptr64
?GetFILETIME@CAllocStorageVariant@@QEBA?AU_FILETIME@@I@Z
; public: int __cdecl CPathParser::GetFileName(unsigned short * __ptr64,unsigned long & __ptr64)const  __ptr64
?GetFileName@CPathParser@@QEBAHPEAGAEAK@Z
; public: enum CDriveInfo::eFileSystem  __cdecl CDriveInfo::GetFileSystem(int) __ptr64
?GetFileSystem@CDriveInfo@@QEAA?AW4eFileSystem@1@H@Z
; public: virtual float __cdecl CMemDeSerStream::GetFloat(void) __ptr64
?GetFloat@CMemDeSerStream@@UEAAMXZ
; public: virtual void __cdecl CMemDeSerStream::GetGUID(struct _GUID & __ptr64) __ptr64
?GetGUID@CMemDeSerStream@@UEAAXAEAU_GUID@@@Z
; class CPropListFile * __ptr64 __cdecl GetGlobalPropListFile(void)
?GetGlobalPropListFile@@YAPEAVCPropListFile@@XZ
; class CStaticPropertyList * __ptr64 __cdecl GetGlobalStaticPropertyList(void)
?GetGlobalStaticPropertyList@@YAPEAVCStaticPropertyList@@XZ
; public: short __cdecl CAllocStorageVariant::GetI2(unsigned int)const  __ptr64
?GetI2@CAllocStorageVariant@@QEBAFI@Z
; public: long __cdecl CAllocStorageVariant::GetI4(unsigned int)const  __ptr64
?GetI4@CAllocStorageVariant@@QEBAJI@Z
; public: union _LARGE_INTEGER  __cdecl CAllocStorageVariant::GetI8(unsigned int)const  __ptr64
?GetI8@CAllocStorageVariant@@QEBA?AT_LARGE_INTEGER@@I@Z
; unsigned long __cdecl GetLCIDFromString(unsigned short * __ptr64)
?GetLCIDFromString@@YAKPEAG@Z
; public: char * __ptr64 __cdecl CAllocStorageVariant::GetLPSTR(unsigned int)const  __ptr64
?GetLPSTR@CAllocStorageVariant@@QEBAPEADI@Z
; public: unsigned short * __ptr64 __cdecl CAllocStorageVariant::GetLPWSTR(unsigned int)const  __ptr64
?GetLPWSTR@CAllocStorageVariant@@QEBAPEAGI@Z
; public: unsigned short const * __ptr64 __cdecl CCatalogAdmin::GetLocation(void) __ptr64
?GetLocation@CCatalogAdmin@@QEAAPEBGXZ
; public: virtual long __cdecl CMemDeSerStream::GetLong(void) __ptr64
?GetLong@CMemDeSerStream@@UEAAJXZ
; public: int __cdecl CQueryScanner::GetNumber(unsigned long & __ptr64,int & __ptr64) __ptr64
?GetNumber@CQueryScanner@@QEAAHAEAKAEAH@Z
; public: int __cdecl CQueryScanner::GetNumber(double & __ptr64) __ptr64
?GetNumber@CQueryScanner@@QEAAHAEAN@Z
; public: int __cdecl CQueryScanner::GetNumber(__int64 & __ptr64,int & __ptr64) __ptr64
?GetNumber@CQueryScanner@@QEAAHAEA_JAEAH@Z
; public: int __cdecl CQueryScanner::GetNumber(unsigned __int64 & __ptr64,int & __ptr64) __ptr64
?GetNumber@CQueryScanner@@QEAAHAEA_KAEAH@Z
; public: void __cdecl CKeyDeComp::GetOffset(struct BitOffset & __ptr64) __ptr64
?GetOffset@CKeyDeComp@@QEAAXAEAUBitOffset@@@Z
; long __cdecl GetOleDBErrorInfo(struct IUnknown * __ptr64,struct _GUID const & __ptr64,unsigned long,unsigned int,struct tagERRORINFO * __ptr64,struct IErrorInfo * __ptr64 * __ptr64)
?GetOleDBErrorInfo@@YAJPEAUIUnknown@@AEBU_GUID@@KIPEAUtagERRORINFO@@PEAPEAUIErrorInfo@@@Z
; long __cdecl GetOleError(class CException & __ptr64)
?GetOleError@@YAJAEAVCException@@@Z
; public: unsigned long __cdecl CWebServer::GetPhysicalPath(unsigned short const * __ptr64,unsigned short * __ptr64,unsigned long,unsigned long) __ptr64
?GetPhysicalPath@CWebServer@@QEAAKPEBGPEAGKK@Z
; public: int __cdecl CEmptyPropertyList::GetPropInfo(class CDbColId const & __ptr64,unsigned short const * __ptr64 * __ptr64,unsigned short * __ptr64,unsigned int * __ptr64) __ptr64
?GetPropInfo@CEmptyPropertyList@@QEAAHAEBVCDbColId@@PEAPEBGPEAGPEAI@Z
; public: int __cdecl CEmptyPropertyList::GetPropInfo(unsigned short const * __ptr64,class CDbColId * __ptr64 * __ptr64,unsigned short * __ptr64,unsigned int * __ptr64) __ptr64
?GetPropInfo@CEmptyPropertyList@@QEAAHPEBGPEAPEAVCDbColId@@PEAGPEAI@Z
; public: virtual long __cdecl CEmptyPropertyList::GetPropInfoFromId(struct tagDBID const * __ptr64,unsigned short * __ptr64 * __ptr64,unsigned short * __ptr64,unsigned int * __ptr64) __ptr64
?GetPropInfoFromId@CEmptyPropertyList@@UEAAJPEBUtagDBID@@PEAPEAGPEAGPEAI@Z
; public: virtual long __cdecl CEmptyPropertyList::GetPropInfoFromName(unsigned short const * __ptr64,struct tagDBID * __ptr64 * __ptr64,unsigned short * __ptr64,unsigned int * __ptr64) __ptr64
?GetPropInfoFromName@CEmptyPropertyList@@UEAAJPEBGPEAPEAUtagDBID@@PEAGPEAI@Z
; public: static unsigned short __cdecl CEmptyPropertyList::GetPropType(unsigned int)
?GetPropType@CEmptyPropertyList@@SAGI@Z
; public: static unsigned int __cdecl CEmptyPropertyList::GetPropTypeCount(void)
?GetPropTypeCount@CEmptyPropertyList@@SAIXZ
; public: static unsigned short const * __ptr64 __cdecl CEmptyPropertyList::GetPropTypeName(unsigned int)
?GetPropTypeName@CEmptyPropertyList@@SAPEBGI@Z
; public: virtual long __cdecl CDbProperties::GetProperties(unsigned long,struct tagDBPROPIDSET const * __ptr64 const,unsigned long * __ptr64,struct tagDBPROPSET * __ptr64 * __ptr64) __ptr64
?GetProperties@CDbProperties@@UEAAJKQEBUtagDBPROPIDSET@@PEAKPEAPEAUtagDBPROPSET@@@Z
; public: void __cdecl CGetDbProps::GetProperties(struct IDBProperties * __ptr64,unsigned long) __ptr64
?GetProperties@CGetDbProps@@QEAAXPEAUIDBProperties@@K@Z
; public: virtual long __cdecl CDbProperties::GetPropertyInfo(unsigned long,struct tagDBPROPIDSET const * __ptr64 const,unsigned long * __ptr64,struct tagDBPROPINFOSET * __ptr64 * __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
?GetPropertyInfo@CDbProperties@@UEAAJKQEBUtagDBPROPIDSET@@PEAKPEAPEAUtagDBPROPINFOSET@@PEAPEAG@Z
; public: float __cdecl CAllocStorageVariant::GetR4(unsigned int)const  __ptr64
?GetR4@CAllocStorageVariant@@QEBAMI@Z
; public: double __cdecl CAllocStorageVariant::GetR8(unsigned int)const  __ptr64
?GetR8@CAllocStorageVariant@@QEBANI@Z
; public: int __cdecl CMachineAdmin::GetSZParam(unsigned short const * __ptr64,unsigned short * __ptr64,unsigned long) __ptr64
?GetSZParam@CMachineAdmin@@QEAAHPEBGPEAGK@Z
; long __cdecl GetScodeError(class CException & __ptr64)
?GetScodeError@@YAJAEAVCException@@@Z
; int __cdecl GetSecret(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64,unsigned long * __ptr64)
?GetSecret@@YAHPEBG0PEAPEAGPEAK@Z
; public: unsigned long __cdecl CDriveInfo::GetSectorSize(void) __ptr64
?GetSectorSize@CDriveInfo@@QEAAKXZ
; public: void __cdecl CCatState::GetSortProp(unsigned int,unsigned short const * __ptr64 * __ptr64,enum SORTDIR * __ptr64)const  __ptr64
?GetSortProp@CCatState@@QEBAXIPEAPEBGPEAW4SORTDIR@@@Z
; void __cdecl GetStackTrace(char * __ptr64,unsigned long)
?GetStackTrace@@YAXPEADK@Z
; public: unsigned char const * __ptr64 __cdecl CGenericCiProxy::GetStartupData(struct _GUID & __ptr64,unsigned long & __ptr64) __ptr64
?GetStartupData@CGenericCiProxy@@QEAAPEBEAEAU_GUID@@AEAK@Z
; public: class PStorage & __ptr64 __cdecl CPropStoreManager::GetStorage(unsigned long) __ptr64
?GetStorage@CPropStoreManager@@QEAAAEAVPStorage@@K@Z
; public: unsigned short * __ptr64 __cdecl CKey::GetStr(void)const  __ptr64
?GetStr@CKey@@QEBAPEAGXZ
; public: unsigned short * __ptr64 __cdecl CKeyBuf::GetStr(void)const  __ptr64
?GetStr@CKeyBuf@@QEBAPEAGXZ
; public: virtual char * __ptr64 __cdecl CMemDeSerStream::GetString(void) __ptr64
?GetString@CMemDeSerStream@@UEAAPEADXZ
; class CDbRestriction * __ptr64 __cdecl GetStringDbRestriction(unsigned short const * __ptr64,unsigned long,struct IColumnMapper * __ptr64,unsigned long)
?GetStringDbRestriction@@YAPEAVCDbRestriction@@PEBGKPEAUIColumnMapper@@K@Z
; void __cdecl GetStringFromLCID(unsigned long,unsigned short * __ptr64)
?GetStringFromLCID@@YAXKPEAG@Z
; public: unsigned long __cdecl CPropStoreManager::GetTotalSizeInKB(void) __ptr64
?GetTotalSizeInKB@CPropStoreManager@@QEAAKXZ
; public: unsigned long __cdecl CPropertyStore::GetTotalSizeInKB(void) __ptr64
?GetTotalSizeInKB@CPropertyStore@@QEAAKXZ
; public: virtual unsigned long __cdecl CMemDeSerStream::GetULong(void) __ptr64
?GetULong@CMemDeSerStream@@UEAAKXZ
; public: virtual unsigned short __cdecl CMemDeSerStream::GetUShort(void) __ptr64
?GetUShort@CMemDeSerStream@@UEAAGXZ
; public: void __cdecl CIndexTable::GetUserHdrInfo(unsigned int & __ptr64,int & __ptr64) __ptr64
?GetUserHdrInfo@CIndexTable@@QEAAXAEAIAEAH@Z
; public: unsigned long __cdecl CMetaDataMgr::GetVPathAccess(unsigned short const * __ptr64) __ptr64
?GetVPathAccess@CMetaDataMgr@@QEAAKPEBG@Z
; public: unsigned long __cdecl CMetaDataMgr::GetVPathAuthorization(unsigned short const * __ptr64) __ptr64
?GetVPathAuthorization@CMetaDataMgr@@QEAAKPEBG@Z
; public: unsigned long __cdecl CMetaDataMgr::GetVPathSSLAccess(unsigned short const * __ptr64) __ptr64
?GetVPathSSLAccess@CMetaDataMgr@@QEAAKPEBG@Z
; public: unsigned short const * __ptr64 __cdecl CDriveInfo::GetVolumeName(int) __ptr64
?GetVolumeName@CDriveInfo@@QEAAPEBGH@Z
; public: virtual void __cdecl CMemDeSerStream::GetWChar(unsigned short * __ptr64,unsigned long) __ptr64
?GetWChar@CMemDeSerStream@@UEAAXPEAGK@Z
; public: virtual unsigned short * __ptr64 __cdecl CMemDeSerStream::GetWString(void) __ptr64
?GetWString@CMemDeSerStream@@UEAAPEAGXZ
; public: long __cdecl CDbCmdTreeNode::GetWeight(void)const  __ptr64
?GetWeight@CDbCmdTreeNode@@QEBAJXZ
; public: void __cdecl CDynStream::Grow(class PStorage & __ptr64,unsigned long) __ptr64
?Grow@CDynStream@@QEAAXAEAVPStorage@@K@Z
; private: void __cdecl CVirtualString::GrowBuffer(unsigned long) __ptr64
?GrowBuffer@CVirtualString@@AEAAXK@Z
; void __cdecl HTMLEscapeW(unsigned short const * __ptr64,class CVirtualString & __ptr64,unsigned long)
?HTMLEscapeW@@YAXPEBGAEAVCVirtualString@@K@Z
; private: void __cdecl CImpersonateClient::Impersonate(void) __ptr64
?Impersonate@CImpersonateClient@@AEAAXXZ
; public: void __cdecl CFileMapView::Init(void) __ptr64
?Init@CFileMapView@@QEAAXXZ
; public: void __cdecl CMmStreamConsecBuf::Init(class PMmStream * __ptr64) __ptr64
?Init@CMmStreamConsecBuf@@QEAAXPEAVPMmStream@@@Z
; public: int __cdecl CPidLookupTable::Init(class PRcovStorageObj * __ptr64) __ptr64
?Init@CPidLookupTable@@QEAAHPEAVPRcovStorageObj@@@Z
; public: void __cdecl CRcovStorageHdr::Init(unsigned long) __ptr64
?Init@CRcovStorageHdr@@QEAAXK@Z
; public: void __cdecl CRegChangeEvent::Init(void) __ptr64
?Init@CRegChangeEvent@@QEAAXXZ
; public: int __cdecl CSdidLookupTable::Init(class CiStorage * __ptr64) __ptr64
?Init@CSdidLookupTable@@QEAAHPEAVCiStorage@@@Z
; public: virtual void __cdecl CPropertyList::InitIterator(void) __ptr64
?InitIterator@CPropertyList@@UEAAXXZ
; public: void __cdecl CImpersonationTokenCache::Initialize(unsigned short const * __ptr64,int,int,int,unsigned long,unsigned long,unsigned long) __ptr64
?Initialize@CImpersonationTokenCache@@QEAAXPEBGHHHKKK@Z
; public: void __cdecl CDynStream::InitializeForRead(void) __ptr64
?InitializeForRead@CDynStream@@QEAAXXZ
; public: void __cdecl CDynStream::InitializeForWrite(unsigned long) __ptr64
?InitializeForWrite@CDynStream@@QEAAXK@Z
; protected: void __cdecl CDbCmdTreeNode::InsertChild(class CDbCmdTreeNode * __ptr64) __ptr64
?InsertChild@CDbCmdTreeNode@@IEAAXPEAV1@@Z
; public: int __cdecl CMachineAdmin::IsCIEnabled(void) __ptr64
?IsCIEnabled@CMachineAdmin@@QEAAHXZ
; public: int __cdecl CMachineAdmin::IsCIPaused(void) __ptr64
?IsCIPaused@CMachineAdmin@@QEAAHXZ
; public: int __cdecl CMachineAdmin::IsCIStarted(void) __ptr64
?IsCIStarted@CMachineAdmin@@QEAAHXZ
; public: int __cdecl CMachineAdmin::IsCIStopped(void) __ptr64
?IsCIStopped@CMachineAdmin@@QEAAHXZ
; public: int __cdecl CCatalogAdmin::IsCatalogInactive(void) __ptr64
?IsCatalogInactive@CCatalogAdmin@@QEAAHXZ
; int __cdecl IsDirectoryWritable(unsigned short const * __ptr64)
?IsDirectoryWritable@@YAHPEBG@Z
; public: static int __cdecl CMetaDataMgr::IsIISAdminUp(int & __ptr64)
?IsIISAdminUp@CMetaDataMgr@@SAHAEAH@Z
; public: static int __cdecl CImpersonateSystem::IsImpersonated(void)
?IsImpersonated@CImpersonateSystem@@SAHXZ
; public: int __cdecl CRestriction::IsLeaf(void)const  __ptr64
?IsLeaf@CRestriction@@QEBAHXZ
; int __cdecl IsNullPointerVariant(struct tagPROPVARIANT * __ptr64)
?IsNullPointerVariant@@YAHPEAUtagPROPVARIANT@@@Z
; public: int __cdecl CCatalogAdmin::IsPaused(void) __ptr64
?IsPaused@CCatalogAdmin@@QEAAHXZ
; public: static int __cdecl CImpersonateSystem::IsRunningAsSystem(void)
?IsRunningAsSystem@CImpersonateSystem@@SAHXZ
; public: int __cdecl CDriveInfo::IsSameDrive(unsigned short const * __ptr64) __ptr64
?IsSameDrive@CDriveInfo@@QEAAHPEBG@Z
; long __cdecl IsScopeValid(unsigned short const * __ptr64,unsigned int,int)
?IsScopeValid@@YAJPEBGIH@Z
; public: int __cdecl CCatalogAdmin::IsStarted(void) __ptr64
?IsStarted@CCatalogAdmin@@QEAAHXZ
; public: int __cdecl CCatalogAdmin::IsStopped(void) __ptr64
?IsStopped@CCatalogAdmin@@QEAAHXZ
; public: int __cdecl CAllocStorageVariant::IsValid(void)const  __ptr64
?IsValid@CAllocStorageVariant@@QEBAHXZ
; public: int __cdecl CNodeRestriction::IsValid(void)const  __ptr64
?IsValid@CNodeRestriction@@QEBAHXZ
; public: int __cdecl COccRestriction::IsValid(void)const  __ptr64
?IsValid@COccRestriction@@QEBAHXZ
; public: int __cdecl CRestriction::IsValid(void)const  __ptr64
?IsValid@CRestriction@@QEBAHXZ
; public: int __cdecl CFilterDaemon::IsWaitingForDocument(void) __ptr64
?IsWaitingForDocument@CFilterDaemon@@QEAAHXZ
; public: int __cdecl CDriveInfo::IsWriteProtected(void) __ptr64
?IsWriteProtected@CDriveInfo@@QEAAHXZ
; public: void __cdecl CLocalGlobalPropertyList::Load(unsigned short const * __ptr64 const) __ptr64
?Load@CLocalGlobalPropertyList@@QEAAXQEBG@Z
; unsigned long __cdecl LocaleToCodepage(unsigned long)
?LocaleToCodepage@@YAKK@Z
; private: unsigned long __cdecl CPropertyStore::LokNewWorkId(unsigned long,int,int) __ptr64
?LokNewWorkId@CPropertyStore@@AEAAKKHH@Z
; public: int __cdecl CCatStateInfo::LokUpdate(void) __ptr64
?LokUpdate@CCatStateInfo@@QEAAHXZ
; public: void __cdecl CPropStoreManager::LongInit(int & __ptr64,unsigned long & __ptr64,void (__cdecl*)(unsigned long,int,void const * __ptr64),void const * __ptr64) __ptr64
?LongInit@CPropStoreManager@@QEAAXAEAHAEAKP6AXKHPEBX@Z2@Z
; private: unsigned int __cdecl CPropStoreInfo::Lookup(unsigned long) __ptr64
?Lookup@CPropStoreInfo@@AEAAIK@Z
; public: unsigned long __cdecl CSdidLookupTable::LookupSDID(void * __ptr64,unsigned long) __ptr64
?LookupSDID@CSdidLookupTable@@QEAAKPEAXK@Z
; public: void __cdecl CPhysStorage::MakeBackupCopy(class CPhysStorage & __ptr64,class PSaveProgressTracker & __ptr64) __ptr64
?MakeBackupCopy@CPhysStorage@@QEAAXAEAV1@AEAVPSaveProgressTracker@@@Z
; public: void __cdecl CPidLookupTable::MakeBackupCopy(class PRcovStorageObj & __ptr64,class PSaveProgressTracker & __ptr64) __ptr64
?MakeBackupCopy@CPidLookupTable@@QEAAXAEAVPRcovStorageObj@@AEAVPSaveProgressTracker@@@Z
; public: void __cdecl CPropStoreManager::MakeBackupCopy(struct IProgressNotify * __ptr64,int & __ptr64,class CiStorage & __ptr64,struct ICiEnumWorkids * __ptr64,struct IEnumString * __ptr64 * __ptr64) __ptr64
?MakeBackupCopy@CPropStoreManager@@QEAAXPEAUIProgressNotify@@AEAHAEAVCiStorage@@PEAUICiEnumWorkids@@PEAPEAUIEnumString@@@Z
; long __cdecl MakeICommand(struct IUnknown * __ptr64 * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,struct IUnknown * __ptr64)
?MakeICommand@@YAJPEAPEAUIUnknown@@PEBG1PEAU1@@Z
; long __cdecl MakeISearch(struct ISearchQueryHits * __ptr64 * __ptr64,class CDbRestriction * __ptr64,unsigned short const * __ptr64)
?MakeISearch@@YAJPEAPEAUISearchQueryHits@@PEAVCDbRestriction@@PEBG@Z
; long __cdecl MakeLocalICommand(struct IUnknown * __ptr64 * __ptr64,struct ICiCDocStore * __ptr64,struct IUnknown * __ptr64)
?MakeLocalICommand@@YAJPEAPEAUIUnknown@@PEAUICiCDocStore@@PEAU1@@Z
; long __cdecl MakeMetadataICommand(struct IUnknown * __ptr64 * __ptr64,enum CiMetaData,unsigned short const * __ptr64,unsigned short const * __ptr64,struct IUnknown * __ptr64)
?MakeMetadataICommand@@YAJPEAPEAUIUnknown@@W4CiMetaData@@PEBG2PEAU1@@Z
; public: void __cdecl CFullPath::MakePath(unsigned short const * __ptr64) __ptr64
?MakePath@CFullPath@@QEAAXPEBG@Z
; public: void __cdecl CFullPath::MakePath(unsigned short const * __ptr64,unsigned int) __ptr64
?MakePath@CFullPath@@QEAAXPEBGI@Z
; private: void __cdecl CImpersonateSystem::MakePrivileged(void) __ptr64
?MakePrivileged@CImpersonateSystem@@AEAAXXZ
; public: void __cdecl CMmStreamConsecBuf::Map(unsigned long) __ptr64
?Map@CMmStreamConsecBuf@@QEAAXK@Z
; public: int __cdecl CDynStream::MarkDirty(void) __ptr64
?MarkDirty@CDynStream@@QEAAHXZ
; public: void __cdecl CBaseStorageVariant::Marshall(class PSerStream & __ptr64)const  __ptr64
?Marshall@CBaseStorageVariant@@QEBAXAEAVPSerStream@@@Z
; public: void __cdecl CContentRestriction::Marshall(class PSerStream & __ptr64)const  __ptr64
?Marshall@CContentRestriction@@QEBAXAEAVPSerStream@@@Z
; public: void __cdecl CDbCmdTreeNode::Marshall(class PSerStream & __ptr64)const  __ptr64
?Marshall@CDbCmdTreeNode@@QEBAXAEAVPSerStream@@@Z
; public: void __cdecl CFullPropSpec::Marshall(class PSerStream & __ptr64)const  __ptr64
?Marshall@CFullPropSpec@@QEBAXAEAVPSerStream@@@Z
; public: void __cdecl CNatLanguageRestriction::Marshall(class PSerStream & __ptr64)const  __ptr64
?Marshall@CNatLanguageRestriction@@QEBAXAEAVPSerStream@@@Z
; public: void __cdecl CNodeRestriction::Marshall(class PSerStream & __ptr64)const  __ptr64
?Marshall@CNodeRestriction@@QEBAXAEAVPSerStream@@@Z
; public: void __cdecl CNotRestriction::Marshall(class PSerStream & __ptr64)const  __ptr64
?Marshall@CNotRestriction@@QEBAXAEAVPSerStream@@@Z
; public: void __cdecl CPropNameArray::Marshall(class PSerStream & __ptr64)const  __ptr64
?Marshall@CPropNameArray@@QEBAXAEAVPSerStream@@@Z
; public: void __cdecl CPropertyRestriction::Marshall(class PSerStream & __ptr64)const  __ptr64
?Marshall@CPropertyRestriction@@QEBAXAEAVPSerStream@@@Z
; public: void __cdecl CRestriction::Marshall(class PSerStream & __ptr64)const  __ptr64
?Marshall@CRestriction@@QEBAXAEAVPSerStream@@@Z
; public: void __cdecl CVectorRestriction::Marshall(class PSerStream & __ptr64)const  __ptr64
?Marshall@CVectorRestriction@@QEBAXAEAVPSerStream@@@Z
; public: int __cdecl CBufferCache::MinPageInUse(unsigned long & __ptr64) __ptr64
?MinPageInUse@CBufferCache@@QEAAHAEAK@Z
; public: int __cdecl CPhysStorage::MinPageInUse(unsigned long & __ptr64) __ptr64
?MinPageInUse@CPhysStorage@@QEAAHAEAK@Z
; unsigned long __cdecl MultiByteToXArrayWideChar(unsigned char const * __ptr64,unsigned long,unsigned int,class XArray<unsigned short> & __ptr64)
?MultiByteToXArrayWideChar@@YAKPEBEKIAEAV?$XArray@G@@@Z
; unsigned __int64 __cdecl My_wcstoui64(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64,int)
?My_wcstoui64@@YA_KPEBGPEAPEAGH@Z
; public: unsigned long __cdecl CPidRemapper::NameToReal(class CFullPropSpec const * __ptr64) __ptr64
?NameToReal@CPidRemapper@@QEAAKPEBVCFullPropSpec@@@Z
; public: static struct IStemmer * __ptr64 __cdecl CCiOle::NewStemmer(struct _GUID const & __ptr64)
?NewStemmer@CCiOle@@SAPEAUIStemmer@@AEBU_GUID@@@Z
; public: static struct IWordBreaker * __ptr64 __cdecl CCiOle::NewWordBreaker(struct _GUID const & __ptr64)
?NewWordBreaker@CCiOle@@SAPEAUIWordBreaker@@AEBU_GUID@@@Z
; public: int __cdecl CCatalogEnum::Next(void) __ptr64
?Next@CCatalogEnum@@QEAAHXZ
; public: virtual long __cdecl CEnumString::Next(unsigned long,unsigned short * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64
?Next@CEnumString@@UEAAJKPEAPEAGPEAK@Z
; public: virtual long __cdecl CEnumWorkid::Next(unsigned long,unsigned long * __ptr64,unsigned long * __ptr64) __ptr64
?Next@CEnumWorkid@@UEAAJKPEAK0@Z
; public: virtual class CPropEntry const * __ptr64 __cdecl CPropertyList::Next(void) __ptr64
?Next@CPropertyList@@UEAAPEBVCPropEntry@@XZ
; public: int __cdecl CScopeEnum::Next(void) __ptr64
?Next@CScopeEnum@@QEAAHXZ
; public: unsigned long __cdecl CPropertyStoreWids::NextWorkId(void) __ptr64
?NextWorkId@CPropertyStoreWids@@QEAAKXZ
; public: unsigned int __cdecl CCatState::NumberOfColumns(void)const  __ptr64
?NumberOfColumns@CCatState@@QEBAIXZ
; public: unsigned int __cdecl CCatState::NumberOfSortProps(void)const  __ptr64
?NumberOfSortProps@CCatState@@QEBAIXZ
; public: void __cdecl CMmStream::Open(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long,int) __ptr64
?Open@CMmStream@@QEAAXPEBGKKKKH@Z
; public: int __cdecl COLEPropManager::Open(class CFunnyPath const & __ptr64) __ptr64
?Open@COLEPropManager@@QEAAHAEBVCFunnyPath@@@Z
; public: void __cdecl CMmStream::OpenExclusive(unsigned short * __ptr64,int) __ptr64
?OpenExclusive@CMmStream@@QEAAXPEAGH@Z
; struct _iobuf * __ptr64 __cdecl OpenFileFromPath(unsigned short const * __ptr64)
?OpenFileFromPath@@YAPEAU_iobuf@@PEBG@Z
; public: class CCompositePropRecord * __ptr64 __cdecl CPropStoreManager::OpenRecord(unsigned long,unsigned char * __ptr64) __ptr64
?OpenRecord@CPropStoreManager@@QEAAPEAVCCompositePropRecord@@KPEAE@Z
; public: class CCompositePropRecordForWrites * __ptr64 __cdecl CPropStoreManager::OpenRecordForWrites(unsigned long,unsigned char * __ptr64) __ptr64
?OpenRecordForWrites@CPropStoreManager@@QEAAPEAVCCompositePropRecordForWrites@@KPEAE@Z
; long __cdecl ParseCatalogURL(unsigned short const * __ptr64,class XPtrST<unsigned short> & __ptr64,class XPtrST<unsigned short> & __ptr64)
?ParseCatalogURL@@YAJPEBGAEAV?$XPtrST@G@@1@Z
; public: class CRestriction * __ptr64 __cdecl CParseCommandTree::ParseExpression(class CDbCmdTreeNode * __ptr64) __ptr64
?ParseExpression@CParseCommandTree@@QEAAPEAVCRestriction@@PEAVCDbCmdTreeNode@@@Z
; public: static void __cdecl CPropertyList::ParseOneLine(class CQueryScanner & __ptr64,int,class XPtr<class CPropEntry> & __ptr64)
?ParseOneLine@CPropertyList@@SAXAEAVCQueryScanner@@HAEAV?$XPtr@VCPropEntry@@@@@Z
; public: class CDbRestriction * __ptr64 __cdecl CQueryParser::ParseQueryPhrase(void) __ptr64
?ParseQueryPhrase@CQueryParser@@QEAAPEAVCDbRestriction@@XZ
; class CDbColumns * __ptr64 __cdecl ParseStringColumns(unsigned short const * __ptr64,struct IColumnMapper * __ptr64,unsigned long,class PVariableSet * __ptr64,class CDynArray<unsigned short> * __ptr64)
?ParseStringColumns@@YAPEAVCDbColumns@@PEBGPEAUIColumnMapper@@KPEAVPVariableSet@@PEAV?$CDynArray@G@@@Z
; public: int __cdecl CCatalogAdmin::Pause(void) __ptr64
?Pause@CCatalogAdmin@@QEAAHXZ
; public: int __cdecl CMachineAdmin::PauseCI(void) __ptr64
?PauseCI@CMachineAdmin@@QEAAHXZ
; public: virtual unsigned long __cdecl CMemDeSerStream::PeekULong(void) __ptr64
?PeekULong@CMemDeSerStream@@UEAAKXZ
; public: unsigned long __cdecl CPidMapper::PidToRealPid(unsigned long) __ptr64
?PidToRealPid@CPidMapper@@QEAAKK@Z
; public: unsigned long __cdecl CStandardPropMapper::PropertyToPropId(class CFullPropSpec const & __ptr64,int) __ptr64
?PropertyToPropId@CStandardPropMapper@@QEAAKAEBVCFullPropSpec@@H@Z
; public: virtual long __cdecl CFwPropertyMapper::PropertyToPropid(struct tagFULLPROPSPEC const * __ptr64,int,unsigned long * __ptr64) __ptr64
?PropertyToPropid@CFwPropertyMapper@@UEAAJPEBUtagFULLPROPSPEC@@HPEAK@Z
; public: void __cdecl CValueNormalizer::PutMaxValue(unsigned long,unsigned long & __ptr64,enum VARENUM) __ptr64
?PutMaxValue@CValueNormalizer@@QEAAXKAEAKW4VARENUM@@@Z
; public: void __cdecl CValueNormalizer::PutMinValue(unsigned long,unsigned long & __ptr64,enum VARENUM) __ptr64
?PutMinValue@CValueNormalizer@@QEAAXKAEAKW4VARENUM@@@Z
; public: void __cdecl CValueNormalizer::PutValue(unsigned long,unsigned long & __ptr64,class CStorageVariant const & __ptr64) __ptr64
?PutValue@CValueNormalizer@@QEAAXKAEAKAEBVCStorageVariant@@@Z
; void __cdecl PutWString(class PSerStream & __ptr64,unsigned short const * __ptr64)
?PutWString@@YAXAEAVPSerStream@@PEBG@Z
; private: class CDbRestriction * __ptr64 __cdecl CQueryParser::Query(class CDbNodeRestriction * __ptr64) __ptr64
?Query@CQueryParser@@AEAAPEAVCDbRestriction@@PEAVCDbNodeRestriction@@@Z
; public: class CCatalogAdmin * __ptr64 __cdecl CCatalogEnum::QueryCatalogAdmin(void) __ptr64
?QueryCatalogAdmin@CCatalogEnum@@QEAAPEAVCCatalogAdmin@@XZ
; public: class CCatalogAdmin * __ptr64 __cdecl CMachineAdmin::QueryCatalogAdmin(unsigned short const * __ptr64) __ptr64
?QueryCatalogAdmin@CMachineAdmin@@QEAAPEAVCCatalogAdmin@@PEBG@Z
; public: class CCatalogEnum * __ptr64 __cdecl CMachineAdmin::QueryCatalogEnum(void) __ptr64
?QueryCatalogEnum@CMachineAdmin@@QEAAPEAVCCatalogEnum@@XZ
; public: virtual long __cdecl CDbProperties::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CDbProperties@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CEmptyPropertyList::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CEmptyPropertyList@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CEnumString::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CEnumString@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CEnumWorkid::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CEnumWorkid@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CFwPropertyMapper::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CFwPropertyMapper@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CQueryUnknown::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CQueryUnknown@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: class PRcovStorageObj * __ptr64 __cdecl CiStorage::QueryPidLookupTable(unsigned long) __ptr64
?QueryPidLookupTable@CiStorage@@QEAAPEAVPRcovStorageObj@@K@Z
; public: class CScopeAdmin * __ptr64 __cdecl CCatalogAdmin::QueryScopeAdmin(unsigned short const * __ptr64) __ptr64
?QueryScopeAdmin@CCatalogAdmin@@QEAAPEAVCScopeAdmin@@PEBG@Z
; public: class CScopeAdmin * __ptr64 __cdecl CScopeEnum::QueryScopeAdmin(void) __ptr64
?QueryScopeAdmin@CScopeEnum@@QEAAPEAVCScopeAdmin@@XZ
; public: class CScopeEnum * __ptr64 __cdecl CCatalogAdmin::QueryScopeEnum(void) __ptr64
?QueryScopeEnum@CCatalogAdmin@@QEAAPEAVCScopeEnum@@XZ
; public: class PRcovStorageObj * __ptr64 __cdecl CiStorage::QueryScopeList(unsigned long) __ptr64
?QueryScopeList@CiStorage@@QEAAPEAVPRcovStorageObj@@K@Z
; public: class PRcovStorageObj * __ptr64 __cdecl CiStorage::QuerySdidLookupTable(unsigned long) __ptr64
?QuerySdidLookupTable@CiStorage@@QEAAPEAVPRcovStorageObj@@K@Z
; public: class PRcovStorageObj * __ptr64 __cdecl CiStorage::QueryVirtualScopeList(unsigned long) __ptr64
?QueryVirtualScopeList@CiStorage@@QEAAPEAVPRcovStorageObj@@K@Z
; public: void __cdecl CPidRemapper::ReBuild(class CPidMapper const & __ptr64) __ptr64
?ReBuild@CPidRemapper@@QEAAXAEBVCPidMapper@@@Z
; public: void __cdecl CQueryUnknown::ReInit(unsigned long,class CRowset * __ptr64 * __ptr64) __ptr64
?ReInit@CQueryUnknown@@QEAAXKPEAPEAVCRowset@@@Z
; public: void __cdecl CImpersonationTokenCache::ReInitializeIISScopes(void) __ptr64
?ReInitializeIISScopes@CImpersonationTokenCache@@QEAAXXZ
; private: virtual void __cdecl CPhysIndex::ReOpenStream(void) __ptr64
?ReOpenStream@CPhysIndex@@EEAAXXZ
; public: unsigned long __cdecl CDynStream::Read(void * __ptr64,unsigned long) __ptr64
?Read@CDynStream@@QEAAKPEAXK@Z
; public: unsigned long __cdecl CRcovStrmTrans::Read(void * __ptr64,unsigned long) __ptr64
?Read@CRcovStrmTrans@@QEAAKPEAXK@Z
; public: unsigned long __cdecl CRegAccess::Read(unsigned short const * __ptr64,unsigned long) __ptr64
?Read@CRegAccess@@QEAAKPEBGK@Z
; public: unsigned short * __ptr64 __cdecl CRegAccess::Read(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?Read@CRegAccess@@QEAAPEAGPEBG0@Z
; public: int __cdecl CPropStoreManager::ReadPrimaryProperty(unsigned long,unsigned long,struct tagPROPVARIANT & __ptr64) __ptr64
?ReadPrimaryProperty@CPropStoreManager@@QEAAHKKAEAUtagPROPVARIANT@@@Z
; public: int __cdecl COLEPropManager::ReadProperty(class CFullPropSpec const & __ptr64,struct tagPROPVARIANT & __ptr64) __ptr64
?ReadProperty@COLEPropManager@@QEAAHAEBVCFullPropSpec@@AEAUtagPROPVARIANT@@@Z
; public: int __cdecl CPropStoreManager::ReadProperty(class CCompositePropRecord & __ptr64,unsigned long,struct tagPROPVARIANT & __ptr64) __ptr64
?ReadProperty@CPropStoreManager@@QEAAHAEAVCCompositePropRecord@@KAEAUtagPROPVARIANT@@@Z
; public: int __cdecl CPropStoreManager::ReadProperty(class CCompositePropRecord & __ptr64,unsigned long,struct tagPROPVARIANT & __ptr64,unsigned char * __ptr64,unsigned int * __ptr64) __ptr64
?ReadProperty@CPropStoreManager@@QEAAHAEAVCCompositePropRecord@@KAEAUtagPROPVARIANT@@PEAEPEAI@Z
; public: int __cdecl CPropStoreManager::ReadProperty(class CCompositePropRecord & __ptr64,unsigned long,struct tagPROPVARIANT * __ptr64,unsigned int * __ptr64) __ptr64
?ReadProperty@CPropStoreManager@@QEAAHAEAVCCompositePropRecord@@KPEAUtagPROPVARIANT@@PEAI@Z
; public: int __cdecl CPropStoreManager::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT & __ptr64) __ptr64
?ReadProperty@CPropStoreManager@@QEAAHKKAEAUtagPROPVARIANT@@@Z
; public: int __cdecl CPropStoreManager::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT & __ptr64,unsigned char * __ptr64,unsigned int * __ptr64) __ptr64
?ReadProperty@CPropStoreManager@@QEAAHKKAEAUtagPROPVARIANT@@PEAEPEAI@Z
; public: int __cdecl CPropStoreManager::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT * __ptr64,unsigned int * __ptr64) __ptr64
?ReadProperty@CPropStoreManager@@QEAAHKKPEAUtagPROPVARIANT@@PEAI@Z
; public: int __cdecl CPropertyStore::ReadProperty(class CPropRecordNoLock & __ptr64,unsigned long,struct tagPROPVARIANT * __ptr64,unsigned int * __ptr64) __ptr64
?ReadProperty@CPropertyStore@@QEAAHAEAVCPropRecordNoLock@@KPEAUtagPROPVARIANT@@PEAI@Z
; public: int __cdecl CPropertyStore::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT & __ptr64) __ptr64
?ReadProperty@CPropertyStore@@QEAAHKKAEAUtagPROPVARIANT@@@Z
; public: unsigned char __cdecl CDFA::Recognize(unsigned short const * __ptr64) __ptr64
?Recognize@CDFA@@QEAAEPEBG@Z
; public: void __cdecl CCiRegParams::Refresh(struct ICiAdminParams * __ptr64,int) __ptr64
?Refresh@CCiRegParams@@QEAAXPEAUICiAdminParams@@H@Z
; public: void __cdecl CDefColumnRegEntry::Refresh(int) __ptr64
?Refresh@CDefColumnRegEntry@@QEAAXH@Z
; public: void __cdecl CWorkQueue::RefreshParams(unsigned long,unsigned long) __ptr64
?RefreshParams@CWorkQueue@@QEAAXKK@Z
; public: virtual unsigned long __cdecl CDbProperties::Release(void) __ptr64
?Release@CDbProperties@@UEAAKXZ
; public: virtual unsigned long __cdecl CEmptyPropertyList::Release(void) __ptr64
?Release@CEmptyPropertyList@@UEAAKXZ
; public: virtual unsigned long __cdecl CEnumString::Release(void) __ptr64
?Release@CEnumString@@UEAAKXZ
; public: virtual unsigned long __cdecl CEnumWorkid::Release(void) __ptr64
?Release@CEnumWorkid@@UEAAKXZ
; public: virtual unsigned long __cdecl CFwPropertyMapper::Release(void) __ptr64
?Release@CFwPropertyMapper@@UEAAKXZ
; public: void __cdecl CImpersonateRemoteAccess::Release(void) __ptr64
?Release@CImpersonateRemoteAccess@@QEAAXXZ
; public: virtual unsigned long __cdecl CQueryUnknown::Release(void) __ptr64
?Release@CQueryUnknown@@UEAAKXZ
; public: void __cdecl CWorkQueue::Release(class CWorkThread * __ptr64) __ptr64
?Release@CWorkQueue@@QEAAXPEAVCWorkThread@@@Z
; private: void __cdecl CPropertyStore::ReleaseRead(class CReadWriteLockRecord & __ptr64) __ptr64
?ReleaseRead@CPropertyStore@@AEAAXAEAVCReadWriteLockRecord@@@Z
; public: void __cdecl CWorkQueue::ReleaseWorkThreads(void) __ptr64
?ReleaseWorkThreads@CWorkQueue@@QEAAXXZ
; public: void __cdecl CColumns::Remove(unsigned int) __ptr64
?Remove@CColumns@@QEAAXI@Z
; public: void __cdecl CDbSortSet::Remove(unsigned int) __ptr64
?Remove@CDbSortSet@@QEAAXI@Z
; public: void __cdecl CSort::Remove(unsigned int) __ptr64
?Remove@CSort@@QEAAXI@Z
; private: void __cdecl CWorkQueue::Remove(class CWorkThread & __ptr64) __ptr64
?Remove@CWorkQueue@@AEAAXAEAVCWorkThread@@@Z
; public: void __cdecl CWorkQueue::Remove(class PWorkItem * __ptr64) __ptr64
?Remove@CWorkQueue@@QEAAXPEAVPWorkItem@@@Z
; public: void __cdecl CMachineAdmin::RemoveCatalog(unsigned short const * __ptr64,int) __ptr64
?RemoveCatalog@CMachineAdmin@@QEAAXPEBGH@Z
; public: void __cdecl CMachineAdmin::RemoveCatalogFiles(unsigned short const * __ptr64) __ptr64
?RemoveCatalogFiles@CMachineAdmin@@QEAAXPEBG@Z
; public: class CRestriction * __ptr64 __cdecl CNodeRestriction::RemoveChild(unsigned int) __ptr64
?RemoveChild@CNodeRestriction@@QEAAPEAVCRestriction@@I@Z
; protected: class CDbCmdTreeNode * __ptr64 __cdecl CDbCmdTreeNode::RemoveFirstChild(void) __ptr64
?RemoveFirstChild@CDbCmdTreeNode@@IEAAPEAV1@XZ
; public: void __cdecl CCatalogAdmin::RemoveScope(unsigned short const * __ptr64) __ptr64
?RemoveScope@CCatalogAdmin@@QEAAXPEBG@Z
; public: void __cdecl CPhysStorage::Reopen(int) __ptr64
?Reopen@CPhysStorage@@QEAAXH@Z
; public: void __cdecl CEventLog::ReportEventW(class CEventItem & __ptr64) __ptr64
?ReportEventW@CEventLog@@QEAAXAEAVCEventItem@@@Z
; public: void __cdecl CFwEventItem::ReportEventW(struct ICiCAdviseStatus & __ptr64) __ptr64
?ReportEventW@CFwEventItem@@QEAAXAEAUICiCAdviseStatus@@@Z
; public: int __cdecl CPhysStorage::RequiresFlush(unsigned long) __ptr64
?RequiresFlush@CPhysStorage@@QEAAHK@Z
; public: void __cdecl CRegChangeEvent::Reset(void) __ptr64
?Reset@CRegChangeEvent@@QEAAXXZ
; public: void __cdecl CQueryScanner::ResetBuffer(unsigned short const * __ptr64) __ptr64
?ResetBuffer@CQueryScanner@@QEAAXPEBG@Z
; protected: void __cdecl CAllocStorageVariant::ResetType(class PMemoryAllocator & __ptr64) __ptr64
?ResetType@CAllocStorageVariant@@IEAAXAEAVPMemoryAllocator@@@Z
; public: void __cdecl CProcess::Resume(void) __ptr64
?Resume@CProcess@@QEAAXXZ
; public: void __cdecl CPhysStorage::ReturnBuffer(unsigned long,int,int) __ptr64
?ReturnBuffer@CPhysStorage@@QEAAXKHH@Z
; public: void __cdecl CMmStreamConsecBuf::Rewind(void) __ptr64
?Rewind@CMmStreamConsecBuf@@QEAAXXZ
; unsigned long __cdecl SaComputeSize(unsigned short,struct tagSAFEARRAY & __ptr64)
?SaComputeSize@@YAKGAEAUtagSAFEARRAY@@@Z
; int __cdecl SaCreateAndCopy(class PMemoryAllocator & __ptr64,struct tagSAFEARRAY * __ptr64,struct tagSAFEARRAY * __ptr64 * __ptr64)
?SaCreateAndCopy@@YAHAEAVPMemoryAllocator@@PEAUtagSAFEARRAY@@PEAPEAU2@@Z
; int __cdecl SaCreateData(class PVarAllocator & __ptr64,unsigned short,struct tagSAFEARRAY & __ptr64,struct tagSAFEARRAY & __ptr64,int)
?SaCreateData@@YAHAEAVPVarAllocator@@GAEAUtagSAFEARRAY@@1H@Z
; public: int __cdecl CRcovStrmTrans::Seek(unsigned long) __ptr64
?Seek@CRcovStrmTrans@@QEAAHK@Z
; public: void __cdecl CDbQueryResults::Serialize(class PSerStream & __ptr64)const  __ptr64
?Serialize@CDbQueryResults@@QEBAXAEAVPSerStream@@@Z
; public: void __cdecl CPidRemapper::Set(class XArray<unsigned long> & __ptr64) __ptr64
?Set@CPidRemapper@@QEAAXAEAV?$XArray@K@@@Z
; public: void __cdecl CScopeAdmin::SetAlias(unsigned short const * __ptr64) __ptr64
?SetAlias@CScopeAdmin@@QEAAXPEBG@Z
; public: void __cdecl CStorageVariant::SetBOOL(short,unsigned int) __ptr64
?SetBOOL@CStorageVariant@@QEAAXFI@Z
; public: void __cdecl CAllocStorageVariant::SetBSTR(unsigned short * __ptr64,class PMemoryAllocator & __ptr64) __ptr64
?SetBSTR@CAllocStorageVariant@@QEAAXPEAGAEAVPMemoryAllocator@@@Z
; public: void __cdecl CStorageVariant::SetBSTR(unsigned short * __ptr64,unsigned int) __ptr64
?SetBSTR@CStorageVariant@@QEAAXPEAGI@Z
; public: void __cdecl CPropStoreManager::SetBackupSize(unsigned long,unsigned long) __ptr64
?SetBackupSize@CPropStoreManager@@QEAAXKK@Z
; public: void __cdecl CCatState::SetCD(unsigned short const * __ptr64) __ptr64
?SetCD@CCatState@@QEAAXPEBG@Z
; public: void __cdecl CStorageVariant::SetCLSID(struct _GUID const * __ptr64) __ptr64
?SetCLSID@CStorageVariant@@QEAAXPEBU_GUID@@@Z
; public: void __cdecl CStorageVariant::SetCLSID(struct _GUID,unsigned int) __ptr64
?SetCLSID@CStorageVariant@@QEAAXU_GUID@@I@Z
; public: void __cdecl CStorageVariant::SetCY(union tagCY,unsigned int) __ptr64
?SetCY@CStorageVariant@@QEAAXTtagCY@@I@Z
; public: void __cdecl CCatState::SetCatalog(unsigned short const * __ptr64) __ptr64
?SetCatalog@CCatState@@QEAAXPEBG@Z
; public: void __cdecl CCatState::SetColumn(unsigned short const * __ptr64,unsigned int) __ptr64
?SetColumn@CCatState@@QEAAXPEBGI@Z
; private: void __cdecl CQueryParser::SetCurrentProperty(unsigned short const * __ptr64,enum PropertyType) __ptr64
?SetCurrentProperty@CQueryParser@@AEAAXPEBGW4PropertyType@@@Z
; public: void __cdecl CStorageVariant::SetDATE(double,unsigned int) __ptr64
?SetDATE@CStorageVariant@@QEAAXNI@Z
; public: void __cdecl CCatalogAdmin::SetDWORDParam(unsigned short const * __ptr64,unsigned long) __ptr64
?SetDWORDParam@CCatalogAdmin@@QEAAXPEBGK@Z
; public: void __cdecl CMachineAdmin::SetDWORDParam(unsigned short const * __ptr64,unsigned long) __ptr64
?SetDWORDParam@CMachineAdmin@@QEAAXPEBGK@Z
; public: void __cdecl CCatState::SetDefaultProperty(unsigned short const * __ptr64) __ptr64
?SetDefaultProperty@CCatState@@QEAAXPEBG@Z
; public: void __cdecl CScopeAdmin::SetExclude(int) __ptr64
?SetExclude@CScopeAdmin@@QEAAXH@Z
; public: void __cdecl CStorageVariant::SetFILETIME(struct _FILETIME,unsigned int) __ptr64
?SetFILETIME@CStorageVariant@@QEAAXU_FILETIME@@I@Z
; public: void __cdecl CStorageVariant::SetI2(short,unsigned int) __ptr64
?SetI2@CStorageVariant@@QEAAXFI@Z
; public: void __cdecl CStorageVariant::SetI4(long,unsigned int) __ptr64
?SetI4@CStorageVariant@@QEAAXJI@Z
; public: void __cdecl CStorageVariant::SetI8(union _LARGE_INTEGER,unsigned int) __ptr64
?SetI8@CStorageVariant@@QEAAXT_LARGE_INTEGER@@I@Z
; public: void __cdecl CStorageVariant::SetLPSTR(char const * __ptr64,unsigned int) __ptr64
?SetLPSTR@CStorageVariant@@QEAAXPEBDI@Z
; public: void __cdecl CStorageVariant::SetLPWSTR(unsigned short const * __ptr64,unsigned int) __ptr64
?SetLPWSTR@CStorageVariant@@QEAAXPEBGI@Z
; public: void __cdecl CCatState::SetLocale(unsigned short const * __ptr64) __ptr64
?SetLocale@CCatState@@QEAAXPEBG@Z
; public: void __cdecl CScopeAdmin::SetLogonInfo(unsigned short const * __ptr64,unsigned short const * __ptr64,class CCatalogAdmin & __ptr64) __ptr64
?SetLogonInfo@CScopeAdmin@@QEAAXPEBG0AEAVCCatalogAdmin@@@Z
; public: void __cdecl CPropStoreManager::SetMappedCacheSize(unsigned long,unsigned long) __ptr64
?SetMappedCacheSize@CPropStoreManager@@QEAAXKK@Z
; public: void __cdecl CCatState::SetNumberOfColumns(unsigned int) __ptr64
?SetNumberOfColumns@CCatState@@QEAAXI@Z
; public: void __cdecl CCatState::SetNumberOfSortProps(unsigned int) __ptr64
?SetNumberOfSortProps@CCatState@@QEAAXI@Z
; public: void __cdecl CScopeAdmin::SetPath(unsigned short const * __ptr64) __ptr64
?SetPath@CScopeAdmin@@QEAAXPEBG@Z
; public: void __cdecl CContentRestriction::SetPhrase(unsigned short const * __ptr64) __ptr64
?SetPhrase@CContentRestriction@@QEAAXPEBG@Z
; public: void __cdecl CNatLanguageRestriction::SetPhrase(unsigned short const * __ptr64) __ptr64
?SetPhrase@CNatLanguageRestriction@@QEAAXPEBG@Z
; public: void __cdecl CGenericCiProxy::SetPriority(unsigned long,unsigned long) __ptr64
?SetPriority@CGenericCiProxy@@QEAAXKK@Z
; public: virtual long __cdecl CDbProperties::SetProperties(unsigned long,struct tagDBPROPSET * __ptr64 const) __ptr64
?SetProperties@CDbProperties@@UEAAJKQEAUtagDBPROPSET@@@Z
; public: int __cdecl CDbColId::SetProperty(unsigned short const * __ptr64) __ptr64
?SetProperty@CDbColId@@QEAAHPEBG@Z
; public: int __cdecl CDbPropBaseRestriction::SetProperty(struct tagDBID const & __ptr64) __ptr64
?SetProperty@CDbPropBaseRestriction@@QEAAHAEBUtagDBID@@@Z
; public: int __cdecl CDbPropBaseRestriction::SetProperty(class CDbColumnNode const & __ptr64) __ptr64
?SetProperty@CDbPropBaseRestriction@@QEAAHAEBVCDbColumnNode@@@Z
; public: int __cdecl CFullPropSpec::SetProperty(unsigned short const * __ptr64) __ptr64
?SetProperty@CFullPropSpec@@QEAAHPEBG@Z
; public: void __cdecl CFullPropSpec::SetProperty(unsigned long) __ptr64
?SetProperty@CFullPropSpec@@QEAAXK@Z
; public: void __cdecl CStorageVariant::SetR4(float,unsigned int) __ptr64
?SetR4@CStorageVariant@@QEAAXMI@Z
; public: void __cdecl CStorageVariant::SetR8(double,unsigned int) __ptr64
?SetR8@CStorageVariant@@QEAAXNI@Z
; public: int __cdecl CDbSelectNode::SetRestriction(class CDbCmdTreeNode * __ptr64) __ptr64
?SetRestriction@CDbSelectNode@@QEAAHPEAVCDbCmdTreeNode@@@Z
; public: static void __cdecl CImpersonateSystem::SetRunningAsSystem(void)
?SetRunningAsSystem@CImpersonateSystem@@SAXXZ
; public: void __cdecl CMachineAdmin::SetSZParam(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
?SetSZParam@CMachineAdmin@@QEAAXPEBG0K@Z
; void __cdecl SetScopeProperties(struct ICommand * __ptr64,unsigned int,unsigned short const * __ptr64 const * __ptr64,unsigned long const * __ptr64,unsigned short const * __ptr64 const * __ptr64,unsigned short const * __ptr64 const * __ptr64)
?SetScopeProperties@@YAXPEAUICommand@@IPEBQEBGPEBK11@Z
; long __cdecl SetScopePropertiesNoThrow(struct ICommand * __ptr64,unsigned int,unsigned short const * __ptr64 const * __ptr64,unsigned long const * __ptr64,unsigned short const * __ptr64 const * __ptr64,unsigned short const * __ptr64 const * __ptr64)
?SetScopePropertiesNoThrow@@YAJPEAUICommand@@IPEBQEBGPEBK11@Z
; void __cdecl SetSecret(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long)
?SetSecret@@YAXPEBG00K@Z
; public: void __cdecl CCatState::SetSortProp(unsigned short const * __ptr64,enum SORTDIR,unsigned int) __ptr64
?SetSortProp@CCatState@@QEAAXPEBGW4SORTDIR@@I@Z
; public: void __cdecl CStorageVariant::SetUI1(unsigned char,unsigned int) __ptr64
?SetUI1@CStorageVariant@@QEAAXEI@Z
; public: void __cdecl CStorageVariant::SetUI2(unsigned short,unsigned int) __ptr64
?SetUI2@CStorageVariant@@QEAAXGI@Z
; public: void __cdecl CStorageVariant::SetUI4(unsigned long,unsigned int) __ptr64
?SetUI4@CStorageVariant@@QEAAXKI@Z
; public: void __cdecl CStorageVariant::SetUI8(union _ULARGE_INTEGER,unsigned int) __ptr64
?SetUI8@CStorageVariant@@QEAAXT_ULARGE_INTEGER@@I@Z
; public: void __cdecl CPropertyRestriction::SetValue(struct tagBLOB & __ptr64) __ptr64
?SetValue@CPropertyRestriction@@QEAAXAEAUtagBLOB@@@Z
; public: void __cdecl CPropertyRestriction::SetValue(unsigned short * __ptr64) __ptr64
?SetValue@CPropertyRestriction@@QEAAXPEAG@Z
; public: void __cdecl CPropertyRestriction::SetValue(struct _GUID * __ptr64) __ptr64
?SetValue@CPropertyRestriction@@QEAAXPEAU_GUID@@@Z
; public: void __cdecl CDbCmdTreeNode::SetWeight(long) __ptr64
?SetWeight@CDbCmdTreeNode@@QEAAXJ@Z
; public: void __cdecl CPropStoreManager::Setup(unsigned long,unsigned long,unsigned long,unsigned __int64,int,unsigned long) __ptr64
?Setup@CPropStoreManager@@QEAAXKKK_KHK@Z
; public: void __cdecl CDynStream::Shrink(class PStorage & __ptr64,unsigned long) __ptr64
?Shrink@CDynStream@@QEAAXAEAVPStorage@@K@Z
; public: unsigned long __cdecl CPhysStorage::ShrinkFromFront(unsigned long,unsigned long) __ptr64
?ShrinkFromFront@CPhysStorage@@QEAAKKK@Z
; public: void __cdecl CPhysStorage::ShrinkToFit(void) __ptr64
?ShrinkToFit@CPhysStorage@@QEAAXXZ
; public: static void __cdecl CCiOle::Shutdown(void)
?Shutdown@CCiOle@@SAXXZ
; public: void __cdecl CPropStoreManager::Shutdown(void) __ptr64
?Shutdown@CPropStoreManager@@QEAAXXZ
; public: void __cdecl CWorkQueue::Shutdown(void) __ptr64
?Shutdown@CWorkQueue@@QEAAXXZ
; public: unsigned long __cdecl CDbQueryResults::Size(void) __ptr64
?Size@CDbQueryResults@@QEAAKXZ
; public: virtual long __cdecl CEnumString::Skip(unsigned long) __ptr64
?Skip@CEnumString@@UEAAJK@Z
; public: virtual long __cdecl CEnumWorkid::Skip(unsigned long) __ptr64
?Skip@CEnumWorkid@@UEAAJK@Z
; public: virtual void __cdecl CMemDeSerStream::SkipBlob(unsigned long) __ptr64
?SkipBlob@CMemDeSerStream@@UEAAXK@Z
; public: virtual void __cdecl CMemDeSerStream::SkipByte(void) __ptr64
?SkipByte@CMemDeSerStream@@UEAAXXZ
; public: virtual void __cdecl CMemDeSerStream::SkipChar(unsigned long) __ptr64
?SkipChar@CMemDeSerStream@@UEAAXK@Z
; public: virtual void __cdecl CMemDeSerStream::SkipDouble(void) __ptr64
?SkipDouble@CMemDeSerStream@@UEAAXXZ
; public: virtual void __cdecl CMemDeSerStream::SkipFloat(void) __ptr64
?SkipFloat@CMemDeSerStream@@UEAAXXZ
; public: virtual void __cdecl CMemDeSerStream::SkipGUID(void) __ptr64
?SkipGUID@CMemDeSerStream@@UEAAXXZ
; public: virtual void __cdecl CMemDeSerStream::SkipLong(void) __ptr64
?SkipLong@CMemDeSerStream@@UEAAXXZ
; public: virtual void __cdecl CMemDeSerStream::SkipULong(void) __ptr64
?SkipULong@CMemDeSerStream@@UEAAXXZ
; public: virtual void __cdecl CMemDeSerStream::SkipUShort(void) __ptr64
?SkipUShort@CMemDeSerStream@@UEAAXXZ
; public: virtual void __cdecl CMemDeSerStream::SkipWChar(unsigned long) __ptr64
?SkipWChar@CMemDeSerStream@@UEAAXK@Z
; public: int __cdecl CCatalogAdmin::Start(void) __ptr64
?Start@CCatalogAdmin@@QEAAHXZ
; public: int __cdecl CMachineAdmin::StartCI(void) __ptr64
?StartCI@CMachineAdmin@@QEAAHXZ
; public: int __cdecl CCatalogAdmin::Stop(void) __ptr64
?Stop@CCatalogAdmin@@QEAAHXZ
; public: int __cdecl CMachineAdmin::StopCI(void) __ptr64
?StopCI@CMachineAdmin@@QEAAHXZ
; public: void __cdecl CFilterDaemon::StopFiltering(void) __ptr64
?StopFiltering@CFilterDaemon@@QEAAXXZ
; public: unsigned int __cdecl CKey::StrLen(void)const  __ptr64
?StrLen@CKey@@QEBAIXZ
; public: unsigned int __cdecl CKeyBuf::StrLen(void)const  __ptr64
?StrLen@CKeyBuf@@QEBAIXZ
; void __cdecl SystemExceptionTranslator(unsigned int,struct _EXCEPTION_POINTERS * __ptr64)
?SystemExceptionTranslator@@YAXIPEAU_EXCEPTION_POINTERS@@@Z
; public: unsigned long __cdecl CRestriction::TreeCount(void)const  __ptr64
?TreeCount@CRestriction@@QEBAKXZ
; public: void __cdecl CMachineAdmin::TunePerformance(int,unsigned short,unsigned short) __ptr64
?TunePerformance@CMachineAdmin@@QEAAXHGG@Z
; void __cdecl URLEscapeW(unsigned short const * __ptr64,class CVirtualString & __ptr64,unsigned long,int)
?URLEscapeW@@YAXPEBGAEAVCVirtualString@@KH@Z
; public: int __cdecl CDbProperties::UnMarshall(class PDeSerStream & __ptr64) __ptr64
?UnMarshall@CDbProperties@@QEAAHAEAVPDeSerStream@@@Z
; public: static class CRestriction * __ptr64 __cdecl CRestriction::UnMarshall(class PDeSerStream & __ptr64)
?UnMarshall@CRestriction@@SAPEAV1@AEAVPDeSerStream@@@Z
; public: static class CDbCmdTreeNode * __ptr64 __cdecl CDbCmdTreeNode::UnMarshallTree(class PDeSerStream & __ptr64)
?UnMarshallTree@CDbCmdTreeNode@@SAPEAV1@AEAVPDeSerStream@@@Z
; void __cdecl UnPickle(int,class XPtr<class CColumnSet> & __ptr64,class XPtr<class CRestriction> & __ptr64,class XPtr<class CSortSet> & __ptr64,class XPtr<class CCategorizationSet> & __ptr64,class CRowsetProperties & __ptr64,class XPtr<class CPidMapper> & __ptr64,unsigned char * __ptr64,unsigned long)
?UnPickle@@YAXHAEAV?$XPtr@VCColumnSet@@@@AEAV?$XPtr@VCRestriction@@@@AEAV?$XPtr@VCSortSet@@@@AEAV?$XPtr@VCCategorizationSet@@@@AEAVCRowsetProperties@@AEAV?$XPtr@VCPidMapper@@@@PEAEK@Z
; protected: void __cdecl CRcovStrmTrans::Unmap(enum CRcovStorageHdr::DataCopyNum) __ptr64
?Unmap@CRcovStrmTrans@@IEAAXW4DataCopyNum@CRcovStorageHdr@@@Z
; unsigned long __cdecl UpdateContentIndex(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,int)
?UpdateContentIndex@@YAKPEBG00H@Z
; public: void __cdecl CDiskFreeStatus::UpdateDiskLowInfo(void) __ptr64
?UpdateDiskLowInfo@CDiskFreeStatus@@QEAAXXZ
; int __cdecl VT_VARIANT_EQ(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64)
?VT_VARIANT_EQ@@YAHAEBUtagPROPVARIANT@@0@Z
; int __cdecl VT_VARIANT_GE(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64)
?VT_VARIANT_GE@@YAHAEBUtagPROPVARIANT@@0@Z
; int __cdecl VT_VARIANT_GT(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64)
?VT_VARIANT_GT@@YAHAEBUtagPROPVARIANT@@0@Z
; int __cdecl VT_VARIANT_LE(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64)
?VT_VARIANT_LE@@YAHAEBUtagPROPVARIANT@@0@Z
; int __cdecl VT_VARIANT_LT(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64)
?VT_VARIANT_LT@@YAHAEBUtagPROPVARIANT@@0@Z
; int __cdecl VT_VARIANT_NE(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64)
?VT_VARIANT_NE@@YAHAEBUtagPROPVARIANT@@0@Z
; int __cdecl ValidateScopeRestriction(class CRestriction * __ptr64)
?ValidateScopeRestriction@@YAHPEAVCRestriction@@@Z
; public: void __cdecl PRcovStorageObj::VerifyConsistency(void) __ptr64
?VerifyConsistency@PRcovStorageObj@@QEAAXXZ
; void __cdecl VerifyThreadHasAdminPrivilege(void)
?VerifyThreadHasAdminPrivilege@@YAXXZ
; unsigned long __cdecl WideCharToXArrayMultiByte(unsigned short const * __ptr64,unsigned long,unsigned int,class XArray<unsigned char> & __ptr64)
?WideCharToXArrayMultiByte@@YAKPEBGKIAEAV?$XArray@E@@@Z
; public: void __cdecl CDynStream::Write(void * __ptr64,unsigned long) __ptr64
?Write@CDynStream@@QEAAXPEAXK@Z
; protected: void __cdecl CRcovStrmTrans::Write(void const * __ptr64,unsigned long) __ptr64
?Write@CRcovStrmTrans@@IEAAXPEBXK@Z
; public: long __cdecl CPropStoreManager::WritePrimaryProperty(class CCompositePropRecordForWrites & __ptr64,unsigned long,class CStorageVariant const & __ptr64) __ptr64
?WritePrimaryProperty@CPropStoreManager@@QEAAJAEAVCCompositePropRecordForWrites@@KAEBVCStorageVariant@@@Z
; public: long __cdecl CPropStoreManager::WritePrimaryProperty(unsigned long,unsigned long,class CStorageVariant const & __ptr64) __ptr64
?WritePrimaryProperty@CPropStoreManager@@QEAAJKKAEBVCStorageVariant@@@Z
; public: long __cdecl CPropStoreManager::WriteProperty(class CCompositePropRecordForWrites & __ptr64,unsigned long,class CStorageVariant const & __ptr64) __ptr64
?WriteProperty@CPropStoreManager@@QEAAJAEAVCCompositePropRecordForWrites@@KAEBVCStorageVariant@@@Z
; public: long __cdecl CPropStoreManager::WriteProperty(unsigned long,unsigned long,class CStorageVariant const & __ptr64) __ptr64
?WriteProperty@CPropStoreManager@@QEAAJKKAEBVCStorageVariant@@@Z
; public: unsigned long __cdecl CPropStoreManager::WritePropertyInNewRecord(unsigned long,class CStorageVariant const & __ptr64) __ptr64
?WritePropertyInNewRecord@CPropStoreManager@@QEAAKKAEBVCStorageVariant@@@Z
; private: class CDbProjectListAnchor * __ptr64 __cdecl CDbNestingNode::_FindGroupListAnchor(void) __ptr64
?_FindGroupListAnchor@CDbNestingNode@@AEAAPEAVCDbProjectListAnchor@@XZ
; private: class CDbProjectListAnchor * __ptr64 __cdecl CDbProjectNode::_FindOrAddAnchor(void) __ptr64
?_FindOrAddAnchor@CDbProjectNode@@AEAAPEAVCDbProjectListAnchor@@XZ
; private: class CDbSortListAnchor * __ptr64 __cdecl CDbSortNode::_FindOrAddAnchor(void) __ptr64
?_FindOrAddAnchor@CDbSortNode@@AEAAPEAVCDbSortListAnchor@@XZ
; private: class CDbScalarValue * __ptr64 __cdecl CDbPropertyRestriction::_FindOrAddValueNode(void) __ptr64
?_FindOrAddValueNode@CDbPropertyRestriction@@AEAAPEAVCDbScalarValue@@XZ
; private: int __cdecl CImpersonateRemoteAccess::_ImpersonateIf(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
?_ImpersonateIf@CImpersonateRemoteAccess@@AEAAHPEBG0K@Z
; unsigned __int64 __cdecl _wcstoui64(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64,int)
?_wcstoui64@@YA_KPEBGPEAPEAGH@Z
; void __cdecl ciDelete(void * __ptr64)
?ciDelete@@YAXPEAX@Z
; int __cdecl ciIsValidPointer(void const * __ptr64)
?ciIsValidPointer@@YAHPEBX@Z
; void * __ptr64 __cdecl ciNew(unsigned __int64)
?ciNew@@YAPEAX_K@Z
; public: unsigned long __cdecl CFileBuffer::fgetsw(class XGrowable<unsigned short,260> & __ptr64) __ptr64
?fgetsw@CFileBuffer@@QEAAKAEAV?$XGrowable@G$0BAE@@@@Z
; unsigned short * __ptr64 __cdecl wcsipattern(unsigned short * __ptr64,unsigned short const * __ptr64)
?wcsipattern@@YAPEAGPEAGPEBG@Z
AbortMerges
BeginCacheTransaction
BindIFilterFromStorage
BindIFilterFromStream
CIBuildQueryNode
CIBuildQueryTree
CICreateCommand
CIGetGlobalPropertyList
CIMakeICommand
CIRestrictionToFullTree
CIState
CITextToFullTree
CITextToFullTreeEx
CITextToSelectTree
CITextToSelectTreeEx
CiSvcMain
CollectCIISAPIPerformanceData
CollectCIPerformanceData
CollectFILTERPerformanceData
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer
DoneCIISAPIPerformanceData
DoneCIPerformanceData
DoneFILTERPerformanceData
EndCacheTransaction
ForceMasterMerge
InitializeCIISAPIPerformanceData
InitializeCIPerformanceData
InitializeFILTERPerformanceData
LoadBHIFilter
LoadBinaryFilter
LoadIFilter
LoadIFilterEx
LoadTextFilter
LocateCatalogs
LocateCatalogsA
LocateCatalogsW
SetCatalogState
SetupCache
SetupCacheEx
StartFWCiSvcWork
StopFWCiSvcWork
SvcEntry_CiSvc
