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