; 
; Exports of file esscli.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY esscli.dll
EXPORTS
; public: __cdecl CClassInfoArray::CClassInfoArray(void) __ptr64
??0CClassInfoArray@@QEAA@XZ
; public: __cdecl CClassInformation::CClassInformation(struct CClassInformation const & __ptr64) __ptr64
??0CClassInformation@@QEAA@AEBU0@@Z
; public: __cdecl CClassInformation::CClassInformation(void) __ptr64
??0CClassInformation@@QEAA@XZ
; public: __cdecl CContextMetaData::CContextMetaData(class CMetaData * __ptr64,struct IWbemContext * __ptr64) __ptr64
??0CContextMetaData@@QEAA@PEAVCMetaData@@PEAUIWbemContext@@@Z
; public: __cdecl CEvalNode::CEvalNode(class CEvalNode const & __ptr64) __ptr64
??0CEvalNode@@QEAA@AEBV0@@Z
; public: __cdecl CEvalNode::CEvalNode(void) __ptr64
??0CEvalNode@@QEAA@XZ
; public: __cdecl CEvalTree::CEvalTree(class CEvalTree const & __ptr64) __ptr64
??0CEvalTree@@QEAA@AEBV0@@Z
; public: __cdecl CEvalTree::CEvalTree(void) __ptr64
??0CEvalTree@@QEAA@XZ
; public: __cdecl CMetaData::CMetaData(class CMetaData const & __ptr64) __ptr64
??0CMetaData@@QEAA@AEBV0@@Z
; public: __cdecl CMetaData::CMetaData(void) __ptr64
??0CMetaData@@QEAA@XZ
; public: __cdecl CObjectInfo::CObjectInfo(void) __ptr64
??0CObjectInfo@@QEAA@XZ
; public: __cdecl CPropertyProjectionFilter::CPropertyProjectionFilter(class CPropertyProjectionFilter const & __ptr64) __ptr64
??0CPropertyProjectionFilter@@QEAA@AEBV0@@Z
; public: __cdecl CPropertyProjectionFilter::CPropertyProjectionFilter(void) __ptr64
??0CPropertyProjectionFilter@@QEAA@XZ
; public: __cdecl CReuseMemoryManager::CReuseMemoryManager(unsigned __int64,unsigned __int64) __ptr64
??0CReuseMemoryManager@@QEAA@_K0@Z
; public: __cdecl CSortedArray::CSortedArray(class CSortedArray & __ptr64) __ptr64
??0CSortedArray@@QEAA@AEAV0@@Z
; public: __cdecl CSortedArray::CSortedArray(int,int) __ptr64
??0CSortedArray@@QEAA@HH@Z
; public: __cdecl CSortedArray::CSortedArray(unsigned int,unsigned __int64 * __ptr64) __ptr64
??0CSortedArray@@QEAA@IPEA_K@Z
; public: __cdecl CStandardMetaData::CStandardMetaData(class CStandardMetaData const & __ptr64) __ptr64
??0CStandardMetaData@@QEAA@AEBV0@@Z
; public: __cdecl CStandardMetaData::CStandardMetaData(struct IWbemServices * __ptr64) __ptr64
??0CStandardMetaData@@QEAA@PEAUIWbemServices@@@Z
; public: __cdecl CTempMemoryManager::CTempMemoryManager(void) __ptr64
??0CTempMemoryManager@@QEAA@XZ
; public: __cdecl CTimeKeeper::CTimeKeeper(void) __ptr64
??0CTimeKeeper@@QEAA@XZ
; public: __cdecl CClassInfoArray::~CClassInfoArray(void) __ptr64
??1CClassInfoArray@@QEAA@XZ
; public: __cdecl CClassInformation::~CClassInformation(void) __ptr64
??1CClassInformation@@QEAA@XZ
; public: __cdecl CContextMetaData::~CContextMetaData(void) __ptr64
??1CContextMetaData@@QEAA@XZ
; public: virtual __cdecl CEvalNode::~CEvalNode(void) __ptr64
??1CEvalNode@@UEAA@XZ
; public: __cdecl CEvalTree::~CEvalTree(void) __ptr64
??1CEvalTree@@QEAA@XZ
; public: virtual __cdecl CMetaData::~CMetaData(void) __ptr64
??1CMetaData@@UEAA@XZ
; public: __cdecl CObjectInfo::~CObjectInfo(void) __ptr64
??1CObjectInfo@@QEAA@XZ
; public: __cdecl CPropertyProjectionFilter::~CPropertyProjectionFilter(void) __ptr64
??1CPropertyProjectionFilter@@QEAA@XZ
; public: __cdecl CReuseMemoryManager::~CReuseMemoryManager(void) __ptr64
??1CReuseMemoryManager@@QEAA@XZ
; public: __cdecl CSortedArray::~CSortedArray(void) __ptr64
??1CSortedArray@@QEAA@XZ
; public: virtual __cdecl CStandardMetaData::~CStandardMetaData(void) __ptr64
??1CStandardMetaData@@UEAA@XZ
; public: __cdecl CTempMemoryManager::~CTempMemoryManager(void) __ptr64
??1CTempMemoryManager@@QEAA@XZ
; public: __cdecl CTimeKeeper::~CTimeKeeper(void) __ptr64
??1CTimeKeeper@@QEAA@XZ
; public: bool __cdecl CClassInfoArray::operator=(class CClassInfoArray & __ptr64) __ptr64
??4CClassInfoArray@@QEAA_NAEAV0@@Z
; public: struct CClassInformation & __ptr64 __cdecl CClassInformation::operator=(struct CClassInformation const & __ptr64) __ptr64
??4CClassInformation@@QEAAAEAU0@AEBU0@@Z
; public: class CContextMetaData & __ptr64 __cdecl CContextMetaData::operator=(class CContextMetaData const & __ptr64) __ptr64
??4CContextMetaData@@QEAAAEAV0@AEBV0@@Z
; public: void __cdecl CEvalTree::operator=(class CEvalTree const & __ptr64) __ptr64
??4CEvalTree@@QEAAXAEBV0@@Z
; public: class CMetaData & __ptr64 __cdecl CMetaData::operator=(class CMetaData const & __ptr64) __ptr64
??4CMetaData@@QEAAAEAV0@AEBV0@@Z
; public: class CObjectInfo & __ptr64 __cdecl CObjectInfo::operator=(class CObjectInfo const & __ptr64) __ptr64
??4CObjectInfo@@QEAAAEAV0@AEBV0@@Z
; public: class CPropertyProjectionFilter & __ptr64 __cdecl CPropertyProjectionFilter::operator=(class CPropertyProjectionFilter const & __ptr64) __ptr64
??4CPropertyProjectionFilter@@QEAAAEAV0@AEBV0@@Z
; public: class CQueryAnalyser & __ptr64 __cdecl CQueryAnalyser::operator=(class CQueryAnalyser const & __ptr64) __ptr64
??4CQueryAnalyser@@QEAAAEAV0@AEBV0@@Z
; public: class CReuseMemoryManager & __ptr64 __cdecl CReuseMemoryManager::operator=(class CReuseMemoryManager const & __ptr64) __ptr64
??4CReuseMemoryManager@@QEAAAEAV0@AEBV0@@Z
; public: void __cdecl CSortedArray::operator=(class CSortedArray const & __ptr64) __ptr64
??4CSortedArray@@QEAAXAEBV0@@Z
; public: class CStandardMetaData & __ptr64 __cdecl CStandardMetaData::operator=(class CStandardMetaData const & __ptr64) __ptr64
??4CStandardMetaData@@QEAAAEAV0@AEBV0@@Z
; public: class CTempMemoryManager & __ptr64 __cdecl CTempMemoryManager::operator=(class CTempMemoryManager const & __ptr64) __ptr64
??4CTempMemoryManager@@QEAAAEAV0@AEBV0@@Z
; public: class CTimeKeeper & __ptr64 __cdecl CTimeKeeper::operator=(class CTimeKeeper const & __ptr64) __ptr64
??4CTimeKeeper@@QEAAAEAV0@AEBV0@@Z
; const  CEvalNode::`vftable'
??_7CEvalNode@@6B@
; const  CMetaData::`vftable'
??_7CMetaData@@6B@
; const  CPropertyProjectionFilter::`vftable'
??_7CPropertyProjectionFilter@@6B@
; const  CStandardMetaData::`vftable'
??_7CStandardMetaData@@6B@
; public: void __cdecl CSortedArray::`default constructor closure'(void) __ptr64
??_FCSortedArray@@QEAAXXZ
; public: int __cdecl CSortedArray::Add(unsigned __int64) __ptr64
?Add@CSortedArray@@QEAAH_K@Z
; public: bool __cdecl CClassInfoArray::AddClass(struct CClassInformation * __ptr64) __ptr64
?AddClass@CClassInfoArray@@QEAA_NPEAUCClassInformation@@@Z
; public: int __cdecl CSortedArray::AddDataFrom(class CSortedArray const & __ptr64) __ptr64
?AddDataFrom@CSortedArray@@QEAAHAEBV1@@Z
; public: int __cdecl CSortedArray::AddDataFrom(unsigned __int64 const * __ptr64,unsigned int) __ptr64
?AddDataFrom@CSortedArray@@QEAAHPEB_KI@Z
; public: bool __cdecl CPropertyProjectionFilter::AddProperty(class CPropertyName const & __ptr64) __ptr64
?AddProperty@CPropertyProjectionFilter@@QEAA_NAEBVCPropertyName@@@Z
; public: virtual unsigned long __cdecl CMetaData::AddRef(void) __ptr64
?AddRef@CMetaData@@UEAAKXZ
; public: void * __ptr64 __cdecl CReuseMemoryManager::Allocate(void) __ptr64
?Allocate@CReuseMemoryManager@@QEAAPEAXXZ
; public: void * __ptr64 __cdecl CTempMemoryManager::Allocate(unsigned __int64) __ptr64
?Allocate@CTempMemoryManager@@QEAAPEAX_K@Z
; protected: static long __cdecl CQueryAnalyser::AndDefiniteClassArrays(class CClassInfoArray * __ptr64,class CClassInfoArray * __ptr64,class CClassInfoArray * __ptr64)
?AndDefiniteClassArrays@CQueryAnalyser@@KAJPEAVCClassInfoArray@@00@Z
; protected: static long __cdecl CQueryAnalyser::AndPossibleClassArrays(class CClassInfoArray * __ptr64,class CClassInfoArray * __ptr64,class CClassInfoArray * __ptr64)
?AndPossibleClassArrays@CQueryAnalyser@@KAJPEAVCClassInfoArray@@00@Z
; protected: static long __cdecl CQueryAnalyser::AndQueryExpressions(struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64,struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64,struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64)
?AndQueryExpressions@CQueryAnalyser@@KAJPEAUQL_LEVEL_1_RPN_EXPRESSION@@00@Z
; protected: static void __cdecl CQueryAnalyser::AppendQueryExpression(struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64,struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64)
?AppendQueryExpression@CQueryAnalyser@@KAXPEAUQL_LEVEL_1_RPN_EXPRESSION@@0@Z
; public: long __cdecl CEvalTree::ApplyPredicate(class CLeafPredicate * __ptr64) __ptr64
?ApplyPredicate@CEvalTree@@QEAAJPEAVCLeafPredicate@@@Z
; public: static long __cdecl CEvalTree::BuildFromToken(class CContextMetaData * __ptr64,class CImplicationList & __ptr64,struct QL_LEVEL_1_TOKEN & __ptr64,class CEvalNode * __ptr64 * __ptr64)
?BuildFromToken@CEvalTree@@SAJPEAVCContextMetaData@@AEAVCImplicationList@@AEAUQL_LEVEL_1_TOKEN@@PEAPEAVCEvalNode@@@Z
; public: static long __cdecl CEvalTree::BuildTwoPropFromToken(class CContextMetaData * __ptr64,class CImplicationList & __ptr64,struct QL_LEVEL_1_TOKEN & __ptr64,class CEvalNode * __ptr64 * __ptr64)
?BuildTwoPropFromToken@CEvalTree@@SAJPEAVCContextMetaData@@AEAVCImplicationList@@AEAUQL_LEVEL_1_TOKEN@@PEAPEAVCEvalNode@@@Z
; public: static long __cdecl CQueryAnalyser::CanPointToClass(struct IWbemClassObject * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,class CContextMetaData * __ptr64)
?CanPointToClass@CQueryAnalyser@@SAJPEAUIWbemClassObject@@PEBG1PEAVCContextMetaData@@@Z
; public: void __cdecl CClassInfoArray::Clear(void) __ptr64
?Clear@CClassInfoArray@@QEAAXXZ
; public: bool __cdecl CEvalTree::Clear(void) __ptr64
?Clear@CEvalTree@@QEAA_NXZ
; public: void __cdecl CObjectInfo::Clear(void) __ptr64
?Clear@CObjectInfo@@QEAAXXZ
; public: void __cdecl CReuseMemoryManager::Clear(void) __ptr64
?Clear@CReuseMemoryManager@@QEAAXXZ
; public: void __cdecl CStandardMetaData::Clear(void) __ptr64
?Clear@CStandardMetaData@@QEAAXXZ
; public: void __cdecl CTempMemoryManager::Clear(void) __ptr64
?Clear@CTempMemoryManager@@QEAAXXZ
; public: static class CEvalNode * __ptr64 __cdecl CEvalNode::CloneNode(class CEvalNode const * __ptr64)
?CloneNode@CEvalNode@@SAPEAV1@PEBV1@@Z
; public: static long __cdecl CEvalTree::Combine(class CEvalNode * __ptr64,class CEvalNode * __ptr64,int,class CContextMetaData * __ptr64,class CImplicationList & __ptr64,bool,bool,class CEvalNode * __ptr64 * __ptr64)
?Combine@CEvalTree@@SAJPEAVCEvalNode@@0HPEAVCContextMetaData@@AEAVCImplicationList@@_N3PEAPEAV2@@Z
; protected: static long __cdecl CEvalTree::CombineLeafWithBranch(class CValueNode * __ptr64,class CBranchingNode * __ptr64,int,class CContextMetaData * __ptr64,class CImplicationList & __ptr64,bool,bool,class CEvalNode * __ptr64 * __ptr64)
?CombineLeafWithBranch@CEvalTree@@KAJPEAVCValueNode@@PEAVCBranchingNode@@HPEAVCContextMetaData@@AEAVCImplicationList@@_N4PEAPEAVCEvalNode@@@Z
; public: long __cdecl CEvalTree::CombineWith(class CEvalTree & __ptr64,class CContextMetaData * __ptr64,int,long) __ptr64
?CombineWith@CEvalTree@@QEAAJAEAV1@PEAVCContextMetaData@@HJ@Z
; public: static int __cdecl CEvalTree::Compare(class CEvalNode * __ptr64,class CEvalNode * __ptr64)
?Compare@CEvalTree@@SAHPEAVCEvalNode@@0@Z
; public: int __cdecl CSortedArray::Compare(class CSortedArray & __ptr64) __ptr64
?Compare@CSortedArray@@QEAAHAEAV1@@Z
; public: static int __cdecl CQueryAnalyser::CompareRequestedToProvided(class CClassInfoArray & __ptr64,class CClassInfoArray & __ptr64)
?CompareRequestedToProvided@CQueryAnalyser@@SAHAEAVCClassInfoArray@@0@Z
; public: int __cdecl CSortedArray::CopyDataFrom(class CSortedArray const & __ptr64) __ptr64
?CopyDataFrom@CSortedArray@@QEAAHAEBV1@@Z
; public: int __cdecl CSortedArray::CopyDataFrom(unsigned __int64 const * __ptr64,unsigned int) __ptr64
?CopyDataFrom@CSortedArray@@QEAAHPEB_KI@Z
; public: unsigned int __cdecl CSortedArray::CopyTo(unsigned __int64 * __ptr64,unsigned int) __ptr64
?CopyTo@CSortedArray@@QEAAIPEA_KI@Z
; public: static long __cdecl CEvalTree::CreateFromConjunction(class CContextMetaData * __ptr64,class CImplicationList & __ptr64,class CConjunction * __ptr64,class CEvalNode * __ptr64 * __ptr64)
?CreateFromConjunction@CEvalTree@@SAJPEAVCContextMetaData@@AEAVCImplicationList@@PEAVCConjunction@@PEAPEAVCEvalNode@@@Z
; public: long __cdecl CEvalTree::CreateFromDNF(class CContextMetaData * __ptr64,class CImplicationList & __ptr64,class CDNFExpression * __ptr64,class CEvalNode * __ptr64 * __ptr64) __ptr64
?CreateFromDNF@CEvalTree@@QEAAJPEAVCContextMetaData@@AEAVCImplicationList@@PEAVCDNFExpression@@PEAPEAVCEvalNode@@@Z
; public: long __cdecl CEvalTree::CreateFromQuery(class CContextMetaData * __ptr64,struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64,long,long) __ptr64
?CreateFromQuery@CEvalTree@@QEAAJPEAVCContextMetaData@@PEAUQL_LEVEL_1_RPN_EXPRESSION@@JJ@Z
; public: long __cdecl CEvalTree::CreateFromQuery(class CContextMetaData * __ptr64,unsigned short const * __ptr64,int,struct QL_LEVEL_1_TOKEN * __ptr64,long,long) __ptr64
?CreateFromQuery@CEvalTree@@QEAAJPEAVCContextMetaData@@PEBGHPEAUQL_LEVEL_1_TOKEN@@JJ@Z
; public: long __cdecl CEvalTree::CreateFromQuery(class CContextMetaData * __ptr64,unsigned short const * __ptr64,long,long) __ptr64
?CreateFromQuery@CEvalTree@@QEAAJPEAVCContextMetaData@@PEBGJJ@Z
; public: long __cdecl CEvalTree::CreateProjection(class CEvalTree & __ptr64,class CContextMetaData * __ptr64,class CProjectionFilter * __ptr64,enum EProjectionType,bool) __ptr64
?CreateProjection@CEvalTree@@QEAAJAEAV1@PEAVCContextMetaData@@PEAVCProjectionFilter@@W4EProjectionType@@_N@Z
; public: bool __cdecl CTimeKeeper::DecorateObject(struct _IWmiObject * __ptr64) __ptr64
?DecorateObject@CTimeKeeper@@QEAA_NPEAU_IWmiObject@@@Z
; public: void __cdecl CSortedArray::Empty(void) __ptr64
?Empty@CSortedArray@@QEAAXXZ
; public: long __cdecl CEvalTree::Evaluate(struct IWbemObjectAccess * __ptr64,class CSortedArray & __ptr64) __ptr64
?Evaluate@CEvalTree@@QEAAJPEAUIWbemObjectAccess@@AEAVCSortedArray@@@Z
; public: static long __cdecl CEvalTree::Evaluate(class CObjectInfo & __ptr64,class CEvalNode * __ptr64,class CSortedArray & __ptr64)
?Evaluate@CEvalTree@@SAJAEAVCObjectInfo@@PEAVCEvalNode@@AEAVCSortedArray@@@Z
; public: unsigned int __cdecl CSortedArray::Find(unsigned __int64) __ptr64
?Find@CSortedArray@@QEAAI_K@Z
; public: void __cdecl CReuseMemoryManager::Free(void * __ptr64) __ptr64
?Free@CReuseMemoryManager@@QEAAXPEAX@Z
; public: void __cdecl CTempMemoryManager::Free(void * __ptr64,unsigned __int64) __ptr64
?Free@CTempMemoryManager@@QEAAXPEAX_K@Z
; long __cdecl GetAccessMask(void * __ptr64,struct _ACL * __ptr64,unsigned long * __ptr64)
?GetAccessMask@@YAJPEAXPEAU_ACL@@PEAK@Z
; public: unsigned __int64 * __ptr64 __cdecl CSortedArray::GetArrayPtr(void) __ptr64
?GetArrayPtr@CSortedArray@@QEAAPEA_KXZ
; public: unsigned __int64 __cdecl CSortedArray::GetAt(int) __ptr64
?GetAt@CSortedArray@@QEAA_KH@Z
; public: struct CClassInformation * __ptr64 __cdecl CClassInfoArray::GetClass(int) __ptr64
?GetClass@CClassInfoArray@@QEAAPEAUCClassInformation@@H@Z
; public: long __cdecl CContextMetaData::GetClass(unsigned short const * __ptr64,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?GetClass@CContextMetaData@@QEAAJPEBGPEAPEAU_IWmiObject@@@Z
; public: virtual long __cdecl CMetaData::GetClass(unsigned short const * __ptr64,struct IWbemContext * __ptr64,struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?GetClass@CMetaData@@UEAAJPEBGPEAUIWbemContext@@PEAPEAUIWbemClassObject@@@Z
; public: virtual long __cdecl CStandardMetaData::GetClass(unsigned short const * __ptr64,struct IWbemContext * __ptr64,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?GetClass@CStandardMetaData@@UEAAJPEBGPEAUIWbemContext@@PEAPEAU_IWmiObject@@@Z
; public: static long __cdecl CQueryAnalyser::GetDefiniteInstanceClasses(struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64,class CClassInfoArray * __ptr64 & __ptr64)
?GetDefiniteInstanceClasses@CQueryAnalyser@@SAJPEAUQL_LEVEL_1_RPN_EXPRESSION@@AEAPEAVCClassInfoArray@@@Z
; protected: static long __cdecl CQueryAnalyser::GetInstanceClasses(struct QL_LEVEL_1_TOKEN & __ptr64,class CClassInfoArray & __ptr64)
?GetInstanceClasses@CQueryAnalyser@@KAJAEAUQL_LEVEL_1_TOKEN@@AEAVCClassInfoArray@@@Z
; public: long __cdecl CObjectInfo::GetLength(void) __ptr64
?GetLength@CObjectInfo@@QEAAJXZ
; public: static long __cdecl CQueryAnalyser::GetLimitingQueryForInstanceClass(struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64,struct CClassInformation & __ptr64,unsigned short * __ptr64 & __ptr64)
?GetLimitingQueryForInstanceClass@CQueryAnalyser@@SAJPEAUQL_LEVEL_1_RPN_EXPRESSION@@AEAUCClassInformation@@AEAPEAG@Z
; public: static long __cdecl CQueryAnalyser::GetNecessaryQueryForClass(struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64,struct IWbemClassObject * __ptr64,class CWStringArray & __ptr64,struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64 & __ptr64)
?GetNecessaryQueryForClass@CQueryAnalyser@@SAJPEAUQL_LEVEL_1_RPN_EXPRESSION@@PEAUIWbemClassObject@@AEAVCWStringArray@@AEAPEAU2@@Z
; public: static long __cdecl CQueryAnalyser::GetNecessaryQueryForProperty(struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64,class CPropertyName & __ptr64,struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64 & __ptr64)
?GetNecessaryQueryForProperty@CQueryAnalyser@@SAJPEAUQL_LEVEL_1_RPN_EXPRESSION@@AEAVCPropertyName@@AEAPEAU2@@Z
; public: int __cdecl CClassInfoArray::GetNumClasses(void) __ptr64
?GetNumClasses@CClassInfoArray@@QEAAHXZ
; public: struct _IWmiObject * __ptr64 __cdecl CObjectInfo::GetObjectAt(long) __ptr64
?GetObjectAt@CObjectInfo@@QEAAPEAU_IWmiObject@@J@Z
; public: static long __cdecl CQueryAnalyser::GetPossibleInstanceClasses(struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64,class CClassInfoArray * __ptr64 & __ptr64)
?GetPossibleInstanceClasses@CQueryAnalyser@@SAJPEAUQL_LEVEL_1_RPN_EXPRESSION@@AEAPEAVCClassInfoArray@@@Z
; protected: static long __cdecl CQueryAnalyser::GetPropertiesThatMustDiffer(struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64,struct CClassInformation & __ptr64,class CWStringArray & __ptr64)
?GetPropertiesThatMustDiffer@CQueryAnalyser@@KAJPEAUQL_LEVEL_1_RPN_EXPRESSION@@AEAUCClassInformation@@AEAVCWStringArray@@@Z
; public: static int __cdecl CEvalNode::GetType(class CEvalNode * __ptr64)
?GetType@CEvalNode@@SAHPEAV1@@Z
; protected: static long __cdecl CEvalTree::InnerCombine(class CEvalNode * __ptr64,class CEvalNode * __ptr64,int,class CContextMetaData * __ptr64,class CImplicationList & __ptr64,bool,bool,class CEvalNode * __ptr64 * __ptr64)
?InnerCombine@CEvalTree@@KAJPEAVCEvalNode@@0HPEAVCContextMetaData@@AEAVCImplicationList@@_N3PEAPEAV2@@Z
; public: void __cdecl CSortedArray::Insert(unsigned __int64) __ptr64
?Insert@CSortedArray@@QEAAX_K@Z
; public: static bool __cdecl CEvalNode::IsAllFalse(class CEvalNode * __ptr64)
?IsAllFalse@CEvalNode@@SA_NPEAV1@@Z
; public: virtual bool __cdecl CEvalNode::IsAllFalse(void) __ptr64
?IsAllFalse@CEvalNode@@UEAA_NXZ
; public: bool __cdecl CEvalTree::IsFalse(void) __ptr64
?IsFalse@CEvalTree@@QEAA_NXZ
; public: virtual bool __cdecl CPropertyProjectionFilter::IsInSet(class CEvalNode * __ptr64) __ptr64
?IsInSet@CPropertyProjectionFilter@@UEAA_NPEAVCEvalNode@@@Z
; public: static bool __cdecl CEvalNode::IsInvalid(class CEvalNode * __ptr64)
?IsInvalid@CEvalNode@@SA_NPEAV1@@Z
; public: virtual bool __cdecl CEvalNode::IsInvalid(void) __ptr64
?IsInvalid@CEvalNode@@UEAA_NXZ
; public: int __cdecl CClassInfoArray::IsLimited(void) __ptr64
?IsLimited@CClassInfoArray@@QEAAHXZ
; public: static long __cdecl CEvalTree::IsMergeAdvisable(class CEvalNode * __ptr64,class CEvalNode * __ptr64,class CImplicationList & __ptr64)
?IsMergeAdvisable@CEvalTree@@SAJPEAVCEvalNode@@0AEAVCImplicationList@@@Z
; public: static bool __cdecl CEvalNode::IsNoop(class CEvalNode * __ptr64,int)
?IsNoop@CEvalNode@@SA_NPEAV1@H@Z
; public: virtual bool __cdecl CEvalNode::IsNoop(int) __ptr64
?IsNoop@CEvalNode@@UEAA_NH@Z
; protected: static int __cdecl CQueryAnalyser::IsPropertyInClass(class CPropertyName & __ptr64,struct IWbemClassObject * __ptr64,class CWStringArray & __ptr64)
?IsPropertyInClass@CQueryAnalyser@@KAHAEAVCPropertyName@@PEAUIWbemClassObject@@AEAVCWStringArray@@@Z
; protected: static int __cdecl CQueryAnalyser::IsTokenAboutClass(struct QL_LEVEL_1_TOKEN & __ptr64,struct IWbemClassObject * __ptr64,class CWStringArray & __ptr64)
?IsTokenAboutClass@CQueryAnalyser@@KAHAEAUQL_LEVEL_1_TOKEN@@PEAUIWbemClassObject@@AEAVCWStringArray@@@Z
; protected: static int __cdecl CQueryAnalyser::IsTokenAboutProperty(struct QL_LEVEL_1_TOKEN & __ptr64,class CPropertyName & __ptr64)
?IsTokenAboutProperty@CQueryAnalyser@@KAHAEAUQL_LEVEL_1_TOKEN@@AEAVCPropertyName@@@Z
; long __cdecl IsUserAdministrator(void * __ptr64)
?IsUserAdministrator@@YAJPEAX@Z
; long __cdecl IsUserInGroup(void * __ptr64,void * __ptr64)
?IsUserInGroup@@YAJPEAX0@Z
; public: bool __cdecl CEvalTree::IsValid(void) __ptr64
?IsValid@CEvalTree@@QEAA_NXZ
; protected: static long __cdecl CQueryAnalyser::NegateDefiniteClassArray(class CClassInfoArray * __ptr64,class CClassInfoArray * __ptr64)
?NegateDefiniteClassArray@CQueryAnalyser@@KAJPEAVCClassInfoArray@@0@Z
; protected: static long __cdecl CQueryAnalyser::NegatePossibleClassArray(class CClassInfoArray * __ptr64,class CClassInfoArray * __ptr64)
?NegatePossibleClassArray@CQueryAnalyser@@KAJPEAVCClassInfoArray@@0@Z
; protected: static long __cdecl CQueryAnalyser::NegateQueryExpression(struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64,struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64)
?NegateQueryExpression@CQueryAnalyser@@KAJPEAUQL_LEVEL_1_RPN_EXPRESSION@@0@Z
; public: virtual long __cdecl CEvalNode::Optimize(class CContextMetaData * __ptr64,class CEvalNode * __ptr64 * __ptr64) __ptr64
?Optimize@CEvalNode@@UEAAJPEAVCContextMetaData@@PEAPEAV1@@Z
; public: long __cdecl CEvalTree::Optimize(class CContextMetaData * __ptr64) __ptr64
?Optimize@CEvalTree@@QEAAJPEAVCContextMetaData@@@Z
; protected: static long __cdecl CQueryAnalyser::OrDefiniteClassArrays(class CClassInfoArray * __ptr64,class CClassInfoArray * __ptr64,class CClassInfoArray * __ptr64)
?OrDefiniteClassArrays@CQueryAnalyser@@KAJPEAVCClassInfoArray@@00@Z
; protected: static long __cdecl CQueryAnalyser::OrPossibleClassArrays(class CClassInfoArray * __ptr64,class CClassInfoArray * __ptr64,class CClassInfoArray * __ptr64)
?OrPossibleClassArrays@CQueryAnalyser@@KAJPEAVCClassInfoArray@@00@Z
; protected: static long __cdecl CQueryAnalyser::OrQueryExpressions(struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64,struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64,struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64)
?OrQueryExpressions@CQueryAnalyser@@KAJPEAUQL_LEVEL_1_RPN_EXPRESSION@@00@Z
; public: static void __cdecl CEvalNode::PrintOffset(struct _iobuf * __ptr64,int)
?PrintOffset@CEvalNode@@SAXPEAU_iobuf@@H@Z
; public: static long __cdecl CEvalTree::Project(class CContextMetaData * __ptr64,class CImplicationList & __ptr64,class CEvalNode * __ptr64,class CProjectionFilter * __ptr64,enum EProjectionType,bool,class CEvalNode * __ptr64 * __ptr64)
?Project@CEvalTree@@SAJPEAVCContextMetaData@@AEAVCImplicationList@@PEAVCEvalNode@@PEAVCProjectionFilter@@W4EProjectionType@@_NPEAPEAV4@@Z
; public: virtual long __cdecl CMetaData::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CMetaData@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: void __cdecl CEvalTree::Rebase(unsigned __int64) __ptr64
?Rebase@CEvalTree@@QEAAX_K@Z
; public: void __cdecl CSortedArray::Rebase(unsigned __int64) __ptr64
?Rebase@CSortedArray@@QEAAX_K@Z
; public: virtual unsigned long __cdecl CMetaData::Release(void) __ptr64
?Release@CMetaData@@UEAAKXZ
; public: bool __cdecl CSortedArray::Remove(unsigned __int64) __ptr64
?Remove@CSortedArray@@QEAA_N_K@Z
; public: void __cdecl CClassInfoArray::RemoveClass(int) __ptr64
?RemoveClass@CClassInfoArray@@QEAAXH@Z
; public: long __cdecl CEvalTree::RemoveIndex(int) __ptr64
?RemoveIndex@CEvalTree@@QEAAJH@Z
; protected: unsigned __int64 __cdecl CTempMemoryManager::RoundUp(unsigned __int64) __ptr64
?RoundUp@CTempMemoryManager@@IEAA_K_K@Z
; public: bool __cdecl CEvalTree::SetBool(int) __ptr64
?SetBool@CEvalTree@@QEAA_NH@Z
; public: bool __cdecl CObjectInfo::SetLength(long) __ptr64
?SetLength@CObjectInfo@@QEAA_NJ@Z
; public: void __cdecl CClassInfoArray::SetLimited(int) __ptr64
?SetLimited@CClassInfoArray@@QEAAXH@Z
; public: void __cdecl CObjectInfo::SetObjectAt(long,struct _IWmiObject * __ptr64) __ptr64
?SetObjectAt@CObjectInfo@@QEAAXJPEAU_IWmiObject@@@Z
; public: bool __cdecl CClassInfoArray::SetOne(unsigned short const * __ptr64,int) __ptr64
?SetOne@CClassInfoArray@@QEAA_NPEBGH@Z
; public: void __cdecl CSortedArray::SetSize(int) __ptr64
?SetSize@CSortedArray@@QEAAXH@Z
; public: static long __cdecl CQueryAnalyser::SimplifyQueryForChild(struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64,unsigned short const * __ptr64,struct IWbemClassObject * __ptr64,class CContextMetaData * __ptr64,struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64 & __ptr64)
?SimplifyQueryForChild@CQueryAnalyser@@SAJPEAUQL_LEVEL_1_RPN_EXPRESSION@@PEBGPEAUIWbemClassObject@@PEAVCContextMetaData@@AEAPEAU2@@Z
; protected: static int __cdecl CQueryAnalyser::SimplifyTokenForChild(struct QL_LEVEL_1_TOKEN & __ptr64,unsigned short const * __ptr64,struct IWbemClassObject * __ptr64,class CContextMetaData * __ptr64)
?SimplifyTokenForChild@CQueryAnalyser@@KAHAEAUQL_LEVEL_1_TOKEN@@PEBGPEAUIWbemClassObject@@PEAVCContextMetaData@@@Z
; public: int __cdecl CSortedArray::Size(void)const  __ptr64
?Size@CSortedArray@@QEBAHXZ
; public: unsigned __int64 * __ptr64 __cdecl CSortedArray::UnbindPtr(void) __ptr64
?UnbindPtr@CSortedArray@@QEAAPEA_KXZ
; public: long __cdecl CEvalTree::UtilizeGuarantee(class CEvalTree & __ptr64,class CContextMetaData * __ptr64) __ptr64
?UtilizeGuarantee@CEvalTree@@QEAAJAEAV1@PEAVCContextMetaData@@@Z
; protected: static int __cdecl CQueryAnalyser::ValidateSQLDateTime(unsigned short const * __ptr64)
?ValidateSQLDateTime@CQueryAnalyser@@KAHPEBG@Z
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer
