; 
; 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
