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