; 
; 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: __thiscall CAllocStorageVariant::CAllocStorageVariant(struct tagPROPVARIANT &,class PMemoryAllocator &)
??0CAllocStorageVariant@@QAE@AAUtagPROPVARIANT@@AAVPMemoryAllocator@@@Z
; public: __thiscall CAllocStorageVariant::CAllocStorageVariant(class PDeSerStream &,class PMemoryAllocator &)
??0CAllocStorageVariant@@QAE@AAVPDeSerStream@@AAVPMemoryAllocator@@@Z
; public: __thiscall CAllocStorageVariant::CAllocStorageVariant(char const *,class PMemoryAllocator &)
??0CAllocStorageVariant@@QAE@PBDAAVPMemoryAllocator@@@Z
; public: __thiscall CAllocStorageVariant::CAllocStorageVariant(unsigned short const *,class PMemoryAllocator &)
??0CAllocStorageVariant@@QAE@PBGAAVPMemoryAllocator@@@Z
; public: __thiscall CAllocStorageVariant::CAllocStorageVariant(struct _GUID const *,class PMemoryAllocator &)
??0CAllocStorageVariant@@QAE@PBU_GUID@@AAVPMemoryAllocator@@@Z
; public: __thiscall CAllocStorageVariant::CAllocStorageVariant(enum VARENUM,unsigned long,class PMemoryAllocator &)
??0CAllocStorageVariant@@QAE@W4VARENUM@@KAAVPMemoryAllocator@@@Z
; public: __thiscall CCatState::CCatState(void)
??0CCatState@@QAE@XZ
; public: __thiscall CCategorizationSet::CCategorizationSet(class CCategorizationSet const &)
??0CCategorizationSet@@QAE@ABV0@@Z
; public: __thiscall CCategorizationSet::CCategorizationSet(unsigned int)
??0CCategorizationSet@@QAE@I@Z
; public: __thiscall CCiAdminParams::CCiAdminParams(class CLangList *)
??0CCiAdminParams@@QAE@PAVCLangList@@@Z
; public: __thiscall CCiRegParams::CCiRegParams(unsigned short const *)
??0CCiRegParams@@QAE@PBG@Z
; public: __thiscall CColumnSet::CColumnSet(unsigned int)
??0CColumnSet@@QAE@I@Z
; public: __thiscall CColumns::CColumns(class CColumns const &)
??0CColumns@@QAE@ABV0@@Z
; public: __thiscall CColumns::CColumns(unsigned int)
??0CColumns@@QAE@I@Z
; public: __thiscall CDFA::CDFA(unsigned short const *,class CTimeLimit &,unsigned char)
??0CDFA@@QAE@PBGAAVCTimeLimit@@E@Z
; public: __thiscall CDbColId::CDbColId(struct _GUID const &,unsigned short const *)
??0CDbColId@@QAE@ABU_GUID@@PBG@Z
; public: __thiscall CDbColId::CDbColId(struct tagDBID const &)
??0CDbColId@@QAE@ABUtagDBID@@@Z
; public: __thiscall CDbColId::CDbColId(class CDbColId const &)
??0CDbColId@@QAE@ABV0@@Z
; public: __thiscall CDbColId::CDbColId(void)
??0CDbColId@@QAE@XZ
; public: __thiscall CDbColumnNode::CDbColumnNode(struct tagDBID const &,int)
??0CDbColumnNode@@QAE@ABUtagDBID@@H@Z
; public: __thiscall CDbColumns::CDbColumns(unsigned int)
??0CDbColumns@@QAE@I@Z
; public: __thiscall CDbContentRestriction::CDbContentRestriction(unsigned short const *,struct tagDBID const &,unsigned long,unsigned long)
??0CDbContentRestriction@@QAE@PBGABUtagDBID@@KK@Z
; public: __thiscall CDbContentRestriction::CDbContentRestriction(unsigned short const *,class CDbColumnNode const &,unsigned long,unsigned long)
??0CDbContentRestriction@@QAE@PBGABVCDbColumnNode@@KK@Z
; public: __thiscall CDbNatLangRestriction::CDbNatLangRestriction(unsigned short const *,struct tagDBID const &,unsigned long)
??0CDbNatLangRestriction@@QAE@PBGABUtagDBID@@K@Z
; public: __thiscall CDbNatLangRestriction::CDbNatLangRestriction(unsigned short const *,class CDbColumnNode const &,unsigned long)
??0CDbNatLangRestriction@@QAE@PBGABVCDbColumnNode@@K@Z
; public: __thiscall CDbPropIDSet::CDbPropIDSet(void)
??0CDbPropIDSet@@QAE@XZ
; public: __thiscall CDbQueryResults::CDbQueryResults(void)
??0CDbQueryResults@@QAE@XZ
; public: __thiscall CDbSelectNode::CDbSelectNode(void)
??0CDbSelectNode@@QAE@XZ
; public: __thiscall CDbSortSet::CDbSortSet(unsigned int)
??0CDbSortSet@@QAE@I@Z
; public: __thiscall CDefColumnRegEntry::CDefColumnRegEntry(void)
??0CDefColumnRegEntry@@QAE@XZ
; public: __thiscall CDriveInfo::CDriveInfo(unsigned short const *,unsigned long)
??0CDriveInfo@@QAE@PBGK@Z
; public: __thiscall CDynStream::CDynStream(class PMmStream *)
??0CDynStream@@QAE@PAVPMmStream@@@Z
; public: __thiscall CEventItem::CEventItem(unsigned short,unsigned short,unsigned long,unsigned short,unsigned long,void const *)
??0CEventItem@@QAE@GGKGKPBX@Z
; public: __thiscall CEventLog::CEventLog(unsigned short const *,unsigned short const *)
??0CEventLog@@QAE@PBG0@Z
; public: __thiscall CException::CException(void)
??0CException@@QAE@XZ
; public: __thiscall CFileBuffer::CFileBuffer(class CFileMapView &,unsigned int)
??0CFileBuffer@@QAE@AAVCFileMapView@@I@Z
; public: __thiscall CFileMapView::CFileMapView(unsigned short const *)
??0CFileMapView@@QAE@PBG@Z
; public: __thiscall CFilterDaemon::CFilterDaemon(class CiProxy &,class CCiFrameworkParams &,class CLangList &,unsigned char *,unsigned long,struct ICiCFilterClient *)
??0CFilterDaemon@@QAE@AAVCiProxy@@AAVCCiFrameworkParams@@AAVCLangList@@PAEKPAUICiCFilterClient@@@Z
; public: __thiscall CFullPath::CFullPath(unsigned short const *)
??0CFullPath@@QAE@PBG@Z
; public: __thiscall CFullPath::CFullPath(unsigned short const *,unsigned int)
??0CFullPath@@QAE@PBGI@Z
; public: __thiscall CFullPropSpec::CFullPropSpec(class PDeSerStream &)
??0CFullPropSpec@@QAE@AAVPDeSerStream@@@Z
; public: __thiscall CFullPropSpec::CFullPropSpec(class CFullPropSpec const &)
??0CFullPropSpec@@QAE@ABV0@@Z
; public: __thiscall CFwAsyncWorkItem::CFwAsyncWorkItem(class CWorkManager &,class CWorkQueue &)
??0CFwAsyncWorkItem@@QAE@AAVCWorkManager@@AAVCWorkQueue@@@Z
; public: __thiscall CFwEventItem::CFwEventItem(unsigned short,unsigned long,unsigned short,unsigned long,void *)
??0CFwEventItem@@QAE@GKGKPAX@Z
; public: __thiscall CGenericCiProxy::CGenericCiProxy(class CSharedNameGen &,unsigned long,unsigned long)
??0CGenericCiProxy@@QAE@AAVCSharedNameGen@@KK@Z
; public: __thiscall CGetDbProps::CGetDbProps(void)
??0CGetDbProps@@QAE@XZ
; public: __thiscall CImpersonateRemoteAccess::CImpersonateRemoteAccess(class CImpersonationTokenCache *)
??0CImpersonateRemoteAccess@@QAE@PAVCImpersonationTokenCache@@@Z
; public: __thiscall CImpersonationTokenCache::CImpersonationTokenCache(unsigned short const *)
??0CImpersonationTokenCache@@QAE@PBG@Z
; public: __thiscall CIndexTable::CIndexTable(class CiStorage &,class CTransaction &)
??0CIndexTable@@QAE@AAVCiStorage@@AAVCTransaction@@@Z
; public: __thiscall CInternalPropertyRestriction::CInternalPropertyRestriction(unsigned long,unsigned long,class CStorageVariant const &,class CRestriction *)
??0CInternalPropertyRestriction@@QAE@KKABVCStorageVariant@@PAVCRestriction@@@Z
; public: __thiscall CKeyArray::CKeyArray(int,int)
??0CKeyArray@@QAE@HH@Z
; public: __thiscall CLangList::CLangList(struct ICiCLangRes *,unsigned long)
??0CLangList@@QAE@PAUICiCLangRes@@K@Z
; public: __thiscall CLocalGlobalPropertyList::CLocalGlobalPropertyList(unsigned long)
??0CLocalGlobalPropertyList@@QAE@K@Z
; public: __thiscall CLocalGlobalPropertyList::CLocalGlobalPropertyList(class CEmptyPropertyList *,int,unsigned short const *,unsigned long)
??0CLocalGlobalPropertyList@@QAE@PAVCEmptyPropertyList@@HPBGK@Z
; public: __thiscall CMachineAdmin::CMachineAdmin(unsigned short const *,int)
??0CMachineAdmin@@QAE@PBGH@Z
; public: __thiscall CMemSerStream::CMemSerStream(unsigned int)
??0CMemSerStream@@QAE@I@Z
; public: __thiscall CMemSerStream::CMemSerStream(unsigned char *,unsigned long)
??0CMemSerStream@@QAE@PAEK@Z
; public: __thiscall CMetaDataMgr::CMetaDataMgr(int,enum CiVRootTypeEnum,unsigned long,unsigned short const *)
??0CMetaDataMgr@@QAE@HW4CiVRootTypeEnum@@KPBG@Z
; public: __thiscall CMmStream::CMmStream(unsigned long,int)
??0CMmStream@@QAE@KH@Z
; public: __thiscall CMmStreamConsecBuf::CMmStreamConsecBuf(void)
??0CMmStreamConsecBuf@@QAE@XZ
; public: __thiscall CNatLanguageRestriction::CNatLanguageRestriction(unsigned short const *,class CFullPropSpec const &,unsigned long)
??0CNatLanguageRestriction@@QAE@PBGABVCFullPropSpec@@K@Z
; public: __thiscall CNodeRestriction::CNodeRestriction(unsigned long,unsigned int)
??0CNodeRestriction@@QAE@KI@Z
; public: __thiscall CNormalizer::CNormalizer(class PNoiseList &)
??0CNormalizer@@QAE@AAVPNoiseList@@@Z
; public: __thiscall CPathParser::CPathParser(unsigned short const *,unsigned long)
??0CPathParser@@QAE@PBGK@Z
; public: __thiscall CPerfMon::CPerfMon(unsigned short const *)
??0CPerfMon@@QAE@PBG@Z
; public: __thiscall CPersDeComp::CPersDeComp(class PDirectory &,unsigned long,class CPhysIndex &,unsigned long,int,int)
??0CPersDeComp@@QAE@AAVPDirectory@@KAAVCPhysIndex@@KHH@Z
; protected: __thiscall CPhysStorage::CPhysStorage(class PStorage &,class PStorageObject &,unsigned long,unsigned int,class PMmStream *,int,unsigned int,int)
??0CPhysStorage@@IAE@AAVPStorage@@AAVPStorageObject@@KIPAVPMmStream@@HIH@Z
; protected: __thiscall CPhysStorage::CPhysStorage(class PStorage &,class PStorageObject &,unsigned long,class PMmStream *,enum CPhysStorage::EOpenMode,int,unsigned int,int)
??0CPhysStorage@@IAE@AAVPStorage@@AAVPStorageObject@@KPAVPMmStream@@W4EOpenMode@1@HIH@Z
; public: __thiscall CPidLookupTable::CPidLookupTable(void)
??0CPidLookupTable@@QAE@XZ
; public: __thiscall CPidRemapper::CPidRemapper(class CPidMapper const &,class XInterface<struct IPropertyMapper> &,class CRestriction *,class CColumnSet *,class CSortSet *)
??0CPidRemapper@@QAE@ABVCPidMapper@@AAV?$XInterface@UIPropertyMapper@@@@PAVCRestriction@@PAVCColumnSet@@PAVCSortSet@@@Z
; public: __thiscall CPropListFile::CPropListFile(class CEmptyPropertyList *,int,unsigned short const *,unsigned long)
??0CPropListFile@@QAE@PAVCEmptyPropertyList@@HPBGK@Z
; public: __thiscall CPropNameArray::CPropNameArray(class PDeSerStream &)
??0CPropNameArray@@QAE@AAVPDeSerStream@@@Z
; public: __thiscall CPropNameArray::CPropNameArray(unsigned int)
??0CPropNameArray@@QAE@I@Z
; public: __thiscall CPropStoreManager::CPropStoreManager(unsigned long)
??0CPropStoreManager@@QAE@K@Z
; public: __thiscall CPropertyRestriction::CPropertyRestriction(unsigned long,class CFullPropSpec const &,class CStorageVariant const &)
??0CPropertyRestriction@@QAE@KABVCFullPropSpec@@ABVCStorageVariant@@@Z
; public: __thiscall CPropertyRestriction::CPropertyRestriction(void)
??0CPropertyRestriction@@QAE@XZ
; public: __thiscall CPropertyStoreWids::CPropertyStoreWids(class CPropStoreManager &)
??0CPropertyStoreWids@@QAE@AAVCPropStoreManager@@@Z
; public: __thiscall CPropertyValueParser::CPropertyValueParser(class CQueryScanner &,unsigned short,unsigned long)
??0CPropertyValueParser@@QAE@AAVCQueryScanner@@GK@Z
; public: __thiscall CQueryScanner::CQueryScanner(unsigned short const *,int,unsigned long,int)
??0CQueryScanner@@QAE@PBGHKH@Z
; public: __thiscall CRangeKeyRepository::CRangeKeyRepository(void)
??0CRangeKeyRepository@@QAE@XZ
; public: __thiscall CRangeRestriction::CRangeRestriction(void)
??0CRangeRestriction@@QAE@XZ
; public: __thiscall CRcovStrmAppendTrans::CRcovStrmAppendTrans(class PRcovStorageObj &)
??0CRcovStrmAppendTrans@@QAE@AAVPRcovStorageObj@@@Z
; public: __thiscall CRcovStrmMDTrans::CRcovStrmMDTrans(class PRcovStorageObj &,enum CRcovStrmMDTrans::MDOp,unsigned long)
??0CRcovStrmMDTrans@@QAE@AAVPRcovStorageObj@@W4MDOp@0@K@Z
; protected: __thiscall CRcovStrmTrans::CRcovStrmTrans(class PRcovStorageObj &,enum RcovOpType)
??0CRcovStrmTrans@@IAE@AAVPRcovStorageObj@@W4RcovOpType@@@Z
; public: __thiscall CRegAccess::CRegAccess(unsigned long,unsigned short const *)
??0CRegAccess@@QAE@KPBG@Z
; public: __thiscall CRegChangeEvent::CRegChangeEvent(unsigned short const *,int)
??0CRegChangeEvent@@QAE@PBGH@Z
; public: __thiscall CRegNotify::CRegNotify(unsigned short const *)
??0CRegNotify@@QAE@PBG@Z
; public: __thiscall CRequestClient::CRequestClient(unsigned short const *,struct IDBProperties *)
??0CRequestClient@@QAE@PBGPAUIDBProperties@@@Z
; public: __thiscall CRequestQueue::CRequestQueue(unsigned int,unsigned int,unsigned int,int,unsigned int,unsigned int,struct _GUID const &)
??0CRequestQueue@@QAE@IIIHIIABU_GUID@@@Z
; public: __thiscall CScopeRestriction::CScopeRestriction(unsigned short const *,int,int)
??0CScopeRestriction@@QAE@PBGHH@Z
; public: __thiscall CSdidLookupTable::CSdidLookupTable(void)
??0CSdidLookupTable@@QAE@XZ
; public: __thiscall CSizeSerStream::CSizeSerStream(void)
??0CSizeSerStream@@QAE@XZ
; public: __thiscall CSort::CSort(unsigned int)
??0CSort@@QAE@I@Z
; public: __thiscall CSortSet::CSortSet(unsigned int)
??0CSortSet@@QAE@I@Z
; public: __thiscall CStandardPropMapper::CStandardPropMapper(void)
??0CStandardPropMapper@@QAE@XZ
; public: __thiscall CSvcQuery::CSvcQuery(unsigned short const *,struct IDBProperties *)
??0CSvcQuery@@QAE@PBGPAUIDBProperties@@@Z
; public: __thiscall CSynRestriction::CSynRestriction(class CKey const &,unsigned long,unsigned long,unsigned long,int)
??0CSynRestriction@@QAE@ABVCKey@@KKKH@Z
; public: __thiscall CTimeLimit::CTimeLimit(unsigned long,unsigned long)
??0CTimeLimit@@QAE@KK@Z
; public: __thiscall CTransaction::CTransaction(void)
??0CTransaction@@QAE@XZ
; public: __thiscall CUnfilteredRestriction::CUnfilteredRestriction(void)
??0CUnfilteredRestriction@@QAE@XZ
; public: __thiscall CValueNormalizer::CValueNormalizer(class PKeyRepository &)
??0CValueNormalizer@@QAE@AAVPKeyRepository@@@Z
; public: __thiscall CVirtualString::CVirtualString(unsigned int)
??0CVirtualString@@QAE@I@Z
; public: __thiscall CWin32RegAccess::CWin32RegAccess(struct HKEY__ *,unsigned short const *)
??0CWin32RegAccess@@QAE@PAUHKEY__@@PBG@Z
; public: __thiscall CWordRestriction::CWordRestriction(class CKeyBuf const &,unsigned long,unsigned long,unsigned long,int)
??0CWordRestriction@@QAE@ABVCKeyBuf@@KKKH@Z
; public: __thiscall CWorkQueue::CWorkQueue(unsigned int,enum CWorkQueue::WorkQueueType)
??0CWorkQueue@@QAE@IW4WorkQueueType@0@@Z
; public: __thiscall CiStorage::CiStorage(unsigned short const *,struct ICiCAdviseStatus &,unsigned long,unsigned long,int)
??0CiStorage@@QAE@PBGAAUICiCAdviseStatus@@KKH@Z
; public: __thiscall SStorageObject::SStorageObject(class PStorageObject *)
??0SStorageObject@@QAE@PAVPStorageObject@@@Z
; public: __thiscall XPtr<class CDbCmdTreeNode>::~XPtr<class CDbCmdTreeNode>(void)
??1?$XPtr@VCDbCmdTreeNode@@@@QAE@XZ
; public: __thiscall XPtr<class CDbColumnNode>::~XPtr<class CDbColumnNode>(void)
??1?$XPtr@VCDbColumnNode@@@@QAE@XZ
; public: __thiscall XPtr<class CDbProjectListAnchor>::~XPtr<class CDbProjectListAnchor>(void)
??1?$XPtr@VCDbProjectListAnchor@@@@QAE@XZ
; public: __thiscall XPtr<class CDbProjectListElement>::~XPtr<class CDbProjectListElement>(void)
??1?$XPtr@VCDbProjectListElement@@@@QAE@XZ
; protected: __thiscall CAllocStorageVariant::~CAllocStorageVariant(void)
??1CAllocStorageVariant@@IAE@XZ
; public: __thiscall CCatState::~CCatState(void)
??1CCatState@@QAE@XZ
; public: __thiscall CCatalogAdmin::~CCatalogAdmin(void)
??1CCatalogAdmin@@QAE@XZ
; public: __thiscall CCatalogEnum::~CCatalogEnum(void)
??1CCatalogEnum@@QAE@XZ
; public: __thiscall CColumns::~CColumns(void)
??1CColumns@@QAE@XZ
; public: __thiscall CContentRestriction::~CContentRestriction(void)
??1CContentRestriction@@QAE@XZ
; public: __thiscall CDFA::~CDFA(void)
??1CDFA@@QAE@XZ
; public: __thiscall CDbCmdTreeNode::~CDbCmdTreeNode(void)
??1CDbCmdTreeNode@@QAE@XZ
; public: __thiscall CDbColumns::~CDbColumns(void)
??1CDbColumns@@QAE@XZ
; public: __thiscall CDbContentBaseRestriction::~CDbContentBaseRestriction(void)
??1CDbContentBaseRestriction@@QAE@XZ
; public: __thiscall CDbProp::~CDbProp(void)
??1CDbProp@@QAE@XZ
; public: __thiscall CDbPropBaseRestriction::~CDbPropBaseRestriction(void)
??1CDbPropBaseRestriction@@QAE@XZ
; public: __thiscall CDbPropIDSet::~CDbPropIDSet(void)
??1CDbPropIDSet@@QAE@XZ
; public: __thiscall CDbPropSet::~CDbPropSet(void)
??1CDbPropSet@@QAE@XZ
; public: __thiscall CDbQueryResults::~CDbQueryResults(void)
??1CDbQueryResults@@QAE@XZ
; public: __thiscall CDbSortKey::~CDbSortKey(void)
??1CDbSortKey@@QAE@XZ
; public: __thiscall CDbSortSet::~CDbSortSet(void)
??1CDbSortSet@@QAE@XZ
; public: __thiscall CDynStream::~CDynStream(void)
??1CDynStream@@QAE@XZ
; public: __thiscall CEventItem::~CEventItem(void)
??1CEventItem@@QAE@XZ
; public: __thiscall CEventLog::~CEventLog(void)
??1CEventLog@@QAE@XZ
; public: __thiscall CFileMapView::~CFileMapView(void)
??1CFileMapView@@QAE@XZ
; public: __thiscall CFilterDaemon::~CFilterDaemon(void)
??1CFilterDaemon@@QAE@XZ
; public: __thiscall CFullPropSpec::~CFullPropSpec(void)
??1CFullPropSpec@@QAE@XZ
; public: virtual __thiscall CFwAsyncWorkItem::~CFwAsyncWorkItem(void)
??1CFwAsyncWorkItem@@UAE@XZ
; public: __thiscall CFwEventItem::~CFwEventItem(void)
??1CFwEventItem@@QAE@XZ
; public: virtual __thiscall CGenericCiProxy::~CGenericCiProxy(void)
??1CGenericCiProxy@@UAE@XZ
; public: __thiscall CImpersonateClient::~CImpersonateClient(void)
??1CImpersonateClient@@QAE@XZ
; public: __thiscall CImpersonateSystem::~CImpersonateSystem(void)
??1CImpersonateSystem@@QAE@XZ
; public: __thiscall CImpersonationTokenCache::~CImpersonationTokenCache(void)
??1CImpersonationTokenCache@@QAE@XZ
; public: __thiscall CInternalPropertyRestriction::~CInternalPropertyRestriction(void)
??1CInternalPropertyRestriction@@QAE@XZ
; public: __thiscall CKeyArray::~CKeyArray(void)
??1CKeyArray@@QAE@XZ
; public: __thiscall CLangList::~CLangList(void)
??1CLangList@@QAE@XZ
; public: __thiscall CMachineAdmin::~CMachineAdmin(void)
??1CMachineAdmin@@QAE@XZ
; public: virtual __thiscall CMemSerStream::~CMemSerStream(void)
??1CMemSerStream@@UAE@XZ
; public: __thiscall CMetaDataMgr::~CMetaDataMgr(void)
??1CMetaDataMgr@@QAE@XZ
; public: virtual __thiscall CMmStream::~CMmStream(void)
??1CMmStream@@UAE@XZ
; public: __thiscall CNatLanguageRestriction::~CNatLanguageRestriction(void)
??1CNatLanguageRestriction@@QAE@XZ
; public: __thiscall CNodeRestriction::~CNodeRestriction(void)
??1CNodeRestriction@@QAE@XZ
; public: __thiscall CNotRestriction::~CNotRestriction(void)
??1CNotRestriction@@QAE@XZ
; public: __thiscall COccRestriction::~COccRestriction(void)
??1COccRestriction@@QAE@XZ
; public: __thiscall CParseCommandTree::~CParseCommandTree(void)
??1CParseCommandTree@@QAE@XZ
; public: __thiscall CPerfMon::~CPerfMon(void)
??1CPerfMon@@QAE@XZ
; public: __thiscall CPhraseRestriction::~CPhraseRestriction(void)
??1CPhraseRestriction@@QAE@XZ
; public: virtual __thiscall CPhysStorage::~CPhysStorage(void)
??1CPhysStorage@@UAE@XZ
; public: __thiscall CPidLookupTable::~CPidLookupTable(void)
??1CPidLookupTable@@QAE@XZ
; public: __thiscall CPidRemapper::~CPidRemapper(void)
??1CPidRemapper@@QAE@XZ
; public: __thiscall CProcess::~CProcess(void)
??1CProcess@@QAE@XZ
; public: __thiscall CPropStoreManager::~CPropStoreManager(void)
??1CPropStoreManager@@QAE@XZ
; public: virtual __thiscall CPropertyList::~CPropertyList(void)
??1CPropertyList@@UAE@XZ
; public: __thiscall CPropertyRestriction::~CPropertyRestriction(void)
??1CPropertyRestriction@@QAE@XZ
; public: __thiscall CPropertyStore::~CPropertyStore(void)
??1CPropertyStore@@QAE@XZ
; public: __thiscall CPropertyStoreWids::~CPropertyStoreWids(void)
??1CPropertyStoreWids@@QAE@XZ
; public: __thiscall CQueryUnknown::~CQueryUnknown(void)
??1CQueryUnknown@@QAE@XZ
; public: virtual __thiscall CRangeKeyRepository::~CRangeKeyRepository(void)
??1CRangeKeyRepository@@UAE@XZ
; public: __thiscall CRangeRestriction::~CRangeRestriction(void)
??1CRangeRestriction@@QAE@XZ
; public: __thiscall CRegChangeEvent::~CRegChangeEvent(void)
??1CRegChangeEvent@@QAE@XZ
; protected: virtual __thiscall CRegNotify::~CRegNotify(void)
??1CRegNotify@@MAE@XZ
; public: __thiscall CRestriction::~CRestriction(void)
??1CRestriction@@QAE@XZ
; public: __thiscall CScopeAdmin::~CScopeAdmin(void)
??1CScopeAdmin@@QAE@XZ
; public: __thiscall CScopeEnum::~CScopeEnum(void)
??1CScopeEnum@@QAE@XZ
; public: __thiscall CScopeRestriction::~CScopeRestriction(void)
??1CScopeRestriction@@QAE@XZ
; public: __thiscall CSdidLookupTable::~CSdidLookupTable(void)
??1CSdidLookupTable@@QAE@XZ
; public: virtual __thiscall CSizeSerStream::~CSizeSerStream(void)
??1CSizeSerStream@@UAE@XZ
; public: __thiscall CSort::~CSort(void)
??1CSort@@QAE@XZ
; public: __thiscall CSynRestriction::~CSynRestriction(void)
??1CSynRestriction@@QAE@XZ
; public: __thiscall CVirtualString::~CVirtualString(void)
??1CVirtualString@@QAE@XZ
; public: __thiscall CWin32RegAccess::~CWin32RegAccess(void)
??1CWin32RegAccess@@QAE@XZ
; public: __thiscall CWordRestriction::~CWordRestriction(void)
??1CWordRestriction@@QAE@XZ
; public: __thiscall CWorkManager::~CWorkManager(void)
??1CWorkManager@@QAE@XZ
; public: __thiscall CWorkQueue::~CWorkQueue(void)
??1CWorkQueue@@QAE@XZ
; public: __thiscall SStorageObject::~SStorageObject(void)
??1SStorageObject@@QAE@XZ
; public: static void __stdcall CDbCmdTreeNode::operator delete(void *)
??3CDbCmdTreeNode@@SGXPAX@Z
; public: static void __stdcall CDbColId::operator delete(void *)
??3CDbColId@@SGXPAX@Z
; public: static void __stdcall CDbContent::operator delete(void *)
??3CDbContent@@SGXPAX@Z
; public: static void __stdcall CDbParameter::operator delete(void *)
??3CDbParameter@@SGXPAX@Z
; public: static void __stdcall CDbPropSet::operator delete(void *)
??3CDbPropSet@@SGXPAX@Z
; public: class CDbByGuid & __thiscall CDbByGuid::operator=(class CDbByGuid const &)
??4CDbByGuid@@QAEAAV0@ABV0@@Z
; public: class CDbColId & __thiscall CDbColId::operator=(class CDbColId const &)
??4CDbColId@@QAEAAV0@ABV0@@Z
; public: int __thiscall CDbColId::operator==(class CDbColId const &)const 
??8CDbColId@@QBEHABV0@@Z
; public: void __thiscall CWorkManager::AbortWorkItems(void)
?AbortWorkItems@CWorkManager@@QAEXXZ
; public: void __thiscall CQueryScanner::Accept(void)
?Accept@CQueryScanner@@QAEXXZ
; public: void __thiscall CQueryScanner::AcceptCommand(void)
?AcceptCommand@CQueryScanner@@QAEXXZ
; public: void __thiscall CQueryScanner::AcceptWord(void)
?AcceptWord@CQueryScanner@@QAEXXZ
; public: int __thiscall CSdidLookupTable::AccessCheck(unsigned long,void *,unsigned long,int &)
?AccessCheck@CSdidLookupTable@@QAEHKPAXKAAH@Z
; public: unsigned short * __thiscall CQueryScanner::AcqLine(int)
?AcqLine@CQueryScanner@@QAEPAGH@Z
; public: unsigned short * __thiscall CQueryScanner::AcqPath(void)
?AcqPath@CQueryScanner@@QAEPAGXZ
; public: unsigned short * __thiscall CQueryScanner::AcqPhrase(void)
?AcqPhrase@CQueryScanner@@QAEPAGXZ
; public: class CRangeRestriction * __thiscall CRangeKeyRepository::AcqRst(void)
?AcqRst@CRangeKeyRepository@@QAEPAVCRangeRestriction@@XZ
; public: unsigned short * __thiscall CQueryScanner::AcqWord(void)
?AcqWord@CQueryScanner@@QAEPAGXZ
; private: void __thiscall CPropertyStore::AcquireRead(class CReadWriteLockRecord &)
?AcquireRead@CPropertyStore@@AAEXAAVCReadWriteLockRecord@@@Z
; public: int __thiscall CDbColumns::Add(class CDbColId const &,unsigned int)
?Add@CDbColumns@@QAEHABVCDbColId@@I@Z
; public: void __thiscall CDbQueryResults::Add(unsigned short *,unsigned long)
?Add@CDbQueryResults@@QAEXPAGK@Z
; public: int __thiscall CDbSortSet::Add(class CDbColId const &,unsigned long,unsigned int)
?Add@CDbSortSet@@QAEHABVCDbColId@@KI@Z
; public: int __thiscall CDbSortSet::Add(class CDbSortKey const &,unsigned int)
?Add@CDbSortSet@@QAEHABVCDbSortKey@@I@Z
; public: int __thiscall CKeyArray::Add(int,class CKey const &)
?Add@CKeyArray@@QAEHHABVCKey@@@Z
; public: int __thiscall CKeyArray::Add(int,class CKeyBuf const &)
?Add@CKeyArray@@QAEHHABVCKeyBuf@@@Z
; public: void __thiscall CWorkQueue::Add(class PWorkItem *)
?Add@CWorkQueue@@QAEXPAVPWorkItem@@@Z
; public: void __thiscall CEventItem::AddArg(unsigned long)
?AddArg@CEventItem@@QAEXK@Z
; public: void __thiscall CEventItem::AddArg(unsigned short const *)
?AddArg@CEventItem@@QAEXPBG@Z
; public: void __thiscall CFwEventItem::AddArg(unsigned long)
?AddArg@CFwEventItem@@QAEXK@Z
; public: void __thiscall CFwEventItem::AddArg(unsigned short const *)
?AddArg@CFwEventItem@@QAEXPBG@Z
; public: void __thiscall CCatalogAdmin::AddCachedProperty(class CFullPropSpec const &,unsigned long,unsigned long,unsigned long,int)
?AddCachedProperty@CCatalogAdmin@@QAEXABVCFullPropSpec@@KKKH@Z
; public: void __thiscall CCatState::AddCatalog(class XPtrST<unsigned short> &)
?AddCatalog@CCatState@@QAEXAAV?$XPtrST@G@@@Z
; public: void __thiscall CMachineAdmin::AddCatalog(unsigned short const *,unsigned short const *)
?AddCatalog@CMachineAdmin@@QAEXPBG0@Z
; public: void __thiscall CNodeRestriction::AddChild(class CRestriction *,unsigned int &)
?AddChild@CNodeRestriction@@QAEXPAVCRestriction@@AAI@Z
; public: void __thiscall CCatState::AddDir(class XPtrST<unsigned short> &)
?AddDir@CCatState@@QAEXAAV?$XPtrST@G@@@Z
; public: virtual void __thiscall CCombinedPropertyList::AddEntry(class CPropEntry *,int)
?AddEntry@CCombinedPropertyList@@UAEXPAVCPropEntry@@H@Z
; public: virtual void __thiscall CPropertyList::AddEntry(class CPropEntry *,int)
?AddEntry@CPropertyList@@UAEXPAVCPropEntry@@H@Z
; public: void __thiscall CEventItem::AddError(unsigned long)
?AddError@CEventItem@@QAEXK@Z
; public: void __thiscall CSynRestriction::AddKey(class CKeyBuf const &)
?AddKey@CSynRestriction@@QAEXABVCKeyBuf@@@Z
; public: void __thiscall CCatState::AddMachine(class XPtrST<unsigned short> &)
?AddMachine@CCatState@@QAEXAAV?$XPtrST@G@@@Z
; public: virtual unsigned long __stdcall CDbProperties::AddRef(void)
?AddRef@CDbProperties@@UAGKXZ
; public: virtual unsigned long __stdcall CEmptyPropertyList::AddRef(void)
?AddRef@CEmptyPropertyList@@UAGKXZ
; public: virtual unsigned long __stdcall CEnumString::AddRef(void)
?AddRef@CEnumString@@UAGKXZ
; public: virtual unsigned long __stdcall CEnumWorkid::AddRef(void)
?AddRef@CEnumWorkid@@UAGKXZ
; public: virtual unsigned long __stdcall CFwPropertyMapper::AddRef(void)
?AddRef@CFwPropertyMapper@@UAGKXZ
; public: virtual unsigned long __stdcall CQueryUnknown::AddRef(void)
?AddRef@CQueryUnknown@@UAGKXZ
; public: void __thiscall CWorkQueue::AddRefWorkThreads(void)
?AddRefWorkThreads@CWorkQueue@@QAEXXZ
; public: void __thiscall CCatalogAdmin::AddScope(unsigned short const *,unsigned short const *,int,unsigned short const *,unsigned short const *)
?AddScope@CCatalogAdmin@@QAEXPBG0H00@Z
; public: int __thiscall CDbSortNode::AddSortColumn(struct tagDBID const &,int,unsigned long)
?AddSortColumn@CDbSortNode@@QAEHABUtagDBID@@HK@Z
; public: int __thiscall CDbNestingNode::AddTable(class CDbCmdTreeNode *)
?AddTable@CDbNestingNode@@QAEHPAVCDbCmdTreeNode@@@Z
; public: void __thiscall CWorkManager::AddToWorkList(class CFwAsyncWorkItem *)
?AddToWorkList@CWorkManager@@QAEXPAVCFwAsyncWorkItem@@@Z
; public: void __thiscall CFwAsyncWorkItem::AddToWorkQueue(void)
?AddToWorkQueue@CFwAsyncWorkItem@@QAEXXZ
; public: static unsigned short * __stdcall CDbCmdTreeNode::AllocAndCopyWString(unsigned short const *)
?AllocAndCopyWString@CDbCmdTreeNode@@SGPAGPBG@Z
; unsigned short * __stdcall AllocHeapAndCopy(unsigned short const *,unsigned long &)
?AllocHeapAndCopy@@YGPAGPBGAAK@Z
; unsigned short * __stdcall AllocHeapAndGetWString(class PDeSerStream &)
?AllocHeapAndGetWString@@YGPAGAAVPDeSerStream@@@Z
; public: void __thiscall CEnumString::Append(unsigned short const *)
?Append@CEnumString@@QAEXPBG@Z
; public: void __thiscall CEnumWorkid::Append(unsigned long)
?Append@CEnumWorkid@@QAEXK@Z
; protected: void __thiscall CDbCmdTreeNode::AppendChild(class CDbCmdTreeNode *)
?AppendChild@CDbCmdTreeNode@@IAEXPAV1@@Z
; protected: int __thiscall CDbListAnchor::AppendListElement(unsigned short,struct tagDBID const &)
?AppendListElement@CDbListAnchor@@IAEHGABUtagDBID@@@Z
; protected: int __thiscall CDbListAnchor::AppendListElement(class CDbCmdTreeNode *)
?AppendListElement@CDbListAnchor@@IAEHPAVCDbCmdTreeNode@@@Z
; public: int __thiscall CDbProjectListAnchor::AppendListElement(struct tagDBID const &,unsigned short *)
?AppendListElement@CDbProjectListAnchor@@QAEHABUtagDBID@@PAG@Z
; public: unsigned long __thiscall CPropStoreManager::BeginTransaction(void)
?BeginTransaction@CPropStoreManager@@QAEKXZ
; public: static long __stdcall CCiOle::BindIFilter(unsigned short const *,struct IUnknown *,struct IFilter * *,int)
?BindIFilter@CCiOle@@SGJPBGPAUIUnknown@@PAPAUIFilter@@H@Z
; public: unsigned long * __thiscall CPhysStorage::BorrowBuffer(unsigned long,int,int)
?BorrowBuffer@CPhysStorage@@QAEPAKKHH@Z
; public: unsigned long * __thiscall CPhysStorage::BorrowNewBuffer(unsigned long)
?BorrowNewBuffer@CPhysStorage@@QAEPAKK@Z
; void __stdcall BuildRegistryPropertiesKey(class XArray<unsigned short> &,unsigned short const *)
?BuildRegistryPropertiesKey@@YGXAAV?$XArray@G@@PBG@Z
; void __stdcall BuildRegistryScopesKey(class XArray<unsigned short> &,unsigned short const *)
?BuildRegistryScopesKey@@YGXAAV?$XArray@G@@PBG@Z
; void __stdcall CIShutdown(void)
?CIShutdown@@YGXXZ
; public: void __thiscall CCatState::ChangeCurrentCatalog(unsigned short const *)
?ChangeCurrentCatalog@CCatState@@QAEXPBG@Z
; public: void __thiscall CCatState::ChangeCurrentDepth(int)
?ChangeCurrentDepth@CCatState@@QAEXH@Z
; public: void __thiscall CCatState::ChangeCurrentMachine(unsigned short const *)
?ChangeCurrentMachine@CCatState@@QAEXPBG@Z
; public: void __thiscall CCatState::ChangeCurrentScope(unsigned short const *)
?ChangeCurrentScope@CCatState@@QAEXPBG@Z
; private: void __thiscall CPropStoreInfo::ChangeDirty(int)
?ChangeDirty@CPropStoreInfo@@AAEXH@Z
; public: long __thiscall CLocalGlobalPropertyList::CheckError(unsigned long &,unsigned short * *)
?CheckError@CLocalGlobalPropertyList@@QAEJAAKPAPAG@Z
; public: long __thiscall CPropListFile::CheckError(unsigned long &,unsigned short * *)
?CheckError@CPropListFile@@QAEJAAKPAPAG@Z
; public: static int __stdcall CiStorage::CheckHasIndexTable(unsigned short const *)
?CheckHasIndexTable@CiStorage@@SGHPBG@Z
CiCreateSecurityDescriptor
; int __stdcall CiGetPassword(unsigned short const *,unsigned short const *,unsigned short *)
?CiGetPassword@@YGHPBG0PAG@Z
; void * __stdcall CiNtOpen(unsigned short const *,unsigned long,unsigned long,unsigned long)
?CiNtOpen@@YGPAXPBGKKK@Z
; long __stdcall CiNtOpenNoThrow(void * &,unsigned short const *,unsigned long,unsigned long,unsigned long)
?CiNtOpenNoThrow@@YGJAAPAXPBGKKK@Z
; public: void __thiscall CDbColId::Cleanup(void)
?Cleanup@CDbColId@@QAEXXZ
; public: void __thiscall CDbProp::Cleanup(void)
?Cleanup@CDbProp@@QAEXXZ
; protected: void __thiscall CDbCmdTreeNode::CleanupDataValue(void)
?CleanupDataValue@CDbCmdTreeNode@@IAEXXZ
; public: void __thiscall CCombinedPropertyList::ClearList(void)
?ClearList@CCombinedPropertyList@@QAEXXZ
; public: void __thiscall CPropertyList::ClearList(void)
?ClearList@CPropertyList@@QAEXXZ
; public: class CDbCmdTreeNode * __thiscall CDbCmdTreeNode::Clone(int)const 
?Clone@CDbCmdTreeNode@@QBEPAV1@H@Z
; public: virtual long __stdcall CEnumString::Clone(struct IEnumString * *)
?Clone@CEnumString@@UAGJPAPAUIEnumString@@@Z
; public: class CNodeRestriction * __thiscall CNodeRestriction::Clone(void)const 
?Clone@CNodeRestriction@@QBEPAV1@XZ
; public: class COccRestriction * __thiscall COccRestriction::Clone(void)const 
?Clone@COccRestriction@@QBEPAV1@XZ
; public: class CRestriction * __thiscall CRestriction::Clone(void)const 
?Clone@CRestriction@@QBEPAV1@XZ
; public: void __thiscall CPhysStorage::Close(void)
?Close@CPhysStorage@@QAEXXZ
; protected: void __thiscall CPipeClient::Close(void)
?Close@CPipeClient@@IAEXXZ
; public: void __thiscall COLEPropManager::CPropSetMap::Close(void)
?Close@CPropSetMap@COLEPropManager@@QAEXXZ
; public: void __thiscall CPropStoreManager::CloseRecord(class CCompositePropRecord *)
?CloseRecord@CPropStoreManager@@QAEXPAVCCompositePropRecord@@@Z
; public: void __thiscall CPropStoreManager::CloseRecord(class CCompositePropRecordForWrites *)
?CloseRecord@CPropStoreManager@@QAEXPAVCCompositePropRecordForWrites@@@Z
; public: void __thiscall CRcovStrmAppendTrans::Commit(void)
?Commit@CRcovStrmAppendTrans@@QAEXXZ
; public: void __thiscall CRcovStrmMDTrans::Commit(void)
?Commit@CRcovStrmMDTrans@@QAEXXZ
; public: void __thiscall CRcovStrmWriteTrans::Commit(void)
?Commit@CRcovStrmWriteTrans@@QAEXXZ
; public: static int __stdcall CDriveInfo::ContainsDrive(unsigned short const *)
?ContainsDrive@CDriveInfo@@SGHPBG@Z
; public: int __thiscall CDbParameter::Copy(struct tagDBPARAMETER const &)
?Copy@CDbParameter@@QAEHABUtagDBPARAMETER@@@Z
; public: int __thiscall CDbProp::Copy(struct tagDBPROP const &)
?Copy@CDbProp@@QAEHABUtagDBPROP@@@Z
; public: int __thiscall CDbPropSet::Copy(struct tagDBPROPSET const &)
?Copy@CDbPropSet@@QAEHABUtagDBPROPSET@@@Z
; public: void __thiscall CMachineAdmin::CreateSubdirs(unsigned short const *)
?CreateSubdirs@CMachineAdmin@@QAEXPBG@Z
; public: void __thiscall CRequestClient::DataWriteRead(void *,unsigned long,void *,unsigned long,unsigned long &)
?DataWriteRead@CRequestClient@@QAEXPAXK0KAAK@Z
; void __stdcall DecodeEscapes(unsigned short *,unsigned long &,unsigned short *)
?DecodeEscapes@@YGXPAGAAK0@Z
; void __stdcall DecodeHtmlNumeric(unsigned short *)
?DecodeHtmlNumeric@@YGXPAG@Z
; void __stdcall DecodeURLEscapes(unsigned char *,unsigned long &,unsigned short *,unsigned long)
?DecodeURLEscapes@@YGXPAEAAKPAGK@Z
; public: void __thiscall CPropStoreManager::DeleteRecord(unsigned long)
?DeleteRecord@CPropStoreManager@@QAEXK@Z
; public: void __thiscall CCatalogAdmin::DeleteRegistryParamNoThrow(unsigned short const *)
?DeleteRegistryParamNoThrow@CCatalogAdmin@@QAEXPBG@Z
; public: static unsigned int __stdcall CiStorage::DetermineDriveType(unsigned short const *)
?DetermineDriveType@CiStorage@@SGIPBG@Z
; public: int __thiscall CMachineAdmin::DisableCI(void)
?DisableCI@CMachineAdmin@@QAEHXZ
; public: void __thiscall CRegNotify::DisableNotification(void)
?DisableNotification@CRegNotify@@QAEXXZ
; public: void __thiscall CMetaDataMgr::DisableVPathNotify(void)
?DisableVPathNotify@CMetaDataMgr@@QAEXXZ
; public: void __thiscall CRequestClient::Disconnect(void)
?Disconnect@CRequestClient@@QAEXXZ
; void __stdcall DoFailTest(long)
?DoFailTest@@YGXJ@Z
; public: long __thiscall CCopyRcovObject::DoIt(void)
?DoIt@CCopyRcovObject@@QAEJXZ
; public: long __thiscall CFilterDaemon::DoUpdates(void)
?DoUpdates@CFilterDaemon@@QAEJXZ
; public: void __thiscall CFwAsyncWorkItem::Done(void)
?Done@CFwAsyncWorkItem@@QAEXXZ
; long __stdcall DumpWorkId(unsigned short const *,unsigned long,unsigned char *,unsigned long &,unsigned short const *,unsigned short const *,unsigned long)
?DumpWorkId@@YGJPBGKPAEAAK00K@Z
; public: void __thiscall CPidLookupTable::Empty(void)
?Empty@CPidLookupTable@@QAEXXZ
; public: void __thiscall CPropStoreManager::Empty(void)
?Empty@CPropStoreManager@@QAEXXZ
; public: void __thiscall CRcovStrmWriteTrans::Empty(void)
?Empty@CRcovStrmWriteTrans@@QAEXXZ
; public: void __thiscall CSdidLookupTable::Empty(void)
?Empty@CSdidLookupTable@@QAEXXZ
; public: int __thiscall CMachineAdmin::EnableCI(void)
?EnableCI@CMachineAdmin@@QAEHXZ
; public: void __thiscall CMetaDataMgr::EnableVPathNotify(class CMetaDataVPathChangeCallBack *)
?EnableVPathNotify@CMetaDataMgr@@QAEXPAVCMetaDataVPathChangeCallBack@@@Z
; public: void __thiscall CPropStoreManager::EndTransaction(unsigned long,int,unsigned long,unsigned long)
?EndTransaction@CPropStoreManager@@QAEXKHKK@Z
; public: int __thiscall CWin32RegAccess::Enum(unsigned short *,unsigned long)
?Enum@CWin32RegAccess@@QAEHPAGK@Z
; public: virtual long __stdcall CEmptyPropertyList::EnumPropInfo(unsigned long,unsigned short const * *,struct tagDBID * *,unsigned short *,unsigned int *)
?EnumPropInfo@CEmptyPropertyList@@UAGJKPAPBGPAPAUtagDBID@@PAGPAI@Z
; public: void __thiscall CMetaDataMgr::EnumVPaths(class CMetaDataCallBack &)
?EnumVPaths@CMetaDataMgr@@QAEXAAVCMetaDataCallBack@@@Z
; public: void __thiscall CMetaDataMgr::EnumVServers(class CMetaDataVirtualServerCallBack &)
?EnumVServers@CMetaDataMgr@@QAEXAAVCMetaDataVirtualServerCallBack@@@Z
; public: static void __stdcall CiStorage::EnumerateFilesInDir(unsigned short const *,class CEnumString &)
?EnumerateFilesInDir@CiStorage@@SGXPBGAAVCEnumString@@@Z
; public: int __thiscall CPidLookupTable::EnumerateProperty(class CFullPropSpec &,unsigned int &)
?EnumerateProperty@CPidLookupTable@@QAEHAAVCFullPropSpec@@AAI@Z
; public: void __thiscall CRegAccess::EnumerateValues(unsigned short *,class CRegCallBack &)
?EnumerateValues@CRegAccess@@QAEXPAGAAVCRegCallBack@@@Z
; public: int __thiscall CMmStreamConsecBuf::Eof(void)
?Eof@CMmStreamConsecBuf@@QAEHXZ
; public: int __thiscall CMetaDataMgr::ExtensionHasScriptMap(unsigned short const *)
?ExtensionHasScriptMap@CMetaDataMgr@@QAEHPBG@Z
; public: virtual long __thiscall CPidConverter::FPSToPROPID(class CFullPropSpec const &,unsigned long &)
?FPSToPROPID@CPidConverter@@UAEJABVCFullPropSpec@@AAK@Z
; public: void __thiscall CPropStoreManager::FastInit(class CiStorage *)
?FastInit@CPropStoreManager@@QAEXPAVCiStorage@@@Z
; public: void __thiscall COLEPropManager::FetchProperty(struct _GUID const &,struct tagPROPSPEC const &,struct tagPROPVARIANT *,unsigned int *)
?FetchProperty@COLEPropManager@@QAEXABU_GUID@@ABUtagPROPSPEC@@PAUtagPROPVARIANT@@PAI@Z
; public: int __thiscall CKeyArray::FillMax(int)
?FillMax@CKeyArray@@QAEHH@Z
; public: virtual class CPropEntry const * __thiscall CCombinedPropertyList::Find(unsigned short const *)
?Find@CCombinedPropertyList@@UAEPBVCPropEntry@@PBG@Z
; public: class CPropEntry const * __thiscall CEmptyPropertyList::Find(class CDbColId const &)
?Find@CEmptyPropertyList@@QAEPBVCPropEntry@@ABVCDbColId@@@Z
; public: virtual class CPropEntry const * __thiscall CPropertyList::Find(class CDbColId const &)
?Find@CPropertyList@@UAEPBVCPropEntry@@ABVCDbColId@@@Z
; public: virtual class CPropEntry const * __thiscall CPropertyList::Find(unsigned short const *)
?Find@CPropertyList@@UAEPBVCPropEntry@@PBG@Z
; public: virtual class CPropEntry const * __thiscall CStaticPropertyList::Find(unsigned short const *)
?Find@CStaticPropertyList@@UAEPBVCPropEntry@@PBG@Z
; public: int __thiscall CPidLookupTable::FindPropid(class CFullPropSpec const &,unsigned long &,int)
?FindPropid@CPidLookupTable@@QAEHABVCFullPropSpec@@AAKH@Z
; public: void __thiscall CDynStream::Flush(void)
?Flush@CDynStream@@QAEXXZ
; public: void __thiscall CPhysStorage::Flush(int)
?Flush@CPhysStorage@@QAEXH@Z
; public: void __thiscall CPropStoreManager::Flush(void)
?Flush@CPropStoreManager@@QAEXXZ
; public: static void __stdcall CCiOle::FlushIdle(void)
?FlushIdle@CCiOle@@SGXXZ
; public: struct tagDBCOMMANDTREE * __thiscall CTextToTree::FormFullTree(void)
?FormFullTree@CTextToTree@@QAEPAUtagDBCOMMANDTREE@@XZ
; class CDbCmdTreeNode * __stdcall FormQueryTree(class CDbCmdTreeNode &,class CCatState &,struct IColumnMapper *,int,int)
?FormQueryTree@@YGPAVCDbCmdTreeNode@@AAV1@AAVCCatState@@PAUIColumnMapper@@HH@Z
; public: unsigned long __thiscall CRegAccess::Get(unsigned short const *)
?Get@CRegAccess@@QAEKPBG@Z
; public: void __thiscall CRegAccess::Get(unsigned short const *,unsigned short *,unsigned int)
?Get@CRegAccess@@QAEXPBGPAGI@Z
; public: int __thiscall CWin32RegAccess::Get(unsigned short const *,unsigned long &)
?Get@CWin32RegAccess@@QAEHPBGAAK@Z
; public: int __thiscall CWin32RegAccess::Get(unsigned short const *,unsigned short *,unsigned int,int)
?Get@CWin32RegAccess@@QAEHPBGPAGIH@Z
; public: virtual long __thiscall CPropertyList::GetAllEntries(class CPropEntry * *,unsigned long)
?GetAllEntries@CPropertyList@@UAEJPAPAVCPropEntry@@K@Z
; public: short __thiscall CAllocStorageVariant::GetBOOL(unsigned int)const 
?GetBOOL@CAllocStorageVariant@@QBEFI@Z
; public: unsigned long __thiscall CPropStoreManager::GetBackupSize(unsigned long)
?GetBackupSize@CPropStoreManager@@QAEKK@Z
; public: virtual void __thiscall CMemDeSerStream::GetBlob(unsigned char *,unsigned long)
?GetBlob@CMemDeSerStream@@UAEXPAEK@Z
; unsigned long __stdcall GetBrowserCodepage(class CWebServer &,unsigned long)
?GetBrowserCodepage@@YGKAAVCWebServer@@K@Z
; public: virtual unsigned char __thiscall CMemDeSerStream::GetByte(void)
?GetByte@CMemDeSerStream@@UAEEXZ
; public: unsigned short const * __thiscall CCatState::GetCD(void)
?GetCD@CCatState@@QAEPBGXZ
; public: int __thiscall CWebServer::GetCGIVariable(char const *,class XArray<unsigned short> &,unsigned long &)
?GetCGIVariable@CWebServer@@QAEHPBDAAV?$XArray@G@@AAK@Z
; public: int __thiscall CWebServer::GetCGIVariableW(unsigned short const *,class XArray<unsigned short> &,unsigned long &)
?GetCGIVariableW@CWebServer@@QAEHPBGAAV?$XArray@G@@AAK@Z
; public: struct _GUID  __thiscall CAllocStorageVariant::GetCLSID(unsigned int)const 
?GetCLSID@CAllocStorageVariant@@QBE?AU_GUID@@I@Z
; public: union tagCY  __thiscall CAllocStorageVariant::GetCY(unsigned int)const 
?GetCY@CAllocStorageVariant@@QBE?ATtagCY@@I@Z
; public: unsigned short const * __thiscall CCatState::GetCategory(unsigned int)const 
?GetCategory@CCatState@@QBEPBGI@Z
; public: virtual void __thiscall CMemDeSerStream::GetChar(char *,unsigned long)
?GetChar@CMemDeSerStream@@UAEXPADK@Z
; public: unsigned short const * __thiscall CCatState::GetColumn(unsigned int)const 
?GetColumn@CCatState@@QBEPBGI@Z
; public: unsigned short __thiscall CQueryScanner::GetCommandChar(void)
?GetCommandChar@CQueryScanner@@QAEGXZ
; public: double __thiscall CAllocStorageVariant::GetDATE(unsigned int)const 
?GetDATE@CAllocStorageVariant@@QBENI@Z
; public: int __thiscall CCatalogAdmin::GetDWORDParam(unsigned short const *,unsigned long &)
?GetDWORDParam@CCatalogAdmin@@QAEHPBGAAK@Z
; public: int __thiscall CMachineAdmin::GetDWORDParam(unsigned short const *,unsigned long &)
?GetDWORDParam@CMachineAdmin@@QAEHPBGAAK@Z
; public: void __thiscall CDriveInfo::GetDiskSpace(__int64 &,__int64 &)
?GetDiskSpace@CDriveInfo@@QAEXAA_J0@Z
; public: virtual double __thiscall CMemDeSerStream::GetDouble(void)
?GetDouble@CMemDeSerStream@@UAENXZ
; public: static void __stdcall CDriveInfo::GetDrive(unsigned short const *,unsigned short *)
?GetDrive@CDriveInfo@@SGXPBGPAG@Z
; public: unsigned char * __thiscall CGenericCiProxy::GetEntryBuffer(unsigned long &)
?GetEntryBuffer@CGenericCiProxy@@QAEPAEAAK@Z
; public: struct _FILETIME  __thiscall CAllocStorageVariant::GetFILETIME(unsigned int)const 
?GetFILETIME@CAllocStorageVariant@@QBE?AU_FILETIME@@I@Z
; public: int __thiscall CPathParser::GetFileName(unsigned short *,unsigned long &)const 
?GetFileName@CPathParser@@QBEHPAGAAK@Z
; public: enum CDriveInfo::eFileSystem  __thiscall CDriveInfo::GetFileSystem(int)
?GetFileSystem@CDriveInfo@@QAE?AW4eFileSystem@1@H@Z
; public: virtual float __thiscall CMemDeSerStream::GetFloat(void)
?GetFloat@CMemDeSerStream@@UAEMXZ
; public: virtual void __thiscall CMemDeSerStream::GetGUID(struct _GUID &)
?GetGUID@CMemDeSerStream@@UAEXAAU_GUID@@@Z
; class CPropListFile * __stdcall GetGlobalPropListFile(void)
?GetGlobalPropListFile@@YGPAVCPropListFile@@XZ
; class CStaticPropertyList * __stdcall GetGlobalStaticPropertyList(void)
?GetGlobalStaticPropertyList@@YGPAVCStaticPropertyList@@XZ
; public: short __thiscall CAllocStorageVariant::GetI2(unsigned int)const 
?GetI2@CAllocStorageVariant@@QBEFI@Z
; public: long __thiscall CAllocStorageVariant::GetI4(unsigned int)const 
?GetI4@CAllocStorageVariant@@QBEJI@Z
; public: union _LARGE_INTEGER  __thiscall CAllocStorageVariant::GetI8(unsigned int)const 
?GetI8@CAllocStorageVariant@@QBE?AT_LARGE_INTEGER@@I@Z
; unsigned long __stdcall GetLCIDFromString(unsigned short *)
?GetLCIDFromString@@YGKPAG@Z
; public: char * __thiscall CAllocStorageVariant::GetLPSTR(unsigned int)const 
?GetLPSTR@CAllocStorageVariant@@QBEPADI@Z
; public: unsigned short * __thiscall CAllocStorageVariant::GetLPWSTR(unsigned int)const 
?GetLPWSTR@CAllocStorageVariant@@QBEPAGI@Z
; public: unsigned short const * __thiscall CCatalogAdmin::GetLocation(void)
?GetLocation@CCatalogAdmin@@QAEPBGXZ
; public: virtual long __thiscall CMemDeSerStream::GetLong(void)
?GetLong@CMemDeSerStream@@UAEJXZ
; public: int __thiscall CQueryScanner::GetNumber(long &,int &)
?GetNumber@CQueryScanner@@QAEHAAJAAH@Z
; public: int __thiscall CQueryScanner::GetNumber(unsigned long &,int &)
?GetNumber@CQueryScanner@@QAEHAAKAAH@Z
; public: int __thiscall CQueryScanner::GetNumber(__int64 &,int &)
?GetNumber@CQueryScanner@@QAEHAA_JAAH@Z
; public: int __thiscall CQueryScanner::GetNumber(unsigned __int64 &,int &)
?GetNumber@CQueryScanner@@QAEHAA_KAAH@Z
; public: void __thiscall CKeyDeComp::GetOffset(struct BitOffset &)
?GetOffset@CKeyDeComp@@QAEXAAUBitOffset@@@Z
; long __stdcall GetOleDBErrorInfo(struct IUnknown *,struct _GUID const &,unsigned long,unsigned int,struct tagERRORINFO *,struct IErrorInfo * *)
?GetOleDBErrorInfo@@YGJPAUIUnknown@@ABU_GUID@@KIPAUtagERRORINFO@@PAPAUIErrorInfo@@@Z
; long __stdcall GetOleError(class CException &)
?GetOleError@@YGJAAVCException@@@Z
; public: unsigned long __thiscall CWebServer::GetPhysicalPath(unsigned short const *,unsigned short *,unsigned long,unsigned long)
?GetPhysicalPath@CWebServer@@QAEKPBGPAGKK@Z
; public: int __thiscall CEmptyPropertyList::GetPropInfo(class CDbColId const &,unsigned short const * *,unsigned short *,unsigned int *)
?GetPropInfo@CEmptyPropertyList@@QAEHABVCDbColId@@PAPBGPAGPAI@Z
; public: int __thiscall CEmptyPropertyList::GetPropInfo(unsigned short const *,class CDbColId * *,unsigned short *,unsigned int *)
?GetPropInfo@CEmptyPropertyList@@QAEHPBGPAPAVCDbColId@@PAGPAI@Z
; public: virtual long __stdcall CEmptyPropertyList::GetPropInfoFromId(struct tagDBID const *,unsigned short * *,unsigned short *,unsigned int *)
?GetPropInfoFromId@CEmptyPropertyList@@UAGJPBUtagDBID@@PAPAGPAGPAI@Z
; public: virtual long __stdcall CEmptyPropertyList::GetPropInfoFromName(unsigned short const *,struct tagDBID * *,unsigned short *,unsigned int *)
?GetPropInfoFromName@CEmptyPropertyList@@UAGJPBGPAPAUtagDBID@@PAGPAI@Z
; public: static unsigned short __stdcall CEmptyPropertyList::GetPropType(unsigned int)
?GetPropType@CEmptyPropertyList@@SGGI@Z
; public: static unsigned int __stdcall CEmptyPropertyList::GetPropTypeCount(void)
?GetPropTypeCount@CEmptyPropertyList@@SGIXZ
; public: static unsigned short const * __stdcall CEmptyPropertyList::GetPropTypeName(unsigned int)
?GetPropTypeName@CEmptyPropertyList@@SGPBGI@Z
; public: virtual long __stdcall CDbProperties::GetProperties(unsigned long,struct tagDBPROPIDSET const * const,unsigned long *,struct tagDBPROPSET * *)
?GetProperties@CDbProperties@@UAGJKQBUtagDBPROPIDSET@@PAKPAPAUtagDBPROPSET@@@Z
; public: void __thiscall CGetDbProps::GetProperties(struct IDBProperties *,unsigned long)
?GetProperties@CGetDbProps@@QAEXPAUIDBProperties@@K@Z
; public: virtual long __stdcall CDbProperties::GetPropertyInfo(unsigned long,struct tagDBPROPIDSET const * const,unsigned long *,struct tagDBPROPINFOSET * *,unsigned short * *)
?GetPropertyInfo@CDbProperties@@UAGJKQBUtagDBPROPIDSET@@PAKPAPAUtagDBPROPINFOSET@@PAPAG@Z
; public: float __thiscall CAllocStorageVariant::GetR4(unsigned int)const 
?GetR4@CAllocStorageVariant@@QBEMI@Z
; public: double __thiscall CAllocStorageVariant::GetR8(unsigned int)const 
?GetR8@CAllocStorageVariant@@QBENI@Z
; public: int __thiscall CMachineAdmin::GetSZParam(unsigned short const *,unsigned short *,unsigned long)
?GetSZParam@CMachineAdmin@@QAEHPBGPAGK@Z
; long __stdcall GetScodeError(class CException &)
?GetScodeError@@YGJAAVCException@@@Z
; int __stdcall GetSecret(unsigned short const *,unsigned short const *,unsigned short * *,unsigned long *)
?GetSecret@@YGHPBG0PAPAGPAK@Z
; public: unsigned long __thiscall CDriveInfo::GetSectorSize(void)
?GetSectorSize@CDriveInfo@@QAEKXZ
; public: void __thiscall CCatState::GetSortProp(unsigned int,unsigned short const * *,enum SORTDIR *)const 
?GetSortProp@CCatState@@QBEXIPAPBGPAW4SORTDIR@@@Z
; void __stdcall GetStackTrace(char *,unsigned long)
?GetStackTrace@@YGXPADK@Z
; public: unsigned char const * __thiscall CGenericCiProxy::GetStartupData(struct _GUID &,unsigned long &)
?GetStartupData@CGenericCiProxy@@QAEPBEAAU_GUID@@AAK@Z
; public: class PStorage & __thiscall CPropStoreManager::GetStorage(unsigned long)
?GetStorage@CPropStoreManager@@QAEAAVPStorage@@K@Z
; public: unsigned short * __thiscall CKey::GetStr(void)const 
?GetStr@CKey@@QBEPAGXZ
; public: unsigned short * __thiscall CKeyBuf::GetStr(void)const 
?GetStr@CKeyBuf@@QBEPAGXZ
; public: virtual char * __thiscall CMemDeSerStream::GetString(void)
?GetString@CMemDeSerStream@@UAEPADXZ
; class CDbRestriction * __stdcall GetStringDbRestriction(unsigned short const *,unsigned long,struct IColumnMapper *,unsigned long)
?GetStringDbRestriction@@YGPAVCDbRestriction@@PBGKPAUIColumnMapper@@K@Z
; unsigned short const * __stdcall GetStringFromLCID(unsigned long)
?GetStringFromLCID@@YGPBGK@Z
; void __stdcall GetStringFromLCID(unsigned long,unsigned short *)
?GetStringFromLCID@@YGXKPAG@Z
; public: unsigned long __thiscall CPropStoreManager::GetTotalSizeInKB(void)
?GetTotalSizeInKB@CPropStoreManager@@QAEKXZ
; public: unsigned long __thiscall CPropertyStore::GetTotalSizeInKB(void)
?GetTotalSizeInKB@CPropertyStore@@QAEKXZ
; public: virtual unsigned long __thiscall CMemDeSerStream::GetULong(void)
?GetULong@CMemDeSerStream@@UAEKXZ
; public: virtual unsigned short __thiscall CMemDeSerStream::GetUShort(void)
?GetUShort@CMemDeSerStream@@UAEGXZ
; public: void __thiscall CIndexTable::GetUserHdrInfo(unsigned int &,int &)
?GetUserHdrInfo@CIndexTable@@QAEXAAIAAH@Z
; public: unsigned long __thiscall CMetaDataMgr::GetVPathAccess(unsigned short const *)
?GetVPathAccess@CMetaDataMgr@@QAEKPBG@Z
; public: unsigned long __thiscall CMetaDataMgr::GetVPathAuthorization(unsigned short const *)
?GetVPathAuthorization@CMetaDataMgr@@QAEKPBG@Z
; public: unsigned long __thiscall CMetaDataMgr::GetVPathSSLAccess(unsigned short const *)
?GetVPathSSLAccess@CMetaDataMgr@@QAEKPBG@Z
; public: unsigned short const * __thiscall CDriveInfo::GetVolumeName(int)
?GetVolumeName@CDriveInfo@@QAEPBGH@Z
; public: virtual void __thiscall CMemDeSerStream::GetWChar(unsigned short *,unsigned long)
?GetWChar@CMemDeSerStream@@UAEXPAGK@Z
; public: virtual unsigned short * __thiscall CMemDeSerStream::GetWString(void)
?GetWString@CMemDeSerStream@@UAEPAGXZ
; public: long __thiscall CDbCmdTreeNode::GetWeight(void)const 
?GetWeight@CDbCmdTreeNode@@QBEJXZ
; public: void __thiscall CDynStream::Grow(class PStorage &,unsigned long)
?Grow@CDynStream@@QAEXAAVPStorage@@K@Z
; private: void __thiscall CVirtualString::GrowBuffer(unsigned long)
?GrowBuffer@CVirtualString@@AAEXK@Z
; void __stdcall HTMLEscapeW(unsigned short const *,class CVirtualString &,unsigned long)
?HTMLEscapeW@@YGXPBGAAVCVirtualString@@K@Z
; private: void __thiscall CImpersonateClient::Impersonate(void)
?Impersonate@CImpersonateClient@@AAEXXZ
; public: void __thiscall CFileMapView::Init(void)
?Init@CFileMapView@@QAEXXZ
; public: void __thiscall CMmStreamConsecBuf::Init(class PMmStream *)
?Init@CMmStreamConsecBuf@@QAEXPAVPMmStream@@@Z
; public: int __thiscall CPidLookupTable::Init(class PRcovStorageObj *)
?Init@CPidLookupTable@@QAEHPAVPRcovStorageObj@@@Z
; public: void __thiscall CRcovStorageHdr::Init(unsigned long)
?Init@CRcovStorageHdr@@QAEXK@Z
; public: void __thiscall CRegChangeEvent::Init(void)
?Init@CRegChangeEvent@@QAEXXZ
; public: int __thiscall CSdidLookupTable::Init(class CiStorage *)
?Init@CSdidLookupTable@@QAEHPAVCiStorage@@@Z
; public: virtual void __thiscall CCombinedPropertyList::InitIterator(void)
?InitIterator@CCombinedPropertyList@@UAEXXZ
; public: virtual void __thiscall CPropertyList::InitIterator(void)
?InitIterator@CPropertyList@@UAEXXZ
; public: virtual void __thiscall CStaticPropertyList::InitIterator(void)
?InitIterator@CStaticPropertyList@@UAEXXZ
; public: void __thiscall CImpersonationTokenCache::Initialize(unsigned short const *,int,int,int,unsigned long,unsigned long,unsigned long)
?Initialize@CImpersonationTokenCache@@QAEXPBGHHHKKK@Z
; public: void __thiscall CDynStream::InitializeForRead(void)
?InitializeForRead@CDynStream@@QAEXXZ
; public: void __thiscall CDynStream::InitializeForWrite(unsigned long)
?InitializeForWrite@CDynStream@@QAEXK@Z
; protected: void __thiscall CDbCmdTreeNode::InsertChild(class CDbCmdTreeNode *)
?InsertChild@CDbCmdTreeNode@@IAEXPAV1@@Z
; public: int __thiscall CDbPropertyRestriction::IsCIDialect(void)
?IsCIDialect@CDbPropertyRestriction@@QAEHXZ
; public: int __thiscall CMachineAdmin::IsCIEnabled(void)
?IsCIEnabled@CMachineAdmin@@QAEHXZ
; public: int __thiscall CMachineAdmin::IsCIPaused(void)
?IsCIPaused@CMachineAdmin@@QAEHXZ
; public: int __thiscall CMachineAdmin::IsCIStarted(void)
?IsCIStarted@CMachineAdmin@@QAEHXZ
; public: int __thiscall CMachineAdmin::IsCIStopped(void)
?IsCIStopped@CMachineAdmin@@QAEHXZ
; public: int __thiscall CCatalogAdmin::IsCatalogInactive(void)
?IsCatalogInactive@CCatalogAdmin@@QAEHXZ
; int __stdcall IsDirectoryWritable(unsigned short const *)
?IsDirectoryWritable@@YGHPBG@Z
; public: static int __stdcall CMetaDataMgr::IsIISAdminUp(int &)
?IsIISAdminUp@CMetaDataMgr@@SGHAAH@Z
; public: static int __stdcall CImpersonateSystem::IsImpersonated(void)
?IsImpersonated@CImpersonateSystem@@SGHXZ
; public: int __thiscall CRestriction::IsLeaf(void)const 
?IsLeaf@CRestriction@@QBEHXZ
; int __stdcall IsNullPointerVariant(struct tagPROPVARIANT *)
?IsNullPointerVariant@@YGHPAUtagPROPVARIANT@@@Z
; public: int __thiscall CCatalogAdmin::IsPaused(void)
?IsPaused@CCatalogAdmin@@QAEHXZ
; public: static int __stdcall CImpersonateSystem::IsRunningAsSystem(void)
?IsRunningAsSystem@CImpersonateSystem@@SGHXZ
; public: int __thiscall CDriveInfo::IsSameDrive(unsigned short const *)
?IsSameDrive@CDriveInfo@@QAEHPBG@Z
; long __stdcall IsScopeValid(unsigned short const *,unsigned int,int)
?IsScopeValid@@YGJPBGIH@Z
; public: int __thiscall CCatalogAdmin::IsStarted(void)
?IsStarted@CCatalogAdmin@@QAEHXZ
; public: int __thiscall CCatalogAdmin::IsStopped(void)
?IsStopped@CCatalogAdmin@@QAEHXZ
; public: int __thiscall CAllocStorageVariant::IsValid(void)const 
?IsValid@CAllocStorageVariant@@QBEHXZ
; public: int __thiscall CNodeRestriction::IsValid(void)const 
?IsValid@CNodeRestriction@@QBEHXZ
; public: int __thiscall COccRestriction::IsValid(void)const 
?IsValid@COccRestriction@@QBEHXZ
; public: int __thiscall CRestriction::IsValid(void)const 
?IsValid@CRestriction@@QBEHXZ
; public: int __thiscall CFilterDaemon::IsWaitingForDocument(void)
?IsWaitingForDocument@CFilterDaemon@@QAEHXZ
; public: int __thiscall CDriveInfo::IsWriteProtected(void)
?IsWriteProtected@CDriveInfo@@QAEHXZ
; public: void __thiscall CLocalGlobalPropertyList::Load(unsigned short const * const)
?Load@CLocalGlobalPropertyList@@QAEXQBG@Z
; unsigned long __stdcall LocaleToCodepage(unsigned long)
?LocaleToCodepage@@YGKK@Z
; private: unsigned long __thiscall CPropertyStore::LokNewWorkId(unsigned long,int,int)
?LokNewWorkId@CPropertyStore@@AAEKKHH@Z
; public: int __thiscall CCatStateInfo::LokUpdate(void)
?LokUpdate@CCatStateInfo@@QAEHXZ
; public: void __thiscall CPropStoreManager::LongInit(int &,unsigned long &,void (__stdcall*)(unsigned long,int,void const *),void const *)
?LongInit@CPropStoreManager@@QAEXAAHAAKP6GXKHPBX@Z2@Z
; private: unsigned int __thiscall CPropStoreInfo::Lookup(unsigned long)
?Lookup@CPropStoreInfo@@AAEIK@Z
; public: unsigned long __thiscall CSdidLookupTable::LookupSDID(void *,unsigned long)
?LookupSDID@CSdidLookupTable@@QAEKPAXK@Z
; public: void __thiscall CPhysStorage::MakeBackupCopy(class CPhysStorage &,class PSaveProgressTracker &)
?MakeBackupCopy@CPhysStorage@@QAEXAAV1@AAVPSaveProgressTracker@@@Z
; public: void __thiscall CPidLookupTable::MakeBackupCopy(class PRcovStorageObj &,class PSaveProgressTracker &)
?MakeBackupCopy@CPidLookupTable@@QAEXAAVPRcovStorageObj@@AAVPSaveProgressTracker@@@Z
; public: void __thiscall CPropStoreManager::MakeBackupCopy(struct IProgressNotify *,int &,class CiStorage &,struct ICiEnumWorkids *,struct IEnumString * *)
?MakeBackupCopy@CPropStoreManager@@QAEXPAUIProgressNotify@@AAHAAVCiStorage@@PAUICiEnumWorkids@@PAPAUIEnumString@@@Z
; long __stdcall MakeICommand(struct IUnknown * *,unsigned short const *,unsigned short const *,struct IUnknown *)
?MakeICommand@@YGJPAPAUIUnknown@@PBG1PAU1@@Z
; long __stdcall MakeISearch(struct ISearchQueryHits * *,class CDbRestriction *,unsigned short const *)
?MakeISearch@@YGJPAPAUISearchQueryHits@@PAVCDbRestriction@@PBG@Z
; long __stdcall MakeLocalICommand(struct IUnknown * *,struct ICiCDocStore *,struct IUnknown *)
?MakeLocalICommand@@YGJPAPAUIUnknown@@PAUICiCDocStore@@PAU1@@Z
; long __stdcall MakeMetadataICommand(struct IUnknown * *,enum CiMetaData,unsigned short const *,unsigned short const *,struct IUnknown *)
?MakeMetadataICommand@@YGJPAPAUIUnknown@@W4CiMetaData@@PBG2PAU1@@Z
; public: void __thiscall CFullPath::MakePath(unsigned short const *)
?MakePath@CFullPath@@QAEXPBG@Z
; public: void __thiscall CFullPath::MakePath(unsigned short const *,unsigned int)
?MakePath@CFullPath@@QAEXPBGI@Z
; private: void __thiscall CImpersonateSystem::MakePrivileged(void)
?MakePrivileged@CImpersonateSystem@@AAEXXZ
; public: void __thiscall CMmStreamConsecBuf::Map(unsigned long)
?Map@CMmStreamConsecBuf@@QAEXK@Z
; public: int __thiscall CDynStream::MarkDirty(void)
?MarkDirty@CDynStream@@QAEHXZ
; public: void __thiscall CBaseStorageVariant::Marshall(class PSerStream &)const 
?Marshall@CBaseStorageVariant@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CContentRestriction::Marshall(class PSerStream &)const 
?Marshall@CContentRestriction@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CDbByGuid::Marshall(class PSerStream &)const 
?Marshall@CDbByGuid@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CDbCmdTreeNode::Marshall(class PSerStream &)const 
?Marshall@CDbCmdTreeNode@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CDbColId::Marshall(class PSerStream &)const 
?Marshall@CDbColId@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CDbContentVector::Marshall(class PSerStream &)const 
?Marshall@CDbContentVector@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CDbNumeric::Marshall(class PSerStream &)const 
?Marshall@CDbNumeric@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CDbParameter::Marshall(class PSerStream &)const 
?Marshall@CDbParameter@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CDbProp::Marshall(class PSerStream &)const 
?Marshall@CDbProp@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CDbPropSet::Marshall(class PSerStream &)const 
?Marshall@CDbPropSet@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CFullPropSpec::Marshall(class PSerStream &)const 
?Marshall@CFullPropSpec@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CNatLanguageRestriction::Marshall(class PSerStream &)const 
?Marshall@CNatLanguageRestriction@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CNodeRestriction::Marshall(class PSerStream &)const 
?Marshall@CNodeRestriction@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CNotRestriction::Marshall(class PSerStream &)const 
?Marshall@CNotRestriction@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CPropNameArray::Marshall(class PSerStream &)const 
?Marshall@CPropNameArray@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CPropertyRestriction::Marshall(class PSerStream &)const 
?Marshall@CPropertyRestriction@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CRestriction::Marshall(class PSerStream &)const 
?Marshall@CRestriction@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CVectorRestriction::Marshall(class PSerStream &)const 
?Marshall@CVectorRestriction@@QBEXAAVPSerStream@@@Z
; public: int __thiscall CBufferCache::MinPageInUse(unsigned long &)
?MinPageInUse@CBufferCache@@QAEHAAK@Z
; public: int __thiscall CPhysStorage::MinPageInUse(unsigned long &)
?MinPageInUse@CPhysStorage@@QAEHAAK@Z
; unsigned long __stdcall MultiByteToXArrayWideChar(unsigned char const *,unsigned long,unsigned int,class XArray<unsigned short> &)
?MultiByteToXArrayWideChar@@YGKPBEKIAAV?$XArray@G@@@Z
; unsigned __int64 __cdecl My_wcstoui64(unsigned short const *,unsigned short * *,int)
?My_wcstoui64@@YA_KPBGPAPAGH@Z
; public: unsigned long __thiscall CPidRemapper::NameToReal(class CFullPropSpec const *)
?NameToReal@CPidRemapper@@QAEKPBVCFullPropSpec@@@Z
; public: static struct IStemmer * __stdcall CCiOle::NewStemmer(struct _GUID const &)
?NewStemmer@CCiOle@@SGPAUIStemmer@@ABU_GUID@@@Z
; public: static struct IWordBreaker * __stdcall CCiOle::NewWordBreaker(struct _GUID const &)
?NewWordBreaker@CCiOle@@SGPAUIWordBreaker@@ABU_GUID@@@Z
; public: int __thiscall CCatalogEnum::Next(void)
?Next@CCatalogEnum@@QAEHXZ
; public: virtual class CPropEntry const * __thiscall CCombinedPropertyList::Next(void)
?Next@CCombinedPropertyList@@UAEPBVCPropEntry@@XZ
; public: virtual long __stdcall CEnumString::Next(unsigned long,unsigned short * *,unsigned long *)
?Next@CEnumString@@UAGJKPAPAGPAK@Z
; public: virtual long __stdcall CEnumWorkid::Next(unsigned long,unsigned long *,unsigned long *)
?Next@CEnumWorkid@@UAGJKPAK0@Z
; public: virtual class CPropEntry const * __thiscall CPropertyList::Next(void)
?Next@CPropertyList@@UAEPBVCPropEntry@@XZ
; public: int __thiscall CScopeEnum::Next(void)
?Next@CScopeEnum@@QAEHXZ
; public: virtual class CPropEntry const * __thiscall CStaticPropertyList::Next(void)
?Next@CStaticPropertyList@@UAEPBVCPropEntry@@XZ
; public: unsigned long __thiscall CPropertyStoreWids::NextWorkId(void)
?NextWorkId@CPropertyStoreWids@@QAEKXZ
; public: int __thiscall CRequestClient::NotifyWriteRead(void *,void *,unsigned long,void *,unsigned long,unsigned long &)
?NotifyWriteRead@CRequestClient@@QAEHPAX0K0KAAK@Z
; public: unsigned int __thiscall CCatState::NumberOfColumns(void)const 
?NumberOfColumns@CCatState@@QBEIXZ
; public: unsigned int __thiscall CCatState::NumberOfSortProps(void)const 
?NumberOfSortProps@CCatState@@QBEIXZ
; public: void __thiscall CMmStream::Open(unsigned short const *,unsigned long,unsigned long,unsigned long,unsigned long,int)
?Open@CMmStream@@QAEXPBGKKKKH@Z
; public: int __thiscall COLEPropManager::Open(class CFunnyPath const &)
?Open@COLEPropManager@@QAEHABVCFunnyPath@@@Z
; public: void __thiscall CMmStream::OpenExclusive(unsigned short *,int)
?OpenExclusive@CMmStream@@QAEXPAGH@Z
; struct _iobuf * __stdcall OpenFileFromPath(unsigned short const *)
?OpenFileFromPath@@YGPAU_iobuf@@PBG@Z
; public: class CCompositePropRecord * __thiscall CPropStoreManager::OpenRecord(unsigned long,unsigned char *)
?OpenRecord@CPropStoreManager@@QAEPAVCCompositePropRecord@@KPAE@Z
; public: class CCompositePropRecordForWrites * __thiscall CPropStoreManager::OpenRecordForWrites(unsigned long,unsigned char *)
?OpenRecordForWrites@CPropStoreManager@@QAEPAVCCompositePropRecordForWrites@@KPAE@Z
; long __stdcall ParseCatalogURL(unsigned short const *,class XPtrST<unsigned short> &,class XPtrST<unsigned short> &)
?ParseCatalogURL@@YGJPBGAAV?$XPtrST@G@@1@Z
; public: class CRestriction * __thiscall CParseCommandTree::ParseExpression(class CDbCmdTreeNode *)
?ParseExpression@CParseCommandTree@@QAEPAVCRestriction@@PAVCDbCmdTreeNode@@@Z
; public: static void __stdcall CPropertyList::ParseOneLine(class CQueryScanner &,int,class XPtr<class CPropEntry> &)
?ParseOneLine@CPropertyList@@SGXAAVCQueryScanner@@HAAV?$XPtr@VCPropEntry@@@@@Z
; public: class CDbRestriction * __thiscall CQueryParser::ParseQueryPhrase(void)
?ParseQueryPhrase@CQueryParser@@QAEPAVCDbRestriction@@XZ
; class CDbColumns * __stdcall ParseStringColumns(unsigned short const *,struct IColumnMapper *,unsigned long,class PVariableSet *,class CDynArray<unsigned short> *)
?ParseStringColumns@@YGPAVCDbColumns@@PBGPAUIColumnMapper@@KPAVPVariableSet@@PAV?$CDynArray@G@@@Z
; public: void __thiscall CParseCommandTree::ParseTree(class CDbCmdTreeNode *)
?ParseTree@CParseCommandTree@@QAEXPAVCDbCmdTreeNode@@@Z
; public: int __thiscall CCatalogAdmin::Pause(void)
?Pause@CCatalogAdmin@@QAEHXZ
; public: int __thiscall CMachineAdmin::PauseCI(void)
?PauseCI@CMachineAdmin@@QAEHXZ
; public: virtual unsigned long __thiscall CMemDeSerStream::PeekULong(void)
?PeekULong@CMemDeSerStream@@UAEKXZ
; public: unsigned long __thiscall CPidMapper::PidToRealPid(unsigned long)
?PidToRealPid@CPidMapper@@QAEKK@Z
; public: unsigned long __thiscall CStandardPropMapper::PropertyToPropId(class CFullPropSpec const &,int)
?PropertyToPropId@CStandardPropMapper@@QAEKABVCFullPropSpec@@H@Z
; public: virtual long __stdcall CFwPropertyMapper::PropertyToPropid(struct tagFULLPROPSPEC const *,int,unsigned long *)
?PropertyToPropid@CFwPropertyMapper@@UAGJPBUtagFULLPROPSPEC@@HPAK@Z
; public: void __thiscall CValueNormalizer::PutMaxValue(unsigned long,unsigned long &,enum VARENUM)
?PutMaxValue@CValueNormalizer@@QAEXKAAKW4VARENUM@@@Z
; public: void __thiscall CValueNormalizer::PutMinValue(unsigned long,unsigned long &,enum VARENUM)
?PutMinValue@CValueNormalizer@@QAEXKAAKW4VARENUM@@@Z
; public: void __thiscall CValueNormalizer::PutValue(unsigned long,unsigned long &,class CStorageVariant const &)
?PutValue@CValueNormalizer@@QAEXKAAKABVCStorageVariant@@@Z
; void __stdcall PutWString(class PSerStream &,unsigned short const *)
?PutWString@@YGXAAVPSerStream@@PBG@Z
; public: static void __stdcall CDbCmdTreeNode::PutWString(class PSerStream &,unsigned short const *)
?PutWString@CDbCmdTreeNode@@SGXAAVPSerStream@@PBG@Z
; private: class CDbRestriction * __thiscall CQueryParser::Query(class CDbNodeRestriction *)
?Query@CQueryParser@@AAEPAVCDbRestriction@@PAVCDbNodeRestriction@@@Z
; public: class CCatalogAdmin * __thiscall CCatalogEnum::QueryCatalogAdmin(void)
?QueryCatalogAdmin@CCatalogEnum@@QAEPAVCCatalogAdmin@@XZ
; public: class CCatalogAdmin * __thiscall CMachineAdmin::QueryCatalogAdmin(unsigned short const *)
?QueryCatalogAdmin@CMachineAdmin@@QAEPAVCCatalogAdmin@@PBG@Z
; public: class CCatalogEnum * __thiscall CMachineAdmin::QueryCatalogEnum(void)
?QueryCatalogEnum@CMachineAdmin@@QAEPAVCCatalogEnum@@XZ
; public: virtual long __stdcall CDbProperties::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@CDbProperties@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CEmptyPropertyList::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@CEmptyPropertyList@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CEnumString::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@CEnumString@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CEnumWorkid::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@CEnumWorkid@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CFwPropertyMapper::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@CFwPropertyMapper@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CQueryUnknown::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@CQueryUnknown@@UAGJABU_GUID@@PAPAX@Z
; public: class PRcovStorageObj * __thiscall CiStorage::QueryPidLookupTable(unsigned long)
?QueryPidLookupTable@CiStorage@@QAEPAVPRcovStorageObj@@K@Z
; public: class CScopeAdmin * __thiscall CCatalogAdmin::QueryScopeAdmin(unsigned short const *)
?QueryScopeAdmin@CCatalogAdmin@@QAEPAVCScopeAdmin@@PBG@Z
; public: class CScopeAdmin * __thiscall CScopeEnum::QueryScopeAdmin(void)
?QueryScopeAdmin@CScopeEnum@@QAEPAVCScopeAdmin@@XZ
; public: class CScopeEnum * __thiscall CCatalogAdmin::QueryScopeEnum(void)
?QueryScopeEnum@CCatalogAdmin@@QAEPAVCScopeEnum@@XZ
; public: class PRcovStorageObj * __thiscall CiStorage::QueryScopeList(unsigned long)
?QueryScopeList@CiStorage@@QAEPAVPRcovStorageObj@@K@Z
; public: class PRcovStorageObj * __thiscall CiStorage::QuerySdidLookupTable(unsigned long)
?QuerySdidLookupTable@CiStorage@@QAEPAVPRcovStorageObj@@K@Z
; public: class PRcovStorageObj * __thiscall CiStorage::QueryVirtualScopeList(unsigned long)
?QueryVirtualScopeList@CiStorage@@QAEPAVPRcovStorageObj@@K@Z
; public: void __thiscall CPidRemapper::ReBuild(class CPidMapper const &)
?ReBuild@CPidRemapper@@QAEXABVCPidMapper@@@Z
; public: void __thiscall CQueryUnknown::ReInit(unsigned long,class CRowset * *)
?ReInit@CQueryUnknown@@QAEXKPAPAVCRowset@@@Z
; public: void __thiscall CImpersonationTokenCache::ReInitializeIISScopes(void)
?ReInitializeIISScopes@CImpersonationTokenCache@@QAEXXZ
; private: virtual void __thiscall CPhysIndex::ReOpenStream(void)
?ReOpenStream@CPhysIndex@@EAEXXZ
; public: unsigned long __thiscall CDynStream::Read(void *,unsigned long)
?Read@CDynStream@@QAEKPAXK@Z
; public: unsigned long __thiscall CRcovStrmTrans::Read(void *,unsigned long)
?Read@CRcovStrmTrans@@QAEKPAXK@Z
; public: unsigned long __thiscall CRegAccess::Read(unsigned short const *,unsigned long)
?Read@CRegAccess@@QAEKPBGK@Z
; public: unsigned short * __thiscall CRegAccess::Read(unsigned short const *,unsigned short const *)
?Read@CRegAccess@@QAEPAGPBG0@Z
; public: int __thiscall CPropStoreManager::ReadPrimaryProperty(unsigned long,unsigned long,struct tagPROPVARIANT &)
?ReadPrimaryProperty@CPropStoreManager@@QAEHKKAAUtagPROPVARIANT@@@Z
; public: int __thiscall COLEPropManager::ReadProperty(class CFullPropSpec const &,struct tagPROPVARIANT &)
?ReadProperty@COLEPropManager@@QAEHABVCFullPropSpec@@AAUtagPROPVARIANT@@@Z
; public: int __thiscall CPropStoreManager::ReadProperty(class CCompositePropRecord &,unsigned long,struct tagPROPVARIANT &)
?ReadProperty@CPropStoreManager@@QAEHAAVCCompositePropRecord@@KAAUtagPROPVARIANT@@@Z
; public: int __thiscall CPropStoreManager::ReadProperty(class CCompositePropRecord &,unsigned long,struct tagPROPVARIANT &,unsigned char *,unsigned int *)
?ReadProperty@CPropStoreManager@@QAEHAAVCCompositePropRecord@@KAAUtagPROPVARIANT@@PAEPAI@Z
; public: int __thiscall CPropStoreManager::ReadProperty(class CCompositePropRecord &,unsigned long,struct tagPROPVARIANT *,unsigned int *)
?ReadProperty@CPropStoreManager@@QAEHAAVCCompositePropRecord@@KPAUtagPROPVARIANT@@PAI@Z
; public: int __thiscall CPropStoreManager::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT &)
?ReadProperty@CPropStoreManager@@QAEHKKAAUtagPROPVARIANT@@@Z
; public: int __thiscall CPropStoreManager::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT &,unsigned char *,unsigned int *)
?ReadProperty@CPropStoreManager@@QAEHKKAAUtagPROPVARIANT@@PAEPAI@Z
; public: int __thiscall CPropStoreManager::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT *,unsigned int *)
?ReadProperty@CPropStoreManager@@QAEHKKPAUtagPROPVARIANT@@PAI@Z
; public: int __thiscall CPropertyStore::ReadProperty(class CPropRecordNoLock &,unsigned long,struct tagPROPVARIANT *,unsigned int *)
?ReadProperty@CPropertyStore@@QAEHAAVCPropRecordNoLock@@KPAUtagPROPVARIANT@@PAI@Z
; public: int __thiscall CPropertyStore::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT &)
?ReadProperty@CPropertyStore@@QAEHKKAAUtagPROPVARIANT@@@Z
; public: unsigned char __thiscall CDFA::Recognize(unsigned short const *)
?Recognize@CDFA@@QAEEPBG@Z
; public: void __thiscall CCiRegParams::Refresh(struct ICiAdminParams *,int)
?Refresh@CCiRegParams@@QAEXPAUICiAdminParams@@H@Z
; public: void __thiscall CDefColumnRegEntry::Refresh(int)
?Refresh@CDefColumnRegEntry@@QAEXH@Z
; public: void __thiscall CWorkQueue::RefreshParams(unsigned long,unsigned long)
?RefreshParams@CWorkQueue@@QAEXKK@Z
; public: virtual unsigned long __stdcall CDbProperties::Release(void)
?Release@CDbProperties@@UAGKXZ
; public: virtual unsigned long __stdcall CEmptyPropertyList::Release(void)
?Release@CEmptyPropertyList@@UAGKXZ
; public: virtual unsigned long __stdcall CEnumString::Release(void)
?Release@CEnumString@@UAGKXZ
; public: virtual unsigned long __stdcall CEnumWorkid::Release(void)
?Release@CEnumWorkid@@UAGKXZ
; public: virtual unsigned long __stdcall CFwPropertyMapper::Release(void)
?Release@CFwPropertyMapper@@UAGKXZ
; public: void __thiscall CImpersonateRemoteAccess::Release(void)
?Release@CImpersonateRemoteAccess@@QAEXXZ
; public: virtual unsigned long __stdcall CQueryUnknown::Release(void)
?Release@CQueryUnknown@@UAGKXZ
; public: void __thiscall CWorkQueue::Release(class CWorkThread *)
?Release@CWorkQueue@@QAEXPAVCWorkThread@@@Z
; private: void __thiscall CPropertyStore::ReleaseRead(class CReadWriteLockRecord &)
?ReleaseRead@CPropertyStore@@AAEXAAVCReadWriteLockRecord@@@Z
; public: void __thiscall CWorkQueue::ReleaseWorkThreads(void)
?ReleaseWorkThreads@CWorkQueue@@QAEXXZ
; public: void __thiscall CColumns::Remove(unsigned int)
?Remove@CColumns@@QAEXI@Z
; public: void __thiscall CDbSortSet::Remove(unsigned int)
?Remove@CDbSortSet@@QAEXI@Z
; public: void __thiscall CSort::Remove(unsigned int)
?Remove@CSort@@QAEXI@Z
; public: void __thiscall CWorkQueue::Remove(class PWorkItem *)
?Remove@CWorkQueue@@QAEXPAVPWorkItem@@@Z
; public: void __thiscall CMachineAdmin::RemoveCatalog(unsigned short const *,int)
?RemoveCatalog@CMachineAdmin@@QAEXPBGH@Z
; public: void __thiscall CMachineAdmin::RemoveCatalogFiles(unsigned short const *)
?RemoveCatalogFiles@CMachineAdmin@@QAEXPBG@Z
; public: class CRestriction * __thiscall CNodeRestriction::RemoveChild(unsigned int)
?RemoveChild@CNodeRestriction@@QAEPAVCRestriction@@I@Z
; protected: class CDbCmdTreeNode * __thiscall CDbCmdTreeNode::RemoveFirstChild(void)
?RemoveFirstChild@CDbCmdTreeNode@@IAEPAV1@XZ
; public: void __thiscall CCatalogAdmin::RemoveScope(unsigned short const *)
?RemoveScope@CCatalogAdmin@@QAEXPBG@Z
; public: void __thiscall CPhysStorage::Reopen(int)
?Reopen@CPhysStorage@@QAEXH@Z
; public: void __thiscall CEventLog::ReportEventW(class CEventItem &)
?ReportEventW@CEventLog@@QAEXAAVCEventItem@@@Z
; public: void __thiscall CFwEventItem::ReportEventW(struct ICiCAdviseStatus &)
?ReportEventW@CFwEventItem@@QAEXAAUICiCAdviseStatus@@@Z
; public: int __thiscall CPhysStorage::RequiresFlush(unsigned long)
?RequiresFlush@CPhysStorage@@QAEHK@Z
; public: void __thiscall CRegChangeEvent::Reset(void)
?Reset@CRegChangeEvent@@QAEXXZ
; public: void __thiscall CQueryScanner::ResetBuffer(unsigned short const *)
?ResetBuffer@CQueryScanner@@QAEXPBG@Z
; protected: void __thiscall CAllocStorageVariant::ResetType(class PMemoryAllocator &)
?ResetType@CAllocStorageVariant@@IAEXAAVPMemoryAllocator@@@Z
; public: void __thiscall CProcess::Resume(void)
?Resume@CProcess@@QAEXXZ
; public: void __thiscall CPhysStorage::ReturnBuffer(unsigned long,int,int)
?ReturnBuffer@CPhysStorage@@QAEXKHH@Z
; public: void __thiscall CMmStreamConsecBuf::Rewind(void)
?Rewind@CMmStreamConsecBuf@@QAEXXZ
; unsigned long __stdcall SaComputeSize(unsigned short,struct tagSAFEARRAY &)
?SaComputeSize@@YGKGAAUtagSAFEARRAY@@@Z
; int __stdcall SaCreateAndCopy(class PMemoryAllocator &,struct tagSAFEARRAY *,struct tagSAFEARRAY * *)
?SaCreateAndCopy@@YGHAAVPMemoryAllocator@@PAUtagSAFEARRAY@@PAPAU2@@Z
; int __stdcall SaCreateData(class PVarAllocator &,unsigned short,struct tagSAFEARRAY &,struct tagSAFEARRAY &,int)
?SaCreateData@@YGHAAVPVarAllocator@@GAAUtagSAFEARRAY@@1H@Z
; public: int __thiscall CRcovStrmTrans::Seek(unsigned long)
?Seek@CRcovStrmTrans@@QAEHK@Z
; public: void __thiscall CDbQueryResults::Serialize(class PSerStream &)const 
?Serialize@CDbQueryResults@@QBEXAAVPSerStream@@@Z
; public: void __thiscall CPidRemapper::Set(class XArray<unsigned long> &)
?Set@CPidRemapper@@QAEXAAV?$XArray@K@@@Z
; public: void __thiscall CScopeAdmin::SetAlias(unsigned short const *)
?SetAlias@CScopeAdmin@@QAEXPBG@Z
; public: void __thiscall CStorageVariant::SetBOOL(short,unsigned int)
?SetBOOL@CStorageVariant@@QAEXFI@Z
; public: void __thiscall CAllocStorageVariant::SetBSTR(unsigned short *,class PMemoryAllocator &)
?SetBSTR@CAllocStorageVariant@@QAEXPAGAAVPMemoryAllocator@@@Z
; public: void __thiscall CStorageVariant::SetBSTR(unsigned short *,unsigned int)
?SetBSTR@CStorageVariant@@QAEXPAGI@Z
; public: void __thiscall CPropStoreManager::SetBackupSize(unsigned long,unsigned long)
?SetBackupSize@CPropStoreManager@@QAEXKK@Z
; public: void __thiscall CCatState::SetCD(unsigned short const *)
?SetCD@CCatState@@QAEXPBG@Z
; public: void __thiscall CStorageVariant::SetCLSID(struct _GUID,unsigned int)
?SetCLSID@CStorageVariant@@QAEXU_GUID@@I@Z
; public: void __thiscall CStorageVariant::SetCY(union tagCY,unsigned int)
?SetCY@CStorageVariant@@QAEXTtagCY@@I@Z
; public: void __thiscall CCatState::SetCatalog(unsigned short const *)
?SetCatalog@CCatState@@QAEXPBG@Z
; public: void __thiscall CCatState::SetColumn(unsigned short const *,unsigned int)
?SetColumn@CCatState@@QAEXPBGI@Z
; private: void __thiscall CQueryParser::SetCurrentProperty(unsigned short const *,enum PropertyType)
?SetCurrentProperty@CQueryParser@@AAEXPBGW4PropertyType@@@Z
; public: void __thiscall CStorageVariant::SetDATE(double,unsigned int)
?SetDATE@CStorageVariant@@QAEXNI@Z
; public: void __thiscall CCatalogAdmin::SetDWORDParam(unsigned short const *,unsigned long)
?SetDWORDParam@CCatalogAdmin@@QAEXPBGK@Z
; public: void __thiscall CMachineAdmin::SetDWORDParam(unsigned short const *,unsigned long)
?SetDWORDParam@CMachineAdmin@@QAEXPBGK@Z
; public: void __thiscall CCatState::SetDefaultProperty(unsigned short const *)
?SetDefaultProperty@CCatState@@QAEXPBG@Z
; public: void __thiscall CRangeRestriction::SetEndKey(class CKeyBuf const &)
?SetEndKey@CRangeRestriction@@QAEXABVCKeyBuf@@@Z
; public: void __thiscall CScopeAdmin::SetExclude(int)
?SetExclude@CScopeAdmin@@QAEXH@Z
; public: void __thiscall CStorageVariant::SetFILETIME(struct _FILETIME,unsigned int)
?SetFILETIME@CStorageVariant@@QAEXU_FILETIME@@I@Z
; public: void __thiscall CStorageVariant::SetI2(short,unsigned int)
?SetI2@CStorageVariant@@QAEXFI@Z
; public: void __thiscall CStorageVariant::SetI4(long,unsigned int)
?SetI4@CStorageVariant@@QAEXJI@Z
; public: void __thiscall CStorageVariant::SetI8(union _LARGE_INTEGER,unsigned int)
?SetI8@CStorageVariant@@QAEXT_LARGE_INTEGER@@I@Z
; public: void __thiscall CStorageVariant::SetLPSTR(char const *,unsigned int)
?SetLPSTR@CStorageVariant@@QAEXPBDI@Z
; public: void __thiscall CStorageVariant::SetLPWSTR(unsigned short const *,unsigned int)
?SetLPWSTR@CStorageVariant@@QAEXPBGI@Z
; public: void __thiscall CCatState::SetLocale(unsigned short const *)
?SetLocale@CCatState@@QAEXPBG@Z
; public: void __thiscall CScopeAdmin::SetLogonInfo(unsigned short const *,unsigned short const *,class CCatalogAdmin &)
?SetLogonInfo@CScopeAdmin@@QAEXPBG0AAVCCatalogAdmin@@@Z
; public: void __thiscall CPropStoreManager::SetMappedCacheSize(unsigned long,unsigned long)
?SetMappedCacheSize@CPropStoreManager@@QAEXKK@Z
; public: void __thiscall CCatState::SetNumberOfColumns(unsigned int)
?SetNumberOfColumns@CCatState@@QAEXI@Z
; public: void __thiscall CCatState::SetNumberOfSortProps(unsigned int)
?SetNumberOfSortProps@CCatState@@QAEXI@Z
; public: void __thiscall CScopeAdmin::SetPath(unsigned short const *)
?SetPath@CScopeAdmin@@QAEXPBG@Z
; public: void __thiscall CContentRestriction::SetPhrase(unsigned short const *)
?SetPhrase@CContentRestriction@@QAEXPBG@Z
; public: void __thiscall CNatLanguageRestriction::SetPhrase(unsigned short const *)
?SetPhrase@CNatLanguageRestriction@@QAEXPBG@Z
; public: void __thiscall CGenericCiProxy::SetPriority(unsigned long,unsigned long)
?SetPriority@CGenericCiProxy@@QAEXKK@Z
; public: virtual long __stdcall CDbProperties::SetProperties(unsigned long,struct tagDBPROPSET * const)
?SetProperties@CDbProperties@@UAGJKQAUtagDBPROPSET@@@Z
; public: int __thiscall CDbColId::SetProperty(unsigned short const *)
?SetProperty@CDbColId@@QAEHPBG@Z
; public: int __thiscall CDbPropBaseRestriction::SetProperty(struct tagDBID const &)
?SetProperty@CDbPropBaseRestriction@@QAEHABUtagDBID@@@Z
; public: int __thiscall CDbPropBaseRestriction::SetProperty(class CDbColumnNode const &)
?SetProperty@CDbPropBaseRestriction@@QAEHABVCDbColumnNode@@@Z
; public: int __thiscall CFullPropSpec::SetProperty(unsigned short const *)
?SetProperty@CFullPropSpec@@QAEHPBG@Z
; public: void __thiscall CFullPropSpec::SetProperty(unsigned long)
?SetProperty@CFullPropSpec@@QAEXK@Z
; public: void __thiscall CStorageVariant::SetR4(float,unsigned int)
?SetR4@CStorageVariant@@QAEXMI@Z
; public: void __thiscall CStorageVariant::SetR8(double,unsigned int)
?SetR8@CStorageVariant@@QAEXNI@Z
; public: int __thiscall CDbSelectNode::SetRestriction(class CDbCmdTreeNode *)
?SetRestriction@CDbSelectNode@@QAEHPAVCDbCmdTreeNode@@@Z
; public: static void __stdcall CImpersonateSystem::SetRunningAsSystem(void)
?SetRunningAsSystem@CImpersonateSystem@@SGXXZ
; public: void __thiscall CMachineAdmin::SetSZParam(unsigned short const *,unsigned short const *,unsigned long)
?SetSZParam@CMachineAdmin@@QAEXPBG0K@Z
; void __stdcall SetScopeProperties(struct ICommand *,unsigned int,unsigned short const * const *,unsigned long const *,unsigned short const * const *,unsigned short const * const *)
?SetScopeProperties@@YGXPAUICommand@@IPBQBGPBK11@Z
; long __stdcall SetScopePropertiesNoThrow(struct ICommand *,unsigned int,unsigned short const * const *,unsigned long const *,unsigned short const * const *,unsigned short const * const *)
?SetScopePropertiesNoThrow@@YGJPAUICommand@@IPBQBGPBK11@Z
; void __stdcall SetSecret(unsigned short const *,unsigned short const *,unsigned short const *,unsigned long)
?SetSecret@@YGXPBG00K@Z
; public: void __thiscall CCatState::SetSortProp(unsigned short const *,enum SORTDIR,unsigned int)
?SetSortProp@CCatState@@QAEXPBGW4SORTDIR@@I@Z
; public: void __thiscall CRangeRestriction::SetStartKey(class CKeyBuf const &)
?SetStartKey@CRangeRestriction@@QAEXABVCKeyBuf@@@Z
; public: void __thiscall CStorageVariant::SetUI1(unsigned char,unsigned int)
?SetUI1@CStorageVariant@@QAEXEI@Z
; public: void __thiscall CStorageVariant::SetUI2(unsigned short,unsigned int)
?SetUI2@CStorageVariant@@QAEXGI@Z
; public: void __thiscall CStorageVariant::SetUI4(unsigned long,unsigned int)
?SetUI4@CStorageVariant@@QAEXKI@Z
; public: void __thiscall CStorageVariant::SetUI8(union _ULARGE_INTEGER,unsigned int)
?SetUI8@CStorageVariant@@QAEXT_ULARGE_INTEGER@@I@Z
; public: void __thiscall CPropertyRestriction::SetValue(struct tagBLOB &)
?SetValue@CPropertyRestriction@@QAEXAAUtagBLOB@@@Z
; public: void __thiscall CPropertyRestriction::SetValue(unsigned short *)
?SetValue@CPropertyRestriction@@QAEXPAG@Z
; public: void __thiscall CPropertyRestriction::SetValue(struct _GUID *)
?SetValue@CPropertyRestriction@@QAEXPAU_GUID@@@Z
; public: void __thiscall CDbCmdTreeNode::SetWeight(long)
?SetWeight@CDbCmdTreeNode@@QAEXJ@Z
; public: void __thiscall CPropStoreManager::Setup(unsigned long,unsigned long,unsigned long,unsigned long,int,unsigned long)
?Setup@CPropStoreManager@@QAEXKKKKHK@Z
; public: void __thiscall CDynStream::Shrink(class PStorage &,unsigned long)
?Shrink@CDynStream@@QAEXAAVPStorage@@K@Z
; public: unsigned long __thiscall CPhysStorage::ShrinkFromFront(unsigned long,unsigned long)
?ShrinkFromFront@CPhysStorage@@QAEKKK@Z
; public: void __thiscall CPhysStorage::ShrinkToFit(void)
?ShrinkToFit@CPhysStorage@@QAEXXZ
; public: static void __stdcall CCiOle::Shutdown(void)
?Shutdown@CCiOle@@SGXXZ
; public: void __thiscall CPropStoreManager::Shutdown(void)
?Shutdown@CPropStoreManager@@QAEXXZ
; public: void __thiscall CShtOle::Shutdown(void)
?Shutdown@CShtOle@@QAEXXZ
; public: void __thiscall CWorkQueue::Shutdown(void)
?Shutdown@CWorkQueue@@QAEXXZ
; public: unsigned long __thiscall CDbQueryResults::Size(void)
?Size@CDbQueryResults@@QAEKXZ
; public: virtual long __stdcall CEnumString::Skip(unsigned long)
?Skip@CEnumString@@UAGJK@Z
; public: virtual long __stdcall CEnumWorkid::Skip(unsigned long)
?Skip@CEnumWorkid@@UAGJK@Z
; public: virtual void __thiscall CMemDeSerStream::SkipBlob(unsigned long)
?SkipBlob@CMemDeSerStream@@UAEXK@Z
; public: virtual void __thiscall CMemDeSerStream::SkipByte(void)
?SkipByte@CMemDeSerStream@@UAEXXZ
; public: virtual void __thiscall CMemDeSerStream::SkipChar(unsigned long)
?SkipChar@CMemDeSerStream@@UAEXK@Z
; public: virtual void __thiscall CMemDeSerStream::SkipDouble(void)
?SkipDouble@CMemDeSerStream@@UAEXXZ
; public: virtual void __thiscall CMemDeSerStream::SkipFloat(void)
?SkipFloat@CMemDeSerStream@@UAEXXZ
; public: virtual void __thiscall CMemDeSerStream::SkipGUID(void)
?SkipGUID@CMemDeSerStream@@UAEXXZ
; public: virtual void __thiscall CMemDeSerStream::SkipLong(void)
?SkipLong@CMemDeSerStream@@UAEXXZ
; public: virtual void __thiscall CMemDeSerStream::SkipULong(void)
?SkipULong@CMemDeSerStream@@UAEXXZ
; public: virtual void __thiscall CMemDeSerStream::SkipUShort(void)
?SkipUShort@CMemDeSerStream@@UAEXXZ
; public: virtual void __thiscall CMemDeSerStream::SkipWChar(unsigned long)
?SkipWChar@CMemDeSerStream@@UAEXK@Z
; public: int __thiscall CCatalogAdmin::Start(void)
?Start@CCatalogAdmin@@QAEHXZ
; public: int __thiscall CMachineAdmin::StartCI(void)
?StartCI@CMachineAdmin@@QAEHXZ
; public: int __thiscall CCatalogAdmin::Stop(void)
?Stop@CCatalogAdmin@@QAEHXZ
; public: int __thiscall CMachineAdmin::StopCI(void)
?StopCI@CMachineAdmin@@QAEHXZ
; public: void __thiscall CFilterDaemon::StopFiltering(void)
?StopFiltering@CFilterDaemon@@QAEXXZ
; public: unsigned int __thiscall CKey::StrLen(void)const 
?StrLen@CKey@@QBEIXZ
; public: unsigned int __thiscall CKeyBuf::StrLen(void)const 
?StrLen@CKeyBuf@@QBEIXZ
; void __cdecl SystemExceptionTranslator(unsigned int,struct _EXCEPTION_POINTERS *)
?SystemExceptionTranslator@@YAXIPAU_EXCEPTION_POINTERS@@@Z
; public: void __thiscall CDbCmdTreeNode::TransferNode(class CDbCmdTreeNode *)
?TransferNode@CDbCmdTreeNode@@QAEXPAV1@@Z
; public: unsigned long __thiscall CRestriction::TreeCount(void)const 
?TreeCount@CRestriction@@QBEKXZ
; public: void __thiscall CMachineAdmin::TunePerformance(int,unsigned short,unsigned short)
?TunePerformance@CMachineAdmin@@QAEXHGG@Z
; void __stdcall URLEscapeW(unsigned short const *,class CVirtualString &,unsigned long,int)
?URLEscapeW@@YGXPBGAAVCVirtualString@@KH@Z
; public: int __thiscall CDbByGuid::UnMarshall(class PDeSerStream &)
?UnMarshall@CDbByGuid@@QAEHAAVPDeSerStream@@@Z
; public: int __thiscall CDbCmdTreeNode::UnMarshall(class PDeSerStream &)
?UnMarshall@CDbCmdTreeNode@@QAEHAAVPDeSerStream@@@Z
; public: int __thiscall CDbColId::UnMarshall(class PDeSerStream &)
?UnMarshall@CDbColId@@QAEHAAVPDeSerStream@@@Z
; public: int __thiscall CDbContentVector::UnMarshall(class PDeSerStream &)
?UnMarshall@CDbContentVector@@QAEHAAVPDeSerStream@@@Z
; public: int __thiscall CDbNumeric::UnMarshall(class PDeSerStream &)
?UnMarshall@CDbNumeric@@QAEHAAVPDeSerStream@@@Z
; public: int __thiscall CDbParameter::UnMarshall(class PDeSerStream &)
?UnMarshall@CDbParameter@@QAEHAAVPDeSerStream@@@Z
; public: int __thiscall CDbProp::UnMarshall(class PDeSerStream &)
?UnMarshall@CDbProp@@QAEHAAVPDeSerStream@@@Z
; public: int __thiscall CDbPropSet::UnMarshall(class PDeSerStream &)
?UnMarshall@CDbPropSet@@QAEHAAVPDeSerStream@@@Z
; public: int __thiscall CDbProperties::UnMarshall(class PDeSerStream &)
?UnMarshall@CDbProperties@@QAEHAAVPDeSerStream@@@Z
; public: static class CRestriction * __stdcall CRestriction::UnMarshall(class PDeSerStream &)
?UnMarshall@CRestriction@@SGPAV1@AAVPDeSerStream@@@Z
; public: static class CDbCmdTreeNode * __stdcall CDbCmdTreeNode::UnMarshallTree(class PDeSerStream &)
?UnMarshallTree@CDbCmdTreeNode@@SGPAV1@AAVPDeSerStream@@@Z
; void __stdcall UnPickle(int,class XPtr<class CColumnSet> &,class XPtr<class CRestriction> &,class XPtr<class CSortSet> &,class XPtr<class CCategorizationSet> &,class CRowsetProperties &,class XPtr<class CPidMapper> &,unsigned char *,unsigned long)
?UnPickle@@YGXHAAV?$XPtr@VCColumnSet@@@@AAV?$XPtr@VCRestriction@@@@AAV?$XPtr@VCSortSet@@@@AAV?$XPtr@VCCategorizationSet@@@@AAVCRowsetProperties@@AAV?$XPtr@VCPidMapper@@@@PAEK@Z
; protected: void __thiscall CRcovStrmTrans::Unmap(enum CRcovStorageHdr::DataCopyNum)
?Unmap@CRcovStrmTrans@@IAEXW4DataCopyNum@CRcovStorageHdr@@@Z
; unsigned long __stdcall UpdateContentIndex(unsigned short const *,unsigned short const *,unsigned short const *,int)
?UpdateContentIndex@@YGKPBG00H@Z
; public: void __thiscall CDiskFreeStatus::UpdateDiskLowInfo(void)
?UpdateDiskLowInfo@CDiskFreeStatus@@QAEXXZ
; int __stdcall VT_VARIANT_EQ(struct tagPROPVARIANT const &,struct tagPROPVARIANT const &)
?VT_VARIANT_EQ@@YGHABUtagPROPVARIANT@@0@Z
; int __stdcall VT_VARIANT_GE(struct tagPROPVARIANT const &,struct tagPROPVARIANT const &)
?VT_VARIANT_GE@@YGHABUtagPROPVARIANT@@0@Z
; int __stdcall VT_VARIANT_GT(struct tagPROPVARIANT const &,struct tagPROPVARIANT const &)
?VT_VARIANT_GT@@YGHABUtagPROPVARIANT@@0@Z
; int __stdcall VT_VARIANT_LE(struct tagPROPVARIANT const &,struct tagPROPVARIANT const &)
?VT_VARIANT_LE@@YGHABUtagPROPVARIANT@@0@Z
; int __stdcall VT_VARIANT_LT(struct tagPROPVARIANT const &,struct tagPROPVARIANT const &)
?VT_VARIANT_LT@@YGHABUtagPROPVARIANT@@0@Z
; int __stdcall VT_VARIANT_NE(struct tagPROPVARIANT const &,struct tagPROPVARIANT const &)
?VT_VARIANT_NE@@YGHABUtagPROPVARIANT@@0@Z
; int __stdcall ValidateScopeRestriction(class CRestriction *)
?ValidateScopeRestriction@@YGHPAVCRestriction@@@Z
; public: void __thiscall CDbScalarValue::Value(class CStorageVariant &)
?Value@CDbScalarValue@@QAEXAAVCStorageVariant@@@Z
; public: void __thiscall PRcovStorageObj::VerifyConsistency(void)
?VerifyConsistency@PRcovStorageObj@@QAEXXZ
; void __stdcall VerifyThreadHasAdminPrivilege(void)
?VerifyThreadHasAdminPrivilege@@YGXXZ
; unsigned long __stdcall WideCharToXArrayMultiByte(unsigned short const *,unsigned long,unsigned int,class XArray<unsigned char> &)
?WideCharToXArrayMultiByte@@YGKPBGKIAAV?$XArray@E@@@Z
; public: void __thiscall CDynStream::Write(void *,unsigned long)
?Write@CDynStream@@QAEXPAXK@Z
; protected: void __thiscall CRcovStrmTrans::Write(void const *,unsigned long)
?Write@CRcovStrmTrans@@IAEXPBXK@Z
; public: long __thiscall CPropStoreManager::WritePrimaryProperty(class CCompositePropRecordForWrites &,unsigned long,class CStorageVariant const &)
?WritePrimaryProperty@CPropStoreManager@@QAEJAAVCCompositePropRecordForWrites@@KABVCStorageVariant@@@Z
; public: long __thiscall CPropStoreManager::WritePrimaryProperty(unsigned long,unsigned long,class CStorageVariant const &)
?WritePrimaryProperty@CPropStoreManager@@QAEJKKABVCStorageVariant@@@Z
; public: long __thiscall CPropStoreManager::WriteProperty(class CCompositePropRecordForWrites &,unsigned long,class CStorageVariant const &)
?WriteProperty@CPropStoreManager@@QAEJAAVCCompositePropRecordForWrites@@KABVCStorageVariant@@@Z
; public: long __thiscall CPropStoreManager::WriteProperty(unsigned long,unsigned long,class CStorageVariant const &)
?WriteProperty@CPropStoreManager@@QAEJKKABVCStorageVariant@@@Z
; public: unsigned long __thiscall CPropStoreManager::WritePropertyInNewRecord(unsigned long,class CStorageVariant const &)
?WritePropertyInNewRecord@CPropStoreManager@@QAEKKABVCStorageVariant@@@Z
; private: class CDbProjectListAnchor * __thiscall CDbNestingNode::_FindGroupListAnchor(void)
?_FindGroupListAnchor@CDbNestingNode@@AAEPAVCDbProjectListAnchor@@XZ
; private: class CDbProjectListAnchor * __thiscall CDbProjectNode::_FindOrAddAnchor(void)
?_FindOrAddAnchor@CDbProjectNode@@AAEPAVCDbProjectListAnchor@@XZ
; private: class CDbSortListAnchor * __thiscall CDbSortNode::_FindOrAddAnchor(void)
?_FindOrAddAnchor@CDbSortNode@@AAEPAVCDbSortListAnchor@@XZ
; private: class CDbScalarValue * __thiscall CDbPropertyRestriction::_FindOrAddValueNode(void)
?_FindOrAddValueNode@CDbPropertyRestriction@@AAEPAVCDbScalarValue@@XZ
; private: int __thiscall CImpersonateRemoteAccess::_ImpersonateIf(unsigned short const *,unsigned short const *,unsigned long)
?_ImpersonateIf@CImpersonateRemoteAccess@@AAEHPBG0K@Z
; private: static unsigned long  CGlobalPropFileRefresher::_dwLastCheckMoment
?_dwLastCheckMoment@CGlobalPropFileRefresher@@0KA DATA
; private: static struct _FILETIME  CGlobalPropFileRefresher::_ftFile
?_ftFile@CGlobalPropFileRefresher@@0U_FILETIME@@A DATA
; private: static class CPropListFile *  CLocalGlobalPropertyList::_pGlobalPropListFile
?_pGlobalPropListFile@CLocalGlobalPropertyList@@0PAVCPropListFile@@A DATA
; private: static unsigned short *  CGlobalPropFileRefresher::_wcsFileName
?_wcsFileName@CGlobalPropFileRefresher@@0PAGA DATA
; unsigned __int64 __cdecl _wcstoui64(unsigned short const *,unsigned short * *,int)
?_wcstoui64@@YA_KPBGPAPAGH@Z
; void __stdcall ciDelete(void *)
?ciDelete@@YGXPAX@Z
; int __stdcall ciIsValidPointer(void const *)
?ciIsValidPointer@@YGHPBX@Z
; void * __stdcall ciNew(unsigned int)
?ciNew@@YGPAXI@Z
; public: unsigned long __thiscall CFileBuffer::fgetsw(class XGrowable<unsigned short,260> &)
?fgetsw@CFileBuffer@@QAEKAAV?$XGrowable@G$0BAE@@@@Z
; unsigned short * __stdcall wcsipattern(unsigned short *,unsigned short const *)
?wcsipattern@@YGPAGPAGPBG@Z
FsCiShutdown
_AbortMerges@16
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@16
InitializeCIISAPIPerformanceData
InitializeCIPerformanceData
InitializeFILTERPerformanceData
_LoadBHIFilter@16
LoadBinaryFilter
LoadIFilter
LoadIFilterEx
LoadTextFilter
LocateCatalogs
LocateCatalogsA
LocateCatalogsW
SetCatalogState
SetupCache
SetupCacheEx
_StartFWCiSvcWork@12
_StopFWCiSvcWork@16
SvcEntry_CiSvc
