; 
; Exports of file framedyn.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY framedyn.dll
EXPORTS
; public: __thiscall CAutoEvent::CAutoEvent(void)
??0CAutoEvent@@QAE@XZ
; public: __thiscall CFrameworkQuery::CFrameworkQuery(class CFrameworkQuery const &)
??0CFrameworkQuery@@QAE@ABV0@@Z
; public: __thiscall CFrameworkQuery::CFrameworkQuery(void)
??0CFrameworkQuery@@QAE@XZ
; public: __thiscall CFrameworkQueryEx::CFrameworkQueryEx(class CFrameworkQueryEx const &)
??0CFrameworkQueryEx@@QAE@ABV0@@Z
; public: __thiscall CFrameworkQueryEx::CFrameworkQueryEx(void)
??0CFrameworkQueryEx@@QAE@XZ
; public: __thiscall CHPtrArray::CHPtrArray(void)
??0CHPtrArray@@QAE@XZ
; public: __thiscall CHString::CHString(class CHString const &)
??0CHString@@QAE@ABV0@@Z
; public: __thiscall CHString::CHString(unsigned short,int)
??0CHString@@QAE@GH@Z
; public: __thiscall CHString::CHString(char const *)
??0CHString@@QAE@PBD@Z
; public: __thiscall CHString::CHString(unsigned char const *)
??0CHString@@QAE@PBE@Z
; public: __thiscall CHString::CHString(unsigned short const *)
??0CHString@@QAE@PBG@Z
; public: __thiscall CHString::CHString(unsigned short const *,int)
??0CHString@@QAE@PBGH@Z
; public: __thiscall CHString::CHString(void)
??0CHString@@QAE@XZ
; public: __thiscall CHStringArray::CHStringArray(void)
??0CHStringArray@@QAE@XZ
; public: __thiscall CInstance::CInstance(class CInstance const &)
??0CInstance@@QAE@ABV0@@Z
; public: __thiscall CInstance::CInstance(struct IWbemClassObject *,class MethodContext *)
??0CInstance@@QAE@PAUIWbemClassObject@@PAVMethodContext@@@Z
; public: __thiscall CObjectPathParser::CObjectPathParser(enum ObjectParserFlags)
??0CObjectPathParser@@QAE@W4ObjectParserFlags@@@Z
; public: __thiscall CRegistry::CRegistry(class CRegistry const &)
??0CRegistry@@QAE@ABV0@@Z
; public: __thiscall CRegistry::CRegistry(void)
??0CRegistry@@QAE@XZ
; public: __thiscall CRegistrySearch::CRegistrySearch(class CRegistrySearch const &)
??0CRegistrySearch@@QAE@ABV0@@Z
; public: __thiscall CRegistrySearch::CRegistrySearch(void)
??0CRegistrySearch@@QAE@XZ
; public: __thiscall CThreadBase::CThreadBase(class CThreadBase const &)
??0CThreadBase@@QAE@ABV0@@Z
; public: __thiscall CThreadBase::CThreadBase(enum CThreadBase::THREAD_SAFETY_MECHANISM)
??0CThreadBase@@QAE@W4THREAD_SAFETY_MECHANISM@0@@Z
; public: __thiscall CWbemGlueFactory::CWbemGlueFactory(class CWbemGlueFactory const &)
??0CWbemGlueFactory@@QAE@ABV0@@Z
; public: __thiscall CWbemGlueFactory::CWbemGlueFactory(long *)
??0CWbemGlueFactory@@QAE@PAJ@Z
; public: __thiscall CWbemGlueFactory::CWbemGlueFactory(void)
??0CWbemGlueFactory@@QAE@XZ
; public: __thiscall CWbemProviderGlue::CWbemProviderGlue(class CWbemProviderGlue const &)
??0CWbemProviderGlue@@QAE@ABV0@@Z
; public: __thiscall CWbemProviderGlue::CWbemProviderGlue(long *)
??0CWbemProviderGlue@@QAE@PAJ@Z
; public: __thiscall CWbemProviderGlue::CWbemProviderGlue(void)
??0CWbemProviderGlue@@QAE@XZ
; public: __thiscall CWinMsgEvent::CWinMsgEvent(class CWinMsgEvent const &)
??0CWinMsgEvent@@QAE@ABV0@@Z
; public: __thiscall CWinMsgEvent::CWinMsgEvent(void)
??0CWinMsgEvent@@QAE@XZ
; public: __thiscall CreateMutexAsProcess::CreateMutexAsProcess(unsigned short const *)
??0CreateMutexAsProcess@@QAE@PBG@Z
; public: __thiscall KeyRef::KeyRef(unsigned short const *,struct tagVARIANT const *)
??0KeyRef@@QAE@PBGPBUtagVARIANT@@@Z
; public: __thiscall KeyRef::KeyRef(void)
??0KeyRef@@QAE@XZ
; public: __thiscall MethodContext::MethodContext(class MethodContext const &)
??0MethodContext@@QAE@ABV0@@Z
; public: __thiscall MethodContext::MethodContext(struct IWbemContext *,class CWbemProviderGlue *)
??0MethodContext@@QAE@PAUIWbemContext@@PAVCWbemProviderGlue@@@Z
; public: __thiscall ParsedObjectPath::ParsedObjectPath(void)
??0ParsedObjectPath@@QAE@XZ
; public: __thiscall Provider::Provider(class Provider const &)
??0Provider@@QAE@ABV0@@Z
; public: __thiscall Provider::Provider(unsigned short const *,unsigned short const *)
??0Provider@@QAE@PBG0@Z
; public: __thiscall ProviderLog::ProviderLog(class ProviderLog const &)
??0ProviderLog@@QAE@ABV0@@Z
; public: __thiscall ProviderLog::ProviderLog(void)
??0ProviderLog@@QAE@XZ
; public: __thiscall WBEMTime::WBEMTime(long const &)
??0WBEMTime@@QAE@ABJ@Z
; public: __thiscall WBEMTime::WBEMTime(struct _FILETIME const &)
??0WBEMTime@@QAE@ABU_FILETIME@@@Z
; public: __thiscall WBEMTime::WBEMTime(struct _SYSTEMTIME const &)
??0WBEMTime@@QAE@ABU_SYSTEMTIME@@@Z
; public: __thiscall WBEMTime::WBEMTime(struct tm const &)
??0WBEMTime@@QAE@ABUtm@@@Z
; public: __thiscall WBEMTime::WBEMTime(unsigned short * const)
??0WBEMTime@@QAE@QAG@Z
; public: __thiscall WBEMTime::WBEMTime(void)
??0WBEMTime@@QAE@XZ
; public: __thiscall WBEMTimeSpan::WBEMTimeSpan(long const &)
??0WBEMTimeSpan@@QAE@ABJ@Z
; public: __thiscall WBEMTimeSpan::WBEMTimeSpan(struct _FILETIME const &)
??0WBEMTimeSpan@@QAE@ABU_FILETIME@@@Z
; public: __thiscall WBEMTimeSpan::WBEMTimeSpan(int,int,int,int,int,int,int)
??0WBEMTimeSpan@@QAE@HHHHHHH@Z
; public: __thiscall WBEMTimeSpan::WBEMTimeSpan(unsigned short * const)
??0WBEMTimeSpan@@QAE@QAG@Z
; public: __thiscall WBEMTimeSpan::WBEMTimeSpan(void)
??0WBEMTimeSpan@@QAE@XZ
; public: __thiscall std::_Lockit::_Lockit(void)
??0_Lockit@std@@QAE@XZ
; public: __thiscall CAutoEvent::~CAutoEvent(void)
??1CAutoEvent@@QAE@XZ
; public: __thiscall CFrameworkQuery::~CFrameworkQuery(void)
??1CFrameworkQuery@@QAE@XZ
; public: __thiscall CFrameworkQueryEx::~CFrameworkQueryEx(void)
??1CFrameworkQueryEx@@QAE@XZ
; public: __thiscall CHPtrArray::~CHPtrArray(void)
??1CHPtrArray@@QAE@XZ
; public: __thiscall CHString::~CHString(void)
??1CHString@@QAE@XZ
; public: __thiscall CHStringArray::~CHStringArray(void)
??1CHStringArray@@QAE@XZ
; public: virtual __thiscall CInstance::~CInstance(void)
??1CInstance@@UAE@XZ
; public: __thiscall CObjectPathParser::~CObjectPathParser(void)
??1CObjectPathParser@@QAE@XZ
; public: __thiscall CRegistry::~CRegistry(void)
??1CRegistry@@QAE@XZ
; public: __thiscall CRegistrySearch::~CRegistrySearch(void)
??1CRegistrySearch@@QAE@XZ
; public: virtual __thiscall CThreadBase::~CThreadBase(void)
??1CThreadBase@@UAE@XZ
; public: __thiscall CWbemGlueFactory::~CWbemGlueFactory(void)
??1CWbemGlueFactory@@QAE@XZ
; public: __thiscall CWbemProviderGlue::~CWbemProviderGlue(void)
??1CWbemProviderGlue@@QAE@XZ
; public: __thiscall CWinMsgEvent::~CWinMsgEvent(void)
??1CWinMsgEvent@@QAE@XZ
; public: __thiscall CreateMutexAsProcess::~CreateMutexAsProcess(void)
??1CreateMutexAsProcess@@QAE@XZ
; public: __thiscall KeyRef::~KeyRef(void)
??1KeyRef@@QAE@XZ
; public: virtual __thiscall MethodContext::~MethodContext(void)
??1MethodContext@@UAE@XZ
; public: __thiscall ParsedObjectPath::~ParsedObjectPath(void)
??1ParsedObjectPath@@QAE@XZ
; public: virtual __thiscall Provider::~Provider(void)
??1Provider@@UAE@XZ
; public: virtual __thiscall ProviderLog::~ProviderLog(void)
??1ProviderLog@@UAE@XZ
; public: __thiscall std::_Lockit::~_Lockit(void)
??1_Lockit@std@@QAE@XZ
; public: class CAutoEvent & __thiscall CAutoEvent::operator=(class CAutoEvent const &)
??4CAutoEvent@@QAEAAV0@ABV0@@Z
; public: class CFrameworkQuery & __thiscall CFrameworkQuery::operator=(class CFrameworkQuery const &)
??4CFrameworkQuery@@QAEAAV0@ABV0@@Z
; public: class CFrameworkQueryEx & __thiscall CFrameworkQueryEx::operator=(class CFrameworkQueryEx const &)
??4CFrameworkQueryEx@@QAEAAV0@ABV0@@Z
; public: class CHPtrArray & __thiscall CHPtrArray::operator=(class CHPtrArray const &)
??4CHPtrArray@@QAEAAV0@ABV0@@Z
; public: class CHString const & __thiscall CHString::operator=(class CHString const &)
??4CHString@@QAEABV0@ABV0@@Z
; public: class CHString const & __thiscall CHString::operator=(char)
??4CHString@@QAEABV0@D@Z
; public: class CHString const & __thiscall CHString::operator=(unsigned short)
??4CHString@@QAEABV0@G@Z
; public: class CHString const & __thiscall CHString::operator=(class CHString *)
??4CHString@@QAEABV0@PAV0@@Z
; public: class CHString const & __thiscall CHString::operator=(char const *)
??4CHString@@QAEABV0@PBD@Z
; public: class CHString const & __thiscall CHString::operator=(unsigned char const *)
??4CHString@@QAEABV0@PBE@Z
; public: class CHString const & __thiscall CHString::operator=(unsigned short const *)
??4CHString@@QAEABV0@PBG@Z
; public: class CHStringArray & __thiscall CHStringArray::operator=(class CHStringArray const &)
??4CHStringArray@@QAEAAV0@ABV0@@Z
; public: class CInstance & __thiscall CInstance::operator=(class CInstance const &)
??4CInstance@@QAEAAV0@ABV0@@Z
; public: class CObjectPathParser & __thiscall CObjectPathParser::operator=(class CObjectPathParser const &)
??4CObjectPathParser@@QAEAAV0@ABV0@@Z
; public: class CRegistry & __thiscall CRegistry::operator=(class CRegistry const &)
??4CRegistry@@QAEAAV0@ABV0@@Z
; public: class CRegistrySearch & __thiscall CRegistrySearch::operator=(class CRegistrySearch const &)
??4CRegistrySearch@@QAEAAV0@ABV0@@Z
; public: class CThreadBase & __thiscall CThreadBase::operator=(class CThreadBase const &)
??4CThreadBase@@QAEAAV0@ABV0@@Z
; public: class CWbemGlueFactory & __thiscall CWbemGlueFactory::operator=(class CWbemGlueFactory const &)
??4CWbemGlueFactory@@QAEAAV0@ABV0@@Z
; public: class CWbemProviderGlue & __thiscall CWbemProviderGlue::operator=(class CWbemProviderGlue const &)
??4CWbemProviderGlue@@QAEAAV0@ABV0@@Z
; public: class CWinMsgEvent & __thiscall CWinMsgEvent::operator=(class CWinMsgEvent const &)
??4CWinMsgEvent@@QAEAAV0@ABV0@@Z
; public: class CreateMutexAsProcess & __thiscall CreateMutexAsProcess::operator=(class CreateMutexAsProcess const &)
??4CreateMutexAsProcess@@QAEAAV0@ABV0@@Z
; public: struct KeyRef & __thiscall KeyRef::operator=(struct KeyRef const &)
??4KeyRef@@QAEAAU0@ABU0@@Z
; public: class MethodContext & __thiscall MethodContext::operator=(class MethodContext const &)
??4MethodContext@@QAEAAV0@ABV0@@Z
; public: struct ParsedObjectPath & __thiscall ParsedObjectPath::operator=(struct ParsedObjectPath const &)
??4ParsedObjectPath@@QAEAAU0@ABU0@@Z
; public: class Provider & __thiscall Provider::operator=(class Provider const &)
??4Provider@@QAEAAV0@ABV0@@Z
; public: class ProviderLog & __thiscall ProviderLog::operator=(class ProviderLog const &)
??4ProviderLog@@QAEAAV0@ABV0@@Z
; public: class WBEMTime & __thiscall WBEMTime::operator=(class WBEMTime const &)
??4WBEMTime@@QAEAAV0@ABV0@@Z
; public: class WBEMTime const & __thiscall WBEMTime::operator=(long const &)
??4WBEMTime@@QAEABV0@ABJ@Z
; public: class WBEMTime const & __thiscall WBEMTime::operator=(struct _FILETIME const &)
??4WBEMTime@@QAEABV0@ABU_FILETIME@@@Z
; public: class WBEMTime const & __thiscall WBEMTime::operator=(struct _SYSTEMTIME const &)
??4WBEMTime@@QAEABV0@ABU_SYSTEMTIME@@@Z
; public: class WBEMTime const & __thiscall WBEMTime::operator=(struct tm const &)
??4WBEMTime@@QAEABV0@ABUtm@@@Z
; public: class WBEMTime const & __thiscall WBEMTime::operator=(unsigned short * const)
??4WBEMTime@@QAEABV0@QAG@Z
; public: class WBEMTimeSpan & __thiscall WBEMTimeSpan::operator=(class WBEMTimeSpan const &)
??4WBEMTimeSpan@@QAEAAV0@ABV0@@Z
; public: class WBEMTimeSpan const & __thiscall WBEMTimeSpan::operator=(long const &)
??4WBEMTimeSpan@@QAEABV0@ABJ@Z
; public: class WBEMTimeSpan const & __thiscall WBEMTimeSpan::operator=(struct _FILETIME const &)
??4WBEMTimeSpan@@QAEABV0@ABU_FILETIME@@@Z
; public: class WBEMTimeSpan const & __thiscall WBEMTimeSpan::operator=(unsigned short * const)
??4WBEMTimeSpan@@QAEABV0@QAG@Z
; public: int __thiscall WBEMTime::operator==(class WBEMTime const &)const 
??8WBEMTime@@QBEHABV0@@Z
; public: int __thiscall WBEMTimeSpan::operator==(class WBEMTimeSpan const &)const 
??8WBEMTimeSpan@@QBEHABV0@@Z
; public: int __thiscall WBEMTime::operator!=(class WBEMTime const &)const 
??9WBEMTime@@QBEHABV0@@Z
; public: int __thiscall WBEMTimeSpan::operator!=(class WBEMTimeSpan const &)const 
??9WBEMTimeSpan@@QBEHABV0@@Z
; public: void * & __thiscall CHPtrArray::operator[](int)
??ACHPtrArray@@QAEAAPAXH@Z
; public: void * __thiscall CHPtrArray::operator[](int)const 
??ACHPtrArray@@QBEPAXH@Z
; public: unsigned short __thiscall CHString::operator[](int)const 
??ACHString@@QBEGH@Z
; public: class CHString & __thiscall CHStringArray::operator[](int)
??ACHStringArray@@QAEAAVCHString@@H@Z
; public: class CHString  __thiscall CHStringArray::operator[](int)const 
??ACHStringArray@@QBE?AVCHString@@H@Z
; public: __thiscall CHString::operator unsigned short const *(void)const 
??BCHString@@QBEPBGXZ
; public: class WBEMTimeSpan  __thiscall WBEMTime::operator-(class WBEMTime const &)
??GWBEMTime@@QAE?AVWBEMTimeSpan@@ABV0@@Z
; public: class WBEMTime  __thiscall WBEMTime::operator-(class WBEMTimeSpan const &)const 
??GWBEMTime@@QBE?AV0@ABVWBEMTimeSpan@@@Z
; public: class WBEMTimeSpan  __thiscall WBEMTimeSpan::operator-(class WBEMTimeSpan const &)const 
??GWBEMTimeSpan@@QBE?AV0@ABV0@@Z
; class CHString  __stdcall operator+(class CHString const &,class CHString const &)
??H@YG?AVCHString@@ABV0@0@Z
; class CHString  __stdcall operator+(class CHString const &,unsigned short)
??H@YG?AVCHString@@ABV0@G@Z
; class CHString  __stdcall operator+(class CHString const &,unsigned short const *)
??H@YG?AVCHString@@ABV0@PBG@Z
; class CHString  __stdcall operator+(unsigned short,class CHString const &)
??H@YG?AVCHString@@GABV0@@Z
; class CHString  __stdcall operator+(unsigned short const *,class CHString const &)
??H@YG?AVCHString@@PBGABV0@@Z
; public: class WBEMTime  __thiscall WBEMTime::operator+(class WBEMTimeSpan const &)const 
??HWBEMTime@@QBE?AV0@ABVWBEMTimeSpan@@@Z
; public: class WBEMTimeSpan  __thiscall WBEMTimeSpan::operator+(class WBEMTimeSpan const &)const 
??HWBEMTimeSpan@@QBE?AV0@ABV0@@Z
; public: int __thiscall WBEMTime::operator<(class WBEMTime const &)const 
??MWBEMTime@@QBEHABV0@@Z
; public: int __thiscall WBEMTimeSpan::operator<(class WBEMTimeSpan const &)const 
??MWBEMTimeSpan@@QBEHABV0@@Z
; public: int __thiscall WBEMTime::operator<=(class WBEMTime const &)const 
??NWBEMTime@@QBEHABV0@@Z
; public: int __thiscall WBEMTimeSpan::operator<=(class WBEMTimeSpan const &)const 
??NWBEMTimeSpan@@QBEHABV0@@Z
; public: int __thiscall WBEMTime::operator>(class WBEMTime const &)const 
??OWBEMTime@@QBEHABV0@@Z
; public: int __thiscall WBEMTimeSpan::operator>(class WBEMTimeSpan const &)const 
??OWBEMTimeSpan@@QBEHABV0@@Z
; public: int __thiscall WBEMTime::operator>=(class WBEMTime const &)const 
??PWBEMTime@@QBEHABV0@@Z
; public: int __thiscall WBEMTimeSpan::operator>=(class WBEMTimeSpan const &)const 
??PWBEMTimeSpan@@QBEHABV0@@Z
; public: class CHString const & __thiscall CHString::operator+=(class CHString const &)
??YCHString@@QAEABV0@ABV0@@Z
; public: class CHString const & __thiscall CHString::operator+=(char)
??YCHString@@QAEABV0@D@Z
; public: class CHString const & __thiscall CHString::operator+=(unsigned short)
??YCHString@@QAEABV0@G@Z
; public: class CHString const & __thiscall CHString::operator+=(unsigned short const *)
??YCHString@@QAEABV0@PBG@Z
; public: class WBEMTime const & __thiscall WBEMTime::operator+=(class WBEMTimeSpan const &)
??YWBEMTime@@QAEABV0@ABVWBEMTimeSpan@@@Z
; public: class WBEMTimeSpan const & __thiscall WBEMTimeSpan::operator+=(class WBEMTimeSpan const &)
??YWBEMTimeSpan@@QAEABV0@ABV0@@Z
; public: class WBEMTime const & __thiscall WBEMTime::operator-=(class WBEMTimeSpan const &)
??ZWBEMTime@@QAEABV0@ABVWBEMTimeSpan@@@Z
; public: class WBEMTimeSpan const & __thiscall WBEMTimeSpan::operator-=(class WBEMTimeSpan const &)
??ZWBEMTimeSpan@@QAEABV0@ABV0@@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 __thiscall CObjectPathParser::`default constructor closure'(void)
??_FCObjectPathParser@@QAEXXZ
; public: void __thiscall CThreadBase::`default constructor closure'(void)
??_FCThreadBase@@QAEXXZ
; public: int __thiscall CHPtrArray::Add(void *)
?Add@CHPtrArray@@QAEHPAX@Z
; public: int __thiscall CHStringArray::Add(unsigned short const *)
?Add@CHStringArray@@QAEHPBG@Z
; private: void __thiscall CWbemProviderGlue::AddFlushPtr(void *)
?AddFlushPtr@CWbemProviderGlue@@AAEXPAX@Z
; public: int __thiscall ParsedObjectPath::AddKeyRef(struct KeyRef *)
?AddKeyRef@ParsedObjectPath@@QAEHPAUKeyRef@@@Z
; public: int __thiscall ParsedObjectPath::AddKeyRef(unsigned short const *,struct tagVARIANT const *)
?AddKeyRef@ParsedObjectPath@@QAEHPBGPBUtagVARIANT@@@Z
; public: int __thiscall ParsedObjectPath::AddKeyRefEx(unsigned short const *,struct tagVARIANT const *)
?AddKeyRefEx@ParsedObjectPath@@QAEHPBGPBUtagVARIANT@@@Z
; public: int __thiscall ParsedObjectPath::AddNamespace(unsigned short const *)
?AddNamespace@ParsedObjectPath@@QAEHPBG@Z
; private: static class Provider * __stdcall CWbemProviderGlue::AddProviderToMap(unsigned short const *,unsigned short const *,class Provider *)
?AddProviderToMap@CWbemProviderGlue@@CGPAVProvider@@PBG0PAV2@@Z
; public: long __thiscall CInstance::AddRef(void)
?AddRef@CInstance@@QAEJXZ
; public: long __thiscall CThreadBase::AddRef(void)
?AddRef@CThreadBase@@QAEJXZ
; public: virtual unsigned long __stdcall CWbemGlueFactory::AddRef(void)
?AddRef@CWbemGlueFactory@@UAGKXZ
; public: virtual unsigned long __stdcall CWbemProviderGlue::AddRef(void)
?AddRef@CWbemProviderGlue@@UAGKXZ
; public: long __thiscall MethodContext::AddRef(void)
?AddRef@MethodContext@@QAEJXZ
; protected: static void __stdcall CWbemProviderGlue::AddToFactoryMap(class CWbemGlueFactory const *,long *)
?AddToFactoryMap@CWbemProviderGlue@@KGXPBVCWbemGlueFactory@@PAJ@Z
; public: bool __thiscall CFrameworkQuery::AllPropertiesAreRequired(void)
?AllPropertiesAreRequired@CFrameworkQuery@@QAE_NXZ
; protected: void __thiscall CHString::AllocBeforeWrite(int)
?AllocBeforeWrite@CHString@@IAEXH@Z
; protected: void __thiscall CHString::AllocBuffer(int)
?AllocBuffer@CHString@@IAEXH@Z
; protected: void __thiscall CHString::AllocCopy(class CHString &,int,int,int)const 
?AllocCopy@CHString@@IBEXAAV1@HHH@Z
; public: unsigned short * __thiscall CHString::AllocSysString(void)const 
?AllocSysString@CHString@@QBEPAGXZ
; public: int __thiscall CHPtrArray::Append(class CHPtrArray const &)
?Append@CHPtrArray@@QAEHABV1@@Z
; public: int __thiscall CHStringArray::Append(class CHStringArray const &)
?Append@CHStringArray@@QAEHABV1@@Z
; protected: void __thiscall CHString::AssignCopy(int,unsigned short const *)
?AssignCopy@CHString@@IAEXHPBG@Z
; public: int __thiscall CThreadBase::BeginRead(unsigned long)
?BeginRead@CThreadBase@@QAEHK@Z
; public: int __thiscall CThreadBase::BeginWrite(unsigned long)
?BeginWrite@CThreadBase@@QAEHK@Z
; public: virtual long __stdcall CWbemProviderGlue::CancelAsyncCall(struct IWbemObjectSink *)
?CancelAsyncCall@CWbemProviderGlue@@UAGJPAUIWbemObjectSink@@@Z
; public: virtual long __stdcall CWbemProviderGlue::CancelAsyncRequest(long)
?CancelAsyncRequest@CWbemProviderGlue@@UAGJJ@Z
; private: void __thiscall CRegistrySearch::CheckAndAddToList(class CRegistry *,class CHString,class CHString,class CHPtrArray &,class CHString,class CHString,int)
?CheckAndAddToList@CRegistrySearch@@AAEXPAVCRegistry@@VCHString@@1AAVCHPtrArray@@11H@Z
; private: void __thiscall ProviderLog::CheckFileSize(union _LARGE_INTEGER &,class CHString const &)
?CheckFileSize@ProviderLog@@AAEXAAT_LARGE_INTEGER@@ABVCHString@@@Z
; private: static long __stdcall CWbemProviderGlue::CheckImpersonationLevel(void)
?CheckImpersonationLevel@CWbemProviderGlue@@CGJXZ
; public: void __thiscall WBEMTime::Clear(void)
?Clear@WBEMTime@@QAEXXZ
; public: void __thiscall WBEMTimeSpan::Clear(void)
?Clear@WBEMTimeSpan@@QAEXXZ
; public: void __thiscall ParsedObjectPath::ClearKeys(void)
?ClearKeys@ParsedObjectPath@@QAEXXZ
; public: void __thiscall CRegistry::Close(void)
?Close@CRegistry@@QAEXXZ
; private: void __thiscall CRegistry::CloseSubKey(void)
?CloseSubKey@CRegistry@@AAEXXZ
; public: int __thiscall CHString::Collate(unsigned short const *)const 
?Collate@CHString@@QBEHPBG@Z
; public: long __thiscall CInstance::Commit(void)
?Commit@CInstance@@QAEJXZ
; protected: long __thiscall Provider::Commit(class CInstance *,bool)
?Commit@Provider@@IAEJPAVCInstance@@_N@Z
; public: int __thiscall CHString::Compare(unsigned short const *)const 
?Compare@CHString@@QBEHPBG@Z
; public: int __thiscall CHString::CompareNoCase(unsigned short const *)const 
?CompareNoCase@CHString@@QBEHPBG@Z
; protected: void __thiscall CHString::ConcatCopy(int,unsigned short const *,int,unsigned short const *)
?ConcatCopy@CHString@@IAEXHPBGH0@Z
; protected: void __thiscall CHString::ConcatInPlace(int,unsigned short const *)
?ConcatInPlace@CHString@@IAEXHPBG@Z
; public: void __thiscall CHPtrArray::Copy(class CHPtrArray const &)
?Copy@CHPtrArray@@QAEXABV1@@Z
; public: void __thiscall CHStringArray::Copy(class CHStringArray const &)
?Copy@CHStringArray@@QAEXABV1@@Z
; protected: void __thiscall CHString::CopyBeforeWrite(void)
?CopyBeforeWrite@CHString@@IAEXXZ
; public: virtual long __stdcall CWbemProviderGlue::CreateClassEnum(unsigned short * const,long,struct IWbemContext *,struct IEnumWbemClassObject * *)
?CreateClassEnum@CWbemProviderGlue@@UAGJQAGJPAUIWbemContext@@PAPAUIEnumWbemClassObject@@@Z
; public: virtual long __stdcall CWbemProviderGlue::CreateClassEnumAsync(unsigned short * const,long,struct IWbemContext *,struct IWbemObjectSink *)
?CreateClassEnumAsync@CWbemProviderGlue@@UAGJQAGJPAUIWbemContext@@PAUIWbemObjectSink@@@Z
; public: virtual long __stdcall CWbemGlueFactory::CreateInstance(struct IUnknown *,struct _GUID const &,void * *)
?CreateInstance@CWbemGlueFactory@@UAGJPAUIUnknown@@ABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CWbemProviderGlue::CreateInstanceEnum(unsigned short * const,long,struct IWbemContext *,struct IEnumWbemClassObject * *)
?CreateInstanceEnum@CWbemProviderGlue@@UAGJQAGJPAUIWbemContext@@PAPAUIEnumWbemClassObject@@@Z
; private: long __thiscall Provider::CreateInstanceEnum(class MethodContext *,long)
?CreateInstanceEnum@Provider@@AAEJPAVMethodContext@@J@Z
; public: virtual long __stdcall CWbemProviderGlue::CreateInstanceEnumAsync(unsigned short * const,long,struct IWbemContext *,struct IWbemObjectSink *)
?CreateInstanceEnumAsync@CWbemProviderGlue@@UAGJQAGJPAUIWbemContext@@PAUIWbemObjectSink@@@Z
; private: static void __stdcall CWinMsgEvent::CreateMsgProvider(void)
?CreateMsgProvider@CWinMsgEvent@@CGXXZ
; private: static struct HWND__ * __stdcall CWinMsgEvent::CreateMsgWindow(void)
?CreateMsgWindow@CWinMsgEvent@@CGPAUHWND__@@XZ
; protected: class CInstance * __thiscall Provider::CreateNewInstance(class MethodContext *)
?CreateNewInstance@Provider@@IAEPAVCInstance@@PAVMethodContext@@@Z
; public: long __thiscall CRegistry::CreateOpen(struct HKEY__ *,unsigned short const *,unsigned short *,unsigned long,unsigned long,struct _SECURITY_ATTRIBUTES *,unsigned long *)
?CreateOpen@CRegistry@@QAEJPAUHKEY__@@PBGPAGKKPAU_SECURITY_ATTRIBUTES@@PAK@Z
; private: static int __stdcall CWinMsgEvent::CtrlHandlerRoutine(unsigned long)
?CtrlHandlerRoutine@CWinMsgEvent@@CGHK@Z
; protected: static long __stdcall CWbemProviderGlue::DecrementMapCount(long *)
?DecrementMapCount@CWbemProviderGlue@@KGJPAJ@Z
; protected: static long __stdcall CWbemProviderGlue::DecrementMapCount(class CWbemGlueFactory const *)
?DecrementMapCount@CWbemProviderGlue@@KGJPBVCWbemGlueFactory@@@Z
; public: static long __stdcall CWbemProviderGlue::DecrementObjectCount(void)
?DecrementObjectCount@CWbemProviderGlue@@SGJXZ
; public: virtual long __stdcall CWbemProviderGlue::DeleteClass(unsigned short * const,long,struct IWbemContext *,struct IWbemCallResult * *)
?DeleteClass@CWbemProviderGlue@@UAGJQAGJPAUIWbemContext@@PAPAUIWbemCallResult@@@Z
; public: virtual long __stdcall CWbemProviderGlue::DeleteClassAsync(unsigned short * const,long,struct IWbemContext *,struct IWbemObjectSink *)
?DeleteClassAsync@CWbemProviderGlue@@UAGJQAGJPAUIWbemContext@@PAUIWbemObjectSink@@@Z
; public: unsigned long __thiscall CRegistry::DeleteCurrentKeyValue(struct HKEY__ *,unsigned short const *)
?DeleteCurrentKeyValue@CRegistry@@QAEKPAUHKEY__@@PBG@Z
; public: unsigned long __thiscall CRegistry::DeleteCurrentKeyValue(unsigned short const *)
?DeleteCurrentKeyValue@CRegistry@@QAEKPBG@Z
; public: virtual long __stdcall CWbemProviderGlue::DeleteInstance(unsigned short * const,long,struct IWbemContext *,struct IWbemCallResult * *)
?DeleteInstance@CWbemProviderGlue@@UAGJQAGJPAUIWbemContext@@PAPAUIWbemCallResult@@@Z
; private: long __thiscall Provider::DeleteInstance(struct ParsedObjectPath *,long,class MethodContext *)
?DeleteInstance@Provider@@AAEJPAUParsedObjectPath@@JPAVMethodContext@@@Z
; protected: virtual long __thiscall Provider::DeleteInstance(class CInstance const &,long)
?DeleteInstance@Provider@@MAEJABVCInstance@@J@Z
; public: virtual long __stdcall CWbemProviderGlue::DeleteInstanceAsync(unsigned short * const,long,struct IWbemContext *,struct IWbemObjectSink *)
?DeleteInstanceAsync@CWbemProviderGlue@@UAGJQAGJPAUIWbemContext@@PAUIWbemObjectSink@@@Z
; public: long __thiscall CRegistry::DeleteKey(class CHString *)
?DeleteKey@CRegistry@@QAEJPAVCHString@@@Z
; public: long __thiscall CRegistry::DeleteValue(unsigned short const *)
?DeleteValue@CRegistry@@QAEJPBG@Z
; private: static void __stdcall CWinMsgEvent::DestroyMsgWindow(void)
?DestroyMsgWindow@CWinMsgEvent@@CGXXZ
; public: void * & __thiscall CHPtrArray::ElementAt(int)
?ElementAt@CHPtrArray@@QAEAAPAXH@Z
; public: class CHString & __thiscall CHStringArray::ElementAt(int)
?ElementAt@CHStringArray@@QAEAAVCHString@@H@Z
; public: void __thiscall CHString::Empty(void)
?Empty@CHString@@QAEXXZ
; private: void __thiscall CObjectPathParser::Empty(void)
?Empty@CObjectPathParser@@AAEXXZ
; public: void __thiscall CThreadBase::EndRead(void)
?EndRead@CThreadBase@@QAEXXZ
; public: void __thiscall CThreadBase::EndWrite(void)
?EndWrite@CThreadBase@@QAEXXZ
; public: long __thiscall CRegistry::EnumerateAndGetValues(unsigned long &,unsigned short * &,unsigned char * &)
?EnumerateAndGetValues@CRegistry@@QAEJAAKAAPAGAAPAE@Z
; protected: virtual long __thiscall Provider::EnumerateInstances(class MethodContext *,long)
?EnumerateInstances@Provider@@MAEJPAVMethodContext@@J@Z
; public: virtual long __stdcall CWbemProviderGlue::ExecMethod(unsigned short * const,unsigned short * const,long,struct IWbemContext *,struct IWbemClassObject *,struct IWbemClassObject * *,struct IWbemCallResult * *)
?ExecMethod@CWbemProviderGlue@@UAGJQAG0JPAUIWbemContext@@PAUIWbemClassObject@@PAPAU3@PAPAUIWbemCallResult@@@Z
; private: long __thiscall Provider::ExecMethod(struct ParsedObjectPath *,unsigned short *,long,class CInstance *,class CInstance *,class MethodContext *)
?ExecMethod@Provider@@AAEJPAUParsedObjectPath@@PAGJPAVCInstance@@2PAVMethodContext@@@Z
; protected: virtual long __thiscall Provider::ExecMethod(class CInstance const &,unsigned short * const,class CInstance *,class CInstance *,long)
?ExecMethod@Provider@@MAEJABVCInstance@@QAGPAV2@2J@Z
; public: virtual long __stdcall CWbemProviderGlue::ExecMethodAsync(unsigned short * const,unsigned short * const,long,struct IWbemContext *,struct IWbemClassObject *,struct IWbemObjectSink *)
?ExecMethodAsync@CWbemProviderGlue@@UAGJQAG0JPAUIWbemContext@@PAUIWbemClassObject@@PAUIWbemObjectSink@@@Z
; public: virtual long __stdcall CWbemProviderGlue::ExecNotificationQuery(unsigned short * const,unsigned short * const,long,struct IWbemContext *,struct IEnumWbemClassObject * *)
?ExecNotificationQuery@CWbemProviderGlue@@UAGJQAG0JPAUIWbemContext@@PAPAUIEnumWbemClassObject@@@Z
; public: virtual long __stdcall CWbemProviderGlue::ExecNotificationQueryAsync(unsigned short * const,unsigned short * const,long,struct IWbemContext *,struct IWbemObjectSink *)
?ExecNotificationQueryAsync@CWbemProviderGlue@@UAGJQAG0JPAUIWbemContext@@PAUIWbemObjectSink@@@Z
; public: virtual long __stdcall CWbemProviderGlue::ExecQuery(unsigned short * const,unsigned short * const,long,struct IWbemContext *,struct IEnumWbemClassObject * *)
?ExecQuery@CWbemProviderGlue@@UAGJQAG0JPAUIWbemContext@@PAPAUIEnumWbemClassObject@@@Z
; protected: virtual long __thiscall Provider::ExecQuery(class MethodContext *,class CFrameworkQuery &,long)
?ExecQuery@Provider@@MAEJPAVMethodContext@@AAVCFrameworkQuery@@J@Z
; public: virtual long __stdcall CWbemProviderGlue::ExecQueryAsync(unsigned short * const,unsigned short * const,long,struct IWbemContext *,struct IWbemObjectSink *)
?ExecQueryAsync@CWbemProviderGlue@@UAGJQAG0JPAUIWbemContext@@PAUIWbemObjectSink@@@Z
; private: long __thiscall Provider::ExecuteQuery(class MethodContext *,class CFrameworkQuery &,long)
?ExecuteQuery@Provider@@AAEJPAVMethodContext@@AAVCFrameworkQuery@@J@Z
; public: static long __stdcall CWbemProviderGlue::FillInstance(class CInstance *,unsigned short const *)
?FillInstance@CWbemProviderGlue@@SGJPAVCInstance@@PBG@Z
; public: static long __stdcall CWbemProviderGlue::FillInstance(class MethodContext *,class CInstance *)
?FillInstance@CWbemProviderGlue@@SGJPAVMethodContext@@PAVCInstance@@@Z
; public: int __thiscall CHString::Find(unsigned short)const 
?Find@CHString@@QBEHG@Z
; public: int __thiscall CHString::Find(unsigned short const *)const 
?Find@CHString@@QBEHPBG@Z
; public: int __thiscall CHString::FindOneOf(unsigned short const *)const 
?FindOneOf@CHString@@QBEHPBG@Z
; protected: virtual void __thiscall Provider::Flush(void)
?Flush@Provider@@MAEXXZ
; private: void __thiscall CWbemProviderGlue::FlushAll(void)
?FlushAll@CWbemProviderGlue@@AAEXXZ
; public: void __cdecl CHString::Format(unsigned int,...)
?Format@CHString@@QAAXIZZ
; public: void __cdecl CHString::Format(unsigned short const *,...)
?Format@CHString@@QAAXPBGZZ
; public: void __cdecl CHString::FormatMessageW(unsigned int,...)
?FormatMessageW@CHString@@QAAXIZZ
; public: void __cdecl CHString::FormatMessageW(unsigned short const *,...)
?FormatMessageW@CHString@@QAAXPBGZZ
; public: void __thiscall CHString::FormatV(unsigned short const *,char *)
?FormatV@CHString@@QAEXPBGPAD@Z
; public: static void __stdcall CWbemProviderGlue::FrameworkLogin(unsigned short const *,class Provider *,unsigned short const *)
?FrameworkLogin@CWbemProviderGlue@@SGXPBGPAVProvider@@0@Z
; public: static int __stdcall CWbemProviderGlue::FrameworkLoginDLL(unsigned short const *)
?FrameworkLoginDLL@CWbemProviderGlue@@SGHPBG@Z
; public: static int __stdcall CWbemProviderGlue::FrameworkLoginDLL(unsigned short const *,long *)
?FrameworkLoginDLL@CWbemProviderGlue@@SGHPBGPAJ@Z
; public: static void __stdcall CWbemProviderGlue::FrameworkLogoff(unsigned short const *,unsigned short const *)
?FrameworkLogoff@CWbemProviderGlue@@SGXPBG0@Z
; public: static int __stdcall CWbemProviderGlue::FrameworkLogoffDLL(unsigned short const *)
?FrameworkLogoffDLL@CWbemProviderGlue@@SGHPBG@Z
; public: static int __stdcall CWbemProviderGlue::FrameworkLogoffDLL(unsigned short const *,long *)
?FrameworkLogoffDLL@CWbemProviderGlue@@SGHPBGPAJ@Z
; public: void __thiscall CObjectPathParser::Free(struct ParsedObjectPath *)
?Free@CObjectPathParser@@QAEXPAUParsedObjectPath@@@Z
; public: void __thiscall CHPtrArray::FreeExtra(void)
?FreeExtra@CHPtrArray@@QAEXXZ
; public: void __thiscall CHString::FreeExtra(void)
?FreeExtra@CHString@@QAEXXZ
; public: void __thiscall CHStringArray::FreeExtra(void)
?FreeExtra@CHStringArray@@QAEXXZ
; public: int __thiscall CRegistrySearch::FreeSearchList(int,class CHPtrArray &)
?FreeSearchList@CRegistrySearch@@QAEHHAAVCHPtrArray@@@Z
; public: static long __stdcall CWbemProviderGlue::GetAllDerivedInstances(unsigned short const *,class TRefPointerCollection<class CInstance> *,class MethodContext *,unsigned short const *)
?GetAllDerivedInstances@CWbemProviderGlue@@SGJPBGPAV?$TRefPointerCollection@VCInstance@@@@PAVMethodContext@@0@Z
; public: static long __stdcall CWbemProviderGlue::GetAllDerivedInstancesAsynch(unsigned short const *,class Provider *,long (__stdcall*)(class Provider *,class CInstance *,class MethodContext *,void *),unsigned short const *,class MethodContext *,void *)
?GetAllDerivedInstancesAsynch@CWbemProviderGlue@@SGJPBGPAVProvider@@P6GJ1PAVCInstance@@PAVMethodContext@@PAX@Z034@Z
; public: static long __stdcall CWbemProviderGlue::GetAllInstances(unsigned short const *,class TRefPointerCollection<class CInstance> *,unsigned short const *,class MethodContext *)
?GetAllInstances@CWbemProviderGlue@@SGJPBGPAV?$TRefPointerCollection@VCInstance@@@@0PAVMethodContext@@@Z
; public: static long __stdcall CWbemProviderGlue::GetAllInstancesAsynch(unsigned short const *,class Provider *,long (__stdcall*)(class Provider *,class CInstance *,class MethodContext *,void *),unsigned short const *,class MethodContext *,void *)
?GetAllInstancesAsynch@CWbemProviderGlue@@SGJPBGPAVProvider@@P6GJ1PAVCInstance@@PAVMethodContext@@PAX@Z034@Z
; public: int __thiscall CHString::GetAllocLength(void)const 
?GetAllocLength@CHString@@QBEHXZ
; public: void * __thiscall CHPtrArray::GetAt(int)const 
?GetAt@CHPtrArray@@QBEPAXH@Z
; public: unsigned short __thiscall CHString::GetAt(int)const 
?GetAt@CHString@@QBEGH@Z
; public: class CHString  __thiscall CHStringArray::GetAt(int)const 
?GetAt@CHStringArray@@QBE?AVCHString@@H@Z
; public: unsigned short * __thiscall WBEMTime::GetBSTR(void)const 
?GetBSTR@WBEMTime@@QBEPAGXZ
; public: unsigned short * __thiscall WBEMTimeSpan::GetBSTR(void)const 
?GetBSTR@WBEMTimeSpan@@QBEPAGXZ
; public: unsigned short * __thiscall CHString::GetBuffer(int)
?GetBuffer@CHString@@QAEPAGH@Z
; public: unsigned short * __thiscall CHString::GetBufferSetLength(int)
?GetBufferSetLength@CHString@@QAEPAGH@Z
; public: bool __thiscall CInstance::GetByte(unsigned short const *,unsigned char &)const 
?GetByte@CInstance@@QBE_NPBGAAE@Z
; public: bool __thiscall CInstance::GetCHString(unsigned short const *,class CHString &)const 
?GetCHString@CInstance@@QBE_NPBGAAVCHString@@@Z
; public: static unsigned short const * __stdcall CWbemProviderGlue::GetCSDVersion(void)
?GetCSDVersion@CWbemProviderGlue@@SGPBGXZ
; public: unsigned short * __thiscall CRegistry::GetClassNameW(void)
?GetClassNameW@CRegistry@@QAEPAGXZ
; public: struct IWbemClassObject * __thiscall CInstance::GetClassObjectInterface(void)
?GetClassObjectInterface@CInstance@@QAEPAUIWbemClassObject@@XZ
; private: struct IWbemClassObject * __thiscall Provider::GetClassObjectInterface(class MethodContext *)
?GetClassObjectInterface@Provider@@AAEPAUIWbemClassObject@@PAVMethodContext@@@Z
; private: static void __stdcall CWbemProviderGlue::GetComputerNameW(class CHString &)
?GetComputerNameW@CWbemProviderGlue@@CGXAAVCHString@@@Z
; public: unsigned long __thiscall CRegistry::GetCurrentBinaryKeyValue(struct HKEY__ *,unsigned short const *,unsigned char *,unsigned long *)
?GetCurrentBinaryKeyValue@CRegistry@@QAEKPAUHKEY__@@PBGPAEPAK@Z
; public: unsigned long __thiscall CRegistry::GetCurrentBinaryKeyValue(unsigned short const *,class CHString &)
?GetCurrentBinaryKeyValue@CRegistry@@QAEKPBGAAVCHString@@@Z
; public: unsigned long __thiscall CRegistry::GetCurrentBinaryKeyValue(unsigned short const *,unsigned char *,unsigned long *)
?GetCurrentBinaryKeyValue@CRegistry@@QAEKPBGPAEPAK@Z
; public: unsigned long __thiscall CRegistry::GetCurrentKeyValue(struct HKEY__ *,unsigned short const *,unsigned long &)
?GetCurrentKeyValue@CRegistry@@QAEKPAUHKEY__@@PBGAAK@Z
; public: unsigned long __thiscall CRegistry::GetCurrentKeyValue(struct HKEY__ *,unsigned short const *,class CHString &)
?GetCurrentKeyValue@CRegistry@@QAEKPAUHKEY__@@PBGAAVCHString@@@Z
; public: unsigned long __thiscall CRegistry::GetCurrentKeyValue(struct HKEY__ *,unsigned short const *,class CHStringArray &)
?GetCurrentKeyValue@CRegistry@@QAEKPAUHKEY__@@PBGAAVCHStringArray@@@Z
; public: unsigned long __thiscall CRegistry::GetCurrentKeyValue(unsigned short const *,unsigned long &)
?GetCurrentKeyValue@CRegistry@@QAEKPBGAAK@Z
; public: unsigned long __thiscall CRegistry::GetCurrentKeyValue(unsigned short const *,class CHString &)
?GetCurrentKeyValue@CRegistry@@QAEKPBGAAVCHString@@@Z
; public: unsigned long __thiscall CRegistry::GetCurrentKeyValue(unsigned short const *,class CHStringArray &)
?GetCurrentKeyValue@CRegistry@@QAEKPBGAAVCHStringArray@@@Z
; private: unsigned long __thiscall CRegistry::GetCurrentRawKeyValue(struct HKEY__ *,unsigned short const *,void *,unsigned long *,unsigned long *)
?GetCurrentRawKeyValue@CRegistry@@AAEKPAUHKEY__@@PBGPAXPAK3@Z
; private: unsigned long __thiscall CRegistry::GetCurrentRawSubKeyValue(unsigned short const *,void *,unsigned long *,unsigned long *)
?GetCurrentRawSubKeyValue@CRegistry@@AAEKPBGPAXPAK2@Z
; public: unsigned long __thiscall CRegistry::GetCurrentSubKeyCount(void)
?GetCurrentSubKeyCount@CRegistry@@QAEKXZ
; public: unsigned long __thiscall CRegistry::GetCurrentSubKeyName(class CHString &)
?GetCurrentSubKeyName@CRegistry@@QAEKAAVCHString@@@Z
; public: unsigned long __thiscall CRegistry::GetCurrentSubKeyPath(class CHString &)
?GetCurrentSubKeyPath@CRegistry@@QAEKAAVCHString@@@Z
; public: unsigned long __thiscall CRegistry::GetCurrentSubKeyValue(unsigned short const *,unsigned long &)
?GetCurrentSubKeyValue@CRegistry@@QAEKPBGAAK@Z
; public: unsigned long __thiscall CRegistry::GetCurrentSubKeyValue(unsigned short const *,class CHString &)
?GetCurrentSubKeyValue@CRegistry@@QAEKPBGAAVCHString@@@Z
; public: unsigned long __thiscall CRegistry::GetCurrentSubKeyValue(unsigned short const *,void *,unsigned long *)
?GetCurrentSubKeyValue@CRegistry@@QAEKPBGPAXPAK@Z
; public: unsigned short * __thiscall WBEMTime::GetDMTF(int)const 
?GetDMTF@WBEMTime@@QBEPAGH@Z
; public: unsigned short * __thiscall WBEMTime::GetDMTFNonNtfs(void)const 
?GetDMTFNonNtfs@WBEMTime@@QBEPAGXZ
; public: bool __thiscall CInstance::GetDOUBLE(unsigned short const *,double &)const 
?GetDOUBLE@CInstance@@QBE_NPBGAAN@Z
; public: bool __thiscall CInstance::GetDWORD(unsigned short const *,unsigned long &)const 
?GetDWORD@CInstance@@QBE_NPBGAAK@Z
; public: void * * __thiscall CHPtrArray::GetData(void)
?GetData@CHPtrArray@@QAEPAPAXXZ
; public: void const * * __thiscall CHPtrArray::GetData(void)const 
?GetData@CHPtrArray@@QBEPAPBXXZ
; protected: struct CHStringData * __thiscall CHString::GetData(void)const 
?GetData@CHString@@IBEPAUCHStringData@@XZ
; public: class CHString * __thiscall CHStringArray::GetData(void)
?GetData@CHStringArray@@QAEPAVCHString@@XZ
; public: class CHString const * __thiscall CHStringArray::GetData(void)const 
?GetData@CHStringArray@@QBEPBVCHString@@XZ
; public: bool __thiscall CInstance::GetDateTime(unsigned short const *,class WBEMTime &)const 
?GetDateTime@CInstance@@QBE_NPBGAAVWBEMTime@@@Z
; public: bool __thiscall CInstance::GetEmbeddedObject(unsigned short const *,class CInstance * *,class MethodContext *)const 
?GetEmbeddedObject@CInstance@@QBE_NPBGPAPAV1@PAVMethodContext@@@Z
; public: static long __stdcall CWbemProviderGlue::GetEmptyInstance(class MethodContext *,unsigned short const *,class CInstance * *,unsigned short const *)
?GetEmptyInstance@CWbemProviderGlue@@SGJPAVMethodContext@@PBGPAPAVCInstance@@1@Z
; public: static long __stdcall CWbemProviderGlue::GetEmptyInstance(unsigned short const *,class CInstance * *,unsigned short const *)
?GetEmptyInstance@CWbemProviderGlue@@SGJPBGPAPAVCInstance@@0@Z
; public: int __thiscall WBEMTime::GetFILETIME(struct _FILETIME *)const 
?GetFILETIME@WBEMTime@@QBEHPAU_FILETIME@@@Z
; public: int __thiscall WBEMTimeSpan::GetFILETIME(struct _FILETIME *)const 
?GetFILETIME@WBEMTimeSpan@@QBEHPAU_FILETIME@@@Z
; public: virtual struct IWbemContext * __thiscall MethodContext::GetIWBEMContext(void)
?GetIWBEMContext@MethodContext@@UAEPAUIWbemContext@@XZ
; public: static long __stdcall CWbemProviderGlue::GetInstanceByPath(unsigned short const *,class CInstance * *,class MethodContext *)
?GetInstanceByPath@CWbemProviderGlue@@SGJPBGPAPAVCInstance@@PAVMethodContext@@@Z
; private: static long __stdcall CWbemProviderGlue::GetInstanceFromCIMOM(unsigned short const *,unsigned short const *,class MethodContext *,class CInstance * *)
?GetInstanceFromCIMOM@CWbemProviderGlue@@CGJPBG0PAVMethodContext@@PAPAVCInstance@@@Z
; public: static long __stdcall CWbemProviderGlue::GetInstanceKeysByPath(unsigned short const *,class CInstance * *,class MethodContext *)
?GetInstanceKeysByPath@CWbemProviderGlue@@SGJPBGPAPAVCInstance@@PAVMethodContext@@@Z
; public: static long __stdcall CWbemProviderGlue::GetInstancePropertiesByPath(unsigned short const *,class CInstance * *,class MethodContext *,class CHStringArray &)
?GetInstancePropertiesByPath@CWbemProviderGlue@@SGJPBGPAPAVCInstance@@PAVMethodContext@@AAVCHStringArray@@@Z
; public: static long __stdcall CWbemProviderGlue::GetInstancesByQuery(unsigned short const *,class TRefPointerCollection<class CInstance> *,class MethodContext *,unsigned short const *)
?GetInstancesByQuery@CWbemProviderGlue@@SGJPBGPAV?$TRefPointerCollection@VCInstance@@@@PAVMethodContext@@0@Z
; public: static long __stdcall CWbemProviderGlue::GetInstancesByQueryAsynch(unsigned short const *,class Provider *,long (__stdcall*)(class Provider *,class CInstance *,class MethodContext *,void *),unsigned short const *,class MethodContext *,void *)
?GetInstancesByQueryAsynch@CWbemProviderGlue@@SGJPBGPAVProvider@@P6GJ1PAVCInstance@@PAVMethodContext@@PAX@Z034@Z
; public: unsigned short * __thiscall ParsedObjectPath::GetKeyString(void)
?GetKeyString@ParsedObjectPath@@QAEPAGXZ
; public: int __thiscall CHString::GetLength(void)const 
?GetLength@CHString@@QBEHXZ
; protected: class CHString const & __thiscall Provider::GetLocalComputerName(void)
?GetLocalComputerName@Provider@@IAEABVCHString@@XZ
; protected: bool __thiscall Provider::GetLocalInstancePath(class CInstance const *,class CHString &)
?GetLocalInstancePath@Provider@@IAE_NPBVCInstance@@AAVCHString@@@Z
; public: static long __stdcall WBEMTime::GetLocalOffsetForDate(long const &)
?GetLocalOffsetForDate@WBEMTime@@SGJABJ@Z
; public: static long __stdcall WBEMTime::GetLocalOffsetForDate(struct _FILETIME const *)
?GetLocalOffsetForDate@WBEMTime@@SGJPBU_FILETIME@@@Z
; public: static long __stdcall WBEMTime::GetLocalOffsetForDate(struct _SYSTEMTIME const *)
?GetLocalOffsetForDate@WBEMTime@@SGJPBU_SYSTEMTIME@@@Z
; public: static long __stdcall WBEMTime::GetLocalOffsetForDate(struct tm const *)
?GetLocalOffsetForDate@WBEMTime@@SGJPBUtm@@@Z
; public: unsigned long __thiscall CRegistry::GetLongestClassStringSize(void)
?GetLongestClassStringSize@CRegistry@@QAEKXZ
; public: unsigned long __thiscall CRegistry::GetLongestSubKeySize(void)
?GetLongestSubKeySize@CRegistry@@QAEKXZ
; public: unsigned long __thiscall CRegistry::GetLongestValueData(void)
?GetLongestValueData@CRegistry@@QAEKXZ
; public: unsigned long __thiscall CRegistry::GetLongestValueName(void)
?GetLongestValueName@CRegistry@@QAEKXZ
; protected: static long * __stdcall CWbemProviderGlue::GetMapCountPtr(class CWbemGlueFactory const *)
?GetMapCountPtr@CWbemProviderGlue@@KGPAJPBVCWbemGlueFactory@@@Z
; public: class MethodContext * __thiscall CInstance::GetMethodContext(void)const 
?GetMethodContext@CInstance@@QBEPAVMethodContext@@XZ
; protected: class CHString const & __thiscall CFrameworkQuery::GetNamespace(void)
?GetNamespace@CFrameworkQuery@@IAEABVCHString@@XZ
; protected: class CHString const & __thiscall Provider::GetNamespace(void)
?GetNamespace@Provider@@IAEABVCHString@@XZ
; public: static struct IWbemServices * __stdcall CWbemProviderGlue::GetNamespaceConnection(unsigned short const *)
?GetNamespaceConnection@CWbemProviderGlue@@SGPAUIWbemServices@@PBG@Z
; public: static struct IWbemServices * __stdcall CWbemProviderGlue::GetNamespaceConnection(unsigned short const *,class MethodContext *)
?GetNamespaceConnection@CWbemProviderGlue@@SGPAUIWbemServices@@PBGPAVMethodContext@@@Z
; public: unsigned short * __thiscall ParsedObjectPath::GetNamespacePart(void)
?GetNamespacePart@ParsedObjectPath@@QAEPAGXZ
; public: static unsigned long __stdcall CWbemProviderGlue::GetOSMajorVersion(void)
?GetOSMajorVersion@CWbemProviderGlue@@SGKXZ
; public: virtual long __stdcall CWbemProviderGlue::GetObject(unsigned short * const,long,struct IWbemContext *,struct IWbemClassObject * *,struct IWbemCallResult * *)
?GetObject@CWbemProviderGlue@@UAGJQAGJPAUIWbemContext@@PAPAUIWbemClassObject@@PAPAUIWbemCallResult@@@Z
; private: long __thiscall Provider::GetObject(struct ParsedObjectPath *,class MethodContext *,long)
?GetObject@Provider@@AAEJPAUParsedObjectPath@@PAVMethodContext@@J@Z
; protected: virtual long __thiscall Provider::GetObject(class CInstance *,long)
?GetObject@Provider@@MAEJPAVCInstance@@J@Z
; protected: virtual long __thiscall Provider::GetObject(class CInstance *,long,class CFrameworkQuery &)
?GetObject@Provider@@MAEJPAVCInstance@@JAAVCFrameworkQuery@@@Z
; public: virtual long __stdcall CWbemProviderGlue::GetObjectAsync(unsigned short * const,long,struct IWbemContext *,struct IWbemObjectSink *)
?GetObjectAsync@CWbemProviderGlue@@UAGJQAGJPAUIWbemContext@@PAUIWbemObjectSink@@@Z
; public: unsigned short * __thiscall ParsedObjectPath::GetParentNamespacePart(void)
?GetParentNamespacePart@ParsedObjectPath@@QAEPAGXZ
; public: static unsigned long __stdcall CWbemProviderGlue::GetPlatform(void)
?GetPlatform@CWbemProviderGlue@@SGKXZ
; public: void __thiscall CFrameworkQueryEx::GetPropertyBitMask(class CHPtrArray const &,void *)
?GetPropertyBitMask@CFrameworkQueryEx@@QAEXABVCHPtrArray@@PAX@Z
; private: class CWbemProviderGlue * __thiscall MethodContext::GetProviderGlue(void)
?GetProviderGlue@MethodContext@@AAEPAVCWbemProviderGlue@@XZ
; protected: class CHString const & __thiscall Provider::GetProviderName(void)
?GetProviderName@Provider@@IAEABVCHString@@XZ
; public: class CHString const & __thiscall CFrameworkQuery::GetQuery(void)
?GetQuery@CFrameworkQuery@@QAEABVCHString@@XZ
; public: unsigned short * __thiscall CFrameworkQuery::GetQueryClassName(void)
?GetQueryClassName@CFrameworkQuery@@QAEPAGXZ
; public: static unsigned short * __stdcall CObjectPathParser::GetRelativePath(unsigned short *)
?GetRelativePath@CObjectPathParser@@SGPAGPAG@Z
; public: void __thiscall CFrameworkQuery::GetRequiredProperties(class CHStringArray &)
?GetRequiredProperties@CFrameworkQuery@@QAEXAAVCHStringArray@@@Z
; public: int __thiscall WBEMTime::GetSYSTEMTIME(struct _SYSTEMTIME *)const 
?GetSYSTEMTIME@WBEMTime@@QBEHPAU_SYSTEMTIME@@@Z
; public: int __thiscall CHPtrArray::GetSize(void)const 
?GetSize@CHPtrArray@@QBEHXZ
; public: int __thiscall CHStringArray::GetSize(void)const 
?GetSize@CHStringArray@@QBEHXZ
; public: bool __thiscall CInstance::GetStatus(unsigned short const *,bool &,unsigned short &)const 
?GetStatus@CInstance@@QBE_NPBGAA_NAAG@Z
; private: static struct IWbemClassObject * __stdcall CWbemProviderGlue::GetStatusObject(class MethodContext *,unsigned short const *)
?GetStatusObject@CWbemProviderGlue@@CGPAUIWbemClassObject@@PAVMethodContext@@PBG@Z
; public: struct IWbemClassObject * __thiscall MethodContext::GetStatusObject(void)
?GetStatusObject@MethodContext@@QAEPAUIWbemClassObject@@XZ
; public: bool __thiscall CInstance::GetStringArray(unsigned short const *,struct tagSAFEARRAY * &)const 
?GetStringArray@CInstance@@QBE_NPBGAAPAUtagSAFEARRAY@@@Z
; public: int __thiscall WBEMTime::GetStructtm(struct tm *)const 
?GetStructtm@WBEMTime@@QBEHPAUtm@@@Z
; public: unsigned __int64 __thiscall WBEMTime::GetTime(void)const 
?GetTime@WBEMTime@@QBE_KXZ
; public: unsigned __int64 __thiscall WBEMTimeSpan::GetTime(void)const 
?GetTime@WBEMTimeSpan@@QBE_KXZ
; public: bool __thiscall CInstance::GetTimeSpan(unsigned short const *,class WBEMTimeSpan &)const 
?GetTimeSpan@CInstance@@QBE_NPBGAAVWBEMTimeSpan@@@Z
; public: int __thiscall CHPtrArray::GetUpperBound(void)const 
?GetUpperBound@CHPtrArray@@QBEHXZ
; public: int __thiscall CHStringArray::GetUpperBound(void)const 
?GetUpperBound@CHStringArray@@QBEHXZ
; public: unsigned long __thiscall CRegistry::GetValueCount(void)
?GetValueCount@CRegistry@@QAEKXZ
; public: long __thiscall CFrameworkQuery::GetValuesForProp(unsigned short const *,class std::vector<class _bstr_t,class std::allocator<class _bstr_t> > &)
?GetValuesForProp@CFrameworkQuery@@QAEJPBGAAV?$vector@V_bstr_t@@V?$allocator@V_bstr_t@@@std@@@std@@@Z
; public: long __thiscall CFrameworkQuery::GetValuesForProp(unsigned short const *,class CHStringArray &)
?GetValuesForProp@CFrameworkQuery@@QAEJPBGAAVCHStringArray@@@Z
; public: long __thiscall CFrameworkQueryEx::GetValuesForProp(unsigned short const *,class std::vector<int,class std::allocator<int> > &)
?GetValuesForProp@CFrameworkQueryEx@@QAEJPBGAAV?$vector@HV?$allocator@H@std@@@std@@@Z
; public: long __thiscall CFrameworkQueryEx::GetValuesForProp(unsigned short const *,class std::vector<class _variant_t,class std::allocator<class _variant_t> > &)
?GetValuesForProp@CFrameworkQueryEx@@QAEJPBGAAV?$vector@V_variant_t@@V?$allocator@V_variant_t@@@std@@@std@@@Z
; public: bool __thiscall CInstance::GetVariant(unsigned short const *,struct tagVARIANT &)const 
?GetVariant@CInstance@@QBE_NPBGAAUtagVARIANT@@@Z
; public: bool __thiscall CInstance::GetWBEMINT16(unsigned short const *,short &)const 
?GetWBEMINT16@CInstance@@QBE_NPBGAAF@Z
; public: bool __thiscall CInstance::GetWBEMINT64(unsigned short const *,class CHString &)const 
?GetWBEMINT64@CInstance@@QBE_NPBGAAVCHString@@@Z
; public: bool __thiscall CInstance::GetWBEMINT64(unsigned short const *,__int64 &)const 
?GetWBEMINT64@CInstance@@QBE_NPBGAA_J@Z
; public: bool __thiscall CInstance::GetWBEMINT64(unsigned short const *,unsigned __int64 &)const 
?GetWBEMINT64@CInstance@@QBE_NPBGAA_K@Z
; public: bool __thiscall CInstance::GetWCHAR(unsigned short const *,unsigned short * *)const 
?GetWCHAR@CInstance@@QBE_NPBGPAPAG@Z
; public: bool __thiscall CInstance::GetWORD(unsigned short const *,unsigned short &)const 
?GetWORD@CInstance@@QBE_NPBGAAG@Z
; public: bool __thiscall CInstance::Getbool(unsigned short const *,bool &)const 
?Getbool@CInstance@@QBE_NPBGAA_N@Z
; public: struct HKEY__ * __thiscall CRegistry::GethKey(void)
?GethKey@CRegistry@@QAEPAUHKEY__@@XZ
; public: int __thiscall WBEMTime::Gettime_t(long *)const 
?Gettime_t@WBEMTime@@QBEHPAJ@Z
; public: int __thiscall WBEMTimeSpan::Gettime_t(long *)const 
?Gettime_t@WBEMTimeSpan@@QBEHPAJ@Z
; protected: static long __stdcall CWbemProviderGlue::IncrementMapCount(long *)
?IncrementMapCount@CWbemProviderGlue@@KGJPAJ@Z
; protected: static long __stdcall CWbemProviderGlue::IncrementMapCount(class CWbemGlueFactory const *)
?IncrementMapCount@CWbemProviderGlue@@KGJPBVCWbemGlueFactory@@@Z
; public: static void __stdcall CWbemProviderGlue::IncrementObjectCount(void)
?IncrementObjectCount@CWbemProviderGlue@@SGXXZ
; public: void __thiscall CFrameworkQuery::Init2(struct IWbemClassObject *)
?Init2@CFrameworkQuery@@QAEXPAUIWbemClassObject@@@Z
; public: long __thiscall CFrameworkQuery::Init(struct ParsedObjectPath *,struct IWbemContext *,unsigned short const *,class CHString &)
?Init@CFrameworkQuery@@QAEJPAUParsedObjectPath@@PAUIWbemContext@@PBGAAVCHString@@@Z
; public: long __thiscall CFrameworkQuery::Init(unsigned short * const,unsigned short * const,long,class CHString &)
?Init@CFrameworkQuery@@QAEJQAG0JAAVCHString@@@Z
; protected: void __thiscall CHString::Init(void)
?Init@CHString@@IAEXXZ
; private: static void __stdcall CWbemProviderGlue::Init(void)
?Init@CWbemProviderGlue@@CGXXZ
; private: static void __stdcall Provider::InitComputerName(void)
?InitComputerName@Provider@@CGXXZ
; public: virtual long __thiscall CFrameworkQueryEx::InitEx(unsigned short * const,unsigned short * const,long,class CHString &)
?InitEx@CFrameworkQueryEx@@UAEJQAG0JAAVCHString@@@Z
; public: virtual long __stdcall CWbemProviderGlue::Initialize(unsigned short *,long,unsigned short *,unsigned short *,struct IWbemServices *,struct IWbemContext *,struct IWbemProviderInitSink *)
?Initialize@CWbemProviderGlue@@UAGJPAGJ00PAUIWbemServices@@PAUIWbemContext@@PAUIWbemProviderInitSink@@@Z
; public: void __thiscall CHPtrArray::InsertAt(int,class CHPtrArray *)
?InsertAt@CHPtrArray@@QAEXHPAV1@@Z
; public: void __thiscall CHPtrArray::InsertAt(int,void *,int)
?InsertAt@CHPtrArray@@QAEXHPAXH@Z
; public: void __thiscall CHStringArray::InsertAt(int,class CHStringArray *)
?InsertAt@CHStringArray@@QAEXHPAV1@@Z
; public: void __thiscall CHStringArray::InsertAt(int,unsigned short const *,int)
?InsertAt@CHStringArray@@QAEXHPBGH@Z
; private: struct IWbemServices * __stdcall CWbemProviderGlue::InternalGetNamespaceConnection(unsigned short const *)
?InternalGetNamespaceConnection@CWbemProviderGlue@@AAGPAUIWbemServices@@PBG@Z
; public: int __thiscall CFrameworkQueryEx::Is3TokenOR(unsigned short const *,unsigned short const *,struct tagVARIANT &,struct tagVARIANT &)
?Is3TokenOR@CFrameworkQueryEx@@QAEHPBG0AAUtagVARIANT@@1@Z
; public: int __thiscall ParsedObjectPath::IsClass(void)
?IsClass@ParsedObjectPath@@QAEHXZ
; public: static bool __stdcall CWbemProviderGlue::IsDerivedFrom(unsigned short const *,unsigned short const *,class MethodContext *,unsigned short const *)
?IsDerivedFrom@CWbemProviderGlue@@SG_NPBG0PAVMethodContext@@0@Z
; public: int __thiscall CHString::IsEmpty(void)const 
?IsEmpty@CHString@@QBEHXZ
; public: virtual bool __thiscall CFrameworkQueryEx::IsExtended(void)
?IsExtended@CFrameworkQueryEx@@UAE_NXZ
; protected: unsigned long __thiscall CFrameworkQuery::IsInList(class CHStringArray const &,unsigned short const *)
?IsInList@CFrameworkQuery@@IAEKABVCHStringArray@@PBG@Z
; public: int __thiscall ParsedObjectPath::IsInstance(void)
?IsInstance@ParsedObjectPath@@QAEHXZ
; public: int __thiscall ParsedObjectPath::IsLocal(unsigned short const *)
?IsLocal@ParsedObjectPath@@QAEHPBG@Z
; public: enum ProviderLog::LogLevel  __thiscall ProviderLog::IsLoggingOn(class CHString *)
?IsLoggingOn@ProviderLog@@QAE?AW4LogLevel@1@PAVCHString@@@Z
; public: int __thiscall CFrameworkQueryEx::IsNTokenAnd(class CHStringArray &,class CHPtrArray &)
?IsNTokenAnd@CFrameworkQueryEx@@QAEHAAVCHStringArray@@AAVCHPtrArray@@@Z
; public: bool __thiscall CInstance::IsNull(unsigned short const *)const 
?IsNull@CInstance@@QBE_NPBG@Z
; public: int __thiscall ParsedObjectPath::IsObject(void)
?IsObject@ParsedObjectPath@@QAEHXZ
; public: bool __thiscall WBEMTime::IsOk(void)const 
?IsOk@WBEMTime@@QBE_NXZ
; public: bool __thiscall WBEMTimeSpan::IsOk(void)const 
?IsOk@WBEMTimeSpan@@QBE_NXZ
; public: bool __thiscall CFrameworkQuery::IsPropertyRequired(unsigned short const *)
?IsPropertyRequired@CFrameworkQuery@@QAE_NPBG@Z
; protected: int __thiscall CFrameworkQuery::IsReference(unsigned short const *)
?IsReference@CFrameworkQuery@@IAEHPBG@Z
; public: int __thiscall ParsedObjectPath::IsRelative(unsigned short const *,unsigned short const *)
?IsRelative@ParsedObjectPath@@QAEHPBG0@Z
; public: bool __thiscall CFrameworkQuery::KeysOnly(void)
?KeysOnly@CFrameworkQuery@@QAE_NXZ
; public: class CHString  __thiscall CHString::Left(int)const 
?Left@CHString@@QBE?AV1@H@Z
; protected: int __thiscall CHString::LoadStringW(unsigned int,unsigned short *,unsigned int)
?LoadStringW@CHString@@IAEHIPAGI@Z
; public: int __thiscall CHString::LoadStringW(unsigned int)
?LoadStringW@CHString@@QAEHI@Z
; public: void __cdecl ProviderLog::LocalLogMessage(unsigned short const *,int,enum ProviderLog::LogLevel,unsigned short const *,...)
?LocalLogMessage@ProviderLog@@QAAXPBGHW4LogLevel@1@0ZZ
; public: void __thiscall ProviderLog::LocalLogMessage(unsigned short const *,unsigned short const *,int,enum ProviderLog::LogLevel)
?LocalLogMessage@ProviderLog@@QAEXPBG0HW4LogLevel@1@@Z
; public: int __thiscall CRegistrySearch::LocateKeyByNameOrValueName(struct HKEY__ *,unsigned short const *,unsigned short const *,unsigned short const * *,unsigned long,class CHString &,class CHString &)
?LocateKeyByNameOrValueName@CRegistrySearch@@QAEHPAUHKEY__@@PBG1PAPBGKAAVCHString@@3@Z
; private: void __thiscall CThreadBase::Lock(void)
?Lock@CThreadBase@@AAEXXZ
; public: unsigned short * __thiscall CHString::LockBuffer(void)
?LockBuffer@CHString@@QAEPAGXZ
; private: static void __stdcall CWbemProviderGlue::LockFactoryMap(void)
?LockFactoryMap@CWbemProviderGlue@@CGXXZ
; private: static void __stdcall CWbemProviderGlue::LockProviderMap(void)
?LockProviderMap@CWbemProviderGlue@@CGXXZ
; public: virtual long __stdcall CWbemGlueFactory::LockServer(int)
?LockServer@CWbemGlueFactory@@UAGJH@Z
; protected: void __thiscall CInstance::LogError(unsigned short const *,unsigned short const *,unsigned short const *,long)const 
?LogError@CInstance@@IBEXPBG00J@Z
; protected: class CHString  __thiscall Provider::MakeLocalPath(class CHString const &)
?MakeLocalPath@Provider@@IAE?AVCHString@@ABV2@@Z
; public: void __thiscall CHString::MakeLower(void)
?MakeLower@CHString@@QAEXXZ
; public: void __thiscall CHString::MakeReverse(void)
?MakeReverse@CHString@@QAEXXZ
; public: void __thiscall CHString::MakeUpper(void)
?MakeUpper@CHString@@QAEXXZ
; public: class CHString  __thiscall CHString::Mid(int)const 
?Mid@CHString@@QBE?AV1@H@Z
; public: class CHString  __thiscall CHString::Mid(int,int)const 
?Mid@CHString@@QBE?AV1@HH@Z
; private: static long __stdcall CWinMsgEvent::MsgWndProc(struct HWND__ *,unsigned int,unsigned int,long)
?MsgWndProc@CWinMsgEvent@@CGJPAUHWND__@@IIJ@Z
; public: unsigned long __thiscall CRegistry::NextSubKey(void)
?NextSubKey@CRegistry@@QAEKXZ
; private: int __thiscall CObjectPathParser::NextToken(void)
?NextToken@CObjectPathParser@@AAEHXZ
; unsigned long __stdcall NormalizePath(unsigned short const *,unsigned short const *,unsigned short const *,unsigned long,class CHString &)
?NormalizePath@@YGKPBG00KAAVCHString@@@Z
; private: long __thiscall CWbemProviderGlue::NullOutUnsetProperties(struct IWbemClassObject *,struct IWbemClassObject * *,struct tagVARIANT const &)
?NullOutUnsetProperties@CWbemProviderGlue@@AAEJPAUIWbemClassObject@@PAPAU2@ABUtagVARIANT@@@Z
; protected: virtual void __thiscall CThreadBase::OnFinalRelease(void)
?OnFinalRelease@CThreadBase@@MAEXXZ
; public: long __thiscall CRegistry::Open(struct HKEY__ *,unsigned short const *,unsigned long)
?Open@CRegistry@@QAEJPAUHKEY__@@PBGK@Z
; public: long __thiscall CRegistry::OpenAndEnumerateSubKeys(struct HKEY__ *,unsigned short const *,unsigned long)
?OpenAndEnumerateSubKeys@CRegistry@@QAEJPAUHKEY__@@PBGK@Z
; public: unsigned long __thiscall CRegistry::OpenCurrentUser(unsigned short const *,unsigned long)
?OpenCurrentUser@CRegistry@@QAEKPBGK@Z
; public: long __thiscall CRegistry::OpenLocalMachineKeyAndReadValue(unsigned short const *,unsigned short const *,class CHString &)
?OpenLocalMachineKeyAndReadValue@CRegistry@@QAEJPBG0AAVCHString@@@Z
; public: virtual long __stdcall CWbemProviderGlue::OpenNamespace(unsigned short * const,long,struct IWbemContext *,struct IWbemServices * *,struct IWbemCallResult * *)
?OpenNamespace@CWbemProviderGlue@@UAGJQAGJPAUIWbemContext@@PAPAUIWbemServices@@PAPAUIWbemCallResult@@@Z
; private: unsigned long __thiscall CRegistry::OpenSubKey(void)
?OpenSubKey@CRegistry@@AAEKXZ
; public: int __thiscall CObjectPathParser::Parse(unsigned short const *,struct ParsedObjectPath * *)
?Parse@CObjectPathParser@@QAEHPBGPAPAUParsedObjectPath@@@Z
; private: long __thiscall CWbemProviderGlue::PreProcessPutInstanceParms(struct IWbemClassObject *,struct IWbemClassObject * *,struct IWbemContext *)
?PreProcessPutInstanceParms@CWbemProviderGlue@@AAEJPAUIWbemClassObject@@PAPAU2@PAUIWbemContext@@@Z
; private: void __thiscall CRegistry::PrepareToReOpen(void)
?PrepareToReOpen@CRegistry@@AAEXXZ
; public: virtual long __stdcall CWbemProviderGlue::PutClass(struct IWbemClassObject *,long,struct IWbemContext *,struct IWbemCallResult * *)
?PutClass@CWbemProviderGlue@@UAGJPAUIWbemClassObject@@JPAUIWbemContext@@PAPAUIWbemCallResult@@@Z
; public: virtual long __stdcall CWbemProviderGlue::PutClassAsync(struct IWbemClassObject *,long,struct IWbemContext *,struct IWbemObjectSink *)
?PutClassAsync@CWbemProviderGlue@@UAGJPAUIWbemClassObject@@JPAUIWbemContext@@PAUIWbemObjectSink@@@Z
; public: virtual long __stdcall CWbemProviderGlue::PutInstance(struct IWbemClassObject *,long,struct IWbemContext *,struct IWbemCallResult * *)
?PutInstance@CWbemProviderGlue@@UAGJPAUIWbemClassObject@@JPAUIWbemContext@@PAPAUIWbemCallResult@@@Z
; private: long __thiscall Provider::PutInstance(struct IWbemClassObject *,long,class MethodContext *)
?PutInstance@Provider@@AAEJPAUIWbemClassObject@@JPAVMethodContext@@@Z
; protected: virtual long __thiscall Provider::PutInstance(class CInstance const &,long)
?PutInstance@Provider@@MAEJABVCInstance@@J@Z
; public: virtual long __stdcall CWbemProviderGlue::PutInstanceAsync(struct IWbemClassObject *,long,struct IWbemContext *,struct IWbemObjectSink *)
?PutInstanceAsync@CWbemProviderGlue@@UAGJPAUIWbemClassObject@@JPAUIWbemContext@@PAUIWbemObjectSink@@@Z
; public: virtual long __stdcall CWbemGlueFactory::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@CWbemGlueFactory@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CWbemProviderGlue::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@CWbemProviderGlue@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CWbemProviderGlue::QueryObjectSink(long,struct IWbemObjectSink * *)
?QueryObjectSink@CWbemProviderGlue@@UAGJJPAPAUIWbemObjectSink@@@Z
; public: virtual void __thiscall MethodContext::QueryPostProcess(void)
?QueryPostProcess@MethodContext@@UAEXXZ
; protected: void __thiscall CWinMsgEvent::RegisterForMessage(unsigned int)
?RegisterForMessage@CWinMsgEvent@@IAEXI@Z
; protected: void __thiscall CHString::Release(void)
?Release@CHString@@IAEXXZ
; protected: static void __stdcall CHString::Release(struct CHStringData *)
?Release@CHString@@KGXPAUCHStringData@@@Z
; public: long __thiscall CInstance::Release(void)
?Release@CInstance@@QAEJXZ
; public: long __thiscall CThreadBase::Release(void)
?Release@CThreadBase@@QAEJXZ
; public: virtual unsigned long __stdcall CWbemGlueFactory::Release(void)
?Release@CWbemGlueFactory@@UAGKXZ
; public: virtual unsigned long __stdcall CWbemProviderGlue::Release(void)
?Release@CWbemProviderGlue@@UAGKXZ
; public: long __thiscall MethodContext::Release(void)
?Release@MethodContext@@QAEJXZ
; public: void __thiscall CHString::ReleaseBuffer(int)
?ReleaseBuffer@CHString@@QAEXH@Z
; public: void __thiscall CHPtrArray::RemoveAll(void)
?RemoveAll@CHPtrArray@@QAEXXZ
; public: void __thiscall CHStringArray::RemoveAll(void)
?RemoveAll@CHStringArray@@QAEXXZ
; public: void __thiscall CHPtrArray::RemoveAt(int,int)
?RemoveAt@CHPtrArray@@QAEXHH@Z
; public: void __thiscall CHStringArray::RemoveAt(int,int)
?RemoveAt@CHStringArray@@QAEXHH@Z
; protected: static void __stdcall CWbemProviderGlue::RemoveFromFactoryMap(class CWbemGlueFactory const *)
?RemoveFromFactoryMap@CWbemProviderGlue@@KGXPBVCWbemGlueFactory@@@Z
; private: void __thiscall CFrameworkQuery::Reset(void)
?Reset@CFrameworkQuery@@AAEXXZ
; public: int __thiscall CHString::ReverseFind(unsigned short)const 
?ReverseFind@CHString@@QBEHG@Z
; public: void __thiscall CRegistry::RewindSubKeys(void)
?RewindSubKeys@CRegistry@@QAEXXZ
; public: class CHString  __thiscall CHString::Right(int)const 
?Right@CHString@@QBE?AV1@H@Z
; protected: static int __stdcall CHString::SafeStrlen(unsigned short const *)
?SafeStrlen@CHString@@KGHPBG@Z
; public: int __thiscall CRegistrySearch::SearchAndBuildList(class CHString,class CHPtrArray &,class CHString,class CHString,int,struct HKEY__ *)
?SearchAndBuildList@CRegistrySearch@@QAEHVCHString@@AAVCHPtrArray@@00HPAUHKEY__@@@Z
; private: static class Provider * __stdcall CWbemProviderGlue::SearchMapForProvider(unsigned short const *,unsigned short const *)
?SearchMapForProvider@CWbemProviderGlue@@CGPAVProvider@@PBG0@Z
; public: void __thiscall CHPtrArray::SetAt(int,void *)
?SetAt@CHPtrArray@@QAEXHPAX@Z
; public: void __thiscall CHString::SetAt(int,unsigned short)
?SetAt@CHString@@QAEXHG@Z
; public: void __thiscall CHStringArray::SetAt(int,unsigned short const *)
?SetAt@CHStringArray@@QAEXHPBG@Z
; public: void __thiscall CHPtrArray::SetAtGrow(int,void *)
?SetAtGrow@CHPtrArray@@QAEXHPAX@Z
; public: void __thiscall CHStringArray::SetAtGrow(int,unsigned short const *)
?SetAtGrow@CHStringArray@@QAEXHPBG@Z
; public: bool __thiscall CInstance::SetByte(unsigned short const *,unsigned char)
?SetByte@CInstance@@QAE_NPBGE@Z
; public: bool __thiscall CInstance::SetCHString(unsigned short const *,unsigned short const *)
?SetCHString@CInstance@@QAE_NPBG0@Z
; public: bool __thiscall CInstance::SetCHString(unsigned short const *,class CHString const &)
?SetCHString@CInstance@@QAE_NPBGABVCHString@@@Z
; public: bool __thiscall CInstance::SetCHString(unsigned short const *,char const *)
?SetCHString@CInstance@@QAE_NPBGPBD@Z
; void __stdcall SetCHStringResourceHandle(struct HINSTANCE__ *)
?SetCHStringResourceHandle@@YGXPAUHINSTANCE__@@@Z
; public: bool __thiscall CInstance::SetCharSplat(unsigned short const *,unsigned short const *)
?SetCharSplat@CInstance@@QAE_NPBG0@Z
; public: bool __thiscall CInstance::SetCharSplat(unsigned short const *,unsigned long)
?SetCharSplat@CInstance@@QAE_NPBGK@Z
; public: bool __thiscall CInstance::SetCharSplat(unsigned short const *,char const *)
?SetCharSplat@CInstance@@QAE_NPBGPBD@Z
; public: int __thiscall ParsedObjectPath::SetClassName(unsigned short const *)
?SetClassName@ParsedObjectPath@@QAEHPBG@Z
; protected: bool __thiscall Provider::SetCreationClassName(class CInstance *)
?SetCreationClassName@Provider@@IAE_NPAVCInstance@@@Z
; public: unsigned long __thiscall CRegistry::SetCurrentKeyValue(struct HKEY__ *,unsigned short const *,unsigned long &)
?SetCurrentKeyValue@CRegistry@@QAEKPAUHKEY__@@PBGAAK@Z
; public: unsigned long __thiscall CRegistry::SetCurrentKeyValue(struct HKEY__ *,unsigned short const *,class CHString &)
?SetCurrentKeyValue@CRegistry@@QAEKPAUHKEY__@@PBGAAVCHString@@@Z
; public: unsigned long __thiscall CRegistry::SetCurrentKeyValue(struct HKEY__ *,unsigned short const *,class CHStringArray &)
?SetCurrentKeyValue@CRegistry@@QAEKPAUHKEY__@@PBGAAVCHStringArray@@@Z
; public: unsigned long __thiscall CRegistry::SetCurrentKeyValue(unsigned short const *,unsigned long &)
?SetCurrentKeyValue@CRegistry@@QAEKPBGAAK@Z
; public: unsigned long __thiscall CRegistry::SetCurrentKeyValue(unsigned short const *,class CHString &)
?SetCurrentKeyValue@CRegistry@@QAEKPBGAAVCHString@@@Z
; public: unsigned long __thiscall CRegistry::SetCurrentKeyValue(unsigned short const *,class CHStringArray &)
?SetCurrentKeyValue@CRegistry@@QAEKPBGAAVCHStringArray@@@Z
; public: unsigned long __thiscall CRegistry::SetCurrentKeyValueExpand(struct HKEY__ *,unsigned short const *,class CHString &)
?SetCurrentKeyValueExpand@CRegistry@@QAEKPAUHKEY__@@PBGAAVCHString@@@Z
; public: int __thiscall WBEMTime::SetDMTF(unsigned short * const)
?SetDMTF@WBEMTime@@QAEHQAG@Z
; public: bool __thiscall CInstance::SetDOUBLE(unsigned short const *,double)
?SetDOUBLE@CInstance@@QAE_NPBGN@Z
; public: bool __thiscall CInstance::SetDWORD(unsigned short const *,unsigned long)
?SetDWORD@CInstance@@QAE_NPBGK@Z
; public: bool __thiscall CInstance::SetDateTime(unsigned short const *,class WBEMTime const &)
?SetDateTime@CInstance@@QAE_NPBGABVWBEMTime@@@Z
; private: void __thiscall CRegistry::SetDefaultValues(void)
?SetDefaultValues@CRegistry@@AAEXXZ
; public: bool __thiscall CInstance::SetEmbeddedObject(unsigned short const *,class CInstance &)
?SetEmbeddedObject@CInstance@@QAE_NPBGAAV1@@Z
; private: int __thiscall Provider::SetKeyFromParsedObjectPath(class CInstance *,struct ParsedObjectPath *)
?SetKeyFromParsedObjectPath@Provider@@AAEHPAVCInstance@@PAUParsedObjectPath@@@Z
; public: bool __thiscall CInstance::SetNull(unsigned short const *)
?SetNull@CInstance@@QAE_NPBG@Z
; private: static int __stdcall CRegistry::SetPlatformID(void)
?SetPlatformID@CRegistry@@CGHXZ
; public: void __thiscall CHPtrArray::SetSize(int,int)
?SetSize@CHPtrArray@@QAEXHH@Z
; public: void __thiscall CHStringArray::SetSize(int,int)
?SetSize@CHStringArray@@QAEXHH@Z
; public: static bool __stdcall CWbemProviderGlue::SetStatusObject(class MethodContext *,unsigned short const *,unsigned short const *,long,struct tagSAFEARRAY const *,struct tagSAFEARRAY const *)
?SetStatusObject@CWbemProviderGlue@@SG_NPAVMethodContext@@PBG1JPBUtagSAFEARRAY@@2@Z
; public: bool __thiscall MethodContext::SetStatusObject(struct IWbemClassObject *)
?SetStatusObject@MethodContext@@QAE_NPAUIWbemClassObject@@@Z
; public: bool __thiscall CInstance::SetStringArray(unsigned short const *,struct tagSAFEARRAY const &)
?SetStringArray@CInstance@@QAE_NPBGABUtagSAFEARRAY@@@Z
; public: bool __thiscall CInstance::SetTimeSpan(unsigned short const *,class WBEMTimeSpan const &)
?SetTimeSpan@CInstance@@QAE_NPBGABVWBEMTimeSpan@@@Z
; public: bool __thiscall CInstance::SetVariant(unsigned short const *,struct tagVARIANT const &)
?SetVariant@CInstance@@QAE_NPBGABUtagVARIANT@@@Z
; public: bool __thiscall CInstance::SetWBEMINT16(unsigned short const *,short const &)
?SetWBEMINT16@CInstance@@QAE_NPBGABF@Z
; public: bool __thiscall CInstance::SetWBEMINT64(unsigned short const *,class CHString const &)
?SetWBEMINT64@CInstance@@QAE_NPBGABVCHString@@@Z
; public: bool __thiscall CInstance::SetWBEMINT64(unsigned short const *,__int64)
?SetWBEMINT64@CInstance@@QAE_NPBG_J@Z
; public: bool __thiscall CInstance::SetWBEMINT64(unsigned short const *,unsigned __int64)
?SetWBEMINT64@CInstance@@QAE_NPBG_K@Z
; public: bool __thiscall CInstance::SetWCHARSplat(unsigned short const *,unsigned short const *)
?SetWCHARSplat@CInstance@@QAE_NPBG0@Z
; public: bool __thiscall CInstance::SetWORD(unsigned short const *,unsigned short)
?SetWORD@CInstance@@QAE_NPBGG@Z
; public: bool __thiscall CInstance::Setbool(unsigned short const *,bool)
?Setbool@CInstance@@QAE_NPBG_N@Z
; public: int __thiscall CAutoEvent::Signal(void)
?Signal@CAutoEvent@@QAEHXZ
; public: class CHString  __thiscall CHString::SpanExcluding(unsigned short const *)const 
?SpanExcluding@CHString@@QBE?AV1@PBG@Z
; public: class CHString  __thiscall CHString::SpanIncluding(unsigned short const *)const 
?SpanIncluding@CHString@@QBE?AV1@PBG@Z
; public: void __thiscall CHString::TrimLeft(void)
?TrimLeft@CHString@@QAEXXZ
; public: void __thiscall CHString::TrimRight(void)
?TrimRight@CHString@@QAEXXZ
; private: static void __stdcall CWbemProviderGlue::UnInit(void)
?UnInit@CWbemProviderGlue@@CGXXZ
; protected: void __thiscall CWinMsgEvent::UnRegisterAllMessages(void)
?UnRegisterAllMessages@CWinMsgEvent@@IAEXXZ
; protected: bool __thiscall CWinMsgEvent::UnRegisterMessage(unsigned int)
?UnRegisterMessage@CWinMsgEvent@@IAE_NI@Z
; private: void __thiscall CThreadBase::Unlock(void)
?Unlock@CThreadBase@@AAEXXZ
; public: void __thiscall CHString::UnlockBuffer(void)
?UnlockBuffer@CHString@@QAEXXZ
; private: static void __stdcall CWbemProviderGlue::UnlockFactoryMap(void)
?UnlockFactoryMap@CWbemProviderGlue@@CGXXZ
; private: static void __stdcall CWbemProviderGlue::UnlockProviderMap(void)
?UnlockProviderMap@CWbemProviderGlue@@CGXXZ
; public: static int __stdcall CObjectPathParser::Unparse(struct ParsedObjectPath *,unsigned short * *)
?Unparse@CObjectPathParser@@SGHPAUParsedObjectPath@@PAPAG@Z
; protected: virtual long __thiscall Provider::ValidateDeletionFlags(long)
?ValidateDeletionFlags@Provider@@MAEJJ@Z
; protected: virtual long __thiscall Provider::ValidateEnumerationFlags(long)
?ValidateEnumerationFlags@Provider@@MAEJJ@Z
; protected: long __thiscall Provider::ValidateFlags(long,enum Provider::FlagDefs)
?ValidateFlags@Provider@@IAEJJW4FlagDefs@1@@Z
; protected: virtual long __thiscall Provider::ValidateGetObjFlags(long)
?ValidateGetObjFlags@Provider@@MAEJJ@Z
; private: int __thiscall Provider::ValidateIMOSPointer(void)
?ValidateIMOSPointer@Provider@@AAEHXZ
; protected: virtual long __thiscall Provider::ValidateMethodFlags(long)
?ValidateMethodFlags@Provider@@MAEJJ@Z
; protected: virtual long __thiscall Provider::ValidatePutInstanceFlags(long)
?ValidatePutInstanceFlags@Provider@@MAEJJ@Z
; protected: virtual long __thiscall Provider::ValidateQueryFlags(long)
?ValidateQueryFlags@Provider@@MAEJJ@Z
; public: unsigned long __thiscall CAutoEvent::Wait(unsigned long)
?Wait@CAutoEvent@@QAEKK@Z
; private: static void __stdcall CWinMsgEvent::WindowsDispatch(void)
?WindowsDispatch@CWinMsgEvent@@CGXXZ
; private: void __thiscall CObjectPathParser::Zero(void)
?Zero@CObjectPathParser@@AAEXXZ
; private: int __thiscall CObjectPathParser::begin_parse(void)
?begin_parse@CObjectPathParser@@AAEHXZ
; class ProviderLog  captainsLog
?captainsLog@@3VProviderLog@@A DATA
; private: static unsigned long __stdcall CWinMsgEvent::dwThreadProc(void *)
?dwThreadProc@CWinMsgEvent@@CGKPAX@Z
; class CCritSec  g_cs
?g_cs@@3VCCritSec@@A DATA
; private: int __thiscall CObjectPathParser::ident_becomes_class(void)
?ident_becomes_class@CObjectPathParser@@AAEHXZ
; private: int __thiscall CObjectPathParser::ident_becomes_ns(void)
?ident_becomes_ns@CObjectPathParser@@AAEHXZ
; private: int __thiscall CObjectPathParser::key_const(void)
?key_const@CObjectPathParser@@AAEHXZ
; private: int __thiscall CObjectPathParser::keyref(void)
?keyref@CObjectPathParser@@AAEHXZ
; private: int __thiscall CObjectPathParser::keyref_list(void)
?keyref_list@CObjectPathParser@@AAEHXZ
; private: int __thiscall CObjectPathParser::keyref_term(void)
?keyref_term@CObjectPathParser@@AAEHXZ
; private: static class std::set<void *,struct std::less<void *>,class std::allocator<void *> >  CWbemProviderGlue::m_FlushPtrs
?m_FlushPtrs@CWbemProviderGlue@@0V?$set@PAXU?$less@PAX@std@@V?$allocator@PAX@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 *  CWbemProviderGlue::m_pStatusObject
?m_pStatusObject@CWbemProviderGlue@@0PAUIWbemClassObject@@A 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 *  CWinMsgEvent::mg_hThreadPumpHandle
?mg_hThreadPumpHandle@CWinMsgEvent@@0PAXA DATA
; private: static struct HWND__ *  CWinMsgEvent::mg_hWnd
?mg_hWnd@CWinMsgEvent@@0PAUHWND__@@A DATA
; private: static class std::multimap<unsigned int,class CWinMsgEvent *,struct std::less<unsigned int>,class std::allocator<class CWinMsgEvent *> >  CWinMsgEvent::mg_oSinkMap
?mg_oSinkMap@CWinMsgEvent@@0V?$multimap@IPAVCWinMsgEvent@@U?$less@I@std@@V?$allocator@PAVCWinMsgEvent@@@3@@std@@A DATA
; private: long __thiscall CRegistry::myRegCreateKeyEx(struct HKEY__ *,unsigned short const *,unsigned long,unsigned short *,unsigned long,unsigned long,struct _SECURITY_ATTRIBUTES *,struct HKEY__ * *,unsigned long *)
?myRegCreateKeyEx@CRegistry@@AAEJPAUHKEY__@@PBGKPAGKKPAU_SECURITY_ATTRIBUTES@@PAPAU2@PAK@Z
; private: long __thiscall CRegistry::myRegDeleteKey(struct HKEY__ *,unsigned short const *)
?myRegDeleteKey@CRegistry@@AAEJPAUHKEY__@@PBG@Z
; private: long __thiscall CRegistry::myRegDeleteValue(struct HKEY__ *,unsigned short const *)
?myRegDeleteValue@CRegistry@@AAEJPAUHKEY__@@PBG@Z
; private: long __thiscall CRegistry::myRegEnumKey(struct HKEY__ *,unsigned long,unsigned short *,unsigned long)
?myRegEnumKey@CRegistry@@AAEJPAUHKEY__@@KPAGK@Z
; private: long __thiscall CRegistry::myRegEnumValue(struct HKEY__ *,unsigned long,unsigned short *,unsigned long *,unsigned long *,unsigned long *,unsigned char *,unsigned long *)
?myRegEnumValue@CRegistry@@AAEJPAUHKEY__@@KPAGPAK22PAE2@Z
; private: long __thiscall CRegistry::myRegOpenKeyEx(struct HKEY__ *,unsigned short const *,unsigned long,unsigned long,struct HKEY__ * *)
?myRegOpenKeyEx@CRegistry@@AAEJPAUHKEY__@@PBGKKPAPAU2@@Z
; private: long __thiscall CRegistry::myRegQueryInfoKey(struct HKEY__ *,unsigned short *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,struct _FILETIME *)
?myRegQueryInfoKey@CRegistry@@AAEJPAUHKEY__@@PAGPAK22222222PAU_FILETIME@@@Z
; private: long __thiscall CRegistry::myRegQueryValueEx(struct HKEY__ *,unsigned short const *,unsigned long *,unsigned long *,unsigned char *,unsigned long *)
?myRegQueryValueEx@CRegistry@@AAEJPAUHKEY__@@PBGPAK2PAE2@Z
; private: long __thiscall CRegistry::myRegSetValueEx(struct HKEY__ *,unsigned short const *,unsigned long,unsigned long,unsigned char const *,unsigned long)
?myRegSetValueEx@CRegistry@@AAEJPAUHKEY__@@PBGKKPBEK@Z
; private: int __thiscall CObjectPathParser::ns_list(void)
?ns_list@CObjectPathParser@@AAEHXZ
; private: int __thiscall CObjectPathParser::ns_list_rest(void)
?ns_list_rest@CObjectPathParser@@AAEHXZ
; private: int __thiscall CObjectPathParser::ns_or_class(void)
?ns_or_class@CObjectPathParser@@AAEHXZ
; private: int __thiscall CObjectPathParser::ns_or_server(void)
?ns_or_server@CObjectPathParser@@AAEHXZ
; private: int __thiscall CObjectPathParser::objref(void)
?objref@CObjectPathParser@@AAEHXZ
; private: int __thiscall CObjectPathParser::objref_rest(void)
?objref_rest@CObjectPathParser@@AAEHXZ
; private: int __thiscall CObjectPathParser::optional_objref(void)
?optional_objref@CObjectPathParser@@AAEHXZ
; private: int __thiscall CObjectPathParser::propname(void)
?propname@CObjectPathParser@@AAEHXZ
; 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 *,long *,struct std::less<void const *>,class std::allocator<long *> >  CWbemProviderGlue::s_factorymap
?s_factorymap@CWbemProviderGlue@@0V?$map@PBXPAJU?$less@PBX@std@@V?$allocator@PAJ@2@@std@@A DATA
; private: static long  CWbemProviderGlue::s_lObjects
?s_lObjects@CWbemProviderGlue@@0JA DATA
; private: static class std::map<class CHString,void *,struct std::less<class CHString>,class std::allocator<void *> >  CWbemProviderGlue::s_providersmap
?s_providersmap@CWbemProviderGlue@@0V?$map@VCHString@@PAXU?$less@VCHString@@@std@@V?$allocator@PAX@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@16
