; 
; Exports of file wbemcomn.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY wbemcomn.dll
EXPORTS
; public: __cdecl CLockableFlexArray<class CStaticCritSec>::CLockableFlexArray<class CStaticCritSec>(class CLockableFlexArray<class CStaticCritSec> & __ptr64) __ptr64
??0?$CLockableFlexArray@VCStaticCritSec@@@@QEAA@AEAV0@@Z
; public: __cdecl CLockableFlexArray<class CStaticCritSec>::CLockableFlexArray<class CStaticCritSec>(void) __ptr64
??0?$CLockableFlexArray@VCStaticCritSec@@@@QEAA@XZ
; public: __cdecl C9XAce::C9XAce(class C9XAce const & __ptr64) __ptr64
??0C9XAce@@QEAA@AEBV0@@Z
; public: __cdecl C9XAce::C9XAce(unsigned long,unsigned long,unsigned long,unsigned short * __ptr64) __ptr64
??0C9XAce@@QEAA@KKKPEAG@Z
; public: __cdecl C9XAce::C9XAce(void) __ptr64
??0C9XAce@@QEAA@XZ
; public: __cdecl CAbstractQl1Parser::CAbstractQl1Parser(class CAbstractQl1Parser const & __ptr64) __ptr64
??0CAbstractQl1Parser@@QEAA@AEBV0@@Z
; public: __cdecl CAbstractQl1Parser::CAbstractQl1Parser(class CGenLexSource * __ptr64) __ptr64
??0CAbstractQl1Parser@@QEAA@PEAVCGenLexSource@@@Z
; public: __cdecl CArena::CArena(class CArena const & __ptr64) __ptr64
??0CArena@@QEAA@AEBV0@@Z
; public: __cdecl CArena::CArena(void) __ptr64
??0CArena@@QEAA@XZ
; public: __cdecl CBaseAce::CBaseAce(class CBaseAce const & __ptr64) __ptr64
??0CBaseAce@@QEAA@AEBV0@@Z
; public: __cdecl CBaseAce::CBaseAce(void) __ptr64
??0CBaseAce@@QEAA@XZ
; protected: __cdecl CBasicUnloadInstruction::CBasicUnloadInstruction(void) __ptr64
??0CBasicUnloadInstruction@@IEAA@XZ
; public: __cdecl CBasicUnloadInstruction::CBasicUnloadInstruction(class CBasicUnloadInstruction const & __ptr64) __ptr64
??0CBasicUnloadInstruction@@QEAA@AEBV0@@Z
; public: __cdecl CBasicUnloadInstruction::CBasicUnloadInstruction(class CWbemInterval) __ptr64
??0CBasicUnloadInstruction@@QEAA@VCWbemInterval@@@Z
; public: __cdecl CBuffer::CBuffer(class CBuffer const & __ptr64) __ptr64
??0CBuffer@@QEAA@AEBV0@@Z
; public: __cdecl CBuffer::CBuffer(unsigned char * __ptr64,unsigned long,int) __ptr64
??0CBuffer@@QEAA@PEAEKH@Z
; public: __cdecl CCheckedInCritSec::CCheckedInCritSec(class CCritSec * __ptr64) __ptr64
??0CCheckedInCritSec@@QEAA@PEAVCCritSec@@@Z
; public: __cdecl CContainerControl::CContainerControl(class CContainerControl const & __ptr64) __ptr64
??0CContainerControl@@QEAA@AEBV0@@Z
; public: __cdecl CContainerControl::CContainerControl(struct IUnknown * __ptr64) __ptr64
??0CContainerControl@@QEAA@PEAUIUnknown@@@Z
; public: __cdecl CCritSec::CCritSec(void) __ptr64
??0CCritSec@@QEAA@XZ
; public: __cdecl CDMTFParser::CDMTFParser(unsigned short const * __ptr64) __ptr64
??0CDMTFParser@@QEAA@PEBG@Z
; public: __cdecl CDatePart::CDatePart(void) __ptr64
??0CDatePart@@QEAA@XZ
; protected: __cdecl CDateTimeParser::CDateTimeParser(void) __ptr64
??0CDateTimeParser@@IEAA@XZ
; public: __cdecl CDateTimeParser::CDateTimeParser(unsigned short const * __ptr64) __ptr64
??0CDateTimeParser@@QEAA@PEBG@Z
; public: __cdecl CEnterWbemCriticalSection::CEnterWbemCriticalSection(class CWbemCriticalSection * __ptr64,unsigned long) __ptr64
??0CEnterWbemCriticalSection@@QEAA@PEAVCWbemCriticalSection@@K@Z
; public: __cdecl CEventLog::CEventLog(class CEventLog const & __ptr64) __ptr64
??0CEventLog@@QEAA@AEBV0@@Z
; public: __cdecl CEventLog::CEventLog(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
??0CEventLog@@QEAA@PEBG0K@Z
; public: __cdecl CEventLogRecord::CEventLogRecord(class CEventLogRecord & __ptr64) __ptr64
??0CEventLogRecord@@QEAA@AEAV0@@Z
; public: __cdecl CEventLogRecord::CEventLogRecord(unsigned short,unsigned long,class CInsertionString,class CInsertionString,class CInsertionString,class CInsertionString,class CInsertionString,class CInsertionString,class CInsertionString,class CInsertionString,class CInsertionString,class CInsertionString) __ptr64
??0CEventLogRecord@@QEAA@GKVCInsertionString@@000000000@Z
; public: __cdecl CExecQueue::CExecQueue(class CExecQueue & __ptr64) __ptr64
??0CExecQueue@@QEAA@AEAV0@@Z
; public: __cdecl CExecQueue::CExecQueue(void) __ptr64
??0CExecQueue@@QEAA@XZ
; public: __cdecl CExecRequest::CExecRequest(class CExecRequest const & __ptr64) __ptr64
??0CExecRequest@@QEAA@AEBV0@@Z
; public: __cdecl CExecRequest::CExecRequest(void) __ptr64
??0CExecRequest@@QEAA@XZ
; public: __cdecl CFlexArray::CFlexArray(class CFlexArray & __ptr64) __ptr64
??0CFlexArray@@QEAA@AEAV0@@Z
; public: __cdecl CFlexArray::CFlexArray(int,int) __ptr64
??0CFlexArray@@QEAA@HH@Z
; public: __cdecl CFlexQueue::CFlexQueue(int) __ptr64
??0CFlexQueue@@QEAA@H@Z
; public: __cdecl CHaltable::CHaltable(class CHaltable const & __ptr64) __ptr64
??0CHaltable@@QEAA@AEBV0@@Z
; public: __cdecl CHaltable::CHaltable(void) __ptr64
??0CHaltable@@QEAA@XZ
; public: __cdecl CHex::CHex(long) __ptr64
??0CHex@@QEAA@J@Z
; public: __cdecl CIdentitySecurity::CIdentitySecurity(class CIdentitySecurity const & __ptr64) __ptr64
??0CIdentitySecurity@@QEAA@AEBV0@@Z
; public: __cdecl CIdentitySecurity::CIdentitySecurity(bool) __ptr64
??0CIdentitySecurity@@QEAA@_N@Z
; public: __cdecl CIdentityTest::CIdentityTest(class CIdentityTest const & __ptr64) __ptr64
??0CIdentityTest@@QEAA@AEBV0@@Z
; public: __cdecl CIdentityTest::CIdentityTest(class CTimerInstruction * __ptr64) __ptr64
??0CIdentityTest@@QEAA@PEAVCTimerInstruction@@@Z
; public: __cdecl CInCritSec::CInCritSec(struct _RTL_CRITICAL_SECTION * __ptr64) __ptr64
??0CInCritSec@@QEAA@PEAU_RTL_CRITICAL_SECTION@@@Z
; public: __cdecl CInsertionString::CInsertionString(class CInsertionString const & __ptr64) __ptr64
??0CInsertionString@@QEAA@AEBV0@@Z
; public: __cdecl CInsertionString::CInsertionString(long) __ptr64
??0CInsertionString@@QEAA@J@Z
; public: __cdecl CInsertionString::CInsertionString(char const * __ptr64) __ptr64
??0CInsertionString@@QEAA@PEBD@Z
; public: __cdecl CInsertionString::CInsertionString(unsigned short const * __ptr64) __ptr64
??0CInsertionString@@QEAA@PEBG@Z
; public: __cdecl CInsertionString::CInsertionString(class CHex) __ptr64
??0CInsertionString@@QEAA@VCHex@@@Z
; public: __cdecl CInsertionString::CInsertionString(void) __ptr64
??0CInsertionString@@QEAA@XZ
; public: __cdecl CInstructionQueue::CInstructionQueue(void) __ptr64
??0CInstructionQueue@@QEAA@XZ
; public: __cdecl CInstructionTest::CInstructionTest(class CInstructionTest const & __ptr64) __ptr64
??0CInstructionTest@@QEAA@AEBV0@@Z
; public: __cdecl CInstructionTest::CInstructionTest(void) __ptr64
??0CInstructionTest@@QEAA@XZ
; public: __cdecl CLifeControl::CLifeControl(class CLifeControl const & __ptr64) __ptr64
??0CLifeControl@@QEAA@AEBV0@@Z
; public: __cdecl CLifeControl::CLifeControl(void) __ptr64
??0CLifeControl@@QEAA@XZ
; public: __cdecl CLike::CLike(class CLike const & __ptr64) __ptr64
??0CLike@@QEAA@AEBV0@@Z
; public: __cdecl CLike::CLike(unsigned short const * __ptr64,unsigned short) __ptr64
??0CLike@@QEAA@PEBGG@Z
; public: __cdecl CLike::CLike(void) __ptr64
??0CLike@@QEAA@XZ
; public: __cdecl CLimitControl::CLimitControl(class CLimitControl const & __ptr64) __ptr64
??0CLimitControl@@QEAA@AEBV0@@Z
; public: __cdecl CLimitControl::CLimitControl(void) __ptr64
??0CLimitControl@@QEAA@XZ
; public: __cdecl CMRCICompression::CMRCICompression(void) __ptr64
??0CMRCICompression@@QEAA@XZ
; public: __cdecl CMRCIControl::CMRCIControl(void) __ptr64
??0CMRCIControl@@QEAA@XZ
; public: __cdecl CMinMaxLimitControl::CMinMaxLimitControl(class CMinMaxLimitControl const & __ptr64) __ptr64
??0CMinMaxLimitControl@@QEAA@AEBV0@@Z
; public: __cdecl CMinMaxLimitControl::CMinMaxLimitControl(int,unsigned short const * __ptr64) __ptr64
??0CMinMaxLimitControl@@QEAA@HPEBG@Z
; public: __cdecl CNtAce::CNtAce(class CNtAce const & __ptr64) __ptr64
??0CNtAce@@QEAA@AEBV0@@Z
; public: __cdecl CNtAce::CNtAce(unsigned long,unsigned long,unsigned long,class CNtSid & __ptr64) __ptr64
??0CNtAce@@QEAA@KKKAEAVCNtSid@@@Z
; public: __cdecl CNtAce::CNtAce(unsigned long,unsigned long,unsigned long,unsigned short * __ptr64,unsigned short * __ptr64) __ptr64
??0CNtAce@@QEAA@KKKPEAG0@Z
; public: __cdecl CNtAce::CNtAce(struct _ACCESS_ALLOWED_ACE * __ptr64) __ptr64
??0CNtAce@@QEAA@PEAU_ACCESS_ALLOWED_ACE@@@Z
; public: __cdecl CNtAce::CNtAce(void) __ptr64
??0CNtAce@@QEAA@XZ
; public: __cdecl CNtAcl::CNtAcl(class CNtAcl const & __ptr64) __ptr64
??0CNtAcl@@QEAA@AEBV0@@Z
; public: __cdecl CNtAcl::CNtAcl(unsigned long) __ptr64
??0CNtAcl@@QEAA@K@Z
; public: __cdecl CNtAcl::CNtAcl(struct _ACL * __ptr64) __ptr64
??0CNtAcl@@QEAA@PEAU_ACL@@@Z
; public: __cdecl CNtSecurityDescriptor::CNtSecurityDescriptor(class CNtSecurityDescriptor & __ptr64) __ptr64
??0CNtSecurityDescriptor@@QEAA@AEAV0@@Z
; public: __cdecl CNtSecurityDescriptor::CNtSecurityDescriptor(void * __ptr64,int) __ptr64
??0CNtSecurityDescriptor@@QEAA@PEAXH@Z
; public: __cdecl CNtSecurityDescriptor::CNtSecurityDescriptor(void) __ptr64
??0CNtSecurityDescriptor@@QEAA@XZ
; public: __cdecl CNtSid::CNtSid(class CNtSid const & __ptr64) __ptr64
??0CNtSid@@QEAA@AEBV0@@Z
; public: __cdecl CNtSid::CNtSid(unsigned short * __ptr64,unsigned short * __ptr64) __ptr64
??0CNtSid@@QEAA@PEAG0@Z
; public: __cdecl CNtSid::CNtSid(void * __ptr64) __ptr64
??0CNtSid@@QEAA@PEAX@Z
; public: __cdecl CNtSid::CNtSid(enum CNtSid::SidType) __ptr64
??0CNtSid@@QEAA@W4SidType@0@@Z
; public: __cdecl CNtSid::CNtSid(void) __ptr64
??0CNtSid@@QEAA@XZ
; public: __cdecl CPropertyName::CPropertyName(class CPropertyName const & __ptr64) __ptr64
??0CPropertyName@@QEAA@AEBV0@@Z
; public: __cdecl CPropertyName::CPropertyName(void) __ptr64
??0CPropertyName@@QEAA@XZ
; public: __cdecl CQl1ParseSink::CQl1ParseSink(class CQl1ParseSink const & __ptr64) __ptr64
??0CQl1ParseSink@@QEAA@AEBV0@@Z
; public: __cdecl CQl1ParseSink::CQl1ParseSink(void) __ptr64
??0CQl1ParseSink@@QEAA@XZ
; public: __cdecl CRegistryMinMaxLimitControl::CRegistryMinMaxLimitControl(class CRegistryMinMaxLimitControl const & __ptr64) __ptr64
??0CRegistryMinMaxLimitControl@@QEAA@AEBV0@@Z
; public: __cdecl CRegistryMinMaxLimitControl::CRegistryMinMaxLimitControl(int,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0CRegistryMinMaxLimitControl@@QEAA@HPEBG0000@Z
; public: __cdecl CSafeArray::CSafeArray(class CSafeArray & __ptr64) __ptr64
??0CSafeArray@@QEAA@AEAV0@@Z
; public: __cdecl CSafeArray::CSafeArray(int,int,int,int) __ptr64
??0CSafeArray@@QEAA@HHHH@Z
; public: __cdecl CSafeArray::CSafeArray(struct tagSAFEARRAY * __ptr64,int,int,int) __ptr64
??0CSafeArray@@QEAA@PEAUtagSAFEARRAY@@HHH@Z
; public: __cdecl CStaticCritSec::CStaticCritSec(void) __ptr64
??0CStaticCritSec@@QEAA@XZ
; public: __cdecl CTextTemplate::CTextTemplate(class CTextTemplate const & __ptr64) __ptr64
??0CTextTemplate@@QEAA@AEBV0@@Z
; public: __cdecl CTextTemplate::CTextTemplate(unsigned short const * __ptr64) __ptr64
??0CTextTemplate@@QEAA@PEBG@Z
; public: __cdecl CTimerGenerator::CTimerGenerator(class CTimerGenerator const & __ptr64) __ptr64
??0CTimerGenerator@@QEAA@AEBV0@@Z
; public: __cdecl CTimerGenerator::CTimerGenerator(void) __ptr64
??0CTimerGenerator@@QEAA@XZ
; public: __cdecl CTimerInstruction::CTimerInstruction(class CTimerInstruction const & __ptr64) __ptr64
??0CTimerInstruction@@QEAA@AEBV0@@Z
; public: __cdecl CTimerInstruction::CTimerInstruction(void) __ptr64
??0CTimerInstruction@@QEAA@XZ
; public: __cdecl CUnk::CUnk(class CUnk const & __ptr64) __ptr64
??0CUnk@@QEAA@AEBV0@@Z
; public: __cdecl CUnk::CUnk(class CLifeControl * __ptr64,struct IUnknown * __ptr64) __ptr64
??0CUnk@@QEAA@PEAVCLifeControl@@PEAUIUnknown@@@Z
; public: __cdecl CUnkInternal::CUnkInternal(class CUnkInternal const & __ptr64) __ptr64
??0CUnkInternal@@QEAA@AEBV0@@Z
; public: __cdecl CUnkInternal::CUnkInternal(class CLifeControl * __ptr64) __ptr64
??0CUnkInternal@@QEAA@PEAVCLifeControl@@@Z
; public: __cdecl CUnloadInstruction::CUnloadInstruction(class CUnloadInstruction const & __ptr64) __ptr64
??0CUnloadInstruction@@QEAA@AEBV0@@Z
; public: __cdecl CUnloadInstruction::CUnloadInstruction(unsigned short const * __ptr64,struct IWbemContext * __ptr64) __ptr64
??0CUnloadInstruction@@QEAA@PEBGPEAUIWbemContext@@@Z
; public: __cdecl CVar::CVar(class CVar const & __ptr64) __ptr64
??0CVar@@QEAA@AEBV0@@Z
; public: __cdecl CVar::CVar(char) __ptr64
??0CVar@@QEAA@D@Z
; public: __cdecl CVar::CVar(unsigned char) __ptr64
??0CVar@@QEAA@E@Z
; public: __cdecl CVar::CVar(short) __ptr64
??0CVar@@QEAA@F@Z
; public: __cdecl CVar::CVar(short,int) __ptr64
??0CVar@@QEAA@FH@Z
; public: __cdecl CVar::CVar(unsigned short) __ptr64
??0CVar@@QEAA@G@Z
; public: __cdecl CVar::CVar(int,unsigned short * __ptr64) __ptr64
??0CVar@@QEAA@HPEAG@Z
; public: __cdecl CVar::CVar(int,struct tagSAFEARRAY * __ptr64) __ptr64
??0CVar@@QEAA@HPEAUtagSAFEARRAY@@@Z
; public: __cdecl CVar::CVar(int,class auto_bstr) __ptr64
??0CVar@@QEAA@HVauto_bstr@@@Z
; public: __cdecl CVar::CVar(long) __ptr64
??0CVar@@QEAA@J@Z
; public: __cdecl CVar::CVar(unsigned long) __ptr64
??0CVar@@QEAA@K@Z
; public: __cdecl CVar::CVar(float) __ptr64
??0CVar@@QEAA@M@Z
; public: __cdecl CVar::CVar(double) __ptr64
??0CVar@@QEAA@N@Z
; public: __cdecl CVar::CVar(char * __ptr64,int) __ptr64
??0CVar@@QEAA@PEADH@Z
; public: __cdecl CVar::CVar(unsigned short * __ptr64,int) __ptr64
??0CVar@@QEAA@PEAGH@Z
; public: __cdecl CVar::CVar(struct _FILETIME * __ptr64) __ptr64
??0CVar@@QEAA@PEAU_FILETIME@@@Z
; public: __cdecl CVar::CVar(struct _GUID * __ptr64,int) __ptr64
??0CVar@@QEAA@PEAU_GUID@@H@Z
; public: __cdecl CVar::CVar(struct tagBLOB * __ptr64,int) __ptr64
??0CVar@@QEAA@PEAUtagBLOB@@H@Z
; public: __cdecl CVar::CVar(struct tagVARIANT * __ptr64) __ptr64
??0CVar@@QEAA@PEAUtagVARIANT@@@Z
; public: __cdecl CVar::CVar(class CVarVector * __ptr64,int) __ptr64
??0CVar@@QEAA@PEAVCVarVector@@H@Z
; public: __cdecl CVar::CVar(void) __ptr64
??0CVar@@QEAA@XZ
; public: __cdecl CVarVector::CVarVector(class CVarVector & __ptr64) __ptr64
??0CVarVector@@QEAA@AEAV0@@Z
; public: __cdecl CVarVector::CVarVector(int,int,int) __ptr64
??0CVarVector@@QEAA@HHH@Z
; public: __cdecl CVarVector::CVarVector(int,struct tagSAFEARRAY * __ptr64,int) __ptr64
??0CVarVector@@QEAA@HPEAUtagSAFEARRAY@@H@Z
; public: __cdecl CVarVector::CVarVector(void) __ptr64
??0CVarVector@@QEAA@XZ
; public: __cdecl CWQLScanner::CWQLScanner(class CWQLScanner & __ptr64) __ptr64
??0CWQLScanner@@QEAA@AEAV0@@Z
; public: __cdecl CWQLScanner::CWQLScanner(class CGenLexSource * __ptr64) __ptr64
??0CWQLScanner@@QEAA@PEAVCGenLexSource@@@Z
; public: __cdecl CWStringArray::CWStringArray(class CWStringArray & __ptr64) __ptr64
??0CWStringArray@@QEAA@AEAV0@@Z
; public: __cdecl CWStringArray::CWStringArray(int,int) __ptr64
??0CWStringArray@@QEAA@HH@Z
; private: __cdecl CWbemCallSecurity::CWbemCallSecurity(class CWbemCallSecurity const & __ptr64) __ptr64
??0CWbemCallSecurity@@AEAA@AEBV0@@Z
; private: __cdecl CWbemCallSecurity::CWbemCallSecurity(void) __ptr64
??0CWbemCallSecurity@@AEAA@XZ
; public: __cdecl CWbemCriticalSection::CWbemCriticalSection(void) __ptr64
??0CWbemCriticalSection@@QEAA@XZ
; protected: __cdecl CWbemInterval::CWbemInterval(unsigned long) __ptr64
??0CWbemInterval@@IEAA@K@Z
; public: __cdecl CWbemInterval::CWbemInterval(void) __ptr64
??0CWbemInterval@@QEAA@XZ
; protected: __cdecl CWbemTime::CWbemTime(__int64) __ptr64
??0CWbemTime@@IEAA@_J@Z
; public: __cdecl CWbemTime::CWbemTime(class CWbemTime const & __ptr64) __ptr64
??0CWbemTime@@QEAA@AEBV0@@Z
; public: __cdecl CWbemTime::CWbemTime(void) __ptr64
??0CWbemTime@@QEAA@XZ
; public: __cdecl CWbemTimeSpan::CWbemTimeSpan(int,int,int,int,int,int,int) __ptr64
??0CWbemTimeSpan@@QEAA@HHHHHHH@Z
; public: __cdecl CWin32DefaultArena::CWin32DefaultArena(class CWin32DefaultArena const & __ptr64) __ptr64
??0CWin32DefaultArena@@QEAA@AEBV0@@Z
; public: __cdecl CWin32DefaultArena::CWin32DefaultArena(void) __ptr64
??0CWin32DefaultArena@@QEAA@XZ
; public: __cdecl QL1_Parser::QL1_Parser(class QL1_Parser const & __ptr64) __ptr64
??0QL1_Parser@@QEAA@AEBV0@@Z
; public: __cdecl QL1_Parser::QL1_Parser(class CGenLexSource * __ptr64) __ptr64
??0QL1_Parser@@QEAA@PEAVCGenLexSource@@@Z
; public: __cdecl QL_LEVEL_1_RPN_EXPRESSION::QL_LEVEL_1_RPN_EXPRESSION(struct QL_LEVEL_1_RPN_EXPRESSION const & __ptr64) __ptr64
??0QL_LEVEL_1_RPN_EXPRESSION@@QEAA@AEBU0@@Z
; public: __cdecl QL_LEVEL_1_RPN_EXPRESSION::QL_LEVEL_1_RPN_EXPRESSION(void) __ptr64
??0QL_LEVEL_1_RPN_EXPRESSION@@QEAA@XZ
; public: __cdecl QL_LEVEL_1_TOKEN::QL_LEVEL_1_TOKEN(struct QL_LEVEL_1_TOKEN const & __ptr64) __ptr64
??0QL_LEVEL_1_TOKEN@@QEAA@AEBU0@@Z
; public: __cdecl QL_LEVEL_1_TOKEN::QL_LEVEL_1_TOKEN(void) __ptr64
??0QL_LEVEL_1_TOKEN@@QEAA@XZ
; public: __cdecl Registry::Registry(unsigned short * __ptr64,unsigned long) __ptr64
??0Registry@@QEAA@PEAGK@Z
; public: __cdecl Registry::Registry(struct HKEY__ * __ptr64,unsigned long,unsigned long,unsigned short * __ptr64) __ptr64
??0Registry@@QEAA@PEAUHKEY__@@KKPEAG@Z
; public: __cdecl Registry::Registry(struct HKEY__ * __ptr64,unsigned long,unsigned short * __ptr64) __ptr64
??0Registry@@QEAA@PEAUHKEY__@@KPEAG@Z
; public: __cdecl Registry::Registry(void) __ptr64
??0Registry@@QEAA@XZ
; public: __cdecl WString::WString(class WString const & __ptr64) __ptr64
??0WString@@QEAA@AEBV0@@Z
; public: __cdecl WString::WString(unsigned long,struct HINSTANCE__ * __ptr64) __ptr64
??0WString@@QEAA@KPEAUHINSTANCE__@@@Z
; public: __cdecl WString::WString(unsigned short * __ptr64,int) __ptr64
??0WString@@QEAA@PEAGH@Z
; public: __cdecl WString::WString(char const * __ptr64) __ptr64
??0WString@@QEAA@PEBD@Z
; public: __cdecl WString::WString(unsigned short const * __ptr64) __ptr64
??0WString@@QEAA@PEBG@Z
; public: __cdecl WString::WString(void) __ptr64
??0WString@@QEAA@XZ
; public: __cdecl std::_Lockit::_Lockit(void) __ptr64
??0_Lockit@std@@QEAA@XZ
; public: __cdecl CLockableFlexArray<class CStaticCritSec>::~CLockableFlexArray<class CStaticCritSec>(void) __ptr64
??1?$CLockableFlexArray@VCStaticCritSec@@@@QEAA@XZ
; public: virtual __cdecl C9XAce::~C9XAce(void) __ptr64
??1C9XAce@@UEAA@XZ
; public: virtual __cdecl CAbstractQl1Parser::~CAbstractQl1Parser(void) __ptr64
??1CAbstractQl1Parser@@UEAA@XZ
; public: virtual __cdecl CBaseAce::~CBaseAce(void) __ptr64
??1CBaseAce@@UEAA@XZ
; public: virtual __cdecl CBasicUnloadInstruction::~CBasicUnloadInstruction(void) __ptr64
??1CBasicUnloadInstruction@@UEAA@XZ
; public: __cdecl CBuffer::~CBuffer(void) __ptr64
??1CBuffer@@QEAA@XZ
; public: __cdecl CCheckedInCritSec::~CCheckedInCritSec(void) __ptr64
??1CCheckedInCritSec@@QEAA@XZ
; public: __cdecl CCritSec::~CCritSec(void) __ptr64
??1CCritSec@@QEAA@XZ
; public: __cdecl CDMTFParser::~CDMTFParser(void) __ptr64
??1CDMTFParser@@QEAA@XZ
; public: __cdecl CDatePart::~CDatePart(void) __ptr64
??1CDatePart@@QEAA@XZ
; public: __cdecl CDateTimeParser::~CDateTimeParser(void) __ptr64
??1CDateTimeParser@@QEAA@XZ
; public: __cdecl CEnterWbemCriticalSection::~CEnterWbemCriticalSection(void) __ptr64
??1CEnterWbemCriticalSection@@QEAA@XZ
; public: __cdecl CEventLog::~CEventLog(void) __ptr64
??1CEventLog@@QEAA@XZ
; public: __cdecl CEventLogRecord::~CEventLogRecord(void) __ptr64
??1CEventLogRecord@@QEAA@XZ
; public: __cdecl CExecQueue::~CExecQueue(void) __ptr64
??1CExecQueue@@QEAA@XZ
; public: virtual __cdecl CExecRequest::~CExecRequest(void) __ptr64
??1CExecRequest@@UEAA@XZ
; public: __cdecl CFlexArray::~CFlexArray(void) __ptr64
??1CFlexArray@@QEAA@XZ
; public: __cdecl CFlexQueue::~CFlexQueue(void) __ptr64
??1CFlexQueue@@QEAA@XZ
; public: virtual __cdecl CHaltable::~CHaltable(void) __ptr64
??1CHaltable@@UEAA@XZ
; public: __cdecl CIdentitySecurity::~CIdentitySecurity(void) __ptr64
??1CIdentitySecurity@@QEAA@XZ
; public: __cdecl CIdentityTest::~CIdentityTest(void) __ptr64
??1CIdentityTest@@QEAA@XZ
; public: __cdecl CInCritSec::~CInCritSec(void) __ptr64
??1CInCritSec@@QEAA@XZ
; public: __cdecl CInsertionString::~CInsertionString(void) __ptr64
??1CInsertionString@@QEAA@XZ
; public: __cdecl CInstructionQueue::~CInstructionQueue(void) __ptr64
??1CInstructionQueue@@QEAA@XZ
; public: __cdecl CLike::~CLike(void) __ptr64
??1CLike@@QEAA@XZ
; public: virtual __cdecl CLimitControl::~CLimitControl(void) __ptr64
??1CLimitControl@@UEAA@XZ
; public: __cdecl CMRCICompression::~CMRCICompression(void) __ptr64
??1CMRCICompression@@QEAA@XZ
; public: virtual __cdecl CMinMaxLimitControl::~CMinMaxLimitControl(void) __ptr64
??1CMinMaxLimitControl@@UEAA@XZ
; public: virtual __cdecl CNtAce::~CNtAce(void) __ptr64
??1CNtAce@@UEAA@XZ
; public: __cdecl CNtAcl::~CNtAcl(void) __ptr64
??1CNtAcl@@QEAA@XZ
; public: __cdecl CNtSecurityDescriptor::~CNtSecurityDescriptor(void) __ptr64
??1CNtSecurityDescriptor@@QEAA@XZ
; public: __cdecl CNtSid::~CNtSid(void) __ptr64
??1CNtSid@@QEAA@XZ
; public: __cdecl CPropertyName::~CPropertyName(void) __ptr64
??1CPropertyName@@QEAA@XZ
; public: virtual __cdecl CRegistryMinMaxLimitControl::~CRegistryMinMaxLimitControl(void) __ptr64
??1CRegistryMinMaxLimitControl@@UEAA@XZ
; public: __cdecl CSafeArray::~CSafeArray(void) __ptr64
??1CSafeArray@@QEAA@XZ
; public: __cdecl CStaticCritSec::~CStaticCritSec(void) __ptr64
??1CStaticCritSec@@QEAA@XZ
; public: __cdecl CTextTemplate::~CTextTemplate(void) __ptr64
??1CTextTemplate@@QEAA@XZ
; public: virtual __cdecl CTimerGenerator::~CTimerGenerator(void) __ptr64
??1CTimerGenerator@@UEAA@XZ
; public: virtual __cdecl CTimerInstruction::~CTimerInstruction(void) __ptr64
??1CTimerInstruction@@UEAA@XZ
; public: virtual __cdecl CUnk::~CUnk(void) __ptr64
??1CUnk@@UEAA@XZ
; public: virtual __cdecl CUnkInternal::~CUnkInternal(void) __ptr64
??1CUnkInternal@@UEAA@XZ
; public: virtual __cdecl CUnloadInstruction::~CUnloadInstruction(void) __ptr64
??1CUnloadInstruction@@UEAA@XZ
; public: __cdecl CVar::~CVar(void) __ptr64
??1CVar@@QEAA@XZ
; public: __cdecl CVarVector::~CVarVector(void) __ptr64
??1CVarVector@@QEAA@XZ
; public: __cdecl CWQLScanner::~CWQLScanner(void) __ptr64
??1CWQLScanner@@QEAA@XZ
; public: __cdecl CWStringArray::~CWStringArray(void) __ptr64
??1CWStringArray@@QEAA@XZ
; private: __cdecl CWbemCallSecurity::~CWbemCallSecurity(void) __ptr64
??1CWbemCallSecurity@@AEAA@XZ
; public: __cdecl CWbemCriticalSection::~CWbemCriticalSection(void) __ptr64
??1CWbemCriticalSection@@QEAA@XZ
; public: __cdecl CWin32DefaultArena::~CWin32DefaultArena(void) __ptr64
??1CWin32DefaultArena@@QEAA@XZ
; public: virtual __cdecl QL1_Parser::~QL1_Parser(void) __ptr64
??1QL1_Parser@@UEAA@XZ
; public: __cdecl QL_LEVEL_1_RPN_EXPRESSION::~QL_LEVEL_1_RPN_EXPRESSION(void) __ptr64
??1QL_LEVEL_1_RPN_EXPRESSION@@QEAA@XZ
; public: __cdecl QL_LEVEL_1_TOKEN::~QL_LEVEL_1_TOKEN(void) __ptr64
??1QL_LEVEL_1_TOKEN@@QEAA@XZ
; public: __cdecl Registry::~Registry(void) __ptr64
??1Registry@@QEAA@XZ
; public: __cdecl WString::~WString(void) __ptr64
??1WString@@QEAA@XZ
; public: __cdecl std::_Lockit::~_Lockit(void) __ptr64
??1_Lockit@std@@QEAA@XZ
; public: class CLockableFlexArray<class CStaticCritSec> & __ptr64 __cdecl CLockableFlexArray<class CStaticCritSec>::operator=(class CLockableFlexArray<class CStaticCritSec> & __ptr64) __ptr64
??4?$CLockableFlexArray@VCStaticCritSec@@@@QEAAAEAV0@AEAV0@@Z
; public: class C9XAce & __ptr64 __cdecl C9XAce::operator=(class C9XAce const & __ptr64) __ptr64
??4C9XAce@@QEAAAEAV0@AEBV0@@Z
; public: class CAbstractQl1Parser & __ptr64 __cdecl CAbstractQl1Parser::operator=(class CAbstractQl1Parser const & __ptr64) __ptr64
??4CAbstractQl1Parser@@QEAAAEAV0@AEBV0@@Z
; public: class CArena & __ptr64 __cdecl CArena::operator=(class CArena const & __ptr64) __ptr64
??4CArena@@QEAAAEAV0@AEBV0@@Z
; public: class CBaseAce & __ptr64 __cdecl CBaseAce::operator=(class CBaseAce const & __ptr64) __ptr64
??4CBaseAce@@QEAAAEAV0@AEBV0@@Z
; public: class CBaseMrciCompression & __ptr64 __cdecl CBaseMrciCompression::operator=(class CBaseMrciCompression const & __ptr64) __ptr64
??4CBaseMrciCompression@@QEAAAEAV0@AEBV0@@Z
; public: class CBasicUnloadInstruction & __ptr64 __cdecl CBasicUnloadInstruction::operator=(class CBasicUnloadInstruction const & __ptr64) __ptr64
??4CBasicUnloadInstruction@@QEAAAEAV0@AEBV0@@Z
; public: class CBuffer & __ptr64 __cdecl CBuffer::operator=(class CBuffer const & __ptr64) __ptr64
??4CBuffer@@QEAAAEAV0@AEBV0@@Z
; public: class CCheckedInCritSec & __ptr64 __cdecl CCheckedInCritSec::operator=(class CCheckedInCritSec const & __ptr64) __ptr64
??4CCheckedInCritSec@@QEAAAEAV0@AEBV0@@Z
; public: class CContainerControl & __ptr64 __cdecl CContainerControl::operator=(class CContainerControl const & __ptr64) __ptr64
??4CContainerControl@@QEAAAEAV0@AEBV0@@Z
; public: class CCritSec & __ptr64 __cdecl CCritSec::operator=(class CCritSec const & __ptr64) __ptr64
??4CCritSec@@QEAAAEAV0@AEBV0@@Z
; public: class CDMTFParser & __ptr64 __cdecl CDMTFParser::operator=(class CDMTFParser const & __ptr64) __ptr64
??4CDMTFParser@@QEAAAEAV0@AEBV0@@Z
; public: class CDatePart & __ptr64 __cdecl CDatePart::operator=(class CDatePart const & __ptr64) __ptr64
??4CDatePart@@QEAAAEAV0@AEBV0@@Z
; public: class CDateTimeParser & __ptr64 __cdecl CDateTimeParser::operator=(class CDateTimeParser const & __ptr64) __ptr64
??4CDateTimeParser@@QEAAAEAV0@AEBV0@@Z
; public: class CEnterWbemCriticalSection & __ptr64 __cdecl CEnterWbemCriticalSection::operator=(class CEnterWbemCriticalSection const & __ptr64) __ptr64
??4CEnterWbemCriticalSection@@QEAAAEAV0@AEBV0@@Z
; public: class CEventLog & __ptr64 __cdecl CEventLog::operator=(class CEventLog const & __ptr64) __ptr64
??4CEventLog@@QEAAAEAV0@AEBV0@@Z
; public: class CEventLogRecord & __ptr64 __cdecl CEventLogRecord::operator=(class CEventLogRecord & __ptr64) __ptr64
??4CEventLogRecord@@QEAAAEAV0@AEAV0@@Z
; public: class CExecQueue & __ptr64 __cdecl CExecQueue::operator=(class CExecQueue & __ptr64) __ptr64
??4CExecQueue@@QEAAAEAV0@AEAV0@@Z
; public: class CExecRequest & __ptr64 __cdecl CExecRequest::operator=(class CExecRequest const & __ptr64) __ptr64
??4CExecRequest@@QEAAAEAV0@AEBV0@@Z
; public: class CFlexArray & __ptr64 __cdecl CFlexArray::operator=(class CFlexArray & __ptr64) __ptr64
??4CFlexArray@@QEAAAEAV0@AEAV0@@Z
; public: class CFlexQueue & __ptr64 __cdecl CFlexQueue::operator=(class CFlexQueue const & __ptr64) __ptr64
??4CFlexQueue@@QEAAAEAV0@AEBV0@@Z
; public: class CHaltable & __ptr64 __cdecl CHaltable::operator=(class CHaltable const & __ptr64) __ptr64
??4CHaltable@@QEAAAEAV0@AEBV0@@Z
; public: class CHex & __ptr64 __cdecl CHex::operator=(class CHex const & __ptr64) __ptr64
??4CHex@@QEAAAEAV0@AEBV0@@Z
; public: class CIdentitySecurity & __ptr64 __cdecl CIdentitySecurity::operator=(class CIdentitySecurity const & __ptr64) __ptr64
??4CIdentitySecurity@@QEAAAEAV0@AEBV0@@Z
; public: class CIdentityTest & __ptr64 __cdecl CIdentityTest::operator=(class CIdentityTest const & __ptr64) __ptr64
??4CIdentityTest@@QEAAAEAV0@AEBV0@@Z
; public: class CInCritSec & __ptr64 __cdecl CInCritSec::operator=(class CInCritSec const & __ptr64) __ptr64
??4CInCritSec@@QEAAAEAV0@AEBV0@@Z
; public: class CInsertionString & __ptr64 __cdecl CInsertionString::operator=(class CInsertionString const & __ptr64) __ptr64
??4CInsertionString@@QEAAAEAV0@AEBV0@@Z
; public: class CInstructionQueue & __ptr64 __cdecl CInstructionQueue::operator=(class CInstructionQueue const & __ptr64) __ptr64
??4CInstructionQueue@@QEAAAEAV0@AEBV0@@Z
; public: class CInstructionTest & __ptr64 __cdecl CInstructionTest::operator=(class CInstructionTest const & __ptr64) __ptr64
??4CInstructionTest@@QEAAAEAV0@AEBV0@@Z
; public: class CLifeControl & __ptr64 __cdecl CLifeControl::operator=(class CLifeControl const & __ptr64) __ptr64
??4CLifeControl@@QEAAAEAV0@AEBV0@@Z
; public: class CLike & __ptr64 __cdecl CLike::operator=(class CLike const & __ptr64) __ptr64
??4CLike@@QEAAAEAV0@AEBV0@@Z
; public: class CLimitControl & __ptr64 __cdecl CLimitControl::operator=(class CLimitControl const & __ptr64) __ptr64
??4CLimitControl@@QEAAAEAV0@AEBV0@@Z
; public: class CMRCICompression & __ptr64 __cdecl CMRCICompression::operator=(class CMRCICompression const & __ptr64) __ptr64
??4CMRCICompression@@QEAAAEAV0@AEBV0@@Z
; public: class CMRCIControl & __ptr64 __cdecl CMRCIControl::operator=(class CMRCIControl const & __ptr64) __ptr64
??4CMRCIControl@@QEAAAEAV0@AEBV0@@Z
; public: class CMinMaxLimitControl & __ptr64 __cdecl CMinMaxLimitControl::operator=(class CMinMaxLimitControl const & __ptr64) __ptr64
??4CMinMaxLimitControl@@QEAAAEAV0@AEBV0@@Z
; public: class CNtAce & __ptr64 __cdecl CNtAce::operator=(class CNtAce const & __ptr64) __ptr64
??4CNtAce@@QEAAAEAV0@AEBV0@@Z
; public: class CNtAcl & __ptr64 __cdecl CNtAcl::operator=(class CNtAcl const & __ptr64) __ptr64
??4CNtAcl@@QEAAAEAV0@AEBV0@@Z
; public: class CNtSecurity & __ptr64 __cdecl CNtSecurity::operator=(class CNtSecurity const & __ptr64) __ptr64
??4CNtSecurity@@QEAAAEAV0@AEBV0@@Z
; public: class CNtSecurityDescriptor & __ptr64 __cdecl CNtSecurityDescriptor::operator=(class CNtSecurityDescriptor & __ptr64) __ptr64
??4CNtSecurityDescriptor@@QEAAAEAV0@AEAV0@@Z
; public: class CNtSid & __ptr64 __cdecl CNtSid::operator=(class CNtSid const & __ptr64) __ptr64
??4CNtSid@@QEAAAEAV0@AEBV0@@Z
; public: class CPersistentConfig & __ptr64 __cdecl CPersistentConfig::operator=(class CPersistentConfig const & __ptr64) __ptr64
??4CPersistentConfig@@QEAAAEAV0@AEBV0@@Z
; public: void __cdecl CPropertyName::operator=(struct _tag_WbemPropertyName const & __ptr64) __ptr64
??4CPropertyName@@QEAAXAEBU_tag_WbemPropertyName@@@Z
; public: void __cdecl CPropertyName::operator=(class CPropertyName const & __ptr64) __ptr64
??4CPropertyName@@QEAAXAEBV0@@Z
; public: class CQl1ParseSink & __ptr64 __cdecl CQl1ParseSink::operator=(class CQl1ParseSink const & __ptr64) __ptr64
??4CQl1ParseSink@@QEAAAEAV0@AEBV0@@Z
; public: class CRegistryMinMaxLimitControl & __ptr64 __cdecl CRegistryMinMaxLimitControl::operator=(class CRegistryMinMaxLimitControl const & __ptr64) __ptr64
??4CRegistryMinMaxLimitControl@@QEAAAEAV0@AEBV0@@Z
; public: class CSafeArray & __ptr64 __cdecl CSafeArray::operator=(class CSafeArray & __ptr64) __ptr64
??4CSafeArray@@QEAAAEAV0@AEAV0@@Z
; public: class CSmallArrayBlob & __ptr64 __cdecl CSmallArrayBlob::operator=(class CSmallArrayBlob const & __ptr64) __ptr64
??4CSmallArrayBlob@@QEAAAEAV0@AEBV0@@Z
; public: class CStaticCritSec & __ptr64 __cdecl CStaticCritSec::operator=(class CStaticCritSec const & __ptr64) __ptr64
??4CStaticCritSec@@QEAAAEAV0@AEBV0@@Z
; public: class CTextTemplate & __ptr64 __cdecl CTextTemplate::operator=(class CTextTemplate const & __ptr64) __ptr64
??4CTextTemplate@@QEAAAEAV0@AEBV0@@Z
; public: class CTimerGenerator & __ptr64 __cdecl CTimerGenerator::operator=(class CTimerGenerator const & __ptr64) __ptr64
??4CTimerGenerator@@QEAAAEAV0@AEBV0@@Z
; public: class CTimerInstruction & __ptr64 __cdecl CTimerInstruction::operator=(class CTimerInstruction const & __ptr64) __ptr64
??4CTimerInstruction@@QEAAAEAV0@AEBV0@@Z
; public: class CUnk & __ptr64 __cdecl CUnk::operator=(class CUnk const & __ptr64) __ptr64
??4CUnk@@QEAAAEAV0@AEBV0@@Z
; public: class CUnkInternal & __ptr64 __cdecl CUnkInternal::operator=(class CUnkInternal const & __ptr64) __ptr64
??4CUnkInternal@@QEAAAEAV0@AEBV0@@Z
; public: class CUnloadInstruction & __ptr64 __cdecl CUnloadInstruction::operator=(class CUnloadInstruction const & __ptr64) __ptr64
??4CUnloadInstruction@@QEAAAEAV0@AEBV0@@Z
; public: class CVar & __ptr64 __cdecl CVar::operator=(class CVar const & __ptr64) __ptr64
??4CVar@@QEAAAEAV0@AEBV0@@Z
; public: class CVarVector & __ptr64 __cdecl CVarVector::operator=(class CVarVector & __ptr64) __ptr64
??4CVarVector@@QEAAAEAV0@AEAV0@@Z
; public: class CWQLScanner & __ptr64 __cdecl CWQLScanner::operator=(class CWQLScanner & __ptr64) __ptr64
??4CWQLScanner@@QEAAAEAV0@AEAV0@@Z
; public: class CWStringArray & __ptr64 __cdecl CWStringArray::operator=(class CWStringArray & __ptr64) __ptr64
??4CWStringArray@@QEAAAEAV0@AEAV0@@Z
; private: class CWbemCallSecurity & __ptr64 __cdecl CWbemCallSecurity::operator=(class CWbemCallSecurity const & __ptr64) __ptr64
??4CWbemCallSecurity@@AEAAAEAV0@AEBV0@@Z
; public: class CWbemCriticalSection & __ptr64 __cdecl CWbemCriticalSection::operator=(class CWbemCriticalSection const & __ptr64) __ptr64
??4CWbemCriticalSection@@QEAAAEAV0@AEBV0@@Z
; public: class CWbemInterval & __ptr64 __cdecl CWbemInterval::operator=(class CWbemInterval const & __ptr64) __ptr64
??4CWbemInterval@@QEAAAEAV0@AEBV0@@Z
; public: void __cdecl CWbemTime::operator=(class CWbemTime const & __ptr64) __ptr64
??4CWbemTime@@QEAAXAEBV0@@Z
; public: class CWbemTimeSpan & __ptr64 __cdecl CWbemTimeSpan::operator=(class CWbemTimeSpan const & __ptr64) __ptr64
??4CWbemTimeSpan@@QEAAAEAV0@AEBV0@@Z
; public: class CWin32DefaultArena & __ptr64 __cdecl CWin32DefaultArena::operator=(class CWin32DefaultArena const & __ptr64) __ptr64
??4CWin32DefaultArena@@QEAAAEAV0@AEBV0@@Z
; public: class MD5 & __ptr64 __cdecl MD5::operator=(class MD5 const & __ptr64) __ptr64
??4MD5@@QEAAAEAV0@AEBV0@@Z
; public: class QL1_Parser & __ptr64 __cdecl QL1_Parser::operator=(class QL1_Parser const & __ptr64) __ptr64
??4QL1_Parser@@QEAAAEAV0@AEBV0@@Z
; public: struct QL_LEVEL_1_RPN_EXPRESSION & __ptr64 __cdecl QL_LEVEL_1_RPN_EXPRESSION::operator=(struct QL_LEVEL_1_RPN_EXPRESSION const & __ptr64) __ptr64
??4QL_LEVEL_1_RPN_EXPRESSION@@QEAAAEAU0@AEBU0@@Z
; public: struct QL_LEVEL_1_TOKEN & __ptr64 __cdecl QL_LEVEL_1_TOKEN::operator=(struct QL_LEVEL_1_TOKEN const & __ptr64) __ptr64
??4QL_LEVEL_1_TOKEN@@QEAAAEAU0@AEBU0@@Z
; public: struct QL_LEVEL_1_TOKEN & __ptr64 __cdecl QL_LEVEL_1_TOKEN::operator=(struct _tag_WbemQl1Token const & __ptr64) __ptr64
??4QL_LEVEL_1_TOKEN@@QEAAAEAU0@AEBU_tag_WbemQl1Token@@@Z
; public: class Registry & __ptr64 __cdecl Registry::operator=(class Registry const & __ptr64) __ptr64
??4Registry@@QEAAAEAV0@AEBV0@@Z
; public: class WString & __ptr64 __cdecl WString::operator=(class WString const & __ptr64) __ptr64
??4WString@@QEAAAEAV0@AEBV0@@Z
; public: class WString & __ptr64 __cdecl WString::operator=(unsigned short const * __ptr64) __ptr64
??4WString@@QEAAAEAV0@PEBG@Z
; public: class std::_Lockit & __ptr64 __cdecl std::_Lockit::operator=(class std::_Lockit const & __ptr64) __ptr64
??4_Lockit@std@@QEAAAEAV01@AEBV01@@Z
; public: int __cdecl CEventLogRecord::operator==(class CEventLogRecord const & __ptr64) __ptr64
??8CEventLogRecord@@QEAAHAEBV0@@Z
; public: int __cdecl CNtSid::operator==(class CNtSid & __ptr64) __ptr64
??8CNtSid@@QEAAHAEAV0@@Z
; public: int __cdecl CPropertyName::operator==(struct _tag_WbemPropertyName const & __ptr64) __ptr64
??8CPropertyName@@QEAAHAEBU_tag_WbemPropertyName@@@Z
; public: int __cdecl CVar::operator==(class CVar & __ptr64) __ptr64
??8CVar@@QEAAHAEAV0@@Z
; public: int __cdecl CVarVector::operator==(class CVarVector & __ptr64) __ptr64
??8CVarVector@@QEAAHAEAV0@@Z
; public: void * __ptr64 & __ptr64 __cdecl CFlexArray::operator[](int) __ptr64
??ACFlexArray@@QEAAAEAPEAXH@Z
; public: void * __ptr64 __cdecl CFlexArray::operator[](int)const  __ptr64
??ACFlexArray@@QEBAPEAXH@Z
; public: void * __ptr64 __cdecl CSmallArrayBlob::operator[](int)const  __ptr64
??ACSmallArrayBlob@@QEBAPEAXH@Z
; public: class CVar & __ptr64 __cdecl CVarVector::operator[](int) __ptr64
??ACVarVector@@QEAAAEAVCVar@@H@Z
; public: unsigned short * __ptr64 __cdecl CWStringArray::operator[](int)const  __ptr64
??ACWStringArray@@QEBAPEAGH@Z
; public: unsigned short __cdecl WString::operator[](int)const  __ptr64
??AWString@@QEBAGH@Z
; public: __cdecl CHex::operator long(void) __ptr64
??BCHex@@QEAAJXZ
; public: __cdecl CVar::operator struct _FILETIME(void) __ptr64
??BCVar@@QEAA?AU_FILETIME@@XZ
; public: __cdecl CVar::operator char(void) __ptr64
??BCVar@@QEAADXZ
; public: __cdecl CVar::operator unsigned char(void) __ptr64
??BCVar@@QEAAEXZ
; public: __cdecl CVar::operator short(void) __ptr64
??BCVar@@QEAAFXZ
; public: __cdecl CVar::operator unsigned short(void) __ptr64
??BCVar@@QEAAGXZ
; public: __cdecl CVar::operator long(void) __ptr64
??BCVar@@QEAAJXZ
; public: __cdecl CVar::operator unsigned long(void) __ptr64
??BCVar@@QEAAKXZ
; public: __cdecl CVar::operator float(void) __ptr64
??BCVar@@QEAAMXZ
; public: __cdecl CVar::operator double(void) __ptr64
??BCVar@@QEAANXZ
; public: __cdecl CVar::operator char * __ptr64(void) __ptr64
??BCVar@@QEAAPEADXZ
; public: __cdecl CVar::operator unsigned short * __ptr64(void) __ptr64
??BCVar@@QEAAPEAGXZ
; public: __cdecl CVar::operator struct _GUID * __ptr64(void) __ptr64
??BCVar@@QEAAPEAU_GUID@@XZ
; public: __cdecl CVar::operator struct tagBLOB * __ptr64(void) __ptr64
??BCVar@@QEAAPEAUtagBLOB@@XZ
; public: __cdecl CVar::operator class CVarVector * __ptr64(void) __ptr64
??BCVar@@QEAAPEAVCVarVector@@XZ
; public: __cdecl WString::operator unsigned short * __ptr64(void) __ptr64
??BWString@@QEAAPEAGXZ
; public: __cdecl WString::operator unsigned short const * __ptr64(void)const  __ptr64
??BWString@@QEBAPEBGXZ
; public: class CWbemInterval  __cdecl CWbemInterval::operator*(double)const  __ptr64
??DCWbemInterval@@QEBA?AV0@N@Z
; public: class CWbemTime  __cdecl CWbemTime::operator-(class CWbemTimeSpan const & __ptr64)const  __ptr64
??GCWbemTime@@QEBA?AV0@AEBVCWbemTimeSpan@@@Z
; public: class CWbemInterval  __cdecl CWbemTime::operator-(class CWbemTime const & __ptr64)const  __ptr64
??GCWbemTime@@QEBA?AVCWbemInterval@@AEBV0@@Z
; public: class CWbemInterval  __cdecl CWbemInterval::operator+(class CWbemInterval)const  __ptr64
??HCWbemInterval@@QEBA?AV0@V0@@Z
; public: class CWbemTime  __cdecl CWbemTime::operator+(class CWbemInterval const & __ptr64)const  __ptr64
??HCWbemTime@@QEBA?AV0@AEBVCWbemInterval@@@Z
; public: class CWbemTime  __cdecl CWbemTime::operator+(class CWbemTimeSpan const & __ptr64)const  __ptr64
??HCWbemTime@@QEBA?AV0@AEBVCWbemTimeSpan@@@Z
; public: int __cdecl CWbemInterval::operator<(class CWbemInterval) __ptr64
??MCWbemInterval@@QEAAHV0@@Z
; public: int __cdecl CWbemTime::operator<(class CWbemTime const & __ptr64)const  __ptr64
??MCWbemTime@@QEBAHAEBV0@@Z
; public: int __cdecl WString::operator<(unsigned short const * __ptr64)const  __ptr64
??MWString@@QEBAHPEBG@Z
; public: int __cdecl CWbemTime::operator<=(class CWbemTime const & __ptr64)const  __ptr64
??NCWbemTime@@QEBAHAEBV0@@Z
; public: int __cdecl WString::operator<=(unsigned short const * __ptr64)const  __ptr64
??NWString@@QEBAHPEBG@Z
; public: int __cdecl CWbemInterval::operator>(class CWbemInterval) __ptr64
??OCWbemInterval@@QEAAHV0@@Z
; public: int __cdecl CWbemTime::operator>(class CWbemTime const & __ptr64)const  __ptr64
??OCWbemTime@@QEBAHAEBV0@@Z
; public: int __cdecl WString::operator>(unsigned short const * __ptr64)const  __ptr64
??OWString@@QEBAHPEBG@Z
; public: int __cdecl CWbemTime::operator>=(class CWbemTime const & __ptr64)const  __ptr64
??PCWbemTime@@QEBAHAEBV0@@Z
; public: int __cdecl WString::operator>=(unsigned short const * __ptr64)const  __ptr64
??PWString@@QEBAHPEBG@Z
; public: virtual int __cdecl CIdentityTest::operator()(class CTimerInstruction * __ptr64) __ptr64
??RCIdentityTest@@UEAAHPEAVCTimerInstruction@@@Z
; public: class WString  __cdecl WString::operator()(int,int)const  __ptr64
??RWString@@QEBA?AV0@HH@Z
; public: void __cdecl CWbemInterval::operator+=(class CWbemInterval) __ptr64
??YCWbemInterval@@QEAAXV0@@Z
; public: class WString & __ptr64 __cdecl WString::operator+=(class WString const & __ptr64) __ptr64
??YWString@@QEAAAEAV0@AEBV0@@Z
; public: class WString & __ptr64 __cdecl WString::operator+=(unsigned short) __ptr64
??YWString@@QEAAAEAV0@G@Z
; public: class WString & __ptr64 __cdecl WString::operator+=(unsigned short const * __ptr64) __ptr64
??YWString@@QEAAAEAV0@PEBG@Z
; const  C9XAce::`vftable'
??_7C9XAce@@6B@
; const  CAbstractQl1Parser::`vftable'
??_7CAbstractQl1Parser@@6B@
; const  CArena::`vftable'
??_7CArena@@6B@
; const  CBaseAce::`vftable'
??_7CBaseAce@@6B@
; const  CBasicUnloadInstruction::`vftable'
??_7CBasicUnloadInstruction@@6B@
; const  CBuffer::`vftable'
??_7CBuffer@@6B@
; const  CContainerControl::`vftable'
??_7CContainerControl@@6B@
; const  CExecQueue::`vftable'
??_7CExecQueue@@6B@
; const  CExecRequest::`vftable'
??_7CExecRequest@@6B@
; const  CHaltable::`vftable'
??_7CHaltable@@6B@
; const  CIdentityTest::`vftable'
??_7CIdentityTest@@6B@
; const  CInstructionTest::`vftable'
??_7CInstructionTest@@6B@
; const  CLifeControl::`vftable'
??_7CLifeControl@@6B@
; const  CLimitControl::`vftable'
??_7CLimitControl@@6B@
; const  CMinMaxLimitControl::`vftable'
??_7CMinMaxLimitControl@@6B@
; const  CNtAce::`vftable'
??_7CNtAce@@6B@
; const  CQl1ParseSink::`vftable'
??_7CQl1ParseSink@@6B@
; const  CRegistryMinMaxLimitControl::`vftable'
??_7CRegistryMinMaxLimitControl@@6B@
; const  CTimerGenerator::`vftable'
??_7CTimerGenerator@@6B@
; const  CTimerInstruction::`vftable'
??_7CTimerInstruction@@6B@
; const  CUnk::`vftable'
??_7CUnk@@6B@
; const  CUnkInternal::`vftable'
??_7CUnkInternal@@6B@
; const  CUnloadInstruction::`vftable'
??_7CUnloadInstruction@@6B@
; const  CWbemCallSecurity::`vftable'
??_7CWbemCallSecurity@@6B@
; const  CWin32DefaultArena::`vftable'
??_7CWin32DefaultArena@@6B@
; const  QL1_Parser::`vftable'
??_7QL1_Parser@@6B@
; const  QL_LEVEL_1_RPN_EXPRESSION::`vftable'
??_7QL_LEVEL_1_RPN_EXPRESSION@@6B@
; public: void __cdecl CBuffer::`default constructor closure'(void) __ptr64
??_FCBuffer@@QEAAXXZ
; public: void __cdecl CEventLog::`default constructor closure'(void) __ptr64
??_FCEventLog@@QEAAXXZ
; public: void __cdecl CFlexArray::`default constructor closure'(void) __ptr64
??_FCFlexArray@@QEAAXXZ
; public: void __cdecl CFlexQueue::`default constructor closure'(void) __ptr64
??_FCFlexQueue@@QEAAXXZ
; public: void __cdecl CNtAcl::`default constructor closure'(void) __ptr64
??_FCNtAcl@@QEAAXXZ
; public: void __cdecl CTextTemplate::`default constructor closure'(void) __ptr64
??_FCTextTemplate@@QEAAXXZ
; public: void __cdecl CUnk::`default constructor closure'(void) __ptr64
??_FCUnk@@QEAAXXZ
; public: void __cdecl CWStringArray::`default constructor closure'(void) __ptr64
??_FCWStringArray@@QEAAXXZ
; public: void __cdecl CMRCIControl::AbortCompression(void) __ptr64
?AbortCompression@CMRCIControl@@QEAAXXZ
; public: int __cdecl CMRCIControl::AbortRequested(void) __ptr64
?AbortRequested@CMRCIControl@@QEAAHXZ
; public: long __cdecl CSafeArray::Access(void * __ptr64 * __ptr64) __ptr64
?Access@CSafeArray@@QEAAJPEAPEAX@Z
; public: int __cdecl CIdentitySecurity::AccessCheck(void) __ptr64
?AccessCheck@CIdentitySecurity@@QEAAHXZ
; public: long __cdecl CVarVector::AccessRawArray(void * __ptr64 * __ptr64) __ptr64
?AccessRawArray@CVarVector@@QEAAJPEAPEAX@Z
; public: int __cdecl CFlexArray::Add(void * __ptr64) __ptr64
?Add@CFlexArray@@QEAAHPEAX@Z
; public: virtual long __cdecl CMinMaxLimitControl::Add(unsigned long,unsigned long,unsigned long * __ptr64) __ptr64
?Add@CMinMaxLimitControl@@UEAAJKKPEAK@Z
; public: int __cdecl CVarVector::Add(class CVar & __ptr64) __ptr64
?Add@CVarVector@@QEAAHAEAVCVar@@@Z
; public: int __cdecl CVarVector::Add(class CVar * __ptr64) __ptr64
?Add@CVarVector@@QEAAHPEAVCVar@@@Z
; public: int __cdecl CWStringArray::Add(unsigned short const * __ptr64) __ptr64
?Add@CWStringArray@@QEAAHPEBG@Z
; public: int __cdecl CNtAcl::AddAce(class CNtAce * __ptr64) __ptr64
?AddAce@CNtAcl@@QEAAHPEAVCNtAce@@@Z
; public: virtual void __cdecl QL_LEVEL_1_RPN_EXPRESSION::AddAggregationProperty(class CPropertyName const & __ptr64) __ptr64
?AddAggregationProperty@QL_LEVEL_1_RPN_EXPRESSION@@UEAAXAEBVCPropertyName@@@Z
; public: virtual void __cdecl QL_LEVEL_1_RPN_EXPRESSION::AddAllAggregationProperties(void) __ptr64
?AddAllAggregationProperties@QL_LEVEL_1_RPN_EXPRESSION@@UEAAXXZ
; public: virtual void __cdecl QL_LEVEL_1_RPN_EXPRESSION::AddAllProperties(void) __ptr64
?AddAllProperties@QL_LEVEL_1_RPN_EXPRESSION@@UEAAXXZ
; protected: void __cdecl CAbstractQl1Parser::AddAppropriateToken(struct _tag_WbemQl1Token const & __ptr64) __ptr64
?AddAppropriateToken@CAbstractQl1Parser@@IEAAXAEBU_tag_WbemQl1Token@@@Z
; public: int __cdecl CSafeArray::AddBSTR(unsigned short * __ptr64) __ptr64
?AddBSTR@CSafeArray@@QEAAHPEAG@Z
; public: int __cdecl CSafeArray::AddBool(short) __ptr64
?AddBool@CSafeArray@@QEAAHF@Z
; public: int __cdecl CSafeArray::AddByte(unsigned char) __ptr64
?AddByte@CSafeArray@@QEAAHE@Z
; public: int __cdecl CSafeArray::AddDispatch(struct IDispatch * __ptr64) __ptr64
?AddDispatch@CSafeArray@@QEAAHPEAUIDispatch@@@Z
; public: int __cdecl CSafeArray::AddDouble(double) __ptr64
?AddDouble@CSafeArray@@QEAAHN@Z
; public: void __cdecl CPropertyName::AddElement(unsigned short const * __ptr64) __ptr64
?AddElement@CPropertyName@@QEAAXPEBG@Z
; public: int __cdecl CSafeArray::AddFloat(float) __ptr64
?AddFloat@CSafeArray@@QEAAHM@Z
; public: virtual void __cdecl QL_LEVEL_1_RPN_EXPRESSION::AddHavingToken(struct _tag_WbemQl1Token const & __ptr64) __ptr64
?AddHavingToken@QL_LEVEL_1_RPN_EXPRESSION@@UEAAXAEBU_tag_WbemQl1Token@@@Z
; protected: void __cdecl CEventLogRecord::AddInsertionString(class CInsertionString & __ptr64) __ptr64
?AddInsertionString@CEventLogRecord@@IEAAXAEAVCInsertionString@@@Z
; public: int __cdecl CSafeArray::AddLong(long) __ptr64
?AddLong@CSafeArray@@QEAAHJ@Z
; public: virtual long __cdecl CLimitControl::AddMember(void) __ptr64
?AddMember@CLimitControl@@UEAAJXZ
; public: virtual void __cdecl QL_LEVEL_1_RPN_EXPRESSION::AddProperty(class CPropertyName const & __ptr64) __ptr64
?AddProperty@QL_LEVEL_1_RPN_EXPRESSION@@UEAAXAEBVCPropertyName@@@Z
; protected: void __cdecl CEventLog::AddRecord(class CEventLogRecord * __ptr64) __ptr64
?AddRecord@CEventLog@@IEAAXPEAVCEventLogRecord@@@Z
; public: virtual void __cdecl CBasicUnloadInstruction::AddRef(void) __ptr64
?AddRef@CBasicUnloadInstruction@@UEAAXXZ
; public: virtual unsigned long __cdecl CBuffer::AddRef(void) __ptr64
?AddRef@CBuffer@@UEAAKXZ
; public: virtual void __cdecl CContainerControl::AddRef(struct IUnknown * __ptr64) __ptr64
?AddRef@CContainerControl@@UEAAXPEAUIUnknown@@@Z
; public: void __cdecl CExecQueue::AddRef(void) __ptr64
?AddRef@CExecQueue@@QEAAXXZ
; public: virtual unsigned long __cdecl CUnk::AddRef(void) __ptr64
?AddRef@CUnk@@UEAAKXZ
; public: virtual unsigned long __cdecl CUnkInternal::AddRef(void) __ptr64
?AddRef@CUnkInternal@@UEAAKXZ
; public: virtual unsigned long __cdecl CWbemCallSecurity::AddRef(void) __ptr64
?AddRef@CWbemCallSecurity@@UEAAKXZ
; public: void __cdecl QL_LEVEL_1_RPN_EXPRESSION::AddRef(void) __ptr64
?AddRef@QL_LEVEL_1_RPN_EXPRESSION@@QEAAXXZ
; private: int __cdecl CSafeArray::AddScalar(union SA_ArrayScalar) __ptr64
?AddScalar@CSafeArray@@AEAAHTSA_ArrayScalar@@@Z
; public: int __cdecl CSafeArray::AddShort(short) __ptr64
?AddShort@CSafeArray@@QEAAHF@Z
; public: void __cdecl QL_LEVEL_1_RPN_EXPRESSION::AddToken(struct QL_LEVEL_1_TOKEN const & __ptr64) __ptr64
?AddToken@QL_LEVEL_1_RPN_EXPRESSION@@QEAAXAEBUQL_LEVEL_1_TOKEN@@@Z
; public: virtual void __cdecl QL_LEVEL_1_RPN_EXPRESSION::AddToken(struct _tag_WbemQl1Token const & __ptr64) __ptr64
?AddToken@QL_LEVEL_1_RPN_EXPRESSION@@UEAAXAEBU_tag_WbemQl1Token@@@Z
; public: int __cdecl CSafeArray::AddUnknown(struct IUnknown * __ptr64) __ptr64
?AddUnknown@CSafeArray@@QEAAHPEAUIUnknown@@@Z
; public: int __cdecl CSafeArray::AddVariant(struct tagVARIANT * __ptr64) __ptr64
?AddVariant@CSafeArray@@QEAAHPEAUtagVARIANT@@@Z
; protected: virtual void __cdecl CExecQueue::AdjustInitialPriority(class CExecRequest * __ptr64) __ptr64
?AdjustInitialPriority@CExecQueue@@MEAAXPEAVCExecRequest@@@Z
; protected: virtual void __cdecl CExecQueue::AdjustPriorityForPassing(class CExecRequest * __ptr64) __ptr64
?AdjustPriorityForPassing@CExecQueue@@MEAAXPEAVCExecRequest@@@Z
; void __cdecl AdjustPrivIfLocalSystem(void * __ptr64)
?AdjustPrivIfLocalSystem@@YAXPEAX@Z
; public: long __cdecl CBuffer::Advance(unsigned long) __ptr64
?Advance@CBuffer@@QEAAJK@Z
; public: unsigned short * __ptr64 __cdecl CWQLScanner::AliasToTable(unsigned short * __ptr64) __ptr64
?AliasToTable@CWQLScanner@@QEAAQEAGPEAG@Z
; public: virtual void * __ptr64 __cdecl CWin32DefaultArena::Alloc(unsigned __int64) __ptr64
?Alloc@CWin32DefaultArena@@UEAAPEAX_K@Z
; protected: unsigned short * __ptr64 __cdecl CDateTimeParser::AllocAmPm(void) __ptr64
?AllocAmPm@CDateTimeParser@@IEAAPEAGXZ
; int __cdecl AllocWCHARToMBS(unsigned short * __ptr64,char * __ptr64 * __ptr64)
?AllocWCHARToMBS@@YAHPEAGPEAPEAD@Z
; public: unsigned short * __ptr64 __cdecl CTextTemplate::Apply(struct IWbemClassObject * __ptr64) __ptr64
?Apply@CTextTemplate@@QEAAPEAGPEAUIWbemClassObject@@@Z
; public: void __cdecl CFlexArray::Bind(class CFlexArray & __ptr64) __ptr64
?Bind@CFlexArray@@QEAAXAEAV1@@Z
; public: void __cdecl WString::BindPtr(unsigned short * __ptr64) __ptr64
?BindPtr@WString@@QEAAXPEAG@Z
; void __cdecl BlobAssign(struct tagBLOB * __ptr64,void * __ptr64,unsigned long,int)
?BlobAssign@@YAXPEAUtagBLOB@@PEAXKH@Z
; void __cdecl BlobClear(struct tagBLOB * __ptr64)
?BlobClear@@YAXPEAUtagBLOB@@@Z
; struct tagBLOB  __cdecl BlobCopy(struct tagBLOB const * __ptr64)
?BlobCopy@@YA?AUtagBLOB@@PEBU1@@Z
; unsigned long __cdecl BreakOnDbgAndRenterLoop(void)
?BreakOnDbgAndRenterLoop@@YAKXZ
; public: void __cdecl CInstructionQueue::BreakWait(void) __ptr64
?BreakWait@CInstructionQueue@@QEAAXXZ
; private: int __cdecl CWQLScanner::BuildSWQLColRef(class CFlexArray & __ptr64,struct SWQLColRef & __ptr64) __ptr64
?BuildSWQLColRef@CWQLScanner@@AEAAHAEAVCFlexArray@@AEAUSWQLColRef@@@Z
; protected: virtual unsigned long __cdecl CExecQueue::CalcSitOutPenalty(long) __ptr64
?CalcSitOutPenalty@CExecQueue@@MEAAKJ@Z
; public: int __cdecl CVar::CanDelete(void) __ptr64
?CanDelete@CVar@@QEAAHXZ
; public: long __cdecl CInstructionQueue::Change(class CTimerInstruction * __ptr64,class CWbemTime) __ptr64
?Change@CInstructionQueue@@QEAAJPEAVCTimerInstruction@@VCWbemTime@@@Z
; public: int __cdecl CVar::ChangeTypeTo(unsigned short) __ptr64
?ChangeTypeTo@CVar@@QEAAHG@Z
; public: int __cdecl CVar::ChangeTypeToEx(unsigned short,unsigned long) __ptr64
?ChangeTypeToEx@CVar@@QEAAHGK@Z
; long __cdecl ChangeVariantToCIMTYPE(struct tagVARIANT * __ptr64,struct tagVARIANT * __ptr64,long)
?ChangeVariantToCIMTYPE@@YAJPEAUtagVARIANT@@0J@Z
; public: static int __cdecl CDateTimeParser::CheckDMTFDateTimeFormat(unsigned short const * __ptr64,int,int)
?CheckDMTFDateTimeFormat@CDateTimeParser@@SAHPEBGHH@Z
; protected: int __cdecl CDateTimeParser::CheckDMTFDateTimeFormatInternal(unsigned short const * __ptr64) __ptr64
?CheckDMTFDateTimeFormatInternal@CDateTimeParser@@IEAAHPEBG@Z
; public: static int __cdecl CDateTimeParser::CheckDMTFDateTimeInterval(unsigned short const * __ptr64)
?CheckDMTFDateTimeInterval@CDateTimeParser@@SAHPEBG@Z
; protected: int __cdecl CDateTimeParser::CheckDateFormat(unsigned short const * __ptr64,int) __ptr64
?CheckDateFormat@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::CheckTimeFormat(unsigned short const * __ptr64,int) __ptr64
?CheckTimeFormat@CDateTimeParser@@IEAAHPEBGH@Z
; private: void __cdecl CSafeArray::CheckType(int) __ptr64
?CheckType@CSafeArray@@AEAAXH@Z
; public: static void __cdecl CUnloadInstruction::Clear(void)
?Clear@CUnloadInstruction@@SAXXZ
; private: void __cdecl CWQLScanner::ClearPropRefs(void) __ptr64
?ClearPropRefs@CWQLScanner@@AEAAXXZ
; private: void __cdecl CWQLScanner::ClearTableRefs(void) __ptr64
?ClearTableRefs@CWQLScanner@@AEAAXXZ
; private: void __cdecl CWQLScanner::ClearTokens(void) __ptr64
?ClearTokens@CWQLScanner@@AEAAXXZ
; public: virtual long __cdecl CBuffer::Clone(struct IStream * __ptr64 * __ptr64) __ptr64
?Clone@CBuffer@@UEAAJPEAPEAUIStream@@@Z
; public: void * __ptr64 * __ptr64 __cdecl CSmallArrayBlob::CloneData(void) __ptr64
?CloneData@CSmallArrayBlob@@QEAAPEAPEAXXZ
; public: virtual long __cdecl CWbemCallSecurity::CloneThreadContext(int) __ptr64
?CloneThreadContext@CWbemCallSecurity@@UEAAJH@Z
; private: long __cdecl CWbemCallSecurity::CloneThreadToken(unsigned long) __ptr64
?CloneThreadToken@CWbemCallSecurity@@AEAAJK@Z
; public: int __cdecl CEventLog::Close(void) __ptr64
?Close@CEventLog@@QEAAHXZ
; public: virtual long __cdecl CBuffer::Commit(unsigned long) __ptr64
?Commit@CBuffer@@UEAAJK@Z
; protected: static int __cdecl CFlexArray::CompareEls(void const * __ptr64,void const * __ptr64)
?CompareEls@CFlexArray@@KAHPEBX0@Z
; protected: static int __cdecl CSmallArrayBlob::CompareEls(void const * __ptr64,void const * __ptr64)
?CompareEls@CSmallArrayBlob@@KAHPEBX0@Z
; public: int __cdecl CVar::CompareTo(class CVar & __ptr64,int) __ptr64
?CompareTo@CVar@@QEAAHAEAV1@H@Z
; public: int __cdecl CVarVector::CompareTo(class CVarVector & __ptr64,int) __ptr64
?CompareTo@CVarVector@@QEAAHAEAV1@H@Z
; public: void __cdecl CFlexArray::Compress(void) __ptr64
?Compress@CFlexArray@@QEAAXXZ
; public: void __cdecl CWStringArray::Compress(void) __ptr64
?Compress@CWStringArray@@QEAAXXZ
; public: unsigned int __cdecl CMRCICompression::CompressBuffer(unsigned char * __ptr64,unsigned long,unsigned char * __ptr64,unsigned long,enum CMRCICompression::CompressionLevel) __ptr64
?CompressBuffer@CMRCICompression@@QEAAIPEAEK0KW4CompressionLevel@1@@Z
; public: int __cdecl CMRCICompression::CompressFile(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long,enum CMRCICompression::CompressionLevel,class CMRCIControl * __ptr64) __ptr64
?CompressFile@CMRCICompression@@QEAAHPEBG0KW4CompressionLevel@1@PEAVCMRCIControl@@@Z
; protected: int __cdecl CMRCICompression::CompressFileV1(int,int,unsigned long,enum CMRCICompression::CompressionLevel,class CMRCIControl * __ptr64) __ptr64
?CompressFileV1@CMRCICompression@@IEAAHHHKW4CompressionLevel@1@PEAVCMRCIControl@@@Z
; protected: long __cdecl CMinMaxLimitControl::ComputePenalty(unsigned long,unsigned long,unsigned long * __ptr64,int * __ptr64) __ptr64
?ComputePenalty@CMinMaxLimitControl@@IEAAJKKPEAKPEAH@Z
; private: void __cdecl CTextTemplate::ConcatWithoutQuotes(class WString & __ptr64,unsigned short * __ptr64 & __ptr64) __ptr64
?ConcatWithoutQuotes@CTextTemplate@@AEAAXAEAVWString@@AEAPEAG@Z
; public: int __cdecl CNtAcl::ContainsSid(class CNtSid & __ptr64,unsigned char & __ptr64) __ptr64
?ContainsSid@CNtAcl@@QEAAHAEAVCNtSid@@AEAE@Z
; public: static void __cdecl MD5::ContinueTransform(void * __ptr64,unsigned int,unsigned char * __ptr64 const)
?ContinueTransform@MD5@@SAXPEAXIQEAE@Z
; protected: void __cdecl CSmallArrayBlob::CopyData(class CSmallArrayBlob * __ptr64) __ptr64
?CopyData@CSmallArrayBlob@@IEAAXPEAV1@@Z
; public: int __cdecl CFlexArray::CopyDataFrom(class CFlexArray const & __ptr64) __ptr64
?CopyDataFrom@CFlexArray@@QEAAHAEBV1@@Z
; public: virtual long __cdecl CBuffer::CopyTo(struct IStream * __ptr64,union _ULARGE_INTEGER,union _ULARGE_INTEGER * __ptr64,union _ULARGE_INTEGER * __ptr64) __ptr64
?CopyTo@CBuffer@@UEAAJPEAUIStream@@T_ULARGE_INTEGER@@PEAT3@2@Z
; public: int __cdecl CNtSid::CopyTo(void * __ptr64) __ptr64
?CopyTo@CNtSid@@QEAAHPEAX@Z
; public: int __cdecl CWQLScanner::CountQuery(void) __ptr64
?CountQuery@CWQLScanner@@QEAAHXZ
; public: static class CSmallArrayBlob * __ptr64 __cdecl CSmallArrayBlob::CreateBlob(int)
?CreateBlob@CSmallArrayBlob@@SAPEAV1@H@Z
; public: static class IWbemCallSecurity * __ptr64 __cdecl CWbemCallSecurity::CreateInst(void)
?CreateInst@CWbemCallSecurity@@SAPEAVIWbemCallSecurity@@XZ
; protected: virtual int __cdecl CExecQueue::CreateNewThread(void) __ptr64
?CreateNewThread@CExecQueue@@MEAAHXZ
; int __cdecl CriticalFailADAPTrace(char const * __ptr64)
?CriticalFailADAPTrace@@YAHPEBD@Z
; public: int __cdecl CAbstractQl1Parser::CurrentLine(void) __ptr64
?CurrentLine@CAbstractQl1Parser@@QEAAHXZ
; public: unsigned short * __ptr64 __cdecl CAbstractQl1Parser::CurrentToken(void) __ptr64
?CurrentToken@CAbstractQl1Parser@@QEAAPEAGXZ
; protected: int __cdecl CDateTimeParser::DateFormat10(unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
?DateFormat10@CDateTimeParser@@IEAAHPEBG0H@Z
; protected: int __cdecl CDateTimeParser::DateFormat11(unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
?DateFormat11@CDateTimeParser@@IEAAHPEBG0H@Z
; protected: int __cdecl CDateTimeParser::DateFormat12(unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
?DateFormat12@CDateTimeParser@@IEAAHPEBG0H@Z
; protected: int __cdecl CDateTimeParser::DateFormat13(unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
?DateFormat13@CDateTimeParser@@IEAAHPEBG0H@Z
; protected: int __cdecl CDateTimeParser::DateFormat14(unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
?DateFormat14@CDateTimeParser@@IEAAHPEBG0H@Z
; protected: int __cdecl CDateTimeParser::DateFormat15(unsigned short const * __ptr64,int) __ptr64
?DateFormat15@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::DateFormat1(unsigned short const * __ptr64,int) __ptr64
?DateFormat1@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::DateFormat2(unsigned short const * __ptr64,int) __ptr64
?DateFormat2@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::DateFormat3(unsigned short const * __ptr64,int) __ptr64
?DateFormat3@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::DateFormat4(unsigned short const * __ptr64,int) __ptr64
?DateFormat4@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::DateFormat5(unsigned short const * __ptr64,int) __ptr64
?DateFormat5@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::DateFormat6(unsigned short const * __ptr64,int) __ptr64
?DateFormat6@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::DateFormat7(unsigned short const * __ptr64,int) __ptr64
?DateFormat7@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::DateFormat8(unsigned short const * __ptr64,int) __ptr64
?DateFormat8@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::DateFormat9(unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
?DateFormat9@CDateTimeParser@@IEAAHPEBG0H@Z
; public: void __cdecl CFlexArray::DebugDump(void) __ptr64
?DebugDump@CFlexArray@@QEAAXXZ
; int __cdecl DebugTrace(char,char const * __ptr64,...)
?DebugTrace@@YAHDPEBDZZ
; protected: void __cdecl CFlexQueue::DecrementIndex(int & __ptr64) __ptr64
?DecrementIndex@CFlexQueue@@IEAAXAEAH@Z
; public: int __cdecl CNtAcl::DeleteAce(int) __ptr64
?DeleteAce@CNtAcl@@QEAAHH@Z
; protected: void __cdecl CAbstractQl1Parser::DeletePropertyName(void) __ptr64
?DeletePropertyName@CAbstractQl1Parser@@IEAAXXZ
; public: int __cdecl CWStringArray::DeleteStr(int) __ptr64
?DeleteStr@CWStringArray@@QEAAHH@Z
; private: void __cdecl WString::DeleteString(unsigned short * __ptr64) __ptr64
?DeleteString@WString@@AEAAXPEAG@Z
; public: int __cdecl Registry::DeleteValue(unsigned short * __ptr64) __ptr64
?DeleteValue@Registry@@QEAAHPEAG@Z
; public: void * __ptr64 __cdecl CFlexQueue::Dequeue(void) __ptr64
?Dequeue@CFlexQueue@@QEAAPEAXXZ
; public: long __cdecl CInstructionQueue::Dequeue(class CTimerInstruction * __ptr64 & __ptr64,class CWbemTime & __ptr64) __ptr64
?Dequeue@CInstructionQueue@@QEAAJAEAPEAVCTimerInstruction@@AEAVCWbemTime@@@Z
; public: virtual bool __cdecl C9XAce::Deserialize(unsigned char * __ptr64) __ptr64
?Deserialize@C9XAce@@UEAA_NPEAE@Z
; public: virtual bool __cdecl CNtAce::Deserialize(unsigned char * __ptr64) __ptr64
?Deserialize@CNtAce@@UEAA_NPEAE@Z
; public: static void __cdecl CWStringArray::Difference(class CWStringArray & __ptr64,class CWStringArray & __ptr64,class CWStringArray & __ptr64)
?Difference@CWStringArray@@SAXAEAV1@00@Z
; protected: bool __cdecl CLike::DoLike(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short) __ptr64
?DoLike@CLike@@IEAA_NPEBG0G@Z
; protected: virtual int __cdecl CExecQueue::DoesNeedNewThread(class CExecRequest * __ptr64) __ptr64
?DoesNeedNewThread@CExecQueue@@MEAAHPEAVCExecRequest@@@Z
; public: int __cdecl CVarVector::DoesVectorTypeMatchArrayType(void) __ptr64
?DoesVectorTypeMatchArrayType@CVarVector@@QEAAHXZ
; public: void __cdecl CWQLScanner::Dump(void) __ptr64
?Dump@CWQLScanner@@QEAAXXZ
; public: void __cdecl QL_LEVEL_1_RPN_EXPRESSION::Dump(char const * __ptr64) __ptr64
?Dump@QL_LEVEL_1_RPN_EXPRESSION@@QEAAXPEBD@Z
; public: void __cdecl QL_LEVEL_1_TOKEN::Dump(struct _iobuf * __ptr64) __ptr64
?Dump@QL_LEVEL_1_TOKEN@@QEAAXPEAU_iobuf@@@Z
; public: virtual void __cdecl CExecRequest::DumpError(void) __ptr64
?DumpError@CExecRequest@@UEAAXXZ
; public: int __cdecl CVar::DumpText(struct _iobuf * __ptr64) __ptr64
?DumpText@CVar@@QEAAHPEAU_iobuf@@@Z
; public: int __cdecl CSafeArray::ElementSize(void) __ptr64
?ElementSize@CSafeArray@@QEAAHXZ
; public: void __cdecl CFlexArray::Empty(void) __ptr64
?Empty@CFlexArray@@QEAAXXZ
; public: void __cdecl CPropertyName::Empty(void) __ptr64
?Empty@CPropertyName@@QEAAXXZ
; public: void __cdecl CSafeArray::Empty(void) __ptr64
?Empty@CSafeArray@@QEAAXXZ
; public: void __cdecl CVar::Empty(void) __ptr64
?Empty@CVar@@QEAAXXZ
; public: void __cdecl CVarVector::Empty(void) __ptr64
?Empty@CVarVector@@QEAAXXZ
; public: void __cdecl CWStringArray::Empty(void) __ptr64
?Empty@CWStringArray@@QEAAXXZ
; public: void __cdecl WString::Empty(void) __ptr64
?Empty@WString@@QEAAXXZ
; long __cdecl EnableAllPrivileges(unsigned long)
?EnableAllPrivileges@@YAJK@Z
; int __cdecl EnablePrivilege(unsigned long,unsigned short const * __ptr64)
?EnablePrivilege@@YAHKPEBG@Z
; private: bool __cdecl CIdentitySecurity::EncryptedCall(void) __ptr64
?EncryptedCall@CIdentitySecurity@@AEAA_NXZ
; public: virtual long __cdecl CExecQueue::Enqueue(class CExecRequest * __ptr64,void * __ptr64 * __ptr64) __ptr64
?Enqueue@CExecQueue@@UEAAJPEAVCExecRequest@@PEAPEAX@Z
; public: bool __cdecl CFlexQueue::Enqueue(void * __ptr64) __ptr64
?Enqueue@CFlexQueue@@QEAA_NPEAX@Z
; public: long __cdecl CInstructionQueue::Enqueue(class CWbemTime,class CTimerInstruction * __ptr64) __ptr64
?Enqueue@CInstructionQueue@@QEAAJVCWbemTime@@PEAVCTimerInstruction@@@Z
; public: long __cdecl CExecQueue::EnqueueAndWait(class CExecRequest * __ptr64) __ptr64
?EnqueueAndWait@CExecQueue@@QEAAJPEAVCExecRequest@@@Z
; public: long __cdecl CExecQueue::EnqueueWithoutSleep(class CExecRequest * __ptr64,void * __ptr64 * __ptr64) __ptr64
?EnqueueWithoutSleep@CExecQueue@@QEAAJPEAVCExecRequest@@PEAPEAX@Z
; protected: void __cdecl CPropertyName::EnsureAllocated(long) __ptr64
?EnsureAllocated@CPropertyName@@IEAAXJ@Z
; public: int __cdecl CFlexArray::EnsureExtent(int) __ptr64
?EnsureExtent@CFlexArray@@QEAAHH@Z
; protected: class CSmallArrayBlob * __ptr64 __cdecl CSmallArrayBlob::EnsureExtent(int) __ptr64
?EnsureExtent@CSmallArrayBlob@@IEAAPEAV1@H@Z
; private: void __cdecl CTimerGenerator::EnsureRunning(void) __ptr64
?EnsureRunning@CTimerGenerator@@AEAAXXZ
; private: void __cdecl CBuffer::EnsureSize(unsigned long) __ptr64
?EnsureSize@CBuffer@@AEAAXK@Z
; public: void __cdecl CCheckedInCritSec::Enter(void) __ptr64
?Enter@CCheckedInCritSec@@QEAAXXZ
; public: void __cdecl CCritSec::Enter(void) __ptr64
?Enter@CCritSec@@QEAAXXZ
; public: void __cdecl CExecQueue::Enter(void) __ptr64
?Enter@CExecQueue@@QEAAXXZ
; public: void __cdecl CStaticCritSec::Enter(void) __ptr64
?Enter@CStaticCritSec@@QEAAXXZ
; public: int __cdecl CWbemCriticalSection::Enter(unsigned long) __ptr64
?Enter@CWbemCriticalSection@@QEAAHK@Z
; public: int __cdecl WString::Equal(unsigned short const * __ptr64)const  __ptr64
?Equal@WString@@QEBAHPEBG@Z
; public: int __cdecl WString::EqualNoCase(unsigned short const * __ptr64)const  __ptr64
?EqualNoCase@WString@@QEBAHPEBG@Z
; int __cdecl ErrorTrace(char,char const * __ptr64,...)
?ErrorTrace@@YAHDPEBDZZ
; public: class WString  __cdecl WString::EscapeQuotes(void)const  __ptr64
?EscapeQuotes@WString@@QEBA?AV1@XZ
; protected: virtual int __cdecl CExecQueue::Execute(class CExecQueue::CThreadRecord * __ptr64) __ptr64
?Execute@CExecQueue@@MEAAHPEAVCThreadRecord@1@@Z
; unsigned short * __ptr64 __cdecl ExtractMachineName(unsigned short * __ptr64)
?ExtractMachineName@@YAPEAGPEAG@Z
; private: struct WSLexToken * __ptr64 __cdecl CWQLScanner::ExtractNext(int) __ptr64
?ExtractNext@CWQLScanner@@AEAAPEAUWSLexToken@@H@Z
; private: int __cdecl CWQLScanner::ExtractSelectType(void) __ptr64
?ExtractSelectType@CWQLScanner@@AEAAHXZ
; public: int __cdecl WString::ExtractToken(unsigned short,class WString & __ptr64) __ptr64
?ExtractToken@WString@@QEAAHGAEAV1@@Z
; public: int __cdecl WString::ExtractToken(unsigned short const * __ptr64,class WString & __ptr64) __ptr64
?ExtractToken@WString@@QEAAHPEBGAEAV1@@Z
; private: void __cdecl CSafeArray::Fatal(char const * __ptr64) __ptr64
?Fatal@CSafeArray@@AEAAXPEBD@Z
; private: int __cdecl CPersistentConfig::FileExists(unsigned short const * __ptr64) __ptr64
?FileExists@CPersistentConfig@@AEAAHPEBG@Z
; public: void __cdecl CVarVector::FillCVarAt(int,class CVar & __ptr64) __ptr64
?FillCVarAt@CVarVector@@QEAAXHAEAVCVar@@@Z
; public: int __cdecl CDateTimeParser::FillDMTF(unsigned short * __ptr64,unsigned __int64) __ptr64
?FillDMTF@CDateTimeParser@@QEAAHPEAG_K@Z
; public: void __cdecl CVar::FillVariant(struct tagVARIANT * __ptr64,int) __ptr64
?FillVariant@CVar@@QEAAXPEAUtagVARIANT@@H@Z
; public: int __cdecl CWStringArray::FindStr(unsigned short const * __ptr64,int) __ptr64
?FindStr@CWStringArray@@QEAAHPEBGH@Z
; protected: int __cdecl CAbstractQl1Parser::FlipOperator(int) __ptr64
?FlipOperator@CAbstractQl1Parser@@IEAAHH@Z
; public: virtual int __cdecl CWin32DefaultArena::Free(void * __ptr64) __ptr64
?Free@CWin32DefaultArena@@UEAAHPEAX@Z
; public: __int64 __cdecl CWbemTime::Get100nss(void)const  __ptr64
?Get100nss@CWbemTime@@QEBA_JXZ
; public: struct SNtAbsoluteSD * __ptr64 __cdecl CNtSecurityDescriptor::GetAbsoluteCopy(void) __ptr64
?GetAbsoluteCopy@CNtSecurityDescriptor@@QEAAPEAUSNtAbsoluteSD@@XZ
; public: virtual unsigned long __cdecl C9XAce::GetAccessMask(void) __ptr64
?GetAccessMask@C9XAce@@UEAAKXZ
; public: virtual unsigned long __cdecl CNtAce::GetAccessMask(void) __ptr64
?GetAccessMask@CNtAce@@UEAAKXZ
; long __cdecl GetAccessToken(void * __ptr64 & __ptr64)
?GetAccessToken@@YAJAEAPEAX@Z
; public: int __cdecl CNtAcl::GetAce(int,class CNtAce & __ptr64) __ptr64
?GetAce@CNtAcl@@QEAAHHAEAVCNtAce@@@Z
; public: class CNtAce * __ptr64 __cdecl CNtAcl::GetAce(int) __ptr64
?GetAce@CNtAcl@@QEAAPEAVCNtAce@@H@Z
; public: int __cdecl CNtAcl::GetAclSizeInfo(unsigned long * __ptr64,unsigned long * __ptr64) __ptr64
?GetAclSizeInfo@CNtAcl@@QEAAHPEAK0@Z
; public: virtual long __cdecl CWbemCallSecurity::GetActiveImpersonation(void) __ptr64
?GetActiveImpersonation@CWbemCallSecurity@@UEAAJXZ
; public: int __cdecl CSafeArray::GetActualVarType(unsigned short * __ptr64) __ptr64
?GetActualVarType@CSafeArray@@QEAAHPEAG@Z
; public: static void * __ptr64 __cdecl CWin32DefaultArena::GetArenaHeap(void)
?GetArenaHeap@CWin32DefaultArena@@SAPEAXXZ
; public: struct tagSAFEARRAY * __ptr64 __cdecl CSafeArray::GetArray(void) __ptr64
?GetArray@CSafeArray@@QEAAPEAUtagSAFEARRAY@@XZ
; public: struct tagSAFEARRAY * __ptr64 __cdecl CSafeArray::GetArrayCopy(void) __ptr64
?GetArrayCopy@CSafeArray@@QEAAPEAUtagSAFEARRAY@@XZ
; public: void * __ptr64 * __ptr64 __cdecl CFlexArray::GetArrayPtr(void) __ptr64
?GetArrayPtr@CFlexArray@@QEAAPEAPEAXXZ
; public: void * __ptr64 const * __ptr64 __cdecl CFlexArray::GetArrayPtr(void)const  __ptr64
?GetArrayPtr@CFlexArray@@QEBAPEBQEAXXZ
; public: void * __ptr64 * __ptr64 __cdecl CSmallArrayBlob::GetArrayPtr(void) __ptr64
?GetArrayPtr@CSmallArrayBlob@@QEAAPEAPEAXXZ
; public: void * __ptr64 const * __ptr64 __cdecl CSmallArrayBlob::GetArrayPtr(void)const  __ptr64
?GetArrayPtr@CSmallArrayBlob@@QEBAPEBQEAXXZ
; public: unsigned short const * __ptr64 * __ptr64 __cdecl CWStringArray::GetArrayPtr(void) __ptr64
?GetArrayPtr@CWStringArray@@QEAAPEAPEBGXZ
; public: void * __ptr64 __cdecl CFlexArray::GetAt(int)const  __ptr64
?GetAt@CFlexArray@@QEBAPEAXH@Z
; public: void * __ptr64 __cdecl CSmallArrayBlob::GetAt(int)const  __ptr64
?GetAt@CSmallArrayBlob@@QEBAPEAXH@Z
; public: class CVar & __ptr64 __cdecl CVarVector::GetAt(int) __ptr64
?GetAt@CVarVector@@QEAAAEAVCVar@@H@Z
; public: unsigned short * __ptr64 __cdecl CWStringArray::GetAt(int)const  __ptr64
?GetAt@CWStringArray@@QEBAPEAGH@Z
; public: virtual unsigned long __cdecl CWbemCallSecurity::GetAuthenticationId(struct _LUID & __ptr64) __ptr64
?GetAuthenticationId@CWbemCallSecurity@@UEAAKAEAU_LUID@@@Z
; public: unsigned short * __ptr64 __cdecl CVar::GetBSTR(void) __ptr64
?GetBSTR@CVar@@QEAAPEAGXZ
; public: unsigned short * __ptr64 __cdecl CSafeArray::GetBSTRAt(int) __ptr64
?GetBSTRAt@CSafeArray@@QEAAPEAGH@Z
; public: unsigned short * __ptr64 __cdecl CSafeArray::GetBSTRAtThrow(int) __ptr64
?GetBSTRAtThrow@CSafeArray@@QEAAPEAGH@Z
; public: int __cdecl Registry::GetBinary(unsigned short * __ptr64,unsigned char * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64
?GetBinary@Registry@@QEAAHPEAGPEAPEAEPEAK@Z
; public: struct tagBLOB * __ptr64 __cdecl CVar::GetBlob(void) __ptr64
?GetBlob@CVar@@QEAAPEAUtagBLOB@@XZ
; public: short __cdecl CVar::GetBool(void) __ptr64
?GetBool@CVar@@QEAAFXZ
; public: short __cdecl CSafeArray::GetBoolAt(int) __ptr64
?GetBoolAt@CSafeArray@@QEAAFH@Z
; public: unsigned char __cdecl CVar::GetByte(void) __ptr64
?GetByte@CVar@@QEAAEXZ
; public: unsigned char __cdecl CSafeArray::GetByteAt(int) __ptr64
?GetByteAt@CSafeArray@@QEAAEH@Z
; public: unsigned short const * __ptr64 __cdecl CWbemCallSecurity::GetCallerIdentity(void) __ptr64
?GetCallerIdentity@CWbemCallSecurity@@QEAAPEBGXZ
; public: char __cdecl CVar::GetChar(void) __ptr64
?GetChar@CVar@@QEAADXZ
; public: struct _GUID * __ptr64 __cdecl CVar::GetClsId(void) __ptr64
?GetClsId@CVar@@QEAAPEAU_GUID@@XZ
; public: static int __cdecl CMRCICompression::GetCompressedFileInfo(unsigned short const * __ptr64,enum CMRCICompression::CompressionLevel & __ptr64,unsigned long & __ptr64,struct _FILETIME & __ptr64,__int64 & __ptr64)
?GetCompressedFileInfo@CMRCICompression@@SAHPEBGAEAW4CompressionLevel@1@AEAKAEAU_FILETIME@@AEA_J@Z
; public: class CWbemTime  __cdecl CEventLogRecord::GetCreationTime(void) __ptr64
?GetCreationTime@CEventLogRecord@@QEAA?AVCWbemTime@@XZ
; private: int __cdecl CWbemTime::GetDMTF(int,unsigned long,unsigned short * __ptr64) __ptr64
?GetDMTF@CWbemTime@@AEAAHHKPEAG@Z
; public: unsigned long __cdecl CVar::GetDWORD(void) __ptr64
?GetDWORD@CVar@@QEAAKXZ
; public: int __cdecl Registry::GetDWORD(unsigned short * __ptr64,unsigned long * __ptr64) __ptr64
?GetDWORD@Registry@@QEAAHPEAGPEAK@Z
; public: int __cdecl Registry::GetDWORDStr(unsigned short * __ptr64,unsigned long * __ptr64) __ptr64
?GetDWORDStr@Registry@@QEAAHPEAGPEAK@Z
; public: int __cdecl CNtSecurityDescriptor::GetDacl(class CNtAcl & __ptr64) __ptr64
?GetDacl@CNtSecurityDescriptor@@QEAAHAEAVCNtAcl@@@Z
; public: class CNtAcl * __ptr64 __cdecl CNtSecurityDescriptor::GetDacl(void) __ptr64
?GetDacl@CNtSecurityDescriptor@@QEAAPEAVCNtAcl@@XZ
; public: unsigned char __cdecl CDateTimeParser::GetDay(void) __ptr64
?GetDay@CDateTimeParser@@QEAAEXZ
; public: struct IDispatch * __ptr64 __cdecl CVar::GetDispatch(void) __ptr64
?GetDispatch@CVar@@QEAAPEAUIDispatch@@XZ
; public: struct IDispatch * __ptr64 __cdecl CSafeArray::GetDispatchAt(int) __ptr64
?GetDispatchAt@CSafeArray@@QEAAPEAUIDispatch@@H@Z
; public: double __cdecl CVar::GetDouble(void) __ptr64
?GetDouble@CVar@@QEAANXZ
; public: double __cdecl CSafeArray::GetDoubleAt(int) __ptr64
?GetDoubleAt@CSafeArray@@QEAANH@Z
; public: int __cdecl CVarVector::GetElementSize(void) __ptr64
?GetElementSize@CVarVector@@QEAAHXZ
; public: struct IUnknown * __ptr64 __cdecl CVar::GetEmbeddedObject(void) __ptr64
?GetEmbeddedObject@CVar@@QEAAPEAUIUnknown@@XZ
; public: unsigned short const * __ptr64 __cdecl CLike::GetExpression(void) __ptr64
?GetExpression@CLike@@QEAAPEBGXZ
; public: int __cdecl CWbemTime::GetFILETIME(struct _FILETIME * __ptr64)const  __ptr64
?GetFILETIME@CWbemTime@@QEBAHPEAU_FILETIME@@@Z
; public: struct _FILETIME  __cdecl CVar::GetFileTime(void) __ptr64
?GetFileTime@CVar@@QEAA?AU_FILETIME@@XZ
; public: virtual class CWbemTime  __cdecl CBasicUnloadInstruction::GetFirstFiringTime(void)const  __ptr64
?GetFirstFiringTime@CBasicUnloadInstruction@@UEBA?AVCWbemTime@@XZ
; public: virtual class CWbemTime  __cdecl CUnloadInstruction::GetFirstFiringTime(void)const  __ptr64
?GetFirstFiringTime@CUnloadInstruction@@UEBA?AVCWbemTime@@XZ
; public: virtual int __cdecl C9XAce::GetFlags(void) __ptr64
?GetFlags@C9XAce@@UEAAHXZ
; public: virtual int __cdecl CNtAce::GetFlags(void) __ptr64
?GetFlags@CNtAce@@UEAAHXZ
; public: float __cdecl CVar::GetFloat(void) __ptr64
?GetFloat@CVar@@QEAAMXZ
; public: float __cdecl CSafeArray::GetFloatAt(int) __ptr64
?GetFloatAt@CSafeArray@@QEAAMH@Z
; private: unsigned short * __ptr64 __cdecl CPersistentConfig::GetFullFilename(unsigned short const * __ptr64) __ptr64
?GetFullFilename@CPersistentConfig@@AEAAPEAGPEBG@Z
; public: virtual long __cdecl C9XAce::GetFullUserName2(unsigned short * __ptr64 * __ptr64) __ptr64
?GetFullUserName2@C9XAce@@UEAAJPEAPEAG@Z
; public: virtual long __cdecl CNtAce::GetFullUserName2(unsigned short * __ptr64 * __ptr64) __ptr64
?GetFullUserName2@CNtAce@@UEAAJPEAPEAG@Z
; public: class CNtSid * __ptr64 __cdecl CNtSecurityDescriptor::GetGroup(void) __ptr64
?GetGroup@CNtSecurityDescriptor@@QEAAPEAVCNtSid@@XZ
; public: void * __ptr64 __cdecl CPropertyName::GetHandle(void) __ptr64
?GetHandle@CPropertyName@@QEAAPEAXXZ
; public: unsigned char __cdecl CDateTimeParser::GetHours(void) __ptr64
?GetHours@CDateTimeParser@@QEAAEXZ
; protected: virtual unsigned long __cdecl CExecQueue::GetIdleTimeout(class CExecQueue::CThreadRecord * __ptr64) __ptr64
?GetIdleTimeout@CExecQueue@@MEAAKPEAVCThreadRecord@1@@Z
; public: unsigned long __cdecl CBuffer::GetIndex(void) __ptr64
?GetIndex@CBuffer@@QEAAKXZ
; public: static class CWbemInterval  __cdecl CWbemInterval::GetInfinity(void)
?GetInfinity@CWbemInterval@@SA?AV1@XZ
; public: static class CWbemTime  __cdecl CWbemTime::GetInfinity(void)
?GetInfinity@CWbemTime@@SA?AV1@XZ
; public: int __cdecl CNtSid::GetInfo(unsigned short * __ptr64 * __ptr64,unsigned short * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64
?GetInfo@CNtSid@@QEAAHPEAPEAG0PEAK@Z
; public: struct IUnknown * __ptr64 __cdecl CUnk::GetInnerUnknown(void) __ptr64
?GetInnerUnknown@CUnk@@QEAAPEAUIUnknown@@XZ
; public: virtual int __cdecl CBasicUnloadInstruction::GetInstructionType(void) __ptr64
?GetInstructionType@CBasicUnloadInstruction@@UEAAHXZ
; public: char * __ptr64 __cdecl CVar::GetLPSTR(void) __ptr64
?GetLPSTR@CVar@@QEAAPEADXZ
; public: char * __ptr64 __cdecl WString::GetLPSTR(void)const  __ptr64
?GetLPSTR@WString@@QEBAPEADXZ
; public: unsigned short * __ptr64 __cdecl CVar::GetLPWSTR(void) __ptr64
?GetLPWSTR@CVar@@QEAAPEAGXZ
; public: unsigned short * __ptr64 __cdecl WString::GetLToken(unsigned short)const  __ptr64
?GetLToken@WString@@QEBAPEAGG@Z
; public: long __cdecl Registry::GetLastError(void) __ptr64
?GetLastError@Registry@@QEAAJXZ
; protected: void __cdecl CDateTimeParser::GetLocalInfoAndAlloc(unsigned long,unsigned short * __ptr64 & __ptr64) __ptr64
?GetLocalInfoAndAlloc@CDateTimeParser@@IEAAXKAEAPEAG@Z
; public: static long __cdecl CWbemTime::GetLocalOffsetForDate(struct _SYSTEMTIME const * __ptr64)
?GetLocalOffsetForDate@CWbemTime@@SAJPEBU_SYSTEMTIME@@@Z
; public: long __cdecl CWbemCriticalSection::GetLockCount(void) __ptr64
?GetLockCount@CWbemCriticalSection@@QEAAJXZ
; unsigned long __cdecl GetLoggingLevelEnabled(void)
?GetLoggingLevelEnabled@@YAKXZ
; public: long __cdecl CVar::GetLong(void) __ptr64
?GetLong@CVar@@QEAAJXZ
; public: long __cdecl CSafeArray::GetLongAt(int) __ptr64
?GetLongAt@CSafeArray@@QEAAJH@Z
; public: unsigned int __cdecl CDateTimeParser::GetMicroseconds(void) __ptr64
?GetMicroseconds@CDateTimeParser@@QEAAIXZ
; public: unsigned long __cdecl CWbemInterval::GetMilliseconds(void)const  __ptr64
?GetMilliseconds@CWbemInterval@@QEBAKXZ
; public: unsigned char __cdecl CDateTimeParser::GetMinutes(void) __ptr64
?GetMinutes@CDateTimeParser@@QEAAEXZ
; public: unsigned char __cdecl CDateTimeParser::GetMonth(void) __ptr64
?GetMonth@CDateTimeParser@@QEAAEXZ
; public: unsigned short * __ptr64 __cdecl Registry::GetMultiStr(unsigned short * __ptr64,unsigned long & __ptr64) __ptr64
?GetMultiStr@Registry@@QEAAPEAGPEAGAEAK@Z
; public: struct tagSAFEARRAY * __ptr64 __cdecl CVar::GetNewSafeArray(void) __ptr64
?GetNewSafeArray@CVar@@QEAAPEAUtagSAFEARRAY@@XZ
; public: struct tagSAFEARRAY * __ptr64 __cdecl CVarVector::GetNewSafeArray(void) __ptr64
?GetNewSafeArray@CVarVector@@QEAAPEAUtagSAFEARRAY@@XZ
; public: struct tagVARIANT * __ptr64 __cdecl CVar::GetNewVariant(void) __ptr64
?GetNewVariant@CVar@@QEAAPEAUtagVARIANT@@XZ
; public: class CExecRequest * __ptr64 __cdecl CExecRequest::GetNext(void) __ptr64
?GetNext@CExecRequest@@QEAAPEAV1@XZ
; public: virtual class CWbemTime  __cdecl CBasicUnloadInstruction::GetNextFiringTime(class CWbemTime,long * __ptr64)const  __ptr64
?GetNextFiringTime@CBasicUnloadInstruction@@UEBA?AVCWbemTime@@V2@PEAJ@Z
; public: int __cdecl CNtAcl::GetNumAces(void) __ptr64
?GetNumAces@CNtAcl@@QEAAHXZ
; public: long __cdecl CPropertyName::GetNumElements(void)const  __ptr64
?GetNumElements@CPropertyName@@QEBAJXZ
; public: long __cdecl CInstructionQueue::GetNumInstructions(void) __ptr64
?GetNumInstructions@CInstructionQueue@@QEAAJXZ
; public: unsigned short __cdecl CEventLogRecord::GetNumStrings(void) __ptr64
?GetNumStrings@CEventLogRecord@@QEAAGXZ
; public: int __cdecl CVar::GetOleType(void) __ptr64
?GetOleType@CVar@@QEAAHXZ
; public: class CNtSid * __ptr64 __cdecl CNtSecurityDescriptor::GetOwner(void) __ptr64
?GetOwner@CNtSecurityDescriptor@@QEAAPEAVCNtSid@@XZ
; public: unsigned long __cdecl CWbemCriticalSection::GetOwningThreadId(void) __ptr64
?GetOwningThreadId@CWbemCriticalSection@@QEAAKXZ
; public: long __cdecl CDatePart::GetPart(int,int * __ptr64) __ptr64
?GetPart@CDatePart@@QEAAJHPEAH@Z
; public: unsigned short * __ptr64 __cdecl CUnloadInstruction::GetPath(void) __ptr64
?GetPath@CUnloadInstruction@@QEAAQEAGXZ
; public: int __cdecl CPersistentConfig::GetPersistentCfgValue(unsigned long,unsigned long & __ptr64) __ptr64
?GetPersistentCfgValue@CPersistentConfig@@QEAAHKAEAK@Z
; public: virtual long __cdecl CWbemCallSecurity::GetPotentialImpersonation(void) __ptr64
?GetPotentialImpersonation@CWbemCallSecurity@@UEAAJXZ
; protected: void __cdecl CDateTimeParser::GetPreferedDateFormat(void) __ptr64
?GetPreferedDateFormat@CDateTimeParser@@IEAAXXZ
; public: long __cdecl CExecRequest::GetPriority(void) __ptr64
?GetPriority@CExecRequest@@QEAAJXZ
; private: unsigned short * __ptr64 __cdecl CTextTemplate::GetPropertyFromIUnknown(unsigned short * __ptr64,struct IUnknown * __ptr64) __ptr64
?GetPropertyFromIUnknown@CTextTemplate@@AEAAPEAGPEAGPEAUIUnknown@@@Z
; public: struct _ACCESS_ALLOWED_ACE * __ptr64 __cdecl CNtAce::GetPtr(void) __ptr64
?GetPtr@CNtAce@@QEAAPEAU_ACCESS_ALLOWED_ACE@@XZ
; public: struct _ACL * __ptr64 __cdecl CNtAcl::GetPtr(void) __ptr64
?GetPtr@CNtAcl@@QEAAPEAU_ACL@@XZ
; public: void * __ptr64 __cdecl CNtSecurityDescriptor::GetPtr(void) __ptr64
?GetPtr@CNtSecurityDescriptor@@QEAAPEAXXZ
; public: void * __ptr64 __cdecl CNtSid::GetPtr(void) __ptr64
?GetPtr@CNtSid@@QEAAPEAXXZ
; public: int __cdecl QL1_Parser::GetQueryClass(unsigned short * __ptr64,int) __ptr64
?GetQueryClass@QL1_Parser@@QEAAHPEAGH@Z
; public: int __cdecl CFlexQueue::GetQueueSize(void)const  __ptr64
?GetQueueSize@CFlexQueue@@QEBAHXZ
; public: long __cdecl CVarVector::GetRawArrayData(void * __ptr64,int) __ptr64
?GetRawArrayData@CVarVector@@QEAAJPEAXH@Z
; public: unsigned char * __ptr64 __cdecl CBuffer::GetRawData(void) __ptr64
?GetRawData@CBuffer@@QEAAPEAEXZ
; public: int __cdecl CSafeArray::GetRawData(void * __ptr64,int) __ptr64
?GetRawData@CSafeArray@@QEAAHPEAXH@Z
; public: void * __ptr64 __cdecl CVar::GetRawData(void) __ptr64
?GetRawData@CVar@@QEAAPEAXXZ
; public: long __cdecl CWbemCriticalSection::GetRecursionCount(void) __ptr64
?GetRecursionCount@CWbemCriticalSection@@QEAAJXZ
; public: int __cdecl CWQLScanner::GetReferencedAliases(class CWStringArray & __ptr64) __ptr64
?GetReferencedAliases@CWQLScanner@@QEAAHAEAVCWStringArray@@@Z
; public: int __cdecl CWQLScanner::GetReferencedTables(class CWStringArray & __ptr64) __ptr64
?GetReferencedTables@CWQLScanner@@QEAAHAEAVCWStringArray@@@Z
; public: int __cdecl CWbemTime::GetSYSTEMTIME(struct _SYSTEMTIME * __ptr64)const  __ptr64
?GetSYSTEMTIME@CWbemTime@@QEBAHPEAU_SYSTEMTIME@@@Z
; public: class CNtAcl * __ptr64 __cdecl CNtSecurityDescriptor::GetSacl(void) __ptr64
?GetSacl@CNtSecurityDescriptor@@QEAAPEAVCNtAcl@@XZ
; public: struct tagSAFEARRAY * __ptr64 __cdecl CVarVector::GetSafeArray(int) __ptr64
?GetSafeArray@CVarVector@@QEAAPEAUtagSAFEARRAY@@H@Z
; private: union SA_ArrayScalar  __cdecl CSafeArray::GetScalarAt(int) __ptr64
?GetScalarAt@CSafeArray@@AEAA?ATSA_ArrayScalar@@H@Z
; public: unsigned char __cdecl CDateTimeParser::GetSeconds(void) __ptr64
?GetSeconds@CDateTimeParser@@QEAAEXZ
; public: unsigned long __cdecl CWbemInterval::GetSeconds(void)const  __ptr64
?GetSeconds@CWbemInterval@@QEBAKXZ
; public: class CFlexArray const * __ptr64 __cdecl CWQLScanner::GetSelectedColumns(void) __ptr64
?GetSelectedColumns@CWQLScanner@@QEAAPEBVCFlexArray@@XZ
; public: virtual unsigned long __cdecl C9XAce::GetSerializedSize(void) __ptr64
?GetSerializedSize@C9XAce@@UEAAKXZ
; public: virtual unsigned long __cdecl CNtAce::GetSerializedSize(void) __ptr64
?GetSerializedSize@CNtAce@@UEAAKXZ
; public: short __cdecl CVar::GetShort(void) __ptr64
?GetShort@CVar@@QEAAFXZ
; public: short __cdecl CSafeArray::GetShortAt(int) __ptr64
?GetShortAt@CSafeArray@@QEAAFH@Z
; public: int __cdecl CNtAce::GetSid(class CNtSid & __ptr64) __ptr64
?GetSid@CNtAce@@QEAAHAEAVCNtSid@@@Z
; public: class CNtSid * __ptr64 __cdecl CNtAce::GetSid(void) __ptr64
?GetSid@CNtAce@@QEAAPEAVCNtSid@@XZ
; private: long __cdecl CIdentitySecurity::GetSidFromThreadOrProcess(class CNtSid & __ptr64) __ptr64
?GetSidFromThreadOrProcess@CIdentitySecurity@@AEAAJAEAVCNtSid@@@Z
; protected: unsigned short const * __ptr64 __cdecl CAbstractQl1Parser::GetSinglePropertyName(void) __ptr64
?GetSinglePropertyName@CAbstractQl1Parser@@IEAAPEBGXZ
; public: unsigned long __cdecl CExecQueue::GetSitoutPenalty(void) __ptr64
?GetSitoutPenalty@CExecQueue@@QEAAKXZ
; public: unsigned long __cdecl CBuffer::GetSize(void) __ptr64
?GetSize@CBuffer@@QEAAKXZ
; public: unsigned long __cdecl CNtAce::GetSize(void) __ptr64
?GetSize@CNtAce@@QEAAKXZ
; public: unsigned long __cdecl CNtAcl::GetSize(void) __ptr64
?GetSize@CNtAcl@@QEAAKXZ
; public: unsigned long __cdecl CNtSecurityDescriptor::GetSize(void) __ptr64
?GetSize@CNtSecurityDescriptor@@QEAAKXZ
; public: unsigned long __cdecl CNtSid::GetSize(void) __ptr64
?GetSize@CNtSid@@QEAAKXZ
; public: virtual unsigned long __cdecl C9XAce::GetStatus(void) __ptr64
?GetStatus@C9XAce@@UEAAKXZ
; public: virtual unsigned long __cdecl CNtAce::GetStatus(void) __ptr64
?GetStatus@CNtAce@@UEAAKXZ
; public: unsigned long __cdecl CNtAcl::GetStatus(void) __ptr64
?GetStatus@CNtAcl@@QEAAKXZ
; public: unsigned long __cdecl CNtSecurityDescriptor::GetStatus(void) __ptr64
?GetStatus@CNtSecurityDescriptor@@QEAAKXZ
; public: unsigned long __cdecl CNtSid::GetStatus(void) __ptr64
?GetStatus@CNtSid@@QEAAKXZ
; public: int __cdecl Registry::GetStr(unsigned short * __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
?GetStr@Registry@@QEAAHPEAGPEAPEAG@Z
; public: unsigned short const * __ptr64 __cdecl CInsertionString::GetString(void) __ptr64
?GetString@CInsertionString@@QEAAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl CEventLogRecord::GetStringAt(int) __ptr64
?GetStringAt@CEventLogRecord@@QEAAPEBGH@Z
; public: unsigned short const * __ptr64 __cdecl CPropertyName::GetStringAt(long)const  __ptr64
?GetStringAt@CPropertyName@@QEBAPEBGJ@Z
; public: unsigned short * __ptr64 __cdecl CPropertyName::GetText(void) __ptr64
?GetText@CPropertyName@@QEAAPEAGXZ
; public: unsigned short * __ptr64 __cdecl CVar::GetText(long,long,unsigned short const * __ptr64) __ptr64
?GetText@CVar@@QEAAPEAGJJPEBG@Z
; public: unsigned short * __ptr64 __cdecl CVarVector::GetText(long,long) __ptr64
?GetText@CVarVector@@QEAAPEAGJJ@Z
; public: unsigned short * __ptr64 __cdecl QL_LEVEL_1_RPN_EXPRESSION::GetText(void) __ptr64
?GetText@QL_LEVEL_1_RPN_EXPRESSION@@QEAAPEAGXZ
; public: unsigned short * __ptr64 __cdecl QL_LEVEL_1_TOKEN::GetText(void) __ptr64
?GetText@QL_LEVEL_1_TOKEN@@QEAAPEAGXZ
; public: int __cdecl CNtSid::GetTextSid(unsigned short * __ptr64,unsigned long * __ptr64) __ptr64
?GetTextSid@CNtSid@@QEAAHPEAGPEAK@Z
; public: static class CWbemTime  __cdecl CWbemTime::GetTickCount(void)
?GetTickCount@CWbemTime@@SA?AV1@XZ
; public: static unsigned long __cdecl CExecQueue::GetTlsIndex(void)
?GetTlsIndex@CExecQueue@@SAKXZ
; public: virtual void * __ptr64 __cdecl CWbemCallSecurity::GetToken(void) __ptr64
?GetToken@CWbemCallSecurity@@UEAAPEAXXZ
; public: virtual int __cdecl C9XAce::GetType(void) __ptr64
?GetType@C9XAce@@UEAAHXZ
; public: virtual unsigned short const * __ptr64 __cdecl CExecQueue::GetType(void) __ptr64
?GetType@CExecQueue@@UEAAPEBGXZ
; public: virtual int __cdecl CNtAce::GetType(void) __ptr64
?GetType@CNtAce@@UEAAHXZ
; public: int __cdecl CSafeArray::GetType(void) __ptr64
?GetType@CSafeArray@@QEAAHXZ
; public: int __cdecl CVar::GetType(void) __ptr64
?GetType@CVar@@QEAAHXZ
; public: int __cdecl CVarVector::GetType(void) __ptr64
?GetType@CVarVector@@QEAAHXZ
; public: int __cdecl Registry::GetType(unsigned short * __ptr64,unsigned long * __ptr64) __ptr64
?GetType@Registry@@QEAAHPEAGPEAK@Z
; public: unsigned short * __ptr64 __cdecl CVar::GetTypeText(void) __ptr64
?GetTypeText@CVar@@QEAAPEAGXZ
; public: int __cdecl CDateTimeParser::GetUTC(void) __ptr64
?GetUTC@CDateTimeParser@@QEAAHXZ
; public: struct IUnknown * __ptr64 __cdecl CUnk::GetUnknown(void) __ptr64
?GetUnknown@CUnk@@QEAAPEAUIUnknown@@XZ
; public: struct IUnknown * __ptr64 __cdecl CUnkInternal::GetUnknown(void) __ptr64
?GetUnknown@CUnkInternal@@QEAAPEAUIUnknown@@XZ
; public: struct IUnknown * __ptr64 __cdecl CVar::GetUnknown(void) __ptr64
?GetUnknown@CVar@@QEAAPEAUIUnknown@@XZ
; public: struct IUnknown * __ptr64 __cdecl CSafeArray::GetUnknownAt(int) __ptr64
?GetUnknownAt@CSafeArray@@QEAAPEAUIUnknown@@H@Z
; public: int __cdecl CDMTFParser::GetValue(int) __ptr64
?GetValue@CDMTFParser@@QEAAHH@Z
; public: class CVarVector * __ptr64 __cdecl CVar::GetVarVector(void) __ptr64
?GetVarVector@CVar@@QEAAPEAVCVarVector@@XZ
; public: struct tagVARIANT  __cdecl CSafeArray::GetVariantAt(int) __ptr64
?GetVariantAt@CSafeArray@@QEAA?AUtagVARIANT@@H@Z
; unsigned short * __ptr64 __cdecl GetWMIADAPCmdLine(int)
?GetWMIADAPCmdLine@@YAPEAGH@Z
; public: void * __ptr64 __cdecl CExecRequest::GetWhenDoneHandle(void) __ptr64
?GetWhenDoneHandle@CExecRequest@@QEAAPEAXXZ
; public: unsigned short __cdecl CVar::GetWord(void) __ptr64
?GetWord@CVar@@QEAAGXZ
; public: unsigned int __cdecl CDateTimeParser::GetYear(void) __ptr64
?GetYear@CDateTimeParser@@QEAAIXZ
; public: static class CWbemTime  __cdecl CWbemTime::GetZero(void)
?GetZero@CWbemTime@@SA?AV1@XZ
; protected: bool __cdecl CFlexQueue::Grow(void) __ptr64
?Grow@CFlexQueue@@IEAA_NXZ
; protected: class CSmallArrayBlob * __ptr64 __cdecl CSmallArrayBlob::Grow(void) __ptr64
?Grow@CSmallArrayBlob@@IEAAPEAV1@XZ
; public: long __cdecl CHaltable::Halt(void) __ptr64
?Halt@CHaltable@@QEAAJXZ
; private: unsigned short * __ptr64 __cdecl CTextTemplate::HandleEmbeddedObjectProperties(unsigned short * __ptr64,struct IWbemClassObject * __ptr64) __ptr64
?HandleEmbeddedObjectProperties@CTextTemplate@@AEAAPEAGPEAGPEAUIWbemClassObject@@@Z
; public: int __cdecl CNtSecurityDescriptor::HasOwner(void) __ptr64
?HasOwner@CNtSecurityDescriptor@@QEAAHXZ
; public: virtual long __cdecl CWbemCallSecurity::ImpersonateClient(void) __ptr64
?ImpersonateClient@CWbemCallSecurity@@UEAAJXZ
; public: virtual void __cdecl CQl1ParseSink::InOrder(long) __ptr64
?InOrder@CQl1ParseSink@@UEAAXJ@Z
; protected: void __cdecl CFlexQueue::IncrementIndex(int & __ptr64) __ptr64
?IncrementIndex@CFlexQueue@@IEAAXAEAH@Z
; public: void __cdecl CPropertyName::Init(void) __ptr64
?Init@CPropertyName@@QEAAXXZ
; private: void __cdecl CVar::Init(void) __ptr64
?Init@CVar@@AEAAXXZ
; protected: static void __cdecl CExecQueue::InitTls(void)
?InitTls@CExecQueue@@KAXXZ
; protected: static void __cdecl CAbstractQl1Parser::InitToken(struct _tag_WbemQl1Token * __ptr64)
?InitToken@CAbstractQl1Parser@@KAXPEAU_tag_WbemQl1Token@@@Z
; protected: void __cdecl CSmallArrayBlob::Initialize(int) __ptr64
?Initialize@CSmallArrayBlob@@IEAAXH@Z
; public: virtual int __cdecl CUnk::Initialize(void) __ptr64
?Initialize@CUnk@@UEAAHXZ
; protected: virtual long __cdecl CExecQueue::InitializeThread(void) __ptr64
?InitializeThread@CExecQueue@@MEAAJXZ
; public: int __cdecl CFlexArray::InsertAt(int,void * __ptr64) __ptr64
?InsertAt@CFlexArray@@QEAAHHPEAX@Z
; public: class CSmallArrayBlob * __ptr64 __cdecl CSmallArrayBlob::InsertAt(int,void * __ptr64) __ptr64
?InsertAt@CSmallArrayBlob@@QEAAPEAV1@HPEAX@Z
; public: int __cdecl CVarVector::InsertAt(int,class CVar & __ptr64) __ptr64
?InsertAt@CVarVector@@QEAAHHAEAVCVar@@@Z
; public: int __cdecl CWStringArray::InsertAt(int,unsigned short const * __ptr64) __ptr64
?InsertAt@CWStringArray@@QEAAHHPEBG@Z
; public: unsigned long __cdecl CUnkInternal::InternalAddRef(void) __ptr64
?InternalAddRef@CUnkInternal@@QEAAKXZ
; public: long __cdecl CUnkInternal::InternalQueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?InternalQueryInterface@CUnkInternal@@QEAAJAEBU_GUID@@PEAPEAX@Z
; public: long __cdecl CVarVector::InternalRawArrayAccess(void) __ptr64
?InternalRawArrayAccess@CVarVector@@QEAAJXZ
; public: unsigned long __cdecl CUnkInternal::InternalRelease(void) __ptr64
?InternalRelease@CUnkInternal@@QEAAKXZ
; public: static void __cdecl CWStringArray::Intersection(class CWStringArray & __ptr64,class CWStringArray & __ptr64,class CWStringArray & __ptr64)
?Intersection@CWStringArray@@SAXAEAV1@00@Z
; int __cdecl IsAdmin(void * __ptr64)
?IsAdmin@@YAHPEAX@Z
; protected: virtual int __cdecl CExecQueue::IsAppropriateThread(void) __ptr64
?IsAppropriateThread@CExecQueue@@MEAAHXZ
; public: int __cdecl CVar::IsDataNull(void) __ptr64
?IsDataNull@CVar@@QEAAHXZ
; private: int __cdecl CTextTemplate::IsEmbeddedObjectProperty(unsigned short * __ptr64) __ptr64
?IsEmbeddedObjectProperty@CTextTemplate@@AEAAHPEAG@Z
; public: int __cdecl CInsertionString::IsEmpty(void) __ptr64
?IsEmpty@CInsertionString@@QEAAHXZ
; public: int __cdecl CInstructionQueue::IsEmpty(void) __ptr64
?IsEmpty@CInstructionQueue@@QEAAHXZ
; public: int __cdecl CCheckedInCritSec::IsEntered(void) __ptr64
?IsEntered@CCheckedInCritSec@@QEAAHXZ
; public: int __cdecl CEnterWbemCriticalSection::IsEntered(void) __ptr64
?IsEntered@CEnterWbemCriticalSection@@QEAAHXZ
; public: int __cdecl CWbemInterval::IsFinite(void)const  __ptr64
?IsFinite@CWbemInterval@@QEBAHXZ
; public: int __cdecl CWbemTime::IsFinite(void)const  __ptr64
?IsFinite@CWbemTime@@QEBAHXZ
; public: int __cdecl CHaltable::IsHalted(void) __ptr64
?IsHalted@CHaltable@@QEAAHXZ
; protected: virtual int __cdecl CExecQueue::IsIdleTooLong(class CExecQueue::CThreadRecord * __ptr64,unsigned long) __ptr64
?IsIdleTooLong@CExecQueue@@MEAAHPEAVCThreadRecord@1@K@Z
; public: virtual int __cdecl CWbemCallSecurity::IsImpersonating(void) __ptr64
?IsImpersonating@CWbemCallSecurity@@UEAAHXZ
; int __cdecl IsInAdminGroup(void)
?IsInAdminGroup@@YAHXZ
; public: bool __cdecl CDMTFParser::IsInterval(void) __ptr64
?IsInterval@CDMTFParser@@QEAA_NXZ
; int __cdecl IsLocalService(void * __ptr64)
?IsLocalService@@YAHPEAX@Z
; int __cdecl IsNT(void)
?IsNT@@YAHXZ
; int __cdecl IsNetworkService(void * __ptr64)
?IsNetworkService@@YAHPEAX@Z
; int __cdecl IsNtSetupRunning(void)
?IsNtSetupRunning@@YAHXZ
; public: int __cdecl CVar::IsNull(void) __ptr64
?IsNull@CVar@@QEAAHXZ
; public: bool __cdecl CExecRequest::IsOk(void) __ptr64
?IsOk@CExecRequest@@QEAA_NXZ
; public: int __cdecl CVarVector::IsOptimized(void) __ptr64
?IsOptimized@CVarVector@@QEAAHXZ
; bool __cdecl IsPrivilegePresent(void * __ptr64,unsigned short const * __ptr64)
?IsPrivilegePresent@@YA_NPEAXPEBG@Z
; protected: virtual int __cdecl CExecQueue::IsSTA(void) __ptr64
?IsSTA@CExecQueue@@MEAAHXZ
; public: static int __cdecl CExecQueue::IsSTAThread(void)
?IsSTAThread@CExecQueue@@SAHXZ
; protected: virtual int __cdecl CExecQueue::IsSuitableThread(class CExecQueue::CThreadRecord * __ptr64,class CExecRequest * __ptr64) __ptr64
?IsSuitableThread@CExecQueue@@MEAAHPEAVCThreadRecord@1@PEAVCExecRequest@@@Z
; public: bool __cdecl CDMTFParser::IsUsed(int) __ptr64
?IsUsed@CDMTFParser@@QEAA_NH@Z
; public: bool __cdecl CNtSid::IsUser(void) __ptr64
?IsUser@CNtSid@@QEAA_NXZ
; public: static int __cdecl CNtSecurity::IsUserInGroup(void * __ptr64,class CNtSid & __ptr64)
?IsUserInGroup@CNtSecurity@@SAHPEAXAEAVCNtSid@@@Z
; public: bool __cdecl CDMTFParser::IsValid(void) __ptr64
?IsValid@CDMTFParser@@QEAA_NXZ
; public: int __cdecl CNtAcl::IsValid(void) __ptr64
?IsValid@CNtAcl@@QEAAHXZ
; public: int __cdecl CNtSecurityDescriptor::IsValid(void) __ptr64
?IsValid@CNtSecurityDescriptor@@QEAAHXZ
; public: int __cdecl CNtSid::IsValid(void) __ptr64
?IsValid@CNtSid@@QEAAHXZ
; protected: int __cdecl CDateTimeParser::IsValidAmPmString(unsigned short * __ptr64,unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64 const) __ptr64
?IsValidAmPmString@CDateTimeParser@@IEAAHPEAGPEBGQEAPEAG@Z
; protected: int __cdecl CDateTimeParser::IsValidColonMillisecond(unsigned short * __ptr64,unsigned short const * __ptr64) __ptr64
?IsValidColonMillisecond@CDateTimeParser@@IEAAHPEAGPEBG@Z
; public: int __cdecl CDateTimeParser::IsValidDateTime(void) __ptr64
?IsValidDateTime@CDateTimeParser@@QEAAHXZ
; protected: int __cdecl CDateTimeParser::IsValidDayNumber(unsigned short * __ptr64,unsigned short const * __ptr64) __ptr64
?IsValidDayNumber@CDateTimeParser@@IEAAHPEAGPEBG@Z
; protected: int __cdecl CDateTimeParser::IsValidDotMillisecond(unsigned short * __ptr64,unsigned short const * __ptr64) __ptr64
?IsValidDotMillisecond@CDateTimeParser@@IEAAHPEAGPEBG@Z
; int __cdecl IsValidElementName2(unsigned short const * __ptr64,unsigned long,int)
?IsValidElementName2@@YAHPEBGKH@Z
; int __cdecl IsValidElementName(unsigned short const * __ptr64,unsigned long)
?IsValidElementName@@YAHPEBGK@Z
; protected: int __cdecl CDateTimeParser::IsValidHourNumber(unsigned short * __ptr64,unsigned short const * __ptr64) __ptr64
?IsValidHourNumber@CDateTimeParser@@IEAAHPEAGPEBG@Z
; protected: int __cdecl CDateTimeParser::IsValidMinuteNumber(unsigned short * __ptr64,unsigned short const * __ptr64) __ptr64
?IsValidMinuteNumber@CDateTimeParser@@IEAAHPEAGPEBG@Z
; protected: int __cdecl CDateTimeParser::IsValidMonthNumber(unsigned short * __ptr64,unsigned short const * __ptr64) __ptr64
?IsValidMonthNumber@CDateTimeParser@@IEAAHPEAGPEBG@Z
; protected: int __cdecl CDateTimeParser::IsValidMonthString(unsigned short * __ptr64,unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64 const,unsigned short * __ptr64 * __ptr64 const) __ptr64
?IsValidMonthString@CDateTimeParser@@IEAAHPEAGPEBGQEAPEAG2@Z
; protected: int __cdecl CDateTimeParser::IsValidSecondNumber(unsigned short * __ptr64,unsigned short const * __ptr64) __ptr64
?IsValidSecondNumber@CDateTimeParser@@IEAAHPEAGPEBG@Z
; public: static int __cdecl CVarVector::IsValidVectorArray(int,struct tagSAFEARRAY * __ptr64)
?IsValidVectorArray@CVarVector@@SAHHPEAUtagSAFEARRAY@@@Z
; public: static int __cdecl CVarVector::IsValidVectorType(int)
?IsValidVectorType@CVarVector@@SAHH@Z
; protected: int __cdecl CDateTimeParser::IsValidYearMonthDayNumber(unsigned short * __ptr64) __ptr64
?IsValidYearMonthDayNumber@CDateTimeParser@@IEAAHPEAG@Z
; protected: int __cdecl CDateTimeParser::IsValidYearNumber(unsigned short * __ptr64,unsigned short const * __ptr64,int) __ptr64
?IsValidYearNumber@CDateTimeParser@@IEAAHPEAGPEBGH@Z
; int __cdecl IsW2KOrMore(void)
?IsW2KOrMore@@YAHXZ
; public: bool __cdecl CDMTFParser::IsWildcard(int) __ptr64
?IsWildcard@CDMTFParser@@QEAA_NH@Z
; public: int __cdecl CWbemInterval::IsZero(void)const  __ptr64
?IsZero@CWbemInterval@@QEBAHXZ
; public: int __cdecl CWbemTime::IsZero(void)const  __ptr64
?IsZero@CWbemTime@@QEBAHXZ
; public: void __cdecl CCheckedInCritSec::Leave(void) __ptr64
?Leave@CCheckedInCritSec@@QEAAXXZ
; public: void __cdecl CCritSec::Leave(void) __ptr64
?Leave@CCritSec@@QEAAXXZ
; public: void __cdecl CExecQueue::Leave(void) __ptr64
?Leave@CExecQueue@@QEAAXXZ
; public: void __cdecl CStaticCritSec::Leave(void) __ptr64
?Leave@CStaticCritSec@@QEAAXXZ
; public: void __cdecl CWbemCriticalSection::Leave(void) __ptr64
?Leave@CWbemCriticalSection@@QEAAXXZ
; public: int __cdecl WString::Length(void)const  __ptr64
?Length@WString@@QEBAHXZ
; public: void __cdecl CLockableFlexArray<class CStaticCritSec>::Lock(void) __ptr64
?Lock@?$CLockableFlexArray@VCStaticCritSec@@@@QEAAXXZ
; public: virtual long __cdecl CBuffer::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) __ptr64
?LockRegion@CBuffer@@UEAAJT_ULARGE_INTEGER@@0K@Z
; protected: virtual void __cdecl CExecQueue::LogError(class CExecRequest * __ptr64,int) __ptr64
?LogError@CExecQueue@@MEAAXPEAVCExecRequest@@H@Z
; int __cdecl LoggingLevelEnabled(unsigned long)
?LoggingLevelEnabled@@YAHK@Z
; public: static class CWbemCallSecurity * __ptr64 __cdecl CWbemCallSecurity::MakeInternalCopyOfThread(void)
?MakeInternalCopyOfThread@CWbemCallSecurity@@SAPEAV1@XZ
; public: int __cdecl CVarVector::MakeOptimized(int,int,int) __ptr64
?MakeOptimized@CVarVector@@QEAAHHHH@Z
; public: virtual long __cdecl CTimerInstruction::MarkForRemoval(void) __ptr64
?MarkForRemoval@CTimerInstruction@@UEAAJXZ
; public: bool __cdecl CLike::Match(unsigned short const * __ptr64) __ptr64
?Match@CLike@@QEAA_NPEBG@Z
; protected: bool __cdecl CLike::MatchSet(unsigned short const * __ptr64,unsigned short const * __ptr64,int & __ptr64) __ptr64
?MatchSet@CLike@@IEAA_NPEBG0AEAH@Z
; public: int __cdecl Registry::MoveToSubkey(unsigned short * __ptr64) __ptr64
?MoveToSubkey@Registry@@QEAAHPEAG@Z
; public: unsigned int __cdecl CBaseMrciCompression::Mrci1Decompress(unsigned char * __ptr64,unsigned int,unsigned char * __ptr64,unsigned int) __ptr64
?Mrci1Decompress@CBaseMrciCompression@@QEAAIPEAEI0I@Z
; public: unsigned int __cdecl CBaseMrciCompression::Mrci1MaxCompress(unsigned char * __ptr64,unsigned int,unsigned char * __ptr64,unsigned int) __ptr64
?Mrci1MaxCompress@CBaseMrciCompression@@QEAAIPEAEI0I@Z
; public: unsigned int __cdecl CBaseMrciCompression::Mrci2Decompress(unsigned char * __ptr64,unsigned int,unsigned char * __ptr64,unsigned int) __ptr64
?Mrci2Decompress@CBaseMrciCompression@@QEAAIPEAEI0I@Z
; public: unsigned int __cdecl CBaseMrciCompression::Mrci2MaxCompress(unsigned char * __ptr64,unsigned int,unsigned char * __ptr64,unsigned int) __ptr64
?Mrci2MaxCompress@CBaseMrciCompression@@QEAAIPEAEI0I@Z
; protected: virtual int __cdecl CAbstractQl1Parser::Next(int) __ptr64
?Next@CAbstractQl1Parser@@MEAAHH@Z
; private: int __cdecl CWQLScanner::Next(void) __ptr64
?Next@CWQLScanner@@AEAAHXZ
; int __cdecl NormalizeCimDateTime(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64)
?NormalizeCimDateTime@@YAHPEBGPEAPEAG@Z
; protected: virtual void __cdecl CTimerGenerator::NotifyStartingThread(void) __ptr64
?NotifyStartingThread@CTimerGenerator@@MEAAXXZ
; protected: virtual void __cdecl CTimerGenerator::NotifyStoppingThread(void) __ptr64
?NotifyStoppingThread@CTimerGenerator@@MEAAXXZ
; public: virtual int __cdecl CContainerControl::ObjectCreated(struct IUnknown * __ptr64) __ptr64
?ObjectCreated@CContainerControl@@UEAAHPEAUIUnknown@@@Z
; public: virtual void __cdecl CContainerControl::ObjectDestroyed(struct IUnknown * __ptr64) __ptr64
?ObjectDestroyed@CContainerControl@@UEAAXPEAUIUnknown@@@Z
; public: virtual int __cdecl CUnk::OnInitialize(void) __ptr64
?OnInitialize@CUnk@@UEAAHXZ
; public: int __cdecl CEventLog::Open(void) __ptr64
?Open@CEventLog@@QEAAHXZ
; public: int __cdecl Registry::Open(struct HKEY__ * __ptr64,unsigned short * __ptr64,unsigned long) __ptr64
?Open@Registry@@QEAAHPEAUHKEY__@@PEAGK@Z
; public: class CNtAcl * __ptr64 __cdecl CNtAcl::OrderAces(void) __ptr64
?OrderAces@CNtAcl@@QEAAPEAV1@XZ
; public: int __cdecl CAbstractQl1Parser::Parse(class CQl1ParseSink * __ptr64,int) __ptr64
?Parse@CAbstractQl1Parser@@QEAAHPEAVCQl1ParseSink@@H@Z
; public: int __cdecl CWQLScanner::Parse(void) __ptr64
?Parse@CWQLScanner@@QEAAHXZ
; public: int __cdecl QL1_Parser::Parse(struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64 * __ptr64) __ptr64
?Parse@QL1_Parser@@QEAAHPEAPEAUQL_LEVEL_1_RPN_EXPRESSION@@@Z
; protected: void __cdecl CDMTFParser::ParseAbsolute(unsigned short const * __ptr64) __ptr64
?ParseAbsolute@CDMTFParser@@IEAAXPEBG@Z
; protected: void __cdecl CDMTFParser::ParseDate(unsigned short const * __ptr64) __ptr64
?ParseDate@CDMTFParser@@IEAAXPEBG@Z
; protected: void __cdecl CDMTFParser::ParseInterval(unsigned short const * __ptr64) __ptr64
?ParseInterval@CDMTFParser@@IEAAXPEBG@Z
; protected: int __cdecl CDMTFParser::ParsePart(unsigned short const * __ptr64,int,int,int * __ptr64,int,int) __ptr64
?ParsePart@CDMTFParser@@IEAAHPEBGHHPEAHHH@Z
; public: void * __ptr64 __cdecl CFlexQueue::Peek(void) __ptr64
?Peek@CFlexQueue@@QEAAPEAXXZ
; private: unsigned short * __ptr64 __cdecl CTextTemplate::ProcessArray(struct tagVARIANT const & __ptr64,unsigned short * __ptr64) __ptr64
?ProcessArray@CTextTemplate@@AEAAPEAGAEBUtagVARIANT@@PEAG@Z
; private: int __cdecl CWQLScanner::Pushback(struct WSLexToken * __ptr64) __ptr64
?Pushback@CWQLScanner@@AEAAHPEAUWSLexToken@@@Z
; public: virtual long __cdecl CWbemCallSecurity::QueryBlanket(unsigned long * __ptr64,unsigned long * __ptr64,unsigned short * __ptr64 * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,void * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64
?QueryBlanket@CWbemCallSecurity@@UEAAJPEAK0PEAPEAG00PEAPEAX0@Z
; public: virtual long __cdecl CBuffer::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CBuffer@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CUnk::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CUnk@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CUnkInternal::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CUnkInternal@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CWbemCallSecurity::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CWbemCallSecurity@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: static unsigned long __cdecl CExecQueue::QueueUnblockedWaitForSingleObject(void * __ptr64,unsigned long)
?QueueUnblockedWaitForSingleObject@CExecQueue@@SAKPEAXK@Z
; public: static unsigned long __cdecl CExecQueue::QueueWaitForSingleObject(void * __ptr64,unsigned long)
?QueueWaitForSingleObject@CExecQueue@@SAKPEAXK@Z
; public: virtual long __cdecl CBuffer::Read(void * __ptr64,unsigned long,unsigned long * __ptr64) __ptr64
?Read@CBuffer@@UEAAJPEAXKPEAK@Z
; int __cdecl ReadI64(unsigned short const * __ptr64,__int64 & __ptr64 __ptr64)
?ReadI64@@YAHPEBGAEFA_J@Z
; public: long __cdecl CBuffer::ReadLPWSTR(unsigned short const * __ptr64 & __ptr64) __ptr64
?ReadLPWSTR@CBuffer@@QEAAJAEAPEBG@Z
; int __cdecl ReadUI64(unsigned short const * __ptr64,unsigned __int64 & __ptr64 __ptr64)
?ReadUI64@@YAHPEBGAEFA_K@Z
; public: virtual void * __ptr64 __cdecl CWin32DefaultArena::Realloc(void * __ptr64,unsigned __int64) __ptr64
?Realloc@CWin32DefaultArena@@UEAAPEAXPEAX_K@Z
; private: int __cdecl CWQLScanner::ReduceSql89Joins(void) __ptr64
?ReduceSql89Joins@CWQLScanner@@AEAAHXZ
; private: int __cdecl CWQLScanner::ReduceSql92Joins(void) __ptr64
?ReduceSql92Joins@CWQLScanner@@AEAAHXZ
; protected: static void __cdecl CExecQueue::Register(class CExecQueue::CThreadRecord * __ptr64)
?Register@CExecQueue@@KAXPEAVCThreadRecord@1@@Z
; void __cdecl RegisterDLL(struct HINSTANCE__ * __ptr64,struct _GUID,unsigned short * __ptr64,unsigned short * __ptr64,unsigned short * __ptr64)
?RegisterDLL@@YAXPEAUHINSTANCE__@@U_GUID@@PEAG22@Z
; long __cdecl RegisterDllAppid(struct HINSTANCE__ * __ptr64,struct _GUID,unsigned short * __ptr64,unsigned short * __ptr64,unsigned short * __ptr64,unsigned short * __ptr64)
?RegisterDllAppid@@YAJPEAUHINSTANCE__@@U_GUID@@PEAG222@Z
; public: virtual void __cdecl CBasicUnloadInstruction::Release(void) __ptr64
?Release@CBasicUnloadInstruction@@UEAAXXZ
; public: virtual unsigned long __cdecl CBuffer::Release(void) __ptr64
?Release@CBuffer@@UEAAKXZ
; public: virtual void __cdecl CContainerControl::Release(struct IUnknown * __ptr64) __ptr64
?Release@CContainerControl@@UEAAXPEAUIUnknown@@@Z
; public: void __cdecl CExecQueue::Release(void) __ptr64
?Release@CExecQueue@@QEAAXXZ
; public: virtual unsigned long __cdecl CUnk::Release(void) __ptr64
?Release@CUnk@@UEAAKXZ
; public: virtual unsigned long __cdecl CUnkInternal::Release(void) __ptr64
?Release@CUnkInternal@@UEAAKXZ
; public: virtual unsigned long __cdecl CWbemCallSecurity::Release(void) __ptr64
?Release@CWbemCallSecurity@@UEAAKXZ
; public: void __cdecl QL_LEVEL_1_RPN_EXPRESSION::Release(void) __ptr64
?Release@QL_LEVEL_1_RPN_EXPRESSION@@QEAAXXZ
; public: class CWbemInterval  __cdecl CWbemTime::RemainsUntil(class CWbemTime const & __ptr64)const  __ptr64
?RemainsUntil@CWbemTime@@QEBA?AVCWbemInterval@@AEBV1@@Z
; public: long __cdecl CInstructionQueue::Remove(class CInstructionTest * __ptr64,class CTimerInstruction * __ptr64 * __ptr64) __ptr64
?Remove@CInstructionQueue@@QEAAJPEAVCInstructionTest@@PEAPEAVCTimerInstruction@@@Z
; public: virtual long __cdecl CMinMaxLimitControl::Remove(unsigned long) __ptr64
?Remove@CMinMaxLimitControl@@UEAAJK@Z
; public: long __cdecl CTimerGenerator::Remove(class CInstructionTest * __ptr64) __ptr64
?Remove@CTimerGenerator@@QEAAJPEAVCInstructionTest@@@Z
; public: int __cdecl CFlexArray::RemoveAt(int) __ptr64
?RemoveAt@CFlexArray@@QEAAHH@Z
; public: int __cdecl CSafeArray::RemoveAt(int) __ptr64
?RemoveAt@CSafeArray@@QEAAHH@Z
; public: class CSmallArrayBlob * __ptr64 __cdecl CSmallArrayBlob::RemoveAt(int,void * __ptr64 * __ptr64) __ptr64
?RemoveAt@CSmallArrayBlob@@QEAAPEAV1@HPEAPEAX@Z
; public: int __cdecl CVarVector::RemoveAt(int) __ptr64
?RemoveAt@CVarVector@@QEAAHH@Z
; public: int __cdecl CWStringArray::RemoveAt(int) __ptr64
?RemoveAt@CWStringArray@@QEAAHH@Z
; public: virtual long __cdecl CLimitControl::RemoveMember(void) __ptr64
?RemoveMember@CLimitControl@@UEAAJXZ
; public: int __cdecl CWStringArray::ReplaceAt(int,unsigned short * __ptr64) __ptr64
?ReplaceAt@CWStringArray@@QEAAHHPEAG@Z
; public: static unsigned short * __ptr64 __cdecl QL1_Parser::ReplaceClassName(struct QL_LEVEL_1_RPN_EXPRESSION * __ptr64,unsigned short const * __ptr64)
?ReplaceClassName@QL1_Parser@@SAPEAGPEAUQL_LEVEL_1_RPN_EXPRESSION@@PEBG@Z
; public: int __cdecl CEventLog::Report(unsigned short,unsigned long,class CInsertionString,class CInsertionString,class CInsertionString,class CInsertionString,class CInsertionString,class CInsertionString,class CInsertionString,class CInsertionString,class CInsertionString,class CInsertionString) __ptr64
?Report@CEventLog@@QEAAHGKVCInsertionString@@000000000@Z
; public: bool __cdecl CFlexQueue::Requeue(void * __ptr64) __ptr64
?Requeue@CFlexQueue@@QEAA_NPEAX@Z
; public: long __cdecl CRegistryMinMaxLimitControl::Reread(void) __ptr64
?Reread@CRegistryMinMaxLimitControl@@QEAAJXZ
; public: virtual void __cdecl CUnloadInstruction::Reread(struct IWbemContext * __ptr64) __ptr64
?Reread@CUnloadInstruction@@UEAAXPEAUIWbemContext@@@Z
; public: void __cdecl CBuffer::Reset(void) __ptr64
?Reset@CBuffer@@QEAAXXZ
; public: void __cdecl CMRCIControl::Reset(void) __ptr64
?Reset@CMRCIControl@@QEAAXXZ
; protected: void __cdecl CDateTimeParser::ResetDate(int) __ptr64
?ResetDate@CDateTimeParser@@IEAAXH@Z
; protected: void __cdecl CDateTimeParser::ResetDateTime(int) __ptr64
?ResetDateTime@CDateTimeParser@@IEAAXH@Z
; protected: void __cdecl CDateTimeParser::ResetTime(int) __ptr64
?ResetTime@CDateTimeParser@@IEAAXH@Z
; public: int __cdecl CNtAcl::Resize(unsigned long) __ptr64
?Resize@CNtAcl@@QEAAHK@Z
; public: long __cdecl CHaltable::Resume(void) __ptr64
?Resume@CHaltable@@QEAAJXZ
; public: long __cdecl CHaltable::ResumeAll(void) __ptr64
?ResumeAll@CHaltable@@QEAAJXZ
; long __cdecl RetrieveSidFromCall(class CNtSid & __ptr64)
?RetrieveSidFromCall@@YAJAEAVCNtSid@@@Z
; private: long __cdecl CIdentitySecurity::RetrieveSidFromCall(class CNtSid & __ptr64) __ptr64
?RetrieveSidFromCall@CIdentitySecurity@@AEAAJAEAVCNtSid@@@Z
; long __cdecl RetrieveSidFromToken(void * __ptr64,class CNtSid & __ptr64)
?RetrieveSidFromToken@@YAJPEAXAEAVCNtSid@@@Z
; private: unsigned short * __ptr64 __cdecl CTextTemplate::ReturnEscapedReturns(unsigned short * __ptr64) __ptr64
?ReturnEscapedReturns@CTextTemplate@@AEAAPEAGPEAG@Z
; public: virtual long __cdecl CBuffer::Revert(void) __ptr64
?Revert@CBuffer@@UEAAJXZ
; public: virtual long __cdecl CWbemCallSecurity::RevertToSelf(void) __ptr64
?RevertToSelf@CWbemCallSecurity@@UEAAJXZ
; public: void __cdecl CTimerGenerator::ScheduleFreeUnusedLibraries(void) __ptr64
?ScheduleFreeUnusedLibraries@CTimerGenerator@@QEAAXXZ
; private: static unsigned long __cdecl CTimerGenerator::SchedulerThread(void * __ptr64)
?SchedulerThread@CTimerGenerator@@CAKPEAX@Z
; protected: int __cdecl CEventLog::SearchForRecord(class CEventLogRecord * __ptr64) __ptr64
?SearchForRecord@CEventLog@@IEAAHPEAVCEventLogRecord@@@Z
; protected: virtual class CExecRequest * __ptr64 __cdecl CExecQueue::SearchForSuitableRequest(class CExecQueue::CThreadRecord * __ptr64) __ptr64
?SearchForSuitableRequest@CExecQueue@@MEAAPEAVCExecRequest@@PEAVCThreadRecord@1@@Z
; public: virtual long __cdecl CBuffer::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER * __ptr64) __ptr64
?Seek@CBuffer@@UEAAJT_LARGE_INTEGER@@KPEAT_ULARGE_INTEGER@@@Z
; private: int __cdecl CWQLScanner::SelectList(void) __ptr64
?SelectList@CWQLScanner@@AEAAHXZ
; public: virtual bool __cdecl C9XAce::Serialize(unsigned char * __ptr64,unsigned __int64) __ptr64
?Serialize@C9XAce@@UEAA_NPEAE_K@Z
; public: virtual bool __cdecl CNtAce::Serialize(unsigned char * __ptr64,unsigned __int64) __ptr64
?Serialize@CNtAce@@UEAA_NPEAE_K@Z
; public: void __cdecl CWbemTime::Set100nss(__int64) __ptr64
?Set100nss@CWbemTime@@QEAAX_J@Z
; public: long __cdecl CTimerGenerator::Set(class CTimerInstruction * __ptr64,class CWbemTime) __ptr64
?Set@CTimerGenerator@@QEAAJPEAVCTimerInstruction@@VCWbemTime@@@Z
; public: virtual void __cdecl QL_LEVEL_1_RPN_EXPRESSION::SetAggregated(void) __ptr64
?SetAggregated@QL_LEVEL_1_RPN_EXPRESSION@@UEAAXXZ
; public: virtual void __cdecl QL_LEVEL_1_RPN_EXPRESSION::SetAggregationTolerance(struct _tag_WbemQl1Tolerance const & __ptr64) __ptr64
?SetAggregationTolerance@QL_LEVEL_1_RPN_EXPRESSION@@UEAAXAEBU_tag_WbemQl1Tolerance@@@Z
; public: void __cdecl CVar::SetAsNull(void) __ptr64
?SetAsNull@CVar@@QEAAXXZ
; public: void __cdecl CFlexArray::SetAt(int,void * __ptr64) __ptr64
?SetAt@CFlexArray@@QEAAXHPEAX@Z
; public: class CSmallArrayBlob * __ptr64 __cdecl CSmallArrayBlob::SetAt(int,void * __ptr64,void * __ptr64 * __ptr64) __ptr64
?SetAt@CSmallArrayBlob@@QEAAPEAV1@HPEAXPEAPEAX@Z
; public: int __cdecl CWStringArray::SetAt(int,unsigned short const * __ptr64) __ptr64
?SetAt@CWStringArray@@QEAAHHPEBG@Z
; public: int __cdecl CVar::SetBSTR(unsigned short * __ptr64) __ptr64
?SetBSTR@CVar@@QEAAHPEAG@Z
; public: int __cdecl CVar::SetBSTR(class auto_bstr) __ptr64
?SetBSTR@CVar@@QEAAHVauto_bstr@@@Z
; public: int __cdecl CSafeArray::SetBSTRAt(int,unsigned short * __ptr64) __ptr64
?SetBSTRAt@CSafeArray@@QEAAHHPEAG@Z
; public: int __cdecl Registry::SetBinary(unsigned short * __ptr64,unsigned char * __ptr64,unsigned long) __ptr64
?SetBinary@Registry@@QEAAHPEAGPEAEK@Z
; public: void __cdecl CVar::SetBlob(struct tagBLOB * __ptr64,int) __ptr64
?SetBlob@CVar@@QEAAXPEAUtagBLOB@@H@Z
; public: void __cdecl CVar::SetBool(short) __ptr64
?SetBool@CVar@@QEAAXF@Z
; public: int __cdecl CSafeArray::SetBoolAt(int,short) __ptr64
?SetBoolAt@CSafeArray@@QEAAHHF@Z
; public: void __cdecl CVar::SetByte(unsigned char) __ptr64
?SetByte@CVar@@QEAAXE@Z
; public: int __cdecl CSafeArray::SetByteAt(int,unsigned char) __ptr64
?SetByteAt@CSafeArray@@QEAAHHE@Z
; public: void __cdecl CVar::SetCanDelete(int) __ptr64
?SetCanDelete@CVar@@QEAAXH@Z
; public: void __cdecl CVar::SetChar(char) __ptr64
?SetChar@CVar@@QEAAXD@Z
; public: virtual void __cdecl QL_LEVEL_1_RPN_EXPRESSION::SetClassName(unsigned short const * __ptr64) __ptr64
?SetClassName@QL_LEVEL_1_RPN_EXPRESSION@@UEAAXPEBG@Z
; public: void __cdecl CVar::SetClsId(struct _GUID * __ptr64,int) __ptr64
?SetClsId@CVar@@QEAAXPEAU_GUID@@H@Z
; public: virtual void __cdecl QL_LEVEL_1_RPN_EXPRESSION::SetCountQuery(void) __ptr64
?SetCountQuery@QL_LEVEL_1_RPN_EXPRESSION@@UEAAXXZ
; public: int __cdecl CWbemTime::SetDMTF(unsigned short const * __ptr64) __ptr64
?SetDMTF@CWbemTime@@QEAAHPEBG@Z
; public: void __cdecl CVar::SetDWORD(unsigned long) __ptr64
?SetDWORD@CVar@@QEAAXK@Z
; public: int __cdecl Registry::SetDWORD(unsigned short * __ptr64,unsigned long) __ptr64
?SetDWORD@Registry@@QEAAHPEAGK@Z
; public: int __cdecl Registry::SetDWORDStr(unsigned short * __ptr64,unsigned long) __ptr64
?SetDWORDStr@Registry@@QEAAHPEAGK@Z
; public: int __cdecl CNtSecurityDescriptor::SetDacl(class CNtAcl * __ptr64) __ptr64
?SetDacl@CNtSecurityDescriptor@@QEAAHPEAVCNtAcl@@@Z
; public: long __cdecl CDatePart::SetDate(char const * __ptr64) __ptr64
?SetDate@CDatePart@@QEAAJPEBD@Z
; public: long __cdecl CDatePart::SetDate(unsigned short const * __ptr64) __ptr64
?SetDate@CDatePart@@QEAAJPEBG@Z
; public: int __cdecl CDateTimeParser::SetDateTime(unsigned short const * __ptr64) __ptr64
?SetDateTime@CDateTimeParser@@QEAAHPEBG@Z
; public: void __cdecl CSafeArray::SetDestructorPolicy(int) __ptr64
?SetDestructorPolicy@CSafeArray@@QEAAXH@Z
; public: void __cdecl CVar::SetDispatch(struct IDispatch * __ptr64) __ptr64
?SetDispatch@CVar@@QEAAXPEAUIDispatch@@@Z
; public: int __cdecl CSafeArray::SetDispatchAt(int,struct IDispatch * __ptr64) __ptr64
?SetDispatchAt@CSafeArray@@QEAAHHPEAUIDispatch@@@Z
; public: void __cdecl CVar::SetDouble(double) __ptr64
?SetDouble@CVar@@QEAAXN@Z
; public: int __cdecl CSafeArray::SetDoubleAt(int,double) __ptr64
?SetDoubleAt@CSafeArray@@QEAAHHN@Z
; public: void __cdecl CVar::SetEmbeddedObject(struct IUnknown * __ptr64) __ptr64
?SetEmbeddedObject@CVar@@QEAAXPEAUIUnknown@@@Z
; public: int __cdecl Registry::SetExpandStr(unsigned short * __ptr64,unsigned short * __ptr64) __ptr64
?SetExpandStr@Registry@@QEAAHPEAG0@Z
; public: void __cdecl CLike::SetExpression(unsigned short const * __ptr64,unsigned short) __ptr64
?SetExpression@CLike@@QEAAXPEBGG@Z
; public: static void __cdecl CStaticCritSec::SetFailure(void)
?SetFailure@CStaticCritSec@@SAXXZ
; public: void __cdecl CVar::SetFileTime(struct _FILETIME * __ptr64) __ptr64
?SetFileTime@CVar@@QEAAXPEAU_FILETIME@@@Z
; public: int __cdecl CWbemTime::SetFileTime(struct _FILETIME const & __ptr64) __ptr64
?SetFileTime@CWbemTime@@QEAAHAEBU_FILETIME@@@Z
; public: virtual void __cdecl C9XAce::SetFlags(long) __ptr64
?SetFlags@C9XAce@@UEAAXJ@Z
; public: virtual void __cdecl CNtAce::SetFlags(long) __ptr64
?SetFlags@CNtAce@@UEAAXJ@Z
; public: void __cdecl CVar::SetFloat(float) __ptr64
?SetFloat@CVar@@QEAAXM@Z
; public: int __cdecl CSafeArray::SetFloatAt(int,float) __ptr64
?SetFloatAt@CSafeArray@@QEAAHHM@Z
; public: int __cdecl CNtSecurityDescriptor::SetFromAbsoluteCopy(struct SNtAbsoluteSD * __ptr64) __ptr64
?SetFromAbsoluteCopy@CNtSecurityDescriptor@@QEAAHPEAUSNtAbsoluteSD@@@Z
; public: int __cdecl CNtSecurityDescriptor::SetGroup(class CNtSid * __ptr64) __ptr64
?SetGroup@CNtSecurityDescriptor@@QEAAHPEAVCNtSid@@@Z
; public: void __cdecl CSafeArray::SetGrowGranularity(int) __ptr64
?SetGrowGranularity@CSafeArray@@QEAAXH@Z
; public: void __cdecl CPropertyName::SetHandle(void * __ptr64) __ptr64
?SetHandle@CPropertyName@@QEAAXPEAX@Z
; public: void __cdecl CExecQueue::SetIdleTimeout(unsigned long) __ptr64
?SetIdleTimeout@CExecQueue@@QEAAXK@Z
; public: void __cdecl CBasicUnloadInstruction::SetInterval(class CWbemInterval & __ptr64) __ptr64
?SetInterval@CBasicUnloadInstruction@@QEAAXAEAVCWbemInterval@@@Z
; public: int __cdecl CVar::SetLPSTR(char * __ptr64,int) __ptr64
?SetLPSTR@CVar@@QEAAHPEADH@Z
; public: int __cdecl CVar::SetLPWSTR(unsigned short * __ptr64,int) __ptr64
?SetLPWSTR@CVar@@QEAAHPEAGH@Z
; public: void __cdecl CVar::SetLong(long) __ptr64
?SetLong@CVar@@QEAAXJ@Z
; public: int __cdecl CSafeArray::SetLongAt(int,long) __ptr64
?SetLongAt@CSafeArray@@QEAAHHJ@Z
; public: void __cdecl CMinMaxLimitControl::SetMax(unsigned long) __ptr64
?SetMax@CMinMaxLimitControl@@QEAAXK@Z
; public: void __cdecl CWbemInterval::SetMilliseconds(unsigned long) __ptr64
?SetMilliseconds@CWbemInterval@@QEAAXK@Z
; public: void __cdecl CMinMaxLimitControl::SetMin(unsigned long) __ptr64
?SetMin@CMinMaxLimitControl@@QEAAXK@Z
; public: int __cdecl Registry::SetMultiStr(unsigned short * __ptr64,unsigned short * __ptr64,unsigned long) __ptr64
?SetMultiStr@Registry@@QEAAHPEAG0K@Z
; public: void __cdecl CExecRequest::SetNext(class CExecRequest * __ptr64) __ptr64
?SetNext@CExecRequest@@QEAAXPEAV1@@Z
; int __cdecl SetObjectAccess2(void * __ptr64)
?SetObjectAccess2@@YAHPEAX@Z
; public: void __cdecl CExecQueue::SetOverflowIdleTimeout(unsigned long) __ptr64
?SetOverflowIdleTimeout@CExecQueue@@QEAAXK@Z
; public: int __cdecl CNtSecurityDescriptor::SetOwner(class CNtSid * __ptr64) __ptr64
?SetOwner@CNtSecurityDescriptor@@QEAAHPEAVCNtSid@@@Z
; public: int __cdecl CPersistentConfig::SetPersistentCfgValue(unsigned long,unsigned long) __ptr64
?SetPersistentCfgValue@CPersistentConfig@@QEAAHKK@Z
; public: void __cdecl CExecRequest::SetPriority(long) __ptr64
?SetPriority@CExecRequest@@QEAAXJ@Z
; public: void __cdecl CVar::SetRaw(int,void * __ptr64,int) __ptr64
?SetRaw@CVar@@QEAAXHPEAXH@Z
; public: void __cdecl CVarVector::SetRawArrayBinding(int) __ptr64
?SetRawArrayBinding@CVarVector@@QEAAXH@Z
; public: long __cdecl CVarVector::SetRawArrayData(void * __ptr64,int,int) __ptr64
?SetRawArrayData@CVarVector@@QEAAJPEAXHH@Z
; public: void __cdecl CSafeArray::SetRawArrayMaxElement(int) __ptr64
?SetRawArrayMaxElement@CSafeArray@@QEAAXH@Z
; public: int __cdecl CVarVector::SetRawArraySize(int) __ptr64
?SetRawArraySize@CVarVector@@QEAAHH@Z
; public: int __cdecl CSafeArray::SetRawData(void * __ptr64,int,int) __ptr64
?SetRawData@CSafeArray@@QEAAHPEAXHH@Z
; public: void __cdecl CExecQueue::SetRequestLimits(long,long,long) __ptr64
?SetRequestLimits@CExecQueue@@QEAAXJJJ@Z
; public: int __cdecl CNtSecurityDescriptor::SetSacl(class CNtAcl * __ptr64) __ptr64
?SetSacl@CNtSecurityDescriptor@@QEAAHPEAVCNtAcl@@@Z
; public: void __cdecl CVar::SetSafeArray(int,struct tagSAFEARRAY * __ptr64) __ptr64
?SetSafeArray@CVar@@QEAAXHPEAUtagSAFEARRAY@@@Z
; private: int __cdecl CSafeArray::SetScalarAt(int,union SA_ArrayScalar) __ptr64
?SetScalarAt@CSafeArray@@AEAAHHTSA_ArrayScalar@@@Z
; public: void __cdecl CVar::SetShort(short) __ptr64
?SetShort@CVar@@QEAAXF@Z
; public: int __cdecl CSafeArray::SetShortAt(int,short) __ptr64
?SetShortAt@CSafeArray@@QEAAHHF@Z
; public: long __cdecl CBuffer::SetSize(unsigned long) __ptr64
?SetSize@CBuffer@@QEAAJK@Z
; public: virtual long __cdecl CBuffer::SetSize(union _ULARGE_INTEGER) __ptr64
?SetSize@CBuffer@@UEAAJT_ULARGE_INTEGER@@@Z
; public: void __cdecl CFlexArray::SetSize(int) __ptr64
?SetSize@CFlexArray@@QEAAXH@Z
; public: void __cdecl CMinMaxLimitControl::SetSleepAtMax(unsigned long) __ptr64
?SetSleepAtMax@CMinMaxLimitControl@@QEAAXK@Z
; public: int __cdecl Registry::SetStr(unsigned short * __ptr64,unsigned short * __ptr64) __ptr64
?SetStr@Registry@@QEAAHPEAG0@Z
; public: int __cdecl CWbemTime::SetSystemTime(struct _SYSTEMTIME const & __ptr64) __ptr64
?SetSystemTime@CWbemTime@@QEAAHAEBU_SYSTEMTIME@@@Z
; public: void __cdecl CTextTemplate::SetTemplate(unsigned short const * __ptr64) __ptr64
?SetTemplate@CTextTemplate@@QEAAXPEBG@Z
; public: void __cdecl CExecQueue::SetThreadLimits(long,long,long) __ptr64
?SetThreadLimits@CExecQueue@@QEAAXJJJ@Z
; public: void __cdecl CUnloadInstruction::SetToDefault(void) __ptr64
?SetToDefault@CUnloadInstruction@@QEAAXXZ
; public: virtual void __cdecl QL_LEVEL_1_RPN_EXPRESSION::SetTolerance(struct _tag_WbemQl1Tolerance const & __ptr64) __ptr64
?SetTolerance@QL_LEVEL_1_RPN_EXPRESSION@@UEAAXAEBU_tag_WbemQl1Tolerance@@@Z
; public: void __cdecl CVar::SetUnknown(struct IUnknown * __ptr64) __ptr64
?SetUnknown@CVar@@QEAAXPEAUIUnknown@@@Z
; public: int __cdecl CSafeArray::SetUnknownAt(int,struct IUnknown * __ptr64) __ptr64
?SetUnknownAt@CSafeArray@@QEAAHHPEAUIUnknown@@@Z
; public: void __cdecl CVar::SetVarVector(class CVarVector * __ptr64,int) __ptr64
?SetVarVector@CVar@@QEAAXPEAVCVarVector@@H@Z
; public: int __cdecl CVar::SetVariant(struct tagVARIANT * __ptr64,int) __ptr64
?SetVariant@CVar@@QEAAHPEAUtagVARIANT@@H@Z
; public: int __cdecl CSafeArray::SetVariantAt(int,struct tagVARIANT * __ptr64) __ptr64
?SetVariantAt@CSafeArray@@QEAAHHPEAUtagVARIANT@@@Z
; public: void __cdecl CExecRequest::SetWhenDoneHandle(void * __ptr64) __ptr64
?SetWhenDoneHandle@CExecRequest@@QEAAXPEAX@Z
; public: void __cdecl CVar::SetWord(unsigned short) __ptr64
?SetWord@CVar@@QEAAXG@Z
; protected: class CSmallArrayBlob * __ptr64 __cdecl CSmallArrayBlob::Shrink(void) __ptr64
?Shrink@CSmallArrayBlob@@IEAAPEAV1@XZ
; protected: class CSmallArrayBlob * __ptr64 __cdecl CSmallArrayBlob::ShrinkIfNeeded(void) __ptr64
?ShrinkIfNeeded@CSmallArrayBlob@@IEAAPEAV1@XZ
; public: void __cdecl CExecQueue::Shutdown(void) __ptr64
?Shutdown@CExecQueue@@QEAAXXZ
; public: virtual long __cdecl CTimerGenerator::Shutdown(void) __ptr64
?Shutdown@CTimerGenerator@@UEAAJXZ
; protected: virtual void __cdecl CExecQueue::ShutdownThread(class CExecQueue::CThreadRecord * __ptr64) __ptr64
?ShutdownThread@CExecQueue@@MEAAXPEAVCThreadRecord@1@@Z
; protected: virtual void __cdecl CExecQueue::SitOutPenalty(long) __ptr64
?SitOutPenalty@CExecQueue@@MEAAXJ@Z
; public: int __cdecl CFlexArray::Size(void)const  __ptr64
?Size@CFlexArray@@QEBAHXZ
; public: int __cdecl CSafeArray::Size(void) __ptr64
?Size@CSafeArray@@QEAAHXZ
; public: int __cdecl CSmallArrayBlob::Size(void)const  __ptr64
?Size@CSmallArrayBlob@@QEBAHXZ
; public: int __cdecl CVarVector::Size(void) __ptr64
?Size@CVarVector@@QEAAHXZ
; public: int __cdecl CWStringArray::Size(void)const  __ptr64
?Size@CWStringArray@@QEBAHXZ
; public: void __cdecl CFlexArray::Sort(void) __ptr64
?Sort@CFlexArray@@QEAAXXZ
; public: void __cdecl CSmallArrayBlob::Sort(void) __ptr64
?Sort@CSmallArrayBlob@@QEAAXXZ
; public: void __cdecl CWStringArray::Sort(void) __ptr64
?Sort@CWStringArray@@QEAAXXZ
; public: virtual long __cdecl CBuffer::Stat(struct tagSTATSTG * __ptr64,unsigned long) __ptr64
?Stat@CBuffer@@UEAAJPEAUtagSTATSTG@@K@Z
; public: int __cdecl CSafeArray::Status(void) __ptr64
?Status@CSafeArray@@QEAAHXZ
; public: int __cdecl CVar::Status(void) __ptr64
?Status@CVar@@QEAAHXZ
; public: int __cdecl CVarVector::Status(void) __ptr64
?Status@CVarVector@@QEAAHXZ
; public: class WString & __ptr64 __cdecl WString::StripToToken(unsigned short,int) __ptr64
?StripToToken@WString@@QEAAAEAV1@GH@Z
; private: int __cdecl CWQLScanner::StripWhereClause(void) __ptr64
?StripWhereClause@CWQLScanner@@AEAAHXZ
; public: class WString & __ptr64 __cdecl WString::StripWs(int) __ptr64
?StripWs@WString@@QEAAAEAV1@H@Z
; public: void __cdecl CBasicUnloadInstruction::Terminate(void) __ptr64
?Terminate@CBasicUnloadInstruction@@QEAAXXZ
; long __cdecl TestDirExistAndCreateWithSDIfNotThere(unsigned short * __ptr64,unsigned short * __ptr64)
?TestDirExistAndCreateWithSDIfNotThere@@YAJPEAG0@Z
; protected: virtual void __cdecl CExecQueue::ThreadMain(class CExecQueue::CThreadRecord * __ptr64) __ptr64
?ThreadMain@CExecQueue@@MEAAXPEAVCThreadRecord@1@@Z
; long __cdecl Throttle(unsigned long,unsigned long,unsigned long,unsigned long,unsigned long)
?Throttle@@YAJKKKKK@Z
; public: void __cdecl CPersistentConfig::TidyUp(void) __ptr64
?TidyUp@CPersistentConfig@@QEAAXXZ
; protected: int __cdecl CDateTimeParser::TimeFormat1(unsigned short const * __ptr64,int) __ptr64
?TimeFormat1@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::TimeFormat2(unsigned short const * __ptr64,int) __ptr64
?TimeFormat2@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::TimeFormat3(unsigned short const * __ptr64,int) __ptr64
?TimeFormat3@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::TimeFormat4(unsigned short const * __ptr64,int) __ptr64
?TimeFormat4@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::TimeFormat5(unsigned short const * __ptr64,int) __ptr64
?TimeFormat5@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::TimeFormat6(unsigned short const * __ptr64,int) __ptr64
?TimeFormat6@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::TimeFormat7(unsigned short const * __ptr64,int) __ptr64
?TimeFormat7@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::TimeFormat8(unsigned short const * __ptr64,int) __ptr64
?TimeFormat8@CDateTimeParser@@IEAAHPEBGH@Z
; protected: int __cdecl CDateTimeParser::TimeFormat9(unsigned short const * __ptr64,int) __ptr64
?TimeFormat9@CDateTimeParser@@IEAAHPEBGH@Z
; protected: class CWbemInterval  __cdecl CInstructionQueue::TimeToWait(void) __ptr64
?TimeToWait@CInstructionQueue@@IEAA?AVCWbemInterval@@XZ
; public: int __cdecl CVar::ToSingleChar(void) __ptr64
?ToSingleChar@CVar@@QEAAHXZ
; public: int __cdecl CVarVector::ToSingleChar(void) __ptr64
?ToSingleChar@CVarVector@@QEAAHXZ
; public: int __cdecl CVar::ToUI4(void) __ptr64
?ToUI4@CVar@@QEAAHXZ
; public: int __cdecl CVarVector::ToUI4(void) __ptr64
?ToUI4@CVarVector@@QEAAHXZ
; protected: void __cdecl CInstructionQueue::TouchHead(void) __ptr64
?TouchHead@CInstructionQueue@@IEAAXXZ
; public: static void __cdecl MD5::Transform(void * __ptr64,unsigned int,unsigned char * __ptr64 const)
?Transform@MD5@@SAXPEAXIQEAE@Z
; protected: static unsigned long __cdecl CAbstractQl1Parser::TranslateIntrinsic(unsigned short const * __ptr64)
?TranslateIntrinsic@CAbstractQl1Parser@@KAKPEBG@Z
; public: void __cdecl CFlexArray::Trim(void) __ptr64
?Trim@CFlexArray@@QEAAXXZ
; public: int __cdecl CSafeArray::Trim(void) __ptr64
?Trim@CSafeArray@@QEAAHXZ
; public: void __cdecl CSmallArrayBlob::Trim(void) __ptr64
?Trim@CSmallArrayBlob@@QEAAXXZ
; public: class WString & __ptr64 __cdecl WString::TruncAtLToken(unsigned short) __ptr64
?TruncAtLToken@WString@@QEAAAEAV1@G@Z
; public: class WString & __ptr64 __cdecl WString::TruncAtRToken(unsigned short) __ptr64
?TruncAtRToken@WString@@QEAAAEAV1@G@Z
; public: static unsigned short * __ptr64 __cdecl CVar::TypeToText(int)
?TypeToText@CVar@@SAPEAGH@Z
; void __cdecl UnRegisterDLL(struct _GUID,unsigned short * __ptr64)
?UnRegisterDLL@@YAXU_GUID@@PEAG@Z
; public: long __cdecl CSafeArray::Unaccess(void) __ptr64
?Unaccess@CSafeArray@@QEAAJXZ
; public: long __cdecl CVarVector::UnaccessRawArray(void) __ptr64
?UnaccessRawArray@CVarVector@@QEAAJXZ
; public: void * __ptr64 * __ptr64 __cdecl CFlexArray::UnbindPtr(void) __ptr64
?UnbindPtr@CFlexArray@@QEAAPEAPEAXXZ
; public: unsigned short * __ptr64 __cdecl WString::UnbindPtr(void) __ptr64
?UnbindPtr@WString@@QEAAPEAGXZ
; protected: virtual unsigned long __cdecl CExecQueue::UnblockedWaitForSingleObject(void * __ptr64,unsigned long,class CExecQueue::CThreadRecord * __ptr64) __ptr64
?UnblockedWaitForSingleObject@CExecQueue@@MEAAKPEAXKPEAVCThreadRecord@1@@Z
; public: unsigned int __cdecl CMRCICompression::UncompressBuffer(unsigned char * __ptr64,unsigned long,unsigned char * __ptr64,unsigned long,enum CMRCICompression::CompressionLevel) __ptr64
?UncompressBuffer@CMRCICompression@@QEAAIPEAEK0KW4CompressionLevel@1@@Z
; public: int __cdecl CMRCICompression::UncompressFile(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?UncompressFile@CMRCICompression@@QEAAHPEBG0@Z
; protected: int __cdecl CMRCICompression::UncompressFileV1(int,int) __ptr64
?UncompressFileV1@CMRCICompression@@IEAAHHH@Z
; protected: virtual void __cdecl CExecQueue::UninitializeThread(void) __ptr64
?UninitializeThread@CExecQueue@@MEAAXXZ
; public: static void __cdecl CWStringArray::Union(class CWStringArray & __ptr64,class CWStringArray & __ptr64,class CWStringArray & __ptr64)
?Union@CWStringArray@@SAXAEAV1@00@Z
; public: void __cdecl CLockableFlexArray<class CStaticCritSec>::Unlock(void) __ptr64
?Unlock@?$CLockableFlexArray@VCStaticCritSec@@@@QEAAXXZ
; public: virtual long __cdecl CBuffer::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) __ptr64
?UnlockRegion@CBuffer@@UEAAJT_ULARGE_INTEGER@@0K@Z
; public: void * __ptr64 __cdecl CFlexQueue::Unqueue(void) __ptr64
?Unqueue@CFlexQueue@@QEAAPEAXXZ
; public: void __cdecl WString::Unquote(void) __ptr64
?Unquote@WString@@QEAAXXZ
; long __cdecl UnregisterDllAppid(struct _GUID)
?UnregisterDllAppid@@YAJU_GUID@@@Z
; public: static int __cdecl CWin32DefaultArena::ValidateMemSize(int)
?ValidateMemSize@CWin32DefaultArena@@SAHH@Z
; public: long __cdecl CInstructionQueue::WaitAndPeek(class CTimerInstruction * __ptr64 & __ptr64,class CWbemTime & __ptr64) __ptr64
?WaitAndPeek@CInstructionQueue@@QEAAJAEAPEAVCTimerInstruction@@AEAVCWbemTime@@@Z
; public: long __cdecl CHaltable::WaitForResumption(void) __ptr64
?WaitForResumption@CHaltable@@QEAAJXZ
; protected: virtual unsigned long __cdecl CExecQueue::WaitForSingleObjectWhileBusy(void * __ptr64,unsigned long,class CExecQueue::CThreadRecord * __ptr64) __ptr64
?WaitForSingleObjectWhileBusy@CExecQueue@@MEAAKPEAXKPEAVCThreadRecord@1@@Z
; int __cdecl WbemCreateDirectory(unsigned short const * __ptr64)
?WbemCreateDirectory@@YAHPEBG@Z
; int __cdecl WbemGetMachineShutdown(void)
?WbemGetMachineShutdown@@YAHXZ
; public: static void __cdecl CWin32DefaultArena::WbemHeapFree(void)
?WbemHeapFree@CWin32DefaultArena@@SAXXZ
; public: static int __cdecl CWin32DefaultArena::WbemHeapInitialize(void * __ptr64)
?WbemHeapInitialize@CWin32DefaultArena@@SAHPEAX@Z
; public: static void * __ptr64 __cdecl CWin32DefaultArena::WbemMemAlloc(unsigned __int64)
?WbemMemAlloc@CWin32DefaultArena@@SAPEAX_K@Z
; public: static int __cdecl CWin32DefaultArena::WbemMemFree(void * __ptr64)
?WbemMemFree@CWin32DefaultArena@@SAHPEAX@Z
; public: static void * __ptr64 __cdecl CWin32DefaultArena::WbemMemReAlloc(void * __ptr64,unsigned __int64)
?WbemMemReAlloc@CWin32DefaultArena@@SAPEAXPEAX_K@Z
; public: static unsigned __int64 __cdecl CWin32DefaultArena::WbemMemSize(void * __ptr64)
?WbemMemSize@CWin32DefaultArena@@SA_KPEAX@Z
; public: static int __cdecl CWin32DefaultArena::WbemOutOfMemory(void)
?WbemOutOfMemory@CWin32DefaultArena@@SAHXZ
; long __cdecl WbemSetDynamicCloaking(struct IUnknown * __ptr64,unsigned long,unsigned long)
?WbemSetDynamicCloaking@@YAJPEAUIUnknown@@KK@Z
; int __cdecl WbemSetMachineShutdown(int)
?WbemSetMachineShutdown@@YAHH@Z
; public: static unsigned short * __ptr64 __cdecl CWin32DefaultArena::WbemSysAllocString(unsigned short const * __ptr64)
?WbemSysAllocString@CWin32DefaultArena@@SAPEAGPEBG@Z
; public: static unsigned short * __ptr64 __cdecl CWin32DefaultArena::WbemSysAllocStringByteLen(char const * __ptr64,unsigned int)
?WbemSysAllocStringByteLen@CWin32DefaultArena@@SAPEAGPEBDI@Z
; public: static unsigned short * __ptr64 __cdecl CWin32DefaultArena::WbemSysAllocStringLen(unsigned short const * __ptr64,unsigned int)
?WbemSysAllocStringLen@CWin32DefaultArena@@SAPEAGPEBGI@Z
; public: static void __cdecl CWin32DefaultArena::WbemSysFreeString(unsigned short * __ptr64)
?WbemSysFreeString@CWin32DefaultArena@@SAXPEAG@Z
; public: static int __cdecl CWin32DefaultArena::WbemSysReAllocString(unsigned short * __ptr64 * __ptr64,unsigned short const * __ptr64)
?WbemSysReAllocString@CWin32DefaultArena@@SAHPEAPEAGPEBG@Z
; public: static int __cdecl CWin32DefaultArena::WbemSysReAllocStringLen(unsigned short * __ptr64 * __ptr64,unsigned short const * __ptr64,unsigned int)
?WbemSysReAllocStringLen@CWin32DefaultArena@@SAHPEAPEAGPEBGI@Z
; long __cdecl WbemVariantChangeType(struct tagVARIANT * __ptr64,struct tagVARIANT * __ptr64,unsigned short)
?WbemVariantChangeType@@YAJPEAUtagVARIANT@@0G@Z
; public: int __cdecl WString::WildcardTest(unsigned short const * __ptr64)const  __ptr64
?WildcardTest@WString@@QEBAHPEBG@Z
; int __cdecl WinPEKey(void)
?WinPEKey@@YAHXZ
; public: virtual long __cdecl CBuffer::Write(void const * __ptr64,unsigned long,unsigned long * __ptr64) __ptr64
?Write@CBuffer@@UEAAJPEBXKPEAK@Z
; public: long __cdecl CBuffer::WriteLPWSTR(unsigned short const * __ptr64) __ptr64
?WriteLPWSTR@CBuffer@@QEAAJPEBG@Z
; protected: static unsigned long __cdecl CExecQueue::_ThreadEntry(void * __ptr64)
?_ThreadEntry@CExecQueue@@KAKPEAX@Z
; protected: int __cdecl CAbstractQl1Parser::aggregate_by(void) __ptr64
?aggregate_by@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::aggregate_within(void) __ptr64
?aggregate_within@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::aggregation_params(void) __ptr64
?aggregation_params@CAbstractQl1Parser@@IEAAHXZ
; private: static int  CStaticCritSec::anyFailed_
?anyFailed_@CStaticCritSec@@0HA DATA
; public: static int __cdecl CStaticCritSec::anyFailure(void)
?anyFailure@CStaticCritSec@@SAHXZ
; int __cdecl bAreWeLocal(unsigned short * __ptr64)
?bAreWeLocal@@YAHPEAG@Z
; private: void __cdecl CBaseMrciCompression::charbuf(unsigned int) __ptr64
?charbuf@CBaseMrciCompression@@AEAAXI@Z
; protected: int __cdecl CAbstractQl1Parser::class_name(void) __ptr64
?class_name@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::comp_operator(void) __ptr64
?comp_operator@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::equiv_operator(void) __ptr64
?equiv_operator@CAbstractQl1Parser@@IEAAHXZ
; private: void __cdecl CBaseMrciCompression::expandstring(unsigned char * __ptr64 * __ptr64,unsigned int,unsigned int) __ptr64
?expandstring@CBaseMrciCompression@@AEAAXPEAPEAEII@Z
; protected: int __cdecl CAbstractQl1Parser::expr2(void) __ptr64
?expr2@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::expr(void) __ptr64
?expr@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::finalize(void) __ptr64
?finalize@CAbstractQl1Parser@@IEAAHXZ
; private: unsigned int __cdecl CBaseMrciCompression::getbit(void) __ptr64
?getbit@CBaseMrciCompression@@AEAAIXZ
; private: unsigned int __cdecl CBaseMrciCompression::getbits(unsigned int) __ptr64
?getbits@CBaseMrciCompression@@AEAAII@Z
; private: void __cdecl CBaseMrciCompression::inithash(void) __ptr64
?inithash@CBaseMrciCompression@@AEAAXXZ
; public: bool __cdecl CHaltable::isValid(void) __ptr64
?isValid@CHaltable@@QEAA_NXZ
; protected: int __cdecl CAbstractQl1Parser::is_operator(void) __ptr64
?is_operator@CAbstractQl1Parser@@IEAAHXZ
; int __cdecl isunialpha(unsigned short)
?isunialpha@@YAHG@Z
; int __cdecl isunialphanum(unsigned short)
?isunialphanum@@YAHG@Z
; protected: int __cdecl CAbstractQl1Parser::leading_ident_expr(void) __ptr64
?leading_ident_expr@CAbstractQl1Parser@@IEAAHXZ
; private: static class CDirectoryPath  CPersistentConfig::m_Directory
?m_Directory@CPersistentConfig@@0VCDirectoryPath@@A DATA
; private: void __cdecl CBaseMrciCompression::mrci1outsingle(unsigned int) __ptr64
?mrci1outsingle@CBaseMrciCompression@@AEAAXI@Z
; private: void __cdecl CBaseMrciCompression::mrci1outstring(unsigned int,unsigned int) __ptr64
?mrci1outstring@CBaseMrciCompression@@AEAAXII@Z
; private: void __cdecl CBaseMrciCompression::mrci2outsingle(unsigned int) __ptr64
?mrci2outsingle@CBaseMrciCompression@@AEAAXI@Z
; private: void __cdecl CBaseMrciCompression::mrci2outstring(unsigned int,unsigned int) __ptr64
?mrci2outstring@CBaseMrciCompression@@AEAAXII@Z
; unsigned long  mstatic_dwTlsIndex
?mstatic_dwTlsIndex@@3KA DATA
; protected: static long  CExecQueue::mstatic_lNumInits
?mstatic_lNumInits@CExecQueue@@1JA DATA
; protected: int __cdecl CAbstractQl1Parser::opt_aggregation(void) __ptr64
?opt_aggregation@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::opt_having(void) __ptr64
?opt_having@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::opt_where(void) __ptr64
?opt_where@CAbstractQl1Parser@@IEAAHXZ
; private: void __cdecl CBaseMrciCompression::outlength(unsigned int) __ptr64
?outlength@CBaseMrciCompression@@AEAAXI@Z
; protected: int __cdecl CAbstractQl1Parser::parse(int) __ptr64
?parse@CAbstractQl1Parser@@IEAAHH@Z
; protected: int __cdecl CAbstractQl1Parser::parse_property_name(class CPropertyName & __ptr64) __ptr64
?parse_property_name@CAbstractQl1Parser@@IEAAHAEAVCPropertyName@@@Z
; protected: int __cdecl CAbstractQl1Parser::prop_list(void) __ptr64
?prop_list@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::prop_list_2(void) __ptr64
?prop_list_2@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::property_name(void) __ptr64
?property_name@CAbstractQl1Parser@@IEAAHXZ
; private: void __cdecl CBaseMrciCompression::putbits(unsigned int,unsigned int) __ptr64
?putbits@CBaseMrciCompression@@AEAAXII@Z
; protected: int __cdecl CAbstractQl1Parser::rel_operator(void) __ptr64
?rel_operator@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::simple_expr(void) __ptr64
?simple_expr@CAbstractQl1Parser@@IEAAHXZ
; public: static class CWbemInterval  __cdecl CBasicUnloadInstruction::staticRead(struct IWbemServices * __ptr64,struct IWbemContext * __ptr64,unsigned short const * __ptr64)
?staticRead@CBasicUnloadInstruction@@SA?AVCWbemInterval@@PEAUIWbemServices@@PEAUIWbemContext@@PEBG@Z
; protected: int __cdecl CAbstractQl1Parser::term2(void) __ptr64
?term2@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::term(void) __ptr64
?term@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::tolerance(void) __ptr64
?tolerance@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::trailing_const_expr(void) __ptr64
?trailing_const_expr@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::trailing_ident_expr(void) __ptr64
?trailing_ident_expr@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::trailing_or_null(void) __ptr64
?trailing_or_null@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::trailing_prop_expr(void) __ptr64
?trailing_prop_expr@CAbstractQl1Parser@@IEAAHXZ
; protected: int __cdecl CAbstractQl1Parser::typed_constant(void) __ptr64
?typed_constant@CAbstractQl1Parser@@IEAAHXZ
