; 
; Exports of file esscli.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY esscli.dll
EXPORTS
; public: __thiscall CClassInfoArray::CClassInfoArray(void)
??0CClassInfoArray@@QAE@XZ
; public: __thiscall CClassInformation::CClassInformation(struct CClassInformation const &)
??0CClassInformation@@QAE@ABU0@@Z
; public: __thiscall CClassInformation::CClassInformation(void)
??0CClassInformation@@QAE@XZ
; public: __thiscall CContextMetaData::CContextMetaData(class CMetaData *,struct IWbemContext *)
??0CContextMetaData@@QAE@PAVCMetaData@@PAUIWbemContext@@@Z
; public: __thiscall CEvalNode::CEvalNode(class CEvalNode const &)
??0CEvalNode@@QAE@ABV0@@Z
; public: __thiscall CEvalNode::CEvalNode(void)
??0CEvalNode@@QAE@XZ
; public: __thiscall CEvalTree::CEvalTree(class CEvalTree const &)
??0CEvalTree@@QAE@ABV0@@Z
; public: __thiscall CEvalTree::CEvalTree(void)
??0CEvalTree@@QAE@XZ
; public: __thiscall CMetaData::CMetaData(class CMetaData const &)
??0CMetaData@@QAE@ABV0@@Z
; public: __thiscall CMetaData::CMetaData(void)
??0CMetaData@@QAE@XZ
; public: __thiscall CObjectInfo::CObjectInfo(void)
??0CObjectInfo@@QAE@XZ
; public: __thiscall CPropertyProjectionFilter::CPropertyProjectionFilter(class CPropertyProjectionFilter const &)
??0CPropertyProjectionFilter@@QAE@ABV0@@Z
; public: __thiscall CPropertyProjectionFilter::CPropertyProjectionFilter(void)
??0CPropertyProjectionFilter@@QAE@XZ
; public: __thiscall CReuseMemoryManager::CReuseMemoryManager(unsigned int,unsigned int)
??0CReuseMemoryManager@@QAE@II@Z
; public: __thiscall CSortedArray::CSortedArray(class CSortedArray &)
??0CSortedArray@@QAE@AAV0@@Z
; public: __thiscall CSortedArray::CSortedArray(int,int)
??0CSortedArray@@QAE@HH@Z
; public: __thiscall CSortedArray::CSortedArray(unsigned int,unsigned long *)
??0CSortedArray@@QAE@IPAK@Z
; public: __thiscall CStandardMetaData::CStandardMetaData(class CStandardMetaData const &)
??0CStandardMetaData@@QAE@ABV0@@Z
; public: __thiscall CStandardMetaData::CStandardMetaData(struct IWbemServices *)
??0CStandardMetaData@@QAE@PAUIWbemServices@@@Z
; public: __thiscall CTempMemoryManager::CTempMemoryManager(void)
??0CTempMemoryManager@@QAE@XZ
; public: __thiscall CTimeKeeper::CTimeKeeper(void)
??0CTimeKeeper@@QAE@XZ
; public: __thiscall CClassInfoArray::~CClassInfoArray(void)
??1CClassInfoArray@@QAE@XZ
; public: __thiscall CClassInformation::~CClassInformation(void)
??1CClassInformation@@QAE@XZ
; public: __thiscall CContextMetaData::~CContextMetaData(void)
??1CContextMetaData@@QAE@XZ
; public: virtual __thiscall CEvalNode::~CEvalNode(void)
??1CEvalNode@@UAE@XZ
; public: __thiscall CEvalTree::~CEvalTree(void)
??1CEvalTree@@QAE@XZ
; public: virtual __thiscall CMetaData::~CMetaData(void)
??1CMetaData@@UAE@XZ
; public: __thiscall CObjectInfo::~CObjectInfo(void)
??1CObjectInfo@@QAE@XZ
; public: __thiscall CPropertyProjectionFilter::~CPropertyProjectionFilter(void)
??1CPropertyProjectionFilter@@QAE@XZ
; public: __thiscall CReuseMemoryManager::~CReuseMemoryManager(void)
??1CReuseMemoryManager@@QAE@XZ
; public: __thiscall CSortedArray::~CSortedArray(void)
??1CSortedArray@@QAE@XZ
; public: virtual __thiscall CStandardMetaData::~CStandardMetaData(void)
??1CStandardMetaData@@UAE@XZ
; public: __thiscall CTempMemoryManager::~CTempMemoryManager(void)
??1CTempMemoryManager@@QAE@XZ
; public: __thiscall CTimeKeeper::~CTimeKeeper(void)
??1CTimeKeeper@@QAE@XZ
; public: bool __thiscall CClassInfoArray::operator=(class CClassInfoArray &)
??4CClassInfoArray@@QAE_NAAV0@@Z
; public: struct CClassInformation & __thiscall CClassInformation::operator=(struct CClassInformation const &)
??4CClassInformation@@QAEAAU0@ABU0@@Z
; public: class CContextMetaData & __thiscall CContextMetaData::operator=(class CContextMetaData const &)
??4CContextMetaData@@QAEAAV0@ABV0@@Z
; public: void __thiscall CEvalTree::operator=(class CEvalTree const &)
??4CEvalTree@@QAEXABV0@@Z
; public: class CMetaData & __thiscall CMetaData::operator=(class CMetaData const &)
??4CMetaData@@QAEAAV0@ABV0@@Z
; public: class CObjectInfo & __thiscall CObjectInfo::operator=(class CObjectInfo const &)
??4CObjectInfo@@QAEAAV0@ABV0@@Z
; public: class CPropertyProjectionFilter & __thiscall CPropertyProjectionFilter::operator=(class CPropertyProjectionFilter const &)
??4CPropertyProjectionFilter@@QAEAAV0@ABV0@@Z
; public: class CQueryAnalyser & __thiscall CQueryAnalyser::operator=(class CQueryAnalyser const &)
??4CQueryAnalyser@@QAEAAV0@ABV0@@Z
; public: class CReuseMemoryManager & __thiscall CReuseMemoryManager::operator=(class CReuseMemoryManager const &)
??4CReuseMemoryManager@@QAEAAV0@ABV0@@Z
; public: void __thiscall CSortedArray::operator=(class CSortedArray const &)
??4CSortedArray@@QAEXABV0@@Z
; public: class CStandardMetaData & __thiscall CStandardMetaData::operator=(class CStandardMetaData const &)
??4CStandardMetaData@@QAEAAV0@ABV0@@Z
; public: class CTempMemoryManager & __thiscall CTempMemoryManager::operator=(class CTempMemoryManager const &)
??4CTempMemoryManager@@QAEAAV0@ABV0@@Z
; public: class CTimeKeeper & __thiscall CTimeKeeper::operator=(class CTimeKeeper const &)
??4CTimeKeeper@@QAEAAV0@ABV0@@Z
; const  CEvalNode::`vftable'
??_7CEvalNode@@6B@
; const  CMetaData::`vftable'
??_7CMetaData@@6B@
; const  CPropertyProjectionFilter::`vftable'
??_7CPropertyProjectionFilter@@6B@
; const  CStandardMetaData::`vftable'
??_7CStandardMetaData@@6B@
; public: void __thiscall CSortedArray::`default constructor closure'(void)
??_FCSortedArray@@QAEXXZ
; public: int __thiscall CSortedArray::Add(unsigned long)
?Add@CSortedArray@@QAEHK@Z
; public: bool __thiscall CClassInfoArray::AddClass(struct CClassInformation *)
?AddClass@CClassInfoArray@@QAE_NPAUCClassInformation@@@Z
; public: int __thiscall CSortedArray::AddDataFrom(class CSortedArray const &)
?AddDataFrom@CSortedArray@@QAEHABV1@@Z
; public: int __thiscall CSortedArray::AddDataFrom(unsigned long const *,unsigned int)
?AddDataFrom@CSortedArray@@QAEHPBKI@Z
; public: bool __thiscall CPropertyProjectionFilter::AddProperty(class CPropertyName const &)
?AddProperty@CPropertyProjectionFilter@@QAE_NABVCPropertyName@@@Z
; public: virtual unsigned long __stdcall CMetaData::AddRef(void)
?AddRef@CMetaData@@UAGKXZ
; public: void * __thiscall CReuseMemoryManager::Allocate(void)
?Allocate@CReuseMemoryManager@@QAEPAXXZ
; public: void * __thiscall CTempMemoryManager::Allocate(unsigned int)
?Allocate@CTempMemoryManager@@QAEPAXI@Z
; protected: static long __stdcall CQueryAnalyser::AndDefiniteClassArrays(class CClassInfoArray *,class CClassInfoArray *,class CClassInfoArray *)
?AndDefiniteClassArrays@CQueryAnalyser@@KGJPAVCClassInfoArray@@00@Z
; protected: static long __stdcall CQueryAnalyser::AndPossibleClassArrays(class CClassInfoArray *,class CClassInfoArray *,class CClassInfoArray *)
?AndPossibleClassArrays@CQueryAnalyser@@KGJPAVCClassInfoArray@@00@Z
; protected: static long __stdcall CQueryAnalyser::AndQueryExpressions(struct QL_LEVEL_1_RPN_EXPRESSION *,struct QL_LEVEL_1_RPN_EXPRESSION *,struct QL_LEVEL_1_RPN_EXPRESSION *)
?AndQueryExpressions@CQueryAnalyser@@KGJPAUQL_LEVEL_1_RPN_EXPRESSION@@00@Z
; protected: static void __stdcall CQueryAnalyser::AppendQueryExpression(struct QL_LEVEL_1_RPN_EXPRESSION *,struct QL_LEVEL_1_RPN_EXPRESSION *)
?AppendQueryExpression@CQueryAnalyser@@KGXPAUQL_LEVEL_1_RPN_EXPRESSION@@0@Z
; public: long __thiscall CEvalTree::ApplyPredicate(class CLeafPredicate *)
?ApplyPredicate@CEvalTree@@QAEJPAVCLeafPredicate@@@Z
; public: static long __stdcall CEvalTree::BuildFromToken(class CContextMetaData *,class CImplicationList &,struct QL_LEVEL_1_TOKEN &,class CEvalNode * *)
?BuildFromToken@CEvalTree@@SGJPAVCContextMetaData@@AAVCImplicationList@@AAUQL_LEVEL_1_TOKEN@@PAPAVCEvalNode@@@Z
; public: static long __stdcall CEvalTree::BuildTwoPropFromToken(class CContextMetaData *,class CImplicationList &,struct QL_LEVEL_1_TOKEN &,class CEvalNode * *)
?BuildTwoPropFromToken@CEvalTree@@SGJPAVCContextMetaData@@AAVCImplicationList@@AAUQL_LEVEL_1_TOKEN@@PAPAVCEvalNode@@@Z
; public: static long __stdcall CQueryAnalyser::CanPointToClass(struct IWbemClassObject *,unsigned short const *,unsigned short const *,class CContextMetaData *)
?CanPointToClass@CQueryAnalyser@@SGJPAUIWbemClassObject@@PBG1PAVCContextMetaData@@@Z
; public: void __thiscall CClassInfoArray::Clear(void)
?Clear@CClassInfoArray@@QAEXXZ
; public: bool __thiscall CEvalTree::Clear(void)
?Clear@CEvalTree@@QAE_NXZ
; public: void __thiscall CObjectInfo::Clear(void)
?Clear@CObjectInfo@@QAEXXZ
; public: void __thiscall CReuseMemoryManager::Clear(void)
?Clear@CReuseMemoryManager@@QAEXXZ
; public: void __thiscall CStandardMetaData::Clear(void)
?Clear@CStandardMetaData@@QAEXXZ
; public: void __thiscall CTempMemoryManager::Clear(void)
?Clear@CTempMemoryManager@@QAEXXZ
; public: static class CEvalNode * __stdcall CEvalNode::CloneNode(class CEvalNode const *)
?CloneNode@CEvalNode@@SGPAV1@PBV1@@Z
; public: static long __stdcall CEvalTree::Combine(class CEvalNode *,class CEvalNode *,int,class CContextMetaData *,class CImplicationList &,bool,bool,class CEvalNode * *)
?Combine@CEvalTree@@SGJPAVCEvalNode@@0HPAVCContextMetaData@@AAVCImplicationList@@_N3PAPAV2@@Z
; protected: static long __stdcall CEvalTree::CombineLeafWithBranch(class CValueNode *,class CBranchingNode *,int,class CContextMetaData *,class CImplicationList &,bool,bool,class CEvalNode * *)
?CombineLeafWithBranch@CEvalTree@@KGJPAVCValueNode@@PAVCBranchingNode@@HPAVCContextMetaData@@AAVCImplicationList@@_N4PAPAVCEvalNode@@@Z
; public: long __thiscall CEvalTree::CombineWith(class CEvalTree &,class CContextMetaData *,int,long)
?CombineWith@CEvalTree@@QAEJAAV1@PAVCContextMetaData@@HJ@Z
; public: static int __stdcall CEvalTree::Compare(class CEvalNode *,class CEvalNode *)
?Compare@CEvalTree@@SGHPAVCEvalNode@@0@Z
; public: int __thiscall CSortedArray::Compare(class CSortedArray &)
?Compare@CSortedArray@@QAEHAAV1@@Z
; public: static int __stdcall CQueryAnalyser::CompareRequestedToProvided(class CClassInfoArray &,class CClassInfoArray &)
?CompareRequestedToProvided@CQueryAnalyser@@SGHAAVCClassInfoArray@@0@Z
; public: int __thiscall CSortedArray::CopyDataFrom(class CSortedArray const &)
?CopyDataFrom@CSortedArray@@QAEHABV1@@Z
; public: int __thiscall CSortedArray::CopyDataFrom(unsigned long const *,unsigned int)
?CopyDataFrom@CSortedArray@@QAEHPBKI@Z
; public: unsigned int __thiscall CSortedArray::CopyTo(unsigned long *,unsigned int)
?CopyTo@CSortedArray@@QAEIPAKI@Z
; public: static long __stdcall CEvalTree::CreateFromConjunction(class CContextMetaData *,class CImplicationList &,class CConjunction *,class CEvalNode * *)
?CreateFromConjunction@CEvalTree@@SGJPAVCContextMetaData@@AAVCImplicationList@@PAVCConjunction@@PAPAVCEvalNode@@@Z
; public: long __thiscall CEvalTree::CreateFromDNF(class CContextMetaData *,class CImplicationList &,class CDNFExpression *,class CEvalNode * *)
?CreateFromDNF@CEvalTree@@QAEJPAVCContextMetaData@@AAVCImplicationList@@PAVCDNFExpression@@PAPAVCEvalNode@@@Z
; public: long __thiscall CEvalTree::CreateFromQuery(class CContextMetaData *,struct QL_LEVEL_1_RPN_EXPRESSION *,long,long)
?CreateFromQuery@CEvalTree@@QAEJPAVCContextMetaData@@PAUQL_LEVEL_1_RPN_EXPRESSION@@JJ@Z
; public: long __thiscall CEvalTree::CreateFromQuery(class CContextMetaData *,unsigned short const *,int,struct QL_LEVEL_1_TOKEN *,long,long)
?CreateFromQuery@CEvalTree@@QAEJPAVCContextMetaData@@PBGHPAUQL_LEVEL_1_TOKEN@@JJ@Z
; public: long __thiscall CEvalTree::CreateFromQuery(class CContextMetaData *,unsigned short const *,long,long)
?CreateFromQuery@CEvalTree@@QAEJPAVCContextMetaData@@PBGJJ@Z
; public: long __thiscall CEvalTree::CreateProjection(class CEvalTree &,class CContextMetaData *,class CProjectionFilter *,enum EProjectionType,bool)
?CreateProjection@CEvalTree@@QAEJAAV1@PAVCContextMetaData@@PAVCProjectionFilter@@W4EProjectionType@@_N@Z
; public: bool __thiscall CTimeKeeper::DecorateObject(struct _IWmiObject *)
?DecorateObject@CTimeKeeper@@QAE_NPAU_IWmiObject@@@Z
; public: void __thiscall CSortedArray::Empty(void)
?Empty@CSortedArray@@QAEXXZ
; public: long __thiscall CEvalTree::Evaluate(struct IWbemObjectAccess *,class CSortedArray &)
?Evaluate@CEvalTree@@QAEJPAUIWbemObjectAccess@@AAVCSortedArray@@@Z
; public: static long __stdcall CEvalTree::Evaluate(class CObjectInfo &,class CEvalNode *,class CSortedArray &)
?Evaluate@CEvalTree@@SGJAAVCObjectInfo@@PAVCEvalNode@@AAVCSortedArray@@@Z
; public: unsigned int __thiscall CSortedArray::Find(unsigned long)
?Find@CSortedArray@@QAEIK@Z
; public: void __thiscall CReuseMemoryManager::Free(void *)
?Free@CReuseMemoryManager@@QAEXPAX@Z
; public: void __thiscall CTempMemoryManager::Free(void *,unsigned int)
?Free@CTempMemoryManager@@QAEXPAXI@Z
; long __stdcall GetAccessMask(void *,struct _ACL *,unsigned long *)
?GetAccessMask@@YGJPAXPAU_ACL@@PAK@Z
; public: unsigned long * __thiscall CSortedArray::GetArrayPtr(void)
?GetArrayPtr@CSortedArray@@QAEPAKXZ
; public: unsigned long __thiscall CSortedArray::GetAt(int)
?GetAt@CSortedArray@@QAEKH@Z
; public: struct CClassInformation * __thiscall CClassInfoArray::GetClass(int)
?GetClass@CClassInfoArray@@QAEPAUCClassInformation@@H@Z
; public: long __thiscall CContextMetaData::GetClass(unsigned short const *,struct _IWmiObject * *)
?GetClass@CContextMetaData@@QAEJPBGPAPAU_IWmiObject@@@Z
; public: virtual long __stdcall CMetaData::GetClass(unsigned short const *,struct IWbemContext *,struct IWbemClassObject * *)
?GetClass@CMetaData@@UAGJPBGPAUIWbemContext@@PAPAUIWbemClassObject@@@Z
; public: virtual long __thiscall CStandardMetaData::GetClass(unsigned short const *,struct IWbemContext *,struct _IWmiObject * *)
?GetClass@CStandardMetaData@@UAEJPBGPAUIWbemContext@@PAPAU_IWmiObject@@@Z
; public: static long __stdcall CQueryAnalyser::GetDefiniteInstanceClasses(struct QL_LEVEL_1_RPN_EXPRESSION *,class CClassInfoArray * &)
?GetDefiniteInstanceClasses@CQueryAnalyser@@SGJPAUQL_LEVEL_1_RPN_EXPRESSION@@AAPAVCClassInfoArray@@@Z
; protected: static long __stdcall CQueryAnalyser::GetInstanceClasses(struct QL_LEVEL_1_TOKEN &,class CClassInfoArray &)
?GetInstanceClasses@CQueryAnalyser@@KGJAAUQL_LEVEL_1_TOKEN@@AAVCClassInfoArray@@@Z
; public: long __thiscall CObjectInfo::GetLength(void)
?GetLength@CObjectInfo@@QAEJXZ
; public: static long __stdcall CQueryAnalyser::GetLimitingQueryForInstanceClass(struct QL_LEVEL_1_RPN_EXPRESSION *,struct CClassInformation &,unsigned short * &)
?GetLimitingQueryForInstanceClass@CQueryAnalyser@@SGJPAUQL_LEVEL_1_RPN_EXPRESSION@@AAUCClassInformation@@AAPAG@Z
; public: static long __stdcall CQueryAnalyser::GetNecessaryQueryForClass(struct QL_LEVEL_1_RPN_EXPRESSION *,struct IWbemClassObject *,class CWStringArray &,struct QL_LEVEL_1_RPN_EXPRESSION * &)
?GetNecessaryQueryForClass@CQueryAnalyser@@SGJPAUQL_LEVEL_1_RPN_EXPRESSION@@PAUIWbemClassObject@@AAVCWStringArray@@AAPAU2@@Z
; public: static long __stdcall CQueryAnalyser::GetNecessaryQueryForProperty(struct QL_LEVEL_1_RPN_EXPRESSION *,class CPropertyName &,struct QL_LEVEL_1_RPN_EXPRESSION * &)
?GetNecessaryQueryForProperty@CQueryAnalyser@@SGJPAUQL_LEVEL_1_RPN_EXPRESSION@@AAVCPropertyName@@AAPAU2@@Z
; public: int __thiscall CClassInfoArray::GetNumClasses(void)
?GetNumClasses@CClassInfoArray@@QAEHXZ
; public: struct _IWmiObject * __thiscall CObjectInfo::GetObjectAt(long)
?GetObjectAt@CObjectInfo@@QAEPAU_IWmiObject@@J@Z
; public: static long __stdcall CQueryAnalyser::GetPossibleInstanceClasses(struct QL_LEVEL_1_RPN_EXPRESSION *,class CClassInfoArray * &)
?GetPossibleInstanceClasses@CQueryAnalyser@@SGJPAUQL_LEVEL_1_RPN_EXPRESSION@@AAPAVCClassInfoArray@@@Z
; protected: static long __stdcall CQueryAnalyser::GetPropertiesThatMustDiffer(struct QL_LEVEL_1_RPN_EXPRESSION *,struct CClassInformation &,class CWStringArray &)
?GetPropertiesThatMustDiffer@CQueryAnalyser@@KGJPAUQL_LEVEL_1_RPN_EXPRESSION@@AAUCClassInformation@@AAVCWStringArray@@@Z
; public: static int __stdcall CEvalNode::GetType(class CEvalNode *)
?GetType@CEvalNode@@SGHPAV1@@Z
; protected: static long __stdcall CEvalTree::InnerCombine(class CEvalNode *,class CEvalNode *,int,class CContextMetaData *,class CImplicationList &,bool,bool,class CEvalNode * *)
?InnerCombine@CEvalTree@@KGJPAVCEvalNode@@0HPAVCContextMetaData@@AAVCImplicationList@@_N3PAPAV2@@Z
; public: void __thiscall CSortedArray::Insert(unsigned long)
?Insert@CSortedArray@@QAEXK@Z
; public: static bool __stdcall CEvalNode::IsAllFalse(class CEvalNode *)
?IsAllFalse@CEvalNode@@SG_NPAV1@@Z
; public: virtual bool __thiscall CEvalNode::IsAllFalse(void)
?IsAllFalse@CEvalNode@@UAE_NXZ
; public: bool __thiscall CEvalTree::IsFalse(void)
?IsFalse@CEvalTree@@QAE_NXZ
; public: virtual bool __thiscall CPropertyProjectionFilter::IsInSet(class CEvalNode *)
?IsInSet@CPropertyProjectionFilter@@UAE_NPAVCEvalNode@@@Z
; public: static bool __stdcall CEvalNode::IsInvalid(class CEvalNode *)
?IsInvalid@CEvalNode@@SG_NPAV1@@Z
; public: virtual bool __thiscall CEvalNode::IsInvalid(void)
?IsInvalid@CEvalNode@@UAE_NXZ
; public: int __thiscall CClassInfoArray::IsLimited(void)
?IsLimited@CClassInfoArray@@QAEHXZ
; public: static long __stdcall CEvalTree::IsMergeAdvisable(class CEvalNode *,class CEvalNode *,class CImplicationList &)
?IsMergeAdvisable@CEvalTree@@SGJPAVCEvalNode@@0AAVCImplicationList@@@Z
; public: static bool __stdcall CEvalNode::IsNoop(class CEvalNode *,int)
?IsNoop@CEvalNode@@SG_NPAV1@H@Z
; public: virtual bool __thiscall CEvalNode::IsNoop(int)
?IsNoop@CEvalNode@@UAE_NH@Z
; protected: static int __stdcall CQueryAnalyser::IsPropertyInClass(class CPropertyName &,struct IWbemClassObject *,class CWStringArray &)
?IsPropertyInClass@CQueryAnalyser@@KGHAAVCPropertyName@@PAUIWbemClassObject@@AAVCWStringArray@@@Z
; protected: static int __stdcall CQueryAnalyser::IsTokenAboutClass(struct QL_LEVEL_1_TOKEN &,struct IWbemClassObject *,class CWStringArray &)
?IsTokenAboutClass@CQueryAnalyser@@KGHAAUQL_LEVEL_1_TOKEN@@PAUIWbemClassObject@@AAVCWStringArray@@@Z
; protected: static int __stdcall CQueryAnalyser::IsTokenAboutProperty(struct QL_LEVEL_1_TOKEN &,class CPropertyName &)
?IsTokenAboutProperty@CQueryAnalyser@@KGHAAUQL_LEVEL_1_TOKEN@@AAVCPropertyName@@@Z
; long __stdcall IsUserAdministrator(void *)
?IsUserAdministrator@@YGJPAX@Z
; long __stdcall IsUserInGroup(void *,void *)
?IsUserInGroup@@YGJPAX0@Z
; public: bool __thiscall CEvalTree::IsValid(void)
?IsValid@CEvalTree@@QAE_NXZ
; protected: static long __stdcall CQueryAnalyser::NegateDefiniteClassArray(class CClassInfoArray *,class CClassInfoArray *)
?NegateDefiniteClassArray@CQueryAnalyser@@KGJPAVCClassInfoArray@@0@Z
; protected: static long __stdcall CQueryAnalyser::NegatePossibleClassArray(class CClassInfoArray *,class CClassInfoArray *)
?NegatePossibleClassArray@CQueryAnalyser@@KGJPAVCClassInfoArray@@0@Z
; protected: static long __stdcall CQueryAnalyser::NegateQueryExpression(struct QL_LEVEL_1_RPN_EXPRESSION *,struct QL_LEVEL_1_RPN_EXPRESSION *)
?NegateQueryExpression@CQueryAnalyser@@KGJPAUQL_LEVEL_1_RPN_EXPRESSION@@0@Z
; public: virtual long __thiscall CEvalNode::Optimize(class CContextMetaData *,class CEvalNode * *)
?Optimize@CEvalNode@@UAEJPAVCContextMetaData@@PAPAV1@@Z
; public: long __thiscall CEvalTree::Optimize(class CContextMetaData *)
?Optimize@CEvalTree@@QAEJPAVCContextMetaData@@@Z
; protected: static long __stdcall CQueryAnalyser::OrDefiniteClassArrays(class CClassInfoArray *,class CClassInfoArray *,class CClassInfoArray *)
?OrDefiniteClassArrays@CQueryAnalyser@@KGJPAVCClassInfoArray@@00@Z
; protected: static long __stdcall CQueryAnalyser::OrPossibleClassArrays(class CClassInfoArray *,class CClassInfoArray *,class CClassInfoArray *)
?OrPossibleClassArrays@CQueryAnalyser@@KGJPAVCClassInfoArray@@00@Z
; protected: static long __stdcall CQueryAnalyser::OrQueryExpressions(struct QL_LEVEL_1_RPN_EXPRESSION *,struct QL_LEVEL_1_RPN_EXPRESSION *,struct QL_LEVEL_1_RPN_EXPRESSION *)
?OrQueryExpressions@CQueryAnalyser@@KGJPAUQL_LEVEL_1_RPN_EXPRESSION@@00@Z
; public: static void __stdcall CEvalNode::PrintOffset(struct _iobuf *,int)
?PrintOffset@CEvalNode@@SGXPAU_iobuf@@H@Z
; public: static long __stdcall CEvalTree::Project(class CContextMetaData *,class CImplicationList &,class CEvalNode *,class CProjectionFilter *,enum EProjectionType,bool,class CEvalNode * *)
?Project@CEvalTree@@SGJPAVCContextMetaData@@AAVCImplicationList@@PAVCEvalNode@@PAVCProjectionFilter@@W4EProjectionType@@_NPAPAV4@@Z
; public: virtual long __stdcall CMetaData::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@CMetaData@@UAGJABU_GUID@@PAPAX@Z
; public: void __thiscall CEvalTree::Rebase(unsigned long)
?Rebase@CEvalTree@@QAEXK@Z
; public: void __thiscall CSortedArray::Rebase(unsigned long)
?Rebase@CSortedArray@@QAEXK@Z
; public: virtual unsigned long __stdcall CMetaData::Release(void)
?Release@CMetaData@@UAGKXZ
; public: bool __thiscall CSortedArray::Remove(unsigned long)
?Remove@CSortedArray@@QAE_NK@Z
; public: void __thiscall CClassInfoArray::RemoveClass(int)
?RemoveClass@CClassInfoArray@@QAEXH@Z
; public: long __thiscall CEvalTree::RemoveIndex(int)
?RemoveIndex@CEvalTree@@QAEJH@Z
; protected: unsigned int __thiscall CTempMemoryManager::RoundUp(unsigned int)
?RoundUp@CTempMemoryManager@@IAEII@Z
; public: bool __thiscall CEvalTree::SetBool(int)
?SetBool@CEvalTree@@QAE_NH@Z
; public: bool __thiscall CObjectInfo::SetLength(long)
?SetLength@CObjectInfo@@QAE_NJ@Z
; public: void __thiscall CClassInfoArray::SetLimited(int)
?SetLimited@CClassInfoArray@@QAEXH@Z
; public: void __thiscall CObjectInfo::SetObjectAt(long,struct _IWmiObject *)
?SetObjectAt@CObjectInfo@@QAEXJPAU_IWmiObject@@@Z
; public: bool __thiscall CClassInfoArray::SetOne(unsigned short const *,int)
?SetOne@CClassInfoArray@@QAE_NPBGH@Z
; public: void __thiscall CSortedArray::SetSize(int)
?SetSize@CSortedArray@@QAEXH@Z
; public: static long __stdcall CQueryAnalyser::SimplifyQueryForChild(struct QL_LEVEL_1_RPN_EXPRESSION *,unsigned short const *,struct IWbemClassObject *,class CContextMetaData *,struct QL_LEVEL_1_RPN_EXPRESSION * &)
?SimplifyQueryForChild@CQueryAnalyser@@SGJPAUQL_LEVEL_1_RPN_EXPRESSION@@PBGPAUIWbemClassObject@@PAVCContextMetaData@@AAPAU2@@Z
; protected: static int __stdcall CQueryAnalyser::SimplifyTokenForChild(struct QL_LEVEL_1_TOKEN &,unsigned short const *,struct IWbemClassObject *,class CContextMetaData *)
?SimplifyTokenForChild@CQueryAnalyser@@KGHAAUQL_LEVEL_1_TOKEN@@PBGPAUIWbemClassObject@@PAVCContextMetaData@@@Z
; public: int __thiscall CSortedArray::Size(void)const 
?Size@CSortedArray@@QBEHXZ
; public: unsigned long * __thiscall CSortedArray::UnbindPtr(void)
?UnbindPtr@CSortedArray@@QAEPAKXZ
; public: long __thiscall CEvalTree::UtilizeGuarantee(class CEvalTree &,class CContextMetaData *)
?UtilizeGuarantee@CEvalTree@@QAEJAAV1@PAVCContextMetaData@@@Z
; protected: static int __stdcall CQueryAnalyser::ValidateSQLDateTime(unsigned short const *)
?ValidateSQLDateTime@CQueryAnalyser@@KGHPBG@Z
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer
