; 
; Exports of file FastProx.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY FastProx.dll
EXPORTS
; public: __thiscall CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>::CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>(class CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc> const &)
??0?$CImpl@UIWbemObjectTextSrc@@VCWmiObjectTextSrc@@@@QAE@ABV0@@Z
; public: __thiscall CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>::CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>(class CWmiObjectTextSrc *)
??0?$CImpl@UIWbemObjectTextSrc@@VCWmiObjectTextSrc@@@@QAE@PAVCWmiObjectTextSrc@@@Z
; public: __thiscall CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>::CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>(class CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc> const &)
??0?$CImpl@UIWbemRefreshingServices@@VCWbemRefreshingSvc@@@@QAE@ABV0@@Z
; public: __thiscall CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>::CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>(class CWbemRefreshingSvc *)
??0?$CImpl@UIWbemRefreshingServices@@VCWbemRefreshingSvc@@@@QAE@PAVCWbemRefreshingSvc@@@Z
; public: __thiscall CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>::CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>(class CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher> const &)
??0?$CImpl@UIWbemRemoteRefresher@@VCWbemRemoteRefresher@@@@QAE@ABV0@@Z
; public: __thiscall CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>::CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>(class CWbemRemoteRefresher *)
??0?$CImpl@UIWbemRemoteRefresher@@VCWbemRemoteRefresher@@@@QAE@PAVCWbemRemoteRefresher@@@Z
; public: __thiscall CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>::CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>(class CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc> const &)
??0?$CImpl@U_IWbemConfigureRefreshingSvcs@@VCWbemRefreshingSvc@@@@QAE@ABV0@@Z
; public: __thiscall CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>::CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>(class CWbemRefreshingSvc *)
??0?$CImpl@U_IWbemConfigureRefreshingSvcs@@VCWbemRefreshingSvc@@@@QAE@PAVCWbemRefreshingSvc@@@Z
; public: __thiscall CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>::CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>(class CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling> const &)
??0?$CImpl@U_IWbemEnumMarshaling@@VCWbemEnumMarshaling@@@@QAE@ABV0@@Z
; public: __thiscall CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>::CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>(class CWbemEnumMarshaling *)
??0?$CImpl@U_IWbemEnumMarshaling@@VCWbemEnumMarshaling@@@@QAE@PAVCWbemEnumMarshaling@@@Z
; public: __thiscall CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>::CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>(class CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr> const &)
??0?$CImpl@U_IWbemFetchRefresherMgr@@VCWbemFetchRefrMgr@@@@QAE@ABV0@@Z
; public: __thiscall CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>::CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>(class CWbemFetchRefrMgr *)
??0?$CImpl@U_IWbemFetchRefresherMgr@@VCWbemFetchRefrMgr@@@@QAE@PAVCWbemFetchRefrMgr@@@Z
; public: __thiscall CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>::CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>(class CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory> const &)
??0?$CImpl@U_IWmiObjectFactory@@VCWmiObjectFactory@@@@QAE@ABV0@@Z
; public: __thiscall CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>::CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>(class CWmiObjectFactory *)
??0?$CImpl@U_IWmiObjectFactory@@VCWmiObjectFactory@@@@QAE@PAVCWmiObjectFactory@@@Z
; public: __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>(class CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray> &)
??0?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAE@AAV0@@Z
; public: __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>(class CReferenceManager<class CFastPropertyBagItem> const &)
??0?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAE@ABV?$CReferenceManager@VCFastPropertyBagItem@@@@@Z
; public: __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>(class CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray> &)
??0?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAE@AAV0@@Z
; public: __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>(class CReferenceManager<class CWmiTextSource> const &)
??0?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAE@ABV?$CReferenceManager@VCWmiTextSource@@@@@Z
; public: __thiscall CRefedPointerArray<class CFastPropertyBagItem>::CRefedPointerArray<class CFastPropertyBagItem>(class CRefedPointerArray<class CFastPropertyBagItem> &)
??0?$CRefedPointerArray@VCFastPropertyBagItem@@@@QAE@AAV0@@Z
; public: __thiscall CRefedPointerArray<class CFastPropertyBagItem>::CRefedPointerArray<class CFastPropertyBagItem>(void)
??0?$CRefedPointerArray@VCFastPropertyBagItem@@@@QAE@XZ
; public: __thiscall CRefedPointerArray<class CWmiTextSource>::CRefedPointerArray<class CWmiTextSource>(class CRefedPointerArray<class CWmiTextSource> &)
??0?$CRefedPointerArray@VCWmiTextSource@@@@QAE@AAV0@@Z
; public: __thiscall CRefedPointerArray<class CWmiTextSource>::CRefedPointerArray<class CWmiTextSource>(void)
??0?$CRefedPointerArray@VCWmiTextSource@@@@QAE@XZ
; public: __thiscall CBasicQualifierSet::CBasicQualifierSet(void)
??0CBasicQualifierSet@@QAE@XZ
; public: __thiscall CClassAndMethods::CClassAndMethods(class CClassAndMethods const &)
??0CClassAndMethods@@QAE@ABV0@@Z
; public: __thiscall CClassAndMethods::CClassAndMethods(void)
??0CClassAndMethods@@QAE@XZ
; public: __thiscall CClassPart::CClassPart(class CClassPart const &)
??0CClassPart@@QAE@ABV0@@Z
; public: __thiscall CClassPart::CClassPart(void)
??0CClassPart@@QAE@XZ
; public: __thiscall CClassPartContainer::CClassPartContainer(class CClassPartContainer const &)
??0CClassPartContainer@@QAE@ABV0@@Z
; public: __thiscall CClassPartContainer::CClassPartContainer(void)
??0CClassPartContainer@@QAE@XZ
; public: __thiscall CClassQualifierSet::CClassQualifierSet(class CClassQualifierSet const &)
??0CClassQualifierSet@@QAE@ABV0@@Z
; public: __thiscall CClassQualifierSet::CClassQualifierSet(int)
??0CClassQualifierSet@@QAE@H@Z
; public: __thiscall CDecorationPart::CDecorationPart(void)
??0CDecorationPart@@QAE@XZ
; public: __thiscall CFastPropertyBag::CFastPropertyBag(class CFastPropertyBag &)
??0CFastPropertyBag@@QAE@AAV0@@Z
; public: __thiscall CFastPropertyBag::CFastPropertyBag(void)
??0CFastPropertyBag@@QAE@XZ
; public: __thiscall CFixedBSTRArray::CFixedBSTRArray(void)
??0CFixedBSTRArray@@QAE@XZ
; public: __thiscall CHiPerfLock::CHiPerfLock(void)
??0CHiPerfLock@@QAE@XZ
; public: __thiscall CInstancePQSContainer::CInstancePQSContainer(class CInstancePQSContainer const &)
??0CInstancePQSContainer@@QAE@ABV0@@Z
; public: __thiscall CInstancePQSContainer::CInstancePQSContainer(void)
??0CInstancePQSContainer@@QAE@XZ
; public: __thiscall CInstancePart::CInstancePart(class CInstancePart const &)
??0CInstancePart@@QAE@ABV0@@Z
; public: __thiscall CInstancePart::CInstancePart(void)
??0CInstancePart@@QAE@XZ
; public: __thiscall CInstancePartContainer::CInstancePartContainer(class CInstancePartContainer const &)
??0CInstancePartContainer@@QAE@ABV0@@Z
; public: __thiscall CInstancePartContainer::CInstancePartContainer(void)
??0CInstancePartContainer@@QAE@XZ
; public: __thiscall CInstanceQualifierSet::CInstanceQualifierSet(class CInstanceQualifierSet const &)
??0CInstanceQualifierSet@@QAE@ABV0@@Z
; public: __thiscall CInstanceQualifierSet::CInstanceQualifierSet(int)
??0CInstanceQualifierSet@@QAE@H@Z
; public: __thiscall CInternalString::CInternalString(class CInternalString const &)
??0CInternalString@@QAE@ABV0@@Z
; public: __thiscall CInternalString::CInternalString(unsigned short const *)
??0CInternalString@@QAE@PBG@Z
; public: __thiscall CInternalString::CInternalString(void)
??0CInternalString@@QAE@XZ
; public: __thiscall CLimitationMapping::CLimitationMapping(class CLimitationMapping &)
??0CLimitationMapping@@QAE@AAV0@@Z
; public: __thiscall CLimitationMapping::CLimitationMapping(void)
??0CLimitationMapping@@QAE@XZ
; public: __thiscall CMethodPart::CMethodPart(class CMethodPart const &)
??0CMethodPart@@QAE@ABV0@@Z
; public: __thiscall CMethodPart::CMethodPart(void)
??0CMethodPart@@QAE@XZ
; public: __thiscall CMethodPartContainer::CMethodPartContainer(class CMethodPartContainer const &)
??0CMethodPartContainer@@QAE@ABV0@@Z
; public: __thiscall CMethodPartContainer::CMethodPartContainer(void)
??0CMethodPartContainer@@QAE@XZ
; public: __thiscall CMethodQualifierSet::CMethodQualifierSet(class CMethodQualifierSet const &)
??0CMethodQualifierSet@@QAE@ABV0@@Z
; public: __thiscall CMethodQualifierSet::CMethodQualifierSet(void)
??0CMethodQualifierSet@@QAE@XZ
; public: __thiscall CMethodQualifierSetContainer::CMethodQualifierSetContainer(class CMethodQualifierSetContainer const &)
??0CMethodQualifierSetContainer@@QAE@ABV0@@Z
; public: __thiscall CMethodQualifierSetContainer::CMethodQualifierSetContainer(void)
??0CMethodQualifierSetContainer@@QAE@XZ
; public: __thiscall CPropertyBagItemArray::CPropertyBagItemArray(class CPropertyBagItemArray &)
??0CPropertyBagItemArray@@QAE@AAV0@@Z
; public: __thiscall CPropertyBagItemArray::CPropertyBagItemArray(void)
??0CPropertyBagItemArray@@QAE@XZ
; public: __thiscall CQualifierSet::CQualifierSet(class CQualifierSet const &)
??0CQualifierSet@@QAE@ABV0@@Z
; public: __thiscall CQualifierSet::CQualifierSet(int,int)
??0CQualifierSet@@QAE@HH@Z
; public: __thiscall CQualifierSetListContainer::CQualifierSetListContainer(class CQualifierSetListContainer const &)
??0CQualifierSetListContainer@@QAE@ABV0@@Z
; public: __thiscall CQualifierSetListContainer::CQualifierSetListContainer(void)
??0CQualifierSetListContainer@@QAE@XZ
; public: __thiscall CType::CType(unsigned long)
??0CType@@QAE@K@Z
; public: __thiscall CType::CType(void)
??0CType@@QAE@XZ
; public: __thiscall CWbemCallSecurity::CWbemCallSecurity(class CWbemCallSecurity const &)
??0CWbemCallSecurity@@QAE@ABV0@@Z
; public: __thiscall CWbemCallSecurity::CWbemCallSecurity(class CLifeControl *)
??0CWbemCallSecurity@@QAE@PAVCLifeControl@@@Z
; public: __thiscall CWbemClass::CWbemClass(class CWbemClass const &)
??0CWbemClass@@QAE@ABV0@@Z
; public: __thiscall CWbemClass::CWbemClass(void)
??0CWbemClass@@QAE@XZ
; public: __thiscall CWbemClassCache::CWbemClassCache(class CWbemClassCache const &)
??0CWbemClassCache@@QAE@ABV0@@Z
; public: __thiscall CWbemClassCache::CWbemClassCache(unsigned long)
??0CWbemClassCache@@QAE@K@Z
; protected: __thiscall CWbemDataPacket::CWbemDataPacket(void)
??0CWbemDataPacket@@IAE@XZ
; public: __thiscall CWbemDataPacket::CWbemDataPacket(unsigned char *,unsigned long,bool)
??0CWbemDataPacket@@QAE@PAEK_N@Z
; public: __thiscall CWbemEnumMarshaling::CWbemEnumMarshaling(class CWbemEnumMarshaling const &)
??0CWbemEnumMarshaling@@QAE@ABV0@@Z
; public: __thiscall CWbemEnumMarshaling::CWbemEnumMarshaling(class CLifeControl *,struct IUnknown *)
??0CWbemEnumMarshaling@@QAE@PAVCLifeControl@@PAUIUnknown@@@Z
; public: __thiscall CWbemFetchRefrMgr::CWbemFetchRefrMgr(class CWbemFetchRefrMgr const &)
??0CWbemFetchRefrMgr@@QAE@ABV0@@Z
; public: __thiscall CWbemFetchRefrMgr::CWbemFetchRefrMgr(class CLifeControl *,struct IUnknown *)
??0CWbemFetchRefrMgr@@QAE@PAVCLifeControl@@PAUIUnknown@@@Z
; public: __thiscall CWbemGuidToClassMap::CWbemGuidToClassMap(class CWbemGuidToClassMap const &)
??0CWbemGuidToClassMap@@QAE@ABV0@@Z
; public: __thiscall CWbemGuidToClassMap::CWbemGuidToClassMap(void)
??0CWbemGuidToClassMap@@QAE@XZ
; public: __thiscall CWbemInstance::CWbemInstance(class CWbemInstance const &)
??0CWbemInstance@@QAE@ABV0@@Z
; public: __thiscall CWbemInstance::CWbemInstance(void)
??0CWbemInstance@@QAE@XZ
; private: __thiscall CWbemMtgtDeliverEventPacket::CWbemMtgtDeliverEventPacket(void)
??0CWbemMtgtDeliverEventPacket@@AAE@XZ
; public: __thiscall CWbemMtgtDeliverEventPacket::CWbemMtgtDeliverEventPacket(unsigned char *,unsigned long,bool)
??0CWbemMtgtDeliverEventPacket@@QAE@PAEK_N@Z
; protected: __thiscall CWbemObject::CWbemObject(class CDataTable &,class CFastHeap &,class CDerivationList &)
??0CWbemObject@@IAE@AAVCDataTable@@AAVCFastHeap@@AAVCDerivationList@@@Z
; public: __thiscall CWbemObject::CWbemObject(class CWbemObject const &)
??0CWbemObject@@QAE@ABV0@@Z
; public: __thiscall CWbemObjectArrayPacket::CWbemObjectArrayPacket(unsigned char *,unsigned long,bool)
??0CWbemObjectArrayPacket@@QAE@PAEK_N@Z
; public: __thiscall CWbemRefreshingSvc::CWbemRefreshingSvc(class CWbemRefreshingSvc const &)
??0CWbemRefreshingSvc@@QAE@ABV0@@Z
; public: __thiscall CWbemRefreshingSvc::CWbemRefreshingSvc(class CLifeControl *,struct IUnknown *)
??0CWbemRefreshingSvc@@QAE@PAVCLifeControl@@PAUIUnknown@@@Z
; private: __thiscall CWbemSmartEnumNextPacket::CWbemSmartEnumNextPacket(void)
??0CWbemSmartEnumNextPacket@@AAE@XZ
; public: __thiscall CWbemSmartEnumNextPacket::CWbemSmartEnumNextPacket(unsigned char *,unsigned long,bool)
??0CWbemSmartEnumNextPacket@@QAE@PAEK_N@Z
; public: __thiscall CWbemThreadSecurityHandle::CWbemThreadSecurityHandle(class CWbemThreadSecurityHandle const &)
??0CWbemThreadSecurityHandle@@QAE@ABV0@@Z
; public: __thiscall CWbemThreadSecurityHandle::CWbemThreadSecurityHandle(class CLifeControl *)
??0CWbemThreadSecurityHandle@@QAE@PAVCLifeControl@@@Z
; public: __thiscall CWmiObjectFactory::CWmiObjectFactory(class CWmiObjectFactory const &)
??0CWmiObjectFactory@@QAE@ABV0@@Z
; public: __thiscall CWmiObjectFactory::CWmiObjectFactory(class CLifeControl *,struct IUnknown *)
??0CWmiObjectFactory@@QAE@PAVCLifeControl@@PAUIUnknown@@@Z
; public: __thiscall CWmiTextSourceArray::CWmiTextSourceArray(class CWmiTextSourceArray &)
??0CWmiTextSourceArray@@QAE@AAV0@@Z
; public: __thiscall CWmiTextSourceArray::CWmiTextSourceArray(void)
??0CWmiTextSourceArray@@QAE@XZ
; public: __thiscall SHARED_LOCK_DATA::SHARED_LOCK_DATA(void)
??0SHARED_LOCK_DATA@@QAE@XZ
; public: __thiscall CWbemRefreshingSvc::XCfgRefrSrvc::XCfgRefrSrvc(class XCfgRefrSrvc::XCfgRefrSrvc const &)
??0XCfgRefrSrvc@CWbemRefreshingSvc@@QAE@ABV01@@Z
; public: __thiscall CWbemRefreshingSvc::XCfgRefrSrvc::XCfgRefrSrvc(class XCfgRefrSrvc *)
??0XCfgRefrSrvc@CWbemRefreshingSvc@@QAE@PAV1@@Z
; public: __thiscall CWbemEnumMarshaling::XEnumMarshaling::XEnumMarshaling(class XEnumMarshaling::XEnumMarshaling const &)
??0XEnumMarshaling@CWbemEnumMarshaling@@QAE@ABV01@@Z
; public: __thiscall CWbemEnumMarshaling::XEnumMarshaling::XEnumMarshaling(class XEnumMarshaling *)
??0XEnumMarshaling@CWbemEnumMarshaling@@QAE@PAV1@@Z
; public: __thiscall CWbemFetchRefrMgr::XFetchRefrMgr::XFetchRefrMgr(class XFetchRefrMgr::XFetchRefrMgr const &)
??0XFetchRefrMgr@CWbemFetchRefrMgr@@QAE@ABV01@@Z
; public: __thiscall CWbemFetchRefrMgr::XFetchRefrMgr::XFetchRefrMgr(class XFetchRefrMgr *)
??0XFetchRefrMgr@CWbemFetchRefrMgr@@QAE@PAV1@@Z
; public: __thiscall CWmiObjectFactory::XObjectFactory::XObjectFactory(class XObjectFactory::XObjectFactory const &)
??0XObjectFactory@CWmiObjectFactory@@QAE@ABV01@@Z
; public: __thiscall CWmiObjectFactory::XObjectFactory::XObjectFactory(class XObjectFactory *)
??0XObjectFactory@CWmiObjectFactory@@QAE@PAV1@@Z
; public: __thiscall CWmiObjectTextSrc::XObjectTextSrc::XObjectTextSrc(class XObjectTextSrc::XObjectTextSrc const &)
??0XObjectTextSrc@CWmiObjectTextSrc@@QAE@ABV01@@Z
; public: __thiscall CWmiObjectTextSrc::XObjectTextSrc::XObjectTextSrc(class XObjectTextSrc *)
??0XObjectTextSrc@CWmiObjectTextSrc@@QAE@PAV1@@Z
; public: __thiscall CWbemRefreshingSvc::XWbemRefrSvc::XWbemRefrSvc(class XWbemRefrSvc::XWbemRefrSvc const &)
??0XWbemRefrSvc@CWbemRefreshingSvc@@QAE@ABV01@@Z
; public: __thiscall CWbemRefreshingSvc::XWbemRefrSvc::XWbemRefrSvc(class XWbemRefrSvc *)
??0XWbemRefrSvc@CWbemRefreshingSvc@@QAE@PAV1@@Z
; public: __thiscall CWbemRemoteRefresher::XWbemRemoteRefr::XWbemRemoteRefr(class XWbemRemoteRefr::XWbemRemoteRefr const &)
??0XWbemRemoteRefr@CWbemRemoteRefresher@@QAE@ABV01@@Z
; public: __thiscall CWbemRemoteRefresher::XWbemRemoteRefr::XWbemRemoteRefr(class XWbemRemoteRefr *)
??0XWbemRemoteRefr@CWbemRemoteRefresher@@QAE@PAV1@@Z
; public: __thiscall CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>::~CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>(void)
??1?$CImpl@UIWbemObjectTextSrc@@VCWmiObjectTextSrc@@@@QAE@XZ
; public: __thiscall CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>::~CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>(void)
??1?$CImpl@UIWbemRefreshingServices@@VCWbemRefreshingSvc@@@@QAE@XZ
; public: __thiscall CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>::~CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>(void)
??1?$CImpl@UIWbemRemoteRefresher@@VCWbemRemoteRefresher@@@@QAE@XZ
; public: __thiscall CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>::~CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>(void)
??1?$CImpl@U_IWbemConfigureRefreshingSvcs@@VCWbemRefreshingSvc@@@@QAE@XZ
; public: __thiscall CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>::~CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>(void)
??1?$CImpl@U_IWbemEnumMarshaling@@VCWbemEnumMarshaling@@@@QAE@XZ
; public: __thiscall CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>::~CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>(void)
??1?$CImpl@U_IWbemFetchRefresherMgr@@VCWbemFetchRefrMgr@@@@QAE@XZ
; public: __thiscall CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>::~CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>(void)
??1?$CImpl@U_IWmiObjectFactory@@VCWmiObjectFactory@@@@QAE@XZ
; public: __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::~CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>(void)
??1?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAE@XZ
; public: __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::~CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>(void)
??1?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAE@XZ
; public: __thiscall CRefedPointerArray<class CFastPropertyBagItem>::~CRefedPointerArray<class CFastPropertyBagItem>(void)
??1?$CRefedPointerArray@VCFastPropertyBagItem@@@@QAE@XZ
; public: __thiscall CRefedPointerArray<class CWmiTextSource>::~CRefedPointerArray<class CWmiTextSource>(void)
??1?$CRefedPointerArray@VCWmiTextSource@@@@QAE@XZ
; public: __thiscall CBasicQualifierSet::~CBasicQualifierSet(void)
??1CBasicQualifierSet@@QAE@XZ
; public: __thiscall CClassAndMethods::~CClassAndMethods(void)
??1CClassAndMethods@@QAE@XZ
; public: __thiscall CClassPart::~CClassPart(void)
??1CClassPart@@QAE@XZ
; public: virtual __thiscall CClassQualifierSet::~CClassQualifierSet(void)
??1CClassQualifierSet@@UAE@XZ
; public: virtual __thiscall CFastPropertyBag::~CFastPropertyBag(void)
??1CFastPropertyBag@@UAE@XZ
; public: __thiscall CFixedBSTRArray::~CFixedBSTRArray(void)
??1CFixedBSTRArray@@QAE@XZ
; public: __thiscall CInstancePQSContainer::~CInstancePQSContainer(void)
??1CInstancePQSContainer@@QAE@XZ
; public: __thiscall CInstancePart::~CInstancePart(void)
??1CInstancePart@@QAE@XZ
; public: virtual __thiscall CInstanceQualifierSet::~CInstanceQualifierSet(void)
??1CInstanceQualifierSet@@UAE@XZ
; public: __thiscall CInternalString::~CInternalString(void)
??1CInternalString@@QAE@XZ
; public: __thiscall CLimitationMapping::~CLimitationMapping(void)
??1CLimitationMapping@@QAE@XZ
; public: virtual __thiscall CMethodQualifierSet::~CMethodQualifierSet(void)
??1CMethodQualifierSet@@UAE@XZ
; public: __thiscall CMethodQualifierSetContainer::~CMethodQualifierSetContainer(void)
??1CMethodQualifierSetContainer@@QAE@XZ
; public: __thiscall CPropertyBagItemArray::~CPropertyBagItemArray(void)
??1CPropertyBagItemArray@@QAE@XZ
; public: virtual __thiscall CQualifierSet::~CQualifierSet(void)
??1CQualifierSet@@UAE@XZ
; public: __thiscall CWbemCallSecurity::~CWbemCallSecurity(void)
??1CWbemCallSecurity@@QAE@XZ
; public: virtual __thiscall CWbemClass::~CWbemClass(void)
??1CWbemClass@@UAE@XZ
; public: __thiscall CWbemClassCache::~CWbemClassCache(void)
??1CWbemClassCache@@QAE@XZ
; public: __thiscall CWbemDataPacket::~CWbemDataPacket(void)
??1CWbemDataPacket@@QAE@XZ
; public: virtual __thiscall CWbemEnumMarshaling::~CWbemEnumMarshaling(void)
??1CWbemEnumMarshaling@@UAE@XZ
; public: virtual __thiscall CWbemFetchRefrMgr::~CWbemFetchRefrMgr(void)
??1CWbemFetchRefrMgr@@UAE@XZ
; public: __thiscall CWbemGuidToClassMap::~CWbemGuidToClassMap(void)
??1CWbemGuidToClassMap@@QAE@XZ
; public: virtual __thiscall CWbemInstance::~CWbemInstance(void)
??1CWbemInstance@@UAE@XZ
; public: __thiscall CWbemMtgtDeliverEventPacket::~CWbemMtgtDeliverEventPacket(void)
??1CWbemMtgtDeliverEventPacket@@QAE@XZ
; public: virtual __thiscall CWbemObject::~CWbemObject(void)
??1CWbemObject@@UAE@XZ
; public: __thiscall CWbemObjectArrayPacket::~CWbemObjectArrayPacket(void)
??1CWbemObjectArrayPacket@@QAE@XZ
; public: virtual __thiscall CWbemRefreshingSvc::~CWbemRefreshingSvc(void)
??1CWbemRefreshingSvc@@UAE@XZ
; public: __thiscall CWbemSmartEnumNextPacket::~CWbemSmartEnumNextPacket(void)
??1CWbemSmartEnumNextPacket@@QAE@XZ
; public: __thiscall CWbemThreadSecurityHandle::~CWbemThreadSecurityHandle(void)
??1CWbemThreadSecurityHandle@@QAE@XZ
; public: virtual __thiscall CWmiObjectFactory::~CWmiObjectFactory(void)
??1CWmiObjectFactory@@UAE@XZ
; public: __thiscall CWmiTextSourceArray::~CWmiTextSourceArray(void)
??1CWmiTextSourceArray@@QAE@XZ
; public: __thiscall CWbemRefreshingSvc::XCfgRefrSrvc::~XCfgRefrSrvc(void)
??1XCfgRefrSrvc@CWbemRefreshingSvc@@QAE@XZ
; public: __thiscall CWbemEnumMarshaling::XEnumMarshaling::~XEnumMarshaling(void)
??1XEnumMarshaling@CWbemEnumMarshaling@@QAE@XZ
; public: __thiscall CWbemFetchRefrMgr::XFetchRefrMgr::~XFetchRefrMgr(void)
??1XFetchRefrMgr@CWbemFetchRefrMgr@@QAE@XZ
; public: __thiscall CWmiObjectFactory::XObjectFactory::~XObjectFactory(void)
??1XObjectFactory@CWmiObjectFactory@@QAE@XZ
; public: __thiscall CWmiObjectTextSrc::XObjectTextSrc::~XObjectTextSrc(void)
??1XObjectTextSrc@CWmiObjectTextSrc@@QAE@XZ
; public: __thiscall CWbemRefreshingSvc::XWbemRefrSvc::~XWbemRefrSvc(void)
??1XWbemRefrSvc@CWbemRefreshingSvc@@QAE@XZ
; public: __thiscall CWbemRemoteRefresher::XWbemRemoteRefr::~XWbemRemoteRefr(void)
??1XWbemRemoteRefr@CWbemRemoteRefresher@@QAE@XZ
; public: class CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc> & __thiscall CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>::operator=(class CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc> const &)
??4?$CImpl@UIWbemObjectTextSrc@@VCWmiObjectTextSrc@@@@QAEAAV0@ABV0@@Z
; public: class CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc> & __thiscall CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>::operator=(class CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc> const &)
??4?$CImpl@UIWbemRefreshingServices@@VCWbemRefreshingSvc@@@@QAEAAV0@ABV0@@Z
; public: class CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher> & __thiscall CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>::operator=(class CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher> const &)
??4?$CImpl@UIWbemRemoteRefresher@@VCWbemRemoteRefresher@@@@QAEAAV0@ABV0@@Z
; public: class CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc> & __thiscall CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>::operator=(class CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc> const &)
??4?$CImpl@U_IWbemConfigureRefreshingSvcs@@VCWbemRefreshingSvc@@@@QAEAAV0@ABV0@@Z
; public: class CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling> & __thiscall CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>::operator=(class CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling> const &)
??4?$CImpl@U_IWbemEnumMarshaling@@VCWbemEnumMarshaling@@@@QAEAAV0@ABV0@@Z
; public: class CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr> & __thiscall CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>::operator=(class CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr> const &)
??4?$CImpl@U_IWbemFetchRefresherMgr@@VCWbemFetchRefrMgr@@@@QAEAAV0@ABV0@@Z
; public: class CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory> & __thiscall CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>::operator=(class CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory> const &)
??4?$CImpl@U_IWmiObjectFactory@@VCWmiObjectFactory@@@@QAEAAV0@ABV0@@Z
; public: class CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray> & __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::operator=(class CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray> &)
??4?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAEAAV0@AAV0@@Z
; public: class CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray> & __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::operator=(class CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray> &)
??4?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAEAAV0@AAV0@@Z
; public: class CRefedPointerArray<class CFastPropertyBagItem> & __thiscall CRefedPointerArray<class CFastPropertyBagItem>::operator=(class CRefedPointerArray<class CFastPropertyBagItem> &)
??4?$CRefedPointerArray@VCFastPropertyBagItem@@@@QAEAAV0@AAV0@@Z
; public: class CRefedPointerArray<class CWmiTextSource> & __thiscall CRefedPointerArray<class CWmiTextSource>::operator=(class CRefedPointerArray<class CWmiTextSource> &)
??4?$CRefedPointerArray@VCWmiTextSource@@@@QAEAAV0@AAV0@@Z
; public: class CBasicQualifierSet & __thiscall CBasicQualifierSet::operator=(class CBasicQualifierSet const &)
??4CBasicQualifierSet@@QAEAAV0@ABV0@@Z
; public: class CClassAndMethods & __thiscall CClassAndMethods::operator=(class CClassAndMethods const &)
??4CClassAndMethods@@QAEAAV0@ABV0@@Z
; public: class CClassPart & __thiscall CClassPart::operator=(class CClassPart const &)
??4CClassPart@@QAEAAV0@ABV0@@Z
; public: class CClassPartContainer & __thiscall CClassPartContainer::operator=(class CClassPartContainer const &)
??4CClassPartContainer@@QAEAAV0@ABV0@@Z
; public: class CClassQualifierSet & __thiscall CClassQualifierSet::operator=(class CClassQualifierSet const &)
??4CClassQualifierSet@@QAEAAV0@ABV0@@Z
; public: class CCompressedString & __thiscall CCompressedString::operator=(class CCompressedString const &)
??4CCompressedString@@QAEAAV0@ABV0@@Z
; public: class CCompressedStringList & __thiscall CCompressedStringList::operator=(class CCompressedStringList const &)
??4CCompressedStringList@@QAEAAV0@ABV0@@Z
; public: class CDataTable & __thiscall CDataTable::operator=(class CDataTable const &)
??4CDataTable@@QAEAAV0@ABV0@@Z
; public: class CDecorationPart & __thiscall CDecorationPart::operator=(class CDecorationPart const &)
??4CDecorationPart@@QAEAAV0@ABV0@@Z
; public: class CDerivationList & __thiscall CDerivationList::operator=(class CDerivationList const &)
??4CDerivationList@@QAEAAV0@ABV0@@Z
; public: class CEmbeddedObject & __thiscall CEmbeddedObject::operator=(class CEmbeddedObject const &)
??4CEmbeddedObject@@QAEAAV0@ABV0@@Z
; public: class CFastHeap & __thiscall CFastHeap::operator=(class CFastHeap const &)
??4CFastHeap@@QAEAAV0@ABV0@@Z
; public: class CFastPropertyBag & __thiscall CFastPropertyBag::operator=(class CFastPropertyBag &)
??4CFastPropertyBag@@QAEAAV0@AAV0@@Z
; public: class CFixedBSTRArray & __thiscall CFixedBSTRArray::operator=(class CFixedBSTRArray const &)
??4CFixedBSTRArray@@QAEAAV0@ABV0@@Z
; public: class CHiPerfLock & __thiscall CHiPerfLock::operator=(class CHiPerfLock const &)
??4CHiPerfLock@@QAEAAV0@ABV0@@Z
; public: class CInstancePQSContainer & __thiscall CInstancePQSContainer::operator=(class CInstancePQSContainer const &)
??4CInstancePQSContainer@@QAEAAV0@ABV0@@Z
; public: class CInstancePart & __thiscall CInstancePart::operator=(class CInstancePart const &)
??4CInstancePart@@QAEAAV0@ABV0@@Z
; public: class CInstancePartContainer & __thiscall CInstancePartContainer::operator=(class CInstancePartContainer const &)
??4CInstancePartContainer@@QAEAAV0@ABV0@@Z
; public: class CInstanceQualifierSet & __thiscall CInstanceQualifierSet::operator=(class CInstanceQualifierSet const &)
??4CInstanceQualifierSet@@QAEAAV0@ABV0@@Z
; public: class CInternalString & __thiscall CInternalString::operator=(class CInternalString const &)
??4CInternalString@@QAEAAV0@ABV0@@Z
; public: int __thiscall CInternalString::operator=(class CCompressedString *)
??4CInternalString@@QAEHPAVCCompressedString@@@Z
; public: int __thiscall CInternalString::operator=(unsigned short const *)
??4CInternalString@@QAEHPBG@Z
; public: class CKnownStringTable & __thiscall CKnownStringTable::operator=(class CKnownStringTable const &)
??4CKnownStringTable@@QAEAAV0@ABV0@@Z
; public: class CLimitationMapping & __thiscall CLimitationMapping::operator=(class CLimitationMapping &)
??4CLimitationMapping@@QAEAAV0@AAV0@@Z
; public: struct CMethodDescription & __thiscall CMethodDescription::operator=(struct CMethodDescription const &)
??4CMethodDescription@@QAEAAU0@ABU0@@Z
; public: class CMethodPart & __thiscall CMethodPart::operator=(class CMethodPart const &)
??4CMethodPart@@QAEAAV0@ABV0@@Z
; public: class CMethodPartContainer & __thiscall CMethodPartContainer::operator=(class CMethodPartContainer const &)
??4CMethodPartContainer@@QAEAAV0@ABV0@@Z
; public: class CMethodQualifierSet & __thiscall CMethodQualifierSet::operator=(class CMethodQualifierSet const &)
??4CMethodQualifierSet@@QAEAAV0@ABV0@@Z
; public: class CMethodQualifierSetContainer & __thiscall CMethodQualifierSetContainer::operator=(class CMethodQualifierSetContainer const &)
??4CMethodQualifierSetContainer@@QAEAAV0@ABV0@@Z
; public: class CPropertyBagItemArray & __thiscall CPropertyBagItemArray::operator=(class CPropertyBagItemArray &)
??4CPropertyBagItemArray@@QAEAAV0@AAV0@@Z
; public: class CPropertyLookupTable & __thiscall CPropertyLookupTable::operator=(class CPropertyLookupTable const &)
??4CPropertyLookupTable@@QAEAAV0@ABV0@@Z
; public: class CQualifierSet & __thiscall CQualifierSet::operator=(class CQualifierSet const &)
??4CQualifierSet@@QAEAAV0@ABV0@@Z
; public: class CQualifierSetList & __thiscall CQualifierSetList::operator=(class CQualifierSetList const &)
??4CQualifierSetList@@QAEAAV0@ABV0@@Z
; public: class CQualifierSetListContainer & __thiscall CQualifierSetListContainer::operator=(class CQualifierSetListContainer const &)
??4CQualifierSetListContainer@@QAEAAV0@ABV0@@Z
; public: class CReservedWordTable & __thiscall CReservedWordTable::operator=(class CReservedWordTable const &)
??4CReservedWordTable@@QAEAAV0@ABV0@@Z
; public: class CSharedLock & __thiscall CSharedLock::operator=(class CSharedLock const &)
??4CSharedLock@@QAEAAV0@ABV0@@Z
; public: class CSystemProperties & __thiscall CSystemProperties::operator=(class CSystemProperties const &)
??4CSystemProperties@@QAEAAV0@ABV0@@Z
; public: class CType & __thiscall CType::operator=(class CType const &)
??4CType@@QAEAAV0@ABV0@@Z
; public: class CUntypedArray & __thiscall CUntypedArray::operator=(class CUntypedArray const &)
??4CUntypedArray@@QAEAAV0@ABV0@@Z
; public: class CWbemCallSecurity & __thiscall CWbemCallSecurity::operator=(class CWbemCallSecurity const &)
??4CWbemCallSecurity@@QAEAAV0@ABV0@@Z
; public: class CWbemClassCache & __thiscall CWbemClassCache::operator=(class CWbemClassCache const &)
??4CWbemClassCache@@QAEAAV0@ABV0@@Z
; public: class CWbemDataPacket & __thiscall CWbemDataPacket::operator=(class CWbemDataPacket const &)
??4CWbemDataPacket@@QAEAAV0@ABV0@@Z
; public: class CWbemEnumMarshaling & __thiscall CWbemEnumMarshaling::operator=(class CWbemEnumMarshaling const &)
??4CWbemEnumMarshaling@@QAEAAV0@ABV0@@Z
; public: class CWbemFetchRefrMgr & __thiscall CWbemFetchRefrMgr::operator=(class CWbemFetchRefrMgr const &)
??4CWbemFetchRefrMgr@@QAEAAV0@ABV0@@Z
; public: class CWbemGuidToClassMap & __thiscall CWbemGuidToClassMap::operator=(class CWbemGuidToClassMap const &)
??4CWbemGuidToClassMap@@QAEAAV0@ABV0@@Z
; public: class CWbemMtgtDeliverEventPacket & __thiscall CWbemMtgtDeliverEventPacket::operator=(class CWbemMtgtDeliverEventPacket const &)
??4CWbemMtgtDeliverEventPacket@@QAEAAV0@ABV0@@Z
; public: class CWbemObjectArrayPacket & __thiscall CWbemObjectArrayPacket::operator=(class CWbemObjectArrayPacket const &)
??4CWbemObjectArrayPacket@@QAEAAV0@ABV0@@Z
; public: class CWbemRefreshingSvc & __thiscall CWbemRefreshingSvc::operator=(class CWbemRefreshingSvc const &)
??4CWbemRefreshingSvc@@QAEAAV0@ABV0@@Z
; public: class CWbemSmartEnumNextPacket & __thiscall CWbemSmartEnumNextPacket::operator=(class CWbemSmartEnumNextPacket const &)
??4CWbemSmartEnumNextPacket@@QAEAAV0@ABV0@@Z
; public: class CWbemThreadSecurityHandle & __thiscall CWbemThreadSecurityHandle::operator=(class CWbemThreadSecurityHandle const &)
??4CWbemThreadSecurityHandle@@QAEAAV0@ABV0@@Z
; public: class CWmiObjectFactory & __thiscall CWmiObjectFactory::operator=(class CWmiObjectFactory const &)
??4CWmiObjectFactory@@QAEAAV0@ABV0@@Z
; public: class CWmiTextSourceArray & __thiscall CWmiTextSourceArray::operator=(class CWmiTextSourceArray &)
??4CWmiTextSourceArray@@QAEAAV0@AAV0@@Z
; public: struct SHARED_LOCK_DATA & __thiscall SHARED_LOCK_DATA::operator=(struct SHARED_LOCK_DATA const &)
??4SHARED_LOCK_DATA@@QAEAAU0@ABU0@@Z
; public: struct SHMEM_HANDLE & __thiscall SHMEM_HANDLE::operator=(struct SHMEM_HANDLE const &)
??4SHMEM_HANDLE@@QAEAAU0@ABU0@@Z
; public: class CWbemRefreshingSvc::XCfgRefrSrvc & __thiscall CWbemRefreshingSvc::XCfgRefrSrvc::operator=(class CWbemRefreshingSvc::XCfgRefrSrvc const &)
??4XCfgRefrSrvc@CWbemRefreshingSvc@@QAEAAV01@ABV01@@Z
; public: class CWbemEnumMarshaling::XEnumMarshaling & __thiscall CWbemEnumMarshaling::XEnumMarshaling::operator=(class CWbemEnumMarshaling::XEnumMarshaling const &)
??4XEnumMarshaling@CWbemEnumMarshaling@@QAEAAV01@ABV01@@Z
; public: class CWbemFetchRefrMgr::XFetchRefrMgr & __thiscall CWbemFetchRefrMgr::XFetchRefrMgr::operator=(class CWbemFetchRefrMgr::XFetchRefrMgr const &)
??4XFetchRefrMgr@CWbemFetchRefrMgr@@QAEAAV01@ABV01@@Z
; public: class CWmiObjectFactory::XObjectFactory & __thiscall CWmiObjectFactory::XObjectFactory::operator=(class CWmiObjectFactory::XObjectFactory const &)
??4XObjectFactory@CWmiObjectFactory@@QAEAAV01@ABV01@@Z
; public: class CWmiObjectTextSrc::XObjectTextSrc & __thiscall CWmiObjectTextSrc::XObjectTextSrc::operator=(class CWmiObjectTextSrc::XObjectTextSrc const &)
??4XObjectTextSrc@CWmiObjectTextSrc@@QAEAAV01@ABV01@@Z
; public: class CWbemRefreshingSvc::XWbemRefrSvc & __thiscall CWbemRefreshingSvc::XWbemRefrSvc::operator=(class CWbemRefreshingSvc::XWbemRefrSvc const &)
??4XWbemRefrSvc@CWbemRefreshingSvc@@QAEAAV01@ABV01@@Z
; public: class CWbemRemoteRefresher::XWbemRemoteRefr & __thiscall CWbemRemoteRefresher::XWbemRemoteRefr::operator=(class CWbemRemoteRefresher::XWbemRemoteRefr const &)
??4XWbemRemoteRefr@CWbemRemoteRefresher@@QAEAAV01@ABV01@@Z
; public: bool __thiscall CInternalString::operator==(class CInternalString const &)const 
??8CInternalString@@QBE_NABV0@@Z
; public: bool __thiscall CInternalString::operator==(unsigned short const *)const 
??8CInternalString@@QBE_NPBG@Z
; public: int __thiscall CQualifierSet::operator==(class CQualifierSet &)
??8CQualifierSet@@QAEHAAV0@@Z
; public: bool __thiscall CInternalString::operator!=(class CInternalString const &)const 
??9CInternalString@@QBE_NABV0@@Z
; public: class CFastPropertyBagItem * __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::operator[](int)
??A?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAEPAVCFastPropertyBagItem@@H@Z
; public: class CFastPropertyBagItem const * __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::operator[](int)const 
??A?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QBEPBVCFastPropertyBagItem@@H@Z
; public: class CWmiTextSource * __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::operator[](int)
??A?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAEPAVCWmiTextSource@@H@Z
; public: class CWmiTextSource const * __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::operator[](int)const 
??A?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QBEPBVCWmiTextSource@@H@Z
; public: unsigned short * & __thiscall CFixedBSTRArray::operator[](int)
??ACFixedBSTRArray@@QAEAAPAGH@Z
; private: __thiscall CInternalString::operator class CCompressedString *(void)
??BCInternalString@@AAEPAVCCompressedString@@XZ
; private: __thiscall CInternalString::operator class CCompressedString *(void)const 
??BCInternalString@@ABEPAVCCompressedString@@XZ
; public: __thiscall CInternalString::operator class WString(void)const 
??BCInternalString@@QBE?AVWString@@XZ
; public: __thiscall CType::operator unsigned long(void)
??BCType@@QAEKXZ
; public: bool __thiscall CInternalString::operator<(class CInternalString const &)const 
??MCInternalString@@QBE_NABV0@@Z
; public: bool __thiscall CInternalString::operator>(class CInternalString const &)const 
??OCInternalString@@QBE_NABV0@@Z
; const  CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>::`vftable'
??_7?$CImpl@UIWbemObjectTextSrc@@VCWmiObjectTextSrc@@@@6B@
; const  CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>::`vftable'
??_7?$CImpl@UIWbemRefreshingServices@@VCWbemRefreshingSvc@@@@6B@
; const  CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>::`vftable'
??_7?$CImpl@UIWbemRemoteRefresher@@VCWbemRemoteRefresher@@@@6B@
; const  CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>::`vftable'
??_7?$CImpl@U_IWbemConfigureRefreshingSvcs@@VCWbemRefreshingSvc@@@@6B@
; const  CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>::`vftable'
??_7?$CImpl@U_IWbemEnumMarshaling@@VCWbemEnumMarshaling@@@@6B@
; const  CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>::`vftable'
??_7?$CImpl@U_IWbemFetchRefresherMgr@@VCWbemFetchRefrMgr@@@@6B@
; const  CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>::`vftable'
??_7?$CImpl@U_IWmiObjectFactory@@VCWmiObjectFactory@@@@6B@
; const  CClassAndMethods::`vftable'{for `CClassPartContainer'}
??_7CClassAndMethods@@6BCClassPartContainer@@@
; const  CClassAndMethods::`vftable'{for `CMethodPartContainer'}
??_7CClassAndMethods@@6BCMethodPartContainer@@@
; const  CClassPart::`vftable'{for `CDataTableContainer'}
??_7CClassPart@@6BCDataTableContainer@@@
; const  CClassPart::`vftable'{for `CHeapContainer'}
??_7CClassPart@@6BCHeapContainer@@@
; const  CClassPart::`vftable'{for `CPropertyTableContainer'}
??_7CClassPart@@6BCPropertyTableContainer@@@
; const  CClassPart::`vftable'{for `CQualifierSetContainer'}
??_7CClassPart@@6BCQualifierSetContainer@@@
; const  CClassPartContainer::`vftable'
??_7CClassPartContainer@@6B@
; const  CClassQualifierSet::`vftable'
??_7CClassQualifierSet@@6B@
; const  CFastPropertyBag::`vftable'
??_7CFastPropertyBag@@6B@
; const  CInstancePQSContainer::`vftable'
??_7CInstancePQSContainer@@6B@
; const  CInstancePart::`vftable'{for `CDataTableContainer'}
??_7CInstancePart@@6BCDataTableContainer@@@
; const  CInstancePart::`vftable'{for `CHeapContainer'}
??_7CInstancePart@@6BCHeapContainer@@@
; const  CInstancePart::`vftable'{for `CQualifierSetContainer'}
??_7CInstancePart@@6BCQualifierSetContainer@@@
; const  CInstancePart::`vftable'{for `CQualifierSetListContainer'}
??_7CInstancePart@@6BCQualifierSetListContainer@@@
; const  CInstancePartContainer::`vftable'
??_7CInstancePartContainer@@6B@
; const  CInstanceQualifierSet::`vftable'
??_7CInstanceQualifierSet@@6B@
; const  CMethodPart::`vftable'
??_7CMethodPart@@6B@
; const  CMethodPartContainer::`vftable'
??_7CMethodPartContainer@@6B@
; const  CMethodQualifierSet::`vftable'
??_7CMethodQualifierSet@@6B@
; const  CMethodQualifierSetContainer::`vftable'
??_7CMethodQualifierSetContainer@@6B@
; const  CQualifierSet::`vftable'
??_7CQualifierSet@@6B@
; const  CQualifierSetListContainer::`vftable'
??_7CQualifierSetListContainer@@6B@
; const  CWbemCallSecurity::`vftable'{for `IServerSecurity'}
??_7CWbemCallSecurity@@6BIServerSecurity@@@
; const  CWbemCallSecurity::`vftable'{for `_IWmiCallSec'}
??_7CWbemCallSecurity@@6B_IWmiCallSec@@@
; const  CWbemClass::`vftable'{for `IErrorInfo'}
??_7CWbemClass@@6BIErrorInfo@@@
; const  CWbemClass::`vftable'{for `IMarshal'}
??_7CWbemClass@@6BIMarshal@@@
; const  CWbemClass::`vftable'{for `IWbemConstructClassObject'}
??_7CWbemClass@@6BIWbemConstructClassObject@@@
; const  CWbemClass::`vftable'{for `IWbemPropertySource'}
??_7CWbemClass@@6BIWbemPropertySource@@@
; const  CWbemClass::`vftable'{for `_IWmiObject'}
??_7CWbemClass@@6B_IWmiObject@@@
; const  CWbemEnumMarshaling::`vftable'
??_7CWbemEnumMarshaling@@6B@
; const  CWbemFetchRefrMgr::`vftable'
??_7CWbemFetchRefrMgr@@6B@
; const  CWbemInstance::`vftable'{for `CClassPartContainer'}
??_7CWbemInstance@@6BCClassPartContainer@@@
; const  CWbemInstance::`vftable'{for `CInstancePartContainer'}
??_7CWbemInstance@@6BCInstancePartContainer@@@
; const  CWbemInstance::`vftable'{for `IErrorInfo'}
??_7CWbemInstance@@6BIErrorInfo@@@
; const  CWbemInstance::`vftable'{for `IMarshal'}
??_7CWbemInstance@@6BIMarshal@@@
; const  CWbemInstance::`vftable'{for `IWbemConstructClassObject'}
??_7CWbemInstance@@6BIWbemConstructClassObject@@@
; const  CWbemInstance::`vftable'{for `IWbemPropertySource'}
??_7CWbemInstance@@6BIWbemPropertySource@@@
; const  CWbemInstance::`vftable'{for `_IWmiObject'}
??_7CWbemInstance@@6B_IWmiObject@@@
; const  CWbemObject::`vftable'{for `IErrorInfo'}
??_7CWbemObject@@6BIErrorInfo@@@
; const  CWbemObject::`vftable'{for `IMarshal'}
??_7CWbemObject@@6BIMarshal@@@
; const  CWbemObject::`vftable'{for `IWbemConstructClassObject'}
??_7CWbemObject@@6BIWbemConstructClassObject@@@
; const  CWbemObject::`vftable'{for `IWbemPropertySource'}
??_7CWbemObject@@6BIWbemPropertySource@@@
; const  CWbemObject::`vftable'{for `_IWmiObject'}
??_7CWbemObject@@6B_IWmiObject@@@
; const  CWbemRefreshingSvc::`vftable'
??_7CWbemRefreshingSvc@@6B@
; const  CWbemThreadSecurityHandle::`vftable'
??_7CWbemThreadSecurityHandle@@6B@
; const  CWmiObjectFactory::`vftable'
??_7CWmiObjectFactory@@6B@
; const  CWbemRefreshingSvc::XCfgRefrSrvc::`vftable'
??_7XCfgRefrSrvc@CWbemRefreshingSvc@@6B@
; const  CWbemEnumMarshaling::XEnumMarshaling::`vftable'
??_7XEnumMarshaling@CWbemEnumMarshaling@@6B@
; const  CWbemFetchRefrMgr::XFetchRefrMgr::`vftable'
??_7XFetchRefrMgr@CWbemFetchRefrMgr@@6B@
; const  CWmiObjectFactory::XObjectFactory::`vftable'
??_7XObjectFactory@CWmiObjectFactory@@6B@
; const  CWmiObjectTextSrc::XObjectTextSrc::`vftable'
??_7XObjectTextSrc@CWmiObjectTextSrc@@6B@
; const  CWbemRefreshingSvc::XWbemRefrSvc::`vftable'
??_7XWbemRefrSvc@CWbemRefreshingSvc@@6B@
; const  CWbemRemoteRefresher::XWbemRemoteRefr::`vftable'
??_7XWbemRemoteRefr@CWbemRemoteRefresher@@6B@
; public: void __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::`default constructor closure'(void)
??_F?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAEXXZ
; public: void __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::`default constructor closure'(void)
??_F?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAEXXZ
; public: void __thiscall CClassQualifierSet::`default constructor closure'(void)
??_FCClassQualifierSet@@QAEXXZ
; public: void __thiscall CInstanceQualifierSet::`default constructor closure'(void)
??_FCInstanceQualifierSet@@QAEXXZ
; public: void __thiscall CWbemClassCache::`default constructor closure'(void)
??_FCWbemClassCache@@QAEXXZ
; protected: unsigned long __thiscall CFastHeap::AbsoluteToHeap(unsigned char *)
?AbsoluteToHeap@CFastHeap@@IAEKPAE@Z
; public: void __thiscall CInternalString::AcquireCompressedString(class CCompressedString *)
?AcquireCompressedString@CInternalString@@QAEXPAVCCompressedString@@@Z
; public: int __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::Add(class CFastPropertyBagItem *)
?Add@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAEHPAVCFastPropertyBagItem@@@Z
; public: int __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::Add(class CWmiTextSource *)
?Add@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAEHPAVCWmiTextSource@@@Z
; public: long __thiscall CFastPropertyBag::Add(unsigned short const *,long,unsigned long,unsigned long,void *)
?Add@CFastPropertyBag@@QAEJPBGJKKPAX@Z
; protected: virtual long __thiscall CWbemRefreshingSvc::AddEnumToRefresher(struct _WBEM_REFRESHER_ID *,unsigned short const *,long,struct IWbemContext *,unsigned long,struct _WBEM_REFRESH_INFO *,unsigned long *)
?AddEnumToRefresher@CWbemRefreshingSvc@@MAEJPAU_WBEM_REFRESHER_ID@@PBGJPAUIWbemContext@@KPAU_WBEM_REFRESH_INFO@@PAK@Z
; public: virtual long __stdcall CWbemRefreshingSvc::XWbemRefrSvc::AddEnumToRefresher(struct _WBEM_REFRESHER_ID *,unsigned short const *,long,struct IWbemContext *,unsigned long,struct _WBEM_REFRESH_INFO *,unsigned long *)
?AddEnumToRefresher@XWbemRefrSvc@CWbemRefreshingSvc@@UAGJPAU_WBEM_REFRESHER_ID@@PBGJPAUIWbemContext@@KPAU_WBEM_REFRESH_INFO@@PAK@Z
; protected: long __thiscall CWbemRefreshingSvc::AddEnumToRefresher_(int,struct _WBEM_REFRESHER_ID *,class CWbemObject *,unsigned short const *,long,struct IWbemContext *,struct _WBEM_REFRESH_INFO *)
?AddEnumToRefresher_@CWbemRefreshingSvc@@IAEJHPAU_WBEM_REFRESHER_ID@@PAVCWbemObject@@PBGJPAUIWbemContext@@PAU_WBEM_REFRESH_INFO@@@Z
; public: long __thiscall CWbemGuidToClassMap::AddMap(class CGUID &,class CWbemClassToIdMap * *)
?AddMap@CWbemGuidToClassMap@@QAEJAAVCGUID@@PAPAVCWbemClassToIdMap@@@Z
; public: long __thiscall CWbemClassCache::AddObject(struct _GUID &,struct IWbemClassObject *)
?AddObject@CWbemClassCache@@QAEJAAU_GUID@@PAUIWbemClassObject@@@Z
; protected: virtual long __thiscall CWbemRefreshingSvc::AddObjectToRefresher(struct _WBEM_REFRESHER_ID *,unsigned short const *,long,struct IWbemContext *,unsigned long,struct _WBEM_REFRESH_INFO *,unsigned long *)
?AddObjectToRefresher@CWbemRefreshingSvc@@MAEJPAU_WBEM_REFRESHER_ID@@PBGJPAUIWbemContext@@KPAU_WBEM_REFRESH_INFO@@PAK@Z
; public: virtual long __stdcall CWbemRefreshingSvc::XWbemRefrSvc::AddObjectToRefresher(struct _WBEM_REFRESHER_ID *,unsigned short const *,long,struct IWbemContext *,unsigned long,struct _WBEM_REFRESH_INFO *,unsigned long *)
?AddObjectToRefresher@XWbemRefrSvc@CWbemRefreshingSvc@@UAGJPAU_WBEM_REFRESHER_ID@@PBGJPAUIWbemContext@@KPAU_WBEM_REFRESH_INFO@@PAK@Z
; protected: virtual long __thiscall CWbemRefreshingSvc::AddObjectToRefresherByTemplate(struct _WBEM_REFRESHER_ID *,struct IWbemClassObject *,long,struct IWbemContext *,unsigned long,struct _WBEM_REFRESH_INFO *,unsigned long *)
?AddObjectToRefresherByTemplate@CWbemRefreshingSvc@@MAEJPAU_WBEM_REFRESHER_ID@@PAUIWbemClassObject@@JPAUIWbemContext@@KPAU_WBEM_REFRESH_INFO@@PAK@Z
; public: virtual long __stdcall CWbemRefreshingSvc::XWbemRefrSvc::AddObjectToRefresherByTemplate(struct _WBEM_REFRESHER_ID *,struct IWbemClassObject *,long,struct IWbemContext *,unsigned long,struct _WBEM_REFRESH_INFO *,unsigned long *)
?AddObjectToRefresherByTemplate@XWbemRefrSvc@CWbemRefreshingSvc@@UAGJPAU_WBEM_REFRESHER_ID@@PAUIWbemClassObject@@JPAUIWbemContext@@KPAU_WBEM_REFRESH_INFO@@PAK@Z
; protected: long __thiscall CWbemRefreshingSvc::AddObjectToRefresher_(int,struct _WBEM_REFRESHER_ID *,class CWbemObject *,long,struct IWbemContext *,struct _WBEM_REFRESH_INFO *)
?AddObjectToRefresher_@CWbemRefreshingSvc@@IAEJHPAU_WBEM_REFRESHER_ID@@PAVCWbemObject@@JPAUIWbemContext@@PAU_WBEM_REFRESH_INFO@@@Z
; public: long __thiscall CWbemClass::AddPropertyText(class WString &,struct CPropertyLookup *,class CPropertyInformation *,long)
?AddPropertyText@CWbemClass@@QAEJAAVWString@@PAUCPropertyLookup@@PAVCPropertyInformation@@J@Z
; public: static void __stdcall CType::AddPropertyType(class WString &,unsigned short const *)
?AddPropertyType@CType@@SGXAAVWString@@PBG@Z
; protected: long __thiscall CQualifierSet::AddQualifierConflicts(class CVarVector &)
?AddQualifierConflicts@CQualifierSet@@IAEJAAVCVarVector@@@Z
; public: virtual unsigned long __stdcall CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>::AddRef(void)
?AddRef@?$CImpl@UIWbemObjectTextSrc@@VCWmiObjectTextSrc@@@@UAGKXZ
; public: virtual unsigned long __stdcall CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>::AddRef(void)
?AddRef@?$CImpl@UIWbemRefreshingServices@@VCWbemRefreshingSvc@@@@UAGKXZ
; public: virtual unsigned long __stdcall CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>::AddRef(void)
?AddRef@?$CImpl@UIWbemRemoteRefresher@@VCWbemRemoteRefresher@@@@UAGKXZ
; public: virtual unsigned long __stdcall CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>::AddRef(void)
?AddRef@?$CImpl@U_IWbemConfigureRefreshingSvcs@@VCWbemRefreshingSvc@@@@UAGKXZ
; public: virtual unsigned long __stdcall CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>::AddRef(void)
?AddRef@?$CImpl@U_IWbemEnumMarshaling@@VCWbemEnumMarshaling@@@@UAGKXZ
; public: virtual unsigned long __stdcall CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>::AddRef(void)
?AddRef@?$CImpl@U_IWbemFetchRefresherMgr@@VCWbemFetchRefrMgr@@@@UAGKXZ
; public: virtual unsigned long __stdcall CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>::AddRef(void)
?AddRef@?$CImpl@U_IWmiObjectFactory@@VCWmiObjectFactory@@@@UAGKXZ
; public: virtual unsigned long __stdcall CQualifierSet::AddRef(void)
?AddRef@CQualifierSet@@UAGKXZ
; public: virtual unsigned long __stdcall CWbemCallSecurity::AddRef(void)
?AddRef@CWbemCallSecurity@@UAGKXZ
; public: virtual unsigned long __stdcall CWbemObject::AddRef(void)
?AddRef@CWbemObject@@UAGKXZ
; public: virtual unsigned long __stdcall CWbemThreadSecurityHandle::AddRef(void)
?AddRef@CWbemThreadSecurityHandle@@UAGKXZ
; protected: void __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::AddRefElement(class CFastPropertyBagItem *)
?AddRefElement@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@IAEXPAVCFastPropertyBagItem@@@Z
; protected: void __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::AddRefElement(class CWmiTextSource *)
?AddRefElement@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@IAEXPAVCWmiTextSource@@@Z
; public: void __thiscall CCompressedStringList::AddString(unsigned short const *)
?AddString@CCompressedStringList@@QAEXPBG@Z
; public: static long __stdcall CMethodDescription::AddText(struct CMethodDescription *,class WString &,class CFastHeap *,long)
?AddText@CMethodDescription@@SGJPAU1@AAVWString@@PAVCFastHeap@@J@Z
; public: long __thiscall CMethodPart::AddText(class WString &,long)
?AddText@CMethodPart@@QAEJAAVWString@@J@Z
; public: int __thiscall CFastHeap::Allocate(unsigned long,unsigned long &)
?Allocate@CFastHeap@@QAEHKAAK@Z
; public: int __thiscall CFastHeap::AllocateString(char const *,unsigned long &)
?AllocateString@CFastHeap@@QAEHPBDAAK@Z
; public: int __thiscall CFastHeap::AllocateString(unsigned short const *,unsigned long &)
?AllocateString@CFastHeap@@QAEHPBGAAK@Z
; public: virtual long __stdcall CWbemObject::AppendArrayPropRangeByHandle(long,long,unsigned long,unsigned long,void *)
?AppendArrayPropRangeByHandle@CWbemObject@@UAGJJJKKPAX@Z
; public: long __thiscall CWbemObject::AppendQualifierArrayRange(unsigned short const *,unsigned short const *,int,long,long,unsigned long,unsigned long,void *)
?AppendQualifierArrayRange@CWbemObject@@QAEJPBG0HJJKKPAX@Z
; public: static long __stdcall CUntypedArray::AppendRange(class CPtrSource *,unsigned long,unsigned long,class CFastHeap *,unsigned long,unsigned long,void *)
?AppendRange@CUntypedArray@@SGJPAVCPtrSource@@KKPAVCFastHeap@@KKPAX@Z
; public: static int __stdcall CWbemObject::AreEqual(class CWbemObject *,class CWbemObject *,long)
?AreEqual@CWbemObject@@SGHPAV1@0J@Z
; public: int __thiscall CDecorationPart::AreKeysRemoved(void)
?AreKeysRemoved@CDecorationPart@@QAEHXZ
; public: int __thiscall CLimitationMapping::ArePropertiesLimited(void)
?ArePropertiesLimited@CLimitationMapping@@QAEHXZ
; public: static long __stdcall CWbemInstance::AsymmetricMerge(class CWbemInstance *,class CWbemInstance *)
?AsymmetricMerge@CWbemInstance@@SGJPAV1@0@Z
; protected: unsigned long __thiscall CFastHeap::AugmentRequest(unsigned long,unsigned long)
?AugmentRequest@CFastHeap@@IAEKKK@Z
; public: virtual long __stdcall CQualifierSet::BeginEnumeration(long)
?BeginEnumeration@CQualifierSet@@UAGJJ@Z
; public: virtual long __stdcall CWbemObject::BeginEnumeration(long)
?BeginEnumeration@CWbemObject@@UAGJJ@Z
; public: virtual long __stdcall CWbemObject::BeginEnumerationEx(long,long)
?BeginEnumerationEx@CWbemObject@@UAGJJJ@Z
; public: virtual long __stdcall CWbemClass::BeginMethodEnumeration(long)
?BeginMethodEnumeration@CWbemClass@@UAGJJ@Z
; public: virtual long __stdcall CWbemInstance::BeginMethodEnumeration(long)
?BeginMethodEnumeration@CWbemInstance@@UAGJJ@Z
; public: void __thiscall CLimitationMapping::Build(int)
?Build@CLimitationMapping@@QAEXH@Z
; public: virtual long __stdcall CWbemObject::CIMTYPEToVARTYPE(long,unsigned short *)
?CIMTYPEToVARTYPE@CWbemObject@@UAGJJPAG@Z
; public: static class CType  __stdcall CType::CVarToType(class CVar &)
?CVarToType@CType@@SG?AV1@AAVCVar@@@Z
; public: class CVar * __thiscall CWbemInstance::CalculateCachedKey(void)
?CalculateCachedKey@CWbemInstance@@QAEPAVCVar@@XZ
; public: long __thiscall CWbemMtgtDeliverEventPacket::CalculateLength(long,struct IWbemClassObject * *,unsigned long *,class CWbemClassToIdMap &,struct _GUID *,int *)
?CalculateLength@CWbemMtgtDeliverEventPacket@@QAEJJPAPAUIWbemClassObject@@PAKAAVCWbemClassToIdMap@@PAU_GUID@@PAH@Z
; public: long __thiscall CWbemObjectArrayPacket::CalculateLength(long,struct IWbemClassObject * *,unsigned long *,class CWbemClassToIdMap &,struct _GUID *,int *)
?CalculateLength@CWbemObjectArrayPacket@@QAEJJPAPAUIWbemClassObject@@PAKAAVCWbemClassToIdMap@@PAU_GUID@@PAH@Z
; public: long __thiscall CWbemSmartEnumNextPacket::CalculateLength(long,struct IWbemClassObject * *,unsigned long *,class CWbemClassToIdMap &,struct _GUID *,int *)
?CalculateLength@CWbemSmartEnumNextPacket@@QAEJJPAPAUIWbemClassObject@@PAKAAVCWbemClassToIdMap@@PAU_GUID@@PAH@Z
; public: static unsigned long __stdcall CUntypedArray::CalculateNecessarySpaceByLength(int,int)
?CalculateNecessarySpaceByLength@CUntypedArray@@SGKHH@Z
; public: static unsigned long __stdcall CUntypedArray::CalculateNecessarySpaceByType(class CType,int)
?CalculateNecessarySpaceByType@CUntypedArray@@SGKVCType@@H@Z
; public: static int __stdcall CType::CanBeKey(unsigned long)
?CanBeKey@CType@@SGHK@Z
; public: int __thiscall CBasicQualifierSet::CanBeReconciledWith(class CBasicQualifierSet &)
?CanBeReconciledWith@CBasicQualifierSet@@QAEHAAV1@@Z
; public: enum EReconciliation  __thiscall CClassAndMethods::CanBeReconciledWith(class CClassAndMethods &)
?CanBeReconciledWith@CClassAndMethods@@QAE?AW4EReconciliation@@AAV1@@Z
; public: enum EReconciliation  __thiscall CClassPart::CanBeReconciledWith(class CClassPart &)
?CanBeReconciledWith@CClassPart@@QAE?AW4EReconciliation@@AAV1@@Z
; public: enum EReconciliation  __thiscall CMethodPart::CanBeReconciledWith(class CMethodPart &)
?CanBeReconciledWith@CMethodPart@@QAE?AW4EReconciliation@@AAV1@@Z
; public: enum EReconciliation  __thiscall CWbemClass::CanBeReconciledWith(class CWbemClass *)
?CanBeReconciledWith@CWbemClass@@QAE?AW4EReconciliation@@PAV1@@Z
; public: virtual long __thiscall CClassPart::CanContainAbstract(int)
?CanContainAbstract@CClassPart@@UAEJH@Z
; public: virtual long __thiscall CInstancePQSContainer::CanContainAbstract(int)
?CanContainAbstract@CInstancePQSContainer@@UAEJH@Z
; public: virtual long __thiscall CInstancePart::CanContainAbstract(int)
?CanContainAbstract@CInstancePart@@UAEJH@Z
; public: virtual long __thiscall CMethodQualifierSetContainer::CanContainAbstract(int)
?CanContainAbstract@CMethodQualifierSetContainer@@UAEJH@Z
; public: virtual long __thiscall CClassPart::CanContainDynamic(void)
?CanContainDynamic@CClassPart@@UAEJXZ
; public: virtual long __thiscall CInstancePQSContainer::CanContainDynamic(void)
?CanContainDynamic@CInstancePQSContainer@@UAEJXZ
; public: virtual long __thiscall CInstancePart::CanContainDynamic(void)
?CanContainDynamic@CInstancePart@@UAEJXZ
; public: virtual long __thiscall CMethodQualifierSetContainer::CanContainDynamic(void)
?CanContainDynamic@CMethodQualifierSetContainer@@UAEJXZ
; public: virtual long __thiscall CClassPart::CanContainKey(void)
?CanContainKey@CClassPart@@UAEJXZ
; public: virtual long __thiscall CInstancePQSContainer::CanContainKey(void)
?CanContainKey@CInstancePQSContainer@@UAEJXZ
; public: virtual long __thiscall CInstancePart::CanContainKey(void)
?CanContainKey@CInstancePart@@UAEJXZ
; public: virtual long __thiscall CMethodQualifierSetContainer::CanContainKey(void)
?CanContainKey@CMethodQualifierSetContainer@@UAEJXZ
; public: int __thiscall CClassPart::CanContainKeyedProps(void)
?CanContainKeyedProps@CClassPart@@QAEHXZ
; public: virtual long __thiscall CClassPart::CanContainSingleton(void)
?CanContainSingleton@CClassPart@@UAEJXZ
; public: virtual long __thiscall CInstancePQSContainer::CanContainSingleton(void)
?CanContainSingleton@CInstancePQSContainer@@UAEJXZ
; public: virtual long __thiscall CInstancePart::CanContainSingleton(void)
?CanContainSingleton@CInstancePart@@UAEJXZ
; public: virtual long __thiscall CMethodQualifierSetContainer::CanContainSingleton(void)
?CanContainSingleton@CMethodQualifierSetContainer@@UAEJXZ
; public: virtual int __thiscall CClassPart::CanHaveCimtype(unsigned short const *)
?CanHaveCimtype@CClassPart@@UAEHPBG@Z
; public: virtual int __thiscall CInstancePQSContainer::CanHaveCimtype(unsigned short const *)
?CanHaveCimtype@CInstancePQSContainer@@UAEHPBG@Z
; public: virtual int __thiscall CInstancePart::CanHaveCimtype(unsigned short const *)
?CanHaveCimtype@CInstancePart@@UAEHPBG@Z
; public: virtual int __thiscall CMethodQualifierSetContainer::CanHaveCimtype(unsigned short const *)
?CanHaveCimtype@CMethodQualifierSetContainer@@UAEHPBG@Z
; public: int __thiscall CCompressedString::CheapCompare(class CCompressedString const &)const 
?CheapCompare@CCompressedString@@QBEHABV1@@Z
; public: int __thiscall CClassPart::CheckBoolQualifier(unsigned short const *)
?CheckBoolQualifier@CClassPart@@QAEHPBG@Z
; public: int __thiscall CWbemObject::CheckBooleanPropQual(unsigned short const *,unsigned short const *)
?CheckBooleanPropQual@CWbemObject@@QAEHPBG0@Z
; public: static int __stdcall CUntypedArray::CheckCVarVector(class CVarVector &,unsigned long)
?CheckCVarVector@CUntypedArray@@SGHAAVCVarVector@@K@Z
; protected: long __thiscall CMethodPart::CheckDuplicateParameters(class CWbemObject *,class CWbemObject *)
?CheckDuplicateParameters@CMethodPart@@IAEJPAVCWbemObject@@0@Z
; protected: long __thiscall CMethodPart::CheckIds(class CWbemClass *,class CWbemClass *)
?CheckIds@CMethodPart@@IAEJPAVCWbemClass@@0@Z
; public: static int __stdcall CUntypedArray::CheckIntervalDateTime(class CVarVector &)
?CheckIntervalDateTime@CUntypedArray@@SGHAAVCVarVector@@@Z
; public: int __thiscall CClassPart::CheckLocalBoolQualifier(unsigned short const *)
?CheckLocalBoolQualifier@CClassPart@@QAEHPBG@Z
; public: static long __stdcall CUntypedArray::CheckRangeSize(unsigned long,unsigned long,unsigned long,unsigned long,void *)
?CheckRangeSize@CUntypedArray@@SGJKKKKPAX@Z
; protected: static long __stdcall CUntypedArray::CheckRangeSizeForGet(unsigned long,unsigned long,unsigned long,unsigned long,unsigned long *)
?CheckRangeSizeForGet@CUntypedArray@@KGJKKKKPAK@Z
; private: void __thiscall CWbemClassCache::Clear(void)
?Clear@CWbemClassCache@@AAEXXZ
; private: void __thiscall CWbemGuidToClassMap::Clear(void)
?Clear@CWbemGuidToClassMap@@AAEXXZ
; public: void __thiscall CWbemInstance::ClearCachedKey(void)
?ClearCachedKey@CWbemInstance@@QAEXXZ
; public: virtual void __thiscall CWbemInstance::ClearCachedKeyValue(void)
?ClearCachedKeyValue@CWbemInstance@@UAEXXZ
; public: virtual long __stdcall CWbemClass::ClearWriteOnlyProperties(void)
?ClearWriteOnlyProperties@CWbemClass@@UAGJXZ
; public: virtual long __stdcall CWbemInstance::ClearWriteOnlyProperties(void)
?ClearWriteOnlyProperties@CWbemInstance@@UAGJXZ
; public: virtual long __stdcall CWbemClass::Clone(struct IWbemClassObject * *)
?Clone@CWbemClass@@UAGJPAPAUIWbemClassObject@@@Z
; public: virtual long __stdcall CWbemInstance::Clone(struct IWbemClassObject * *)
?Clone@CWbemInstance@@UAGJPAPAUIWbemClassObject@@@Z
; public: virtual long __stdcall CWbemClass::CloneAndDecorate(long,unsigned short *,unsigned short *,struct IWbemClassObject * *)
?CloneAndDecorate@CWbemClass@@UAGJJPAG0PAPAUIWbemClassObject@@@Z
; public: virtual long __stdcall CWbemInstance::CloneAndDecorate(long,unsigned short *,unsigned short *,struct IWbemClassObject * *)
?CloneAndDecorate@CWbemInstance@@UAGJJPAG0PAPAUIWbemClassObject@@@Z
; public: virtual long __stdcall CWbemClass::CloneEx(long,struct _IWmiObject *)
?CloneEx@CWbemClass@@UAGJJPAU_IWmiObject@@@Z
; public: virtual long __stdcall CWbemInstance::CloneEx(long,struct _IWmiObject *)
?CloneEx@CWbemInstance@@UAGJJPAU_IWmiObject@@@Z
; public: long __thiscall CWbemThreadSecurityHandle::CloneProcessContext(void)
?CloneProcessContext@CWbemThreadSecurityHandle@@QAEJXZ
; public: long __thiscall CWbemThreadSecurityHandle::CloneRpcContext(struct IServerSecurity *)
?CloneRpcContext@CWbemThreadSecurityHandle@@QAEJPAUIServerSecurity@@@Z
; public: long __thiscall CWbemThreadSecurityHandle::CloneThreadContext(unsigned long)
?CloneThreadContext@CWbemThreadSecurityHandle@@QAEJK@Z
; public: void __thiscall CClassAndMethods::Compact(void)
?Compact@CClassAndMethods@@QAEXXZ
; public: void __thiscall CClassPart::Compact(void)
?Compact@CClassPart@@QAEXXZ
; public: void __thiscall CInstancePart::Compact(bool)
?Compact@CInstancePart@@QAEX_N@Z
; public: void __thiscall CMethodPart::Compact(void)
?Compact@CMethodPart@@QAEXXZ
; public: virtual void __thiscall CWbemClass::CompactAll(void)
?CompactAll@CWbemClass@@UAEXXZ
; public: virtual void __thiscall CWbemInstance::CompactAll(void)
?CompactAll@CWbemInstance@@UAEXXZ
; public: void __thiscall CWbemInstance::CompactClass(void)
?CompactClass@CWbemInstance@@QAEXXZ
; public: int __thiscall CBasicQualifierSet::Compare(class CBasicQualifierSet &,unsigned char,unsigned short const * *,unsigned long)
?Compare@CBasicQualifierSet@@QAEHAAV1@EPAPBGK@Z
; public: int __thiscall CCompressedString::Compare(class CCompressedString const &)const 
?Compare@CCompressedString@@QBEHABV1@@Z
; public: int __thiscall CCompressedString::Compare(char const *)const 
?Compare@CCompressedString@@QBEHPBD@Z
; public: int __thiscall CCompressedString::Compare(unsigned short const *)const 
?Compare@CCompressedString@@QBEHPBG@Z
; public: int __thiscall CInternalString::Compare(class CInternalString const &)const 
?Compare@CInternalString@@QBEHABV1@@Z
; public: int __thiscall CInternalString::Compare(unsigned short const *)const 
?Compare@CInternalString@@QBEHPBG@Z
; public: int __thiscall CQualifierSet::Compare(class CQualifierSet &,class CFixedBSTRArray *,int)
?Compare@CQualifierSet@@QAEHAAV1@PAVCFixedBSTRArray@@H@Z
; public: virtual long __stdcall CWbemObject::CompareClassParts(struct IWbemClassObject *,long)
?CompareClassParts@CWbemObject@@UAGJPAUIWbemClassObject@@J@Z
; public: int __thiscall CClassPart::CompareDefs(class CClassPart &)
?CompareDefs@CClassPart@@QAEHAAV1@@Z
; public: virtual long __stdcall CWbemClass::CompareDerivedMostClass(long,struct _IWmiObject *)
?CompareDerivedMostClass@CWbemClass@@UAGJJPAU_IWmiObject@@@Z
; public: virtual long __stdcall CWbemInstance::CompareDerivedMostClass(long,struct _IWmiObject *)
?CompareDerivedMostClass@CWbemInstance@@UAGJJPAU_IWmiObject@@@Z
; public: enum EReconciliation  __thiscall CClassPart::CompareExactMatch(class CClassPart &,int)
?CompareExactMatch@CClassPart@@QAE?AW4EReconciliation@@AAV1@H@Z
; public: enum EReconciliation  __thiscall CMethodPart::CompareExactMatch(class CMethodPart &)
?CompareExactMatch@CMethodPart@@QAE?AW4EReconciliation@@AAV1@@Z
; public: int __thiscall CBasicQualifierSet::CompareLocalizedSet(class CBasicQualifierSet &)
?CompareLocalizedSet@CBasicQualifierSet@@QAEHAAV1@@Z
; public: long __thiscall CWbemClass::CompareMostDerivedClass(class CWbemClass *)
?CompareMostDerivedClass@CWbemClass@@QAEJPAV1@@Z
; public: int __thiscall CCompressedString::CompareNoCase(class CCompressedString const &)const 
?CompareNoCase@CCompressedString@@QBEHABV1@@Z
; public: int __thiscall CCompressedString::CompareNoCase(char const *)const 
?CompareNoCase@CCompressedString@@QBEHPBD@Z
; public: int __thiscall CCompressedString::CompareNoCase(unsigned short const *)const 
?CompareNoCase@CCompressedString@@QBEHPBG@Z
; public: enum EReconciliation  __thiscall CClassAndMethods::CompareTo(class CClassAndMethods &)
?CompareTo@CClassAndMethods@@QAE?AW4EReconciliation@@AAV1@@Z
; public: int __thiscall CDecorationPart::CompareTo(class CDecorationPart &)
?CompareTo@CDecorationPart@@QAEHAAV1@@Z
; public: long __thiscall CMethodPart::CompareTo(long,class CMethodPart &)
?CompareTo@CMethodPart@@QAEJJAAV1@@Z
; public: virtual long __stdcall CQualifierSet::CompareTo(long,struct IWbemQualifierSet *)
?CompareTo@CQualifierSet@@UAGJJPAUIWbemQualifierSet@@@Z
; public: virtual long __stdcall CWbemClass::CompareTo(long,struct IWbemClassObject *)
?CompareTo@CWbemClass@@UAGJJPAUIWbemClassObject@@@Z
; public: virtual long __stdcall CWbemObject::CompareTo(long,struct IWbemClassObject *)
?CompareTo@CWbemObject@@UAGJJPAUIWbemClassObject@@@Z
; protected: static int __stdcall CCompressedString::CompareUnicodeToAscii(unsigned short const *,char const *)
?CompareUnicodeToAscii@CCompressedString@@KGHPBGPBD@Z
; protected: static int __stdcall CCompressedString::CompareUnicodeToAsciiNoCase(unsigned short const *,char const *,int)
?CompareUnicodeToAsciiNoCase@CCompressedString@@KGHPBGPBDH@Z
; public: static unsigned long __stdcall CBasicQualifierSet::ComputeMergeSpace(unsigned char *,class CFastHeap *,unsigned char *,class CFastHeap *,int)
?ComputeMergeSpace@CBasicQualifierSet@@SGKPAEPAVCFastHeap@@01H@Z
; public: static int __stdcall CCompressedString::ComputeNecessarySpace(char const *)
?ComputeNecessarySpace@CCompressedString@@SGHPBD@Z
; public: static int __stdcall CCompressedString::ComputeNecessarySpace(unsigned short const *)
?ComputeNecessarySpace@CCompressedString@@SGHPBG@Z
; public: static int __stdcall CCompressedString::ComputeNecessarySpace(unsigned short const *,int &)
?ComputeNecessarySpace@CCompressedString@@SGHPBGAAH@Z
; public: unsigned long __thiscall CCompressedStringList::ComputeNecessarySpace(class CCompressedString *)
?ComputeNecessarySpace@CCompressedStringList@@QAEKPAVCCompressedString@@@Z
; public: static unsigned long __stdcall CDataTable::ComputeNecessarySpace(int,int)
?ComputeNecessarySpace@CDataTable@@SGKHH@Z
; public: static unsigned long __stdcall CDecorationPart::ComputeNecessarySpace(unsigned short const *,unsigned short const *)
?ComputeNecessarySpace@CDecorationPart@@SGKPBG0@Z
; public: static unsigned long __stdcall CInstancePart::ComputeNecessarySpace(class CClassPart *)
?ComputeNecessarySpace@CInstancePart@@SGKPAVCClassPart@@@Z
; public: static unsigned long __stdcall CQualifierSetList::ComputeNecessarySpace(int)
?ComputeNecessarySpace@CQualifierSetList@@SGKH@Z
; public: static unsigned long __stdcall CBasicQualifierSet::ComputeNecessarySpaceForPropagation(unsigned char *,unsigned char)
?ComputeNecessarySpaceForPropagation@CBasicQualifierSet@@SGKPAEE@Z
; public: static unsigned long __stdcall CQualifierSetList::ComputeRealSpace(int)
?ComputeRealSpace@CQualifierSetList@@SGKH@Z
; public: static unsigned long __stdcall CBasicQualifierSet::ComputeUnmergedSpace(unsigned char *)
?ComputeUnmergedSpace@CBasicQualifierSet@@SGKPAE@Z
; public: unsigned char * __thiscall CInstancePart::ConvertToClass(class CClassPart &,unsigned long,unsigned char *)
?ConvertToClass@CInstancePart@@QAEPAEAAVCClassPart@@KPAE@Z
; public: long __thiscall CWbemInstance::ConvertToClass(class CWbemClass *,class CWbemInstance * *)
?ConvertToClass@CWbemInstance@@QAEJPAVCWbemClass@@PAPAV1@@Z
; public: long __thiscall CWbemInstance::ConvertToMergedInstance(void)
?ConvertToMergedInstance@CWbemInstance@@QAEJXZ
; public: void __thiscall CCompressedString::ConvertToUnicode(unsigned short *)const 
?ConvertToUnicode@CCompressedString@@QBEXPAG@Z
; public: void __thiscall CFastHeap::Copy(unsigned long,unsigned long,unsigned long)
?Copy@CFastHeap@@QAEXKKK@Z
; public: long __thiscall CFastPropertyBag::Copy(class CFastPropertyBag const &)
?Copy@CFastPropertyBag@@QAEJABV1@@Z
; public: long __thiscall CWbemInstance::CopyActualTransferBlob(long,unsigned char *)
?CopyActualTransferBlob@CWbemInstance@@QAEJJPAE@Z
; public: long __thiscall CWbemInstance::CopyBlob(unsigned char *,int)
?CopyBlob@CWbemInstance@@QAEJPAEH@Z
; public: virtual long __thiscall CWbemClass::CopyBlobOf(class CWbemObject *)
?CopyBlobOf@CWbemClass@@UAEJPAVCWbemObject@@@Z
; public: virtual long __thiscall CWbemInstance::CopyBlobOf(class CWbemObject *)
?CopyBlobOf@CWbemInstance@@UAEJPAVCWbemObject@@@Z
; public: unsigned char * __thiscall CCompressedStringList::CopyData(unsigned char *)
?CopyData@CCompressedStringList@@QAEPAEPAE@Z
; protected: void __thiscall CLimitationMapping::CopyInfo(class CPropertyInformation &,class CPropertyInformation const &)
?CopyInfo@CLimitationMapping@@IAEXAAVCPropertyInformation@@ABV2@@Z
; public: virtual long __stdcall CWbemClass::CopyInstanceData(long,struct _IWmiObject *)
?CopyInstanceData@CWbemClass@@UAGJJPAU_IWmiObject@@@Z
; public: virtual long __stdcall CWbemInstance::CopyInstanceData(long,struct _IWmiObject *)
?CopyInstanceData@CWbemInstance@@UAGJJPAU_IWmiObject@@@Z
; public: long __thiscall CQualifierSet::CopyLocalQualifiers(class CQualifierSet &)
?CopyLocalQualifiers@CQualifierSet@@QAEJAAV1@@Z
; public: void __thiscall CDataTable::CopyNullness(class CDataTable *)
?CopyNullness@CDataTable@@QAEXPAV1@@Z
; public: long __thiscall CClassPart::CopyParentProperty(class CClassPart &,unsigned short const *)
?CopyParentProperty@CClassPart@@QAEJAAV1@PBG@Z
; public: static int __stdcall CCompressedString::CopyToNewHeap(unsigned long,class CFastHeap *,class CFastHeap *,unsigned long &)
?CopyToNewHeap@CCompressedString@@SGHKPAVCFastHeap@@0AAK@Z
; public: static int __stdcall CEmbeddedObject::CopyToNewHeap(unsigned long,class CFastHeap *,class CFastHeap *,unsigned long &)
?CopyToNewHeap@CEmbeddedObject@@SGHKPAVCFastHeap@@0AAK@Z
; public: static int __stdcall CUntypedArray::CopyToNewHeap(unsigned long,class CType,class CFastHeap *,class CFastHeap *,unsigned long &)
?CopyToNewHeap@CUntypedArray@@SGHKVCType@@PAVCFastHeap@@1AAK@Z
; public: static long __stdcall CWbemInstance::CopyTransferArrayBlob(class CWbemInstance *,long,long,unsigned char *,class CFlexArray &,long *)
?CopyTransferArrayBlob@CWbemInstance@@SGJPAV1@JJPAEAAVCFlexArray@@PAJ@Z
; public: long __thiscall CWbemInstance::CopyTransferBlob(long,long,unsigned char *)
?CopyTransferBlob@CWbemInstance@@QAEJJJPAE@Z
; public: void __thiscall CDecorationPart::Create(unsigned char,unsigned short const *,unsigned short const *,unsigned char *)
?Create@CDecorationPart@@QAEXEPBG0PAE@Z
; public: void __thiscall CFixedBSTRArray::Create(int)
?Create@CFixedBSTRArray@@QAEXH@Z
; public: void __thiscall CInstancePQSContainer::Create(class CQualifierSetList *,int,class CClassPart *,unsigned long)
?Create@CInstancePQSContainer@@QAEXPAVCQualifierSetList@@HPAVCClassPart@@K@Z
; public: unsigned char * __thiscall CInstancePart::Create(unsigned char *,class CClassPart *,class CInstancePartContainer *)
?Create@CInstancePart@@QAEPAEPAEPAVCClassPart@@PAVCInstancePartContainer@@@Z
; public: long __thiscall CWmiObjectFactory::Create(struct IUnknown *,unsigned long,struct _GUID const &,struct _GUID const &,void * *)
?Create@CWmiObjectFactory@@QAEJPAUIUnknown@@KABU_GUID@@1PAPAX@Z
; public: virtual long __stdcall CWmiObjectFactory::XObjectFactory::Create(struct IUnknown *,unsigned long,struct _GUID const &,struct _GUID const &,void * *)
?Create@XObjectFactory@CWmiObjectFactory@@UAGJPAUIUnknown@@KABU_GUID@@1PAPAX@Z
; public: unsigned short * __thiscall CCompressedString::CreateBSTRCopy(void)const 
?CreateBSTRCopy@CCompressedString@@QBEPAGXZ
; public: class CVarVector * __thiscall CUntypedArray::CreateCVarVector(class CType,class CFastHeap *)
?CreateCVarVector@CUntypedArray@@QAEPAVCVarVector@@VCType@@PAVCFastHeap@@@Z
; public: long __thiscall CWbemClass::CreateDerivedClass(class CWbemClass * *)
?CreateDerivedClass@CWbemClass@@QAEJPAPAV1@@Z
; public: long __thiscall CWbemClass::CreateDerivedClass(class CWbemClass *,int,class CDecorationPart *)
?CreateDerivedClass@CWbemClass@@QAEJPAV1@HPAVCDecorationPart@@@Z
; public: unsigned char * __thiscall CClassAndMethods::CreateDerivedPart(unsigned char *,unsigned long)
?CreateDerivedPart@CClassAndMethods@@QAEPAEPAEK@Z
; public: unsigned char * __thiscall CClassPart::CreateDerivedPart(unsigned char *,int)
?CreateDerivedPart@CClassPart@@QAEPAEPAEH@Z
; public: unsigned char * __thiscall CMethodPart::CreateDerivedPart(unsigned char *,unsigned long)
?CreateDerivedPart@CMethodPart@@QAEPAEPAEK@Z
; public: static int __stdcall CMethodDescription::CreateDerivedVersion(struct CMethodDescription *,struct CMethodDescription *,class CFastHeap *,class CFastHeap *)
?CreateDerivedVersion@CMethodDescription@@SGHPAU1@0PAVCFastHeap@@1@Z
; public: static unsigned char * __stdcall CBasicQualifierSet::CreateEmpty(unsigned char *)
?CreateEmpty@CBasicQualifierSet@@SGPAEPAE@Z
; public: static unsigned char * __stdcall CClassAndMethods::CreateEmpty(unsigned char *)
?CreateEmpty@CClassAndMethods@@SGPAEPAE@Z
; public: static unsigned char * __stdcall CClassPart::CreateEmpty(unsigned char *)
?CreateEmpty@CClassPart@@SGPAEPAE@Z
; public: static unsigned char * __stdcall CCompressedString::CreateEmpty(unsigned char *)
?CreateEmpty@CCompressedString@@SGPAEPAE@Z
; public: static unsigned char * __stdcall CCompressedStringList::CreateEmpty(unsigned char *)
?CreateEmpty@CCompressedStringList@@SGPAEPAE@Z
; public: static unsigned char * __stdcall CDataTable::CreateEmpty(unsigned char *)
?CreateEmpty@CDataTable@@SGPAEPAE@Z
; public: unsigned char * __thiscall CDecorationPart::CreateEmpty(unsigned char,unsigned char *)
?CreateEmpty@CDecorationPart@@QAEPAEEPAE@Z
; public: static unsigned char * __stdcall CFastHeap::CreateEmpty(unsigned char *)
?CreateEmpty@CFastHeap@@SGPAEPAE@Z
; public: static unsigned char * __stdcall CMethodPart::CreateEmpty(unsigned char *)
?CreateEmpty@CMethodPart@@SGPAEPAE@Z
; public: static unsigned char * __stdcall CPropertyLookupTable::CreateEmpty(unsigned char *)
?CreateEmpty@CPropertyLookupTable@@SGPAEPAE@Z
; public: static unsigned char * __stdcall CWbemClass::CreateEmpty(unsigned char *)
?CreateEmpty@CWbemClass@@SGPAEPAE@Z
; public: static class CWbemClass * __stdcall CWbemClass::CreateFromBlob2(class CWbemClass *,unsigned char *,unsigned short *,unsigned short *)
?CreateFromBlob2@CWbemClass@@SGPAV1@PAV1@PAEPAG2@Z
; public: static class CWbemInstance * __stdcall CWbemInstance::CreateFromBlob2(class CWbemClass *,unsigned char *,unsigned short *,unsigned short *)
?CreateFromBlob2@CWbemInstance@@SGPAV1@PAVCWbemClass@@PAEPAG2@Z
; public: static class CWbemClass * __stdcall CWbemClass::CreateFromBlob(class CWbemClass *,unsigned char *,unsigned int)
?CreateFromBlob@CWbemClass@@SGPAV1@PAV1@PAEI@Z
; public: static class CWbemInstance * __stdcall CWbemInstance::CreateFromBlob(class CWbemClass *,unsigned char *,unsigned int)
?CreateFromBlob@CWbemInstance@@SGPAV1@PAVCWbemClass@@PAEI@Z
; public: static class CWbemObject * __stdcall CWbemObject::CreateFromMemory(unsigned char *,int,int,class CBlobControl &)
?CreateFromMemory@CWbemObject@@SGPAV1@PAEHHAAVCBlobControl@@@Z
; public: static class CWbemObject * __stdcall CWbemObject::CreateFromStream(struct IStream *)
?CreateFromStream@CWbemObject@@SGPAV1@PAUIStream@@@Z
; public: virtual long __stdcall CWmiObjectTextSrc::XObjectTextSrc::CreateFromText(long,unsigned short *,unsigned long,struct IWbemContext *,struct IWbemClassObject * *)
?CreateFromText@XObjectTextSrc@CWmiObjectTextSrc@@UAGJJPAGKPAUIWbemContext@@PAPAUIWbemClassObject@@@Z
; public: unsigned short * __thiscall CInternalString::CreateLPWSTRCopy(void)const 
?CreateLPWSTRCopy@CInternalString@@QBEPAGXZ
; public: unsigned char * __thiscall CClassAndMethods::CreateLimitedRepresentation(class CLimitationMapping *,int,unsigned char *,int &)
?CreateLimitedRepresentation@CClassAndMethods@@QAEPAEPAVCLimitationMapping@@HPAEAAH@Z
; public: unsigned char * __thiscall CClassPart::CreateLimitedRepresentation(class CLimitationMapping *,int,unsigned char *,int &)
?CreateLimitedRepresentation@CClassPart@@QAEPAEPAVCLimitationMapping@@HPAEAAH@Z
; public: unsigned char * __thiscall CDataTable::CreateLimitedRepresentation(class CLimitationMapping *,int,class CFastHeap *,class CFastHeap *,unsigned char *)
?CreateLimitedRepresentation@CDataTable@@QAEPAEPAVCLimitationMapping@@HPAVCFastHeap@@1PAE@Z
; public: unsigned char * __thiscall CDecorationPart::CreateLimitedRepresentation(class CLimitationMapping *,unsigned char *)
?CreateLimitedRepresentation@CDecorationPart@@QAEPAEPAVCLimitationMapping@@PAE@Z
; public: unsigned char * __thiscall CDerivationList::CreateLimitedRepresentation(class CLimitationMapping *,unsigned char *)
?CreateLimitedRepresentation@CDerivationList@@QAEPAEPAVCLimitationMapping@@PAE@Z
; public: unsigned char * __thiscall CInstancePart::CreateLimitedRepresentation(class CLimitationMapping *,int,unsigned char *)
?CreateLimitedRepresentation@CInstancePart@@QAEPAEPAVCLimitationMapping@@HPAE@Z
; public: unsigned char * __thiscall CPropertyLookupTable::CreateLimitedRepresentation(class CLimitationMapping *,class CFastHeap *,unsigned char *,int &)
?CreateLimitedRepresentation@CPropertyLookupTable@@QAEPAEPAVCLimitationMapping@@PAVCFastHeap@@PAEAAH@Z
; public: unsigned char * __thiscall CQualifierSetList::CreateLimitedRepresentation(class CLimitationMapping *,class CFastHeap *,class CFastHeap *,unsigned char *)
?CreateLimitedRepresentation@CQualifierSetList@@QAEPAEPAVCLimitationMapping@@PAVCFastHeap@@1PAE@Z
; public: static unsigned char * __stdcall CQualifierSetList::CreateListOfEmpties(unsigned char *,int)
?CreateListOfEmpties@CQualifierSetList@@SGPAEPAEH@Z
; protected: long __thiscall CMethodPart::CreateMethod(unsigned short const *,class CWbemObject *,class CWbemObject *)
?CreateMethod@CMethodPart@@IAEJPBGPAVCWbemObject@@1@Z
; public: int __thiscall CFastHeap::CreateNoCaseStringHeapPtr(unsigned short const *,unsigned long &)
?CreateNoCaseStringHeapPtr@CFastHeap@@QAEHPBGAAK@Z
; public: unsigned char * __thiscall CFastHeap::CreateOutOfLine(unsigned char *,unsigned long)
?CreateOutOfLine@CFastHeap@@QAEPAEPAEK@Z
; protected: long __thiscall CWbemRefreshingSvc::CreateRefreshableObjectTemplate(unsigned short const *,long,struct IWbemClassObject * *)
?CreateRefreshableObjectTemplate@CWbemRefreshingSvc@@IAEJPBGJPAPAUIWbemClassObject@@@Z
; public: static int __stdcall CMethodDescription::CreateUnmergedVersion(struct CMethodDescription *,struct CMethodDescription *,class CFastHeap *,class CFastHeap *)
?CreateUnmergedVersion@CMethodDescription@@SGHPAU1@0PAVCFastHeap@@1@Z
; public: class WString  __thiscall CCompressedString::CreateWStringCopy(void)const 
?CreateWStringCopy@CCompressedString@@QBE?AVWString@@XZ
; public: unsigned char * __thiscall CCompressedStringList::CreateWithExtra(unsigned char *,class CCompressedString *)
?CreateWithExtra@CCompressedStringList@@QAEPAEPAEPAVCCompressedString@@@Z
; public: virtual long __thiscall CWbemClass::Decorate(unsigned short const *,unsigned short const *)
?Decorate@CWbemClass@@UAEJPBG0@Z
; public: virtual long __thiscall CWbemInstance::Decorate(unsigned short const *,unsigned short const *)
?Decorate@CWbemInstance@@UAEJPBG0@Z
; public: static void __stdcall CBasicQualifierSet::Delete(unsigned char *,class CFastHeap *)
?Delete@CBasicQualifierSet@@SGXPAEPAVCFastHeap@@@Z
; public: virtual long __stdcall CQualifierSet::Delete(unsigned short const *)
?Delete@CQualifierSet@@UAGJPBG@Z
; public: void __thiscall CUntypedArray::Delete(class CType,class CFastHeap *)
?Delete@CUntypedArray@@QAEXVCType@@PAVCFastHeap@@@Z
; public: virtual long __stdcall CWbemClass::Delete(unsigned short const *)
?Delete@CWbemClass@@UAGJPBG@Z
; public: virtual long __stdcall CWbemInstance::Delete(unsigned short const *)
?Delete@CWbemInstance@@UAGJPBG@Z
; public: long __thiscall CMethodPart::DeleteMethod(unsigned short const *)
?DeleteMethod@CMethodPart@@QAEJPBG@Z
; public: virtual long __stdcall CWbemClass::DeleteMethod(unsigned short const *)
?DeleteMethod@CWbemClass@@UAGJPBG@Z
; public: virtual long __stdcall CWbemInstance::DeleteMethod(unsigned short const *)
?DeleteMethod@CWbemInstance@@UAGJPBG@Z
; public: long __thiscall CClassPart::DeleteProperty(unsigned short const *)
?DeleteProperty@CClassPart@@QAEJPBG@Z
; public: void __thiscall CClassPart::DeleteProperty(int)
?DeleteProperty@CClassPart@@QAEXH@Z
; public: void __thiscall CInstancePart::DeleteProperty(class CPropertyInformation *)
?DeleteProperty@CInstancePart@@QAEXPAVCPropertyInformation@@@Z
; public: void __thiscall CPropertyLookupTable::DeleteProperty(struct CPropertyLookup *,int)
?DeleteProperty@CPropertyLookupTable@@QAEXPAUCPropertyLookup@@H@Z
; public: long __thiscall CWbemInstance::DeleteProperty(int)
?DeleteProperty@CWbemInstance@@QAEJH@Z
; public: long __thiscall CQualifierSet::DeleteQualifier(unsigned short const *,int)
?DeleteQualifier@CQualifierSet@@QAEJPBGH@Z
; public: void __thiscall CQualifierSetList::DeleteQualifierSet(int)
?DeleteQualifierSet@CQualifierSetList@@QAEXH@Z
; protected: void __thiscall CMethodPart::DeleteSignature(int,int)
?DeleteSignature@CMethodPart@@IAEXHH@Z
; protected: static long __stdcall CWbemObject::DisabledValidateObject(class CWbemObject *)
?DisabledValidateObject@CWbemObject@@KGJPAV1@@Z
; public: void __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::Discard(int)
?Discard@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAEXH@Z
; public: void __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::Discard(int)
?Discard@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAEXH@Z
; public: virtual long __stdcall CWbemObject::DisconnectObject(unsigned long)
?DisconnectObject@CWbemObject@@UAGJK@Z
; protected: int __thiscall CMethodPart::DoSignaturesMatch(int,enum METHOD_SIGNATURE_TYPE,class CWbemObject *)
?DoSignaturesMatch@CMethodPart@@IAEHHW4METHOD_SIGNATURE_TYPE@@PAVCWbemObject@@@Z
; public: static int __stdcall CType::DoesCIMTYPEMatchVARTYPE(long,unsigned short)
?DoesCIMTYPEMatchVARTYPE@CType@@SGHJG@Z
; protected: int __thiscall CMethodPart::DoesSignatureMatchOther(class CMethodPart &,int,enum METHOD_SIGNATURE_TYPE)
?DoesSignatureMatchOther@CMethodPart@@IAEHAAV1@HW4METHOD_SIGNATURE_TYPE@@@Z
; public: int __thiscall CFastHeap::ElementMaxSize(unsigned long)
?ElementMaxSize@CFastHeap@@QAEHK@Z
; public: void __thiscall CFastHeap::Empty(void)
?Empty@CFastHeap@@QAEXXZ
; public: void __thiscall CInternalString::Empty(void)
?Empty@CInternalString@@QAEXXZ
; protected: static long __stdcall CWbemObject::EnabledValidateObject(class CWbemObject *)
?EnabledValidateObject@CWbemObject@@KGJPAV1@@Z
; public: virtual long __stdcall CQualifierSet::EndEnumeration(void)
?EndEnumeration@CQualifierSet@@UAGJXZ
; public: virtual long __stdcall CWbemObject::EndEnumeration(void)
?EndEnumeration@CWbemObject@@UAGJXZ
; public: virtual long __stdcall CWbemClass::EndMethodEnumeration(void)
?EndMethodEnumeration@CWbemClass@@UAGJXZ
; public: virtual long __stdcall CWbemInstance::EndMethodEnumeration(void)
?EndMethodEnumeration@CWbemInstance@@UAGJXZ
; public: long __thiscall CClassPart::EnsureProperty(unsigned short const *,unsigned short,long,int)
?EnsureProperty@CClassPart@@QAEJPBGGJH@Z
; public: long __thiscall CMethodPart::EnsureQualifier(class CWbemObject *,unsigned short const *,class CWbemObject * *)
?EnsureQualifier@CMethodPart@@QAEJPAVCWbemObject@@PBGPAPAV2@@Z
; public: long __thiscall CWbemClass::EnsureQualifier(unsigned short const *)
?EnsureQualifier@CWbemClass@@QAEJPBG@Z
; public: int __thiscall CQualifierSetList::EnsureReal(void)
?EnsureReal@CQualifierSetList@@QAEHXZ
; public: long __thiscall CBasicQualifierSet::EnumPrimaryQualifiers(unsigned char,unsigned char,class CFixedBSTRArray &,class CFixedBSTRArray &)
?EnumPrimaryQualifiers@CBasicQualifierSet@@QAEJEEAAVCFixedBSTRArray@@0@Z
; public: long __thiscall CQualifierSet::EnumQualifiers(unsigned char,unsigned char,class CFixedBSTRArray &)
?EnumQualifiers@CQualifierSet@@QAEJEEAAVCFixedBSTRArray@@@Z
; public: unsigned long __thiscall CWbemClass::EstimateDerivedClassSpace(class CDecorationPart *)
?EstimateDerivedClassSpace@CWbemClass@@QAEKPAVCDecorationPart@@@Z
; public: unsigned long __thiscall CClassAndMethods::EstimateDerivedPartSpace(void)
?EstimateDerivedPartSpace@CClassAndMethods@@QAEKXZ
; public: unsigned long __thiscall CClassPart::EstimateDerivedPartSpace(void)
?EstimateDerivedPartSpace@CClassPart@@QAEKXZ
; public: unsigned long __thiscall CMethodPart::EstimateDerivedPartSpace(void)
?EstimateDerivedPartSpace@CMethodPart@@QAEKXZ
; public: static unsigned long __stdcall CCompressedStringList::EstimateExtraSpace(class CCompressedString *)
?EstimateExtraSpace@CCompressedStringList@@SGKPAVCCompressedString@@@Z
; public: static unsigned long __stdcall CCompressedStringList::EstimateExtraSpace(unsigned short const *)
?EstimateExtraSpace@CCompressedStringList@@SGKPBG@Z
; public: static unsigned long __stdcall CWbemInstance::EstimateInstanceSpace(class CClassPart &,class CDecorationPart *)
?EstimateInstanceSpace@CWbemInstance@@SGKAAVCClassPart@@PAVCDecorationPart@@@Z
; public: unsigned long __thiscall CWbemObject::EstimateLimitedRepresentationSpace(long,class CWStringArray *)
?EstimateLimitedRepresentationSpace@CWbemObject@@QAEKJPAVCWStringArray@@@Z
; public: static unsigned long __stdcall CClassAndMethods::EstimateMergeSpace(class CClassAndMethods &,class CClassAndMethods &)
?EstimateMergeSpace@CClassAndMethods@@SGKAAV1@0@Z
; public: static unsigned long __stdcall CClassPart::EstimateMergeSpace(class CClassPart &,class CClassPart &)
?EstimateMergeSpace@CClassPart@@SGKAAV1@0@Z
; public: static unsigned long __stdcall CMethodPart::EstimateMergeSpace(class CMethodPart &,class CMethodPart &)
?EstimateMergeSpace@CMethodPart@@SGKAAV1@0@Z
; public: unsigned long __thiscall CWbemClass::EstimateMergeSpace(unsigned char *,long)
?EstimateMergeSpace@CWbemClass@@QAEKPAEJ@Z
; public: static unsigned long __stdcall CEmbeddedObject::EstimateNecessarySpace(class CVar &)
?EstimateNecessarySpace@CEmbeddedObject@@SGKAAVCVar@@@Z
; public: static unsigned long __stdcall CEmbeddedObject::EstimateNecessarySpace(class CWbemObject *)
?EstimateNecessarySpace@CEmbeddedObject@@SGKPAVCWbemObject@@@Z
; public: unsigned long __thiscall CClassAndMethods::EstimateUnmergeSpace(void)
?EstimateUnmergeSpace@CClassAndMethods@@QAEKXZ
; public: unsigned long __thiscall CClassPart::EstimateUnmergeSpace(void)
?EstimateUnmergeSpace@CClassPart@@QAEKXZ
; public: unsigned long __thiscall CMethodPart::EstimateUnmergeSpace(void)
?EstimateUnmergeSpace@CMethodPart@@QAEKXZ
; public: virtual unsigned long __thiscall CWbemClass::EstimateUnmergeSpace(void)
?EstimateUnmergeSpace@CWbemClass@@UAEKXZ
; public: virtual unsigned long __thiscall CWbemInstance::EstimateUnmergeSpace(void)
?EstimateUnmergeSpace@CWbemInstance@@UAEKXZ
; public: int __thiscall CFastHeap::Extend(unsigned long,unsigned long,unsigned long)
?Extend@CFastHeap@@QAEHKKK@Z
; public: int __thiscall CWbemClass::ExtendClassAndMethodsSpace(unsigned long)
?ExtendClassAndMethodsSpace@CWbemClass@@QAEHK@Z
; public: virtual int __thiscall CClassAndMethods::ExtendClassPartSpace(class CClassPart *,unsigned long)
?ExtendClassPartSpace@CClassAndMethods@@UAEHPAVCClassPart@@K@Z
; public: virtual int __thiscall CWbemInstance::ExtendClassPartSpace(class CClassPart *,unsigned long)
?ExtendClassPartSpace@CWbemInstance@@UAEHPAVCClassPart@@K@Z
; public: virtual int __thiscall CClassPart::ExtendDataTableSpace(unsigned char *,unsigned long,unsigned long)
?ExtendDataTableSpace@CClassPart@@UAEHPAEKK@Z
; public: virtual int __thiscall CInstancePart::ExtendDataTableSpace(unsigned char *,unsigned long,unsigned long)
?ExtendDataTableSpace@CInstancePart@@UAEHPAEKK@Z
; public: virtual int __thiscall CClassPart::ExtendHeapSize(unsigned char *,unsigned long,unsigned long)
?ExtendHeapSize@CClassPart@@UAEHPAEKK@Z
; public: virtual int __thiscall CInstancePart::ExtendHeapSize(unsigned char *,unsigned long,unsigned long)
?ExtendHeapSize@CInstancePart@@UAEHPAEKK@Z
; public: virtual int __thiscall CMethodPart::ExtendHeapSize(unsigned char *,unsigned long,unsigned long)
?ExtendHeapSize@CMethodPart@@UAEHPAEKK@Z
; public: virtual int __thiscall CWbemInstance::ExtendInstancePartSpace(class CInstancePart *,unsigned long)
?ExtendInstancePartSpace@CWbemInstance@@UAEHPAVCInstancePart@@K@Z
; public: virtual int __thiscall CClassAndMethods::ExtendMethodPartSpace(class CMethodPart *,unsigned long)
?ExtendMethodPartSpace@CClassAndMethods@@UAEHPAVCMethodPart@@K@Z
; public: virtual int __thiscall CClassPart::ExtendPropertyTableSpace(unsigned char *,unsigned long,unsigned long)
?ExtendPropertyTableSpace@CClassPart@@UAEHPAEKK@Z
; public: virtual int __thiscall CInstancePart::ExtendQualifierSetListSpace(unsigned char *,unsigned long,unsigned long)
?ExtendQualifierSetListSpace@CInstancePart@@UAEHPAEKK@Z
; public: virtual int __thiscall CClassPart::ExtendQualifierSetSpace(class CBasicQualifierSet *,unsigned long)
?ExtendQualifierSetSpace@CClassPart@@UAEHPAVCBasicQualifierSet@@K@Z
; public: virtual int __thiscall CInstancePQSContainer::ExtendQualifierSetSpace(class CBasicQualifierSet *,unsigned long)
?ExtendQualifierSetSpace@CInstancePQSContainer@@UAEHPAVCBasicQualifierSet@@K@Z
; public: virtual int __thiscall CInstancePart::ExtendQualifierSetSpace(class CBasicQualifierSet *,unsigned long)
?ExtendQualifierSetSpace@CInstancePart@@UAEHPAVCBasicQualifierSet@@K@Z
; public: virtual int __thiscall CMethodQualifierSetContainer::ExtendQualifierSetSpace(class CBasicQualifierSet *,unsigned long)
?ExtendQualifierSetSpace@CMethodQualifierSetContainer@@UAEHPAVCBasicQualifierSet@@K@Z
; public: int __thiscall CQualifierSetList::ExtendQualifierSetSpace(class CBasicQualifierSet *,unsigned long)
?ExtendQualifierSetSpace@CQualifierSetList@@QAEHPAVCBasicQualifierSet@@K@Z
; public: int __thiscall CDataTable::ExtendTo(unsigned short,unsigned long)
?ExtendTo@CDataTable@@QAEHGK@Z
; public: long __thiscall CWbemInstance::FastClone(class CWbemInstance *)
?FastClone@CWbemInstance@@QAEJPAV1@@Z
; public: void __thiscall CFixedBSTRArray::Filter(unsigned short const *,int)
?Filter@CFixedBSTRArray@@QAEXPBGH@Z
; public: int __thiscall CCompressedStringList::Find(unsigned short const *)
?Find@CCompressedStringList@@QAEHPBG@Z
; public: class WString  __thiscall CWbemClass::FindLimitationError(long,class CWStringArray *)
?FindLimitationError@CWbemClass@@QAE?AVWString@@JPAVCWStringArray@@@Z
; protected: int __thiscall CMethodPart::FindMethod(unsigned short const *)
?FindMethod@CMethodPart@@IAEHPBG@Z
; public: virtual long __thiscall CWbemClass::FindMethod(unsigned short const *)
?FindMethod@CWbemClass@@UAEJPBG@Z
; public: virtual long __thiscall CWbemObject::FindMethod(unsigned short const *)
?FindMethod@CWbemObject@@UAEJPBG@Z
; public: static int __stdcall CSystemProperties::FindName(unsigned short const *)
?FindName@CSystemProperties@@SGHPBG@Z
; protected: class CFastPropertyBagItem * __thiscall CFastPropertyBag::FindProperty(unsigned short const *)
?FindProperty@CFastPropertyBag@@IAEPAVCFastPropertyBagItem@@PBG@Z
; public: struct CPropertyLookup * __thiscall CPropertyLookupTable::FindProperty(unsigned short const *)
?FindProperty@CPropertyLookupTable@@QAEPAUCPropertyLookup@@PBG@Z
; public: struct CPropertyLookup * __thiscall CPropertyLookupTable::FindPropertyByName(class CCompressedString *)
?FindPropertyByName@CPropertyLookupTable@@QAEPAUCPropertyLookup@@PAVCCompressedString@@@Z
; public: struct CPropertyLookup * __thiscall CPropertyLookupTable::FindPropertyByOffset(unsigned long)
?FindPropertyByOffset@CPropertyLookupTable@@QAEPAUCPropertyLookup@@K@Z
; public: struct CPropertyLookup * __thiscall CPropertyLookupTable::FindPropertyByPtr(unsigned long)
?FindPropertyByPtr@CPropertyLookupTable@@QAEPAUCPropertyLookup@@K@Z
; protected: int __thiscall CFastPropertyBag::FindPropertyIndex(unsigned short const *)
?FindPropertyIndex@CFastPropertyBag@@IAEHPBG@Z
; public: class CPropertyInformation * __thiscall CClassPart::FindPropertyInfo(unsigned short const *)
?FindPropertyInfo@CClassPart@@QAEPAVCPropertyInformation@@PBG@Z
; public: long __thiscall CWbemClass::ForcePropValue(unsigned short const *,class CVar *,long)
?ForcePropValue@CWbemClass@@QAEJPBGPAVCVar@@J@Z
; public: long __thiscall CWbemClass::ForcePut(unsigned short const *,long,struct tagVARIANT *,long)
?ForcePut@CWbemClass@@QAEJPBGJPAUtagVARIANT@@J@Z
; public: void __thiscall CFastHeap::Free(unsigned long,unsigned long)
?Free@CFastHeap@@QAEXKK@Z
; public: void __thiscall CFixedBSTRArray::Free(void)
?Free@CFixedBSTRArray@@QAEXXZ
; public: void __thiscall CFastHeap::FreeString(unsigned long)
?FreeString@CFastHeap@@QAEXK@Z
; public: long __thiscall CFastPropertyBag::Get(int,unsigned short const * *,long *,unsigned long *,unsigned long *,void * *)
?Get@CFastPropertyBag@@QAEJHPAPBGPAJPAK2PAPAX@Z
; public: long __thiscall CFastPropertyBag::Get(unsigned short const *,long *,unsigned long *,unsigned long *,void * *)
?Get@CFastPropertyBag@@QAEJPBGPAJPAK2PAPAX@Z
; public: virtual long __stdcall CQualifierSet::Get(unsigned short const *,long,struct tagVARIANT *,long *)
?Get@CQualifierSet@@UAGJPBGJPAUtagVARIANT@@PAJ@Z
; public: long __thiscall CWbemFetchRefrMgr::Get(struct _IWbemRefresherMgr * *)
?Get@CWbemFetchRefrMgr@@QAEJPAPAU_IWbemRefresherMgr@@@Z
; public: virtual long __stdcall CWbemObject::Get(unsigned short const *,long,struct tagVARIANT *,long *,long *)
?Get@CWbemObject@@UAGJPBGJPAUtagVARIANT@@PAJ2@Z
; public: virtual long __stdcall CWbemFetchRefrMgr::XFetchRefrMgr::Get(struct _IWbemRefresherMgr * *)
?Get@XFetchRefrMgr@CWbemFetchRefrMgr@@UAGJPAPAU_IWbemRefresherMgr@@@Z
; public: unsigned char __thiscall CClassPart::GetAbstractFlavor(void)
?GetAbstractFlavor@CClassPart@@QAEEXZ
; public: unsigned char __thiscall CWbemClass::GetAbstractFlavor(void)
?GetAbstractFlavor@CWbemClass@@QAEEXZ
; public: void __thiscall CWbemInstance::GetActualTransferBlob(unsigned char *)
?GetActualTransferBlob@CWbemInstance@@QAEXPAE@Z
; public: long __thiscall CWbemInstance::GetActualTransferBlobSize(void)
?GetActualTransferBlobSize@CWbemInstance@@QAEJXZ
; public: unsigned long __thiscall CType::GetActualType(void)
?GetActualType@CType@@QAEKXZ
; public: static unsigned long __stdcall CType::GetActualType(unsigned long)
?GetActualType@CType@@SGKK@Z
; public: long __thiscall CInstancePart::GetActualValue(class CPropertyInformation *,class CVar *)
?GetActualValue@CInstancePart@@QAEJPAVCPropertyInformation@@PAVCVar@@@Z
; public: unsigned long __thiscall CFastHeap::GetAllocatedDataLength(void)
?GetAllocatedDataLength@CFastHeap@@QAEKXZ
; public: class CFlexArray & __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::GetArray(void)
?GetArray@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAEAAVCFlexArray@@XZ
; public: class CFlexArray & __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::GetArray(void)
?GetArray@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAEAAVCFlexArray@@XZ
; public: class CUntypedArray * __thiscall CWbemObject::GetArrayByHandle(long)
?GetArrayByHandle@CWbemObject@@QAEPAVCUntypedArray@@J@Z
; public: virtual long __stdcall CWbemObject::GetArrayPropAddrByHandle(long,long,unsigned long *,void * *)
?GetArrayPropAddrByHandle@CWbemObject@@UAGJJJPAKPAPAX@Z
; public: virtual long __stdcall CWbemObject::GetArrayPropElementByHandle(long,long,unsigned long,unsigned long *,unsigned long *,void * *)
?GetArrayPropElementByHandle@CWbemObject@@UAGJJJKPAK0PAPAX@Z
; public: virtual long __stdcall CWbemObject::GetArrayPropInfoByHandle(long,long,unsigned short * *,long *,unsigned long *)
?GetArrayPropInfoByHandle@CWbemObject@@UAGJJJPAPAGPAJPAK@Z
; public: virtual long __stdcall CWbemObject::GetArrayPropRangeByHandle(long,long,unsigned long,unsigned long,unsigned long,unsigned long *,unsigned long *,void *)
?GetArrayPropRangeByHandle@CWbemObject@@UAGJJJKKKPAK0PAX@Z
; public: long __thiscall CWbemObject::GetArrayPropertyHandle(unsigned short const *,long *,long *)
?GetArrayPropertyHandle@CWbemObject@@QAEJPBGPAJ1@Z
; public: class CFastPropertyBagItem * * __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::GetArrayPtr(void)
?GetArrayPtr@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAEPAPAVCFastPropertyBagItem@@XZ
; public: class CWmiTextSource * * __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::GetArrayPtr(void)
?GetArrayPtr@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAEPAPAVCWmiTextSource@@XZ
; public: class CFastPropertyBagItem * __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::GetAt(int)
?GetAt@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAEPAVCFastPropertyBagItem@@H@Z
; public: class CFastPropertyBagItem const * __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::GetAt(int)const 
?GetAt@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QBEPBVCFastPropertyBagItem@@H@Z
; public: class CWmiTextSource * __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::GetAt(int)
?GetAt@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAEPAVCWmiTextSource@@H@Z
; public: class CWmiTextSource const * __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::GetAt(int)const 
?GetAt@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QBEPBVCWmiTextSource@@H@Z
; public: unsigned short * & __thiscall CFixedBSTRArray::GetAt(int)
?GetAt@CFixedBSTRArray@@QAEAAPAGH@Z
; public: struct CPropertyLookup * __thiscall CPropertyLookupTable::GetAt(int)
?GetAt@CPropertyLookupTable@@QAEPAUCPropertyLookup@@H@Z
; public: class CCompressedString * __thiscall CCompressedStringList::GetAtFromLast(int)
?GetAtFromLast@CCompressedStringList@@QAEPAVCCompressedString@@H@Z
; public: long __stdcall CWbemCallSecurity::GetAuthentication(unsigned long *)
?GetAuthentication@CWbemCallSecurity@@QAGJPAK@Z
; public: virtual long __stdcall CWbemThreadSecurityHandle::GetAuthentication(unsigned long *)
?GetAuthentication@CWbemThreadSecurityHandle@@UAGJPAK@Z
; public: unsigned long __thiscall CWbemThreadSecurityHandle::GetAuthenticationLevel(void)
?GetAuthenticationLevel@CWbemThreadSecurityHandle@@QAEKXZ
; public: virtual long __stdcall CWbemCallSecurity::GetAuthenticationLuid(void *)
?GetAuthenticationLuid@CWbemCallSecurity@@UAGJPAX@Z
; public: virtual long __stdcall CWbemThreadSecurityHandle::GetAuthenticationLuid(void *)
?GetAuthenticationLuid@CWbemThreadSecurityHandle@@UAGJPAX@Z
; public: unsigned long __thiscall CWbemThreadSecurityHandle::GetAuthenticationService(void)
?GetAuthenticationService@CWbemThreadSecurityHandle@@QAEKXZ
; public: unsigned long __thiscall CWbemThreadSecurityHandle::GetAuthorizationService(void)
?GetAuthorizationService@CWbemThreadSecurityHandle@@QAEKXZ
; public: unsigned long __thiscall CType::GetBasic(void)
?GetBasic@CType@@QAEKXZ
; public: static unsigned long __stdcall CType::GetBasic(unsigned long)
?GetBasic@CType@@SGKK@Z
; protected: virtual unsigned long __thiscall CWbemClass::GetBlockLength(void)
?GetBlockLength@CWbemClass@@MAEKXZ
; protected: virtual unsigned long __thiscall CWbemInstance::GetBlockLength(void)
?GetBlockLength@CWbemInstance@@MAEKXZ
; public: unsigned long __thiscall CClassPart::GetClassIndex(unsigned short const *)
?GetClassIndex@CClassPart@@QAEKPBG@Z
; public: unsigned long __thiscall CWbemObject::GetClassIndex(unsigned short const *)
?GetClassIndex@CWbemObject@@QAEKPBG@Z
; public: class CCompressedString * __thiscall CWbemObject::GetClassInternal(void)
?GetClassInternal@CWbemObject@@QAEPAVCCompressedString@@XZ
; public: static long __stdcall CClassAndMethods::GetClassNameW(class WString &,unsigned char *)
?GetClassNameW@CClassAndMethods@@SGJAAVWString@@PAE@Z
; public: long __thiscall CClassPart::GetClassNameW(class CVar *)
?GetClassNameW@CClassPart@@QAEJPAVCVar@@@Z
; public: class CCompressedString * __thiscall CClassPart::GetClassNameW(void)
?GetClassNameW@CClassPart@@QAEPAVCCompressedString@@XZ
; public: virtual long __thiscall CWbemClass::GetClassNameW(class CVar *)
?GetClassNameW@CWbemClass@@UAEJPAVCVar@@@Z
; public: virtual long __thiscall CWbemInstance::GetClassNameW(class CVar *)
?GetClassNameW@CWbemInstance@@UAEJPAVCVar@@@Z
; private: long __thiscall CWbemObjectArrayPacket::GetClassObject(class CWbemObjectPacket &,struct IWbemClassObject * *)
?GetClassObject@CWbemObjectArrayPacket@@AAEJAAVCWbemObjectPacket@@PAPAUIWbemClassObject@@@Z
; protected: virtual class CClassPart * __thiscall CWbemClass::GetClassPart(void)
?GetClassPart@CWbemClass@@MAEPAVCClassPart@@XZ
; public: virtual long __stdcall CWbemClass::GetClassPart(void *,unsigned long,unsigned long *)
?GetClassPart@CWbemClass@@UAGJPAXKPAK@Z
; protected: virtual class CClassPart * __thiscall CWbemInstance::GetClassPart(void)
?GetClassPart@CWbemInstance@@MAEPAVCClassPart@@XZ
; public: virtual long __stdcall CWbemInstance::GetClassPart(void *,unsigned long,unsigned long *)
?GetClassPart@CWbemInstance@@UAGJPAXKPAK@Z
; public: long __thiscall CClassPart::GetClassQualifier(unsigned short const *,long *,class CTypedValue *,class CFastHeap * *,int)
?GetClassQualifier@CClassPart@@QAEJPBGPAJPAVCTypedValue@@PAPAVCFastHeap@@H@Z
; public: long __thiscall CClassPart::GetClassQualifier(unsigned short const *,class CVar *,long *,long *)
?GetClassQualifier@CClassPart@@QAEJPBGPAVCVar@@PAJ2@Z
; public: virtual long __stdcall CWbemClass::GetClassSubset(unsigned long,unsigned short const * *,struct _IWmiObject * *)
?GetClassSubset@CWbemClass@@UAGJKPAPBGPAPAU_IWmiObject@@@Z
; public: virtual long __stdcall CWbemInstance::GetClassSubset(unsigned long,unsigned short const * *,struct _IWmiObject * *)
?GetClassSubset@CWbemInstance@@UAGJKPAPBGPAPAU_IWmiObject@@@Z
; private: long __thiscall CWbemObjectArrayPacket::GetClasslessInstanceObject(class CWbemObjectPacket &,struct IWbemClassObject * *,class CWbemClassCache &)
?GetClasslessInstanceObject@CWbemObjectArrayPacket@@AAEJAAVCWbemObjectPacket@@PAPAUIWbemClassObject@@AAVCWbemClassCache@@@Z
; public: virtual unsigned long __thiscall CClassAndMethods::GetCurrentOrigin(void)
?GetCurrentOrigin@CClassAndMethods@@UAEKXZ
; public: virtual unsigned long __thiscall CClassPart::GetCurrentOrigin(void)
?GetCurrentOrigin@CClassPart@@UAEKXZ
; public: unsigned long __thiscall CWbemClass::GetCurrentOrigin(void)
?GetCurrentOrigin@CWbemClass@@QAEKXZ
; public: unsigned long __thiscall CDataTable::GetDataLength(void)
?GetDataLength@CDataTable@@QAEKXZ
; public: virtual class CDataTable * __thiscall CClassPart::GetDataTable(void)
?GetDataTable@CClassPart@@UAEPAVCDataTable@@XZ
; public: class CDataTable * __thiscall CInstancePart::GetDataTable(void)
?GetDataTable@CInstancePart@@QAEPAVCDataTable@@XZ
; public: static unsigned char * __stdcall CInstancePart::GetDataTableData(unsigned char *)
?GetDataTableData@CInstancePart@@SGPAEPAE@Z
; public: long __thiscall CClassPart::GetDefaultByHandle(long,long,long *,unsigned char *)
?GetDefaultByHandle@CClassPart@@QAEJJJPAJPAE@Z
; public: long __thiscall CClassPart::GetDefaultPtrByHandle(long,void * *)
?GetDefaultPtrByHandle@CClassPart@@QAEJJPAPAX@Z
; public: long __thiscall CClassPart::GetDefaultValue(class CPropertyInformation *,class CVar *)
?GetDefaultValue@CClassPart@@QAEJPAVCPropertyInformation@@PAVCVar@@@Z
; public: long __thiscall CClassPart::GetDefaultValue(unsigned short const *,class CVar *)
?GetDefaultValue@CClassPart@@QAEJPBGPAVCVar@@@Z
; public: long __thiscall CClassPart::GetDerivation(class CVar *)
?GetDerivation@CClassPart@@QAEJPAVCVar@@@Z
; public: long __thiscall CWbemObject::GetDerivation(class CVar *)
?GetDerivation@CWbemObject@@QAEJPAVCVar@@@Z
; public: virtual long __stdcall CWbemObject::GetDerivation(long,unsigned long,unsigned long *,unsigned long *,unsigned short *)
?GetDerivation@CWbemObject@@UAGJJKPAK0PAG@Z
; public: virtual long __stdcall CWbemObject::GetDescription(unsigned short * *)
?GetDescription@CWbemObject@@UAGJPAPAG@Z
; public: long __thiscall CClassPart::GetDynasty(class CVar *)
?GetDynasty@CClassPart@@QAEJPAVCVar@@@Z
; public: class CCompressedString * __thiscall CClassPart::GetDynasty(void)
?GetDynasty@CClassPart@@QAEPAVCCompressedString@@XZ
; public: virtual long __thiscall CWbemClass::GetDynasty(class CVar *)
?GetDynasty@CWbemClass@@UAEJPAVCVar@@@Z
; public: virtual long __thiscall CWbemInstance::GetDynasty(class CVar *)
?GetDynasty@CWbemInstance@@UAEJPAVCVar@@@Z
; public: unsigned char * __thiscall CUntypedArray::GetElement(int,int)
?GetElement@CUntypedArray@@QAEPAEHH@Z
; public: class CWbemObject * __thiscall CEmbeddedObject::GetEmbedded(void)
?GetEmbedded@CEmbeddedObject@@QAEPAVCWbemObject@@XZ
; public: class CWbemObject * __thiscall CWbemObject::GetEmbeddedObj(long)
?GetEmbeddedObj@CWbemObject@@QAEPAV1@J@Z
; public: class CCompressedString * __thiscall CCompressedStringList::GetFirst(void)
?GetFirst@CCompressedStringList@@QAEPAVCCompressedString@@XZ
; public: struct CQualifier * __thiscall CBasicQualifierSet::GetFirstQualifier(void)
?GetFirstQualifier@CBasicQualifierSet@@QAEPAUCQualifier@@XZ
; public: static struct CQualifier * __stdcall CBasicQualifierSet::GetFirstQualifierFromData(unsigned char *)
?GetFirstQualifierFromData@CBasicQualifierSet@@SGPAUCQualifier@@PAE@Z
; public: long __thiscall CLimitationMapping::GetFlags(void)
?GetFlags@CLimitationMapping@@QAEJXZ
; public: unsigned short * __thiscall CWbemObject::GetFullPath(void)
?GetFullPath@CWbemObject@@QAEPAGXZ
; public: virtual long __stdcall CWbemObject::GetGUID(struct _GUID *)
?GetGUID@CWbemObject@@UAGJPAU_GUID@@@Z
; public: virtual long __thiscall CWbemClass::GetGenus(class CVar *)
?GetGenus@CWbemClass@@UAEJPAVCVar@@@Z
; public: virtual long __thiscall CWbemInstance::GetGenus(class CVar *)
?GetGenus@CWbemInstance@@UAEJPAVCVar@@@Z
; public: virtual long __stdcall CWbemRemoteRefresher::XWbemRemoteRefr::GetGuid(long,struct _GUID *)
?GetGuid@XWbemRemoteRefr@CWbemRemoteRefresher@@UAGJJPAU_GUID@@@Z
; public: virtual long __stdcall CWbemThreadSecurityHandle::GetHandleType(unsigned long *)
?GetHandleType@CWbemThreadSecurityHandle@@UAGJPAK@Z
; public: static unsigned long __stdcall CCompressedStringList::GetHeaderLength(void)
?GetHeaderLength@CCompressedStringList@@SGKXZ
; protected: unsigned long __thiscall CFastHeap::GetHeaderLength(void)
?GetHeaderLength@CFastHeap@@IAEKXZ
; public: static int __stdcall CQualifierSetList::GetHeaderLength(void)
?GetHeaderLength@CQualifierSetList@@SGHXZ
; public: static unsigned long __stdcall CUntypedArray::GetHeaderLength(void)
?GetHeaderLength@CUntypedArray@@SGKXZ
; public: class CFastHeap * __thiscall CBasicQualifierSet::GetHeap(void)
?GetHeap@CBasicQualifierSet@@QAEPAVCFastHeap@@XZ
; public: virtual class CFastHeap * __thiscall CClassPart::GetHeap(void)
?GetHeap@CClassPart@@UAEPAVCFastHeap@@XZ
; public: virtual class CFastHeap * __thiscall CInstancePQSContainer::GetHeap(void)
?GetHeap@CInstancePQSContainer@@UAEPAVCFastHeap@@XZ
; public: virtual class CFastHeap * __thiscall CInstancePart::GetHeap(void)
?GetHeap@CInstancePart@@UAEPAVCFastHeap@@XZ
; public: class CFastHeap * __thiscall CMethodPart::GetHeap(void)
?GetHeap@CMethodPart@@QAEPAVCFastHeap@@XZ
; public: virtual class CFastHeap * __thiscall CMethodQualifierSetContainer::GetHeap(void)
?GetHeap@CMethodQualifierSetContainer@@UAEPAVCFastHeap@@XZ
; public: class CFastHeap * __thiscall CPropertyLookupTable::GetHeap(void)
?GetHeap@CPropertyLookupTable@@QAEPAVCFastHeap@@XZ
; public: class CFastHeap * __thiscall CQualifierSetList::GetHeap(void)
?GetHeap@CQualifierSetList@@QAEPAVCFastHeap@@XZ
; public: unsigned char * __thiscall CFastHeap::GetHeapData(void)
?GetHeapData@CFastHeap@@QAEPAEXZ
; public: unsigned long __thiscall CClassPart::GetHeapPtrByHandle(long)
?GetHeapPtrByHandle@CClassPart@@QAEKJ@Z
; public: unsigned long __thiscall CWbemObject::GetHeapPtrByHandle(long)
?GetHeapPtrByHandle@CWbemObject@@QAEKJ@Z
; public: virtual long __stdcall CWbemObject::GetHelpContext(unsigned long *)
?GetHelpContext@CWbemObject@@UAGJPAK@Z
; public: virtual long __stdcall CWbemObject::GetHelpFile(unsigned short * *)
?GetHelpFile@CWbemObject@@UAGJPAPAG@Z
; public: unsigned short * __thiscall CWbemThreadSecurityHandle::GetIdentity(void)
?GetIdentity@CWbemThreadSecurityHandle@@QAEPAGXZ
; public: long __thiscall CWbemClass::GetIds(class CFlexArray &,class CWbemClass *)
?GetIds@CWbemClass@@QAEJAAVCFlexArray@@PAV1@@Z
; public: virtual long __stdcall CWbemCallSecurity::GetImpersonation(unsigned long *)
?GetImpersonation@CWbemCallSecurity@@UAGJPAK@Z
; public: virtual long __stdcall CWbemThreadSecurityHandle::GetImpersonation(unsigned long *)
?GetImpersonation@CWbemThreadSecurityHandle@@UAGJPAK@Z
; public: unsigned long __thiscall CWbemThreadSecurityHandle::GetImpersonationLevel(void)
?GetImpersonationLevel@CWbemThreadSecurityHandle@@QAEKXZ
; protected: unsigned long * __thiscall CFastHeap::GetInLineLength(void)
?GetInLineLength@CFastHeap@@IAEPAKXZ
; public: static int __stdcall CFastHeap::GetIndexFromFake(unsigned long)
?GetIndexFromFake@CFastHeap@@SGHK@Z
; public: static int __stdcall CKnownStringTable::GetIndexOfKey(void)
?GetIndexOfKey@CKnownStringTable@@SGHXZ
; public: static int __stdcall CClassAndMethods::GetIndexedProps(class CWStringArray &,unsigned char *)
?GetIndexedProps@CClassAndMethods@@SGHAAVCWStringArray@@PAE@Z
; public: int __thiscall CClassPart::GetIndexedProps(class CWStringArray &)
?GetIndexedProps@CClassPart@@QAEHAAVCWStringArray@@@Z
; public: virtual int __thiscall CWbemClass::GetIndexedProps(class CWStringArray &)
?GetIndexedProps@CWbemClass@@UAEHAAVCWStringArray@@@Z
; public: virtual int __thiscall CWbemInstance::GetIndexedProps(class CWStringArray &)
?GetIndexedProps@CWbemInstance@@UAEHAAVCWStringArray@@@Z
; private: long __thiscall CWbemObjectArrayPacket::GetInstanceObject(class CWbemObjectPacket &,struct IWbemClassObject * *,class CWbemClassCache &)
?GetInstanceObject@CWbemObjectArrayPacket@@AAEJAAVCWbemObjectPacket@@PAPAUIWbemClassObject@@AAVCWbemClassCache@@@Z
; public: virtual struct IUnknown * __thiscall CWbemInstance::GetInstanceObjectUnknown(void)
?GetInstanceObjectUnknown@CWbemInstance@@UAEPAUIUnknown@@XZ
; protected: virtual void * __thiscall CWbemEnumMarshaling::GetInterface(struct _GUID const &)
?GetInterface@CWbemEnumMarshaling@@MAEPAXABU_GUID@@@Z
; protected: virtual void * __thiscall CWbemFetchRefrMgr::GetInterface(struct _GUID const &)
?GetInterface@CWbemFetchRefrMgr@@MAEPAXABU_GUID@@@Z
; protected: virtual void * __thiscall CWbemRefreshingSvc::GetInterface(struct _GUID const &)
?GetInterface@CWbemRefreshingSvc@@MAEPAXABU_GUID@@@Z
; protected: virtual void * __thiscall CWmiObjectFactory::GetInterface(struct _GUID const &)
?GetInterface@CWmiObjectFactory@@MAEPAXABU_GUID@@@Z
; public: class CVar * __thiscall CWbemInstance::GetKey(void)
?GetKey@CWbemInstance@@QAEPAVCVar@@XZ
; public: long __thiscall CClassPart::GetKeyOrigin(class WString &)
?GetKeyOrigin@CClassPart@@QAEJAAVWString@@@Z
; public: virtual long __thiscall CWbemClass::GetKeyOrigin(class WString &)
?GetKeyOrigin@CWbemClass@@UAEJAAVWString@@@Z
; public: virtual long __thiscall CWbemInstance::GetKeyOrigin(class WString &)
?GetKeyOrigin@CWbemInstance@@UAEJAAVWString@@@Z
; public: virtual long __stdcall CWbemObject::GetKeyOrigin(long,unsigned long,unsigned long *,unsigned short *)
?GetKeyOrigin@CWbemObject@@UAGJJKPAKPAG@Z
; public: int __thiscall CClassPart::GetKeyProps(class CWStringArray &)
?GetKeyProps@CClassPart@@QAEHAAVCWStringArray@@@Z
; public: virtual int __thiscall CWbemClass::GetKeyProps(class CWStringArray &)
?GetKeyProps@CWbemClass@@UAEHAAVCWStringArray@@@Z
; public: virtual int __thiscall CWbemInstance::GetKeyProps(class CWStringArray &)
?GetKeyProps@CWbemInstance@@UAEHAAVCWStringArray@@@Z
; public: unsigned short * __thiscall CWbemInstance::GetKeyStr(void)
?GetKeyStr@CWbemInstance@@QAEPAGXZ
; public: virtual long __stdcall CWbemObject::GetKeyString(long,unsigned short * *)
?GetKeyString@CWbemObject@@UAGJJPAPAG@Z
; public: struct CQualifier * __thiscall CBasicQualifierSet::GetKnownQualifierLocally(int)
?GetKnownQualifierLocally@CBasicQualifierSet@@QAEPAUCQualifier@@H@Z
; public: static struct CQualifier * __stdcall CBasicQualifierSet::GetKnownQualifierLocally(unsigned char *,int)
?GetKnownQualifierLocally@CBasicQualifierSet@@SGPAUCQualifier@@PAEH@Z
; public: static class CCompressedString & __stdcall CKnownStringTable::GetKnownString(int)
?GetKnownString@CKnownStringTable@@SGAAVCCompressedString@@H@Z
; public: static int __stdcall CKnownStringTable::GetKnownStringIndex(unsigned short const *)
?GetKnownStringIndex@CKnownStringTable@@SGHPBG@Z
; public: class CCompressedString * __thiscall CCompressedStringList::GetLast(void)
?GetLast@CCompressedStringList@@QAEPAVCCompressedString@@XZ
; public: unsigned long __thiscall CBasicQualifierSet::GetLength(void)
?GetLength@CBasicQualifierSet@@QAEKXZ
; public: unsigned long __thiscall CClassAndMethods::GetLength(void)
?GetLength@CClassAndMethods@@QAEKXZ
; public: unsigned long __thiscall CClassPart::GetLength(void)
?GetLength@CClassPart@@QAEKXZ
; public: int __thiscall CCompressedString::GetLength(void)const 
?GetLength@CCompressedString@@QBEHXZ
; public: unsigned long __thiscall CCompressedStringList::GetLength(void)
?GetLength@CCompressedStringList@@QAEKXZ
; public: unsigned long __thiscall CDataTable::GetLength(void)
?GetLength@CDataTable@@QAEKXZ
; public: unsigned long __thiscall CDecorationPart::GetLength(void)
?GetLength@CDecorationPart@@QAEKXZ
; public: unsigned long __thiscall CEmbeddedObject::GetLength(void)
?GetLength@CEmbeddedObject@@QAEKXZ
; public: unsigned long __thiscall CFastHeap::GetLength(void)
?GetLength@CFastHeap@@QAEKXZ
; public: int __thiscall CFixedBSTRArray::GetLength(void)
?GetLength@CFixedBSTRArray@@QAEHXZ
; public: int __thiscall CInstancePart::GetLength(void)
?GetLength@CInstancePart@@QAEHXZ
; public: static int __stdcall CInstancePart::GetLength(unsigned char *)
?GetLength@CInstancePart@@SGHPAE@Z
; public: int __thiscall CInternalString::GetLength(void)const 
?GetLength@CInternalString@@QBEHXZ
; public: unsigned long __thiscall CMethodPart::GetLength(void)
?GetLength@CMethodPart@@QAEKXZ
; public: int __thiscall CPropertyLookupTable::GetLength(void)
?GetLength@CPropertyLookupTable@@QAEHXZ
; public: int __thiscall CQualifierSetList::GetLength(void)
?GetLength@CQualifierSetList@@QAEHXZ
; public: static int __stdcall CQualifierSetList::GetLength(unsigned char *,int)
?GetLength@CQualifierSetList@@SGHPAEH@Z
; public: unsigned long __thiscall CType::GetLength(void)
?GetLength@CType@@QAEKXZ
; public: static unsigned long __stdcall CType::GetLength(unsigned long)
?GetLength@CType@@SGKK@Z
; public: unsigned long __thiscall CWbemClass::GetLength(void)
?GetLength@CWbemClass@@QAEKXZ
; public: unsigned long __thiscall CWbemInstance::GetLength(void)
?GetLength@CWbemInstance@@QAEKXZ
; public: unsigned long __thiscall CUntypedArray::GetLengthByActualLength(int)
?GetLengthByActualLength@CUntypedArray@@QAEKH@Z
; public: unsigned long __thiscall CUntypedArray::GetLengthByType(class CType)
?GetLengthByType@CUntypedArray@@QAEKVCType@@@Z
; public: static unsigned long __stdcall CBasicQualifierSet::GetLengthFromData(unsigned char *)
?GetLengthFromData@CBasicQualifierSet@@SGKPAE@Z
; public: long __thiscall CWbemClass::GetLimitedVersion(class CLimitationMapping *,class CWbemClass * *)
?GetLimitedVersion@CWbemClass@@QAEJPAVCLimitationMapping@@PAPAV1@@Z
; public: long __thiscall CWbemInstance::GetLimitedVersion(class CLimitationMapping *,class CWbemInstance * *)
?GetLimitedVersion@CWbemInstance@@QAEJPAVCLimitationMapping@@PAPAV1@@Z
; public: long __thiscall CWbemGuidToClassMap::GetMap(class CGUID &,class CWbemClassToIdMap * *)
?GetMap@CWbemGuidToClassMap@@QAEJAAVCGUID@@PAPAVCWbemClassToIdMap@@@Z
; public: unsigned short __thiscall CLimitationMapping::GetMapped(unsigned short)
?GetMapped@CLimitationMapping@@QAEGG@Z
; public: class CPropertyInformation * __thiscall CLimitationMapping::GetMapped(class CPropertyInformation *)
?GetMapped@CLimitationMapping@@QAEPAVCPropertyInformation@@PAV2@@Z
; public: long __thiscall CWbemEnumMarshaling::GetMarshalPacket(struct _GUID const &,unsigned long,struct IWbemClassObject * *,unsigned long *,unsigned char * *)
?GetMarshalPacket@CWbemEnumMarshaling@@QAEJABU_GUID@@KPAPAUIWbemClassObject@@PAKPAPAE@Z
; public: virtual long __stdcall CWbemEnumMarshaling::XEnumMarshaling::GetMarshalPacket(struct _GUID const &,unsigned long,struct IWbemClassObject * *,unsigned long *,unsigned char * *)
?GetMarshalPacket@XEnumMarshaling@CWbemEnumMarshaling@@UAGJABU_GUID@@KPAPAUIWbemClassObject@@PAKPAPAE@Z
; public: virtual long __stdcall CWbemObject::GetMarshalSizeMax(struct _GUID const &,void *,unsigned long,void *,unsigned long,unsigned long *)
?GetMarshalSizeMax@CWbemObject@@UAGJABU_GUID@@PAXK1KPAK@Z
; public: virtual long __thiscall CWbemInstance::GetMaxMarshalStreamSize(unsigned long *)
?GetMaxMarshalStreamSize@CWbemInstance@@UAEJPAK@Z
; public: virtual long __thiscall CWbemObject::GetMaxMarshalStreamSize(unsigned long *)
?GetMaxMarshalStreamSize@CWbemObject@@UAEJPAK@Z
; public: virtual unsigned char * __thiscall CClassPart::GetMemoryLimit(void)
?GetMemoryLimit@CClassPart@@UAEPAEXZ
; public: virtual unsigned char * __thiscall CInstancePart::GetMemoryLimit(void)
?GetMemoryLimit@CInstancePart@@UAEPAEXZ
; public: virtual unsigned char * __thiscall CMethodPart::GetMemoryLimit(void)
?GetMemoryLimit@CMethodPart@@UAEPAEXZ
; public: long __thiscall CMethodPart::GetMethod(unsigned short const *,long,class CWbemObject * *,class CWbemObject * *)
?GetMethod@CMethodPart@@QAEJPBGJPAPAVCWbemObject@@1@Z
; public: virtual long __stdcall CWbemClass::GetMethod(unsigned short const *,long,struct IWbemClassObject * *,struct IWbemClassObject * *)
?GetMethod@CWbemClass@@UAGJPBGJPAPAUIWbemClassObject@@1@Z
; public: virtual long __stdcall CWbemInstance::GetMethod(unsigned short const *,long,struct IWbemClassObject * *,struct IWbemClassObject * *)
?GetMethod@CWbemInstance@@UAGJPBGJPAPAUIWbemClassObject@@1@Z
; public: long __thiscall CMethodPart::GetMethodAt(int,unsigned short * *,class CWbemObject * *,class CWbemObject * *)
?GetMethodAt@CMethodPart@@QAEJHPAPAGPAPAVCWbemObject@@1@Z
; public: long __thiscall CMethodPart::GetMethodOrigin(unsigned short const *,unsigned long *)
?GetMethodOrigin@CMethodPart@@QAEJPBGPAK@Z
; public: virtual long __stdcall CWbemClass::GetMethodOrigin(unsigned short const *,unsigned short * *)
?GetMethodOrigin@CWbemClass@@UAGJPBGPAPAG@Z
; public: virtual long __stdcall CWbemInstance::GetMethodOrigin(unsigned short const *,unsigned short * *)
?GetMethodOrigin@CWbemInstance@@UAGJPBGPAPAG@Z
; public: virtual long __stdcall CWbemObject::GetMethodQual(unsigned short const *,unsigned short const *,long,unsigned long,long *,unsigned long *,unsigned long *,void *)
?GetMethodQual@CWbemObject@@UAGJPBG0JKPAJPAK2PAX@Z
; public: virtual long __thiscall CWbemClass::GetMethodQualifier(unsigned short const *,unsigned short const *,long *,class CTypedValue *,class CFastHeap * *,int)
?GetMethodQualifier@CWbemClass@@UAEJPBG0PAJPAVCTypedValue@@PAPAVCFastHeap@@H@Z
; public: virtual long __thiscall CWbemClass::GetMethodQualifier(unsigned short const *,unsigned short const *,class CVar *,long *,long *)
?GetMethodQualifier@CWbemClass@@UAEJPBG0PAVCVar@@PAJ2@Z
; public: virtual long __thiscall CWbemInstance::GetMethodQualifier(unsigned short const *,unsigned short const *,long *,class CTypedValue *,class CFastHeap * *,int)
?GetMethodQualifier@CWbemInstance@@UAEJPBG0PAJPAVCTypedValue@@PAPAVCFastHeap@@H@Z
; public: virtual long __thiscall CWbemInstance::GetMethodQualifier(unsigned short const *,unsigned short const *,class CVar *,long *,long *)
?GetMethodQualifier@CWbemInstance@@UAEJPBG0PAVCVar@@PAJ2@Z
; public: long __thiscall CMethodPart::GetMethodQualifierSet(unsigned short const *,struct IWbemQualifierSet * *)
?GetMethodQualifierSet@CMethodPart@@QAEJPBGPAPAUIWbemQualifierSet@@@Z
; public: virtual long __stdcall CWbemClass::GetMethodQualifierSet(unsigned short const *,struct IWbemQualifierSet * *)
?GetMethodQualifierSet@CWbemClass@@UAGJPBGPAPAUIWbemQualifierSet@@@Z
; public: virtual long __stdcall CWbemInstance::GetMethodQualifierSet(unsigned short const *,struct IWbemQualifierSet * *)
?GetMethodQualifierSet@CWbemInstance@@UAGJPBGPAPAUIWbemQualifierSet@@@Z
; public: unsigned long __thiscall CWbemDataPacket::GetMinHeaderSize(void)
?GetMinHeaderSize@CWbemDataPacket@@QAEKXZ
; public: static unsigned long __stdcall CBasicQualifierSet::GetMinLength(void)
?GetMinLength@CBasicQualifierSet@@SGKXZ
; public: static unsigned long __stdcall CClassAndMethods::GetMinLength(void)
?GetMinLength@CClassAndMethods@@SGKXZ
; public: static int __stdcall CClassPart::GetMinLength(void)
?GetMinLength@CClassPart@@SGHXZ
; public: static unsigned long __stdcall CDataTable::GetMinLength(void)
?GetMinLength@CDataTable@@SGKXZ
; public: static unsigned long __stdcall CDecorationPart::GetMinLength(void)
?GetMinLength@CDecorationPart@@SGKXZ
; public: static unsigned long __stdcall CFastHeap::GetMinLength(void)
?GetMinLength@CFastHeap@@SGKXZ
; public: static unsigned long __stdcall CMethodPart::GetMinLength(void)
?GetMinLength@CMethodPart@@SGKXZ
; public: static unsigned long __stdcall CPropertyLookupTable::GetMinLength(void)
?GetMinLength@CPropertyLookupTable@@SGKXZ
; public: static unsigned long __stdcall CWbemClass::GetMinLength(void)
?GetMinLength@CWbemClass@@SGKXZ
; protected: class CCompressedString * __thiscall CMethodPart::GetName(int)
?GetName@CMethodPart@@IAEPAVCCompressedString@@H@Z
; public: static unsigned short * __stdcall CSystemProperties::GetNameAsBSTR(int)
?GetNameAsBSTR@CSystemProperties@@SGPAGH@Z
; public: virtual long __stdcall CQualifierSet::GetNames(long,struct tagSAFEARRAY * *)
?GetNames@CQualifierSet@@UAGJJPAPAUtagSAFEARRAY@@@Z
; public: virtual long __stdcall CWbemObject::GetNames(unsigned short const *,long,struct tagVARIANT *,struct tagSAFEARRAY * *)
?GetNames@CWbemObject@@UAGJPBGJPAUtagVARIANT@@PAPAUtagSAFEARRAY@@@Z
; public: long __thiscall CWbemObject::GetNamespace(class CVar *)
?GetNamespace@CWbemObject@@QAEJPAVCVar@@@Z
; public: class CCompressedString * __thiscall CCompressedStringList::GetNext(class CCompressedString *)
?GetNext@CCompressedStringList@@QAEPAVCCompressedString@@PAV2@@Z
; public: long __thiscall CWbemInstance::GetNonsystemPropertyValue(unsigned short const *,class CVar *)
?GetNonsystemPropertyValue@CWbemInstance@@QAEJPBGPAVCVar@@@Z
; public: virtual long __stdcall CWbemObject::GetNormalizedPath(long,unsigned short * *)
?GetNormalizedPath@CWbemObject@@UAGJJPAPAG@Z
; public: unsigned long __thiscall CDataTable::GetNullnessLength(void)
?GetNullnessLength@CDataTable@@QAEKXZ
; public: static int __stdcall CSystemProperties::GetNumDecorationIndependentProperties(void)
?GetNumDecorationIndependentProperties@CSystemProperties@@SGHXZ
; public: int __thiscall CUntypedArray::GetNumElements(void)
?GetNumElements@CUntypedArray@@QAEHXZ
; public: int __thiscall CLimitationMapping::GetNumMappings(void)
?GetNumMappings@CLimitationMapping@@QAEHXZ
; protected: int __thiscall CMethodPart::GetNumMethods(void)
?GetNumMethods@CMethodPart@@IAEHXZ
; public: int __thiscall CWbemObject::GetNumParents(void)
?GetNumParents@CWbemObject@@QAEHXZ
; public: int __thiscall CPropertyLookupTable::GetNumProperties(void)
?GetNumProperties@CPropertyLookupTable@@QAEHXZ
; public: virtual int __thiscall CWbemClass::GetNumProperties(void)
?GetNumProperties@CWbemClass@@UAEHXZ
; public: virtual int __thiscall CWbemInstance::GetNumProperties(void)
?GetNumProperties@CWbemInstance@@UAEHXZ
; public: int __thiscall CQualifierSetList::GetNumSets(void)
?GetNumSets@CQualifierSetList@@QAEHXZ
; public: int __thiscall CCompressedStringList::GetNumStrings(void)
?GetNumStrings@CCompressedStringList@@QAEHXZ
; public: static int __stdcall CSystemProperties::GetNumSystemProperties(void)
?GetNumSystemProperties@CSystemProperties@@SGHXZ
; public: int __thiscall CBasicQualifierSet::GetNumUpperBound(void)
?GetNumUpperBound@CBasicQualifierSet@@QAEHXZ
; public: virtual long __stdcall CWbemObject::GetObjQual(unsigned short const *,long,unsigned long,long *,unsigned long *,unsigned long *,void *)
?GetObjQual@CWbemObject@@UAGJPBGJKPAJPAK2PAX@Z
; public: virtual long __stdcall CWbemObject::GetObjectMemory(void *,unsigned long,unsigned long *)
?GetObjectMemory@CWbemObject@@UAGJPAXKPAK@Z
; public: virtual long __stdcall CWbemClass::GetObjectParts(void *,unsigned long,unsigned long,unsigned long *)
?GetObjectParts@CWbemClass@@UAGJPAXKKPAK@Z
; public: virtual long __stdcall CWbemInstance::GetObjectParts(void *,unsigned long,unsigned long,unsigned long *)
?GetObjectParts@CWbemInstance@@UAGJPAXKKPAK@Z
; public: long __thiscall CInstancePart::GetObjectQualifier(unsigned short const *,class CVar *,long *)
?GetObjectQualifier@CInstancePart@@QAEJPBGPAVCVar@@PAJ@Z
; public: virtual long __stdcall CWbemClass::GetObjectText(long,unsigned short * *)
?GetObjectText@CWbemClass@@UAGJJPAPAG@Z
; public: virtual long __stdcall CWbemInstance::GetObjectText(long,unsigned short * *)
?GetObjectText@CWbemInstance@@UAGJJPAPAG@Z
; public: long __thiscall CWbemClassCache::GetObjectW(struct _GUID &,struct IWbemClassObject * *)
?GetObjectW@CWbemClassCache@@QAEJAAU_GUID@@PAPAUIWbemClassObject@@@Z
; public: class CUntypedValue * __thiscall CDataTable::GetOffset(unsigned long)
?GetOffset@CDataTable@@QAEPAVCUntypedValue@@K@Z
; public: class CCompressedString * __thiscall CWbemObject::GetParentAtIndex(int)
?GetParentAtIndex@CWbemObject@@QAEPAVCCompressedString@@H@Z
; public: virtual long __stdcall CWbemClass::GetParentClassFromBlob(long,unsigned long,void *,unsigned short * *)
?GetParentClassFromBlob@CWbemClass@@UAGJJKPAXPAPAG@Z
; public: virtual long __stdcall CWbemObject::GetParentClassFromBlob(long,unsigned long,void *,unsigned short * *)
?GetParentClassFromBlob@CWbemObject@@UAGJJKPAXPAPAG@Z
; public: long __thiscall CWbemObject::GetPath(class CVar *)
?GetPath@CWbemObject@@QAEJPAVCVar@@@Z
; public: static class CUntypedArray * __stdcall CUntypedArray::GetPointer(class CPtrSource *)
?GetPointer@CUntypedArray@@SGPAV1@PAVCPtrSource@@@Z
; public: class CCompressedString * __thiscall CCompressedStringList::GetPrevious(class CCompressedString *)
?GetPrevious@CCompressedStringList@@QAEPAVCCompressedString@@PAV2@@Z
; public: virtual long __stdcall CWbemObject::GetPropAddrByHandle(long,long,unsigned long *,void * *)
?GetPropAddrByHandle@CWbemObject@@UAGJJJPAKPAPAX@Z
; public: virtual long __thiscall CWbemClass::GetPropName(int,class CVar *)
?GetPropName@CWbemClass@@UAEJHPAVCVar@@@Z
; public: virtual long __thiscall CWbemInstance::GetPropName(int,class CVar *)
?GetPropName@CWbemInstance@@UAEJHPAVCVar@@@Z
; public: virtual long __stdcall CWbemObject::GetPropQual(unsigned short const *,unsigned short const *,long,unsigned long,long *,unsigned long *,unsigned long *,void *)
?GetPropQual@CWbemObject@@UAGJPBG0JKPAJPAK2PAX@Z
; public: long __thiscall CClassPart::GetPropQualifier(class CPropertyInformation *,unsigned short const *,class CVar *,long *,long *)
?GetPropQualifier@CClassPart@@QAEJPAVCPropertyInformation@@PBGPAVCVar@@PAJ3@Z
; public: long __thiscall CClassPart::GetPropQualifier(unsigned short const *,unsigned short const *,long *,class CTypedValue *,class CFastHeap * *,int)
?GetPropQualifier@CClassPart@@QAEJPBG0PAJPAVCTypedValue@@PAPAVCFastHeap@@H@Z
; public: virtual long __thiscall CWbemClass::GetPropQualifier(class CPropertyInformation *,unsigned short const *,long *,class CTypedValue *,class CFastHeap * *,int)
?GetPropQualifier@CWbemClass@@UAEJPAVCPropertyInformation@@PBGPAJPAVCTypedValue@@PAPAVCFastHeap@@H@Z
; public: virtual long __thiscall CWbemClass::GetPropQualifier(class CPropertyInformation *,unsigned short const *,class CVar *,long *,long *)
?GetPropQualifier@CWbemClass@@UAEJPAVCPropertyInformation@@PBGPAVCVar@@PAJ3@Z
; public: virtual long __thiscall CWbemClass::GetPropQualifier(unsigned short const *,unsigned short const *,long *,class CTypedValue *,class CFastHeap * *,int)
?GetPropQualifier@CWbemClass@@UAEJPBG0PAJPAVCTypedValue@@PAPAVCFastHeap@@H@Z
; public: virtual long __thiscall CWbemClass::GetPropQualifier(unsigned short const *,unsigned short const *,class CVar *,long *,long *)
?GetPropQualifier@CWbemClass@@UAEJPBG0PAVCVar@@PAJ2@Z
; public: virtual long __thiscall CWbemInstance::GetPropQualifier(class CPropertyInformation *,unsigned short const *,long *,class CTypedValue *,class CFastHeap * *,int)
?GetPropQualifier@CWbemInstance@@UAEJPAVCPropertyInformation@@PBGPAJPAVCTypedValue@@PAPAVCFastHeap@@H@Z
; public: virtual long __thiscall CWbemInstance::GetPropQualifier(class CPropertyInformation *,unsigned short const *,class CVar *,long *,long *)
?GetPropQualifier@CWbemInstance@@UAEJPAVCPropertyInformation@@PBGPAVCVar@@PAJ3@Z
; public: virtual long __thiscall CWbemInstance::GetPropQualifier(unsigned short const *,unsigned short const *,long *,class CTypedValue *,class CFastHeap * *,int)
?GetPropQualifier@CWbemInstance@@UAEJPBG0PAJPAVCTypedValue@@PAPAVCFastHeap@@H@Z
; public: virtual long __thiscall CWbemInstance::GetPropQualifier(unsigned short const *,unsigned short const *,class CVar *,long *,long *)
?GetPropQualifier@CWbemInstance@@UAEJPBG0PAVCVar@@PAJ2@Z
; protected: virtual long __thiscall CWbemClass::GetProperty(class CPropertyInformation *,class CVar *)
?GetProperty@CWbemClass@@MAEJPAVCPropertyInformation@@PAVCVar@@@Z
; public: virtual long __thiscall CWbemClass::GetProperty(unsigned short const *,class CVar *)
?GetProperty@CWbemClass@@UAEJPBGPAVCVar@@@Z
; protected: virtual long __thiscall CWbemInstance::GetProperty(class CPropertyInformation *,class CVar *)
?GetProperty@CWbemInstance@@MAEJPAVCPropertyInformation@@PAVCVar@@@Z
; public: virtual long __thiscall CWbemInstance::GetProperty(unsigned short const *,class CVar *)
?GetProperty@CWbemInstance@@UAEJPBGPAVCVar@@@Z
; public: long __thiscall CClassPart::GetPropertyCount(class CVar *)
?GetPropertyCount@CClassPart@@QAEJPAVCVar@@@Z
; public: virtual long __thiscall CWbemClass::GetPropertyCount(class CVar *)
?GetPropertyCount@CWbemClass@@UAEJPAVCVar@@@Z
; public: virtual long __thiscall CWbemInstance::GetPropertyCount(class CVar *)
?GetPropertyCount@CWbemInstance@@UAEJPAVCVar@@@Z
; public: long __thiscall CClassPart::GetPropertyHandle(unsigned short const *,long *,long *)
?GetPropertyHandle@CClassPart@@QAEJPBGPAJ1@Z
; public: virtual long __stdcall CWbemObject::GetPropertyHandle(unsigned short const *,long *,long *)
?GetPropertyHandle@CWbemObject@@UAGJPBGPAJ1@Z
; public: long __thiscall CClassPart::GetPropertyHandleEx(unsigned short const *,long *,long *)
?GetPropertyHandleEx@CClassPart@@QAEJPBGPAJ1@Z
; public: virtual long __stdcall CWbemObject::GetPropertyHandleEx(unsigned short const *,long,long *,long *)
?GetPropertyHandleEx@CWbemObject@@UAGJPBGJPAJ1@Z
; public: long __thiscall CWbemObject::GetPropertyIndex(unsigned short const *,int *)
?GetPropertyIndex@CWbemObject@@QAEJPBGPAH@Z
; public: long __thiscall CClassPart::GetPropertyInfoByHandle(long,unsigned short * *,long *)
?GetPropertyInfoByHandle@CClassPart@@QAEJJPAPAGPAJ@Z
; public: virtual long __stdcall CWbemObject::GetPropertyInfoByHandle(long,unsigned short * *,long *)
?GetPropertyInfoByHandle@CWbemObject@@UAGJJPAPAGPAJ@Z
; public: struct CPropertyLookup * __thiscall CClassPart::GetPropertyLookup(int)
?GetPropertyLookup@CClassPart@@QAEPAUCPropertyLookup@@H@Z
; public: long __thiscall CWbemObject::GetPropertyNameFromIndex(int,unsigned short * *)
?GetPropertyNameFromIndex@CWbemObject@@QAEJHPAPAG@Z
; public: long __thiscall CClassPart::GetPropertyOrigin(unsigned short const *,unsigned short * *)
?GetPropertyOrigin@CClassPart@@QAEJPBGPAPAG@Z
; public: virtual long __stdcall CWbemObject::GetPropertyOrigin(unsigned short const *,unsigned short * *)
?GetPropertyOrigin@CWbemObject@@UAGJPBGPAPAG@Z
; public: virtual long __stdcall CWbemClass::GetPropertyQualifierSet(unsigned short const *,struct IWbemQualifierSet * *)
?GetPropertyQualifierSet@CWbemClass@@UAGJPBGPAPAUIWbemQualifierSet@@@Z
; public: virtual long __stdcall CWbemInstance::GetPropertyQualifierSet(unsigned short const *,struct IWbemQualifierSet * *)
?GetPropertyQualifierSet@CWbemInstance@@UAGJPBGPAPAUIWbemQualifierSet@@@Z
; public: unsigned char * __thiscall CClassPart::GetPropertyQualifierSetData(unsigned short const *)
?GetPropertyQualifierSetData@CClassPart@@QAEPAEPBG@Z
; public: class CCompressedString * __thiscall CWbemObject::GetPropertyString(long)
?GetPropertyString@CWbemObject@@QAEPAVCCompressedString@@J@Z
; public: long __thiscall CClassPart::GetPropertyType(class CPropertyInformation *,long *,long *)
?GetPropertyType@CClassPart@@QAEJPAVCPropertyInformation@@PAJ1@Z
; public: long __thiscall CClassPart::GetPropertyType(unsigned short const *,long *,long *)
?GetPropertyType@CClassPart@@QAEJPBGPAJ1@Z
; public: static long __stdcall CSystemProperties::GetPropertyType(unsigned short const *,long *,long *)
?GetPropertyType@CSystemProperties@@SGJPBGPAJ1@Z
; public: virtual long __thiscall CWbemClass::GetPropertyType(class CPropertyInformation *,long *,long *)
?GetPropertyType@CWbemClass@@UAEJPAVCPropertyInformation@@PAJ1@Z
; public: virtual long __thiscall CWbemClass::GetPropertyType(unsigned short const *,long *,long *)
?GetPropertyType@CWbemClass@@UAEJPBGPAJ1@Z
; public: virtual long __thiscall CWbemInstance::GetPropertyType(class CPropertyInformation *,long *,long *)
?GetPropertyType@CWbemInstance@@UAEJPAVCPropertyInformation@@PAJ1@Z
; public: virtual long __thiscall CWbemInstance::GetPropertyType(unsigned short const *,long *,long *)
?GetPropertyType@CWbemInstance@@UAEJPBGPAJ1@Z
; public: virtual long __stdcall CWbemObject::GetPropertyValue(struct _tag_WbemPropertyName *,long,unsigned short * *,struct tagVARIANT *)
?GetPropertyValue@CWbemObject@@UAGJPAU_tag_WbemPropertyName@@JPAPAGPAUtagVARIANT@@@Z
; public: long __thiscall CClassPart::GetQualifier(unsigned short const *,class CVar *,long *,long *)
?GetQualifier@CClassPart@@QAEJPBGPAVCVar@@PAJ2@Z
; public: long __thiscall CInstancePart::GetQualifier(unsigned short const *,long *,class CTypedValue *,class CFastHeap * *,int)
?GetQualifier@CInstancePart@@QAEJPBGPAJPAVCTypedValue@@PAPAVCFastHeap@@H@Z
; public: long __thiscall CInstancePart::GetQualifier(unsigned short const *,class CVar *,long *,long *)
?GetQualifier@CInstancePart@@QAEJPBGPAVCVar@@PAJ2@Z
; public: long __thiscall CQualifierSet::GetQualifier(unsigned short const *,long *,class CTypedValue *,class CFastHeap * *,int)
?GetQualifier@CQualifierSet@@QAEJPBGPAJPAVCTypedValue@@PAPAVCFastHeap@@H@Z
; public: long __thiscall CQualifierSet::GetQualifier(unsigned short const *,class CVar *,long *,long *)
?GetQualifier@CQualifierSet@@QAEJPBGPAVCVar@@PAJ2@Z
; public: struct CQualifier * __thiscall CQualifierSet::GetQualifier(unsigned short const *)
?GetQualifier@CQualifierSet@@QAEPAUCQualifier@@PBG@Z
; public: struct CQualifier * __thiscall CQualifierSet::GetQualifier(unsigned short const *,int &)
?GetQualifier@CQualifierSet@@QAEPAUCQualifier@@PBGAAH@Z
; public: virtual long __thiscall CWbemClass::GetQualifier(unsigned short const *,long *,class CTypedValue *,class CFastHeap * *,int)
?GetQualifier@CWbemClass@@UAEJPBGPAJPAVCTypedValue@@PAPAVCFastHeap@@H@Z
; public: virtual long __thiscall CWbemClass::GetQualifier(unsigned short const *,class CVar *,long *,long *)
?GetQualifier@CWbemClass@@UAEJPBGPAVCVar@@PAJ2@Z
; public: virtual long __thiscall CWbemInstance::GetQualifier(unsigned short const *,long *,class CTypedValue *,class CFastHeap * *,int)
?GetQualifier@CWbemInstance@@UAEJPBGPAJPAVCTypedValue@@PAPAVCFastHeap@@H@Z
; public: virtual long __thiscall CWbemInstance::GetQualifier(unsigned short const *,class CVar *,long *,long *)
?GetQualifier@CWbemInstance@@UAEJPBGPAVCVar@@PAJ2@Z
; public: long __thiscall CWbemObject::GetQualifierArrayInfo(unsigned short const *,unsigned short const *,int,long,long *,unsigned long *)
?GetQualifierArrayInfo@CWbemObject@@QAEJPBG0HJPAJPAK@Z
; public: long __thiscall CWbemObject::GetQualifierArrayRange(unsigned short const *,unsigned short const *,int,long,unsigned long,unsigned long,unsigned long,unsigned long *,unsigned long *,void *)
?GetQualifierArrayRange@CWbemObject@@QAEJPBG0HJKKKPAK1PAX@Z
; public: struct CQualifier * __thiscall CBasicQualifierSet::GetQualifierLocally(class CCompressedString *)
?GetQualifierLocally@CBasicQualifierSet@@QAEPAUCQualifier@@PAVCCompressedString@@@Z
; public: struct CQualifier * __thiscall CBasicQualifierSet::GetQualifierLocally(unsigned short const *)
?GetQualifierLocally@CBasicQualifierSet@@QAEPAUCQualifier@@PBG@Z
; public: struct CQualifier * __thiscall CBasicQualifierSet::GetQualifierLocally(unsigned short const *,int &)
?GetQualifierLocally@CBasicQualifierSet@@QAEPAUCQualifier@@PBGAAH@Z
; public: static struct CQualifier * __stdcall CBasicQualifierSet::GetQualifierLocally(unsigned char *,class CFastHeap *,class CCompressedString *)
?GetQualifierLocally@CBasicQualifierSet@@SGPAUCQualifier@@PAEPAVCFastHeap@@PAVCCompressedString@@@Z
; public: static struct CQualifier * __stdcall CBasicQualifierSet::GetQualifierLocally(unsigned char *,class CFastHeap *,unsigned short const *)
?GetQualifierLocally@CBasicQualifierSet@@SGPAUCQualifier@@PAEPAVCFastHeap@@PBG@Z
; public: static struct CQualifier * __stdcall CBasicQualifierSet::GetQualifierLocally(unsigned char *,class CFastHeap *,unsigned short const *,int &)
?GetQualifierLocally@CBasicQualifierSet@@SGPAUCQualifier@@PAEPAVCFastHeap@@PBGAAH@Z
; public: virtual long __stdcall CWbemClass::GetQualifierSet(struct IWbemQualifierSet * *)
?GetQualifierSet@CWbemClass@@UAGJPAPAUIWbemQualifierSet@@@Z
; public: virtual long __stdcall CWbemInstance::GetQualifierSet(struct IWbemQualifierSet * *)
?GetQualifierSet@CWbemInstance@@UAGJPAPAUIWbemQualifierSet@@@Z
; public: unsigned char * __thiscall CQualifierSetList::GetQualifierSetData(int)
?GetQualifierSetData@CQualifierSetList@@QAEPAEH@Z
; public: static unsigned char * __stdcall CQualifierSetList::GetQualifierSetData(unsigned char *,int)
?GetQualifierSetData@CQualifierSetList@@SGPAEPAEH@Z
; public: virtual unsigned char * __thiscall CInstancePart::GetQualifierSetListStart(void)
?GetQualifierSetListStart@CInstancePart@@UAEPAEXZ
; public: virtual unsigned char * __thiscall CClassPart::GetQualifierSetStart(void)
?GetQualifierSetStart@CClassPart@@UAEPAEXZ
; public: virtual unsigned char * __thiscall CInstancePQSContainer::GetQualifierSetStart(void)
?GetQualifierSetStart@CInstancePQSContainer@@UAEPAEXZ
; public: virtual unsigned char * __thiscall CInstancePart::GetQualifierSetStart(void)
?GetQualifierSetStart@CInstancePart@@UAEPAEXZ
; public: virtual unsigned char * __thiscall CMethodQualifierSetContainer::GetQualifierSetStart(void)
?GetQualifierSetStart@CMethodQualifierSetContainer@@UAEPAEXZ
; public: static long __stdcall CUntypedArray::GetRange(class CPtrSource *,unsigned long,unsigned long,class CFastHeap *,unsigned long,unsigned long,unsigned long,unsigned long *,void *)
?GetRange@CUntypedArray@@SGJPAVCPtrSource@@KKPAVCFastHeap@@KKKPAKPAX@Z
; public: unsigned char * __thiscall CCompressedString::GetRawData(void)const 
?GetRawData@CCompressedString@@QBEPAEXZ
; public: unsigned long __thiscall CFastHeap::GetRealLength(void)
?GetRealLength@CFastHeap@@QAEKXZ
; protected: long __thiscall CWbemRefreshingSvc::GetRefrMgr(struct _IWbemRefresherMgr * *)
?GetRefrMgr@CWbemRefreshingSvc@@IAEJPAPAU_IWbemRefresherMgr@@@Z
; public: struct CQualifier * __thiscall CBasicQualifierSet::GetRegularQualifierLocally(unsigned short const *)
?GetRegularQualifierLocally@CBasicQualifierSet@@QAEPAUCQualifier@@PBG@Z
; public: static struct CQualifier * __stdcall CBasicQualifierSet::GetRegularQualifierLocally(unsigned char *,class CFastHeap *,unsigned short const *)
?GetRegularQualifierLocally@CBasicQualifierSet@@SGPAUCQualifier@@PAEPAVCFastHeap@@PBG@Z
; public: virtual unsigned short * __thiscall CWbemClass::GetRelPath(int)
?GetRelPath@CWbemClass@@UAEPAGH@Z
; public: virtual unsigned short * __thiscall CWbemInstance::GetRelPath(int)
?GetRelPath@CWbemInstance@@UAEPAGH@Z
; public: long __thiscall CWbemObject::GetRelPath(class CVar *)
?GetRelPath@CWbemObject@@QAEJPAVCVar@@@Z
; protected: virtual long __thiscall CWbemRefreshingSvc::GetRemoteRefresher(struct _WBEM_REFRESHER_ID *,long,unsigned long,struct IWbemRemoteRefresher * *,struct _GUID *,unsigned long *)
?GetRemoteRefresher@CWbemRefreshingSvc@@MAEJPAU_WBEM_REFRESHER_ID@@JKPAPAUIWbemRemoteRefresher@@PAU_GUID@@PAK@Z
; public: virtual long __stdcall CWbemRefreshingSvc::XWbemRefrSvc::GetRemoteRefresher(struct _WBEM_REFRESHER_ID *,long,unsigned long,struct IWbemRemoteRefresher * *,struct _GUID *,unsigned long *)
?GetRemoteRefresher@XWbemRefrSvc@CWbemRefreshingSvc@@UAGJPAU_WBEM_REFRESHER_ID@@JKPAPAUIWbemRemoteRefresher@@PAU_GUID@@PAK@Z
; public: class CBasicQualifierSet * __thiscall CMethodQualifierSetContainer::GetSecondarySet(void)
?GetSecondarySet@CMethodQualifierSetContainer@@QAEPAVCBasicQualifierSet@@XZ
; protected: static unsigned long __stdcall CCompressedStringList::GetSeparatorLength(void)
?GetSeparatorLength@CCompressedStringList@@KGKXZ
; public: long __thiscall CWbemObject::GetServer(class CVar *)
?GetServer@CWbemObject@@QAEJPAVCVar@@@Z
; public: long __thiscall CWbemObject::GetServerAndNamespace(class CVar *)
?GetServerAndNamespace@CWbemObject@@QAEJPAVCVar@@@Z
; public: unsigned short * __thiscall CWbemThreadSecurityHandle::GetServerPrincipalName(void)
?GetServerPrincipalName@CWbemThreadSecurityHandle@@QAEPAGXZ
; public: unsigned long __thiscall CMethodDescription::GetSig(int)
?GetSig@CMethodDescription@@QAEKH@Z
; protected: void __thiscall CMethodPart::GetSignature(int,int,class CWbemObject * *)
?GetSignature@CMethodPart@@IAEXHHPAPAVCWbemObject@@@Z
; public: int __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::GetSize(void)const 
?GetSize@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QBEHXZ
; public: int __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::GetSize(void)const 
?GetSize@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QBEHXZ
; public: virtual long __stdcall CWbemObject::GetSource(unsigned short * *)
?GetSource@CWbemObject@@UAGJPAPAG@Z
; public: unsigned char * __thiscall CBasicQualifierSet::GetStart(void)
?GetStart@CBasicQualifierSet@@QAEPAEXZ
; public: unsigned char * __thiscall CClassAndMethods::GetStart(void)
?GetStart@CClassAndMethods@@QAEPAEXZ
; public: unsigned char * __thiscall CClassPart::GetStart(void)
?GetStart@CClassPart@@QAEPAEXZ
; public: unsigned char * __thiscall CCompressedString::GetStart(void)
?GetStart@CCompressedString@@QAEPAEXZ
; public: unsigned char * __thiscall CCompressedStringList::GetStart(void)
?GetStart@CCompressedStringList@@QAEPAEXZ
; public: unsigned char * __thiscall CDataTable::GetStart(void)
?GetStart@CDataTable@@QAEPAEXZ
; public: unsigned char * __thiscall CDecorationPart::GetStart(void)
?GetStart@CDecorationPart@@QAEPAEXZ
; public: unsigned char * __thiscall CEmbeddedObject::GetStart(void)
?GetStart@CEmbeddedObject@@QAEPAEXZ
; public: unsigned char * __thiscall CFastHeap::GetStart(void)
?GetStart@CFastHeap@@QAEPAEXZ
; public: unsigned char * __thiscall CInstancePart::GetStart(void)
?GetStart@CInstancePart@@QAEPAEXZ
; public: unsigned char * __thiscall CMethodPart::GetStart(void)
?GetStart@CMethodPart@@QAEPAEXZ
; public: unsigned char * __thiscall CPropertyLookupTable::GetStart(void)
?GetStart@CPropertyLookupTable@@QAEPAEXZ
; public: unsigned char * __thiscall CQualifierSetList::GetStart(void)
?GetStart@CQualifierSetList@@QAEPAEXZ
; public: unsigned char * __thiscall CWbemInstance::GetStart(void)
?GetStart@CWbemInstance@@QAEPAEXZ
; public: unsigned char * __thiscall CWbemObject::GetStart(void)
?GetStart@CWbemObject@@QAEPAEXZ
; public: int __thiscall CCompressedString::GetStringLength(void)const 
?GetStringLength@CCompressedString@@QBEHXZ
; public: static long __stdcall CClassAndMethods::GetSuperclassName(class WString &,unsigned char *)
?GetSuperclassName@CClassAndMethods@@SGJAAVWString@@PAE@Z
; public: long __thiscall CClassPart::GetSuperclassName(class CVar *)
?GetSuperclassName@CClassPart@@QAEJPAVCVar@@@Z
; public: class CCompressedString * __thiscall CClassPart::GetSuperclassName(void)
?GetSuperclassName@CClassPart@@QAEPAVCCompressedString@@XZ
; public: virtual long __thiscall CWbemClass::GetSuperclassName(class CVar *)
?GetSuperclassName@CWbemClass@@UAEJPAVCVar@@@Z
; public: virtual long __thiscall CWbemInstance::GetSuperclassName(class CVar *)
?GetSuperclassName@CWbemInstance@@UAEJPAVCVar@@@Z
; public: unsigned short * __thiscall CType::GetSyntax(void)
?GetSyntax@CType@@QAEPAGXZ
; public: static unsigned short * __stdcall CType::GetSyntax(unsigned long)
?GetSyntax@CType@@SGPAGK@Z
; public: long __thiscall CWbemObject::GetSystemProperty(int,class CVar *)
?GetSystemProperty@CWbemObject@@QAEJHPAVCVar@@@Z
; public: long __thiscall CWbemObject::GetSystemPropertyByName(unsigned short const *,class CVar *)
?GetSystemPropertyByName@CWbemObject@@QAEJPBGPAVCVar@@@Z
; public: long __thiscall CBasicQualifierSet::GetText(long,class WString &)
?GetText@CBasicQualifierSet@@QAEJJAAVWString@@@Z
; public: static long __stdcall CBasicQualifierSet::GetText(unsigned char *,class CFastHeap *,long,class WString &)
?GetText@CBasicQualifierSet@@SGJPAEPAVCFastHeap@@JAAVWString@@@Z
; public: char const * __thiscall CInternalString::GetText(void)const 
?GetText@CInternalString@@QBEPBDXZ
; public: virtual long __stdcall CWmiObjectTextSrc::XObjectTextSrc::GetText(long,struct IWbemClassObject *,unsigned long,struct IWbemContext *,unsigned short * *)
?GetText@XObjectTextSrc@CWmiObjectTextSrc@@UAGJJPAUIWbemClassObject@@KPAUIWbemContext@@PAPAG@Z
; public: virtual long __stdcall CWbemCallSecurity::GetThreadSecurity(enum tag_WMI_THREAD_SECURITY_ORIGIN,struct _IWmiThreadSecHandle * *)
?GetThreadSecurity@CWbemCallSecurity@@UAGJW4tag_WMI_THREAD_SECURITY_ORIGIN@@PAPAU_IWmiThreadSecHandle@@@Z
; public: class CWbemThreadSecurityHandle * __thiscall CWbemCallSecurity::GetThreadSecurityHandle(void)
?GetThreadSecurityHandle@CWbemCallSecurity@@QAEPAVCWbemThreadSecurityHandle@@XZ
; public: void * __thiscall CWbemThreadSecurityHandle::GetThreadToken(void)
?GetThreadToken@CWbemThreadSecurityHandle@@QAEPAXXZ
; public: virtual long __stdcall CWbemThreadSecurityHandle::GetToken(void * *)
?GetToken@CWbemThreadSecurityHandle@@UAGJPAPAX@Z
; public: virtual long __stdcall CWbemThreadSecurityHandle::GetTokenOrigin(enum tag_WMI_THREAD_SECURITY_ORIGIN *)
?GetTokenOrigin@CWbemThreadSecurityHandle@@UAGJPAW4tag_WMI_THREAD_SECURITY_ORIGIN@@@Z
; public: unsigned long __thiscall CClassPart::GetTotalRealLength(void)
?GetTotalRealLength@CClassPart@@QAEKXZ
; public: unsigned long __thiscall CInstancePart::GetTotalRealLength(void)
?GetTotalRealLength@CInstancePart@@QAEKXZ
; public: long __thiscall CWbemInstance::GetTransferArrayBlob(long,unsigned char * *,long *)
?GetTransferArrayBlob@CWbemInstance@@QAEJJPAPAEPAJ@Z
; public: long __thiscall CWbemInstance::GetTransferArrayBlobSize(void)
?GetTransferArrayBlobSize@CWbemInstance@@QAEJXZ
; public: static long __stdcall CWbemInstance::GetTransferArrayHeaderSize(void)
?GetTransferArrayHeaderSize@CWbemInstance@@SGJXZ
; public: long __thiscall CWbemInstance::GetTransferBlob(long *,long *,unsigned char * *)
?GetTransferBlob@CWbemInstance@@QAEJPAJ0PAPAE@Z
; public: long __thiscall CWbemInstance::GetTransferBlobSize(void)
?GetTransferBlobSize@CWbemInstance@@QAEJXZ
; public: virtual long __stdcall CWbemObject::GetUnmarshalClass(struct _GUID const &,void *,unsigned long,void *,unsigned long,struct _GUID *)
?GetUnmarshalClass@CWbemObject@@UAGJABU_GUID@@PAXK1KPAU2@@Z
; public: unsigned long __thiscall CFastHeap::GetUsedLength(void)
?GetUsedLength@CFastHeap@@QAEKXZ
; public: virtual long __stdcall CWbemCallSecurity::GetUser(unsigned long *,unsigned short *)
?GetUser@CWbemCallSecurity@@UAGJPAKPAG@Z
; public: virtual long __stdcall CWbemThreadSecurityHandle::GetUser(unsigned long *,unsigned short *)
?GetUser@CWbemThreadSecurityHandle@@UAGJPAKPAG@Z
; public: virtual long __stdcall CWbemCallSecurity::GetUserSid(unsigned long *,void *)
?GetUserSid@CWbemCallSecurity@@UAGJPAKPAX@Z
; public: virtual long __stdcall CWbemThreadSecurityHandle::GetUserSid(unsigned long *,void *)
?GetUserSid@CWbemThreadSecurityHandle@@UAGJPAKPAX@Z
; public: unsigned short __thiscall CType::GetVARTYPE(void)
?GetVARTYPE@CType@@QAEGXZ
; public: static unsigned short __stdcall CType::GetVARTYPE(unsigned long)
?GetVARTYPE@CType@@SGGK@Z
; public: static unsigned short * __stdcall CWbemObject::GetValueText(long,class CVar &,unsigned long)
?GetValueText@CWbemObject@@SGPAGJAAVCVar@@K@Z
; public: unsigned long __thiscall CLimitationMapping::GetVtableLength(void)
?GetVtableLength@CLimitationMapping@@QAEKXZ
; public: virtual struct IUnknown * __thiscall CClassAndMethods::GetWbemObjectUnknown(void)
?GetWbemObjectUnknown@CClassAndMethods@@UAEPAUIUnknown@@XZ
; public: virtual struct IUnknown * __thiscall CClassPart::GetWbemObjectUnknown(void)
?GetWbemObjectUnknown@CClassPart@@UAEPAUIUnknown@@XZ
; public: virtual struct IUnknown * __thiscall CInstancePQSContainer::GetWbemObjectUnknown(void)
?GetWbemObjectUnknown@CInstancePQSContainer@@UAEPAUIUnknown@@XZ
; public: virtual struct IUnknown * __thiscall CInstancePart::GetWbemObjectUnknown(void)
?GetWbemObjectUnknown@CInstancePart@@UAEPAUIUnknown@@XZ
; public: struct IUnknown * __thiscall CMethodPart::GetWbemObjectUnknown(void)
?GetWbemObjectUnknown@CMethodPart@@QAEPAUIUnknown@@XZ
; public: virtual struct IUnknown * __thiscall CMethodQualifierSetContainer::GetWbemObjectUnknown(void)
?GetWbemObjectUnknown@CMethodQualifierSetContainer@@UAEPAUIUnknown@@XZ
; public: struct IUnknown * __thiscall CQualifierSetList::GetWbemObjectUnknown(void)
?GetWbemObjectUnknown@CQualifierSetList@@QAEPAUIUnknown@@XZ
; public: struct IUnknown * __thiscall CWbemClass::GetWbemObjectUnknown(void)
?GetWbemObjectUnknown@CWbemClass@@QAEPAUIUnknown@@XZ
; public: virtual struct IUnknown * __thiscall CWbemInstance::GetWbemObjectUnknown(void)
?GetWbemObjectUnknown@CWbemInstance@@UAEPAUIUnknown@@XZ
; public: static int __stdcall CBasicQualifierSet::HasLocalQualifiers(unsigned char *)
?HasLocalQualifiers@CBasicQualifierSet@@SGHPAE@Z
; public: int __thiscall CWbemObject::HasRefs(void)
?HasRefs@CWbemObject@@QAEHXZ
; public: virtual long __stdcall CWbemCallSecurity::ImpersonateClient(void)
?ImpersonateClient@CWbemCallSecurity@@UAGJXZ
; public: void __thiscall CBasicQualifierSet::IncrementLength(unsigned long)
?IncrementLength@CBasicQualifierSet@@QAEXK@Z
; public: int __thiscall CClassPart::InheritsFrom(unsigned short const *)
?InheritsFrom@CClassPart@@QAEHPBG@Z
; public: virtual long __stdcall CWbemObject::InheritsFrom(unsigned short const *)
?InheritsFrom@CWbemObject@@UAGJPBG@Z
; public: long __thiscall CWbemFetchRefrMgr::Init(struct _IWmiProvSS *,struct IWbemServices *)
?Init@CWbemFetchRefrMgr@@QAEJPAU_IWmiProvSS@@PAUIWbemServices@@@Z
; public: virtual long __stdcall CWbemFetchRefrMgr::XFetchRefrMgr::Init(struct _IWmiProvSS *,struct IWbemServices *)
?Init@XFetchRefrMgr@CWbemFetchRefrMgr@@UAGJPAU_IWmiProvSS@@PAUIWbemServices@@@Z
; public: long __thiscall CWbemClass::InitEmpty(int,int)
?InitEmpty@CWbemClass@@QAEJHH@Z
; public: long __thiscall CWbemInstance::InitEmptyInstance(class CClassPart &,unsigned char *,int,class CDecorationPart *)
?InitEmptyInstance@CWbemInstance@@QAEJAAVCClassPart@@PAEHPAVCDecorationPart@@@Z
; public: long __thiscall CWbemInstance::InitNew(class CWbemClass *,int,class CDecorationPart *)
?InitNew@CWbemInstance@@QAEJPAVCWbemClass@@HPAVCDecorationPart@@@Z
; public: long __thiscall CClassPart::InitPropertyQualifierSet(unsigned short const *,class CClassPropertyQualifierSet *)
?InitPropertyQualifierSet@CClassPart@@QAEJPBGPAVCClassPropertyQualifierSet@@@Z
; public: static void __stdcall CKnownStringTable::Initialize(void)
?Initialize@CKnownStringTable@@SGXXZ
; public: virtual int __thiscall CWbemRefreshingSvc::Initialize(void)
?Initialize@CWbemRefreshingSvc@@UAEHXZ
; protected: long __thiscall CWbemInstance::InitializePropQualifierSet(class CPropertyInformation *,class CInstancePropertyQualifierSet &)
?InitializePropQualifierSet@CWbemInstance@@IAEJPAVCPropertyInformation@@AAVCInstancePropertyQualifierSet@@@Z
; protected: long __thiscall CWbemInstance::InitializePropQualifierSet(unsigned short const *,class CInstancePropertyQualifierSet &)
?InitializePropQualifierSet@CWbemInstance@@IAEJPBGAAVCInstancePropertyQualifierSet@@@Z
; public: bool __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::InsertAt(int,class CFastPropertyBagItem *)
?InsertAt@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAE_NHPAVCFastPropertyBagItem@@@Z
; public: bool __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::InsertAt(int,class CWmiTextSource *)
?InsertAt@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAE_NHPAVCWmiTextSource@@@Z
; public: long __thiscall CPropertyLookupTable::InsertProperty(struct CPropertyLookup const &,int &)
?InsertProperty@CPropertyLookupTable@@QAEJABUCPropertyLookup@@AAH@Z
; public: long __thiscall CPropertyLookupTable::InsertProperty(unsigned short const *,unsigned long,int &)
?InsertProperty@CPropertyLookupTable@@QAEJPBGKAAH@Z
; public: long __thiscall CQualifierSetList::InsertQualifierSet(int)
?InsertQualifierSet@CQualifierSetList@@QAEJH@Z
; public: int __thiscall CClassPart::IsAbstract(void)
?IsAbstract@CClassPart@@QAEHXZ
; public: int __thiscall CWbemClass::IsAbstract(void)
?IsAbstract@CWbemClass@@QAEHXZ
; public: int __thiscall CClassPart::IsAmendment(void)
?IsAmendment@CClassPart@@QAEHXZ
; public: int __thiscall CWbemClass::IsAmendment(void)
?IsAmendment@CWbemClass@@QAEHXZ
; public: int __thiscall CType::IsArray(void)
?IsArray@CType@@QAEHXZ
; public: static int __stdcall CType::IsArray(unsigned long)
?IsArray@CType@@SGHK@Z
; public: long __thiscall CWbemObject::IsArrayPropertyHandle(long,long *,unsigned long *)
?IsArrayPropertyHandle@CWbemObject@@QAEJJPAJPAK@Z
; public: long __thiscall CUntypedArray::IsArrayValid(class CType,class CFastHeap *)
?IsArrayValid@CUntypedArray@@QAEJVCType@@PAVCFastHeap@@@Z
; protected: static int __stdcall CCompressedString::IsAsciiable(unsigned short const *)
?IsAsciiable@CCompressedString@@KGHPBG@Z
; public: int __thiscall CClassPart::IsAssociation(void)
?IsAssociation@CClassPart@@QAEHXZ
; public: int __thiscall CClassPart::IsAutocook(void)
?IsAutocook@CClassPart@@QAEHXZ
; public: int __thiscall CWbemClass::IsChildOf(class CWbemClass *)
?IsChildOf@CWbemClass@@QAEHPAV1@@Z
; protected: int __thiscall CWbemInstance::IsClassPartAvailable(void)
?IsClassPartAvailable@CWbemInstance@@IAEHXZ
; protected: int __thiscall CWbemInstance::IsClassPartInternal(void)
?IsClassPartInternal@CWbemInstance@@IAEHXZ
; protected: int __thiscall CWbemInstance::IsClassPartShared(void)
?IsClassPartShared@CWbemInstance@@IAEHXZ
; public: int __thiscall CDecorationPart::IsClientOnly(void)
?IsClientOnly@CDecorationPart@@QAEHXZ
; public: int __thiscall CWbemObject::IsClientOnly(void)
?IsClientOnly@CWbemObject@@QAEHXZ
; public: int __thiscall CQualifierSet::IsComplete(void)
?IsComplete@CQualifierSet@@QAEHXZ
; public: int __thiscall CClassPart::IsCompressed(void)
?IsCompressed@CClassPart@@QAEHXZ
; public: int __thiscall CWbemClass::IsCompressed(void)
?IsCompressed@CWbemClass@@QAEHXZ
; public: int __thiscall CDecorationPart::IsDecorated(void)
?IsDecorated@CDecorationPart@@QAEHXZ
; protected: int __thiscall CWbemInstance::IsDecorationPartAvailable(void)
?IsDecorationPartAvailable@CWbemInstance@@IAEHXZ
; public: int __thiscall CDataTable::IsDefault(int)
?IsDefault@CDataTable@@QAEHH@Z
; public: int __thiscall CClassPart::IsDynamic(void)
?IsDynamic@CClassPart@@QAEHXZ
; public: int __thiscall CWbemClass::IsDynamic(void)
?IsDynamic@CWbemClass@@QAEHXZ
; public: int __thiscall CBasicQualifierSet::IsEmpty(void)
?IsEmpty@CBasicQualifierSet@@QAEHXZ
; public: static int __stdcall CBasicQualifierSet::IsEmpty(unsigned char *)
?IsEmpty@CBasicQualifierSet@@SGHPAE@Z
; public: int __thiscall CCompressedStringList::IsEmpty(void)
?IsEmpty@CCompressedStringList@@QAEHXZ
; public: bool __thiscall CInternalString::IsEmpty(void)
?IsEmpty@CInternalString@@QAE_NXZ
; public: int __thiscall CQualifierSetList::IsEmpty(void)
?IsEmpty@CQualifierSetList@@QAEHXZ
; public: static int __stdcall CFastHeap::IsFakeAddress(unsigned long)
?IsFakeAddress@CFastHeap@@SGHK@Z
; public: int __thiscall CClassPart::IsHiPerf(void)
?IsHiPerf@CClassPart@@QAEHXZ
; public: int __thiscall CClassPart::IsIdenticalWith(class CClassPart &)
?IsIdenticalWith@CClassPart@@QAEHAAV1@@Z
; public: static int __stdcall CSystemProperties::IsIllegalDerivedClass(unsigned short const *)
?IsIllegalDerivedClass@CSystemProperties@@SGHPBG@Z
; public: virtual int __stdcall CWbemCallSecurity::IsImpersonating(void)
?IsImpersonating@CWbemCallSecurity@@UAGHXZ
; public: int __thiscall CWbemClass::IsIndexLocal(unsigned short const *)
?IsIndexLocal@CWbemClass@@QAEHPBG@Z
; public: int __thiscall CDecorationPart::IsInstance(void)
?IsInstance@CDecorationPart@@QAEHXZ
; public: int __thiscall CWbemObject::IsInstance(void)
?IsInstance@CWbemObject@@QAEHXZ
; public: int __thiscall CWbemInstance::IsInstanceOf(class CWbemClass *)
?IsInstanceOf@CWbemInstance@@QAEHPAVCWbemClass@@@Z
; protected: int __thiscall CWbemInstance::IsInstancePartAvailable(void)
?IsInstancePartAvailable@CWbemInstance@@IAEHXZ
; public: int __thiscall CWbemClass::IsKeyLocal(unsigned short const *)
?IsKeyLocal@CWbemClass@@QAEHPBG@Z
; public: int __thiscall CClassPart::IsKeyed(void)
?IsKeyed@CClassPart@@QAEHXZ
; public: virtual int __thiscall CWbemClass::IsKeyed(void)
?IsKeyed@CWbemClass@@UAEHXZ
; public: virtual int __thiscall CWbemInstance::IsKeyed(void)
?IsKeyed@CWbemInstance@@UAEHXZ
; public: int __thiscall CDecorationPart::IsLimited(void)
?IsLimited@CDecorationPart@@QAEHXZ
; public: int __thiscall CWbemObject::IsLimited(void)
?IsLimited@CWbemObject@@QAEHXZ
; public: int __thiscall CClassPart::IsLocalized(void)
?IsLocalized@CClassPart@@QAEHXZ
; public: int __thiscall CInstancePart::IsLocalized(void)
?IsLocalized@CInstancePart@@QAEHXZ
; public: virtual int __thiscall CWbemClass::IsLocalized(void)
?IsLocalized@CWbemClass@@UAEHXZ
; public: virtual int __thiscall CWbemInstance::IsLocalized(void)
?IsLocalized@CWbemInstance@@UAEHXZ
; public: static int __stdcall CType::IsMemCopyAble(unsigned short,long)
?IsMemCopyAble@CType@@SGHGJ@Z
; public: int __thiscall CType::IsNonArrayPointerType(void)
?IsNonArrayPointerType@CType@@QAEHXZ
; public: static int __stdcall CType::IsNonArrayPointerType(unsigned long)
?IsNonArrayPointerType@CType@@SGHK@Z
; public: int __thiscall CDataTable::IsNull(int)
?IsNull@CDataTable@@QAEHH@Z
; public: virtual long __stdcall CWbemObject::IsObjectInstance(void)
?IsObjectInstance@CWbemObject@@UAGJXZ
; protected: int __thiscall CFastHeap::IsOutOfLine(void)
?IsOutOfLine@CFastHeap@@IAEHXZ
; public: virtual long __stdcall CWbemClass::IsParentClass(long,struct _IWmiObject *)
?IsParentClass@CWbemClass@@UAGJJPAU_IWmiObject@@@Z
; public: virtual long __stdcall CWbemInstance::IsParentClass(long,struct _IWmiObject *)
?IsParentClass@CWbemInstance@@UAGJJPAU_IWmiObject@@@Z
; public: int __thiscall CType::IsParents(void)
?IsParents@CType@@QAEHXZ
; public: static int __stdcall CType::IsParents(unsigned long)
?IsParents@CType@@SGHK@Z
; public: int __thiscall CType::IsPointerType(void)
?IsPointerType@CType@@QAEHXZ
; public: static int __stdcall CType::IsPointerType(unsigned long)
?IsPointerType@CType@@SGHK@Z
; public: static int __stdcall CSystemProperties::IsPossibleSystemPropertyName(unsigned short const *)
?IsPossibleSystemPropertyName@CSystemProperties@@SGHPBG@Z
; protected: int __thiscall CMethodPart::IsPropagated(int)
?IsPropagated@CMethodPart@@IAEHH@Z
; public: int __thiscall CClassPart::IsPropertyIndexed(unsigned short const *)
?IsPropertyIndexed@CClassPart@@QAEHPBG@Z
; public: int __thiscall CClassPart::IsPropertyKeyed(unsigned short const *)
?IsPropertyKeyed@CClassPart@@QAEHPBG@Z
; public: static int __stdcall CReservedWordTable::IsReservedWord(unsigned short const *)
?IsReservedWord@CReservedWordTable@@SGHPBG@Z
; public: int __thiscall CWbemObject::IsSameClass(class CWbemObject *)
?IsSameClass@CWbemObject@@QAEHPAV1@@Z
; public: int __thiscall CClassPart::IsSingleton(void)
?IsSingleton@CClassPart@@QAEHXZ
; public: int __thiscall CWbemClass::IsSingleton(void)
?IsSingleton@CWbemClass@@QAEHXZ
; public: int __thiscall CType::IsStringType(void)
?IsStringType@CType@@QAEHXZ
; public: static int __stdcall CType::IsStringType(unsigned long)
?IsStringType@CType@@SGHK@Z
; public: int __thiscall CClassPart::IsTopLevel(void)
?IsTopLevel@CClassPart@@QAEHXZ
; public: static int __stdcall CMethodDescription::IsTouched(struct CMethodDescription *,class CFastHeap *)
?IsTouched@CMethodDescription@@SGHPAU1@PAVCFastHeap@@@Z
; public: int __thiscall CMethodPart::IsTouched(int,int *)
?IsTouched@CMethodPart@@QAEHHPAH@Z
; public: int __thiscall CMethodPart::IsTouched(unsigned short const *,int *)
?IsTouched@CMethodPart@@QAEHPBGPAH@Z
; public: int __thiscall CCompressedString::IsUnicode(void)const 
?IsUnicode@CCompressedString@@QBEHXZ
; public: long __thiscall CWbemDataPacket::IsValid(void)
?IsValid@CWbemDataPacket@@QAEJXZ
; public: bool __thiscall CWbemObjectArrayPacket::IsValid(class CWbemClassCache *)
?IsValid@CWbemObjectArrayPacket@@QAE_NPAVCWbemClassCache@@@Z
; public: long __thiscall CClassPart::IsValidClassPart(void)
?IsValidClassPart@CClassPart@@QAEJXZ
; public: long __thiscall CInstancePart::IsValidInstancePart(class CClassPart *,class std::vector<struct EmbeddedObj,class wbem_allocator<struct EmbeddedObj> > &)
?IsValidInstancePart@CInstancePart@@QAEJPAVCClassPart@@AAV?$vector@UEmbeddedObj@@V?$wbem_allocator@UEmbeddedObj@@@@@std@@@Z
; public: int __thiscall CWbemInstance::IsValidKey(unsigned short const *)
?IsValidKey@CWbemInstance@@QAEHPBG@Z
; public: long __thiscall CMethodPart::IsValidMethodPart(void)
?IsValidMethodPart@CMethodPart@@QAEJXZ
; public: virtual long __thiscall CWbemClass::IsValidObj(void)
?IsValidObj@CWbemClass@@UAEJXZ
; public: virtual long __thiscall CWbemInstance::IsValidObj(void)
?IsValidObj@CWbemInstance@@UAEJXZ
; public: long __thiscall CClassPart::IsValidPropertyHandle(long)
?IsValidPropertyHandle@CClassPart@@QAEJJ@Z
; public: long __thiscall CWbemObject::IsValidPropertyHandle(long)
?IsValidPropertyHandle@CWbemObject@@QAEJJ@Z
; public: bool __thiscall CFastHeap::IsValidPtr(unsigned long)
?IsValidPtr@CFastHeap@@QAE_NK@Z
; public: long __thiscall CBasicQualifierSet::IsValidQualifierSet(void)
?IsValidQualifierSet@CBasicQualifierSet@@QAEJXZ
; public: static int __stdcall CBasicQualifierSet::IsValidQualifierType(unsigned short)
?IsValidQualifierType@CBasicQualifierSet@@SGHG@Z
; protected: int __thiscall CWbemRefreshingSvc::IsWinmgmt(struct _WBEM_REFRESHER_ID *)
?IsWinmgmt@CWbemRefreshingSvc@@IAEHPAU_WBEM_REFRESHER_ID@@@Z
; public: static long __stdcall CUntypedArray::LoadFromCVarVector(class CPtrSource *,class CVarVector &,unsigned long,class CFastHeap *,unsigned long &,int)
?LoadFromCVarVector@CUntypedArray@@SGJPAVCPtrSource@@AAVCVarVector@@KPAVCFastHeap@@AAKH@Z
; protected: long __thiscall CWbemObject::LocalizeProperties(int,bool,struct IWbemClassObject *,struct IWbemClassObject *,bool &)
?LocalizeProperties@CWbemObject@@IAEJH_NPAUIWbemClassObject@@1AA_N@Z
; protected: long __thiscall CWbemObject::LocalizeQualifiers(int,bool,struct IWbemQualifierSet *,struct IWbemQualifierSet *,bool &)
?LocalizeQualifiers@CWbemObject@@IAEJH_NPAUIWbemQualifierSet@@1AA_N@Z
; public: int __thiscall CHiPerfLock::Lock(unsigned long)
?Lock@CHiPerfLock@@QAEHK@Z
; public: int __thiscall CSharedLock::Lock(unsigned long)
?Lock@CSharedLock@@QAEHK@Z
; public: virtual long __stdcall CWbemObject::Lock(long)
?Lock@CWbemObject@@UAGJJ@Z
; protected: static char __stdcall CCompressedString::LowerByte(unsigned short)
?LowerByte@CCompressedString@@KGDG@Z
; public: static unsigned long __stdcall CType::MakeArray(unsigned long)
?MakeArray@CType@@SGKK@Z
; public: static unsigned long __stdcall CFastHeap::MakeFakeFromIndex(int)
?MakeFakeFromIndex@CFastHeap@@SGKH@Z
; public: static unsigned long __stdcall CType::MakeLocal(unsigned long)
?MakeLocal@CType@@SGKK@Z
; public: void __thiscall CCompressedString::MakeLowercase(void)
?MakeLowercase@CCompressedString@@QAEXXZ
; public: static unsigned long __stdcall CType::MakeNotArray(unsigned long)
?MakeNotArray@CType@@SGKK@Z
; public: static unsigned long __stdcall CType::MakeParents(unsigned long)
?MakeParents@CType@@SGKK@Z
; public: virtual long __stdcall CWbemClass::MakeSubsetInst(struct _IWmiObject *,struct _IWmiObject * *)
?MakeSubsetInst@CWbemClass@@UAGJPAU_IWmiObject@@PAPAU2@@Z
; public: virtual long __stdcall CWbemInstance::MakeSubsetInst(struct _IWmiObject *,struct _IWmiObject * *)
?MakeSubsetInst@CWbemInstance@@UAGJPAU_IWmiObject@@PAPAU2@@Z
; public: void __thiscall CLimitationMapping::Map(class CPropertyInformation *,class CPropertyInformation *,int)
?Map@CLimitationMapping@@QAEXPAVCPropertyInformation@@0H@Z
; public: int __thiscall CClassPart::MapLimitation(long,class CWStringArray *,class CLimitationMapping *)
?MapLimitation@CClassPart@@QAEHJPAVCWStringArray@@PAVCLimitationMapping@@@Z
; public: static int __stdcall CDecorationPart::MapLimitation(class CWStringArray *,class CLimitationMapping *)
?MapLimitation@CDecorationPart@@SGHPAVCWStringArray@@PAVCLimitationMapping@@@Z
; public: int __thiscall CPropertyLookupTable::MapLimitation(long,class CWStringArray *,class CLimitationMapping *)
?MapLimitation@CPropertyLookupTable@@QAEHJPAVCWStringArray@@PAVCLimitationMapping@@@Z
; public: int __thiscall CWbemClass::MapLimitation(long,class CWStringArray *,class CLimitationMapping *)
?MapLimitation@CWbemClass@@QAEHJPAVCWStringArray@@PAVCLimitationMapping@@@Z
; public: static void __stdcall CDecorationPart::MarkKeyRemoval(unsigned char *)
?MarkKeyRemoval@CDecorationPart@@SGXPAE@Z
; public: virtual long __stdcall CWbemObject::MarshalInterface(struct IStream *,struct _GUID const &,void *,unsigned long,void *,unsigned long)
?MarshalInterface@CWbemObject@@UAGJPAUIStream@@ABU_GUID@@PAXK2K@Z
; public: long __thiscall CWbemMtgtDeliverEventPacket::MarshalPacket(long,struct IWbemClassObject * *,struct _GUID *,int *)
?MarshalPacket@CWbemMtgtDeliverEventPacket@@QAEJJPAPAUIWbemClassObject@@PAU_GUID@@PAH@Z
; public: long __thiscall CWbemMtgtDeliverEventPacket::MarshalPacket(unsigned char *,unsigned long,long,struct IWbemClassObject * *,struct _GUID *,int *)
?MarshalPacket@CWbemMtgtDeliverEventPacket@@QAEJPAEKJPAPAUIWbemClassObject@@PAU_GUID@@PAH@Z
; public: long __thiscall CWbemObjectArrayPacket::MarshalPacket(long,struct IWbemClassObject * *,struct _GUID *,int *)
?MarshalPacket@CWbemObjectArrayPacket@@QAEJJPAPAUIWbemClassObject@@PAU_GUID@@PAH@Z
; public: long __thiscall CWbemObjectArrayPacket::MarshalPacket(unsigned char *,unsigned long,long,struct IWbemClassObject * *,struct _GUID *,int *)
?MarshalPacket@CWbemObjectArrayPacket@@QAEJPAEKJPAPAUIWbemClassObject@@PAU_GUID@@PAH@Z
; public: long __thiscall CWbemSmartEnumNextPacket::MarshalPacket(long,struct IWbemClassObject * *,struct _GUID *,int *)
?MarshalPacket@CWbemSmartEnumNextPacket@@QAEJJPAPAUIWbemClassObject@@PAU_GUID@@PAH@Z
; public: long __thiscall CWbemSmartEnumNextPacket::MarshalPacket(unsigned char *,unsigned long,long,struct IWbemClassObject * *,struct _GUID *,int *)
?MarshalPacket@CWbemSmartEnumNextPacket@@QAEJPAEKJPAPAUIWbemClassObject@@PAU_GUID@@PAH@Z
; public: static int __stdcall CSystemProperties::MaxNumProperties(void)
?MaxNumProperties@CSystemProperties@@SGHXZ
; public: static unsigned char * __stdcall CBasicQualifierSet::Merge(unsigned char *,class CFastHeap *,unsigned char *,class CFastHeap *,unsigned char *,class CFastHeap *,int)
?Merge@CBasicQualifierSet@@SGPAEPAEPAVCFastHeap@@0101H@Z
; public: static unsigned char * __stdcall CClassAndMethods::Merge(class CClassAndMethods &,class CClassAndMethods &,unsigned char *,int)
?Merge@CClassAndMethods@@SGPAEAAV1@0PAEH@Z
; public: static unsigned char * __stdcall CClassPart::Merge(class CClassPart &,class CClassPart &,unsigned char *,int)
?Merge@CClassPart@@SGPAEAAV1@0PAEH@Z
; public: static unsigned char * __stdcall CDataTable::Merge(class CDataTable *,class CFastHeap *,class CDataTable *,class CFastHeap *,class CPropertyLookupTable *,unsigned char *,class CFastHeap *)
?Merge@CDataTable@@SGPAEPAV1@PAVCFastHeap@@01PAVCPropertyLookupTable@@PAE1@Z
; public: static unsigned char * __stdcall CDerivationList::Merge(class CCompressedStringList &,class CCompressedStringList &,unsigned char *)
?Merge@CDerivationList@@SGPAEAAVCCompressedStringList@@0PAE@Z
; public: static unsigned char * __stdcall CMethodPart::Merge(class CMethodPart &,class CMethodPart &,unsigned char *,unsigned long)
?Merge@CMethodPart@@SGPAEAAV1@0PAEK@Z
; public: static unsigned char * __stdcall CPropertyLookupTable::Merge(class CPropertyLookupTable *,class CFastHeap *,class CPropertyLookupTable *,class CFastHeap *,unsigned char *,class CFastHeap *,int)
?Merge@CPropertyLookupTable@@SGPAEPAV1@PAVCFastHeap@@01PAE1H@Z
; public: unsigned char * __thiscall CWbemClass::Merge(unsigned char *,unsigned char *,int,int)
?Merge@CWbemClass@@QAEPAEPAE0HH@Z
; public: virtual long __stdcall CWbemClass::Merge(long,unsigned long,void *,struct _IWmiObject * *)
?Merge@CWbemClass@@UAGJJKPAXPAPAU_IWmiObject@@@Z
; public: virtual long __stdcall CWbemInstance::Merge(long,unsigned long,void *,struct _IWmiObject * *)
?Merge@CWbemInstance@@UAGJJKPAXPAPAU_IWmiObject@@@Z
; public: virtual long __stdcall CWbemObject::MergeAmended(long,struct _IWmiObject *)
?MergeAmended@CWbemObject@@UAGJJPAU_IWmiObject@@@Z
; public: virtual long __stdcall CWbemClass::MergeAndDecorate(long,unsigned long,void *,unsigned short *,unsigned short *,struct _IWmiObject * *)
?MergeAndDecorate@CWbemClass@@UAGJJKPAXPAG1PAPAU_IWmiObject@@@Z
; public: virtual long __stdcall CWbemInstance::MergeAndDecorate(long,unsigned long,void *,unsigned short *,unsigned short *,struct _IWmiObject * *)
?MergeAndDecorate@CWbemInstance@@UAGJJKPAXPAG1PAPAU_IWmiObject@@@Z
; public: virtual long __stdcall CWbemClass::MergeClassPart(struct IWbemClassObject *)
?MergeClassPart@CWbemClass@@UAGJPAUIWbemClassObject@@@Z
; public: virtual long __stdcall CWbemInstance::MergeClassPart(struct IWbemClassObject *)
?MergeClassPart@CWbemInstance@@UAGJPAUIWbemClassObject@@@Z
; public: bool __thiscall CCompressedString::NValidateSize(int)const 
?NValidateSize@CCompressedString@@QBE_NH@Z
; public: static class CWbemCallSecurity * __stdcall CWbemCallSecurity::New(void)
?New@CWbemCallSecurity@@SGPAV1@XZ
; public: static class CWbemThreadSecurityHandle * __stdcall CWbemThreadSecurityHandle::New(void)
?New@CWbemThreadSecurityHandle@@SGPAV1@XZ
; public: virtual long __stdcall CQualifierSet::Next(long,unsigned short * *,struct tagVARIANT *,long *)
?Next@CQualifierSet@@UAGJJPAPAGPAUtagVARIANT@@PAJ@Z
; public: virtual long __stdcall CWbemObject::Next(long,unsigned short * *,struct tagVARIANT *,long *,long *)
?Next@CWbemObject@@UAGJJPAPAGPAUtagVARIANT@@PAJ2@Z
; public: int __thiscall CLimitationMapping::NextMapping(class CPropertyInformation *,class CPropertyInformation *)
?NextMapping@CLimitationMapping@@QAEHPAVCPropertyInformation@@0@Z
; public: virtual long __stdcall CWbemClass::NextMethod(long,unsigned short * *,struct IWbemClassObject * *,struct IWbemClassObject * *)
?NextMethod@CWbemClass@@UAGJJPAPAGPAPAUIWbemClassObject@@1@Z
; public: virtual long __stdcall CWbemInstance::NextMethod(long,unsigned short * *,struct IWbemClassObject * *,struct IWbemClassObject * *)
?NextMethod@CWbemInstance@@UAGJJPAPAGPAPAUIWbemClassObject@@1@Z
; public: long __thiscall CWbemInstance::PlugKeyHoles(void)
?PlugKeyHoles@CWbemInstance@@QAEJXZ
; public: virtual long __stdcall CQualifierSet::Put(unsigned short const *,struct tagVARIANT *,long)
?Put@CQualifierSet@@UAGJPBGPAUtagVARIANT@@J@Z
; public: virtual long __stdcall CWbemClass::Put(unsigned short const *,long,struct tagVARIANT *,long)
?Put@CWbemClass@@UAGJPBGJPAUtagVARIANT@@J@Z
; public: virtual long __stdcall CWbemInstance::Put(unsigned short const *,long,struct tagVARIANT *,long)
?Put@CWbemInstance@@UAGJPBGJPAUtagVARIANT@@J@Z
; public: long __thiscall CMethodPart::PutMethod(unsigned short const *,long,class CWbemObject *,class CWbemObject *)
?PutMethod@CMethodPart@@QAEJPBGJPAVCWbemObject@@1@Z
; public: virtual long __stdcall CWbemClass::PutMethod(unsigned short const *,long,struct IWbemClassObject *,struct IWbemClassObject *)
?PutMethod@CWbemClass@@UAGJPBGJPAUIWbemClassObject@@1@Z
; public: virtual long __stdcall CWbemInstance::PutMethod(unsigned short const *,long,struct IWbemClassObject *,struct IWbemClassObject *)
?PutMethod@CWbemInstance@@UAGJPBGJPAUIWbemClassObject@@1@Z
; public: virtual long __stdcall CWbemCallSecurity::QueryBlanket(unsigned long *,unsigned long *,unsigned short * *,unsigned long *,unsigned long *,void * *,unsigned long *)
?QueryBlanket@CWbemCallSecurity@@UAGJPAK0PAPAG00PAPAX0@Z
; public: virtual long __stdcall CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@?$CImpl@UIWbemObjectTextSrc@@VCWmiObjectTextSrc@@@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@?$CImpl@UIWbemRefreshingServices@@VCWbemRefreshingSvc@@@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@?$CImpl@UIWbemRemoteRefresher@@VCWbemRemoteRefresher@@@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@?$CImpl@U_IWbemConfigureRefreshingSvcs@@VCWbemRefreshingSvc@@@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@?$CImpl@U_IWbemEnumMarshaling@@VCWbemEnumMarshaling@@@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@?$CImpl@U_IWbemFetchRefresherMgr@@VCWbemFetchRefrMgr@@@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@?$CImpl@U_IWmiObjectFactory@@VCWmiObjectFactory@@@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CQualifierSet::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@CQualifierSet@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CWbemCallSecurity::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@CWbemCallSecurity@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CWbemObject::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@CWbemObject@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CWbemThreadSecurityHandle::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@CWbemThreadSecurityHandle@@UAGJABU_GUID@@PAPAX@Z
; public: virtual long __stdcall CWbemObject::QueryObjectFlags(long,unsigned __int64,unsigned __int64 *)
?QueryObjectFlags@CWbemObject@@UAGJJ_KPA_K@Z
; public: virtual long __stdcall CWbemObject::QueryPartInfo(unsigned long *)
?QueryPartInfo@CWbemObject@@UAGJPAK@Z
; public: virtual long __stdcall CWbemObject::QueryPropertyFlags(long,unsigned short const *,unsigned __int64,unsigned __int64 *)
?QueryPropertyFlags@CWbemObject@@UAGJJPBG_KPA_K@Z
; public: virtual long __stdcall CWbemObject::ReadDWORD(long,unsigned long *)
?ReadDWORD@CWbemObject@@UAGJJPAK@Z
; public: virtual long __stdcall CWbemObject::ReadProp(unsigned short const *,long,unsigned long,long *,long *,int *,unsigned long *,void *)
?ReadProp@CWbemObject@@UAGJPBGJKPAJ1PAHPAKPAX@Z
; public: virtual long __stdcall CWbemObject::ReadPropertyValue(long,long,long *,unsigned char *)
?ReadPropertyValue@CWbemObject@@UAGJJJPAJPAE@Z
; public: virtual long __stdcall CWbemObject::ReadQWORD(long,unsigned __int64 *)
?ReadQWORD@CWbemObject@@UAGJJPA_K@Z
; public: int __thiscall CClassPart::ReallocAndCompact(unsigned long)
?ReallocAndCompact@CClassPart@@QAEHK@Z
; public: int __thiscall CInstancePart::ReallocAndCompact(unsigned long)
?ReallocAndCompact@CInstancePart@@QAEHK@Z
; protected: static long __stdcall CUntypedArray::ReallocArray(class CPtrSource *,unsigned long,class CFastHeap *,unsigned long,unsigned long *,unsigned long *,unsigned long *)
?ReallocArray@CUntypedArray@@KGJPAVCPtrSource@@KPAVCFastHeap@@KPAK22@Z
; public: int __thiscall CFastHeap::Reallocate(unsigned long,unsigned long,unsigned long,unsigned long &)
?Reallocate@CFastHeap@@QAEHKKKAAK@Z
; protected: unsigned char * __thiscall CWbemObject::Reallocate(unsigned long)
?Reallocate@CWbemObject@@IAEPAEK@Z
; public: void __thiscall CBasicQualifierSet::Rebase(unsigned char *)
?Rebase@CBasicQualifierSet@@QAEXPAE@Z
; public: void __thiscall CClassAndMethods::Rebase(unsigned char *)
?Rebase@CClassAndMethods@@QAEXPAE@Z
; public: void __thiscall CClassPart::Rebase(unsigned char *)
?Rebase@CClassPart@@QAEXPAE@Z
; public: void __thiscall CCompressedStringList::Rebase(unsigned char *)
?Rebase@CCompressedStringList@@QAEXPAE@Z
; public: void __thiscall CDataTable::Rebase(unsigned char *)
?Rebase@CDataTable@@QAEXPAE@Z
; public: void __thiscall CDecorationPart::Rebase(unsigned char *)
?Rebase@CDecorationPart@@QAEXPAE@Z
; public: void __thiscall CFastHeap::Rebase(unsigned char *)
?Rebase@CFastHeap@@QAEXPAE@Z
; public: void __thiscall CInstancePart::Rebase(unsigned char *)
?Rebase@CInstancePart@@QAEXPAE@Z
; public: void __thiscall CMethodPart::Rebase(unsigned char *)
?Rebase@CMethodPart@@QAEXPAE@Z
; public: void __thiscall CPropertyLookupTable::Rebase(unsigned char *)
?Rebase@CPropertyLookupTable@@QAEXPAE@Z
; public: void __thiscall CQualifierSetList::Rebase(unsigned char *)
?Rebase@CQualifierSetList@@QAEXPAE@Z
; public: void __thiscall CQualifierSetList::Rebase(void)
?Rebase@CQualifierSetList@@QAEXXZ
; public: void __thiscall CWbemClass::Rebase(unsigned char *)
?Rebase@CWbemClass@@QAEXPAE@Z
; public: void __thiscall CWbemInstance::Rebase(unsigned char *)
?Rebase@CWbemInstance@@QAEXPAE@Z
; public: void __thiscall CInstancePQSContainer::RebaseSecondarySet(void)
?RebaseSecondarySet@CInstancePQSContainer@@QAEXXZ
; public: enum EReconciliation  __thiscall CClassAndMethods::ReconcileWith(class CClassAndMethods &)
?ReconcileWith@CClassAndMethods@@QAE?AW4EReconciliation@@AAV1@@Z
; public: enum EReconciliation  __thiscall CClassPart::ReconcileWith(class CClassPart &)
?ReconcileWith@CClassPart@@QAE?AW4EReconciliation@@AAV1@@Z
; public: enum EReconciliation  __thiscall CMethodPart::ReconcileWith(class CMethodPart &)
?ReconcileWith@CMethodPart@@QAE?AW4EReconciliation@@AAV1@@Z
; public: enum EReconciliation  __thiscall CWbemClass::ReconcileWith(class CWbemClass *)
?ReconcileWith@CWbemClass@@QAE?AW4EReconciliation@@PAV1@@Z
; public: virtual long __stdcall CWbemClass::ReconcileWith(long,struct _IWmiObject *)
?ReconcileWith@CWbemClass@@UAGJJPAU_IWmiObject@@@Z
; public: virtual long __stdcall CWbemInstance::ReconcileWith(long,struct _IWmiObject *)
?ReconcileWith@CWbemInstance@@UAGJJPAU_IWmiObject@@@Z
; protected: virtual long __thiscall CWbemRefreshingSvc::ReconnectRemoteRefresher(struct _WBEM_REFRESHER_ID *,long,long,unsigned long,struct _WBEM_RECONNECT_INFO *,struct _WBEM_RECONNECT_RESULTS *,unsigned long *)
?ReconnectRemoteRefresher@CWbemRefreshingSvc@@MAEJPAU_WBEM_REFRESHER_ID@@JJKPAU_WBEM_RECONNECT_INFO@@PAU_WBEM_RECONNECT_RESULTS@@PAK@Z
; public: virtual long __stdcall CWbemRefreshingSvc::XWbemRefrSvc::ReconnectRemoteRefresher(struct _WBEM_REFRESHER_ID *,long,long,unsigned long,struct _WBEM_RECONNECT_INFO *,struct _WBEM_RECONNECT_RESULTS *,unsigned long *)
?ReconnectRemoteRefresher@XWbemRefrSvc@CWbemRefreshingSvc@@UAGJPAU_WBEM_REFRESHER_ID@@JJKPAU_WBEM_RECONNECT_INFO@@PAU_WBEM_RECONNECT_RESULTS@@PAK@Z
; public: void __thiscall CFastHeap::Reduce(unsigned long,unsigned long,unsigned long)
?Reduce@CFastHeap@@QAEXKKK@Z
; public: void __thiscall CWbemClass::ReduceClassAndMethodsSpace(unsigned long)
?ReduceClassAndMethodsSpace@CWbemClass@@QAEXK@Z
; public: virtual void __thiscall CClassAndMethods::ReduceClassPartSpace(class CClassPart *,unsigned long)
?ReduceClassPartSpace@CClassAndMethods@@UAEXPAVCClassPart@@K@Z
; public: virtual void __thiscall CWbemInstance::ReduceClassPartSpace(class CClassPart *,unsigned long)
?ReduceClassPartSpace@CWbemInstance@@UAEXPAVCClassPart@@K@Z
; public: virtual void __thiscall CClassPart::ReduceDataTableSpace(unsigned char *,unsigned long,unsigned long)
?ReduceDataTableSpace@CClassPart@@UAEXPAEKK@Z
; public: virtual void __thiscall CInstancePart::ReduceDataTableSpace(unsigned char *,unsigned long,unsigned long)
?ReduceDataTableSpace@CInstancePart@@UAEXPAEKK@Z
; public: virtual void __thiscall CClassPart::ReduceHeapSize(unsigned char *,unsigned long,unsigned long)
?ReduceHeapSize@CClassPart@@UAEXPAEKK@Z
; public: virtual void __thiscall CInstancePart::ReduceHeapSize(unsigned char *,unsigned long,unsigned long)
?ReduceHeapSize@CInstancePart@@UAEXPAEKK@Z
; public: virtual void __thiscall CMethodPart::ReduceHeapSize(unsigned char *,unsigned long,unsigned long)
?ReduceHeapSize@CMethodPart@@UAEXPAEKK@Z
; public: virtual void __thiscall CWbemInstance::ReduceInstancePartSpace(class CInstancePart *,unsigned long)
?ReduceInstancePartSpace@CWbemInstance@@UAEXPAVCInstancePart@@K@Z
; public: virtual void __thiscall CClassAndMethods::ReduceMethodPartSpace(class CMethodPart *,unsigned long)
?ReduceMethodPartSpace@CClassAndMethods@@UAEXPAVCMethodPart@@K@Z
; public: virtual void __thiscall CClassPart::ReducePropertyTableSpace(unsigned char *,unsigned long,unsigned long)
?ReducePropertyTableSpace@CClassPart@@UAEXPAEKK@Z
; public: virtual void __thiscall CInstancePart::ReduceQualifierSetListSpace(unsigned char *,unsigned long,unsigned long)
?ReduceQualifierSetListSpace@CInstancePart@@UAEXPAEKK@Z
; public: virtual void __thiscall CClassPart::ReduceQualifierSetSpace(class CBasicQualifierSet *,unsigned long)
?ReduceQualifierSetSpace@CClassPart@@UAEXPAVCBasicQualifierSet@@K@Z
; public: virtual void __thiscall CInstancePQSContainer::ReduceQualifierSetSpace(class CBasicQualifierSet *,unsigned long)
?ReduceQualifierSetSpace@CInstancePQSContainer@@UAEXPAVCBasicQualifierSet@@K@Z
; public: virtual void __thiscall CInstancePart::ReduceQualifierSetSpace(class CBasicQualifierSet *,unsigned long)
?ReduceQualifierSetSpace@CInstancePart@@UAEXPAVCBasicQualifierSet@@K@Z
; public: virtual void __thiscall CMethodQualifierSetContainer::ReduceQualifierSetSpace(class CBasicQualifierSet *,unsigned long)
?ReduceQualifierSetSpace@CMethodQualifierSetContainer@@UAEXPAVCBasicQualifierSet@@K@Z
; public: void __thiscall CQualifierSetList::ReduceQualifierSetSpace(class CBasicQualifierSet *,unsigned long)
?ReduceQualifierSetSpace@CQualifierSetList@@QAEXPAVCBasicQualifierSet@@K@Z
; public: virtual unsigned long __stdcall CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>::Release(void)
?Release@?$CImpl@UIWbemObjectTextSrc@@VCWmiObjectTextSrc@@@@UAGKXZ
; public: virtual unsigned long __stdcall CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>::Release(void)
?Release@?$CImpl@UIWbemRefreshingServices@@VCWbemRefreshingSvc@@@@UAGKXZ
; public: virtual unsigned long __stdcall CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>::Release(void)
?Release@?$CImpl@UIWbemRemoteRefresher@@VCWbemRemoteRefresher@@@@UAGKXZ
; public: virtual unsigned long __stdcall CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>::Release(void)
?Release@?$CImpl@U_IWbemConfigureRefreshingSvcs@@VCWbemRefreshingSvc@@@@UAGKXZ
; public: virtual unsigned long __stdcall CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>::Release(void)
?Release@?$CImpl@U_IWbemEnumMarshaling@@VCWbemEnumMarshaling@@@@UAGKXZ
; public: virtual unsigned long __stdcall CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>::Release(void)
?Release@?$CImpl@U_IWbemFetchRefresherMgr@@VCWbemFetchRefrMgr@@@@UAGKXZ
; public: virtual unsigned long __stdcall CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>::Release(void)
?Release@?$CImpl@U_IWmiObjectFactory@@VCWmiObjectFactory@@@@UAGKXZ
; public: virtual unsigned long __stdcall CClassQualifierSet::Release(void)
?Release@CClassQualifierSet@@UAGKXZ
; public: virtual unsigned long __stdcall CInstanceQualifierSet::Release(void)
?Release@CInstanceQualifierSet@@UAGKXZ
; public: virtual unsigned long __stdcall CMethodQualifierSet::Release(void)
?Release@CMethodQualifierSet@@UAGKXZ
; public: virtual unsigned long __stdcall CQualifierSet::Release(void)
?Release@CQualifierSet@@UAGKXZ
; public: virtual unsigned long __stdcall CWbemCallSecurity::Release(void)
?Release@CWbemCallSecurity@@UAGKXZ
; public: virtual unsigned long __stdcall CWbemObject::Release(void)
?Release@CWbemObject@@UAGKXZ
; public: virtual unsigned long __stdcall CWbemThreadSecurityHandle::Release(void)
?Release@CWbemThreadSecurityHandle@@UAGKXZ
; protected: void __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::ReleaseElement(class CFastPropertyBagItem *)
?ReleaseElement@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@IAEXPAVCFastPropertyBagItem@@@Z
; protected: void __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::ReleaseElement(class CWmiTextSource *)
?ReleaseElement@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@IAEXPAVCWmiTextSource@@@Z
; public: virtual long __stdcall CWbemObject::ReleaseMarshalData(struct IStream *)
?ReleaseMarshalData@CWbemObject@@UAGJPAUIStream@@@Z
; public: virtual long __stdcall CWbemRemoteRefresher::XWbemRemoteRefr::RemoteRefresh(long,long *,struct _WBEM_REFRESHED_OBJECT * *)
?RemoteRefresh@XWbemRemoteRefr@CWbemRemoteRefresher@@UAGJJPAJPAPAU_WBEM_REFRESHED_OBJECT@@@Z
; public: long __thiscall CFastPropertyBag::Remove(unsigned short const *)
?Remove@CFastPropertyBag@@QAEJPBG@Z
; public: void __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::RemoveAll(void)
?RemoveAll@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAEXXZ
; public: void __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::RemoveAll(void)
?RemoveAll@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAEXXZ
; public: long __thiscall CFastPropertyBag::RemoveAll(void)
?RemoveAll@CFastPropertyBag@@QAEJXZ
; public: virtual long __stdcall CWbemObject::RemoveArrayPropElementByHandle(long,long,unsigned long)
?RemoveArrayPropElementByHandle@CWbemObject@@UAGJJJK@Z
; public: virtual long __stdcall CWbemObject::RemoveArrayPropRangeByHandle(long,long,unsigned long,unsigned long)
?RemoveArrayPropRangeByHandle@CWbemObject@@UAGJJJKK@Z
; public: bool __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::RemoveAt(int,class CFastPropertyBagItem * *)
?RemoveAt@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAE_NHPAPAVCFastPropertyBagItem@@@Z
; public: bool __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::RemoveAt(int,class CWmiTextSource * *)
?RemoveAt@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAE_NHPAPAVCWmiTextSource@@@Z
; public: virtual long __stdcall CWbemObject::RemoveDecoration(void)
?RemoveDecoration@CWbemObject@@UAGJXZ
; protected: virtual long __thiscall CWbemRefreshingSvc::RemoveObjectFromRefresher(struct _WBEM_REFRESHER_ID *,long,long,unsigned long,unsigned long *)
?RemoveObjectFromRefresher@CWbemRefreshingSvc@@MAEJPAU_WBEM_REFRESHER_ID@@JJKPAK@Z
; public: virtual long __stdcall CWbemRefreshingSvc::XWbemRefrSvc::RemoveObjectFromRefresher(struct _WBEM_REFRESHER_ID *,long,long,unsigned long,unsigned long *)
?RemoveObjectFromRefresher@XWbemRefrSvc@CWbemRefreshingSvc@@UAGJPAU_WBEM_REFRESHER_ID@@JJKPAK@Z
; public: void __thiscall CDataTable::RemoveProperty(unsigned short,unsigned long,unsigned long)
?RemoveProperty@CDataTable@@QAEXGKK@Z
; public: long __thiscall CWbemObject::RemoveQualifierArrayRange(unsigned short const *,unsigned short const *,int,long,unsigned long,unsigned long)
?RemoveQualifierArrayRange@CWbemObject@@QAEJPBG0HJKK@Z
; public: static long __stdcall CUntypedArray::RemoveRange(class CPtrSource *,unsigned long,unsigned long,class CFastHeap *,unsigned long,unsigned long)
?RemoveRange@CUntypedArray@@SGJPAVCPtrSource@@KKPAVCFastHeap@@KK@Z
; public: void __thiscall CLimitationMapping::RemoveSpecific(void)
?RemoveSpecific@CLimitationMapping@@QAEXXZ
; public: long __thiscall CWbemInstance::Reparent(class CWbemClass *,class CWbemInstance * *)
?Reparent@CWbemInstance@@QAEJPAVCWbemClass@@PAPAV1@@Z
; public: void __thiscall CCompressedStringList::Reset(void)
?Reset@CCompressedStringList@@QAEXXZ
; public: void __thiscall CLimitationMapping::Reset(void)
?Reset@CLimitationMapping@@QAEXXZ
; protected: long __thiscall CWbemRefreshingSvc::ResetRefreshInfo(struct _WBEM_REFRESH_INFO *)
?ResetRefreshInfo@CWbemRefreshingSvc@@IAEJPAU_WBEM_REFRESH_INFO@@@Z
; public: unsigned char * __thiscall CClassPart::ResolveHeapPointer(unsigned long)
?ResolveHeapPointer@CClassPart@@QAEPAEK@Z
; public: unsigned char * __thiscall CFastHeap::ResolveHeapPointer(unsigned long)
?ResolveHeapPointer@CFastHeap@@QAEPAEK@Z
; public: class CCompressedString * __thiscall CClassPart::ResolveHeapString(unsigned long)
?ResolveHeapString@CClassPart@@QAEPAVCCompressedString@@K@Z
; public: class CCompressedString * __thiscall CFastHeap::ResolveString(unsigned long)
?ResolveString@CFastHeap@@QAEPAVCCompressedString@@K@Z
; public: virtual long __stdcall CWbemCallSecurity::RevertToSelf(void)
?RevertToSelf@CWbemCallSecurity@@UAGJXZ
; public: int __thiscall CQualifierSet::SelfRebase(void)
?SelfRebase@CQualifierSet@@QAEHXZ
; public: long __thiscall CInstancePart::SetActualValue(class CPropertyInformation *,class CVar *)
?SetActualValue@CInstancePart@@QAEJPAVCPropertyInformation@@PAVCVar@@@Z
; public: void __thiscall CLimitationMapping::SetAddChildKeys(int)
?SetAddChildKeys@CLimitationMapping@@QAEXH@Z
; public: void __thiscall CDataTable::SetAllToDefault(void)
?SetAllToDefault@CDataTable@@QAEXXZ
; public: void __thiscall CFastHeap::SetAllocatedDataLength(unsigned long)
?SetAllocatedDataLength@CFastHeap@@QAEXK@Z
; public: virtual long __stdcall CWbemObject::SetArrayPropElementByHandle(long,long,unsigned long,unsigned long,void *)
?SetArrayPropElementByHandle@CWbemObject@@UAGJJJKKPAX@Z
; public: virtual long __stdcall CWbemObject::SetArrayPropRangeByHandle(long,long,unsigned long,unsigned long,unsigned long,void *)
?SetArrayPropRangeByHandle@CWbemObject@@UAGJJJKKKPAX@Z
; public: void __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::SetAt(int,class CFastPropertyBagItem *,class CFastPropertyBagItem * *)
?SetAt@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAEXHPAVCFastPropertyBagItem@@PAPAV2@@Z
; public: void __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::SetAt(int,class CWmiTextSource *,class CWmiTextSource * *)
?SetAt@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAEXHPAVCWmiTextSource@@PAPAV2@@Z
; public: long __thiscall CClassPart::SetClassName(class CVar *)
?SetClassName@CClassPart@@QAEJPAVCVar@@@Z
; public: void __thiscall CLimitationMapping::SetClassObject(class CWbemClass *)
?SetClassObject@CLimitationMapping@@QAEXPAVCWbemClass@@@Z
; public: virtual long __stdcall CWbemClass::SetClassPart(void *,unsigned long)
?SetClassPart@CWbemClass@@UAGJPAXK@Z
; public: virtual long __stdcall CWbemInstance::SetClassPart(void *,unsigned long)
?SetClassPart@CWbemInstance@@UAGJPAXK@Z
; public: long __thiscall CClassPart::SetClassQualifier(unsigned short const *,long,class CTypedValue *)
?SetClassQualifier@CClassPart@@QAEJPBGJPAVCTypedValue@@@Z
; public: long __thiscall CClassPart::SetClassQualifier(unsigned short const *,class CVar *,long)
?SetClassQualifier@CClassPart@@QAEJPBGPAVCVar@@J@Z
; public: void __thiscall CDecorationPart::SetClientOnly(void)
?SetClientOnly@CDecorationPart@@QAEXXZ
; public: void __thiscall CWbemObject::SetClientOnly(void)
?SetClientOnly@CWbemObject@@QAEXXZ
; public: void __thiscall CFastHeap::SetContainer(class CHeapContainer *)
?SetContainer@CFastHeap@@QAEXPAVCHeapContainer@@@Z
; public: void __thiscall CBasicQualifierSet::SetData(unsigned char *,class CFastHeap *)
?SetData@CBasicQualifierSet@@QAEXPAEPAVCFastHeap@@@Z
; public: void __thiscall CClassAndMethods::SetData(unsigned char *,class CWbemClass *,class CClassAndMethods *)
?SetData@CClassAndMethods@@QAEXPAEPAVCWbemClass@@PAV1@@Z
; public: void __thiscall CClassPart::SetData(unsigned char *,class CClassPartContainer *,class CClassPart *)
?SetData@CClassPart@@QAEXPAEPAVCClassPartContainer@@PAV1@@Z
; public: void __thiscall CCompressedStringList::SetData(unsigned char *)
?SetData@CCompressedStringList@@QAEXPAE@Z
; public: void __thiscall CDataTable::SetData(unsigned char *,int,int,class CDataTableContainer *)
?SetData@CDataTable@@QAEXPAEHHPAVCDataTableContainer@@@Z
; public: void __thiscall CDecorationPart::SetData(unsigned char *)
?SetData@CDecorationPart@@QAEXPAE@Z
; public: int __thiscall CFastHeap::SetData(unsigned char *,class CHeapContainer *)
?SetData@CFastHeap@@QAEHPAEPAVCHeapContainer@@@Z
; public: void __thiscall CInstancePart::SetData(unsigned char *,class CInstancePartContainer *,class CClassPart &,unsigned int)
?SetData@CInstancePart@@QAEXPAEPAVCInstancePartContainer@@AAVCClassPart@@I@Z
; public: void __thiscall CMethodPart::SetData(unsigned char *,class CMethodPartContainer *,class CMethodPart *)
?SetData@CMethodPart@@QAEXPAEPAVCMethodPartContainer@@PAV1@@Z
; public: void __thiscall CMethodQualifierSet::SetData(class CMethodPart *,class CMethodPart *,unsigned short const *)
?SetData@CMethodQualifierSet@@QAEXPAVCMethodPart@@0PBG@Z
; public: void __thiscall CMethodQualifierSetContainer::SetData(class CMethodPart *,class CMethodPart *,unsigned short const *)
?SetData@CMethodQualifierSetContainer@@QAEXPAVCMethodPart@@0PBG@Z
; public: void __thiscall CPropertyLookupTable::SetData(unsigned char *,class CPropertyTableContainer *)
?SetData@CPropertyLookupTable@@QAEXPAEPAVCPropertyTableContainer@@@Z
; public: void __thiscall CQualifierSet::SetData(unsigned char *,class CQualifierSetContainer *,class CBasicQualifierSet *)
?SetData@CQualifierSet@@QAEXPAEPAVCQualifierSetContainer@@PAVCBasicQualifierSet@@@Z
; public: void __thiscall CQualifierSetList::SetData(unsigned char *,int,class CQualifierSetListContainer *)
?SetData@CQualifierSetList@@QAEXPAEHPAVCQualifierSetListContainer@@@Z
; public: void __thiscall CSharedLock::SetData(struct SHARED_LOCK_DATA *)
?SetData@CSharedLock@@QAEXPAUSHARED_LOCK_DATA@@@Z
; public: virtual void __thiscall CWbemClass::SetData(unsigned char *,int)
?SetData@CWbemClass@@UAEXPAEH@Z
; public: void __thiscall CWbemDataPacket::SetData(unsigned char *,unsigned long,bool)
?SetData@CWbemDataPacket@@QAEXPAEK_N@Z
; public: void __thiscall CWbemInstance::SetData(unsigned char *,int,unsigned long)
?SetData@CWbemInstance@@QAEXPAEHK@Z
; public: virtual void __thiscall CWbemInstance::SetData(unsigned char *,int)
?SetData@CWbemInstance@@UAEXPAEH@Z
; public: void __thiscall CWbemMtgtDeliverEventPacket::SetData(unsigned char *,unsigned long,bool)
?SetData@CWbemMtgtDeliverEventPacket@@QAEXPAEK_N@Z
; public: void __thiscall CWbemObjectArrayPacket::SetData(unsigned char *,unsigned long,bool)
?SetData@CWbemObjectArrayPacket@@QAEXPAEK_N@Z
; public: void __thiscall CWbemSmartEnumNextPacket::SetData(unsigned char *,unsigned long,bool)
?SetData@CWbemSmartEnumNextPacket@@QAEXPAEK_N@Z
; protected: static void __stdcall CBasicQualifierSet::SetDataLength(unsigned char *,unsigned long)
?SetDataLength@CBasicQualifierSet@@KGXPAEK@Z
; public: void __thiscall CClassPart::SetDataLength(unsigned long)
?SetDataLength@CClassPart@@QAEXK@Z
; public: void __thiscall CInstancePart::SetDataLength(unsigned long)
?SetDataLength@CInstancePart@@QAEXK@Z
; public: static void __stdcall CBasicQualifierSet::SetDataToNone(unsigned char *)
?SetDataToNone@CBasicQualifierSet@@SGXPAE@Z
; public: void __thiscall CClassAndMethods::SetDataWithNumProps(unsigned char *,class CWbemClass *,unsigned long,class CClassAndMethods *)
?SetDataWithNumProps@CClassAndMethods@@QAEXPAEPAVCWbemClass@@KPAV1@@Z
; public: void __thiscall CClassPart::SetDataWithNumProps(unsigned char *,class CClassPartContainer *,unsigned long,class CClassPart *)
?SetDataWithNumProps@CClassPart@@QAEXPAEPAVCClassPartContainer@@KPAV1@@Z
; public: virtual long __stdcall CWbemObject::SetDecoration(unsigned short const *,unsigned short const *)
?SetDecoration@CWbemObject@@UAGJPBG0@Z
; protected: long __thiscall CClassPart::SetDefaultValue(class CPropertyInformation *,class CVar *)
?SetDefaultValue@CClassPart@@IAEJPAVCPropertyInformation@@PAVCVar@@@Z
; public: long __thiscall CClassPart::SetDefaultValue(unsigned short const *,class CVar *)
?SetDefaultValue@CClassPart@@QAEJPBGPAVCVar@@@Z
; public: void __thiscall CDataTable::SetDefaultness(int,int)
?SetDefaultness@CDataTable@@QAEXHH@Z
; public: void __thiscall CLimitationMapping::SetFlags(long)
?SetFlags@CLimitationMapping@@QAEXJ@Z
; public: void __thiscall CCompressedString::SetFromAscii(char const *,unsigned int)
?SetFromAscii@CCompressedString@@QAEXPBDI@Z
; public: void __thiscall CCompressedString::SetFromUnicode(int,unsigned short const *)
?SetFromUnicode@CCompressedString@@QAEXHPBG@Z
; public: void __thiscall CCompressedString::SetFromUnicode(unsigned short const *)
?SetFromUnicode@CCompressedString@@QAEXPBG@Z
; protected: void __thiscall CFastHeap::SetInLineLength(unsigned long)
?SetInLineLength@CFastHeap@@IAEXK@Z
; public: void __thiscall CLimitationMapping::SetIncludeDerivation(int)
?SetIncludeDerivation@CLimitationMapping@@QAEXH@Z
; public: void __thiscall CLimitationMapping::SetIncludeNamespace(int)
?SetIncludeNamespace@CLimitationMapping@@QAEXH@Z
; public: void __thiscall CLimitationMapping::SetIncludeServer(int)
?SetIncludeServer@CLimitationMapping@@QAEXH@Z
; public: long __thiscall CClassPart::SetInheritanceChain(long,unsigned short * *)
?SetInheritanceChain@CClassPart@@QAEJJPAPAG@Z
; public: virtual long __stdcall CWbemClass::SetInheritanceChain(long,unsigned short * *)
?SetInheritanceChain@CWbemClass@@UAGJJPAPAG@Z
; public: virtual long __stdcall CWbemInstance::SetInheritanceChain(long,unsigned short * *)
?SetInheritanceChain@CWbemInstance@@UAGJJPAPAG@Z
; public: long __thiscall CInstancePart::SetInstanceQualifier(unsigned short const *,long,class CTypedValue *)
?SetInstanceQualifier@CInstancePart@@QAEJPBGJPAVCTypedValue@@@Z
; public: long __thiscall CInstancePart::SetInstanceQualifier(unsigned short const *,class CVar *,long)
?SetInstanceQualifier@CInstancePart@@QAEJPBGPAVCVar@@J@Z
; public: void __thiscall CFixedBSTRArray::SetLength(int)
?SetLength@CFixedBSTRArray@@QAEXH@Z
; public: void __thiscall CDecorationPart::SetLimited(void)
?SetLimited@CDecorationPart@@QAEXXZ
; public: void __thiscall CClassPart::SetLocalized(int)
?SetLocalized@CClassPart@@QAEXH@Z
; public: void __thiscall CInstancePart::SetLocalized(int)
?SetLocalized@CInstancePart@@QAEXH@Z
; public: virtual void __thiscall CWbemClass::SetLocalized(int)
?SetLocalized@CWbemClass@@UAEXH@Z
; public: virtual void __thiscall CWbemInstance::SetLocalized(int)
?SetLocalized@CWbemInstance@@UAEXH@Z
; public: long __thiscall CMethodPart::SetMethodOrigin(unsigned short const *,long)
?SetMethodOrigin@CMethodPart@@QAEJPBGJ@Z
; public: virtual long __stdcall CWbemClass::SetMethodOrigin(unsigned short const *,long)
?SetMethodOrigin@CWbemClass@@UAGJPBGJ@Z
; public: virtual long __stdcall CWbemInstance::SetMethodOrigin(unsigned short const *,long)
?SetMethodOrigin@CWbemInstance@@UAGJPBGJ@Z
; public: virtual long __stdcall CWbemObject::SetMethodQual(unsigned short const *,unsigned short const *,long,unsigned long,unsigned long,long,unsigned long,void *)
?SetMethodQual@CWbemObject@@UAGJPBG0JKKJKPAX@Z
; public: virtual long __thiscall CWbemClass::SetMethodQualifier(unsigned short const *,unsigned short const *,long,class CTypedValue *)
?SetMethodQualifier@CWbemClass@@UAEJPBG0JPAVCTypedValue@@@Z
; public: virtual long __thiscall CWbemClass::SetMethodQualifier(unsigned short const *,unsigned short const *,long,class CVar *)
?SetMethodQualifier@CWbemClass@@UAEJPBG0JPAVCVar@@@Z
; public: virtual long __thiscall CWbemInstance::SetMethodQualifier(unsigned short const *,unsigned short const *,long,class CTypedValue *)
?SetMethodQualifier@CWbemInstance@@UAEJPBG0JPAVCTypedValue@@@Z
; public: virtual long __thiscall CWbemInstance::SetMethodQualifier(unsigned short const *,unsigned short const *,long,class CVar *)
?SetMethodQualifier@CWbemInstance@@UAEJPBG0JPAVCVar@@@Z
; public: void __thiscall CDataTable::SetNullness(int,int)
?SetNullness@CDataTable@@QAEXHH@Z
; public: virtual long __stdcall CWbemObject::SetObjQual(unsigned short const *,long,unsigned long,unsigned long,long,unsigned long,void *)
?SetObjQual@CWbemObject@@UAGJPBGJKKJKPAX@Z
; public: virtual long __stdcall CWbemObject::SetObjectFlags(long,unsigned __int64,unsigned __int64)
?SetObjectFlags@CWbemObject@@UAGJJ_K0@Z
; public: virtual long __stdcall CWbemObject::SetObjectMemory(void *,unsigned long)
?SetObjectMemory@CWbemObject@@UAGJPAXK@Z
; public: virtual long __stdcall CWbemClass::SetObjectParts(void *,unsigned long,unsigned long)
?SetObjectParts@CWbemClass@@UAGJPAXKK@Z
; public: virtual long __stdcall CWbemInstance::SetObjectParts(void *,unsigned long,unsigned long)
?SetObjectParts@CWbemInstance@@UAGJPAXKK@Z
; public: void __thiscall CWbemThreadSecurityHandle::SetOrigin(enum tag_WMI_THREAD_SECURITY_ORIGIN)
?SetOrigin@CWbemThreadSecurityHandle@@QAEXW4tag_WMI_THREAD_SECURITY_ORIGIN@@@Z
; public: virtual long __stdcall CWbemObject::SetPropByHandle(long,long,unsigned long,void *)
?SetPropByHandle@CWbemObject@@UAGJJJKPAX@Z
; public: virtual long __stdcall CWbemObject::SetPropQual(unsigned short const *,unsigned short const *,long,unsigned long,unsigned long,long,unsigned long,void *)
?SetPropQual@CWbemObject@@UAGJPBG0JKKJKPAX@Z
; public: long __thiscall CClassPart::SetPropQualifier(unsigned short const *,unsigned short const *,long,class CTypedValue *)
?SetPropQualifier@CClassPart@@QAEJPBG0JPAVCTypedValue@@@Z
; public: long __thiscall CClassPart::SetPropQualifier(unsigned short const *,unsigned short const *,long,class CVar *)
?SetPropQualifier@CClassPart@@QAEJPBG0JPAVCVar@@@Z
; public: virtual long __thiscall CWbemClass::SetPropQualifier(unsigned short const *,unsigned short const *,long,class CTypedValue *)
?SetPropQualifier@CWbemClass@@UAEJPBG0JPAVCTypedValue@@@Z
; public: virtual long __thiscall CWbemClass::SetPropQualifier(unsigned short const *,unsigned short const *,long,class CVar *)
?SetPropQualifier@CWbemClass@@UAEJPBG0JPAVCVar@@@Z
; public: virtual long __thiscall CWbemInstance::SetPropQualifier(unsigned short const *,unsigned short const *,long,class CTypedValue *)
?SetPropQualifier@CWbemInstance@@UAEJPBG0JPAVCTypedValue@@@Z
; public: virtual long __thiscall CWbemInstance::SetPropQualifier(unsigned short const *,unsigned short const *,long,class CVar *)
?SetPropQualifier@CWbemInstance@@UAEJPBG0JPAVCVar@@@Z
; public: virtual long __thiscall CWbemClass::SetPropValue(unsigned short const *,class CVar *,long)
?SetPropValue@CWbemClass@@UAEJPBGPAVCVar@@J@Z
; public: virtual long __thiscall CWbemInstance::SetPropValue(unsigned short const *,class CVar *,long)
?SetPropValue@CWbemInstance@@UAEJPBGPAVCVar@@J@Z
; public: long __thiscall CClassPart::SetPropertyOrigin(unsigned short const *,long)
?SetPropertyOrigin@CClassPart@@QAEJPBGJ@Z
; public: virtual long __stdcall CWbemClass::SetPropertyOrigin(unsigned short const *,long)
?SetPropertyOrigin@CWbemClass@@UAGJPBGJ@Z
; public: virtual long __stdcall CWbemInstance::SetPropertyOrigin(unsigned short const *,long)
?SetPropertyOrigin@CWbemInstance@@UAGJPBGJ@Z
; public: virtual long __thiscall CWbemClass::SetQualifier(unsigned short const *,long,class CTypedValue *)
?SetQualifier@CWbemClass@@UAEJPBGJPAVCTypedValue@@@Z
; public: virtual long __thiscall CWbemClass::SetQualifier(unsigned short const *,class CVar *,long)
?SetQualifier@CWbemClass@@UAEJPBGPAVCVar@@J@Z
; public: virtual long __thiscall CWbemInstance::SetQualifier(unsigned short const *,long,class CTypedValue *)
?SetQualifier@CWbemInstance@@UAEJPBGJPAVCTypedValue@@@Z
; public: virtual long __thiscall CWbemInstance::SetQualifier(unsigned short const *,class CVar *,long)
?SetQualifier@CWbemInstance@@UAEJPBGPAVCVar@@J@Z
; public: long __thiscall CWbemObject::SetQualifierArrayRange(unsigned short const *,unsigned short const *,int,long,unsigned long,long,unsigned long,unsigned long,unsigned long,void *)
?SetQualifierArrayRange@CWbemObject@@QAEJPBG0HJKJKKKPAX@Z
; public: long __thiscall CQualifierSet::SetQualifierValue(unsigned short const *,unsigned char,class CTypedValue *,int,int)
?SetQualifierValue@CQualifierSet@@QAEJPBGEPAVCTypedValue@@HH@Z
; public: static long __stdcall CUntypedArray::SetRange(class CPtrSource *,long,unsigned long,unsigned long,class CFastHeap *,unsigned long,unsigned long,unsigned long,void *)
?SetRange@CUntypedArray@@SGJPAVCPtrSource@@JKKPAVCFastHeap@@KKKPAX@Z
; public: void __thiscall CInstancePQSContainer::SetSecondarySetData(void)
?SetSecondarySetData@CInstancePQSContainer@@QAEXXZ
; public: virtual long __stdcall CWbemObject::SetServerNamespace(unsigned short const *,unsigned short const *)
?SetServerNamespace@CWbemObject@@UAGJPBG0@Z
; protected: virtual long __thiscall CWbemRefreshingSvc::SetServiceData(unsigned short *,unsigned short *)
?SetServiceData@CWbemRefreshingSvc@@MAEJPAG0@Z
; public: virtual long __stdcall CWbemRefreshingSvc::XCfgRefrSrvc::SetServiceData(unsigned short *,unsigned short *)
?SetServiceData@XCfgRefrSrvc@CWbemRefreshingSvc@@UAGJPAG0@Z
; public: void __thiscall CMethodDescription::SetSig(int,unsigned long)
?SetSig@CMethodDescription@@QAEXHK@Z
; protected: long __thiscall CMethodPart::SetSignature(int,enum METHOD_SIGNATURE_TYPE,class CWbemObject *)
?SetSignature@CMethodPart@@IAEJHW4METHOD_SIGNATURE_TYPE@@PAVCWbemObject@@@Z
; public: void __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::SetSize(int)
?SetSize@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAEXH@Z
; public: void __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::SetSize(int)
?SetSize@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAEXH@Z
; public: virtual long __stdcall CWbemCallSecurity::SetThreadSecurity(struct _IWmiThreadSecHandle *)
?SetThreadSecurity@CWbemCallSecurity@@UAGJPAU_IWmiThreadSecHandle@@@Z
; public: void __thiscall CFastHeap::SetUsedLength(unsigned long)
?SetUsedLength@CFastHeap@@QAEXK@Z
; public: void __thiscall CLimitationMapping::SetVtableLength(unsigned long,int)
?SetVtableLength@CLimitationMapping@@QAEXKH@Z
; protected: long __thiscall CWbemDataPacket::SetupDataPacketHeader(unsigned long,unsigned char,unsigned long,unsigned long)
?SetupDataPacketHeader@CWbemDataPacket@@IAEJKEKK@Z
; public: int __thiscall CLimitationMapping::ShouldAddChildKeys(void)
?ShouldAddChildKeys@CLimitationMapping@@QAEHXZ
; public: int __thiscall CLimitationMapping::ShouldIncludeDerivation(void)
?ShouldIncludeDerivation@CLimitationMapping@@QAEHXZ
; public: int __thiscall CLimitationMapping::ShouldIncludeNamespace(void)
?ShouldIncludeNamespace@CLimitationMapping@@QAEHXZ
; public: int __thiscall CLimitationMapping::ShouldIncludeServer(void)
?ShouldIncludeServer@CLimitationMapping@@QAEHXZ
; public: int __thiscall CFastPropertyBag::Size(void)
?Size@CFastPropertyBag@@QAEHXZ
; public: unsigned char * __thiscall CBasicQualifierSet::Skip(void)
?Skip@CBasicQualifierSet@@QAEPAEXZ
; public: unsigned char * __thiscall CFastHeap::Skip(void)
?Skip@CFastHeap@@QAEPAEXZ
; public: unsigned char * __thiscall CPropertyLookupTable::Skip(void)
?Skip@CPropertyLookupTable@@QAEPAEXZ
; public: void __thiscall CFixedBSTRArray::SortInPlace(void)
?SortInPlace@CFixedBSTRArray@@QAEXXZ
; public: virtual long __stdcall CWbemClass::SpawnDerivedClass(long,struct IWbemClassObject * *)
?SpawnDerivedClass@CWbemClass@@UAGJJPAPAUIWbemClassObject@@@Z
; public: virtual long __stdcall CWbemInstance::SpawnDerivedClass(long,struct IWbemClassObject * *)
?SpawnDerivedClass@CWbemInstance@@UAGJJPAPAUIWbemClassObject@@@Z
; public: virtual long __stdcall CWbemClass::SpawnInstance(long,struct IWbemClassObject * *)
?SpawnInstance@CWbemClass@@UAGJJPAPAUIWbemClassObject@@@Z
; public: virtual long __stdcall CWbemInstance::SpawnInstance(long,struct IWbemClassObject * *)
?SpawnInstance@CWbemInstance@@UAGJJPAPAUIWbemClassObject@@@Z
; public: virtual long __stdcall CWbemClass::SpawnKeyedInstance(long,unsigned short const *,struct _IWmiObject * *)
?SpawnKeyedInstance@CWbemClass@@UAGJJPBGPAPAU_IWmiObject@@@Z
; public: virtual long __stdcall CWbemInstance::SpawnKeyedInstance(long,unsigned short const *,struct _IWmiObject * *)
?SpawnKeyedInstance@CWbemInstance@@UAGJJPBGPAPAU_IWmiObject@@@Z
; public: int __thiscall CCompressedString::StartsWithNoCase(unsigned short const *)const 
?StartsWithNoCase@CCompressedString@@QBEHPBG@Z
; public: virtual long __stdcall CWbemRemoteRefresher::XWbemRemoteRefr::StopRefreshing(long,long *,long)
?StopRefreshing@XWbemRemoteRefr@CWbemRemoteRefresher@@UAGJJPAJJ@Z
; public: void __thiscall CEmbeddedObject::StoreEmbedded(unsigned long,class CVar &)
?StoreEmbedded@CEmbeddedObject@@QAEXKAAVCVar@@@Z
; public: void __thiscall CEmbeddedObject::StoreEmbedded(unsigned long,class CWbemObject *)
?StoreEmbedded@CEmbeddedObject@@QAEXKPAVCWbemObject@@@Z
; protected: long __thiscall CQualifierSet::StoreQualifierConflicts(unsigned short const *,class CVar &,class CQualifierFlavor &,class CVarVector &)
?StoreQualifierConflicts@CQualifierSet@@IAEJPBGAAVCVar@@AAVCQualifierFlavor@@AAVCVarVector@@@Z
; public: int __thiscall CCompressedString::StoreToCVar(class CVar &)const 
?StoreToCVar@CCompressedString@@QBEHAAVCVar@@@Z
; public: void __thiscall CEmbeddedObject::StoreToCVar(class CVar &)
?StoreToCVar@CEmbeddedObject@@QAEXAAVCVar@@@Z
; public: virtual long __stdcall CWbemClass::StripClassPart(void)
?StripClassPart@CWbemClass@@UAGJXZ
; public: virtual long __stdcall CWbemInstance::StripClassPart(void)
?StripClassPart@CWbemInstance@@UAGJXZ
; public: void __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::Swap(int,int)
?Swap@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAEXHH@Z
; public: void __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::Swap(int,int)
?Swap@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAEXHH@Z
; public: long __thiscall CClassPart::TestCircularReference(unsigned short const *)
?TestCircularReference@CClassPart@@QAEJPBG@Z
; public: void __thiscall CFixedBSTRArray::ThreeWayMergeOrdered(class CFixedBSTRArray &,class CFixedBSTRArray &,class CFixedBSTRArray &)
?ThreeWayMergeOrdered@CFixedBSTRArray@@QAEXAAV1@00@Z
; public: static int __stdcall CBasicQualifierSet::TranslateToNewHeap(class CPtrSource *,class CFastHeap *,class CFastHeap *)
?TranslateToNewHeap@CBasicQualifierSet@@SGHPAVCPtrSource@@PAVCFastHeap@@1@Z
; public: int __thiscall CCompressedString::TranslateToNewHeap(class CFastHeap *,class CFastHeap *)
?TranslateToNewHeap@CCompressedString@@QAEHPAVCFastHeap@@0@Z
; public: int __thiscall CDataTable::TranslateToNewHeap(class CPropertyLookupTable *,int,class CFastHeap *,class CFastHeap *)
?TranslateToNewHeap@CDataTable@@QAEHPAVCPropertyLookupTable@@HPAVCFastHeap@@1@Z
; public: int __thiscall CInstancePart::TranslateToNewHeap(class CClassPart &,class CFastHeap *,class CFastHeap *)
?TranslateToNewHeap@CInstancePart@@QAEHAAVCClassPart@@PAVCFastHeap@@1@Z
; public: int __thiscall CQualifierSetList::TranslateToNewHeap(class CFastHeap *,class CFastHeap *)
?TranslateToNewHeap@CQualifierSetList@@QAEHPAVCFastHeap@@0@Z
; public: static int __stdcall CUntypedArray::TranslateToNewHeap(class CPtrSource *,class CType,class CFastHeap *,class CFastHeap *)
?TranslateToNewHeap@CUntypedArray@@SGHPAVCPtrSource@@VCType@@PAVCFastHeap@@2@Z
; public: void __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::Trim(void)
?Trim@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAEXXZ
; public: void __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::Trim(void)
?Trim@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAEXXZ
; public: void __thiscall CFastHeap::Trim(void)
?Trim@CFastHeap@@QAEXXZ
; public: void __thiscall CInternalString::Unbind(void)
?Unbind@CInternalString@@QAEXXZ
; public: class CFastPropertyBagItem * * __thiscall CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::UnbindPtr(void)
?UnbindPtr@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QAEPAPAVCFastPropertyBagItem@@XZ
; public: class CWmiTextSource * * __thiscall CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::UnbindPtr(void)
?UnbindPtr@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QAEPAPAVCWmiTextSource@@XZ
; public: virtual void __thiscall CWbemClass::Undecorate(void)
?Undecorate@CWbemClass@@UAEXXZ
; public: virtual void __thiscall CWbemInstance::Undecorate(void)
?Undecorate@CWbemInstance@@UAEXXZ
; public: long __thiscall CWbemFetchRefrMgr::Uninit(void)
?Uninit@CWbemFetchRefrMgr@@QAEJXZ
; public: virtual long __stdcall CWbemFetchRefrMgr::XFetchRefrMgr::Uninit(void)
?Uninit@XFetchRefrMgr@CWbemFetchRefrMgr@@UAGJXZ
; public: int __thiscall CHiPerfLock::Unlock(void)
?Unlock@CHiPerfLock@@QAEHXZ
; public: int __thiscall CSharedLock::Unlock(void)
?Unlock@CSharedLock@@QAEHXZ
; public: virtual long __stdcall CWbemObject::Unlock(long)
?Unlock@CWbemObject@@UAGJJ@Z
; public: virtual long __stdcall CWbemObject::UnmarshalInterface(struct IStream *,struct _GUID const &,void * *)
?UnmarshalInterface@CWbemObject@@UAGJPAUIStream@@ABU_GUID@@PAPAX@Z
; public: long __thiscall CWbemMtgtDeliverEventPacket::UnmarshalPacket(long &,struct IWbemClassObject * * &,class CWbemClassCache &)
?UnmarshalPacket@CWbemMtgtDeliverEventPacket@@QAEJAAJAAPAPAUIWbemClassObject@@AAVCWbemClassCache@@@Z
; public: long __thiscall CWbemObjectArrayPacket::UnmarshalPacket(long &,struct IWbemClassObject * * &,class CWbemClassCache &)
?UnmarshalPacket@CWbemObjectArrayPacket@@QAEJAAJAAPAPAUIWbemClassObject@@AAVCWbemClassCache@@@Z
; public: long __thiscall CWbemSmartEnumNextPacket::UnmarshalPacket(long &,struct IWbemClassObject * * &,class CWbemClassCache &)
?UnmarshalPacket@CWbemSmartEnumNextPacket@@QAEJAAJAAPAPAUIWbemClassObject@@AAVCWbemClassCache@@@Z
; public: static unsigned char * __stdcall CBasicQualifierSet::Unmerge(unsigned char *,class CFastHeap *,unsigned char *,class CFastHeap *)
?Unmerge@CBasicQualifierSet@@SGPAEPAEPAVCFastHeap@@01@Z
; public: unsigned char * __thiscall CClassAndMethods::Unmerge(unsigned char *,unsigned long)
?Unmerge@CClassAndMethods@@QAEPAEPAEK@Z
; public: unsigned char * __thiscall CClassPart::Unmerge(unsigned char *,int)
?Unmerge@CClassPart@@QAEPAEPAEH@Z
; public: unsigned char * __thiscall CDataTable::Unmerge(class CPropertyLookupTable *,class CFastHeap *,unsigned char *,class CFastHeap *)
?Unmerge@CDataTable@@QAEPAEPAVCPropertyLookupTable@@PAVCFastHeap@@PAE1@Z
; public: unsigned char * __thiscall CDerivationList::Unmerge(unsigned char *)
?Unmerge@CDerivationList@@QAEPAEPAE@Z
; public: unsigned char * __thiscall CMethodPart::Unmerge(unsigned char *,unsigned long)
?Unmerge@CMethodPart@@QAEPAEPAEK@Z
; public: unsigned char * __thiscall CPropertyLookupTable::Unmerge(class CDataTable *,class CFastHeap *,unsigned char *,class CFastHeap *)
?Unmerge@CPropertyLookupTable@@QAEPAEPAVCDataTable@@PAVCFastHeap@@PAE1@Z
; public: virtual long __thiscall CWbemClass::Unmerge(unsigned char *,int,unsigned long *)
?Unmerge@CWbemClass@@UAEJPAEHPAK@Z
; public: virtual long __thiscall CWbemInstance::Unmerge(unsigned char *,int,unsigned long *)
?Unmerge@CWbemInstance@@UAEJPAEHPAK@Z
; public: unsigned long __thiscall CWbemObject::Unmerge(unsigned char * *)
?Unmerge@CWbemObject@@QAEKPAPAE@Z
; public: virtual long __stdcall CWbemObject::Unmerge(long,unsigned long,unsigned long *,void *)
?Unmerge@CWbemObject@@UAGJJKPAKPAX@Z
; public: static long __stdcall CClassAndMethods::Update(class CClassAndMethods &,class CClassAndMethods &,long)
?Update@CClassAndMethods@@SGJAAV1@0J@Z
; public: static long __stdcall CClassPart::Update(class CClassPart &,class CClassPart &,long)
?Update@CClassPart@@SGJAAV1@0J@Z
; public: static long __stdcall CMethodPart::Update(class CMethodPart &,class CMethodPart &,long)
?Update@CMethodPart@@SGJAAV1@0J@Z
; public: long __thiscall CQualifierSet::Update(class CBasicQualifierSet &,long,class CFixedBSTRArray *)
?Update@CQualifierSet@@QAEJAAVCBasicQualifierSet@@JPAVCFixedBSTRArray@@@Z
; public: long __thiscall CWbemClass::Update(class CWbemClass *,long,class CWbemClass * *)
?Update@CWbemClass@@QAEJPAV1@JPAPAV1@@Z
; public: virtual long __stdcall CWbemClass::Update(struct _IWmiObject *,long,struct _IWmiObject * *)
?Update@CWbemClass@@UAGJPAU_IWmiObject@@JPAPAU2@@Z
; public: virtual long __stdcall CWbemInstance::Update(struct _IWmiObject *,long,struct _IWmiObject * *)
?Update@CWbemInstance@@UAGJPAU_IWmiObject@@JPAPAU2@@Z
; public: static long __stdcall CClassPart::UpdateProperties(class CClassPart &,class CClassPart &,long)
?UpdateProperties@CClassPart@@SGJAAV1@0J@Z
; public: virtual long __stdcall CWbemClass::Upgrade(struct _IWmiObject *,long,struct _IWmiObject * *)
?Upgrade@CWbemClass@@UAGJPAU_IWmiObject@@JPAPAU2@@Z
; public: virtual long __stdcall CWbemInstance::Upgrade(struct _IWmiObject *,long,struct _IWmiObject * *)
?Upgrade@CWbemInstance@@UAGJPAU_IWmiObject@@JPAPAU2@@Z
; protected: static char __stdcall CCompressedString::UpperByte(unsigned short)
?UpperByte@CCompressedString@@KGDG@Z
; public: static class CType  __stdcall CType::VARTYPEToType(unsigned short)
?VARTYPEToType@CType@@SG?AV1@G@Z
; public: long __thiscall CWbemInstance::Validate(void)
?Validate@CWbemInstance@@QAEJXZ
; public: static unsigned int __stdcall CBasicQualifierSet::ValidateBuffer(unsigned char *,unsigned int)
?ValidateBuffer@CBasicQualifierSet@@SGIPAEI@Z
; public: static unsigned int __stdcall CClassAndMethods::ValidateBuffer(unsigned char *,unsigned int)
?ValidateBuffer@CClassAndMethods@@SGIPAEI@Z
; public: static unsigned int __stdcall CClassPart::ValidateBuffer(unsigned char *,unsigned int)
?ValidateBuffer@CClassPart@@SGIPAEI@Z
; public: static unsigned int __stdcall CCompressedStringList::ValidateBuffer(unsigned char *,unsigned int)
?ValidateBuffer@CCompressedStringList@@SGIPAEI@Z
; public: static unsigned int __stdcall CDataTable::ValidateBuffer(unsigned char *,unsigned int,int)
?ValidateBuffer@CDataTable@@SGIPAEIH@Z
; public: static unsigned int __stdcall CDecorationPart::ValidateBuffer(unsigned char *,unsigned int)
?ValidateBuffer@CDecorationPart@@SGIPAEI@Z
; public: static void __stdcall CEmbeddedObject::ValidateBuffer(unsigned char *,unsigned int,class std::vector<struct EmbeddedObj,class wbem_allocator<struct EmbeddedObj> > &)
?ValidateBuffer@CEmbeddedObject@@SGXPAEIAAV?$vector@UEmbeddedObj@@V?$wbem_allocator@UEmbeddedObj@@@@@std@@@Z
; public: static unsigned int __stdcall CFastHeap::ValidateBuffer(unsigned char *,unsigned int)
?ValidateBuffer@CFastHeap@@SGIPAEI@Z
; public: static unsigned int __stdcall CInstancePart::ValidateBuffer(unsigned char *,unsigned int,class CClassPart &,class std::vector<struct EmbeddedObj,class wbem_allocator<struct EmbeddedObj> > &)
?ValidateBuffer@CInstancePart@@SGIPAEIAAVCClassPart@@AAV?$vector@UEmbeddedObj@@V?$wbem_allocator@UEmbeddedObj@@@@@std@@@Z
; public: static unsigned int __stdcall CMethodPart::ValidateBuffer(unsigned char *,unsigned int)
?ValidateBuffer@CMethodPart@@SGIPAEI@Z
; public: static unsigned int __stdcall CPropertyLookupTable::ValidateBuffer(unsigned char *,unsigned int)
?ValidateBuffer@CPropertyLookupTable@@SGIPAEI@Z
; public: static unsigned int __stdcall CQualifierSetList::ValidateBuffer(unsigned char *,unsigned int,int)
?ValidateBuffer@CQualifierSetList@@SGIPAEIH@Z
; public: static unsigned int __stdcall CWbemClass::ValidateBuffer(unsigned char *,unsigned int)
?ValidateBuffer@CWbemClass@@SGIPAEI@Z
; public: static unsigned int __stdcall CWbemInstance::ValidateBuffer(unsigned char *,int,unsigned long,class std::vector<struct EmbeddedObj,class wbem_allocator<struct EmbeddedObj> > &)
?ValidateBuffer@CWbemInstance@@SGIPAEHKAAV?$vector@UEmbeddedObj@@V?$wbem_allocator@UEmbeddedObj@@@@@std@@@Z
; public: static unsigned int __stdcall CWbemInstance::ValidateBuffer(unsigned char *,int,class CWbemInstance *,class std::vector<struct EmbeddedObj,class wbem_allocator<struct EmbeddedObj> > &)
?ValidateBuffer@CWbemInstance@@SGIPAEHPAV1@AAV?$vector@UEmbeddedObj@@V?$wbem_allocator@UEmbeddedObj@@@@@std@@@Z
; public: static unsigned int __stdcall CWbemInstance::ValidateBuffer(unsigned char *,unsigned int,class std::vector<struct EmbeddedObj,class wbem_allocator<struct EmbeddedObj> > &)
?ValidateBuffer@CWbemInstance@@SGIPAEIAAV?$vector@UEmbeddedObj@@V?$wbem_allocator@UEmbeddedObj@@@@@std@@@Z
; public: long __thiscall CLimitationMapping::ValidateInstance(class CWbemInstance *)
?ValidateInstance@CLimitationMapping@@QAEJPAVCWbemInstance@@@Z
; public: virtual long __stdcall CWbemObject::ValidateObject(long)
?ValidateObject@CWbemObject@@UAGJJ@Z
; protected: long __thiscall CMethodPart::ValidateOutParams(class CWbemObject *)
?ValidateOutParams@CMethodPart@@IAEJPAVCWbemObject@@@Z
; public: long __thiscall CWbemObject::ValidatePath(struct ParsedObjectPath *)
?ValidatePath@CWbemObject@@QAEJPAUParsedObjectPath@@@Z
; public: long __thiscall CPropertyLookupTable::ValidateRange(unsigned short * *,class CDataTable *,class CFastHeap *)
?ValidateRange@CPropertyLookupTable@@QAEJPAPAGPAVCDataTable@@PAVCFastHeap@@@Z
; public: int __thiscall CWbemObject::ValidateRange(unsigned short * *)
?ValidateRange@CWbemObject@@QAEHPAPAG@Z
; public: long __thiscall CQualifierSet::ValidateSet(unsigned short const *,unsigned char,class CTypedValue *,int,int)
?ValidateSet@CQualifierSet@@QAEJPBGEPAVCTypedValue@@HH@Z
; public: int __thiscall CCompressedString::ValidateSize(int)const 
?ValidateSize@CCompressedString@@QBEHH@Z
; public: static long __stdcall CWbemObject::WbemObjectFromCOMPtr(struct IUnknown *,class CWbemObject * *)
?WbemObjectFromCOMPtr@CWbemObject@@SGJPAUIUnknown@@PAPAV1@@Z
; unsigned short * __stdcall WbemStringCopy(unsigned short const *)
?WbemStringCopy@@YGPAGPBG@Z
; void __stdcall WbemStringFree(unsigned short *)
?WbemStringFree@@YGXPAG@Z
; protected: long __thiscall CWbemRefreshingSvc::WrapRemoteRefresher(struct IWbemRemoteRefresher * *)
?WrapRemoteRefresher@CWbemRefreshingSvc@@IAEJPAPAUIWbemRemoteRefresher@@@Z
; public: virtual long __stdcall CWbemObject::WriteDWORD(long,unsigned long)
?WriteDWORD@CWbemObject@@UAGJJK@Z
; public: long __thiscall CWbemClass::WriteDerivedClass(unsigned char *,int,class CDecorationPart *)
?WriteDerivedClass@CWbemClass@@QAEJPAEHPAVCDecorationPart@@@Z
; public: virtual long __stdcall CWbemObject::WriteProp(unsigned short const *,long,unsigned long,unsigned long,long,void *)
?WriteProp@CWbemObject@@UAGJPBGJKKJPAX@Z
; public: static unsigned char * __stdcall CBasicQualifierSet::WritePropagatedVersion(class CPtrSource *,unsigned char,class CPtrSource *,class CFastHeap *,class CFastHeap *)
?WritePropagatedVersion@CBasicQualifierSet@@SGPAEPAVCPtrSource@@E0PAVCFastHeap@@1@Z
; public: unsigned char * __thiscall CDataTable::WritePropagatedVersion(class CPropertyLookupTable *,class CFastHeap *,unsigned char *,class CFastHeap *)
?WritePropagatedVersion@CDataTable@@QAEPAEPAVCPropertyLookupTable@@PAVCFastHeap@@PAE1@Z
; public: unsigned char * __thiscall CPropertyLookupTable::WritePropagatedVersion(class CFastHeap *,unsigned char *,class CFastHeap *)
?WritePropagatedVersion@CPropertyLookupTable@@QAEPAEPAVCFastHeap@@PAE0@Z
; public: long __thiscall CWbemClass::WritePropertyAsMethodParam(class WString &,int,long,class CWbemClass *,int)
?WritePropertyAsMethodParam@CWbemClass@@QAEJAAVWString@@HJPAV1@H@Z
; public: virtual long __stdcall CWbemObject::WritePropertyValue(long,long,unsigned char const *)
?WritePropertyValue@CWbemObject@@UAGJJJPBE@Z
; public: virtual long __stdcall CWbemObject::WriteQWORD(long,unsigned __int64)
?WriteQWORD@CWbemObject@@UAGJJ_K@Z
; public: unsigned char * __thiscall CDataTable::WriteSmallerVersion(int,unsigned long,unsigned char *)
?WriteSmallerVersion@CDataTable@@QAEPAEHKPAE@Z
; public: unsigned char * __thiscall CQualifierSetList::WriteSmallerVersion(int,unsigned char *)
?WriteSmallerVersion@CQualifierSetList@@QAEPAEHPAE@Z
; public: virtual long __thiscall CWbemInstance::WriteToStream(struct IStream *)
?WriteToStream@CWbemInstance@@UAEJPAUIStream@@@Z
; public: virtual long __thiscall CWbemObject::WriteToStream(struct IStream *)
?WriteToStream@CWbemObject@@UAEJPAUIStream@@@Z
; public: static void __stdcall CWbemInstance::WriteTransferArrayHeader(long,unsigned char * *)
?WriteTransferArrayHeader@CWbemInstance@@SGXJPAPAE@Z
; public: virtual long __stdcall CWbemObject::_GetCoreInfo(long,void * *)
?_GetCoreInfo@CWbemObject@@UAGJJPAPAX@Z
; public: static unsigned short * __stdcall CCompressedString::fast_wcscpy(unsigned short *,unsigned short const *)
?fast_wcscpy@CCompressedString@@SGPAGPAGPBG@Z
; public: static int __stdcall CCompressedString::fast_wcslen(unsigned short const *)
?fast_wcslen@CCompressedString@@SGHPBG@Z
; public: static unsigned short * __stdcall CCompressedString::fast_wcsncpy(unsigned short *,unsigned short const *,int)
?fast_wcsncpy@CCompressedString@@SGPAGPAGPBGH@Z
; protected: static unsigned char *  CWbemDataPacket::s_abSignature
?s_abSignature@CWbemDataPacket@@1PAEA DATA
; private: static unsigned short const * *  CReservedWordTable::s_apwszReservedWords
?s_apwszReservedWords@CReservedWordTable@@0PAPBGA DATA
; protected: static class CStaticCritSec  CWbemFetchRefrMgr::s_cs
?s_cs@CWbemFetchRefrMgr@@1VCStaticCritSec@@A DATA
; protected: static struct _IWbemRefresherMgr *  CWbemFetchRefrMgr::s_pRefrMgr
?s_pRefrMgr@CWbemFetchRefrMgr@@1PAU_IWbemRefresherMgr@@A DATA
; private: static unsigned short const * const  CReservedWordTable::s_pszStartingCharsLCase
?s_pszStartingCharsLCase@CReservedWordTable@@0PBGB DATA
; private: static unsigned short const * const  CReservedWordTable::s_pszStartingCharsUCase
?s_pszStartingCharsUCase@CReservedWordTable@@0PBGB DATA
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer
_GetObjectCount@0
