; 
; Exports of file framedyn.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY framedyn.dll
EXPORTS
; public: __cdecl CAutoEvent::CAutoEvent(void) __ptr64
??0CAutoEvent@@QEAA@XZ
; public: __cdecl CFrameworkQuery::CFrameworkQuery(class CFrameworkQuery const & __ptr64) __ptr64
??0CFrameworkQuery@@QEAA@AEBV0@@Z
; public: __cdecl CFrameworkQuery::CFrameworkQuery(void) __ptr64
??0CFrameworkQuery@@QEAA@XZ
; public: __cdecl CFrameworkQueryEx::CFrameworkQueryEx(class CFrameworkQueryEx const & __ptr64) __ptr64
??0CFrameworkQueryEx@@QEAA@AEBV0@@Z
; public: __cdecl CFrameworkQueryEx::CFrameworkQueryEx(void) __ptr64
??0CFrameworkQueryEx@@QEAA@XZ
; public: __cdecl CHPtrArray::CHPtrArray(void) __ptr64
??0CHPtrArray@@QEAA@XZ
; public: __cdecl CHString::CHString(class CHString const & __ptr64) __ptr64
??0CHString@@QEAA@AEBV0@@Z
; public: __cdecl CHString::CHString(unsigned short,int) __ptr64
??0CHString@@QEAA@GH@Z
; public: __cdecl CHString::CHString(char const * __ptr64) __ptr64
??0CHString@@QEAA@PEBD@Z
; public: __cdecl CHString::CHString(unsigned char const * __ptr64) __ptr64
??0CHString@@QEAA@PEBE@Z
; public: __cdecl CHString::CHString(unsigned short const * __ptr64) __ptr64
??0CHString@@QEAA@PEBG@Z
; public: __cdecl CHString::CHString(unsigned short const * __ptr64,int) __ptr64
??0CHString@@QEAA@PEBGH@Z
; public: __cdecl CHString::CHString(void) __ptr64
??0CHString@@QEAA@XZ
; public: __cdecl CHStringArray::CHStringArray(void) __ptr64
??0CHStringArray@@QEAA@XZ
; public: __cdecl CInstance::CInstance(class CInstance const & __ptr64) __ptr64
??0CInstance@@QEAA@AEBV0@@Z
; public: __cdecl CInstance::CInstance(struct IWbemClassObject * __ptr64,class MethodContext * __ptr64) __ptr64
??0CInstance@@QEAA@PEAUIWbemClassObject@@PEAVMethodContext@@@Z
; public: __cdecl CObjectPathParser::CObjectPathParser(enum ObjectParserFlags) __ptr64
??0CObjectPathParser@@QEAA@W4ObjectParserFlags@@@Z
; public: __cdecl CRegistry::CRegistry(class CRegistry const & __ptr64) __ptr64
??0CRegistry@@QEAA@AEBV0@@Z
; public: __cdecl CRegistry::CRegistry(void) __ptr64
??0CRegistry@@QEAA@XZ
; public: __cdecl CRegistrySearch::CRegistrySearch(class CRegistrySearch const & __ptr64) __ptr64
??0CRegistrySearch@@QEAA@AEBV0@@Z
; public: __cdecl CRegistrySearch::CRegistrySearch(void) __ptr64
??0CRegistrySearch@@QEAA@XZ
; public: __cdecl CThreadBase::CThreadBase(class CThreadBase const & __ptr64) __ptr64
??0CThreadBase@@QEAA@AEBV0@@Z
; public: __cdecl CThreadBase::CThreadBase(enum CThreadBase::THREAD_SAFETY_MECHANISM) __ptr64
??0CThreadBase@@QEAA@W4THREAD_SAFETY_MECHANISM@0@@Z
; public: __cdecl CWbemGlueFactory::CWbemGlueFactory(class CWbemGlueFactory const & __ptr64) __ptr64
??0CWbemGlueFactory@@QEAA@AEBV0@@Z
; public: __cdecl CWbemGlueFactory::CWbemGlueFactory(long * __ptr64) __ptr64
??0CWbemGlueFactory@@QEAA@PEAJ@Z
; public: __cdecl CWbemGlueFactory::CWbemGlueFactory(void) __ptr64
??0CWbemGlueFactory@@QEAA@XZ
; public: __cdecl CWbemProviderGlue::CWbemProviderGlue(class CWbemProviderGlue const & __ptr64) __ptr64
??0CWbemProviderGlue@@QEAA@AEBV0@@Z
; public: __cdecl CWbemProviderGlue::CWbemProviderGlue(long * __ptr64) __ptr64
??0CWbemProviderGlue@@QEAA@PEAJ@Z
; public: __cdecl CWbemProviderGlue::CWbemProviderGlue(void) __ptr64
??0CWbemProviderGlue@@QEAA@XZ
; public: __cdecl CWinMsgEvent::CWinMsgEvent(class CWinMsgEvent const & __ptr64) __ptr64
??0CWinMsgEvent@@QEAA@AEBV0@@Z
; public: __cdecl CWinMsgEvent::CWinMsgEvent(void) __ptr64
??0CWinMsgEvent@@QEAA@XZ
; public: __cdecl CreateMutexAsProcess::CreateMutexAsProcess(unsigned short const * __ptr64) __ptr64
??0CreateMutexAsProcess@@QEAA@PEBG@Z
; public: __cdecl KeyRef::KeyRef(unsigned short const * __ptr64,struct tagVARIANT const * __ptr64) __ptr64
??0KeyRef@@QEAA@PEBGPEBUtagVARIANT@@@Z
; public: __cdecl KeyRef::KeyRef(void) __ptr64
??0KeyRef@@QEAA@XZ
; public: __cdecl MethodContext::MethodContext(class MethodContext const & __ptr64) __ptr64
??0MethodContext@@QEAA@AEBV0@@Z
; public: __cdecl MethodContext::MethodContext(struct IWbemContext * __ptr64,class CWbemProviderGlue * __ptr64) __ptr64
??0MethodContext@@QEAA@PEAUIWbemContext@@PEAVCWbemProviderGlue@@@Z
; public: __cdecl ParsedObjectPath::ParsedObjectPath(void) __ptr64
??0ParsedObjectPath@@QEAA@XZ
; public: __cdecl Provider::Provider(class Provider const & __ptr64) __ptr64
??0Provider@@QEAA@AEBV0@@Z
; public: __cdecl Provider::Provider(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0Provider@@QEAA@PEBG0@Z
; public: __cdecl ProviderLog::ProviderLog(class ProviderLog const & __ptr64) __ptr64
??0ProviderLog@@QEAA@AEBV0@@Z
; public: __cdecl ProviderLog::ProviderLog(void) __ptr64
??0ProviderLog@@QEAA@XZ
; public: __cdecl WBEMTime::WBEMTime(struct _FILETIME const & __ptr64) __ptr64
??0WBEMTime@@QEAA@AEBU_FILETIME@@@Z
; public: __cdecl WBEMTime::WBEMTime(struct _SYSTEMTIME const & __ptr64) __ptr64
??0WBEMTime@@QEAA@AEBU_SYSTEMTIME@@@Z
; public: __cdecl WBEMTime::WBEMTime(struct tm const & __ptr64) __ptr64
??0WBEMTime@@QEAA@AEBUtm@@@Z
; public: __cdecl WBEMTime::WBEMTime(__int64 const & __ptr64) __ptr64
??0WBEMTime@@QEAA@AEB_J@Z
; public: __cdecl WBEMTime::WBEMTime(unsigned short * __ptr64 const) __ptr64
??0WBEMTime@@QEAA@QEAG@Z
; public: __cdecl WBEMTime::WBEMTime(void) __ptr64
??0WBEMTime@@QEAA@XZ
; public: __cdecl WBEMTimeSpan::WBEMTimeSpan(struct _FILETIME const & __ptr64) __ptr64
??0WBEMTimeSpan@@QEAA@AEBU_FILETIME@@@Z
; public: __cdecl WBEMTimeSpan::WBEMTimeSpan(__int64 const & __ptr64) __ptr64
??0WBEMTimeSpan@@QEAA@AEB_J@Z
; public: __cdecl WBEMTimeSpan::WBEMTimeSpan(int,int,int,int,int,int,int) __ptr64
??0WBEMTimeSpan@@QEAA@HHHHHHH@Z
; public: __cdecl WBEMTimeSpan::WBEMTimeSpan(unsigned short * __ptr64 const) __ptr64
??0WBEMTimeSpan@@QEAA@QEAG@Z
; public: __cdecl WBEMTimeSpan::WBEMTimeSpan(void) __ptr64
??0WBEMTimeSpan@@QEAA@XZ
; public: __cdecl std::_Lockit::_Lockit(void) __ptr64
??0_Lockit@std@@QEAA@XZ
; public: __cdecl CAutoEvent::~CAutoEvent(void) __ptr64
??1CAutoEvent@@QEAA@XZ
; public: __cdecl CFrameworkQuery::~CFrameworkQuery(void) __ptr64
??1CFrameworkQuery@@QEAA@XZ
; public: __cdecl CFrameworkQueryEx::~CFrameworkQueryEx(void) __ptr64
??1CFrameworkQueryEx@@QEAA@XZ
; public: __cdecl CHPtrArray::~CHPtrArray(void) __ptr64
??1CHPtrArray@@QEAA@XZ
; public: __cdecl CHString::~CHString(void) __ptr64
??1CHString@@QEAA@XZ
; public: __cdecl CHStringArray::~CHStringArray(void) __ptr64
??1CHStringArray@@QEAA@XZ
; public: virtual __cdecl CInstance::~CInstance(void) __ptr64
??1CInstance@@UEAA@XZ
; public: __cdecl CObjectPathParser::~CObjectPathParser(void) __ptr64
??1CObjectPathParser@@QEAA@XZ
; public: __cdecl CRegistry::~CRegistry(void) __ptr64
??1CRegistry@@QEAA@XZ
; public: __cdecl CRegistrySearch::~CRegistrySearch(void) __ptr64
??1CRegistrySearch@@QEAA@XZ
; public: virtual __cdecl CThreadBase::~CThreadBase(void) __ptr64
??1CThreadBase@@UEAA@XZ
; public: __cdecl CWbemGlueFactory::~CWbemGlueFactory(void) __ptr64
??1CWbemGlueFactory@@QEAA@XZ
; public: __cdecl CWbemProviderGlue::~CWbemProviderGlue(void) __ptr64
??1CWbemProviderGlue@@QEAA@XZ
; public: __cdecl CWinMsgEvent::~CWinMsgEvent(void) __ptr64
??1CWinMsgEvent@@QEAA@XZ
; public: __cdecl CreateMutexAsProcess::~CreateMutexAsProcess(void) __ptr64
??1CreateMutexAsProcess@@QEAA@XZ
; public: __cdecl KeyRef::~KeyRef(void) __ptr64
??1KeyRef@@QEAA@XZ
; public: virtual __cdecl MethodContext::~MethodContext(void) __ptr64
??1MethodContext@@UEAA@XZ
; public: __cdecl ParsedObjectPath::~ParsedObjectPath(void) __ptr64
??1ParsedObjectPath@@QEAA@XZ
; public: virtual __cdecl Provider::~Provider(void) __ptr64
??1Provider@@UEAA@XZ
; public: virtual __cdecl ProviderLog::~ProviderLog(void) __ptr64
??1ProviderLog@@UEAA@XZ
; public: __cdecl std::_Lockit::~_Lockit(void) __ptr64
??1_Lockit@std@@QEAA@XZ
; public: class CAutoEvent & __ptr64 __cdecl CAutoEvent::operator=(class CAutoEvent const & __ptr64) __ptr64
??4CAutoEvent@@QEAAAEAV0@AEBV0@@Z
; public: class CFrameworkQuery & __ptr64 __cdecl CFrameworkQuery::operator=(class CFrameworkQuery const & __ptr64) __ptr64
??4CFrameworkQuery@@QEAAAEAV0@AEBV0@@Z
; public: class CFrameworkQueryEx & __ptr64 __cdecl CFrameworkQueryEx::operator=(class CFrameworkQueryEx const & __ptr64) __ptr64
??4CFrameworkQueryEx@@QEAAAEAV0@AEBV0@@Z
; public: class CHPtrArray & __ptr64 __cdecl CHPtrArray::operator=(class CHPtrArray const & __ptr64) __ptr64
??4CHPtrArray@@QEAAAEAV0@AEBV0@@Z
; public: class CHString const & __ptr64 __cdecl CHString::operator=(class CHString const & __ptr64) __ptr64
??4CHString@@QEAAAEBV0@AEBV0@@Z
; public: class CHString const & __ptr64 __cdecl CHString::operator=(char) __ptr64
??4CHString@@QEAAAEBV0@D@Z
; public: class CHString const & __ptr64 __cdecl CHString::operator=(unsigned short) __ptr64
??4CHString@@QEAAAEBV0@G@Z
; public: class CHString const & __ptr64 __cdecl CHString::operator=(class CHString * __ptr64) __ptr64
??4CHString@@QEAAAEBV0@PEAV0@@Z
; public: class CHString const & __ptr64 __cdecl CHString::operator=(char const * __ptr64) __ptr64
??4CHString@@QEAAAEBV0@PEBD@Z
; public: class CHString const & __ptr64 __cdecl CHString::operator=(unsigned char const * __ptr64) __ptr64
??4CHString@@QEAAAEBV0@PEBE@Z
; public: class CHString const & __ptr64 __cdecl CHString::operator=(unsigned short const * __ptr64) __ptr64
??4CHString@@QEAAAEBV0@PEBG@Z
; public: class CHStringArray & __ptr64 __cdecl CHStringArray::operator=(class CHStringArray const & __ptr64) __ptr64
??4CHStringArray@@QEAAAEAV0@AEBV0@@Z
; public: class CInstance & __ptr64 __cdecl CInstance::operator=(class CInstance const & __ptr64) __ptr64
??4CInstance@@QEAAAEAV0@AEBV0@@Z
; public: class CObjectPathParser & __ptr64 __cdecl CObjectPathParser::operator=(class CObjectPathParser const & __ptr64) __ptr64
??4CObjectPathParser@@QEAAAEAV0@AEBV0@@Z
; public: class CRegistry & __ptr64 __cdecl CRegistry::operator=(class CRegistry const & __ptr64) __ptr64
??4CRegistry@@QEAAAEAV0@AEBV0@@Z
; public: class CRegistrySearch & __ptr64 __cdecl CRegistrySearch::operator=(class CRegistrySearch const & __ptr64) __ptr64
??4CRegistrySearch@@QEAAAEAV0@AEBV0@@Z
; public: class CThreadBase & __ptr64 __cdecl CThreadBase::operator=(class CThreadBase const & __ptr64) __ptr64
??4CThreadBase@@QEAAAEAV0@AEBV0@@Z
; public: class CWbemGlueFactory & __ptr64 __cdecl CWbemGlueFactory::operator=(class CWbemGlueFactory const & __ptr64) __ptr64
??4CWbemGlueFactory@@QEAAAEAV0@AEBV0@@Z
; public: class CWbemProviderGlue & __ptr64 __cdecl CWbemProviderGlue::operator=(class CWbemProviderGlue const & __ptr64) __ptr64
??4CWbemProviderGlue@@QEAAAEAV0@AEBV0@@Z
; public: class CWinMsgEvent & __ptr64 __cdecl CWinMsgEvent::operator=(class CWinMsgEvent const & __ptr64) __ptr64
??4CWinMsgEvent@@QEAAAEAV0@AEBV0@@Z
; public: class CreateMutexAsProcess & __ptr64 __cdecl CreateMutexAsProcess::operator=(class CreateMutexAsProcess const & __ptr64) __ptr64
??4CreateMutexAsProcess@@QEAAAEAV0@AEBV0@@Z
; public: struct KeyRef & __ptr64 __cdecl KeyRef::operator=(struct KeyRef const & __ptr64) __ptr64
??4KeyRef@@QEAAAEAU0@AEBU0@@Z
; public: class MethodContext & __ptr64 __cdecl MethodContext::operator=(class MethodContext const & __ptr64) __ptr64
??4MethodContext@@QEAAAEAV0@AEBV0@@Z
; public: struct ParsedObjectPath & __ptr64 __cdecl ParsedObjectPath::operator=(struct ParsedObjectPath const & __ptr64) __ptr64
??4ParsedObjectPath@@QEAAAEAU0@AEBU0@@Z
; public: class Provider & __ptr64 __cdecl Provider::operator=(class Provider const & __ptr64) __ptr64
??4Provider@@QEAAAEAV0@AEBV0@@Z
; public: class ProviderLog & __ptr64 __cdecl ProviderLog::operator=(class ProviderLog const & __ptr64) __ptr64
??4ProviderLog@@QEAAAEAV0@AEBV0@@Z
; public: class WBEMTime & __ptr64 __cdecl WBEMTime::operator=(class WBEMTime const & __ptr64) __ptr64
??4WBEMTime@@QEAAAEAV0@AEBV0@@Z
; public: class WBEMTime const & __ptr64 __cdecl WBEMTime::operator=(struct _FILETIME const & __ptr64) __ptr64
??4WBEMTime@@QEAAAEBV0@AEBU_FILETIME@@@Z
; public: class WBEMTime const & __ptr64 __cdecl WBEMTime::operator=(struct _SYSTEMTIME const & __ptr64) __ptr64
??4WBEMTime@@QEAAAEBV0@AEBU_SYSTEMTIME@@@Z
; public: class WBEMTime const & __ptr64 __cdecl WBEMTime::operator=(struct tm const & __ptr64) __ptr64
??4WBEMTime@@QEAAAEBV0@AEBUtm@@@Z
; public: class WBEMTime const & __ptr64 __cdecl WBEMTime::operator=(__int64 const & __ptr64) __ptr64
??4WBEMTime@@QEAAAEBV0@AEB_J@Z
; public: class WBEMTime const & __ptr64 __cdecl WBEMTime::operator=(unsigned short * __ptr64 const) __ptr64
??4WBEMTime@@QEAAAEBV0@QEAG@Z
; public: class WBEMTimeSpan & __ptr64 __cdecl WBEMTimeSpan::operator=(class WBEMTimeSpan const & __ptr64) __ptr64
??4WBEMTimeSpan@@QEAAAEAV0@AEBV0@@Z
; public: class WBEMTimeSpan const & __ptr64 __cdecl WBEMTimeSpan::operator=(struct _FILETIME const & __ptr64) __ptr64
??4WBEMTimeSpan@@QEAAAEBV0@AEBU_FILETIME@@@Z
; public: class WBEMTimeSpan const & __ptr64 __cdecl WBEMTimeSpan::operator=(__int64 const & __ptr64) __ptr64
??4WBEMTimeSpan@@QEAAAEBV0@AEB_J@Z
; public: class WBEMTimeSpan const & __ptr64 __cdecl WBEMTimeSpan::operator=(unsigned short * __ptr64 const) __ptr64
??4WBEMTimeSpan@@QEAAAEBV0@QEAG@Z
; public: int __cdecl WBEMTime::operator==(class WBEMTime const & __ptr64)const  __ptr64
??8WBEMTime@@QEBAHAEBV0@@Z
; public: int __cdecl WBEMTimeSpan::operator==(class WBEMTimeSpan const & __ptr64)const  __ptr64
??8WBEMTimeSpan@@QEBAHAEBV0@@Z
; public: int __cdecl WBEMTime::operator!=(class WBEMTime const & __ptr64)const  __ptr64
??9WBEMTime@@QEBAHAEBV0@@Z
; public: int __cdecl WBEMTimeSpan::operator!=(class WBEMTimeSpan const & __ptr64)const  __ptr64
??9WBEMTimeSpan@@QEBAHAEBV0@@Z
; public: void * __ptr64 & __ptr64 __cdecl CHPtrArray::operator[](int) __ptr64
??ACHPtrArray@@QEAAAEAPEAXH@Z
; public: void * __ptr64 __cdecl CHPtrArray::operator[](int)const  __ptr64
??ACHPtrArray@@QEBAPEAXH@Z
; public: unsigned short __cdecl CHString::operator[](int)const  __ptr64
??ACHString@@QEBAGH@Z
; public: class CHString & __ptr64 __cdecl CHStringArray::operator[](int) __ptr64
??ACHStringArray@@QEAAAEAVCHString@@H@Z
; public: class CHString  __cdecl CHStringArray::operator[](int)const  __ptr64
??ACHStringArray@@QEBA?AVCHString@@H@Z
; public: __cdecl CHString::operator unsigned short const * __ptr64(void)const  __ptr64
??BCHString@@QEBAPEBGXZ
; public: class WBEMTimeSpan  __cdecl WBEMTime::operator-(class WBEMTime const & __ptr64) __ptr64
??GWBEMTime@@QEAA?AVWBEMTimeSpan@@AEBV0@@Z
; public: class WBEMTime  __cdecl WBEMTime::operator-(class WBEMTimeSpan const & __ptr64)const  __ptr64
??GWBEMTime@@QEBA?AV0@AEBVWBEMTimeSpan@@@Z
; public: class WBEMTimeSpan  __cdecl WBEMTimeSpan::operator-(class WBEMTimeSpan const & __ptr64)const  __ptr64
??GWBEMTimeSpan@@QEBA?AV0@AEBV0@@Z
; class CHString  __cdecl operator+(class CHString const & __ptr64,class CHString const & __ptr64)
??H@YA?AVCHString@@AEBV0@0@Z
; class CHString  __cdecl operator+(class CHString const & __ptr64,unsigned short)
??H@YA?AVCHString@@AEBV0@G@Z
; class CHString  __cdecl operator+(class CHString const & __ptr64,unsigned short const * __ptr64)
??H@YA?AVCHString@@AEBV0@PEBG@Z
; class CHString  __cdecl operator+(unsigned short,class CHString const & __ptr64)
??H@YA?AVCHString@@GAEBV0@@Z
; class CHString  __cdecl operator+(unsigned short const * __ptr64,class CHString const & __ptr64)
??H@YA?AVCHString@@PEBGAEBV0@@Z
; public: class WBEMTime  __cdecl WBEMTime::operator+(class WBEMTimeSpan const & __ptr64)const  __ptr64
??HWBEMTime@@QEBA?AV0@AEBVWBEMTimeSpan@@@Z
; public: class WBEMTimeSpan  __cdecl WBEMTimeSpan::operator+(class WBEMTimeSpan const & __ptr64)const  __ptr64
??HWBEMTimeSpan@@QEBA?AV0@AEBV0@@Z
; public: int __cdecl WBEMTime::operator<(class WBEMTime const & __ptr64)const  __ptr64
??MWBEMTime@@QEBAHAEBV0@@Z
; public: int __cdecl WBEMTimeSpan::operator<(class WBEMTimeSpan const & __ptr64)const  __ptr64
??MWBEMTimeSpan@@QEBAHAEBV0@@Z
; public: int __cdecl WBEMTime::operator<=(class WBEMTime const & __ptr64)const  __ptr64
??NWBEMTime@@QEBAHAEBV0@@Z
; public: int __cdecl WBEMTimeSpan::operator<=(class WBEMTimeSpan const & __ptr64)const  __ptr64
??NWBEMTimeSpan@@QEBAHAEBV0@@Z
; public: int __cdecl WBEMTime::operator>(class WBEMTime const & __ptr64)const  __ptr64
??OWBEMTime@@QEBAHAEBV0@@Z
; public: int __cdecl WBEMTimeSpan::operator>(class WBEMTimeSpan const & __ptr64)const  __ptr64
??OWBEMTimeSpan@@QEBAHAEBV0@@Z
; public: int __cdecl WBEMTime::operator>=(class WBEMTime const & __ptr64)const  __ptr64
??PWBEMTime@@QEBAHAEBV0@@Z
; public: int __cdecl WBEMTimeSpan::operator>=(class WBEMTimeSpan const & __ptr64)const  __ptr64
??PWBEMTimeSpan@@QEBAHAEBV0@@Z
; public: class CHString const & __ptr64 __cdecl CHString::operator+=(class CHString const & __ptr64) __ptr64
??YCHString@@QEAAAEBV0@AEBV0@@Z
; public: class CHString const & __ptr64 __cdecl CHString::operator+=(char) __ptr64
??YCHString@@QEAAAEBV0@D@Z
; public: class CHString const & __ptr64 __cdecl CHString::operator+=(unsigned short) __ptr64
??YCHString@@QEAAAEBV0@G@Z
; public: class CHString const & __ptr64 __cdecl CHString::operator+=(unsigned short const * __ptr64) __ptr64
??YCHString@@QEAAAEBV0@PEBG@Z
; public: class WBEMTime const & __ptr64 __cdecl WBEMTime::operator+=(class WBEMTimeSpan const & __ptr64) __ptr64
??YWBEMTime@@QEAAAEBV0@AEBVWBEMTimeSpan@@@Z
; public: class WBEMTimeSpan const & __ptr64 __cdecl WBEMTimeSpan::operator+=(class WBEMTimeSpan const & __ptr64) __ptr64
??YWBEMTimeSpan@@QEAAAEBV0@AEBV0@@Z
; public: class WBEMTime const & __ptr64 __cdecl WBEMTime::operator-=(class WBEMTimeSpan const & __ptr64) __ptr64
??ZWBEMTime@@QEAAAEBV0@AEBVWBEMTimeSpan@@@Z
; public: class WBEMTimeSpan const & __ptr64 __cdecl WBEMTimeSpan::operator-=(class WBEMTimeSpan const & __ptr64) __ptr64
??ZWBEMTimeSpan@@QEAAAEBV0@AEBV0@@Z
; const  CFrameworkQueryEx::`vftable'
??_7CFrameworkQueryEx@@6B@
; const  CInstance::`vftable'
??_7CInstance@@6B@
; const  CThreadBase::`vftable'
??_7CThreadBase@@6B@
; const  CWbemGlueFactory::`vftable'
??_7CWbemGlueFactory@@6B@
; const  CWbemProviderGlue::`vftable'{for `IWbemProviderInit'}
??_7CWbemProviderGlue@@6BIWbemProviderInit@@@
; const  CWbemProviderGlue::`vftable'{for `IWbemServices'}
??_7CWbemProviderGlue@@6BIWbemServices@@@
; const  CWinMsgEvent::`vftable'
??_7CWinMsgEvent@@6B@
; const  MethodContext::`vftable'
??_7MethodContext@@6B@
; const  Provider::`vftable'
??_7Provider@@6B@
; const  ProviderLog::`vftable'
??_7ProviderLog@@6B@
; public: void __cdecl CObjectPathParser::`default constructor closure'(void) __ptr64
??_FCObjectPathParser@@QEAAXXZ
; public: void __cdecl CThreadBase::`default constructor closure'(void) __ptr64
??_FCThreadBase@@QEAAXXZ
; public: int __cdecl CHPtrArray::Add(void * __ptr64) __ptr64
?Add@CHPtrArray@@QEAAHPEAX@Z
; public: int __cdecl CHStringArray::Add(unsigned short const * __ptr64) __ptr64
?Add@CHStringArray@@QEAAHPEBG@Z
; private: void __cdecl CWbemProviderGlue::AddFlushPtr(void * __ptr64) __ptr64
?AddFlushPtr@CWbemProviderGlue@@AEAAXPEAX@Z
; public: int __cdecl ParsedObjectPath::AddKeyRef(struct KeyRef * __ptr64) __ptr64
?AddKeyRef@ParsedObjectPath@@QEAAHPEAUKeyRef@@@Z
; public: int __cdecl ParsedObjectPath::AddKeyRef(unsigned short const * __ptr64,struct tagVARIANT const * __ptr64) __ptr64
?AddKeyRef@ParsedObjectPath@@QEAAHPEBGPEBUtagVARIANT@@@Z
; public: int __cdecl ParsedObjectPath::AddKeyRefEx(unsigned short const * __ptr64,struct tagVARIANT const * __ptr64) __ptr64
?AddKeyRefEx@ParsedObjectPath@@QEAAHPEBGPEBUtagVARIANT@@@Z
; public: int __cdecl ParsedObjectPath::AddNamespace(unsigned short const * __ptr64) __ptr64
?AddNamespace@ParsedObjectPath@@QEAAHPEBG@Z
; private: static class Provider * __ptr64 __cdecl CWbemProviderGlue::AddProviderToMap(unsigned short const * __ptr64,unsigned short const * __ptr64,class Provider * __ptr64)
?AddProviderToMap@CWbemProviderGlue@@CAPEAVProvider@@PEBG0PEAV2@@Z
; public: long __cdecl CInstance::AddRef(void) __ptr64
?AddRef@CInstance@@QEAAJXZ
; public: long __cdecl CThreadBase::AddRef(void) __ptr64
?AddRef@CThreadBase@@QEAAJXZ
; public: virtual unsigned long __cdecl CWbemGlueFactory::AddRef(void) __ptr64
?AddRef@CWbemGlueFactory@@UEAAKXZ
; public: virtual unsigned long __cdecl CWbemProviderGlue::AddRef(void) __ptr64
?AddRef@CWbemProviderGlue@@UEAAKXZ
; public: long __cdecl MethodContext::AddRef(void) __ptr64
?AddRef@MethodContext@@QEAAJXZ
; protected: static void __cdecl CWbemProviderGlue::AddToFactoryMap(class CWbemGlueFactory const * __ptr64,long * __ptr64)
?AddToFactoryMap@CWbemProviderGlue@@KAXPEBVCWbemGlueFactory@@PEAJ@Z
; public: bool __cdecl CFrameworkQuery::AllPropertiesAreRequired(void) __ptr64
?AllPropertiesAreRequired@CFrameworkQuery@@QEAA_NXZ
; protected: void __cdecl CHString::AllocBeforeWrite(int) __ptr64
?AllocBeforeWrite@CHString@@IEAAXH@Z
; protected: void __cdecl CHString::AllocBuffer(int) __ptr64
?AllocBuffer@CHString@@IEAAXH@Z
; protected: void __cdecl CHString::AllocCopy(class CHString & __ptr64,int,int,int)const  __ptr64
?AllocCopy@CHString@@IEBAXAEAV1@HHH@Z
; public: unsigned short * __ptr64 __cdecl CHString::AllocSysString(void)const  __ptr64
?AllocSysString@CHString@@QEBAPEAGXZ
; public: int __cdecl CHPtrArray::Append(class CHPtrArray const & __ptr64) __ptr64
?Append@CHPtrArray@@QEAAHAEBV1@@Z
; public: int __cdecl CHStringArray::Append(class CHStringArray const & __ptr64) __ptr64
?Append@CHStringArray@@QEAAHAEBV1@@Z
; protected: void __cdecl CHString::AssignCopy(int,unsigned short const * __ptr64) __ptr64
?AssignCopy@CHString@@IEAAXHPEBG@Z
; public: int __cdecl CThreadBase::BeginRead(unsigned long) __ptr64
?BeginRead@CThreadBase@@QEAAHK@Z
; public: int __cdecl CThreadBase::BeginWrite(unsigned long) __ptr64
?BeginWrite@CThreadBase@@QEAAHK@Z
; public: virtual long __cdecl CWbemProviderGlue::CancelAsyncCall(struct IWbemObjectSink * __ptr64) __ptr64
?CancelAsyncCall@CWbemProviderGlue@@UEAAJPEAUIWbemObjectSink@@@Z
; public: virtual long __cdecl CWbemProviderGlue::CancelAsyncRequest(long) __ptr64
?CancelAsyncRequest@CWbemProviderGlue@@UEAAJJ@Z
; private: void __cdecl CRegistrySearch::CheckAndAddToList(class CRegistry * __ptr64,class CHString,class CHString,class CHPtrArray & __ptr64,class CHString,class CHString,int) __ptr64
?CheckAndAddToList@CRegistrySearch@@AEAAXPEAVCRegistry@@VCHString@@1AEAVCHPtrArray@@11H@Z
; private: void __cdecl ProviderLog::CheckFileSize(union _LARGE_INTEGER & __ptr64,class CHString const & __ptr64) __ptr64
?CheckFileSize@ProviderLog@@AEAAXAEAT_LARGE_INTEGER@@AEBVCHString@@@Z
; private: static long __cdecl CWbemProviderGlue::CheckImpersonationLevel(void)
?CheckImpersonationLevel@CWbemProviderGlue@@CAJXZ
; public: void __cdecl WBEMTime::Clear(void) __ptr64
?Clear@WBEMTime@@QEAAXXZ
; public: void __cdecl WBEMTimeSpan::Clear(void) __ptr64
?Clear@WBEMTimeSpan@@QEAAXXZ
; public: void __cdecl ParsedObjectPath::ClearKeys(void) __ptr64
?ClearKeys@ParsedObjectPath@@QEAAXXZ
; public: void __cdecl CRegistry::Close(void) __ptr64
?Close@CRegistry@@QEAAXXZ
; private: void __cdecl CRegistry::CloseSubKey(void) __ptr64
?CloseSubKey@CRegistry@@AEAAXXZ
; public: int __cdecl CHString::Collate(unsigned short const * __ptr64)const  __ptr64
?Collate@CHString@@QEBAHPEBG@Z
; public: long __cdecl CInstance::Commit(void) __ptr64
?Commit@CInstance@@QEAAJXZ
; protected: long __cdecl Provider::Commit(class CInstance * __ptr64,bool) __ptr64
?Commit@Provider@@IEAAJPEAVCInstance@@_N@Z
; public: int __cdecl CHString::Compare(unsigned short const * __ptr64)const  __ptr64
?Compare@CHString@@QEBAHPEBG@Z
; public: int __cdecl CHString::CompareNoCase(unsigned short const * __ptr64)const  __ptr64
?CompareNoCase@CHString@@QEBAHPEBG@Z
; protected: void __cdecl CHString::ConcatCopy(int,unsigned short const * __ptr64,int,unsigned short const * __ptr64) __ptr64
?ConcatCopy@CHString@@IEAAXHPEBGH0@Z
; protected: void __cdecl CHString::ConcatInPlace(int,unsigned short const * __ptr64) __ptr64
?ConcatInPlace@CHString@@IEAAXHPEBG@Z
; public: void __cdecl CHPtrArray::Copy(class CHPtrArray const & __ptr64) __ptr64
?Copy@CHPtrArray@@QEAAXAEBV1@@Z
; public: void __cdecl CHStringArray::Copy(class CHStringArray const & __ptr64) __ptr64
?Copy@CHStringArray@@QEAAXAEBV1@@Z
; protected: void __cdecl CHString::CopyBeforeWrite(void) __ptr64
?CopyBeforeWrite@CHString@@IEAAXXZ
; public: virtual long __cdecl CWbemProviderGlue::CreateClassEnum(unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IEnumWbemClassObject * __ptr64 * __ptr64) __ptr64
?CreateClassEnum@CWbemProviderGlue@@UEAAJQEAGJPEAUIWbemContext@@PEAPEAUIEnumWbemClassObject@@@Z
; public: virtual long __cdecl CWbemProviderGlue::CreateClassEnumAsync(unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IWbemObjectSink * __ptr64) __ptr64
?CreateClassEnumAsync@CWbemProviderGlue@@UEAAJQEAGJPEAUIWbemContext@@PEAUIWbemObjectSink@@@Z
; public: virtual long __cdecl CWbemGlueFactory::CreateInstance(struct IUnknown * __ptr64,struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?CreateInstance@CWbemGlueFactory@@UEAAJPEAUIUnknown@@AEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CWbemProviderGlue::CreateInstanceEnum(unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IEnumWbemClassObject * __ptr64 * __ptr64) __ptr64
?CreateInstanceEnum@CWbemProviderGlue@@UEAAJQEAGJPEAUIWbemContext@@PEAPEAUIEnumWbemClassObject@@@Z
; private: long __cdecl Provider::CreateInstanceEnum(class MethodContext * __ptr64,long) __ptr64
?CreateInstanceEnum@Provider@@AEAAJPEAVMethodContext@@J@Z
; public: virtual long __cdecl CWbemProviderGlue::CreateInstanceEnumAsync(unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IWbemObjectSink * __ptr64) __ptr64
?CreateInstanceEnumAsync@CWbemProviderGlue@@UEAAJQEAGJPEAUIWbemContext@@PEAUIWbemObjectSink@@@Z
; private: static void __cdecl CWinMsgEvent::CreateMsgProvider(void)
?CreateMsgProvider@CWinMsgEvent@@CAXXZ
; private: static struct HWND__ * __ptr64 __cdecl CWinMsgEvent::CreateMsgWindow(void)
?CreateMsgWindow@CWinMsgEvent@@CAPEAUHWND__@@XZ
; protected: class CInstance * __ptr64 __cdecl Provider::CreateNewInstance(class MethodContext * __ptr64) __ptr64
?CreateNewInstance@Provider@@IEAAPEAVCInstance@@PEAVMethodContext@@@Z
; public: long __cdecl CRegistry::CreateOpen(struct HKEY__ * __ptr64,unsigned short const * __ptr64,unsigned short * __ptr64,unsigned long,unsigned long,struct _SECURITY_ATTRIBUTES * __ptr64,unsigned long * __ptr64) __ptr64
?CreateOpen@CRegistry@@QEAAJPEAUHKEY__@@PEBGPEAGKKPEAU_SECURITY_ATTRIBUTES@@PEAK@Z
; private: static int __cdecl CWinMsgEvent::CtrlHandlerRoutine(unsigned long)
?CtrlHandlerRoutine@CWinMsgEvent@@CAHK@Z
; protected: static long __cdecl CWbemProviderGlue::DecrementMapCount(long * __ptr64)
?DecrementMapCount@CWbemProviderGlue@@KAJPEAJ@Z
; protected: static long __cdecl CWbemProviderGlue::DecrementMapCount(class CWbemGlueFactory const * __ptr64)
?DecrementMapCount@CWbemProviderGlue@@KAJPEBVCWbemGlueFactory@@@Z
; public: static long __cdecl CWbemProviderGlue::DecrementObjectCount(void)
?DecrementObjectCount@CWbemProviderGlue@@SAJXZ
; public: virtual long __cdecl CWbemProviderGlue::DeleteClass(unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IWbemCallResult * __ptr64 * __ptr64) __ptr64
?DeleteClass@CWbemProviderGlue@@UEAAJQEAGJPEAUIWbemContext@@PEAPEAUIWbemCallResult@@@Z
; public: virtual long __cdecl CWbemProviderGlue::DeleteClassAsync(unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IWbemObjectSink * __ptr64) __ptr64
?DeleteClassAsync@CWbemProviderGlue@@UEAAJQEAGJPEAUIWbemContext@@PEAUIWbemObjectSink@@@Z
; public: unsigned long __cdecl CRegistry::DeleteCurrentKeyValue(struct HKEY__ * __ptr64,unsigned short const * __ptr64) __ptr64
?DeleteCurrentKeyValue@CRegistry@@QEAAKPEAUHKEY__@@PEBG@Z
; public: unsigned long __cdecl CRegistry::DeleteCurrentKeyValue(unsigned short const * __ptr64) __ptr64
?DeleteCurrentKeyValue@CRegistry@@QEAAKPEBG@Z
; public: virtual long __cdecl CWbemProviderGlue::DeleteInstance(unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IWbemCallResult * __ptr64 * __ptr64) __ptr64
?DeleteInstance@CWbemProviderGlue@@UEAAJQEAGJPEAUIWbemContext@@PEAPEAUIWbemCallResult@@@Z
; private: long __cdecl Provider::DeleteInstance(struct ParsedObjectPath * __ptr64,long,class MethodContext * __ptr64) __ptr64
?DeleteInstance@Provider@@AEAAJPEAUParsedObjectPath@@JPEAVMethodContext@@@Z
; protected: virtual long __cdecl Provider::DeleteInstance(class CInstance const & __ptr64,long) __ptr64
?DeleteInstance@Provider@@MEAAJAEBVCInstance@@J@Z
; public: virtual long __cdecl CWbemProviderGlue::DeleteInstanceAsync(unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IWbemObjectSink * __ptr64) __ptr64
?DeleteInstanceAsync@CWbemProviderGlue@@UEAAJQEAGJPEAUIWbemContext@@PEAUIWbemObjectSink@@@Z
; public: long __cdecl CRegistry::DeleteKey(class CHString * __ptr64) __ptr64
?DeleteKey@CRegistry@@QEAAJPEAVCHString@@@Z
; public: long __cdecl CRegistry::DeleteValue(unsigned short const * __ptr64) __ptr64
?DeleteValue@CRegistry@@QEAAJPEBG@Z
; private: static void __cdecl CWinMsgEvent::DestroyMsgWindow(void)
?DestroyMsgWindow@CWinMsgEvent@@CAXXZ
; public: void * __ptr64 & __ptr64 __cdecl CHPtrArray::ElementAt(int) __ptr64
?ElementAt@CHPtrArray@@QEAAAEAPEAXH@Z
; public: class CHString & __ptr64 __cdecl CHStringArray::ElementAt(int) __ptr64
?ElementAt@CHStringArray@@QEAAAEAVCHString@@H@Z
; public: void __cdecl CHString::Empty(void) __ptr64
?Empty@CHString@@QEAAXXZ
; private: void __cdecl CObjectPathParser::Empty(void) __ptr64
?Empty@CObjectPathParser@@AEAAXXZ
; public: void __cdecl CThreadBase::EndRead(void) __ptr64
?EndRead@CThreadBase@@QEAAXXZ
; public: void __cdecl CThreadBase::EndWrite(void) __ptr64
?EndWrite@CThreadBase@@QEAAXXZ
; public: long __cdecl CRegistry::EnumerateAndGetValues(unsigned long & __ptr64,unsigned short * __ptr64 & __ptr64,unsigned char * __ptr64 & __ptr64) __ptr64
?EnumerateAndGetValues@CRegistry@@QEAAJAEAKAEAPEAGAEAPEAE@Z
; protected: virtual long __cdecl Provider::EnumerateInstances(class MethodContext * __ptr64,long) __ptr64
?EnumerateInstances@Provider@@MEAAJPEAVMethodContext@@J@Z
; public: virtual long __cdecl CWbemProviderGlue::ExecMethod(unsigned short * __ptr64 const,unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IWbemClassObject * __ptr64,struct IWbemClassObject * __ptr64 * __ptr64,struct IWbemCallResult * __ptr64 * __ptr64) __ptr64
?ExecMethod@CWbemProviderGlue@@UEAAJQEAG0JPEAUIWbemContext@@PEAUIWbemClassObject@@PEAPEAU3@PEAPEAUIWbemCallResult@@@Z
; private: long __cdecl Provider::ExecMethod(struct ParsedObjectPath * __ptr64,unsigned short * __ptr64,long,class CInstance * __ptr64,class CInstance * __ptr64,class MethodContext * __ptr64) __ptr64
?ExecMethod@Provider@@AEAAJPEAUParsedObjectPath@@PEAGJPEAVCInstance@@2PEAVMethodContext@@@Z
; protected: virtual long __cdecl Provider::ExecMethod(class CInstance const & __ptr64,unsigned short * __ptr64 const,class CInstance * __ptr64,class CInstance * __ptr64,long) __ptr64
?ExecMethod@Provider@@MEAAJAEBVCInstance@@QEAGPEAV2@2J@Z
; public: virtual long __cdecl CWbemProviderGlue::ExecMethodAsync(unsigned short * __ptr64 const,unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IWbemClassObject * __ptr64,struct IWbemObjectSink * __ptr64) __ptr64
?ExecMethodAsync@CWbemProviderGlue@@UEAAJQEAG0JPEAUIWbemContext@@PEAUIWbemClassObject@@PEAUIWbemObjectSink@@@Z
; public: virtual long __cdecl CWbemProviderGlue::ExecNotificationQuery(unsigned short * __ptr64 const,unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IEnumWbemClassObject * __ptr64 * __ptr64) __ptr64
?ExecNotificationQuery@CWbemProviderGlue@@UEAAJQEAG0JPEAUIWbemContext@@PEAPEAUIEnumWbemClassObject@@@Z
; public: virtual long __cdecl CWbemProviderGlue::ExecNotificationQueryAsync(unsigned short * __ptr64 const,unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IWbemObjectSink * __ptr64) __ptr64
?ExecNotificationQueryAsync@CWbemProviderGlue@@UEAAJQEAG0JPEAUIWbemContext@@PEAUIWbemObjectSink@@@Z
; public: virtual long __cdecl CWbemProviderGlue::ExecQuery(unsigned short * __ptr64 const,unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IEnumWbemClassObject * __ptr64 * __ptr64) __ptr64
?ExecQuery@CWbemProviderGlue@@UEAAJQEAG0JPEAUIWbemContext@@PEAPEAUIEnumWbemClassObject@@@Z
; protected: virtual long __cdecl Provider::ExecQuery(class MethodContext * __ptr64,class CFrameworkQuery & __ptr64,long) __ptr64
?ExecQuery@Provider@@MEAAJPEAVMethodContext@@AEAVCFrameworkQuery@@J@Z
; public: virtual long __cdecl CWbemProviderGlue::ExecQueryAsync(unsigned short * __ptr64 const,unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IWbemObjectSink * __ptr64) __ptr64
?ExecQueryAsync@CWbemProviderGlue@@UEAAJQEAG0JPEAUIWbemContext@@PEAUIWbemObjectSink@@@Z
; private: long __cdecl Provider::ExecuteQuery(class MethodContext * __ptr64,class CFrameworkQuery & __ptr64,long) __ptr64
?ExecuteQuery@Provider@@AEAAJPEAVMethodContext@@AEAVCFrameworkQuery@@J@Z
; public: static long __cdecl CWbemProviderGlue::FillInstance(class CInstance * __ptr64,unsigned short const * __ptr64)
?FillInstance@CWbemProviderGlue@@SAJPEAVCInstance@@PEBG@Z
; public: static long __cdecl CWbemProviderGlue::FillInstance(class MethodContext * __ptr64,class CInstance * __ptr64)
?FillInstance@CWbemProviderGlue@@SAJPEAVMethodContext@@PEAVCInstance@@@Z
; public: int __cdecl CHString::Find(unsigned short)const  __ptr64
?Find@CHString@@QEBAHG@Z
; public: int __cdecl CHString::Find(unsigned short const * __ptr64)const  __ptr64
?Find@CHString@@QEBAHPEBG@Z
; public: int __cdecl CHString::FindOneOf(unsigned short const * __ptr64)const  __ptr64
?FindOneOf@CHString@@QEBAHPEBG@Z
; protected: virtual void __cdecl Provider::Flush(void) __ptr64
?Flush@Provider@@MEAAXXZ
; private: void __cdecl CWbemProviderGlue::FlushAll(void) __ptr64
?FlushAll@CWbemProviderGlue@@AEAAXXZ
; public: void __cdecl CHString::Format(unsigned int,...) __ptr64
?Format@CHString@@QEAAXIZZ
; public: void __cdecl CHString::Format(unsigned short const * __ptr64,...) __ptr64
?Format@CHString@@QEAAXPEBGZZ
; public: void __cdecl CHString::FormatMessageW(unsigned int,...) __ptr64
?FormatMessageW@CHString@@QEAAXIZZ
; public: void __cdecl CHString::FormatMessageW(unsigned short const * __ptr64,...) __ptr64
?FormatMessageW@CHString@@QEAAXPEBGZZ
; public: void __cdecl CHString::FormatV(unsigned short const * __ptr64,char * __ptr64) __ptr64
?FormatV@CHString@@QEAAXPEBGPEAD@Z
; public: static void __cdecl CWbemProviderGlue::FrameworkLogin(unsigned short const * __ptr64,class Provider * __ptr64,unsigned short const * __ptr64)
?FrameworkLogin@CWbemProviderGlue@@SAXPEBGPEAVProvider@@0@Z
; public: static int __cdecl CWbemProviderGlue::FrameworkLoginDLL(unsigned short const * __ptr64)
?FrameworkLoginDLL@CWbemProviderGlue@@SAHPEBG@Z
; public: static int __cdecl CWbemProviderGlue::FrameworkLoginDLL(unsigned short const * __ptr64,long * __ptr64)
?FrameworkLoginDLL@CWbemProviderGlue@@SAHPEBGPEAJ@Z
; public: static void __cdecl CWbemProviderGlue::FrameworkLogoff(unsigned short const * __ptr64,unsigned short const * __ptr64)
?FrameworkLogoff@CWbemProviderGlue@@SAXPEBG0@Z
; public: static int __cdecl CWbemProviderGlue::FrameworkLogoffDLL(unsigned short const * __ptr64)
?FrameworkLogoffDLL@CWbemProviderGlue@@SAHPEBG@Z
; public: static int __cdecl CWbemProviderGlue::FrameworkLogoffDLL(unsigned short const * __ptr64,long * __ptr64)
?FrameworkLogoffDLL@CWbemProviderGlue@@SAHPEBGPEAJ@Z
; public: void __cdecl CObjectPathParser::Free(struct ParsedObjectPath * __ptr64) __ptr64
?Free@CObjectPathParser@@QEAAXPEAUParsedObjectPath@@@Z
; public: void __cdecl CHPtrArray::FreeExtra(void) __ptr64
?FreeExtra@CHPtrArray@@QEAAXXZ
; public: void __cdecl CHString::FreeExtra(void) __ptr64
?FreeExtra@CHString@@QEAAXXZ
; public: void __cdecl CHStringArray::FreeExtra(void) __ptr64
?FreeExtra@CHStringArray@@QEAAXXZ
; public: int __cdecl CRegistrySearch::FreeSearchList(int,class CHPtrArray & __ptr64) __ptr64
?FreeSearchList@CRegistrySearch@@QEAAHHAEAVCHPtrArray@@@Z
; public: static long __cdecl CWbemProviderGlue::GetAllDerivedInstances(unsigned short const * __ptr64,class TRefPointerCollection<class CInstance> * __ptr64,class MethodContext * __ptr64,unsigned short const * __ptr64)
?GetAllDerivedInstances@CWbemProviderGlue@@SAJPEBGPEAV?$TRefPointerCollection@VCInstance@@@@PEAVMethodContext@@0@Z
; public: static long __cdecl CWbemProviderGlue::GetAllDerivedInstancesAsynch(unsigned short const * __ptr64,class Provider * __ptr64,long (__cdecl*)(class Provider * __ptr64,class CInstance * __ptr64,class MethodContext * __ptr64,void * __ptr64),unsigned short const * __ptr64,class MethodContext * __ptr64,void * __ptr64)
?GetAllDerivedInstancesAsynch@CWbemProviderGlue@@SAJPEBGPEAVProvider@@P6AJ1PEAVCInstance@@PEAVMethodContext@@PEAX@Z034@Z
; public: static long __cdecl CWbemProviderGlue::GetAllInstances(unsigned short const * __ptr64,class TRefPointerCollection<class CInstance> * __ptr64,unsigned short const * __ptr64,class MethodContext * __ptr64)
?GetAllInstances@CWbemProviderGlue@@SAJPEBGPEAV?$TRefPointerCollection@VCInstance@@@@0PEAVMethodContext@@@Z
; public: static long __cdecl CWbemProviderGlue::GetAllInstancesAsynch(unsigned short const * __ptr64,class Provider * __ptr64,long (__cdecl*)(class Provider * __ptr64,class CInstance * __ptr64,class MethodContext * __ptr64,void * __ptr64),unsigned short const * __ptr64,class MethodContext * __ptr64,void * __ptr64)
?GetAllInstancesAsynch@CWbemProviderGlue@@SAJPEBGPEAVProvider@@P6AJ1PEAVCInstance@@PEAVMethodContext@@PEAX@Z034@Z
; public: int __cdecl CHString::GetAllocLength(void)const  __ptr64
?GetAllocLength@CHString@@QEBAHXZ
; public: void * __ptr64 __cdecl CHPtrArray::GetAt(int)const  __ptr64
?GetAt@CHPtrArray@@QEBAPEAXH@Z
; public: unsigned short __cdecl CHString::GetAt(int)const  __ptr64
?GetAt@CHString@@QEBAGH@Z
; public: class CHString  __cdecl CHStringArray::GetAt(int)const  __ptr64
?GetAt@CHStringArray@@QEBA?AVCHString@@H@Z
; public: unsigned short * __ptr64 __cdecl WBEMTime::GetBSTR(void)const  __ptr64
?GetBSTR@WBEMTime@@QEBAPEAGXZ
; public: unsigned short * __ptr64 __cdecl WBEMTimeSpan::GetBSTR(void)const  __ptr64
?GetBSTR@WBEMTimeSpan@@QEBAPEAGXZ
; public: unsigned short * __ptr64 __cdecl CHString::GetBuffer(int) __ptr64
?GetBuffer@CHString@@QEAAPEAGH@Z
; public: unsigned short * __ptr64 __cdecl CHString::GetBufferSetLength(int) __ptr64
?GetBufferSetLength@CHString@@QEAAPEAGH@Z
; public: bool __cdecl CInstance::GetByte(unsigned short const * __ptr64,unsigned char & __ptr64)const  __ptr64
?GetByte@CInstance@@QEBA_NPEBGAEAE@Z
; public: bool __cdecl CInstance::GetCHString(unsigned short const * __ptr64,class CHString & __ptr64)const  __ptr64
?GetCHString@CInstance@@QEBA_NPEBGAEAVCHString@@@Z
; public: static unsigned short const * __ptr64 __cdecl CWbemProviderGlue::GetCSDVersion(void)
?GetCSDVersion@CWbemProviderGlue@@SAPEBGXZ
; public: unsigned short * __ptr64 __cdecl CRegistry::GetClassNameW(void) __ptr64
?GetClassNameW@CRegistry@@QEAAPEAGXZ
; public: struct IWbemClassObject * __ptr64 __cdecl CInstance::GetClassObjectInterface(void) __ptr64
?GetClassObjectInterface@CInstance@@QEAAPEAUIWbemClassObject@@XZ
; private: struct IWbemClassObject * __ptr64 __cdecl Provider::GetClassObjectInterface(class MethodContext * __ptr64) __ptr64
?GetClassObjectInterface@Provider@@AEAAPEAUIWbemClassObject@@PEAVMethodContext@@@Z
; private: static void __cdecl CWbemProviderGlue::GetComputerNameW(class CHString & __ptr64)
?GetComputerNameW@CWbemProviderGlue@@CAXAEAVCHString@@@Z
; public: unsigned long __cdecl CRegistry::GetCurrentBinaryKeyValue(struct HKEY__ * __ptr64,unsigned short const * __ptr64,unsigned char * __ptr64,unsigned long * __ptr64) __ptr64
?GetCurrentBinaryKeyValue@CRegistry@@QEAAKPEAUHKEY__@@PEBGPEAEPEAK@Z
; public: unsigned long __cdecl CRegistry::GetCurrentBinaryKeyValue(unsigned short const * __ptr64,class CHString & __ptr64) __ptr64
?GetCurrentBinaryKeyValue@CRegistry@@QEAAKPEBGAEAVCHString@@@Z
; public: unsigned long __cdecl CRegistry::GetCurrentBinaryKeyValue(unsigned short const * __ptr64,unsigned char * __ptr64,unsigned long * __ptr64) __ptr64
?GetCurrentBinaryKeyValue@CRegistry@@QEAAKPEBGPEAEPEAK@Z
; public: unsigned long __cdecl CRegistry::GetCurrentKeyValue(struct HKEY__ * __ptr64,unsigned short const * __ptr64,unsigned long & __ptr64) __ptr64
?GetCurrentKeyValue@CRegistry@@QEAAKPEAUHKEY__@@PEBGAEAK@Z
; public: unsigned long __cdecl CRegistry::GetCurrentKeyValue(struct HKEY__ * __ptr64,unsigned short const * __ptr64,class CHString & __ptr64) __ptr64
?GetCurrentKeyValue@CRegistry@@QEAAKPEAUHKEY__@@PEBGAEAVCHString@@@Z
; public: unsigned long __cdecl CRegistry::GetCurrentKeyValue(struct HKEY__ * __ptr64,unsigned short const * __ptr64,class CHStringArray & __ptr64) __ptr64
?GetCurrentKeyValue@CRegistry@@QEAAKPEAUHKEY__@@PEBGAEAVCHStringArray@@@Z
; public: unsigned long __cdecl CRegistry::GetCurrentKeyValue(unsigned short const * __ptr64,unsigned long & __ptr64) __ptr64
?GetCurrentKeyValue@CRegistry@@QEAAKPEBGAEAK@Z
; public: unsigned long __cdecl CRegistry::GetCurrentKeyValue(unsigned short const * __ptr64,class CHString & __ptr64) __ptr64
?GetCurrentKeyValue@CRegistry@@QEAAKPEBGAEAVCHString@@@Z
; public: unsigned long __cdecl CRegistry::GetCurrentKeyValue(unsigned short const * __ptr64,class CHStringArray & __ptr64) __ptr64
?GetCurrentKeyValue@CRegistry@@QEAAKPEBGAEAVCHStringArray@@@Z
; private: unsigned long __cdecl CRegistry::GetCurrentRawKeyValue(struct HKEY__ * __ptr64,unsigned short const * __ptr64,void * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64) __ptr64
?GetCurrentRawKeyValue@CRegistry@@AEAAKPEAUHKEY__@@PEBGPEAXPEAK3@Z
; private: unsigned long __cdecl CRegistry::GetCurrentRawSubKeyValue(unsigned short const * __ptr64,void * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64) __ptr64
?GetCurrentRawSubKeyValue@CRegistry@@AEAAKPEBGPEAXPEAK2@Z
; public: unsigned long __cdecl CRegistry::GetCurrentSubKeyCount(void) __ptr64
?GetCurrentSubKeyCount@CRegistry@@QEAAKXZ
; public: unsigned long __cdecl CRegistry::GetCurrentSubKeyName(class CHString & __ptr64) __ptr64
?GetCurrentSubKeyName@CRegistry@@QEAAKAEAVCHString@@@Z
; public: unsigned long __cdecl CRegistry::GetCurrentSubKeyPath(class CHString & __ptr64) __ptr64
?GetCurrentSubKeyPath@CRegistry@@QEAAKAEAVCHString@@@Z
; public: unsigned long __cdecl CRegistry::GetCurrentSubKeyValue(unsigned short const * __ptr64,unsigned long & __ptr64) __ptr64
?GetCurrentSubKeyValue@CRegistry@@QEAAKPEBGAEAK@Z
; public: unsigned long __cdecl CRegistry::GetCurrentSubKeyValue(unsigned short const * __ptr64,class CHString & __ptr64) __ptr64
?GetCurrentSubKeyValue@CRegistry@@QEAAKPEBGAEAVCHString@@@Z
; public: unsigned long __cdecl CRegistry::GetCurrentSubKeyValue(unsigned short const * __ptr64,void * __ptr64,unsigned long * __ptr64) __ptr64
?GetCurrentSubKeyValue@CRegistry@@QEAAKPEBGPEAXPEAK@Z
; public: unsigned short * __ptr64 __cdecl WBEMTime::GetDMTF(int)const  __ptr64
?GetDMTF@WBEMTime@@QEBAPEAGH@Z
; public: unsigned short * __ptr64 __cdecl WBEMTime::GetDMTFNonNtfs(void)const  __ptr64
?GetDMTFNonNtfs@WBEMTime@@QEBAPEAGXZ
; public: bool __cdecl CInstance::GetDOUBLE(unsigned short const * __ptr64,double & __ptr64)const  __ptr64
?GetDOUBLE@CInstance@@QEBA_NPEBGAEAN@Z
; public: bool __cdecl CInstance::GetDWORD(unsigned short const * __ptr64,unsigned long & __ptr64)const  __ptr64
?GetDWORD@CInstance@@QEBA_NPEBGAEAK@Z
; public: void * __ptr64 * __ptr64 __cdecl CHPtrArray::GetData(void) __ptr64
?GetData@CHPtrArray@@QEAAPEAPEAXXZ
; public: void const * __ptr64 * __ptr64 __cdecl CHPtrArray::GetData(void)const  __ptr64
?GetData@CHPtrArray@@QEBAPEAPEBXXZ
; protected: struct CHStringData * __ptr64 __cdecl CHString::GetData(void)const  __ptr64
?GetData@CHString@@IEBAPEAUCHStringData@@XZ
; public: class CHString * __ptr64 __cdecl CHStringArray::GetData(void) __ptr64
?GetData@CHStringArray@@QEAAPEAVCHString@@XZ
; public: class CHString const * __ptr64 __cdecl CHStringArray::GetData(void)const  __ptr64
?GetData@CHStringArray@@QEBAPEBVCHString@@XZ
; public: bool __cdecl CInstance::GetDateTime(unsigned short const * __ptr64,class WBEMTime & __ptr64)const  __ptr64
?GetDateTime@CInstance@@QEBA_NPEBGAEAVWBEMTime@@@Z
; public: bool __cdecl CInstance::GetEmbeddedObject(unsigned short const * __ptr64,class CInstance * __ptr64 * __ptr64,class MethodContext * __ptr64)const  __ptr64
?GetEmbeddedObject@CInstance@@QEBA_NPEBGPEAPEAV1@PEAVMethodContext@@@Z
; public: static long __cdecl CWbemProviderGlue::GetEmptyInstance(class MethodContext * __ptr64,unsigned short const * __ptr64,class CInstance * __ptr64 * __ptr64,unsigned short const * __ptr64)
?GetEmptyInstance@CWbemProviderGlue@@SAJPEAVMethodContext@@PEBGPEAPEAVCInstance@@1@Z
; public: static long __cdecl CWbemProviderGlue::GetEmptyInstance(unsigned short const * __ptr64,class CInstance * __ptr64 * __ptr64,unsigned short const * __ptr64)
?GetEmptyInstance@CWbemProviderGlue@@SAJPEBGPEAPEAVCInstance@@0@Z
; public: int __cdecl WBEMTime::GetFILETIME(struct _FILETIME * __ptr64)const  __ptr64
?GetFILETIME@WBEMTime@@QEBAHPEAU_FILETIME@@@Z
; public: int __cdecl WBEMTimeSpan::GetFILETIME(struct _FILETIME * __ptr64)const  __ptr64
?GetFILETIME@WBEMTimeSpan@@QEBAHPEAU_FILETIME@@@Z
; public: virtual struct IWbemContext * __ptr64 __cdecl MethodContext::GetIWBEMContext(void) __ptr64
?GetIWBEMContext@MethodContext@@UEAAPEAUIWbemContext@@XZ
; public: static long __cdecl CWbemProviderGlue::GetInstanceByPath(unsigned short const * __ptr64,class CInstance * __ptr64 * __ptr64,class MethodContext * __ptr64)
?GetInstanceByPath@CWbemProviderGlue@@SAJPEBGPEAPEAVCInstance@@PEAVMethodContext@@@Z
; private: static long __cdecl CWbemProviderGlue::GetInstanceFromCIMOM(unsigned short const * __ptr64,unsigned short const * __ptr64,class MethodContext * __ptr64,class CInstance * __ptr64 * __ptr64)
?GetInstanceFromCIMOM@CWbemProviderGlue@@CAJPEBG0PEAVMethodContext@@PEAPEAVCInstance@@@Z
; public: static long __cdecl CWbemProviderGlue::GetInstanceKeysByPath(unsigned short const * __ptr64,class CInstance * __ptr64 * __ptr64,class MethodContext * __ptr64)
?GetInstanceKeysByPath@CWbemProviderGlue@@SAJPEBGPEAPEAVCInstance@@PEAVMethodContext@@@Z
; public: static long __cdecl CWbemProviderGlue::GetInstancePropertiesByPath(unsigned short const * __ptr64,class CInstance * __ptr64 * __ptr64,class MethodContext * __ptr64,class CHStringArray & __ptr64)
?GetInstancePropertiesByPath@CWbemProviderGlue@@SAJPEBGPEAPEAVCInstance@@PEAVMethodContext@@AEAVCHStringArray@@@Z
; public: static long __cdecl CWbemProviderGlue::GetInstancesByQuery(unsigned short const * __ptr64,class TRefPointerCollection<class CInstance> * __ptr64,class MethodContext * __ptr64,unsigned short const * __ptr64)
?GetInstancesByQuery@CWbemProviderGlue@@SAJPEBGPEAV?$TRefPointerCollection@VCInstance@@@@PEAVMethodContext@@0@Z
; public: static long __cdecl CWbemProviderGlue::GetInstancesByQueryAsynch(unsigned short const * __ptr64,class Provider * __ptr64,long (__cdecl*)(class Provider * __ptr64,class CInstance * __ptr64,class MethodContext * __ptr64,void * __ptr64),unsigned short const * __ptr64,class MethodContext * __ptr64,void * __ptr64)
?GetInstancesByQueryAsynch@CWbemProviderGlue@@SAJPEBGPEAVProvider@@P6AJ1PEAVCInstance@@PEAVMethodContext@@PEAX@Z034@Z
; public: unsigned short * __ptr64 __cdecl ParsedObjectPath::GetKeyString(void) __ptr64
?GetKeyString@ParsedObjectPath@@QEAAPEAGXZ
; public: int __cdecl CHString::GetLength(void)const  __ptr64
?GetLength@CHString@@QEBAHXZ
; protected: class CHString const & __ptr64 __cdecl Provider::GetLocalComputerName(void) __ptr64
?GetLocalComputerName@Provider@@IEAAAEBVCHString@@XZ
; protected: bool __cdecl Provider::GetLocalInstancePath(class CInstance const * __ptr64,class CHString & __ptr64) __ptr64
?GetLocalInstancePath@Provider@@IEAA_NPEBVCInstance@@AEAVCHString@@@Z
; public: static long __cdecl WBEMTime::GetLocalOffsetForDate(__int64 const & __ptr64)
?GetLocalOffsetForDate@WBEMTime@@SAJAEB_J@Z
; public: static long __cdecl WBEMTime::GetLocalOffsetForDate(struct _FILETIME const * __ptr64)
?GetLocalOffsetForDate@WBEMTime@@SAJPEBU_FILETIME@@@Z
; public: static long __cdecl WBEMTime::GetLocalOffsetForDate(struct _SYSTEMTIME const * __ptr64)
?GetLocalOffsetForDate@WBEMTime@@SAJPEBU_SYSTEMTIME@@@Z
; public: static long __cdecl WBEMTime::GetLocalOffsetForDate(struct tm const * __ptr64)
?GetLocalOffsetForDate@WBEMTime@@SAJPEBUtm@@@Z
; public: unsigned long __cdecl CRegistry::GetLongestClassStringSize(void) __ptr64
?GetLongestClassStringSize@CRegistry@@QEAAKXZ
; public: unsigned long __cdecl CRegistry::GetLongestSubKeySize(void) __ptr64
?GetLongestSubKeySize@CRegistry@@QEAAKXZ
; public: unsigned long __cdecl CRegistry::GetLongestValueData(void) __ptr64
?GetLongestValueData@CRegistry@@QEAAKXZ
; public: unsigned long __cdecl CRegistry::GetLongestValueName(void) __ptr64
?GetLongestValueName@CRegistry@@QEAAKXZ
; protected: static long * __ptr64 __cdecl CWbemProviderGlue::GetMapCountPtr(class CWbemGlueFactory const * __ptr64)
?GetMapCountPtr@CWbemProviderGlue@@KAPEAJPEBVCWbemGlueFactory@@@Z
; public: class MethodContext * __ptr64 __cdecl CInstance::GetMethodContext(void)const  __ptr64
?GetMethodContext@CInstance@@QEBAPEAVMethodContext@@XZ
; protected: class CHString const & __ptr64 __cdecl CFrameworkQuery::GetNamespace(void) __ptr64
?GetNamespace@CFrameworkQuery@@IEAAAEBVCHString@@XZ
; protected: class CHString const & __ptr64 __cdecl Provider::GetNamespace(void) __ptr64
?GetNamespace@Provider@@IEAAAEBVCHString@@XZ
; public: static struct IWbemServices * __ptr64 __cdecl CWbemProviderGlue::GetNamespaceConnection(unsigned short const * __ptr64)
?GetNamespaceConnection@CWbemProviderGlue@@SAPEAUIWbemServices@@PEBG@Z
; public: static struct IWbemServices * __ptr64 __cdecl CWbemProviderGlue::GetNamespaceConnection(unsigned short const * __ptr64,class MethodContext * __ptr64)
?GetNamespaceConnection@CWbemProviderGlue@@SAPEAUIWbemServices@@PEBGPEAVMethodContext@@@Z
; public: unsigned short * __ptr64 __cdecl ParsedObjectPath::GetNamespacePart(void) __ptr64
?GetNamespacePart@ParsedObjectPath@@QEAAPEAGXZ
; public: static unsigned long __cdecl CWbemProviderGlue::GetOSMajorVersion(void)
?GetOSMajorVersion@CWbemProviderGlue@@SAKXZ
; public: virtual long __cdecl CWbemProviderGlue::GetObject(unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IWbemClassObject * __ptr64 * __ptr64,struct IWbemCallResult * __ptr64 * __ptr64) __ptr64
?GetObject@CWbemProviderGlue@@UEAAJQEAGJPEAUIWbemContext@@PEAPEAUIWbemClassObject@@PEAPEAUIWbemCallResult@@@Z
; private: long __cdecl Provider::GetObject(struct ParsedObjectPath * __ptr64,class MethodContext * __ptr64,long) __ptr64
?GetObject@Provider@@AEAAJPEAUParsedObjectPath@@PEAVMethodContext@@J@Z
; protected: virtual long __cdecl Provider::GetObject(class CInstance * __ptr64,long) __ptr64
?GetObject@Provider@@MEAAJPEAVCInstance@@J@Z
; protected: virtual long __cdecl Provider::GetObject(class CInstance * __ptr64,long,class CFrameworkQuery & __ptr64) __ptr64
?GetObject@Provider@@MEAAJPEAVCInstance@@JAEAVCFrameworkQuery@@@Z
; public: virtual long __cdecl CWbemProviderGlue::GetObjectAsync(unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IWbemObjectSink * __ptr64) __ptr64
?GetObjectAsync@CWbemProviderGlue@@UEAAJQEAGJPEAUIWbemContext@@PEAUIWbemObjectSink@@@Z
; public: unsigned short * __ptr64 __cdecl ParsedObjectPath::GetParentNamespacePart(void) __ptr64
?GetParentNamespacePart@ParsedObjectPath@@QEAAPEAGXZ
; public: static unsigned long __cdecl CWbemProviderGlue::GetPlatform(void)
?GetPlatform@CWbemProviderGlue@@SAKXZ
; public: void __cdecl CFrameworkQueryEx::GetPropertyBitMask(class CHPtrArray const & __ptr64,void * __ptr64) __ptr64
?GetPropertyBitMask@CFrameworkQueryEx@@QEAAXAEBVCHPtrArray@@PEAX@Z
; private: class CWbemProviderGlue * __ptr64 __cdecl MethodContext::GetProviderGlue(void) __ptr64
?GetProviderGlue@MethodContext@@AEAAPEAVCWbemProviderGlue@@XZ
; protected: class CHString const & __ptr64 __cdecl Provider::GetProviderName(void) __ptr64
?GetProviderName@Provider@@IEAAAEBVCHString@@XZ
; public: class CHString const & __ptr64 __cdecl CFrameworkQuery::GetQuery(void) __ptr64
?GetQuery@CFrameworkQuery@@QEAAAEBVCHString@@XZ
; public: unsigned short * __ptr64 __cdecl CFrameworkQuery::GetQueryClassName(void) __ptr64
?GetQueryClassName@CFrameworkQuery@@QEAAPEAGXZ
; public: static unsigned short * __ptr64 __cdecl CObjectPathParser::GetRelativePath(unsigned short * __ptr64)
?GetRelativePath@CObjectPathParser@@SAPEAGPEAG@Z
; public: void __cdecl CFrameworkQuery::GetRequiredProperties(class CHStringArray & __ptr64) __ptr64
?GetRequiredProperties@CFrameworkQuery@@QEAAXAEAVCHStringArray@@@Z
; public: int __cdecl WBEMTime::GetSYSTEMTIME(struct _SYSTEMTIME * __ptr64)const  __ptr64
?GetSYSTEMTIME@WBEMTime@@QEBAHPEAU_SYSTEMTIME@@@Z
; public: int __cdecl CHPtrArray::GetSize(void)const  __ptr64
?GetSize@CHPtrArray@@QEBAHXZ
; public: int __cdecl CHStringArray::GetSize(void)const  __ptr64
?GetSize@CHStringArray@@QEBAHXZ
; public: bool __cdecl CInstance::GetStatus(unsigned short const * __ptr64,bool & __ptr64,unsigned short & __ptr64)const  __ptr64
?GetStatus@CInstance@@QEBA_NPEBGAEA_NAEAG@Z
; private: static struct IWbemClassObject * __ptr64 __cdecl CWbemProviderGlue::GetStatusObject(class MethodContext * __ptr64,unsigned short const * __ptr64)
?GetStatusObject@CWbemProviderGlue@@CAPEAUIWbemClassObject@@PEAVMethodContext@@PEBG@Z
; public: struct IWbemClassObject * __ptr64 __cdecl MethodContext::GetStatusObject(void) __ptr64
?GetStatusObject@MethodContext@@QEAAPEAUIWbemClassObject@@XZ
; public: bool __cdecl CInstance::GetStringArray(unsigned short const * __ptr64,struct tagSAFEARRAY * __ptr64 & __ptr64)const  __ptr64
?GetStringArray@CInstance@@QEBA_NPEBGAEAPEAUtagSAFEARRAY@@@Z
; public: int __cdecl WBEMTime::GetStructtm(struct tm * __ptr64)const  __ptr64
?GetStructtm@WBEMTime@@QEBAHPEAUtm@@@Z
; public: unsigned __int64 __cdecl WBEMTime::GetTime(void)const  __ptr64
?GetTime@WBEMTime@@QEBA_KXZ
; public: unsigned __int64 __cdecl WBEMTimeSpan::GetTime(void)const  __ptr64
?GetTime@WBEMTimeSpan@@QEBA_KXZ
; public: bool __cdecl CInstance::GetTimeSpan(unsigned short const * __ptr64,class WBEMTimeSpan & __ptr64)const  __ptr64
?GetTimeSpan@CInstance@@QEBA_NPEBGAEAVWBEMTimeSpan@@@Z
; public: int __cdecl CHPtrArray::GetUpperBound(void)const  __ptr64
?GetUpperBound@CHPtrArray@@QEBAHXZ
; public: int __cdecl CHStringArray::GetUpperBound(void)const  __ptr64
?GetUpperBound@CHStringArray@@QEBAHXZ
; public: unsigned long __cdecl CRegistry::GetValueCount(void) __ptr64
?GetValueCount@CRegistry@@QEAAKXZ
; public: long __cdecl CFrameworkQuery::GetValuesForProp(unsigned short const * __ptr64,class std::vector<class _bstr_t,class std::allocator<class _bstr_t> > & __ptr64) __ptr64
?GetValuesForProp@CFrameworkQuery@@QEAAJPEBGAEAV?$vector@V_bstr_t@@V?$allocator@V_bstr_t@@@std@@@std@@@Z
; public: long __cdecl CFrameworkQuery::GetValuesForProp(unsigned short const * __ptr64,class CHStringArray & __ptr64) __ptr64
?GetValuesForProp@CFrameworkQuery@@QEAAJPEBGAEAVCHStringArray@@@Z
; public: long __cdecl CFrameworkQueryEx::GetValuesForProp(unsigned short const * __ptr64,class std::vector<int,class std::allocator<int> > & __ptr64) __ptr64
?GetValuesForProp@CFrameworkQueryEx@@QEAAJPEBGAEAV?$vector@HV?$allocator@H@std@@@std@@@Z
; public: long __cdecl CFrameworkQueryEx::GetValuesForProp(unsigned short const * __ptr64,class std::vector<class _variant_t,class std::allocator<class _variant_t> > & __ptr64) __ptr64
?GetValuesForProp@CFrameworkQueryEx@@QEAAJPEBGAEAV?$vector@V_variant_t@@V?$allocator@V_variant_t@@@std@@@std@@@Z
; public: bool __cdecl CInstance::GetVariant(unsigned short const * __ptr64,struct tagVARIANT & __ptr64)const  __ptr64
?GetVariant@CInstance@@QEBA_NPEBGAEAUtagVARIANT@@@Z
; public: bool __cdecl CInstance::GetWBEMINT16(unsigned short const * __ptr64,short & __ptr64)const  __ptr64
?GetWBEMINT16@CInstance@@QEBA_NPEBGAEAF@Z
; public: bool __cdecl CInstance::GetWBEMINT64(unsigned short const * __ptr64,class CHString & __ptr64)const  __ptr64
?GetWBEMINT64@CInstance@@QEBA_NPEBGAEAVCHString@@@Z
; public: bool __cdecl CInstance::GetWBEMINT64(unsigned short const * __ptr64,__int64 & __ptr64)const  __ptr64
?GetWBEMINT64@CInstance@@QEBA_NPEBGAEA_J@Z
; public: bool __cdecl CInstance::GetWBEMINT64(unsigned short const * __ptr64,unsigned __int64 & __ptr64)const  __ptr64
?GetWBEMINT64@CInstance@@QEBA_NPEBGAEA_K@Z
; public: bool __cdecl CInstance::GetWCHAR(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64)const  __ptr64
?GetWCHAR@CInstance@@QEBA_NPEBGPEAPEAG@Z
; public: bool __cdecl CInstance::GetWORD(unsigned short const * __ptr64,unsigned short & __ptr64)const  __ptr64
?GetWORD@CInstance@@QEBA_NPEBGAEAG@Z
; public: bool __cdecl CInstance::Getbool(unsigned short const * __ptr64,bool & __ptr64)const  __ptr64
?Getbool@CInstance@@QEBA_NPEBGAEA_N@Z
; public: struct HKEY__ * __ptr64 __cdecl CRegistry::GethKey(void) __ptr64
?GethKey@CRegistry@@QEAAPEAUHKEY__@@XZ
; public: int __cdecl WBEMTime::Gettime_t(__int64 * __ptr64)const  __ptr64
?Gettime_t@WBEMTime@@QEBAHPEA_J@Z
; public: int __cdecl WBEMTimeSpan::Gettime_t(__int64 * __ptr64)const  __ptr64
?Gettime_t@WBEMTimeSpan@@QEBAHPEA_J@Z
; protected: static long __cdecl CWbemProviderGlue::IncrementMapCount(long * __ptr64)
?IncrementMapCount@CWbemProviderGlue@@KAJPEAJ@Z
; protected: static long __cdecl CWbemProviderGlue::IncrementMapCount(class CWbemGlueFactory const * __ptr64)
?IncrementMapCount@CWbemProviderGlue@@KAJPEBVCWbemGlueFactory@@@Z
; public: static void __cdecl CWbemProviderGlue::IncrementObjectCount(void)
?IncrementObjectCount@CWbemProviderGlue@@SAXXZ
; public: void __cdecl CFrameworkQuery::Init2(struct IWbemClassObject * __ptr64) __ptr64
?Init2@CFrameworkQuery@@QEAAXPEAUIWbemClassObject@@@Z
; public: long __cdecl CFrameworkQuery::Init(struct ParsedObjectPath * __ptr64,struct IWbemContext * __ptr64,unsigned short const * __ptr64,class CHString & __ptr64) __ptr64
?Init@CFrameworkQuery@@QEAAJPEAUParsedObjectPath@@PEAUIWbemContext@@PEBGAEAVCHString@@@Z
; public: long __cdecl CFrameworkQuery::Init(unsigned short * __ptr64 const,unsigned short * __ptr64 const,long,class CHString & __ptr64) __ptr64
?Init@CFrameworkQuery@@QEAAJQEAG0JAEAVCHString@@@Z
; protected: void __cdecl CHString::Init(void) __ptr64
?Init@CHString@@IEAAXXZ
; private: static void __cdecl CWbemProviderGlue::Init(void)
?Init@CWbemProviderGlue@@CAXXZ
; private: static void __cdecl Provider::InitComputerName(void)
?InitComputerName@Provider@@CAXXZ
; public: virtual long __cdecl CFrameworkQueryEx::InitEx(unsigned short * __ptr64 const,unsigned short * __ptr64 const,long,class CHString & __ptr64) __ptr64
?InitEx@CFrameworkQueryEx@@UEAAJQEAG0JAEAVCHString@@@Z
; public: virtual long __cdecl CWbemProviderGlue::Initialize(unsigned short * __ptr64,long,unsigned short * __ptr64,unsigned short * __ptr64,struct IWbemServices * __ptr64,struct IWbemContext * __ptr64,struct IWbemProviderInitSink * __ptr64) __ptr64
?Initialize@CWbemProviderGlue@@UEAAJPEAGJ00PEAUIWbemServices@@PEAUIWbemContext@@PEAUIWbemProviderInitSink@@@Z
; public: void __cdecl CHPtrArray::InsertAt(int,class CHPtrArray * __ptr64) __ptr64
?InsertAt@CHPtrArray@@QEAAXHPEAV1@@Z
; public: void __cdecl CHPtrArray::InsertAt(int,void * __ptr64,int) __ptr64
?InsertAt@CHPtrArray@@QEAAXHPEAXH@Z
; public: void __cdecl CHStringArray::InsertAt(int,class CHStringArray * __ptr64) __ptr64
?InsertAt@CHStringArray@@QEAAXHPEAV1@@Z
; public: void __cdecl CHStringArray::InsertAt(int,unsigned short const * __ptr64,int) __ptr64
?InsertAt@CHStringArray@@QEAAXHPEBGH@Z
; private: struct IWbemServices * __ptr64 __cdecl CWbemProviderGlue::InternalGetNamespaceConnection(unsigned short const * __ptr64) __ptr64
?InternalGetNamespaceConnection@CWbemProviderGlue@@AEAAPEAUIWbemServices@@PEBG@Z
; public: int __cdecl CFrameworkQueryEx::Is3TokenOR(unsigned short const * __ptr64,unsigned short const * __ptr64,struct tagVARIANT & __ptr64,struct tagVARIANT & __ptr64) __ptr64
?Is3TokenOR@CFrameworkQueryEx@@QEAAHPEBG0AEAUtagVARIANT@@1@Z
; public: int __cdecl ParsedObjectPath::IsClass(void) __ptr64
?IsClass@ParsedObjectPath@@QEAAHXZ
; public: static bool __cdecl CWbemProviderGlue::IsDerivedFrom(unsigned short const * __ptr64,unsigned short const * __ptr64,class MethodContext * __ptr64,unsigned short const * __ptr64)
?IsDerivedFrom@CWbemProviderGlue@@SA_NPEBG0PEAVMethodContext@@0@Z
; public: int __cdecl CHString::IsEmpty(void)const  __ptr64
?IsEmpty@CHString@@QEBAHXZ
; public: virtual bool __cdecl CFrameworkQueryEx::IsExtended(void) __ptr64
?IsExtended@CFrameworkQueryEx@@UEAA_NXZ
; protected: unsigned long __cdecl CFrameworkQuery::IsInList(class CHStringArray const & __ptr64,unsigned short const * __ptr64) __ptr64
?IsInList@CFrameworkQuery@@IEAAKAEBVCHStringArray@@PEBG@Z
; public: int __cdecl ParsedObjectPath::IsInstance(void) __ptr64
?IsInstance@ParsedObjectPath@@QEAAHXZ
; public: int __cdecl ParsedObjectPath::IsLocal(unsigned short const * __ptr64) __ptr64
?IsLocal@ParsedObjectPath@@QEAAHPEBG@Z
; public: enum ProviderLog::LogLevel  __cdecl ProviderLog::IsLoggingOn(class CHString * __ptr64) __ptr64
?IsLoggingOn@ProviderLog@@QEAA?AW4LogLevel@1@PEAVCHString@@@Z
; public: int __cdecl CFrameworkQueryEx::IsNTokenAnd(class CHStringArray & __ptr64,class CHPtrArray & __ptr64) __ptr64
?IsNTokenAnd@CFrameworkQueryEx@@QEAAHAEAVCHStringArray@@AEAVCHPtrArray@@@Z
; public: bool __cdecl CInstance::IsNull(unsigned short const * __ptr64)const  __ptr64
?IsNull@CInstance@@QEBA_NPEBG@Z
; public: int __cdecl ParsedObjectPath::IsObject(void) __ptr64
?IsObject@ParsedObjectPath@@QEAAHXZ
; public: bool __cdecl WBEMTime::IsOk(void)const  __ptr64
?IsOk@WBEMTime@@QEBA_NXZ
; public: bool __cdecl WBEMTimeSpan::IsOk(void)const  __ptr64
?IsOk@WBEMTimeSpan@@QEBA_NXZ
; public: bool __cdecl CFrameworkQuery::IsPropertyRequired(unsigned short const * __ptr64) __ptr64
?IsPropertyRequired@CFrameworkQuery@@QEAA_NPEBG@Z
; protected: int __cdecl CFrameworkQuery::IsReference(unsigned short const * __ptr64) __ptr64
?IsReference@CFrameworkQuery@@IEAAHPEBG@Z
; public: int __cdecl ParsedObjectPath::IsRelative(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?IsRelative@ParsedObjectPath@@QEAAHPEBG0@Z
; public: bool __cdecl CFrameworkQuery::KeysOnly(void) __ptr64
?KeysOnly@CFrameworkQuery@@QEAA_NXZ
; public: class CHString  __cdecl CHString::Left(int)const  __ptr64
?Left@CHString@@QEBA?AV1@H@Z
; protected: int __cdecl CHString::LoadStringW(unsigned int,unsigned short * __ptr64,unsigned int) __ptr64
?LoadStringW@CHString@@IEAAHIPEAGI@Z
; public: int __cdecl CHString::LoadStringW(unsigned int) __ptr64
?LoadStringW@CHString@@QEAAHI@Z
; public: void __cdecl ProviderLog::LocalLogMessage(unsigned short const * __ptr64,unsigned short const * __ptr64,int,enum ProviderLog::LogLevel) __ptr64
?LocalLogMessage@ProviderLog@@QEAAXPEBG0HW4LogLevel@1@@Z
; public: void __cdecl ProviderLog::LocalLogMessage(unsigned short const * __ptr64,int,enum ProviderLog::LogLevel,unsigned short const * __ptr64,...) __ptr64
?LocalLogMessage@ProviderLog@@QEAAXPEBGHW4LogLevel@1@0ZZ
; public: int __cdecl CRegistrySearch::LocateKeyByNameOrValueName(struct HKEY__ * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64 * __ptr64,unsigned long,class CHString & __ptr64,class CHString & __ptr64) __ptr64
?LocateKeyByNameOrValueName@CRegistrySearch@@QEAAHPEAUHKEY__@@PEBG1PEAPEBGKAEAVCHString@@3@Z
; private: void __cdecl CThreadBase::Lock(void) __ptr64
?Lock@CThreadBase@@AEAAXXZ
; public: unsigned short * __ptr64 __cdecl CHString::LockBuffer(void) __ptr64
?LockBuffer@CHString@@QEAAPEAGXZ
; private: static void __cdecl CWbemProviderGlue::LockFactoryMap(void)
?LockFactoryMap@CWbemProviderGlue@@CAXXZ
; private: static void __cdecl CWbemProviderGlue::LockProviderMap(void)
?LockProviderMap@CWbemProviderGlue@@CAXXZ
; public: virtual long __cdecl CWbemGlueFactory::LockServer(int) __ptr64
?LockServer@CWbemGlueFactory@@UEAAJH@Z
; protected: void __cdecl CInstance::LogError(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,long)const  __ptr64
?LogError@CInstance@@IEBAXPEBG00J@Z
; protected: class CHString  __cdecl Provider::MakeLocalPath(class CHString const & __ptr64) __ptr64
?MakeLocalPath@Provider@@IEAA?AVCHString@@AEBV2@@Z
; public: void __cdecl CHString::MakeLower(void) __ptr64
?MakeLower@CHString@@QEAAXXZ
; public: void __cdecl CHString::MakeReverse(void) __ptr64
?MakeReverse@CHString@@QEAAXXZ
; public: void __cdecl CHString::MakeUpper(void) __ptr64
?MakeUpper@CHString@@QEAAXXZ
; public: class CHString  __cdecl CHString::Mid(int)const  __ptr64
?Mid@CHString@@QEBA?AV1@H@Z
; public: class CHString  __cdecl CHString::Mid(int,int)const  __ptr64
?Mid@CHString@@QEBA?AV1@HH@Z
; private: static __int64 __cdecl CWinMsgEvent::MsgWndProc(struct HWND__ * __ptr64,unsigned int,unsigned __int64,__int64)
?MsgWndProc@CWinMsgEvent@@CA_JPEAUHWND__@@I_K_J@Z
; public: unsigned long __cdecl CRegistry::NextSubKey(void) __ptr64
?NextSubKey@CRegistry@@QEAAKXZ
; private: int __cdecl CObjectPathParser::NextToken(void) __ptr64
?NextToken@CObjectPathParser@@AEAAHXZ
; unsigned long __cdecl NormalizePath(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long,class CHString & __ptr64)
?NormalizePath@@YAKPEBG00KAEAVCHString@@@Z
; private: long __cdecl CWbemProviderGlue::NullOutUnsetProperties(struct IWbemClassObject * __ptr64,struct IWbemClassObject * __ptr64 * __ptr64,struct tagVARIANT const & __ptr64) __ptr64
?NullOutUnsetProperties@CWbemProviderGlue@@AEAAJPEAUIWbemClassObject@@PEAPEAU2@AEBUtagVARIANT@@@Z
; protected: virtual void __cdecl CThreadBase::OnFinalRelease(void) __ptr64
?OnFinalRelease@CThreadBase@@MEAAXXZ
; public: long __cdecl CRegistry::Open(struct HKEY__ * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
?Open@CRegistry@@QEAAJPEAUHKEY__@@PEBGK@Z
; public: long __cdecl CRegistry::OpenAndEnumerateSubKeys(struct HKEY__ * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
?OpenAndEnumerateSubKeys@CRegistry@@QEAAJPEAUHKEY__@@PEBGK@Z
; public: unsigned long __cdecl CRegistry::OpenCurrentUser(unsigned short const * __ptr64,unsigned long) __ptr64
?OpenCurrentUser@CRegistry@@QEAAKPEBGK@Z
; public: long __cdecl CRegistry::OpenLocalMachineKeyAndReadValue(unsigned short const * __ptr64,unsigned short const * __ptr64,class CHString & __ptr64) __ptr64
?OpenLocalMachineKeyAndReadValue@CRegistry@@QEAAJPEBG0AEAVCHString@@@Z
; public: virtual long __cdecl CWbemProviderGlue::OpenNamespace(unsigned short * __ptr64 const,long,struct IWbemContext * __ptr64,struct IWbemServices * __ptr64 * __ptr64,struct IWbemCallResult * __ptr64 * __ptr64) __ptr64
?OpenNamespace@CWbemProviderGlue@@UEAAJQEAGJPEAUIWbemContext@@PEAPEAUIWbemServices@@PEAPEAUIWbemCallResult@@@Z
; private: unsigned long __cdecl CRegistry::OpenSubKey(void) __ptr64
?OpenSubKey@CRegistry@@AEAAKXZ
; public: int __cdecl CObjectPathParser::Parse(unsigned short const * __ptr64,struct ParsedObjectPath * __ptr64 * __ptr64) __ptr64
?Parse@CObjectPathParser@@QEAAHPEBGPEAPEAUParsedObjectPath@@@Z
; private: long __cdecl CWbemProviderGlue::PreProcessPutInstanceParms(struct IWbemClassObject * __ptr64,struct IWbemClassObject * __ptr64 * __ptr64,struct IWbemContext * __ptr64) __ptr64
?PreProcessPutInstanceParms@CWbemProviderGlue@@AEAAJPEAUIWbemClassObject@@PEAPEAU2@PEAUIWbemContext@@@Z
; private: void __cdecl CRegistry::PrepareToReOpen(void) __ptr64
?PrepareToReOpen@CRegistry@@AEAAXXZ
; public: virtual long __cdecl CWbemProviderGlue::PutClass(struct IWbemClassObject * __ptr64,long,struct IWbemContext * __ptr64,struct IWbemCallResult * __ptr64 * __ptr64) __ptr64
?PutClass@CWbemProviderGlue@@UEAAJPEAUIWbemClassObject@@JPEAUIWbemContext@@PEAPEAUIWbemCallResult@@@Z
; public: virtual long __cdecl CWbemProviderGlue::PutClassAsync(struct IWbemClassObject * __ptr64,long,struct IWbemContext * __ptr64,struct IWbemObjectSink * __ptr64) __ptr64
?PutClassAsync@CWbemProviderGlue@@UEAAJPEAUIWbemClassObject@@JPEAUIWbemContext@@PEAUIWbemObjectSink@@@Z
; public: virtual long __cdecl CWbemProviderGlue::PutInstance(struct IWbemClassObject * __ptr64,long,struct IWbemContext * __ptr64,struct IWbemCallResult * __ptr64 * __ptr64) __ptr64
?PutInstance@CWbemProviderGlue@@UEAAJPEAUIWbemClassObject@@JPEAUIWbemContext@@PEAPEAUIWbemCallResult@@@Z
; private: long __cdecl Provider::PutInstance(struct IWbemClassObject * __ptr64,long,class MethodContext * __ptr64) __ptr64
?PutInstance@Provider@@AEAAJPEAUIWbemClassObject@@JPEAVMethodContext@@@Z
; protected: virtual long __cdecl Provider::PutInstance(class CInstance const & __ptr64,long) __ptr64
?PutInstance@Provider@@MEAAJAEBVCInstance@@J@Z
; public: virtual long __cdecl CWbemProviderGlue::PutInstanceAsync(struct IWbemClassObject * __ptr64,long,struct IWbemContext * __ptr64,struct IWbemObjectSink * __ptr64) __ptr64
?PutInstanceAsync@CWbemProviderGlue@@UEAAJPEAUIWbemClassObject@@JPEAUIWbemContext@@PEAUIWbemObjectSink@@@Z
; public: virtual long __cdecl CWbemGlueFactory::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CWbemGlueFactory@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CWbemProviderGlue::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CWbemProviderGlue@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CWbemProviderGlue::QueryObjectSink(long,struct IWbemObjectSink * __ptr64 * __ptr64) __ptr64
?QueryObjectSink@CWbemProviderGlue@@UEAAJJPEAPEAUIWbemObjectSink@@@Z
; public: virtual void __cdecl MethodContext::QueryPostProcess(void) __ptr64
?QueryPostProcess@MethodContext@@UEAAXXZ
; protected: void __cdecl CWinMsgEvent::RegisterForMessage(unsigned int) __ptr64
?RegisterForMessage@CWinMsgEvent@@IEAAXI@Z
; protected: void __cdecl CHString::Release(void) __ptr64
?Release@CHString@@IEAAXXZ
; protected: static void __cdecl CHString::Release(struct CHStringData * __ptr64)
?Release@CHString@@KAXPEAUCHStringData@@@Z
; public: long __cdecl CInstance::Release(void) __ptr64
?Release@CInstance@@QEAAJXZ
; public: long __cdecl CThreadBase::Release(void) __ptr64
?Release@CThreadBase@@QEAAJXZ
; public: virtual unsigned long __cdecl CWbemGlueFactory::Release(void) __ptr64
?Release@CWbemGlueFactory@@UEAAKXZ
; public: virtual unsigned long __cdecl CWbemProviderGlue::Release(void) __ptr64
?Release@CWbemProviderGlue@@UEAAKXZ
; public: long __cdecl MethodContext::Release(void) __ptr64
?Release@MethodContext@@QEAAJXZ
; public: void __cdecl CHString::ReleaseBuffer(int) __ptr64
?ReleaseBuffer@CHString@@QEAAXH@Z
; public: void __cdecl CHPtrArray::RemoveAll(void) __ptr64
?RemoveAll@CHPtrArray@@QEAAXXZ
; public: void __cdecl CHStringArray::RemoveAll(void) __ptr64
?RemoveAll@CHStringArray@@QEAAXXZ
; public: void __cdecl CHPtrArray::RemoveAt(int,int) __ptr64
?RemoveAt@CHPtrArray@@QEAAXHH@Z
; public: void __cdecl CHStringArray::RemoveAt(int,int) __ptr64
?RemoveAt@CHStringArray@@QEAAXHH@Z
; protected: static void __cdecl CWbemProviderGlue::RemoveFromFactoryMap(class CWbemGlueFactory const * __ptr64)
?RemoveFromFactoryMap@CWbemProviderGlue@@KAXPEBVCWbemGlueFactory@@@Z
; private: void __cdecl CFrameworkQuery::Reset(void) __ptr64
?Reset@CFrameworkQuery@@AEAAXXZ
; public: int __cdecl CHString::ReverseFind(unsigned short)const  __ptr64
?ReverseFind@CHString@@QEBAHG@Z
; public: void __cdecl CRegistry::RewindSubKeys(void) __ptr64
?RewindSubKeys@CRegistry@@QEAAXXZ
; public: class CHString  __cdecl CHString::Right(int)const  __ptr64
?Right@CHString@@QEBA?AV1@H@Z
; protected: static int __cdecl CHString::SafeStrlen(unsigned short const * __ptr64)
?SafeStrlen@CHString@@KAHPEBG@Z
; public: int __cdecl CRegistrySearch::SearchAndBuildList(class CHString,class CHPtrArray & __ptr64,class CHString,class CHString,int,struct HKEY__ * __ptr64) __ptr64
?SearchAndBuildList@CRegistrySearch@@QEAAHVCHString@@AEAVCHPtrArray@@00HPEAUHKEY__@@@Z
; private: static class Provider * __ptr64 __cdecl CWbemProviderGlue::SearchMapForProvider(unsigned short const * __ptr64,unsigned short const * __ptr64)
?SearchMapForProvider@CWbemProviderGlue@@CAPEAVProvider@@PEBG0@Z
; public: void __cdecl CHPtrArray::SetAt(int,void * __ptr64) __ptr64
?SetAt@CHPtrArray@@QEAAXHPEAX@Z
; public: void __cdecl CHString::SetAt(int,unsigned short) __ptr64
?SetAt@CHString@@QEAAXHG@Z
; public: void __cdecl CHStringArray::SetAt(int,unsigned short const * __ptr64) __ptr64
?SetAt@CHStringArray@@QEAAXHPEBG@Z
; public: void __cdecl CHPtrArray::SetAtGrow(int,void * __ptr64) __ptr64
?SetAtGrow@CHPtrArray@@QEAAXHPEAX@Z
; public: void __cdecl CHStringArray::SetAtGrow(int,unsigned short const * __ptr64) __ptr64
?SetAtGrow@CHStringArray@@QEAAXHPEBG@Z
; public: bool __cdecl CInstance::SetByte(unsigned short const * __ptr64,unsigned char) __ptr64
?SetByte@CInstance@@QEAA_NPEBGE@Z
; public: bool __cdecl CInstance::SetCHString(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?SetCHString@CInstance@@QEAA_NPEBG0@Z
; public: bool __cdecl CInstance::SetCHString(unsigned short const * __ptr64,class CHString const & __ptr64) __ptr64
?SetCHString@CInstance@@QEAA_NPEBGAEBVCHString@@@Z
; public: bool __cdecl CInstance::SetCHString(unsigned short const * __ptr64,char const * __ptr64) __ptr64
?SetCHString@CInstance@@QEAA_NPEBGPEBD@Z
; void __cdecl SetCHStringResourceHandle(struct HINSTANCE__ * __ptr64)
?SetCHStringResourceHandle@@YAXPEAUHINSTANCE__@@@Z
; public: bool __cdecl CInstance::SetCharSplat(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?SetCharSplat@CInstance@@QEAA_NPEBG0@Z
; public: bool __cdecl CInstance::SetCharSplat(unsigned short const * __ptr64,unsigned long) __ptr64
?SetCharSplat@CInstance@@QEAA_NPEBGK@Z
; public: bool __cdecl CInstance::SetCharSplat(unsigned short const * __ptr64,char const * __ptr64) __ptr64
?SetCharSplat@CInstance@@QEAA_NPEBGPEBD@Z
; public: int __cdecl ParsedObjectPath::SetClassName(unsigned short const * __ptr64) __ptr64
?SetClassName@ParsedObjectPath@@QEAAHPEBG@Z
; protected: bool __cdecl Provider::SetCreationClassName(class CInstance * __ptr64) __ptr64
?SetCreationClassName@Provider@@IEAA_NPEAVCInstance@@@Z
; public: unsigned long __cdecl CRegistry::SetCurrentKeyValue(struct HKEY__ * __ptr64,unsigned short const * __ptr64,unsigned long & __ptr64) __ptr64
?SetCurrentKeyValue@CRegistry@@QEAAKPEAUHKEY__@@PEBGAEAK@Z
; public: unsigned long __cdecl CRegistry::SetCurrentKeyValue(struct HKEY__ * __ptr64,unsigned short const * __ptr64,class CHString & __ptr64) __ptr64
?SetCurrentKeyValue@CRegistry@@QEAAKPEAUHKEY__@@PEBGAEAVCHString@@@Z
; public: unsigned long __cdecl CRegistry::SetCurrentKeyValue(struct HKEY__ * __ptr64,unsigned short const * __ptr64,class CHStringArray & __ptr64) __ptr64
?SetCurrentKeyValue@CRegistry@@QEAAKPEAUHKEY__@@PEBGAEAVCHStringArray@@@Z
; public: unsigned long __cdecl CRegistry::SetCurrentKeyValue(unsigned short const * __ptr64,unsigned long & __ptr64) __ptr64
?SetCurrentKeyValue@CRegistry@@QEAAKPEBGAEAK@Z
; public: unsigned long __cdecl CRegistry::SetCurrentKeyValue(unsigned short const * __ptr64,class CHString & __ptr64) __ptr64
?SetCurrentKeyValue@CRegistry@@QEAAKPEBGAEAVCHString@@@Z
; public: unsigned long __cdecl CRegistry::SetCurrentKeyValue(unsigned short const * __ptr64,class CHStringArray & __ptr64) __ptr64
?SetCurrentKeyValue@CRegistry@@QEAAKPEBGAEAVCHStringArray@@@Z
; public: unsigned long __cdecl CRegistry::SetCurrentKeyValueExpand(struct HKEY__ * __ptr64,unsigned short const * __ptr64,class CHString & __ptr64) __ptr64
?SetCurrentKeyValueExpand@CRegistry@@QEAAKPEAUHKEY__@@PEBGAEAVCHString@@@Z
; public: int __cdecl WBEMTime::SetDMTF(unsigned short * __ptr64 const) __ptr64
?SetDMTF@WBEMTime@@QEAAHQEAG@Z
; public: bool __cdecl CInstance::SetDOUBLE(unsigned short const * __ptr64,double) __ptr64
?SetDOUBLE@CInstance@@QEAA_NPEBGN@Z
; public: bool __cdecl CInstance::SetDWORD(unsigned short const * __ptr64,unsigned long) __ptr64
?SetDWORD@CInstance@@QEAA_NPEBGK@Z
; public: bool __cdecl CInstance::SetDateTime(unsigned short const * __ptr64,class WBEMTime const & __ptr64) __ptr64
?SetDateTime@CInstance@@QEAA_NPEBGAEBVWBEMTime@@@Z
; private: void __cdecl CRegistry::SetDefaultValues(void) __ptr64
?SetDefaultValues@CRegistry@@AEAAXXZ
; public: bool __cdecl CInstance::SetEmbeddedObject(unsigned short const * __ptr64,class CInstance & __ptr64) __ptr64
?SetEmbeddedObject@CInstance@@QEAA_NPEBGAEAV1@@Z
; private: int __cdecl Provider::SetKeyFromParsedObjectPath(class CInstance * __ptr64,struct ParsedObjectPath * __ptr64) __ptr64
?SetKeyFromParsedObjectPath@Provider@@AEAAHPEAVCInstance@@PEAUParsedObjectPath@@@Z
; public: bool __cdecl CInstance::SetNull(unsigned short const * __ptr64) __ptr64
?SetNull@CInstance@@QEAA_NPEBG@Z
; private: static int __cdecl CRegistry::SetPlatformID(void)
?SetPlatformID@CRegistry@@CAHXZ
; public: void __cdecl CHPtrArray::SetSize(int,int) __ptr64
?SetSize@CHPtrArray@@QEAAXHH@Z
; public: void __cdecl CHStringArray::SetSize(int,int) __ptr64
?SetSize@CHStringArray@@QEAAXHH@Z
; public: static bool __cdecl CWbemProviderGlue::SetStatusObject(class MethodContext * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,long,struct tagSAFEARRAY const * __ptr64,struct tagSAFEARRAY const * __ptr64)
?SetStatusObject@CWbemProviderGlue@@SA_NPEAVMethodContext@@PEBG1JPEBUtagSAFEARRAY@@2@Z
; public: bool __cdecl MethodContext::SetStatusObject(struct IWbemClassObject * __ptr64) __ptr64
?SetStatusObject@MethodContext@@QEAA_NPEAUIWbemClassObject@@@Z
; public: bool __cdecl CInstance::SetStringArray(unsigned short const * __ptr64,struct tagSAFEARRAY const & __ptr64) __ptr64
?SetStringArray@CInstance@@QEAA_NPEBGAEBUtagSAFEARRAY@@@Z
; public: bool __cdecl CInstance::SetTimeSpan(unsigned short const * __ptr64,class WBEMTimeSpan const & __ptr64) __ptr64
?SetTimeSpan@CInstance@@QEAA_NPEBGAEBVWBEMTimeSpan@@@Z
; public: bool __cdecl CInstance::SetVariant(unsigned short const * __ptr64,struct tagVARIANT const & __ptr64) __ptr64
?SetVariant@CInstance@@QEAA_NPEBGAEBUtagVARIANT@@@Z
; public: bool __cdecl CInstance::SetWBEMINT16(unsigned short const * __ptr64,short const & __ptr64) __ptr64
?SetWBEMINT16@CInstance@@QEAA_NPEBGAEBF@Z
; public: bool __cdecl CInstance::SetWBEMINT64(unsigned short const * __ptr64,class CHString const & __ptr64) __ptr64
?SetWBEMINT64@CInstance@@QEAA_NPEBGAEBVCHString@@@Z
; public: bool __cdecl CInstance::SetWBEMINT64(unsigned short const * __ptr64,__int64) __ptr64
?SetWBEMINT64@CInstance@@QEAA_NPEBG_J@Z
; public: bool __cdecl CInstance::SetWBEMINT64(unsigned short const * __ptr64,unsigned __int64) __ptr64
?SetWBEMINT64@CInstance@@QEAA_NPEBG_K@Z
; public: bool __cdecl CInstance::SetWCHARSplat(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?SetWCHARSplat@CInstance@@QEAA_NPEBG0@Z
; public: bool __cdecl CInstance::SetWORD(unsigned short const * __ptr64,unsigned short) __ptr64
?SetWORD@CInstance@@QEAA_NPEBGG@Z
; public: bool __cdecl CInstance::Setbool(unsigned short const * __ptr64,bool) __ptr64
?Setbool@CInstance@@QEAA_NPEBG_N@Z
; public: int __cdecl CAutoEvent::Signal(void) __ptr64
?Signal@CAutoEvent@@QEAAHXZ
; public: class CHString  __cdecl CHString::SpanExcluding(unsigned short const * __ptr64)const  __ptr64
?SpanExcluding@CHString@@QEBA?AV1@PEBG@Z
; public: class CHString  __cdecl CHString::SpanIncluding(unsigned short const * __ptr64)const  __ptr64
?SpanIncluding@CHString@@QEBA?AV1@PEBG@Z
; public: void __cdecl CHString::TrimLeft(void) __ptr64
?TrimLeft@CHString@@QEAAXXZ
; public: void __cdecl CHString::TrimRight(void) __ptr64
?TrimRight@CHString@@QEAAXXZ
; private: static void __cdecl CWbemProviderGlue::UnInit(void)
?UnInit@CWbemProviderGlue@@CAXXZ
; protected: void __cdecl CWinMsgEvent::UnRegisterAllMessages(void) __ptr64
?UnRegisterAllMessages@CWinMsgEvent@@IEAAXXZ
; protected: bool __cdecl CWinMsgEvent::UnRegisterMessage(unsigned int) __ptr64
?UnRegisterMessage@CWinMsgEvent@@IEAA_NI@Z
; private: void __cdecl CThreadBase::Unlock(void) __ptr64
?Unlock@CThreadBase@@AEAAXXZ
; public: void __cdecl CHString::UnlockBuffer(void) __ptr64
?UnlockBuffer@CHString@@QEAAXXZ
; private: static void __cdecl CWbemProviderGlue::UnlockFactoryMap(void)
?UnlockFactoryMap@CWbemProviderGlue@@CAXXZ
; private: static void __cdecl CWbemProviderGlue::UnlockProviderMap(void)
?UnlockProviderMap@CWbemProviderGlue@@CAXXZ
; public: static int __cdecl CObjectPathParser::Unparse(struct ParsedObjectPath * __ptr64,unsigned short * __ptr64 * __ptr64)
?Unparse@CObjectPathParser@@SAHPEAUParsedObjectPath@@PEAPEAG@Z
; protected: virtual long __cdecl Provider::ValidateDeletionFlags(long) __ptr64
?ValidateDeletionFlags@Provider@@MEAAJJ@Z
; protected: virtual long __cdecl Provider::ValidateEnumerationFlags(long) __ptr64
?ValidateEnumerationFlags@Provider@@MEAAJJ@Z
; protected: long __cdecl Provider::ValidateFlags(long,enum Provider::FlagDefs) __ptr64
?ValidateFlags@Provider@@IEAAJJW4FlagDefs@1@@Z
; protected: virtual long __cdecl Provider::ValidateGetObjFlags(long) __ptr64
?ValidateGetObjFlags@Provider@@MEAAJJ@Z
; private: int __cdecl Provider::ValidateIMOSPointer(void) __ptr64
?ValidateIMOSPointer@Provider@@AEAAHXZ
; protected: virtual long __cdecl Provider::ValidateMethodFlags(long) __ptr64
?ValidateMethodFlags@Provider@@MEAAJJ@Z
; protected: virtual long __cdecl Provider::ValidatePutInstanceFlags(long) __ptr64
?ValidatePutInstanceFlags@Provider@@MEAAJJ@Z
; protected: virtual long __cdecl Provider::ValidateQueryFlags(long) __ptr64
?ValidateQueryFlags@Provider@@MEAAJJ@Z
; public: unsigned long __cdecl CAutoEvent::Wait(unsigned long) __ptr64
?Wait@CAutoEvent@@QEAAKK@Z
; private: static void __cdecl CWinMsgEvent::WindowsDispatch(void)
?WindowsDispatch@CWinMsgEvent@@CAXXZ
; private: void __cdecl CObjectPathParser::Zero(void) __ptr64
?Zero@CObjectPathParser@@AEAAXXZ
; private: int __cdecl CObjectPathParser::begin_parse(void) __ptr64
?begin_parse@CObjectPathParser@@AEAAHXZ
; class ProviderLog  captainsLog
?captainsLog@@3VProviderLog@@A DATA
; private: static unsigned long __cdecl CWinMsgEvent::dwThreadProc(void * __ptr64)
?dwThreadProc@CWinMsgEvent@@CAKPEAX@Z
; class CCritSec  g_cs
?g_cs@@3VCCritSec@@A DATA
; private: int __cdecl CObjectPathParser::ident_becomes_class(void) __ptr64
?ident_becomes_class@CObjectPathParser@@AEAAHXZ
; private: int __cdecl CObjectPathParser::ident_becomes_ns(void) __ptr64
?ident_becomes_ns@CObjectPathParser@@AEAAHXZ
; private: int __cdecl CObjectPathParser::key_const(void) __ptr64
?key_const@CObjectPathParser@@AEAAHXZ
; private: int __cdecl CObjectPathParser::keyref(void) __ptr64
?keyref@CObjectPathParser@@AEAAHXZ
; private: int __cdecl CObjectPathParser::keyref_list(void) __ptr64
?keyref_list@CObjectPathParser@@AEAAHXZ
; private: int __cdecl CObjectPathParser::keyref_term(void) __ptr64
?keyref_term@CObjectPathParser@@AEAAHXZ
; private: static class std::set<void * __ptr64,struct std::less<void * __ptr64>,class std::allocator<void * __ptr64> >  CWbemProviderGlue::m_FlushPtrs
?m_FlushPtrs@CWbemProviderGlue@@0V?$set@PEAXU?$less@PEAX@std@@V?$allocator@PEAX@2@@std@@A DATA
; private: static class CCritSec  CWbemProviderGlue::m_csFlushPtrs
?m_csFlushPtrs@CWbemProviderGlue@@0VCCritSec@@A DATA
; private: static class CCritSec  CWbemProviderGlue::m_csStatusObject
?m_csStatusObject@CWbemProviderGlue@@0VCCritSec@@A DATA
; private: static struct IWbemClassObject * __ptr64  __ptr64 CWbemProviderGlue::m_pStatusObject
?m_pStatusObject@CWbemProviderGlue@@0PEAUIWbemClassObject@@EA DATA
; private: static class CAutoEvent  CWinMsgEvent::mg_aeCreateWindow
?mg_aeCreateWindow@CWinMsgEvent@@0VCAutoEvent@@A DATA
; private: static class CCritSec  CWinMsgEvent::mg_csMapLock
?mg_csMapLock@CWinMsgEvent@@0VCCritSec@@A DATA
; private: static class CCritSec  CWinMsgEvent::mg_csWindowLock
?mg_csWindowLock@CWinMsgEvent@@0VCCritSec@@A DATA
; private: static void * __ptr64  __ptr64 CWinMsgEvent::mg_hThreadPumpHandle
?mg_hThreadPumpHandle@CWinMsgEvent@@0PEAXEA DATA
; private: static struct HWND__ * __ptr64  __ptr64 CWinMsgEvent::mg_hWnd
?mg_hWnd@CWinMsgEvent@@0PEAUHWND__@@EA DATA
; private: static class std::multimap<unsigned int,class CWinMsgEvent * __ptr64,struct std::less<unsigned int>,class std::allocator<class CWinMsgEvent * __ptr64> >  CWinMsgEvent::mg_oSinkMap
?mg_oSinkMap@CWinMsgEvent@@0V?$multimap@IPEAVCWinMsgEvent@@U?$less@I@std@@V?$allocator@PEAVCWinMsgEvent@@@3@@std@@A DATA
; private: long __cdecl CRegistry::myRegCreateKeyEx(struct HKEY__ * __ptr64,unsigned short const * __ptr64,unsigned long,unsigned short * __ptr64,unsigned long,unsigned long,struct _SECURITY_ATTRIBUTES * __ptr64,struct HKEY__ * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64
?myRegCreateKeyEx@CRegistry@@AEAAJPEAUHKEY__@@PEBGKPEAGKKPEAU_SECURITY_ATTRIBUTES@@PEAPEAU2@PEAK@Z
; private: long __cdecl CRegistry::myRegDeleteKey(struct HKEY__ * __ptr64,unsigned short const * __ptr64) __ptr64
?myRegDeleteKey@CRegistry@@AEAAJPEAUHKEY__@@PEBG@Z
; private: long __cdecl CRegistry::myRegDeleteValue(struct HKEY__ * __ptr64,unsigned short const * __ptr64) __ptr64
?myRegDeleteValue@CRegistry@@AEAAJPEAUHKEY__@@PEBG@Z
; private: long __cdecl CRegistry::myRegEnumKey(struct HKEY__ * __ptr64,unsigned long,unsigned short * __ptr64,unsigned long) __ptr64
?myRegEnumKey@CRegistry@@AEAAJPEAUHKEY__@@KPEAGK@Z
; private: long __cdecl CRegistry::myRegEnumValue(struct HKEY__ * __ptr64,unsigned long,unsigned short * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,unsigned char * __ptr64,unsigned long * __ptr64) __ptr64
?myRegEnumValue@CRegistry@@AEAAJPEAUHKEY__@@KPEAGPEAK22PEAE2@Z
; private: long __cdecl CRegistry::myRegOpenKeyEx(struct HKEY__ * __ptr64,unsigned short const * __ptr64,unsigned long,unsigned long,struct HKEY__ * __ptr64 * __ptr64) __ptr64
?myRegOpenKeyEx@CRegistry@@AEAAJPEAUHKEY__@@PEBGKKPEAPEAU2@@Z
; private: long __cdecl CRegistry::myRegQueryInfoKey(struct HKEY__ * __ptr64,unsigned short * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,struct _FILETIME * __ptr64) __ptr64
?myRegQueryInfoKey@CRegistry@@AEAAJPEAUHKEY__@@PEAGPEAK22222222PEAU_FILETIME@@@Z
; private: long __cdecl CRegistry::myRegQueryValueEx(struct HKEY__ * __ptr64,unsigned short const * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,unsigned char * __ptr64,unsigned long * __ptr64) __ptr64
?myRegQueryValueEx@CRegistry@@AEAAJPEAUHKEY__@@PEBGPEAK2PEAE2@Z
; private: long __cdecl CRegistry::myRegSetValueEx(struct HKEY__ * __ptr64,unsigned short const * __ptr64,unsigned long,unsigned long,unsigned char const * __ptr64,unsigned long) __ptr64
?myRegSetValueEx@CRegistry@@AEAAJPEAUHKEY__@@PEBGKKPEBEK@Z
; private: int __cdecl CObjectPathParser::ns_list(void) __ptr64
?ns_list@CObjectPathParser@@AEAAHXZ
; private: int __cdecl CObjectPathParser::ns_list_rest(void) __ptr64
?ns_list_rest@CObjectPathParser@@AEAAHXZ
; private: int __cdecl CObjectPathParser::ns_or_class(void) __ptr64
?ns_or_class@CObjectPathParser@@AEAAHXZ
; private: int __cdecl CObjectPathParser::ns_or_server(void) __ptr64
?ns_or_server@CObjectPathParser@@AEAAHXZ
; private: int __cdecl CObjectPathParser::objref(void) __ptr64
?objref@CObjectPathParser@@AEAAHXZ
; private: int __cdecl CObjectPathParser::objref_rest(void) __ptr64
?objref_rest@CObjectPathParser@@AEAAHXZ
; private: int __cdecl CObjectPathParser::optional_objref(void) __ptr64
?optional_objref@CObjectPathParser@@AEAAHXZ
; private: int __cdecl CObjectPathParser::propname(void) __ptr64
?propname@CObjectPathParser@@AEAAHXZ
; private: static int  CWbemProviderGlue::s_bInitted
?s_bInitted@CWbemProviderGlue@@0HA DATA
; private: static class CCritSec  CWbemProviderGlue::s_csFactoryMap
?s_csFactoryMap@CWbemProviderGlue@@0VCCritSec@@A DATA
; private: static class CCritSec  CWbemProviderGlue::s_csProviderMap
?s_csProviderMap@CWbemProviderGlue@@0VCCritSec@@A DATA
; private: static unsigned long  CWbemProviderGlue::s_dwMajorVersion
?s_dwMajorVersion@CWbemProviderGlue@@0KA DATA
; private: static unsigned long  CRegistry::s_dwPlatform
?s_dwPlatform@CRegistry@@0KA DATA
; private: static unsigned long  CWbemProviderGlue::s_dwPlatform
?s_dwPlatform@CWbemProviderGlue@@0KA DATA
; private: static int  CRegistry::s_fPlatformSet
?s_fPlatformSet@CRegistry@@0HA DATA
; private: static class std::map<void const * __ptr64,long * __ptr64,struct std::less<void const * __ptr64>,class std::allocator<long * __ptr64> >  CWbemProviderGlue::s_factorymap
?s_factorymap@CWbemProviderGlue@@0V?$map@PEBXPEAJU?$less@PEBX@std@@V?$allocator@PEAJ@2@@std@@A DATA
; private: static long  CWbemProviderGlue::s_lObjects
?s_lObjects@CWbemProviderGlue@@0JA DATA
; private: static class std::map<class CHString,void * __ptr64,struct std::less<class CHString>,class std::allocator<void * __ptr64> >  CWbemProviderGlue::s_providersmap
?s_providersmap@CWbemProviderGlue@@0V?$map@VCHString@@PEAXU?$less@VCHString@@@std@@V?$allocator@PEAX@3@@std@@A DATA
; private: static class CHString  Provider::s_strComputerName
?s_strComputerName@Provider@@0VCHString@@A DATA
; private: static unsigned short *  CWbemProviderGlue::s_wstrCSDVersion
?s_wstrCSDVersion@CWbemProviderGlue@@0PAGA DATA
DoCmd
