; 
; Exports of file FastProx.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY FastProx.dll
EXPORTS
; public: __cdecl CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>::CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>(class CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc> const & __ptr64) __ptr64
??0?$CImpl@UIWbemObjectTextSrc@@VCWmiObjectTextSrc@@@@QEAA@AEBV0@@Z
; public: __cdecl CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>::CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>(class CWmiObjectTextSrc * __ptr64) __ptr64
??0?$CImpl@UIWbemObjectTextSrc@@VCWmiObjectTextSrc@@@@QEAA@PEAVCWmiObjectTextSrc@@@Z
; public: __cdecl CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>::CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>(class CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc> const & __ptr64) __ptr64
??0?$CImpl@UIWbemRefreshingServices@@VCWbemRefreshingSvc@@@@QEAA@AEBV0@@Z
; public: __cdecl CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>::CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>(class CWbemRefreshingSvc * __ptr64) __ptr64
??0?$CImpl@UIWbemRefreshingServices@@VCWbemRefreshingSvc@@@@QEAA@PEAVCWbemRefreshingSvc@@@Z
; public: __cdecl CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>::CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>(class CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher> const & __ptr64) __ptr64
??0?$CImpl@UIWbemRemoteRefresher@@VCWbemRemoteRefresher@@@@QEAA@AEBV0@@Z
; public: __cdecl CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>::CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>(class CWbemRemoteRefresher * __ptr64) __ptr64
??0?$CImpl@UIWbemRemoteRefresher@@VCWbemRemoteRefresher@@@@QEAA@PEAVCWbemRemoteRefresher@@@Z
; public: __cdecl CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>::CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>(class CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc> const & __ptr64) __ptr64
??0?$CImpl@U_IWbemConfigureRefreshingSvcs@@VCWbemRefreshingSvc@@@@QEAA@AEBV0@@Z
; public: __cdecl CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>::CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>(class CWbemRefreshingSvc * __ptr64) __ptr64
??0?$CImpl@U_IWbemConfigureRefreshingSvcs@@VCWbemRefreshingSvc@@@@QEAA@PEAVCWbemRefreshingSvc@@@Z
; public: __cdecl CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>::CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>(class CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling> const & __ptr64) __ptr64
??0?$CImpl@U_IWbemEnumMarshaling@@VCWbemEnumMarshaling@@@@QEAA@AEBV0@@Z
; public: __cdecl CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>::CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>(class CWbemEnumMarshaling * __ptr64) __ptr64
??0?$CImpl@U_IWbemEnumMarshaling@@VCWbemEnumMarshaling@@@@QEAA@PEAVCWbemEnumMarshaling@@@Z
; public: __cdecl CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>::CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>(class CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr> const & __ptr64) __ptr64
??0?$CImpl@U_IWbemFetchRefresherMgr@@VCWbemFetchRefrMgr@@@@QEAA@AEBV0@@Z
; public: __cdecl CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>::CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>(class CWbemFetchRefrMgr * __ptr64) __ptr64
??0?$CImpl@U_IWbemFetchRefresherMgr@@VCWbemFetchRefrMgr@@@@QEAA@PEAVCWbemFetchRefrMgr@@@Z
; public: __cdecl CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>::CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>(class CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory> const & __ptr64) __ptr64
??0?$CImpl@U_IWmiObjectFactory@@VCWmiObjectFactory@@@@QEAA@AEBV0@@Z
; public: __cdecl CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>::CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>(class CWmiObjectFactory * __ptr64) __ptr64
??0?$CImpl@U_IWmiObjectFactory@@VCWmiObjectFactory@@@@QEAA@PEAVCWmiObjectFactory@@@Z
; public: __cdecl 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> & __ptr64) __ptr64
??0?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAA@AEAV0@@Z
; public: __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>(class CReferenceManager<class CFastPropertyBagItem> const & __ptr64) __ptr64
??0?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAA@AEBV?$CReferenceManager@VCFastPropertyBagItem@@@@@Z
; public: __cdecl 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> & __ptr64) __ptr64
??0?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAA@AEAV0@@Z
; public: __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>(class CReferenceManager<class CWmiTextSource> const & __ptr64) __ptr64
??0?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAA@AEBV?$CReferenceManager@VCWmiTextSource@@@@@Z
; public: __cdecl CRefedPointerArray<class CFastPropertyBagItem>::CRefedPointerArray<class CFastPropertyBagItem>(class CRefedPointerArray<class CFastPropertyBagItem> & __ptr64) __ptr64
??0?$CRefedPointerArray@VCFastPropertyBagItem@@@@QEAA@AEAV0@@Z
; public: __cdecl CRefedPointerArray<class CFastPropertyBagItem>::CRefedPointerArray<class CFastPropertyBagItem>(void) __ptr64
??0?$CRefedPointerArray@VCFastPropertyBagItem@@@@QEAA@XZ
; public: __cdecl CRefedPointerArray<class CWmiTextSource>::CRefedPointerArray<class CWmiTextSource>(class CRefedPointerArray<class CWmiTextSource> & __ptr64) __ptr64
??0?$CRefedPointerArray@VCWmiTextSource@@@@QEAA@AEAV0@@Z
; public: __cdecl CRefedPointerArray<class CWmiTextSource>::CRefedPointerArray<class CWmiTextSource>(void) __ptr64
??0?$CRefedPointerArray@VCWmiTextSource@@@@QEAA@XZ
; public: __cdecl CBasicQualifierSet::CBasicQualifierSet(void) __ptr64
??0CBasicQualifierSet@@QEAA@XZ
; public: __cdecl CClassAndMethods::CClassAndMethods(class CClassAndMethods const & __ptr64) __ptr64
??0CClassAndMethods@@QEAA@AEBV0@@Z
; public: __cdecl CClassAndMethods::CClassAndMethods(void) __ptr64
??0CClassAndMethods@@QEAA@XZ
; public: __cdecl CClassPart::CClassPart(class CClassPart const & __ptr64) __ptr64
??0CClassPart@@QEAA@AEBV0@@Z
; public: __cdecl CClassPart::CClassPart(void) __ptr64
??0CClassPart@@QEAA@XZ
; public: __cdecl CClassPartContainer::CClassPartContainer(class CClassPartContainer const & __ptr64) __ptr64
??0CClassPartContainer@@QEAA@AEBV0@@Z
; public: __cdecl CClassPartContainer::CClassPartContainer(void) __ptr64
??0CClassPartContainer@@QEAA@XZ
; public: __cdecl CClassQualifierSet::CClassQualifierSet(class CClassQualifierSet const & __ptr64) __ptr64
??0CClassQualifierSet@@QEAA@AEBV0@@Z
; public: __cdecl CClassQualifierSet::CClassQualifierSet(int) __ptr64
??0CClassQualifierSet@@QEAA@H@Z
; public: __cdecl CDecorationPart::CDecorationPart(void) __ptr64
??0CDecorationPart@@QEAA@XZ
; public: __cdecl CFastPropertyBag::CFastPropertyBag(class CFastPropertyBag & __ptr64) __ptr64
??0CFastPropertyBag@@QEAA@AEAV0@@Z
; public: __cdecl CFastPropertyBag::CFastPropertyBag(void) __ptr64
??0CFastPropertyBag@@QEAA@XZ
; public: __cdecl CFixedBSTRArray::CFixedBSTRArray(void) __ptr64
??0CFixedBSTRArray@@QEAA@XZ
; public: __cdecl CHiPerfLock::CHiPerfLock(void) __ptr64
??0CHiPerfLock@@QEAA@XZ
; public: __cdecl CInstancePQSContainer::CInstancePQSContainer(class CInstancePQSContainer const & __ptr64) __ptr64
??0CInstancePQSContainer@@QEAA@AEBV0@@Z
; public: __cdecl CInstancePQSContainer::CInstancePQSContainer(void) __ptr64
??0CInstancePQSContainer@@QEAA@XZ
; public: __cdecl CInstancePart::CInstancePart(class CInstancePart const & __ptr64) __ptr64
??0CInstancePart@@QEAA@AEBV0@@Z
; public: __cdecl CInstancePart::CInstancePart(void) __ptr64
??0CInstancePart@@QEAA@XZ
; public: __cdecl CInstancePartContainer::CInstancePartContainer(class CInstancePartContainer const & __ptr64) __ptr64
??0CInstancePartContainer@@QEAA@AEBV0@@Z
; public: __cdecl CInstancePartContainer::CInstancePartContainer(void) __ptr64
??0CInstancePartContainer@@QEAA@XZ
; public: __cdecl CInstanceQualifierSet::CInstanceQualifierSet(class CInstanceQualifierSet const & __ptr64) __ptr64
??0CInstanceQualifierSet@@QEAA@AEBV0@@Z
; public: __cdecl CInstanceQualifierSet::CInstanceQualifierSet(int) __ptr64
??0CInstanceQualifierSet@@QEAA@H@Z
; public: __cdecl CInternalString::CInternalString(class CInternalString const & __ptr64) __ptr64
??0CInternalString@@QEAA@AEBV0@@Z
; public: __cdecl CInternalString::CInternalString(unsigned short const * __ptr64) __ptr64
??0CInternalString@@QEAA@PEBG@Z
; public: __cdecl CInternalString::CInternalString(void) __ptr64
??0CInternalString@@QEAA@XZ
; public: __cdecl CLimitationMapping::CLimitationMapping(class CLimitationMapping & __ptr64) __ptr64
??0CLimitationMapping@@QEAA@AEAV0@@Z
; public: __cdecl CLimitationMapping::CLimitationMapping(void) __ptr64
??0CLimitationMapping@@QEAA@XZ
; public: __cdecl CMethodPart::CMethodPart(class CMethodPart const & __ptr64) __ptr64
??0CMethodPart@@QEAA@AEBV0@@Z
; public: __cdecl CMethodPart::CMethodPart(void) __ptr64
??0CMethodPart@@QEAA@XZ
; public: __cdecl CMethodPartContainer::CMethodPartContainer(class CMethodPartContainer const & __ptr64) __ptr64
??0CMethodPartContainer@@QEAA@AEBV0@@Z
; public: __cdecl CMethodPartContainer::CMethodPartContainer(void) __ptr64
??0CMethodPartContainer@@QEAA@XZ
; public: __cdecl CMethodQualifierSet::CMethodQualifierSet(class CMethodQualifierSet const & __ptr64) __ptr64
??0CMethodQualifierSet@@QEAA@AEBV0@@Z
; public: __cdecl CMethodQualifierSet::CMethodQualifierSet(void) __ptr64
??0CMethodQualifierSet@@QEAA@XZ
; public: __cdecl CMethodQualifierSetContainer::CMethodQualifierSetContainer(class CMethodQualifierSetContainer const & __ptr64) __ptr64
??0CMethodQualifierSetContainer@@QEAA@AEBV0@@Z
; public: __cdecl CMethodQualifierSetContainer::CMethodQualifierSetContainer(void) __ptr64
??0CMethodQualifierSetContainer@@QEAA@XZ
; public: __cdecl CPropertyBagItemArray::CPropertyBagItemArray(class CPropertyBagItemArray & __ptr64) __ptr64
??0CPropertyBagItemArray@@QEAA@AEAV0@@Z
; public: __cdecl CPropertyBagItemArray::CPropertyBagItemArray(void) __ptr64
??0CPropertyBagItemArray@@QEAA@XZ
; public: __cdecl CQualifierSet::CQualifierSet(class CQualifierSet const & __ptr64) __ptr64
??0CQualifierSet@@QEAA@AEBV0@@Z
; public: __cdecl CQualifierSet::CQualifierSet(int,int) __ptr64
??0CQualifierSet@@QEAA@HH@Z
; public: __cdecl CQualifierSetListContainer::CQualifierSetListContainer(class CQualifierSetListContainer const & __ptr64) __ptr64
??0CQualifierSetListContainer@@QEAA@AEBV0@@Z
; public: __cdecl CQualifierSetListContainer::CQualifierSetListContainer(void) __ptr64
??0CQualifierSetListContainer@@QEAA@XZ
; public: __cdecl CType::CType(unsigned long) __ptr64
??0CType@@QEAA@K@Z
; public: __cdecl CType::CType(void) __ptr64
??0CType@@QEAA@XZ
; public: __cdecl CWbemCallSecurity::CWbemCallSecurity(class CWbemCallSecurity const & __ptr64) __ptr64
??0CWbemCallSecurity@@QEAA@AEBV0@@Z
; public: __cdecl CWbemCallSecurity::CWbemCallSecurity(class CLifeControl * __ptr64) __ptr64
??0CWbemCallSecurity@@QEAA@PEAVCLifeControl@@@Z
; public: __cdecl CWbemClass::CWbemClass(class CWbemClass const & __ptr64) __ptr64
??0CWbemClass@@QEAA@AEBV0@@Z
; public: __cdecl CWbemClass::CWbemClass(void) __ptr64
??0CWbemClass@@QEAA@XZ
; public: __cdecl CWbemClassCache::CWbemClassCache(class CWbemClassCache const & __ptr64) __ptr64
??0CWbemClassCache@@QEAA@AEBV0@@Z
; public: __cdecl CWbemClassCache::CWbemClassCache(unsigned long) __ptr64
??0CWbemClassCache@@QEAA@K@Z
; protected: __cdecl CWbemDataPacket::CWbemDataPacket(void) __ptr64
??0CWbemDataPacket@@IEAA@XZ
; public: __cdecl CWbemDataPacket::CWbemDataPacket(unsigned char * __ptr64,unsigned long,bool) __ptr64
??0CWbemDataPacket@@QEAA@PEAEK_N@Z
; public: __cdecl CWbemEnumMarshaling::CWbemEnumMarshaling(class CWbemEnumMarshaling const & __ptr64) __ptr64
??0CWbemEnumMarshaling@@QEAA@AEBV0@@Z
; public: __cdecl CWbemEnumMarshaling::CWbemEnumMarshaling(class CLifeControl * __ptr64,struct IUnknown * __ptr64) __ptr64
??0CWbemEnumMarshaling@@QEAA@PEAVCLifeControl@@PEAUIUnknown@@@Z
; public: __cdecl CWbemFetchRefrMgr::CWbemFetchRefrMgr(class CWbemFetchRefrMgr const & __ptr64) __ptr64
??0CWbemFetchRefrMgr@@QEAA@AEBV0@@Z
; public: __cdecl CWbemFetchRefrMgr::CWbemFetchRefrMgr(class CLifeControl * __ptr64,struct IUnknown * __ptr64) __ptr64
??0CWbemFetchRefrMgr@@QEAA@PEAVCLifeControl@@PEAUIUnknown@@@Z
; public: __cdecl CWbemGuidToClassMap::CWbemGuidToClassMap(class CWbemGuidToClassMap const & __ptr64) __ptr64
??0CWbemGuidToClassMap@@QEAA@AEBV0@@Z
; public: __cdecl CWbemGuidToClassMap::CWbemGuidToClassMap(void) __ptr64
??0CWbemGuidToClassMap@@QEAA@XZ
; public: __cdecl CWbemInstance::CWbemInstance(class CWbemInstance const & __ptr64) __ptr64
??0CWbemInstance@@QEAA@AEBV0@@Z
; public: __cdecl CWbemInstance::CWbemInstance(void) __ptr64
??0CWbemInstance@@QEAA@XZ
; private: __cdecl CWbemMtgtDeliverEventPacket::CWbemMtgtDeliverEventPacket(void) __ptr64
??0CWbemMtgtDeliverEventPacket@@AEAA@XZ
; public: __cdecl CWbemMtgtDeliverEventPacket::CWbemMtgtDeliverEventPacket(unsigned char * __ptr64,unsigned long,bool) __ptr64
??0CWbemMtgtDeliverEventPacket@@QEAA@PEAEK_N@Z
; protected: __cdecl CWbemObject::CWbemObject(class CDataTable & __ptr64,class CFastHeap & __ptr64,class CDerivationList & __ptr64) __ptr64
??0CWbemObject@@IEAA@AEAVCDataTable@@AEAVCFastHeap@@AEAVCDerivationList@@@Z
; public: __cdecl CWbemObject::CWbemObject(class CWbemObject const & __ptr64) __ptr64
??0CWbemObject@@QEAA@AEBV0@@Z
; public: __cdecl CWbemObjectArrayPacket::CWbemObjectArrayPacket(unsigned char * __ptr64,unsigned long,bool) __ptr64
??0CWbemObjectArrayPacket@@QEAA@PEAEK_N@Z
; public: __cdecl CWbemRefreshingSvc::CWbemRefreshingSvc(class CWbemRefreshingSvc const & __ptr64) __ptr64
??0CWbemRefreshingSvc@@QEAA@AEBV0@@Z
; public: __cdecl CWbemRefreshingSvc::CWbemRefreshingSvc(class CLifeControl * __ptr64,struct IUnknown * __ptr64) __ptr64
??0CWbemRefreshingSvc@@QEAA@PEAVCLifeControl@@PEAUIUnknown@@@Z
; private: __cdecl CWbemSmartEnumNextPacket::CWbemSmartEnumNextPacket(void) __ptr64
??0CWbemSmartEnumNextPacket@@AEAA@XZ
; public: __cdecl CWbemSmartEnumNextPacket::CWbemSmartEnumNextPacket(unsigned char * __ptr64,unsigned long,bool) __ptr64
??0CWbemSmartEnumNextPacket@@QEAA@PEAEK_N@Z
; public: __cdecl CWbemThreadSecurityHandle::CWbemThreadSecurityHandle(class CWbemThreadSecurityHandle const & __ptr64) __ptr64
??0CWbemThreadSecurityHandle@@QEAA@AEBV0@@Z
; public: __cdecl CWbemThreadSecurityHandle::CWbemThreadSecurityHandle(class CLifeControl * __ptr64) __ptr64
??0CWbemThreadSecurityHandle@@QEAA@PEAVCLifeControl@@@Z
; public: __cdecl CWmiObjectFactory::CWmiObjectFactory(class CWmiObjectFactory const & __ptr64) __ptr64
??0CWmiObjectFactory@@QEAA@AEBV0@@Z
; public: __cdecl CWmiObjectFactory::CWmiObjectFactory(class CLifeControl * __ptr64,struct IUnknown * __ptr64) __ptr64
??0CWmiObjectFactory@@QEAA@PEAVCLifeControl@@PEAUIUnknown@@@Z
; public: __cdecl CWmiTextSourceArray::CWmiTextSourceArray(class CWmiTextSourceArray & __ptr64) __ptr64
??0CWmiTextSourceArray@@QEAA@AEAV0@@Z
; public: __cdecl CWmiTextSourceArray::CWmiTextSourceArray(void) __ptr64
??0CWmiTextSourceArray@@QEAA@XZ
; public: __cdecl SHARED_LOCK_DATA::SHARED_LOCK_DATA(void) __ptr64
??0SHARED_LOCK_DATA@@QEAA@XZ
; public: __cdecl CWbemRefreshingSvc::XCfgRefrSrvc::XCfgRefrSrvc(class XCfgRefrSrvc::XCfgRefrSrvc const & __ptr64) __ptr64
??0XCfgRefrSrvc@CWbemRefreshingSvc@@QEAA@AEBV01@@Z
; public: __cdecl CWbemRefreshingSvc::XCfgRefrSrvc::XCfgRefrSrvc(class XCfgRefrSrvc * __ptr64) __ptr64
??0XCfgRefrSrvc@CWbemRefreshingSvc@@QEAA@PEAV1@@Z
; public: __cdecl CWbemEnumMarshaling::XEnumMarshaling::XEnumMarshaling(class XEnumMarshaling::XEnumMarshaling const & __ptr64) __ptr64
??0XEnumMarshaling@CWbemEnumMarshaling@@QEAA@AEBV01@@Z
; public: __cdecl CWbemEnumMarshaling::XEnumMarshaling::XEnumMarshaling(class XEnumMarshaling * __ptr64) __ptr64
??0XEnumMarshaling@CWbemEnumMarshaling@@QEAA@PEAV1@@Z
; public: __cdecl CWbemFetchRefrMgr::XFetchRefrMgr::XFetchRefrMgr(class XFetchRefrMgr::XFetchRefrMgr const & __ptr64) __ptr64
??0XFetchRefrMgr@CWbemFetchRefrMgr@@QEAA@AEBV01@@Z
; public: __cdecl CWbemFetchRefrMgr::XFetchRefrMgr::XFetchRefrMgr(class XFetchRefrMgr * __ptr64) __ptr64
??0XFetchRefrMgr@CWbemFetchRefrMgr@@QEAA@PEAV1@@Z
; public: __cdecl CWmiObjectFactory::XObjectFactory::XObjectFactory(class XObjectFactory::XObjectFactory const & __ptr64) __ptr64
??0XObjectFactory@CWmiObjectFactory@@QEAA@AEBV01@@Z
; public: __cdecl CWmiObjectFactory::XObjectFactory::XObjectFactory(class XObjectFactory * __ptr64) __ptr64
??0XObjectFactory@CWmiObjectFactory@@QEAA@PEAV1@@Z
; public: __cdecl CWmiObjectTextSrc::XObjectTextSrc::XObjectTextSrc(class XObjectTextSrc::XObjectTextSrc const & __ptr64) __ptr64
??0XObjectTextSrc@CWmiObjectTextSrc@@QEAA@AEBV01@@Z
; public: __cdecl CWmiObjectTextSrc::XObjectTextSrc::XObjectTextSrc(class XObjectTextSrc * __ptr64) __ptr64
??0XObjectTextSrc@CWmiObjectTextSrc@@QEAA@PEAV1@@Z
; public: __cdecl CWbemRefreshingSvc::XWbemRefrSvc::XWbemRefrSvc(class XWbemRefrSvc::XWbemRefrSvc const & __ptr64) __ptr64
??0XWbemRefrSvc@CWbemRefreshingSvc@@QEAA@AEBV01@@Z
; public: __cdecl CWbemRefreshingSvc::XWbemRefrSvc::XWbemRefrSvc(class XWbemRefrSvc * __ptr64) __ptr64
??0XWbemRefrSvc@CWbemRefreshingSvc@@QEAA@PEAV1@@Z
; public: __cdecl CWbemRemoteRefresher::XWbemRemoteRefr::XWbemRemoteRefr(class XWbemRemoteRefr::XWbemRemoteRefr const & __ptr64) __ptr64
??0XWbemRemoteRefr@CWbemRemoteRefresher@@QEAA@AEBV01@@Z
; public: __cdecl CWbemRemoteRefresher::XWbemRemoteRefr::XWbemRemoteRefr(class XWbemRemoteRefr * __ptr64) __ptr64
??0XWbemRemoteRefr@CWbemRemoteRefresher@@QEAA@PEAV1@@Z
; public: __cdecl CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>::~CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>(void) __ptr64
??1?$CImpl@UIWbemObjectTextSrc@@VCWmiObjectTextSrc@@@@QEAA@XZ
; public: __cdecl CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>::~CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>(void) __ptr64
??1?$CImpl@UIWbemRefreshingServices@@VCWbemRefreshingSvc@@@@QEAA@XZ
; public: __cdecl CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>::~CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>(void) __ptr64
??1?$CImpl@UIWbemRemoteRefresher@@VCWbemRemoteRefresher@@@@QEAA@XZ
; public: __cdecl CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>::~CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>(void) __ptr64
??1?$CImpl@U_IWbemConfigureRefreshingSvcs@@VCWbemRefreshingSvc@@@@QEAA@XZ
; public: __cdecl CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>::~CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>(void) __ptr64
??1?$CImpl@U_IWbemEnumMarshaling@@VCWbemEnumMarshaling@@@@QEAA@XZ
; public: __cdecl CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>::~CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>(void) __ptr64
??1?$CImpl@U_IWbemFetchRefresherMgr@@VCWbemFetchRefrMgr@@@@QEAA@XZ
; public: __cdecl CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>::~CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>(void) __ptr64
??1?$CImpl@U_IWmiObjectFactory@@VCWmiObjectFactory@@@@QEAA@XZ
; public: __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::~CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>(void) __ptr64
??1?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAA@XZ
; public: __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::~CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>(void) __ptr64
??1?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAA@XZ
; public: __cdecl CRefedPointerArray<class CFastPropertyBagItem>::~CRefedPointerArray<class CFastPropertyBagItem>(void) __ptr64
??1?$CRefedPointerArray@VCFastPropertyBagItem@@@@QEAA@XZ
; public: __cdecl CRefedPointerArray<class CWmiTextSource>::~CRefedPointerArray<class CWmiTextSource>(void) __ptr64
??1?$CRefedPointerArray@VCWmiTextSource@@@@QEAA@XZ
; public: __cdecl CBasicQualifierSet::~CBasicQualifierSet(void) __ptr64
??1CBasicQualifierSet@@QEAA@XZ
; public: __cdecl CClassAndMethods::~CClassAndMethods(void) __ptr64
??1CClassAndMethods@@QEAA@XZ
; public: __cdecl CClassPart::~CClassPart(void) __ptr64
??1CClassPart@@QEAA@XZ
; public: virtual __cdecl CClassQualifierSet::~CClassQualifierSet(void) __ptr64
??1CClassQualifierSet@@UEAA@XZ
; public: virtual __cdecl CFastPropertyBag::~CFastPropertyBag(void) __ptr64
??1CFastPropertyBag@@UEAA@XZ
; public: __cdecl CFixedBSTRArray::~CFixedBSTRArray(void) __ptr64
??1CFixedBSTRArray@@QEAA@XZ
; public: __cdecl CInstancePQSContainer::~CInstancePQSContainer(void) __ptr64
??1CInstancePQSContainer@@QEAA@XZ
; public: __cdecl CInstancePart::~CInstancePart(void) __ptr64
??1CInstancePart@@QEAA@XZ
; public: virtual __cdecl CInstanceQualifierSet::~CInstanceQualifierSet(void) __ptr64
??1CInstanceQualifierSet@@UEAA@XZ
; public: __cdecl CInternalString::~CInternalString(void) __ptr64
??1CInternalString@@QEAA@XZ
; public: __cdecl CLimitationMapping::~CLimitationMapping(void) __ptr64
??1CLimitationMapping@@QEAA@XZ
; public: virtual __cdecl CMethodQualifierSet::~CMethodQualifierSet(void) __ptr64
??1CMethodQualifierSet@@UEAA@XZ
; public: __cdecl CMethodQualifierSetContainer::~CMethodQualifierSetContainer(void) __ptr64
??1CMethodQualifierSetContainer@@QEAA@XZ
; public: __cdecl CPropertyBagItemArray::~CPropertyBagItemArray(void) __ptr64
??1CPropertyBagItemArray@@QEAA@XZ
; public: virtual __cdecl CQualifierSet::~CQualifierSet(void) __ptr64
??1CQualifierSet@@UEAA@XZ
; public: __cdecl CWbemCallSecurity::~CWbemCallSecurity(void) __ptr64
??1CWbemCallSecurity@@QEAA@XZ
; public: virtual __cdecl CWbemClass::~CWbemClass(void) __ptr64
??1CWbemClass@@UEAA@XZ
; public: __cdecl CWbemClassCache::~CWbemClassCache(void) __ptr64
??1CWbemClassCache@@QEAA@XZ
; public: __cdecl CWbemDataPacket::~CWbemDataPacket(void) __ptr64
??1CWbemDataPacket@@QEAA@XZ
; public: virtual __cdecl CWbemEnumMarshaling::~CWbemEnumMarshaling(void) __ptr64
??1CWbemEnumMarshaling@@UEAA@XZ
; public: virtual __cdecl CWbemFetchRefrMgr::~CWbemFetchRefrMgr(void) __ptr64
??1CWbemFetchRefrMgr@@UEAA@XZ
; public: __cdecl CWbemGuidToClassMap::~CWbemGuidToClassMap(void) __ptr64
??1CWbemGuidToClassMap@@QEAA@XZ
; public: virtual __cdecl CWbemInstance::~CWbemInstance(void) __ptr64
??1CWbemInstance@@UEAA@XZ
; public: __cdecl CWbemMtgtDeliverEventPacket::~CWbemMtgtDeliverEventPacket(void) __ptr64
??1CWbemMtgtDeliverEventPacket@@QEAA@XZ
; public: virtual __cdecl CWbemObject::~CWbemObject(void) __ptr64
??1CWbemObject@@UEAA@XZ
; public: __cdecl CWbemObjectArrayPacket::~CWbemObjectArrayPacket(void) __ptr64
??1CWbemObjectArrayPacket@@QEAA@XZ
; public: virtual __cdecl CWbemRefreshingSvc::~CWbemRefreshingSvc(void) __ptr64
??1CWbemRefreshingSvc@@UEAA@XZ
; public: __cdecl CWbemSmartEnumNextPacket::~CWbemSmartEnumNextPacket(void) __ptr64
??1CWbemSmartEnumNextPacket@@QEAA@XZ
; public: __cdecl CWbemThreadSecurityHandle::~CWbemThreadSecurityHandle(void) __ptr64
??1CWbemThreadSecurityHandle@@QEAA@XZ
; public: virtual __cdecl CWmiObjectFactory::~CWmiObjectFactory(void) __ptr64
??1CWmiObjectFactory@@UEAA@XZ
; public: __cdecl CWmiTextSourceArray::~CWmiTextSourceArray(void) __ptr64
??1CWmiTextSourceArray@@QEAA@XZ
; public: __cdecl CWbemRefreshingSvc::XCfgRefrSrvc::~XCfgRefrSrvc(void) __ptr64
??1XCfgRefrSrvc@CWbemRefreshingSvc@@QEAA@XZ
; public: __cdecl CWbemEnumMarshaling::XEnumMarshaling::~XEnumMarshaling(void) __ptr64
??1XEnumMarshaling@CWbemEnumMarshaling@@QEAA@XZ
; public: __cdecl CWbemFetchRefrMgr::XFetchRefrMgr::~XFetchRefrMgr(void) __ptr64
??1XFetchRefrMgr@CWbemFetchRefrMgr@@QEAA@XZ
; public: __cdecl CWmiObjectFactory::XObjectFactory::~XObjectFactory(void) __ptr64
??1XObjectFactory@CWmiObjectFactory@@QEAA@XZ
; public: __cdecl CWmiObjectTextSrc::XObjectTextSrc::~XObjectTextSrc(void) __ptr64
??1XObjectTextSrc@CWmiObjectTextSrc@@QEAA@XZ
; public: __cdecl CWbemRefreshingSvc::XWbemRefrSvc::~XWbemRefrSvc(void) __ptr64
??1XWbemRefrSvc@CWbemRefreshingSvc@@QEAA@XZ
; public: __cdecl CWbemRemoteRefresher::XWbemRemoteRefr::~XWbemRemoteRefr(void) __ptr64
??1XWbemRemoteRefr@CWbemRemoteRefresher@@QEAA@XZ
; public: class CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc> & __ptr64 __cdecl CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>::operator=(class CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc> const & __ptr64) __ptr64
??4?$CImpl@UIWbemObjectTextSrc@@VCWmiObjectTextSrc@@@@QEAAAEAV0@AEBV0@@Z
; public: class CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc> & __ptr64 __cdecl CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>::operator=(class CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc> const & __ptr64) __ptr64
??4?$CImpl@UIWbemRefreshingServices@@VCWbemRefreshingSvc@@@@QEAAAEAV0@AEBV0@@Z
; public: class CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher> & __ptr64 __cdecl CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>::operator=(class CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher> const & __ptr64) __ptr64
??4?$CImpl@UIWbemRemoteRefresher@@VCWbemRemoteRefresher@@@@QEAAAEAV0@AEBV0@@Z
; public: class CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc> & __ptr64 __cdecl CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>::operator=(class CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc> const & __ptr64) __ptr64
??4?$CImpl@U_IWbemConfigureRefreshingSvcs@@VCWbemRefreshingSvc@@@@QEAAAEAV0@AEBV0@@Z
; public: class CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling> & __ptr64 __cdecl CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>::operator=(class CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling> const & __ptr64) __ptr64
??4?$CImpl@U_IWbemEnumMarshaling@@VCWbemEnumMarshaling@@@@QEAAAEAV0@AEBV0@@Z
; public: class CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr> & __ptr64 __cdecl CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>::operator=(class CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr> const & __ptr64) __ptr64
??4?$CImpl@U_IWbemFetchRefresherMgr@@VCWbemFetchRefrMgr@@@@QEAAAEAV0@AEBV0@@Z
; public: class CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory> & __ptr64 __cdecl CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>::operator=(class CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory> const & __ptr64) __ptr64
??4?$CImpl@U_IWmiObjectFactory@@VCWmiObjectFactory@@@@QEAAAEAV0@AEBV0@@Z
; public: class CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray> & __ptr64 __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::operator=(class CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray> & __ptr64) __ptr64
??4?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAAAEAV0@AEAV0@@Z
; public: class CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray> & __ptr64 __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::operator=(class CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray> & __ptr64) __ptr64
??4?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAAAEAV0@AEAV0@@Z
; public: class CRefedPointerArray<class CFastPropertyBagItem> & __ptr64 __cdecl CRefedPointerArray<class CFastPropertyBagItem>::operator=(class CRefedPointerArray<class CFastPropertyBagItem> & __ptr64) __ptr64
??4?$CRefedPointerArray@VCFastPropertyBagItem@@@@QEAAAEAV0@AEAV0@@Z
; public: class CRefedPointerArray<class CWmiTextSource> & __ptr64 __cdecl CRefedPointerArray<class CWmiTextSource>::operator=(class CRefedPointerArray<class CWmiTextSource> & __ptr64) __ptr64
??4?$CRefedPointerArray@VCWmiTextSource@@@@QEAAAEAV0@AEAV0@@Z
; public: class CBasicQualifierSet & __ptr64 __cdecl CBasicQualifierSet::operator=(class CBasicQualifierSet const & __ptr64) __ptr64
??4CBasicQualifierSet@@QEAAAEAV0@AEBV0@@Z
; public: class CClassAndMethods & __ptr64 __cdecl CClassAndMethods::operator=(class CClassAndMethods const & __ptr64) __ptr64
??4CClassAndMethods@@QEAAAEAV0@AEBV0@@Z
; public: class CClassPart & __ptr64 __cdecl CClassPart::operator=(class CClassPart const & __ptr64) __ptr64
??4CClassPart@@QEAAAEAV0@AEBV0@@Z
; public: class CClassPartContainer & __ptr64 __cdecl CClassPartContainer::operator=(class CClassPartContainer const & __ptr64) __ptr64
??4CClassPartContainer@@QEAAAEAV0@AEBV0@@Z
; public: class CClassQualifierSet & __ptr64 __cdecl CClassQualifierSet::operator=(class CClassQualifierSet const & __ptr64) __ptr64
??4CClassQualifierSet@@QEAAAEAV0@AEBV0@@Z
; public: class CCompressedString & __ptr64 __cdecl CCompressedString::operator=(class CCompressedString const & __ptr64) __ptr64
??4CCompressedString@@QEAAAEAV0@AEBV0@@Z
; public: class CCompressedStringList & __ptr64 __cdecl CCompressedStringList::operator=(class CCompressedStringList const & __ptr64) __ptr64
??4CCompressedStringList@@QEAAAEAV0@AEBV0@@Z
; public: class CDataTable & __ptr64 __cdecl CDataTable::operator=(class CDataTable const & __ptr64) __ptr64
??4CDataTable@@QEAAAEAV0@AEBV0@@Z
; public: class CDecorationPart & __ptr64 __cdecl CDecorationPart::operator=(class CDecorationPart const & __ptr64) __ptr64
??4CDecorationPart@@QEAAAEAV0@AEBV0@@Z
; public: class CDerivationList & __ptr64 __cdecl CDerivationList::operator=(class CDerivationList const & __ptr64) __ptr64
??4CDerivationList@@QEAAAEAV0@AEBV0@@Z
; public: class CEmbeddedObject & __ptr64 __cdecl CEmbeddedObject::operator=(class CEmbeddedObject const & __ptr64) __ptr64
??4CEmbeddedObject@@QEAAAEAV0@AEBV0@@Z
; public: class CFastHeap & __ptr64 __cdecl CFastHeap::operator=(class CFastHeap const & __ptr64) __ptr64
??4CFastHeap@@QEAAAEAV0@AEBV0@@Z
; public: class CFastPropertyBag & __ptr64 __cdecl CFastPropertyBag::operator=(class CFastPropertyBag & __ptr64) __ptr64
??4CFastPropertyBag@@QEAAAEAV0@AEAV0@@Z
; public: class CFixedBSTRArray & __ptr64 __cdecl CFixedBSTRArray::operator=(class CFixedBSTRArray const & __ptr64) __ptr64
??4CFixedBSTRArray@@QEAAAEAV0@AEBV0@@Z
; public: class CHiPerfLock & __ptr64 __cdecl CHiPerfLock::operator=(class CHiPerfLock const & __ptr64) __ptr64
??4CHiPerfLock@@QEAAAEAV0@AEBV0@@Z
; public: class CInstancePQSContainer & __ptr64 __cdecl CInstancePQSContainer::operator=(class CInstancePQSContainer const & __ptr64) __ptr64
??4CInstancePQSContainer@@QEAAAEAV0@AEBV0@@Z
; public: class CInstancePart & __ptr64 __cdecl CInstancePart::operator=(class CInstancePart const & __ptr64) __ptr64
??4CInstancePart@@QEAAAEAV0@AEBV0@@Z
; public: class CInstancePartContainer & __ptr64 __cdecl CInstancePartContainer::operator=(class CInstancePartContainer const & __ptr64) __ptr64
??4CInstancePartContainer@@QEAAAEAV0@AEBV0@@Z
; public: class CInstanceQualifierSet & __ptr64 __cdecl CInstanceQualifierSet::operator=(class CInstanceQualifierSet const & __ptr64) __ptr64
??4CInstanceQualifierSet@@QEAAAEAV0@AEBV0@@Z
; public: class CInternalString & __ptr64 __cdecl CInternalString::operator=(class CInternalString const & __ptr64) __ptr64
??4CInternalString@@QEAAAEAV0@AEBV0@@Z
; public: int __cdecl CInternalString::operator=(class CCompressedString * __ptr64) __ptr64
??4CInternalString@@QEAAHPEAVCCompressedString@@@Z
; public: int __cdecl CInternalString::operator=(unsigned short const * __ptr64) __ptr64
??4CInternalString@@QEAAHPEBG@Z
; public: class CKnownStringTable & __ptr64 __cdecl CKnownStringTable::operator=(class CKnownStringTable const & __ptr64) __ptr64
??4CKnownStringTable@@QEAAAEAV0@AEBV0@@Z
; public: class CLimitationMapping & __ptr64 __cdecl CLimitationMapping::operator=(class CLimitationMapping & __ptr64) __ptr64
??4CLimitationMapping@@QEAAAEAV0@AEAV0@@Z
; public: struct CMethodDescription & __ptr64 __cdecl CMethodDescription::operator=(struct CMethodDescription const & __ptr64) __ptr64
??4CMethodDescription@@QEAAAEAU0@AEBU0@@Z
; public: class CMethodPart & __ptr64 __cdecl CMethodPart::operator=(class CMethodPart const & __ptr64) __ptr64
??4CMethodPart@@QEAAAEAV0@AEBV0@@Z
; public: class CMethodPartContainer & __ptr64 __cdecl CMethodPartContainer::operator=(class CMethodPartContainer const & __ptr64) __ptr64
??4CMethodPartContainer@@QEAAAEAV0@AEBV0@@Z
; public: class CMethodQualifierSet & __ptr64 __cdecl CMethodQualifierSet::operator=(class CMethodQualifierSet const & __ptr64) __ptr64
??4CMethodQualifierSet@@QEAAAEAV0@AEBV0@@Z
; public: class CMethodQualifierSetContainer & __ptr64 __cdecl CMethodQualifierSetContainer::operator=(class CMethodQualifierSetContainer const & __ptr64) __ptr64
??4CMethodQualifierSetContainer@@QEAAAEAV0@AEBV0@@Z
; public: class CPropertyBagItemArray & __ptr64 __cdecl CPropertyBagItemArray::operator=(class CPropertyBagItemArray & __ptr64) __ptr64
??4CPropertyBagItemArray@@QEAAAEAV0@AEAV0@@Z
; public: class CPropertyLookupTable & __ptr64 __cdecl CPropertyLookupTable::operator=(class CPropertyLookupTable const & __ptr64) __ptr64
??4CPropertyLookupTable@@QEAAAEAV0@AEBV0@@Z
; public: class CQualifierSet & __ptr64 __cdecl CQualifierSet::operator=(class CQualifierSet const & __ptr64) __ptr64
??4CQualifierSet@@QEAAAEAV0@AEBV0@@Z
; public: class CQualifierSetList & __ptr64 __cdecl CQualifierSetList::operator=(class CQualifierSetList const & __ptr64) __ptr64
??4CQualifierSetList@@QEAAAEAV0@AEBV0@@Z
; public: class CQualifierSetListContainer & __ptr64 __cdecl CQualifierSetListContainer::operator=(class CQualifierSetListContainer const & __ptr64) __ptr64
??4CQualifierSetListContainer@@QEAAAEAV0@AEBV0@@Z
; public: class CReservedWordTable & __ptr64 __cdecl CReservedWordTable::operator=(class CReservedWordTable const & __ptr64) __ptr64
??4CReservedWordTable@@QEAAAEAV0@AEBV0@@Z
; public: class CSharedLock & __ptr64 __cdecl CSharedLock::operator=(class CSharedLock const & __ptr64) __ptr64
??4CSharedLock@@QEAAAEAV0@AEBV0@@Z
; public: class CSystemProperties & __ptr64 __cdecl CSystemProperties::operator=(class CSystemProperties const & __ptr64) __ptr64
??4CSystemProperties@@QEAAAEAV0@AEBV0@@Z
; public: class CType & __ptr64 __cdecl CType::operator=(class CType const & __ptr64) __ptr64
??4CType@@QEAAAEAV0@AEBV0@@Z
; public: class CUntypedArray & __ptr64 __cdecl CUntypedArray::operator=(class CUntypedArray const & __ptr64) __ptr64
??4CUntypedArray@@QEAAAEAV0@AEBV0@@Z
; public: class CWbemCallSecurity & __ptr64 __cdecl CWbemCallSecurity::operator=(class CWbemCallSecurity const & __ptr64) __ptr64
??4CWbemCallSecurity@@QEAAAEAV0@AEBV0@@Z
; public: class CWbemClassCache & __ptr64 __cdecl CWbemClassCache::operator=(class CWbemClassCache const & __ptr64) __ptr64
??4CWbemClassCache@@QEAAAEAV0@AEBV0@@Z
; public: class CWbemDataPacket & __ptr64 __cdecl CWbemDataPacket::operator=(class CWbemDataPacket const & __ptr64) __ptr64
??4CWbemDataPacket@@QEAAAEAV0@AEBV0@@Z
; public: class CWbemEnumMarshaling & __ptr64 __cdecl CWbemEnumMarshaling::operator=(class CWbemEnumMarshaling const & __ptr64) __ptr64
??4CWbemEnumMarshaling@@QEAAAEAV0@AEBV0@@Z
; public: class CWbemFetchRefrMgr & __ptr64 __cdecl CWbemFetchRefrMgr::operator=(class CWbemFetchRefrMgr const & __ptr64) __ptr64
??4CWbemFetchRefrMgr@@QEAAAEAV0@AEBV0@@Z
; public: class CWbemGuidToClassMap & __ptr64 __cdecl CWbemGuidToClassMap::operator=(class CWbemGuidToClassMap const & __ptr64) __ptr64
??4CWbemGuidToClassMap@@QEAAAEAV0@AEBV0@@Z
; public: class CWbemMtgtDeliverEventPacket & __ptr64 __cdecl CWbemMtgtDeliverEventPacket::operator=(class CWbemMtgtDeliverEventPacket const & __ptr64) __ptr64
??4CWbemMtgtDeliverEventPacket@@QEAAAEAV0@AEBV0@@Z
; public: class CWbemObjectArrayPacket & __ptr64 __cdecl CWbemObjectArrayPacket::operator=(class CWbemObjectArrayPacket const & __ptr64) __ptr64
??4CWbemObjectArrayPacket@@QEAAAEAV0@AEBV0@@Z
; public: class CWbemRefreshingSvc & __ptr64 __cdecl CWbemRefreshingSvc::operator=(class CWbemRefreshingSvc const & __ptr64) __ptr64
??4CWbemRefreshingSvc@@QEAAAEAV0@AEBV0@@Z
; public: class CWbemSmartEnumNextPacket & __ptr64 __cdecl CWbemSmartEnumNextPacket::operator=(class CWbemSmartEnumNextPacket const & __ptr64) __ptr64
??4CWbemSmartEnumNextPacket@@QEAAAEAV0@AEBV0@@Z
; public: class CWbemThreadSecurityHandle & __ptr64 __cdecl CWbemThreadSecurityHandle::operator=(class CWbemThreadSecurityHandle const & __ptr64) __ptr64
??4CWbemThreadSecurityHandle@@QEAAAEAV0@AEBV0@@Z
; public: class CWmiObjectFactory & __ptr64 __cdecl CWmiObjectFactory::operator=(class CWmiObjectFactory const & __ptr64) __ptr64
??4CWmiObjectFactory@@QEAAAEAV0@AEBV0@@Z
; public: class CWmiTextSourceArray & __ptr64 __cdecl CWmiTextSourceArray::operator=(class CWmiTextSourceArray & __ptr64) __ptr64
??4CWmiTextSourceArray@@QEAAAEAV0@AEAV0@@Z
; public: struct SHARED_LOCK_DATA & __ptr64 __cdecl SHARED_LOCK_DATA::operator=(struct SHARED_LOCK_DATA const & __ptr64) __ptr64
??4SHARED_LOCK_DATA@@QEAAAEAU0@AEBU0@@Z
; public: struct SHMEM_HANDLE & __ptr64 __cdecl SHMEM_HANDLE::operator=(struct SHMEM_HANDLE const & __ptr64) __ptr64
??4SHMEM_HANDLE@@QEAAAEAU0@AEBU0@@Z
; public: class CWbemRefreshingSvc::XCfgRefrSrvc & __ptr64 __cdecl CWbemRefreshingSvc::XCfgRefrSrvc::operator=(class CWbemRefreshingSvc::XCfgRefrSrvc const & __ptr64) __ptr64
??4XCfgRefrSrvc@CWbemRefreshingSvc@@QEAAAEAV01@AEBV01@@Z
; public: class CWbemEnumMarshaling::XEnumMarshaling & __ptr64 __cdecl CWbemEnumMarshaling::XEnumMarshaling::operator=(class CWbemEnumMarshaling::XEnumMarshaling const & __ptr64) __ptr64
??4XEnumMarshaling@CWbemEnumMarshaling@@QEAAAEAV01@AEBV01@@Z
; public: class CWbemFetchRefrMgr::XFetchRefrMgr & __ptr64 __cdecl CWbemFetchRefrMgr::XFetchRefrMgr::operator=(class CWbemFetchRefrMgr::XFetchRefrMgr const & __ptr64) __ptr64
??4XFetchRefrMgr@CWbemFetchRefrMgr@@QEAAAEAV01@AEBV01@@Z
; public: class CWmiObjectFactory::XObjectFactory & __ptr64 __cdecl CWmiObjectFactory::XObjectFactory::operator=(class CWmiObjectFactory::XObjectFactory const & __ptr64) __ptr64
??4XObjectFactory@CWmiObjectFactory@@QEAAAEAV01@AEBV01@@Z
; public: class CWmiObjectTextSrc::XObjectTextSrc & __ptr64 __cdecl CWmiObjectTextSrc::XObjectTextSrc::operator=(class CWmiObjectTextSrc::XObjectTextSrc const & __ptr64) __ptr64
??4XObjectTextSrc@CWmiObjectTextSrc@@QEAAAEAV01@AEBV01@@Z
; public: class CWbemRefreshingSvc::XWbemRefrSvc & __ptr64 __cdecl CWbemRefreshingSvc::XWbemRefrSvc::operator=(class CWbemRefreshingSvc::XWbemRefrSvc const & __ptr64) __ptr64
??4XWbemRefrSvc@CWbemRefreshingSvc@@QEAAAEAV01@AEBV01@@Z
; public: class CWbemRemoteRefresher::XWbemRemoteRefr & __ptr64 __cdecl CWbemRemoteRefresher::XWbemRemoteRefr::operator=(class CWbemRemoteRefresher::XWbemRemoteRefr const & __ptr64) __ptr64
??4XWbemRemoteRefr@CWbemRemoteRefresher@@QEAAAEAV01@AEBV01@@Z
; public: bool __cdecl CInternalString::operator==(class CInternalString const & __ptr64)const  __ptr64
??8CInternalString@@QEBA_NAEBV0@@Z
; public: bool __cdecl CInternalString::operator==(unsigned short const * __ptr64)const  __ptr64
??8CInternalString@@QEBA_NPEBG@Z
; public: int __cdecl CQualifierSet::operator==(class CQualifierSet & __ptr64) __ptr64
??8CQualifierSet@@QEAAHAEAV0@@Z
; public: bool __cdecl CInternalString::operator!=(class CInternalString const & __ptr64)const  __ptr64
??9CInternalString@@QEBA_NAEBV0@@Z
; public: class CFastPropertyBagItem * __ptr64 __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::operator[](int) __ptr64
??A?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAAPEAVCFastPropertyBagItem@@H@Z
; public: class CFastPropertyBagItem const * __ptr64 __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::operator[](int)const  __ptr64
??A?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEBAPEBVCFastPropertyBagItem@@H@Z
; public: class CWmiTextSource * __ptr64 __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::operator[](int) __ptr64
??A?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAAPEAVCWmiTextSource@@H@Z
; public: class CWmiTextSource const * __ptr64 __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::operator[](int)const  __ptr64
??A?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEBAPEBVCWmiTextSource@@H@Z
; public: unsigned short * __ptr64 & __ptr64 __cdecl CFixedBSTRArray::operator[](int) __ptr64
??ACFixedBSTRArray@@QEAAAEAPEAGH@Z
; private: __cdecl CInternalString::operator class CCompressedString * __ptr64(void) __ptr64
??BCInternalString@@AEAAPEAVCCompressedString@@XZ
; private: __cdecl CInternalString::operator class CCompressedString * __ptr64(void)const  __ptr64
??BCInternalString@@AEBAPEAVCCompressedString@@XZ
; public: __cdecl CInternalString::operator class WString(void)const  __ptr64
??BCInternalString@@QEBA?AVWString@@XZ
; public: __cdecl CType::operator unsigned long(void) __ptr64
??BCType@@QEAAKXZ
; public: bool __cdecl CInternalString::operator<(class CInternalString const & __ptr64)const  __ptr64
??MCInternalString@@QEBA_NAEBV0@@Z
; public: bool __cdecl CInternalString::operator>(class CInternalString const & __ptr64)const  __ptr64
??OCInternalString@@QEBA_NAEBV0@@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 __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::`default constructor closure'(void) __ptr64
??_F?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAAXXZ
; public: void __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::`default constructor closure'(void) __ptr64
??_F?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAAXXZ
; public: void __cdecl CClassQualifierSet::`default constructor closure'(void) __ptr64
??_FCClassQualifierSet@@QEAAXXZ
; public: void __cdecl CInstanceQualifierSet::`default constructor closure'(void) __ptr64
??_FCInstanceQualifierSet@@QEAAXXZ
; public: void __cdecl CWbemClassCache::`default constructor closure'(void) __ptr64
??_FCWbemClassCache@@QEAAXXZ
; protected: unsigned long __cdecl CFastHeap::AbsoluteToHeap(unsigned char * __ptr64) __ptr64
?AbsoluteToHeap@CFastHeap@@IEAAKPEAE@Z
; public: void __cdecl CInternalString::AcquireCompressedString(class CCompressedString * __ptr64) __ptr64
?AcquireCompressedString@CInternalString@@QEAAXPEAVCCompressedString@@@Z
; public: int __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::Add(class CFastPropertyBagItem * __ptr64) __ptr64
?Add@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAAHPEAVCFastPropertyBagItem@@@Z
; public: int __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::Add(class CWmiTextSource * __ptr64) __ptr64
?Add@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAAHPEAVCWmiTextSource@@@Z
; public: long __cdecl CFastPropertyBag::Add(unsigned short const * __ptr64,long,unsigned long,unsigned long,void * __ptr64) __ptr64
?Add@CFastPropertyBag@@QEAAJPEBGJKKPEAX@Z
; protected: virtual long __cdecl CWbemRefreshingSvc::AddEnumToRefresher(struct _WBEM_REFRESHER_ID * __ptr64,unsigned short const * __ptr64,long,struct IWbemContext * __ptr64,unsigned long,struct _WBEM_REFRESH_INFO * __ptr64,unsigned long * __ptr64) __ptr64
?AddEnumToRefresher@CWbemRefreshingSvc@@MEAAJPEAU_WBEM_REFRESHER_ID@@PEBGJPEAUIWbemContext@@KPEAU_WBEM_REFRESH_INFO@@PEAK@Z
; public: virtual long __cdecl CWbemRefreshingSvc::XWbemRefrSvc::AddEnumToRefresher(struct _WBEM_REFRESHER_ID * __ptr64,unsigned short const * __ptr64,long,struct IWbemContext * __ptr64,unsigned long,struct _WBEM_REFRESH_INFO * __ptr64,unsigned long * __ptr64) __ptr64
?AddEnumToRefresher@XWbemRefrSvc@CWbemRefreshingSvc@@UEAAJPEAU_WBEM_REFRESHER_ID@@PEBGJPEAUIWbemContext@@KPEAU_WBEM_REFRESH_INFO@@PEAK@Z
; protected: long __cdecl CWbemRefreshingSvc::AddEnumToRefresher_(int,struct _WBEM_REFRESHER_ID * __ptr64,class CWbemObject * __ptr64,unsigned short const * __ptr64,long,struct IWbemContext * __ptr64,struct _WBEM_REFRESH_INFO * __ptr64) __ptr64
?AddEnumToRefresher_@CWbemRefreshingSvc@@IEAAJHPEAU_WBEM_REFRESHER_ID@@PEAVCWbemObject@@PEBGJPEAUIWbemContext@@PEAU_WBEM_REFRESH_INFO@@@Z
; public: long __cdecl CWbemGuidToClassMap::AddMap(class CGUID & __ptr64,class CWbemClassToIdMap * __ptr64 * __ptr64) __ptr64
?AddMap@CWbemGuidToClassMap@@QEAAJAEAVCGUID@@PEAPEAVCWbemClassToIdMap@@@Z
; public: long __cdecl CWbemClassCache::AddObject(struct _GUID & __ptr64,struct IWbemClassObject * __ptr64) __ptr64
?AddObject@CWbemClassCache@@QEAAJAEAU_GUID@@PEAUIWbemClassObject@@@Z
; protected: virtual long __cdecl CWbemRefreshingSvc::AddObjectToRefresher(struct _WBEM_REFRESHER_ID * __ptr64,unsigned short const * __ptr64,long,struct IWbemContext * __ptr64,unsigned long,struct _WBEM_REFRESH_INFO * __ptr64,unsigned long * __ptr64) __ptr64
?AddObjectToRefresher@CWbemRefreshingSvc@@MEAAJPEAU_WBEM_REFRESHER_ID@@PEBGJPEAUIWbemContext@@KPEAU_WBEM_REFRESH_INFO@@PEAK@Z
; public: virtual long __cdecl CWbemRefreshingSvc::XWbemRefrSvc::AddObjectToRefresher(struct _WBEM_REFRESHER_ID * __ptr64,unsigned short const * __ptr64,long,struct IWbemContext * __ptr64,unsigned long,struct _WBEM_REFRESH_INFO * __ptr64,unsigned long * __ptr64) __ptr64
?AddObjectToRefresher@XWbemRefrSvc@CWbemRefreshingSvc@@UEAAJPEAU_WBEM_REFRESHER_ID@@PEBGJPEAUIWbemContext@@KPEAU_WBEM_REFRESH_INFO@@PEAK@Z
; protected: virtual long __cdecl CWbemRefreshingSvc::AddObjectToRefresherByTemplate(struct _WBEM_REFRESHER_ID * __ptr64,struct IWbemClassObject * __ptr64,long,struct IWbemContext * __ptr64,unsigned long,struct _WBEM_REFRESH_INFO * __ptr64,unsigned long * __ptr64) __ptr64
?AddObjectToRefresherByTemplate@CWbemRefreshingSvc@@MEAAJPEAU_WBEM_REFRESHER_ID@@PEAUIWbemClassObject@@JPEAUIWbemContext@@KPEAU_WBEM_REFRESH_INFO@@PEAK@Z
; public: virtual long __cdecl CWbemRefreshingSvc::XWbemRefrSvc::AddObjectToRefresherByTemplate(struct _WBEM_REFRESHER_ID * __ptr64,struct IWbemClassObject * __ptr64,long,struct IWbemContext * __ptr64,unsigned long,struct _WBEM_REFRESH_INFO * __ptr64,unsigned long * __ptr64) __ptr64
?AddObjectToRefresherByTemplate@XWbemRefrSvc@CWbemRefreshingSvc@@UEAAJPEAU_WBEM_REFRESHER_ID@@PEAUIWbemClassObject@@JPEAUIWbemContext@@KPEAU_WBEM_REFRESH_INFO@@PEAK@Z
; protected: long __cdecl CWbemRefreshingSvc::AddObjectToRefresher_(int,struct _WBEM_REFRESHER_ID * __ptr64,class CWbemObject * __ptr64,long,struct IWbemContext * __ptr64,struct _WBEM_REFRESH_INFO * __ptr64) __ptr64
?AddObjectToRefresher_@CWbemRefreshingSvc@@IEAAJHPEAU_WBEM_REFRESHER_ID@@PEAVCWbemObject@@JPEAUIWbemContext@@PEAU_WBEM_REFRESH_INFO@@@Z
; public: long __cdecl CWbemClass::AddPropertyText(class WString & __ptr64,struct CPropertyLookup * __ptr64,class CPropertyInformation * __ptr64,long) __ptr64
?AddPropertyText@CWbemClass@@QEAAJAEAVWString@@PEAUCPropertyLookup@@PEAVCPropertyInformation@@J@Z
; public: static void __cdecl CType::AddPropertyType(class WString & __ptr64,unsigned short const * __ptr64)
?AddPropertyType@CType@@SAXAEAVWString@@PEBG@Z
; protected: long __cdecl CQualifierSet::AddQualifierConflicts(class CVarVector & __ptr64) __ptr64
?AddQualifierConflicts@CQualifierSet@@IEAAJAEAVCVarVector@@@Z
; public: virtual unsigned long __cdecl CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>::AddRef(void) __ptr64
?AddRef@?$CImpl@UIWbemObjectTextSrc@@VCWmiObjectTextSrc@@@@UEAAKXZ
; public: virtual unsigned long __cdecl CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>::AddRef(void) __ptr64
?AddRef@?$CImpl@UIWbemRefreshingServices@@VCWbemRefreshingSvc@@@@UEAAKXZ
; public: virtual unsigned long __cdecl CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>::AddRef(void) __ptr64
?AddRef@?$CImpl@UIWbemRemoteRefresher@@VCWbemRemoteRefresher@@@@UEAAKXZ
; public: virtual unsigned long __cdecl CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>::AddRef(void) __ptr64
?AddRef@?$CImpl@U_IWbemConfigureRefreshingSvcs@@VCWbemRefreshingSvc@@@@UEAAKXZ
; public: virtual unsigned long __cdecl CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>::AddRef(void) __ptr64
?AddRef@?$CImpl@U_IWbemEnumMarshaling@@VCWbemEnumMarshaling@@@@UEAAKXZ
; public: virtual unsigned long __cdecl CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>::AddRef(void) __ptr64
?AddRef@?$CImpl@U_IWbemFetchRefresherMgr@@VCWbemFetchRefrMgr@@@@UEAAKXZ
; public: virtual unsigned long __cdecl CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>::AddRef(void) __ptr64
?AddRef@?$CImpl@U_IWmiObjectFactory@@VCWmiObjectFactory@@@@UEAAKXZ
; public: virtual unsigned long __cdecl CQualifierSet::AddRef(void) __ptr64
?AddRef@CQualifierSet@@UEAAKXZ
; public: virtual unsigned long __cdecl CWbemCallSecurity::AddRef(void) __ptr64
?AddRef@CWbemCallSecurity@@UEAAKXZ
; public: virtual unsigned long __cdecl CWbemObject::AddRef(void) __ptr64
?AddRef@CWbemObject@@UEAAKXZ
; public: virtual unsigned long __cdecl CWbemThreadSecurityHandle::AddRef(void) __ptr64
?AddRef@CWbemThreadSecurityHandle@@UEAAKXZ
; protected: void __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::AddRefElement(class CFastPropertyBagItem * __ptr64) __ptr64
?AddRefElement@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@IEAAXPEAVCFastPropertyBagItem@@@Z
; protected: void __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::AddRefElement(class CWmiTextSource * __ptr64) __ptr64
?AddRefElement@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@IEAAXPEAVCWmiTextSource@@@Z
; public: void __cdecl CCompressedStringList::AddString(unsigned short const * __ptr64) __ptr64
?AddString@CCompressedStringList@@QEAAXPEBG@Z
; public: static long __cdecl CMethodDescription::AddText(struct CMethodDescription * __ptr64 __ptr64,class WString & __ptr64,class CFastHeap * __ptr64,long)
?AddText@CMethodDescription@@SAJPEFAU1@AEAVWString@@PEAVCFastHeap@@J@Z
; public: long __cdecl CMethodPart::AddText(class WString & __ptr64,long) __ptr64
?AddText@CMethodPart@@QEAAJAEAVWString@@J@Z
; public: int __cdecl CFastHeap::Allocate(unsigned long,unsigned long & __ptr64 __ptr64) __ptr64
?Allocate@CFastHeap@@QEAAHKAEFAK@Z
; public: int __cdecl CFastHeap::AllocateString(char const * __ptr64,unsigned long & __ptr64 __ptr64) __ptr64
?AllocateString@CFastHeap@@QEAAHPEBDAEFAK@Z
; public: int __cdecl CFastHeap::AllocateString(unsigned short const * __ptr64,unsigned long & __ptr64 __ptr64) __ptr64
?AllocateString@CFastHeap@@QEAAHPEBGAEFAK@Z
; public: virtual long __cdecl CWbemObject::AppendArrayPropRangeByHandle(long,long,unsigned long,unsigned long,void * __ptr64) __ptr64
?AppendArrayPropRangeByHandle@CWbemObject@@UEAAJJJKKPEAX@Z
; public: long __cdecl CWbemObject::AppendQualifierArrayRange(unsigned short const * __ptr64,unsigned short const * __ptr64,int,long,long,unsigned long,unsigned long,void * __ptr64) __ptr64
?AppendQualifierArrayRange@CWbemObject@@QEAAJPEBG0HJJKKPEAX@Z
; public: static long __cdecl CUntypedArray::AppendRange(class CPtrSource * __ptr64,unsigned long,unsigned long,class CFastHeap * __ptr64,unsigned long,unsigned long,void * __ptr64)
?AppendRange@CUntypedArray@@SAJPEAVCPtrSource@@KKPEAVCFastHeap@@KKPEAX@Z
; public: static int __cdecl CWbemObject::AreEqual(class CWbemObject * __ptr64,class CWbemObject * __ptr64,long)
?AreEqual@CWbemObject@@SAHPEAV1@0J@Z
; public: int __cdecl CDecorationPart::AreKeysRemoved(void) __ptr64
?AreKeysRemoved@CDecorationPart@@QEAAHXZ
; public: int __cdecl CLimitationMapping::ArePropertiesLimited(void) __ptr64
?ArePropertiesLimited@CLimitationMapping@@QEAAHXZ
; public: static long __cdecl CWbemInstance::AsymmetricMerge(class CWbemInstance * __ptr64,class CWbemInstance * __ptr64)
?AsymmetricMerge@CWbemInstance@@SAJPEAV1@0@Z
; protected: unsigned long __cdecl CFastHeap::AugmentRequest(unsigned long,unsigned long) __ptr64
?AugmentRequest@CFastHeap@@IEAAKKK@Z
; public: virtual long __cdecl CQualifierSet::BeginEnumeration(long) __ptr64
?BeginEnumeration@CQualifierSet@@UEAAJJ@Z
; public: virtual long __cdecl CWbemObject::BeginEnumeration(long) __ptr64
?BeginEnumeration@CWbemObject@@UEAAJJ@Z
; public: virtual long __cdecl CWbemObject::BeginEnumerationEx(long,long) __ptr64
?BeginEnumerationEx@CWbemObject@@UEAAJJJ@Z
; public: virtual long __cdecl CWbemClass::BeginMethodEnumeration(long) __ptr64
?BeginMethodEnumeration@CWbemClass@@UEAAJJ@Z
; public: virtual long __cdecl CWbemInstance::BeginMethodEnumeration(long) __ptr64
?BeginMethodEnumeration@CWbemInstance@@UEAAJJ@Z
; public: void __cdecl CLimitationMapping::Build(int) __ptr64
?Build@CLimitationMapping@@QEAAXH@Z
; public: virtual long __cdecl CWbemObject::CIMTYPEToVARTYPE(long,unsigned short * __ptr64) __ptr64
?CIMTYPEToVARTYPE@CWbemObject@@UEAAJJPEAG@Z
; public: static class CType  __cdecl CType::CVarToType(class CVar & __ptr64)
?CVarToType@CType@@SA?AV1@AEAVCVar@@@Z
; public: class CVar * __ptr64 __cdecl CWbemInstance::CalculateCachedKey(void) __ptr64
?CalculateCachedKey@CWbemInstance@@QEAAPEAVCVar@@XZ
; public: long __cdecl CWbemMtgtDeliverEventPacket::CalculateLength(long,struct IWbemClassObject * __ptr64 * __ptr64,unsigned long * __ptr64,class CWbemClassToIdMap & __ptr64,struct _GUID * __ptr64,int * __ptr64) __ptr64
?CalculateLength@CWbemMtgtDeliverEventPacket@@QEAAJJPEAPEAUIWbemClassObject@@PEAKAEAVCWbemClassToIdMap@@PEAU_GUID@@PEAH@Z
; public: long __cdecl CWbemObjectArrayPacket::CalculateLength(long,struct IWbemClassObject * __ptr64 * __ptr64,unsigned long * __ptr64,class CWbemClassToIdMap & __ptr64,struct _GUID * __ptr64,int * __ptr64) __ptr64
?CalculateLength@CWbemObjectArrayPacket@@QEAAJJPEAPEAUIWbemClassObject@@PEAKAEAVCWbemClassToIdMap@@PEAU_GUID@@PEAH@Z
; public: long __cdecl CWbemSmartEnumNextPacket::CalculateLength(long,struct IWbemClassObject * __ptr64 * __ptr64,unsigned long * __ptr64,class CWbemClassToIdMap & __ptr64,struct _GUID * __ptr64,int * __ptr64) __ptr64
?CalculateLength@CWbemSmartEnumNextPacket@@QEAAJJPEAPEAUIWbemClassObject@@PEAKAEAVCWbemClassToIdMap@@PEAU_GUID@@PEAH@Z
; public: static unsigned long __cdecl CUntypedArray::CalculateNecessarySpaceByLength(int,int)
?CalculateNecessarySpaceByLength@CUntypedArray@@SAKHH@Z
; public: static unsigned long __cdecl CUntypedArray::CalculateNecessarySpaceByType(class CType,int)
?CalculateNecessarySpaceByType@CUntypedArray@@SAKVCType@@H@Z
; public: static int __cdecl CType::CanBeKey(unsigned long)
?CanBeKey@CType@@SAHK@Z
; public: int __cdecl CBasicQualifierSet::CanBeReconciledWith(class CBasicQualifierSet & __ptr64) __ptr64
?CanBeReconciledWith@CBasicQualifierSet@@QEAAHAEAV1@@Z
; public: enum EReconciliation  __cdecl CClassAndMethods::CanBeReconciledWith(class CClassAndMethods & __ptr64) __ptr64
?CanBeReconciledWith@CClassAndMethods@@QEAA?AW4EReconciliation@@AEAV1@@Z
; public: enum EReconciliation  __cdecl CClassPart::CanBeReconciledWith(class CClassPart & __ptr64) __ptr64
?CanBeReconciledWith@CClassPart@@QEAA?AW4EReconciliation@@AEAV1@@Z
; public: enum EReconciliation  __cdecl CMethodPart::CanBeReconciledWith(class CMethodPart & __ptr64) __ptr64
?CanBeReconciledWith@CMethodPart@@QEAA?AW4EReconciliation@@AEAV1@@Z
; public: enum EReconciliation  __cdecl CWbemClass::CanBeReconciledWith(class CWbemClass * __ptr64) __ptr64
?CanBeReconciledWith@CWbemClass@@QEAA?AW4EReconciliation@@PEAV1@@Z
; public: virtual long __cdecl CClassPart::CanContainAbstract(int) __ptr64
?CanContainAbstract@CClassPart@@UEAAJH@Z
; public: virtual long __cdecl CInstancePQSContainer::CanContainAbstract(int) __ptr64
?CanContainAbstract@CInstancePQSContainer@@UEAAJH@Z
; public: virtual long __cdecl CInstancePart::CanContainAbstract(int) __ptr64
?CanContainAbstract@CInstancePart@@UEAAJH@Z
; public: virtual long __cdecl CMethodQualifierSetContainer::CanContainAbstract(int) __ptr64
?CanContainAbstract@CMethodQualifierSetContainer@@UEAAJH@Z
; public: virtual long __cdecl CClassPart::CanContainDynamic(void) __ptr64
?CanContainDynamic@CClassPart@@UEAAJXZ
; public: virtual long __cdecl CInstancePQSContainer::CanContainDynamic(void) __ptr64
?CanContainDynamic@CInstancePQSContainer@@UEAAJXZ
; public: virtual long __cdecl CInstancePart::CanContainDynamic(void) __ptr64
?CanContainDynamic@CInstancePart@@UEAAJXZ
; public: virtual long __cdecl CMethodQualifierSetContainer::CanContainDynamic(void) __ptr64
?CanContainDynamic@CMethodQualifierSetContainer@@UEAAJXZ
; public: virtual long __cdecl CClassPart::CanContainKey(void) __ptr64
?CanContainKey@CClassPart@@UEAAJXZ
; public: virtual long __cdecl CInstancePQSContainer::CanContainKey(void) __ptr64
?CanContainKey@CInstancePQSContainer@@UEAAJXZ
; public: virtual long __cdecl CInstancePart::CanContainKey(void) __ptr64
?CanContainKey@CInstancePart@@UEAAJXZ
; public: virtual long __cdecl CMethodQualifierSetContainer::CanContainKey(void) __ptr64
?CanContainKey@CMethodQualifierSetContainer@@UEAAJXZ
; public: int __cdecl CClassPart::CanContainKeyedProps(void) __ptr64
?CanContainKeyedProps@CClassPart@@QEAAHXZ
; public: virtual long __cdecl CClassPart::CanContainSingleton(void) __ptr64
?CanContainSingleton@CClassPart@@UEAAJXZ
; public: virtual long __cdecl CInstancePQSContainer::CanContainSingleton(void) __ptr64
?CanContainSingleton@CInstancePQSContainer@@UEAAJXZ
; public: virtual long __cdecl CInstancePart::CanContainSingleton(void) __ptr64
?CanContainSingleton@CInstancePart@@UEAAJXZ
; public: virtual long __cdecl CMethodQualifierSetContainer::CanContainSingleton(void) __ptr64
?CanContainSingleton@CMethodQualifierSetContainer@@UEAAJXZ
; public: virtual int __cdecl CClassPart::CanHaveCimtype(unsigned short const * __ptr64) __ptr64
?CanHaveCimtype@CClassPart@@UEAAHPEBG@Z
; public: virtual int __cdecl CInstancePQSContainer::CanHaveCimtype(unsigned short const * __ptr64) __ptr64
?CanHaveCimtype@CInstancePQSContainer@@UEAAHPEBG@Z
; public: virtual int __cdecl CInstancePart::CanHaveCimtype(unsigned short const * __ptr64) __ptr64
?CanHaveCimtype@CInstancePart@@UEAAHPEBG@Z
; public: virtual int __cdecl CMethodQualifierSetContainer::CanHaveCimtype(unsigned short const * __ptr64) __ptr64
?CanHaveCimtype@CMethodQualifierSetContainer@@UEAAHPEBG@Z
; public: int __cdecl CCompressedString::CheapCompare(class CCompressedString const & __ptr64)const  __ptr64
?CheapCompare@CCompressedString@@QEBAHAEBV1@@Z
; public: int __cdecl CClassPart::CheckBoolQualifier(unsigned short const * __ptr64) __ptr64
?CheckBoolQualifier@CClassPart@@QEAAHPEBG@Z
; public: int __cdecl CWbemObject::CheckBooleanPropQual(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?CheckBooleanPropQual@CWbemObject@@QEAAHPEBG0@Z
; public: static int __cdecl CUntypedArray::CheckCVarVector(class CVarVector & __ptr64,unsigned long)
?CheckCVarVector@CUntypedArray@@SAHAEAVCVarVector@@K@Z
; protected: long __cdecl CMethodPart::CheckDuplicateParameters(class CWbemObject * __ptr64,class CWbemObject * __ptr64) __ptr64
?CheckDuplicateParameters@CMethodPart@@IEAAJPEAVCWbemObject@@0@Z
; protected: long __cdecl CMethodPart::CheckIds(class CWbemClass * __ptr64,class CWbemClass * __ptr64) __ptr64
?CheckIds@CMethodPart@@IEAAJPEAVCWbemClass@@0@Z
; public: static int __cdecl CUntypedArray::CheckIntervalDateTime(class CVarVector & __ptr64)
?CheckIntervalDateTime@CUntypedArray@@SAHAEAVCVarVector@@@Z
; public: int __cdecl CClassPart::CheckLocalBoolQualifier(unsigned short const * __ptr64) __ptr64
?CheckLocalBoolQualifier@CClassPart@@QEAAHPEBG@Z
; public: static long __cdecl CUntypedArray::CheckRangeSize(unsigned long,unsigned long,unsigned long,unsigned long,void * __ptr64)
?CheckRangeSize@CUntypedArray@@SAJKKKKPEAX@Z
; protected: static long __cdecl CUntypedArray::CheckRangeSizeForGet(unsigned long,unsigned long,unsigned long,unsigned long,unsigned long * __ptr64)
?CheckRangeSizeForGet@CUntypedArray@@KAJKKKKPEAK@Z
; private: void __cdecl CWbemClassCache::Clear(void) __ptr64
?Clear@CWbemClassCache@@AEAAXXZ
; private: void __cdecl CWbemGuidToClassMap::Clear(void) __ptr64
?Clear@CWbemGuidToClassMap@@AEAAXXZ
; public: void __cdecl CWbemInstance::ClearCachedKey(void) __ptr64
?ClearCachedKey@CWbemInstance@@QEAAXXZ
; public: virtual void __cdecl CWbemInstance::ClearCachedKeyValue(void) __ptr64
?ClearCachedKeyValue@CWbemInstance@@UEAAXXZ
; public: virtual long __cdecl CWbemClass::ClearWriteOnlyProperties(void) __ptr64
?ClearWriteOnlyProperties@CWbemClass@@UEAAJXZ
; public: virtual long __cdecl CWbemInstance::ClearWriteOnlyProperties(void) __ptr64
?ClearWriteOnlyProperties@CWbemInstance@@UEAAJXZ
; public: virtual long __cdecl CWbemClass::Clone(struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?Clone@CWbemClass@@UEAAJPEAPEAUIWbemClassObject@@@Z
; public: virtual long __cdecl CWbemInstance::Clone(struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?Clone@CWbemInstance@@UEAAJPEAPEAUIWbemClassObject@@@Z
; public: virtual long __cdecl CWbemClass::CloneAndDecorate(long,unsigned short * __ptr64,unsigned short * __ptr64,struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?CloneAndDecorate@CWbemClass@@UEAAJJPEAG0PEAPEAUIWbemClassObject@@@Z
; public: virtual long __cdecl CWbemInstance::CloneAndDecorate(long,unsigned short * __ptr64,unsigned short * __ptr64,struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?CloneAndDecorate@CWbemInstance@@UEAAJJPEAG0PEAPEAUIWbemClassObject@@@Z
; public: virtual long __cdecl CWbemClass::CloneEx(long,struct _IWmiObject * __ptr64) __ptr64
?CloneEx@CWbemClass@@UEAAJJPEAU_IWmiObject@@@Z
; public: virtual long __cdecl CWbemInstance::CloneEx(long,struct _IWmiObject * __ptr64) __ptr64
?CloneEx@CWbemInstance@@UEAAJJPEAU_IWmiObject@@@Z
; public: long __cdecl CWbemThreadSecurityHandle::CloneProcessContext(void) __ptr64
?CloneProcessContext@CWbemThreadSecurityHandle@@QEAAJXZ
; public: long __cdecl CWbemThreadSecurityHandle::CloneRpcContext(struct IServerSecurity * __ptr64) __ptr64
?CloneRpcContext@CWbemThreadSecurityHandle@@QEAAJPEAUIServerSecurity@@@Z
; public: long __cdecl CWbemThreadSecurityHandle::CloneThreadContext(unsigned long) __ptr64
?CloneThreadContext@CWbemThreadSecurityHandle@@QEAAJK@Z
; public: void __cdecl CClassAndMethods::Compact(void) __ptr64
?Compact@CClassAndMethods@@QEAAXXZ
; public: void __cdecl CClassPart::Compact(void) __ptr64
?Compact@CClassPart@@QEAAXXZ
; public: void __cdecl CInstancePart::Compact(bool) __ptr64
?Compact@CInstancePart@@QEAAX_N@Z
; public: void __cdecl CMethodPart::Compact(void) __ptr64
?Compact@CMethodPart@@QEAAXXZ
; public: virtual void __cdecl CWbemClass::CompactAll(void) __ptr64
?CompactAll@CWbemClass@@UEAAXXZ
; public: virtual void __cdecl CWbemInstance::CompactAll(void) __ptr64
?CompactAll@CWbemInstance@@UEAAXXZ
; public: void __cdecl CWbemInstance::CompactClass(void) __ptr64
?CompactClass@CWbemInstance@@QEAAXXZ
; public: int __cdecl CBasicQualifierSet::Compare(class CBasicQualifierSet & __ptr64,unsigned char,unsigned short const * __ptr64 * __ptr64,unsigned long) __ptr64
?Compare@CBasicQualifierSet@@QEAAHAEAV1@EPEAPEBGK@Z
; public: int __cdecl CCompressedString::Compare(class CCompressedString const & __ptr64)const  __ptr64
?Compare@CCompressedString@@QEBAHAEBV1@@Z
; public: int __cdecl CCompressedString::Compare(char const * __ptr64)const  __ptr64
?Compare@CCompressedString@@QEBAHPEBD@Z
; public: int __cdecl CCompressedString::Compare(unsigned short const * __ptr64)const  __ptr64
?Compare@CCompressedString@@QEBAHPEBG@Z
; public: int __cdecl CInternalString::Compare(class CInternalString const & __ptr64)const  __ptr64
?Compare@CInternalString@@QEBAHAEBV1@@Z
; public: int __cdecl CInternalString::Compare(unsigned short const * __ptr64)const  __ptr64
?Compare@CInternalString@@QEBAHPEBG@Z
; public: int __cdecl CQualifierSet::Compare(class CQualifierSet & __ptr64,class CFixedBSTRArray * __ptr64,int) __ptr64
?Compare@CQualifierSet@@QEAAHAEAV1@PEAVCFixedBSTRArray@@H@Z
; public: virtual long __cdecl CWbemObject::CompareClassParts(struct IWbemClassObject * __ptr64,long) __ptr64
?CompareClassParts@CWbemObject@@UEAAJPEAUIWbemClassObject@@J@Z
; public: int __cdecl CClassPart::CompareDefs(class CClassPart & __ptr64) __ptr64
?CompareDefs@CClassPart@@QEAAHAEAV1@@Z
; public: virtual long __cdecl CWbemClass::CompareDerivedMostClass(long,struct _IWmiObject * __ptr64) __ptr64
?CompareDerivedMostClass@CWbemClass@@UEAAJJPEAU_IWmiObject@@@Z
; public: virtual long __cdecl CWbemInstance::CompareDerivedMostClass(long,struct _IWmiObject * __ptr64) __ptr64
?CompareDerivedMostClass@CWbemInstance@@UEAAJJPEAU_IWmiObject@@@Z
; public: enum EReconciliation  __cdecl CClassPart::CompareExactMatch(class CClassPart & __ptr64,int) __ptr64
?CompareExactMatch@CClassPart@@QEAA?AW4EReconciliation@@AEAV1@H@Z
; public: enum EReconciliation  __cdecl CMethodPart::CompareExactMatch(class CMethodPart & __ptr64) __ptr64
?CompareExactMatch@CMethodPart@@QEAA?AW4EReconciliation@@AEAV1@@Z
; public: int __cdecl CBasicQualifierSet::CompareLocalizedSet(class CBasicQualifierSet & __ptr64) __ptr64
?CompareLocalizedSet@CBasicQualifierSet@@QEAAHAEAV1@@Z
; public: long __cdecl CWbemClass::CompareMostDerivedClass(class CWbemClass * __ptr64) __ptr64
?CompareMostDerivedClass@CWbemClass@@QEAAJPEAV1@@Z
; public: int __cdecl CCompressedString::CompareNoCase(class CCompressedString const & __ptr64)const  __ptr64
?CompareNoCase@CCompressedString@@QEBAHAEBV1@@Z
; public: int __cdecl CCompressedString::CompareNoCase(char const * __ptr64)const  __ptr64
?CompareNoCase@CCompressedString@@QEBAHPEBD@Z
; public: int __cdecl CCompressedString::CompareNoCase(unsigned short const * __ptr64)const  __ptr64
?CompareNoCase@CCompressedString@@QEBAHPEBG@Z
; public: enum EReconciliation  __cdecl CClassAndMethods::CompareTo(class CClassAndMethods & __ptr64) __ptr64
?CompareTo@CClassAndMethods@@QEAA?AW4EReconciliation@@AEAV1@@Z
; public: int __cdecl CDecorationPart::CompareTo(class CDecorationPart & __ptr64) __ptr64
?CompareTo@CDecorationPart@@QEAAHAEAV1@@Z
; public: long __cdecl CMethodPart::CompareTo(long,class CMethodPart & __ptr64) __ptr64
?CompareTo@CMethodPart@@QEAAJJAEAV1@@Z
; public: virtual long __cdecl CQualifierSet::CompareTo(long,struct IWbemQualifierSet * __ptr64) __ptr64
?CompareTo@CQualifierSet@@UEAAJJPEAUIWbemQualifierSet@@@Z
; public: virtual long __cdecl CWbemClass::CompareTo(long,struct IWbemClassObject * __ptr64) __ptr64
?CompareTo@CWbemClass@@UEAAJJPEAUIWbemClassObject@@@Z
; public: virtual long __cdecl CWbemObject::CompareTo(long,struct IWbemClassObject * __ptr64) __ptr64
?CompareTo@CWbemObject@@UEAAJJPEAUIWbemClassObject@@@Z
; protected: static int __cdecl CCompressedString::CompareUnicodeToAscii(unsigned short const * __ptr64 __ptr64,char const * __ptr64)
?CompareUnicodeToAscii@CCompressedString@@KAHPEFBGPEBD@Z
; protected: static int __cdecl CCompressedString::CompareUnicodeToAsciiNoCase(unsigned short const * __ptr64 __ptr64,char const * __ptr64,int)
?CompareUnicodeToAsciiNoCase@CCompressedString@@KAHPEFBGPEBDH@Z
; public: static unsigned long __cdecl CBasicQualifierSet::ComputeMergeSpace(unsigned char * __ptr64,class CFastHeap * __ptr64,unsigned char * __ptr64,class CFastHeap * __ptr64,int)
?ComputeMergeSpace@CBasicQualifierSet@@SAKPEAEPEAVCFastHeap@@01H@Z
; public: static int __cdecl CCompressedString::ComputeNecessarySpace(char const * __ptr64)
?ComputeNecessarySpace@CCompressedString@@SAHPEBD@Z
; public: static int __cdecl CCompressedString::ComputeNecessarySpace(unsigned short const * __ptr64)
?ComputeNecessarySpace@CCompressedString@@SAHPEBG@Z
; public: static int __cdecl CCompressedString::ComputeNecessarySpace(unsigned short const * __ptr64,int & __ptr64)
?ComputeNecessarySpace@CCompressedString@@SAHPEBGAEAH@Z
; public: unsigned long __cdecl CCompressedStringList::ComputeNecessarySpace(class CCompressedString * __ptr64) __ptr64
?ComputeNecessarySpace@CCompressedStringList@@QEAAKPEAVCCompressedString@@@Z
; public: static unsigned long __cdecl CDataTable::ComputeNecessarySpace(int,int)
?ComputeNecessarySpace@CDataTable@@SAKHH@Z
; public: static unsigned long __cdecl CDecorationPart::ComputeNecessarySpace(unsigned short const * __ptr64,unsigned short const * __ptr64)
?ComputeNecessarySpace@CDecorationPart@@SAKPEBG0@Z
; public: static unsigned long __cdecl CInstancePart::ComputeNecessarySpace(class CClassPart * __ptr64)
?ComputeNecessarySpace@CInstancePart@@SAKPEAVCClassPart@@@Z
; public: static unsigned long __cdecl CQualifierSetList::ComputeNecessarySpace(int)
?ComputeNecessarySpace@CQualifierSetList@@SAKH@Z
; public: static unsigned long __cdecl CBasicQualifierSet::ComputeNecessarySpaceForPropagation(unsigned char * __ptr64,unsigned char)
?ComputeNecessarySpaceForPropagation@CBasicQualifierSet@@SAKPEAEE@Z
; public: static unsigned long __cdecl CQualifierSetList::ComputeRealSpace(int)
?ComputeRealSpace@CQualifierSetList@@SAKH@Z
; public: static unsigned long __cdecl CBasicQualifierSet::ComputeUnmergedSpace(unsigned char * __ptr64)
?ComputeUnmergedSpace@CBasicQualifierSet@@SAKPEAE@Z
; public: unsigned char * __ptr64 __cdecl CInstancePart::ConvertToClass(class CClassPart & __ptr64,unsigned long,unsigned char * __ptr64) __ptr64
?ConvertToClass@CInstancePart@@QEAAPEAEAEAVCClassPart@@KPEAE@Z
; public: long __cdecl CWbemInstance::ConvertToClass(class CWbemClass * __ptr64,class CWbemInstance * __ptr64 * __ptr64) __ptr64
?ConvertToClass@CWbemInstance@@QEAAJPEAVCWbemClass@@PEAPEAV1@@Z
; public: long __cdecl CWbemInstance::ConvertToMergedInstance(void) __ptr64
?ConvertToMergedInstance@CWbemInstance@@QEAAJXZ
; public: void __cdecl CCompressedString::ConvertToUnicode(unsigned short * __ptr64)const  __ptr64
?ConvertToUnicode@CCompressedString@@QEBAXPEAG@Z
; public: void __cdecl CFastHeap::Copy(unsigned long,unsigned long,unsigned long) __ptr64
?Copy@CFastHeap@@QEAAXKKK@Z
; public: long __cdecl CFastPropertyBag::Copy(class CFastPropertyBag const & __ptr64) __ptr64
?Copy@CFastPropertyBag@@QEAAJAEBV1@@Z
; public: long __cdecl CWbemInstance::CopyActualTransferBlob(long,unsigned char * __ptr64) __ptr64
?CopyActualTransferBlob@CWbemInstance@@QEAAJJPEAE@Z
; public: long __cdecl CWbemInstance::CopyBlob(unsigned char * __ptr64,int) __ptr64
?CopyBlob@CWbemInstance@@QEAAJPEAEH@Z
; public: virtual long __cdecl CWbemClass::CopyBlobOf(class CWbemObject * __ptr64) __ptr64
?CopyBlobOf@CWbemClass@@UEAAJPEAVCWbemObject@@@Z
; public: virtual long __cdecl CWbemInstance::CopyBlobOf(class CWbemObject * __ptr64) __ptr64
?CopyBlobOf@CWbemInstance@@UEAAJPEAVCWbemObject@@@Z
; public: unsigned char * __ptr64 __cdecl CCompressedStringList::CopyData(unsigned char * __ptr64) __ptr64
?CopyData@CCompressedStringList@@QEAAPEAEPEAE@Z
; protected: void __cdecl CLimitationMapping::CopyInfo(class CPropertyInformation & __ptr64,class CPropertyInformation const & __ptr64) __ptr64
?CopyInfo@CLimitationMapping@@IEAAXAEAVCPropertyInformation@@AEBV2@@Z
; public: virtual long __cdecl CWbemClass::CopyInstanceData(long,struct _IWmiObject * __ptr64) __ptr64
?CopyInstanceData@CWbemClass@@UEAAJJPEAU_IWmiObject@@@Z
; public: virtual long __cdecl CWbemInstance::CopyInstanceData(long,struct _IWmiObject * __ptr64) __ptr64
?CopyInstanceData@CWbemInstance@@UEAAJJPEAU_IWmiObject@@@Z
; public: long __cdecl CQualifierSet::CopyLocalQualifiers(class CQualifierSet & __ptr64) __ptr64
?CopyLocalQualifiers@CQualifierSet@@QEAAJAEAV1@@Z
; public: void __cdecl CDataTable::CopyNullness(class CDataTable * __ptr64) __ptr64
?CopyNullness@CDataTable@@QEAAXPEAV1@@Z
; public: long __cdecl CClassPart::CopyParentProperty(class CClassPart & __ptr64,unsigned short const * __ptr64) __ptr64
?CopyParentProperty@CClassPart@@QEAAJAEAV1@PEBG@Z
; public: static int __cdecl CCompressedString::CopyToNewHeap(unsigned long,class CFastHeap * __ptr64,class CFastHeap * __ptr64,unsigned long & __ptr64 __ptr64)
?CopyToNewHeap@CCompressedString@@SAHKPEAVCFastHeap@@0AEFAK@Z
; public: static int __cdecl CEmbeddedObject::CopyToNewHeap(unsigned long,class CFastHeap * __ptr64,class CFastHeap * __ptr64,unsigned long & __ptr64 __ptr64)
?CopyToNewHeap@CEmbeddedObject@@SAHKPEAVCFastHeap@@0AEFAK@Z
; public: static int __cdecl CUntypedArray::CopyToNewHeap(unsigned long,class CType,class CFastHeap * __ptr64,class CFastHeap * __ptr64,unsigned long & __ptr64 __ptr64)
?CopyToNewHeap@CUntypedArray@@SAHKVCType@@PEAVCFastHeap@@1AEFAK@Z
; public: static long __cdecl CWbemInstance::CopyTransferArrayBlob(class CWbemInstance * __ptr64,long,long,unsigned char * __ptr64,class CFlexArray & __ptr64,long * __ptr64)
?CopyTransferArrayBlob@CWbemInstance@@SAJPEAV1@JJPEAEAEAVCFlexArray@@PEAJ@Z
; public: long __cdecl CWbemInstance::CopyTransferBlob(long,long,unsigned char * __ptr64) __ptr64
?CopyTransferBlob@CWbemInstance@@QEAAJJJPEAE@Z
; public: void __cdecl CDecorationPart::Create(unsigned char,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned char * __ptr64) __ptr64
?Create@CDecorationPart@@QEAAXEPEBG0PEAE@Z
; public: void __cdecl CFixedBSTRArray::Create(int) __ptr64
?Create@CFixedBSTRArray@@QEAAXH@Z
; public: void __cdecl CInstancePQSContainer::Create(class CQualifierSetList * __ptr64,int,class CClassPart * __ptr64,unsigned long) __ptr64
?Create@CInstancePQSContainer@@QEAAXPEAVCQualifierSetList@@HPEAVCClassPart@@K@Z
; public: unsigned char * __ptr64 __cdecl CInstancePart::Create(unsigned char * __ptr64,class CClassPart * __ptr64,class CInstancePartContainer * __ptr64) __ptr64
?Create@CInstancePart@@QEAAPEAEPEAEPEAVCClassPart@@PEAVCInstancePartContainer@@@Z
; public: long __cdecl CWmiObjectFactory::Create(struct IUnknown * __ptr64,unsigned long,struct _GUID const & __ptr64,struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?Create@CWmiObjectFactory@@QEAAJPEAUIUnknown@@KAEBU_GUID@@1PEAPEAX@Z
; public: virtual long __cdecl CWmiObjectFactory::XObjectFactory::Create(struct IUnknown * __ptr64,unsigned long,struct _GUID const & __ptr64,struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?Create@XObjectFactory@CWmiObjectFactory@@UEAAJPEAUIUnknown@@KAEBU_GUID@@1PEAPEAX@Z
; public: unsigned short * __ptr64 __cdecl CCompressedString::CreateBSTRCopy(void)const  __ptr64
?CreateBSTRCopy@CCompressedString@@QEBAPEAGXZ
; public: class CVarVector * __ptr64 __cdecl CUntypedArray::CreateCVarVector(class CType,class CFastHeap * __ptr64) __ptr64
?CreateCVarVector@CUntypedArray@@QEAAPEAVCVarVector@@VCType@@PEAVCFastHeap@@@Z
; public: long __cdecl CWbemClass::CreateDerivedClass(class CWbemClass * __ptr64 * __ptr64) __ptr64
?CreateDerivedClass@CWbemClass@@QEAAJPEAPEAV1@@Z
; public: long __cdecl CWbemClass::CreateDerivedClass(class CWbemClass * __ptr64,int,class CDecorationPart * __ptr64) __ptr64
?CreateDerivedClass@CWbemClass@@QEAAJPEAV1@HPEAVCDecorationPart@@@Z
; public: unsigned char * __ptr64 __cdecl CClassAndMethods::CreateDerivedPart(unsigned char * __ptr64,unsigned long) __ptr64
?CreateDerivedPart@CClassAndMethods@@QEAAPEAEPEAEK@Z
; public: unsigned char * __ptr64 __cdecl CClassPart::CreateDerivedPart(unsigned char * __ptr64,int) __ptr64
?CreateDerivedPart@CClassPart@@QEAAPEAEPEAEH@Z
; public: unsigned char * __ptr64 __cdecl CMethodPart::CreateDerivedPart(unsigned char * __ptr64,unsigned long) __ptr64
?CreateDerivedPart@CMethodPart@@QEAAPEAEPEAEK@Z
; public: static int __cdecl CMethodDescription::CreateDerivedVersion(struct CMethodDescription * __ptr64 __ptr64,struct CMethodDescription * __ptr64 __ptr64,class CFastHeap * __ptr64,class CFastHeap * __ptr64)
?CreateDerivedVersion@CMethodDescription@@SAHPEFAU1@0PEAVCFastHeap@@1@Z
; public: static unsigned char * __ptr64 __cdecl CBasicQualifierSet::CreateEmpty(unsigned char * __ptr64)
?CreateEmpty@CBasicQualifierSet@@SAPEAEPEAE@Z
; public: static unsigned char * __ptr64 __cdecl CClassAndMethods::CreateEmpty(unsigned char * __ptr64)
?CreateEmpty@CClassAndMethods@@SAPEAEPEAE@Z
; public: static unsigned char * __ptr64 __cdecl CClassPart::CreateEmpty(unsigned char * __ptr64)
?CreateEmpty@CClassPart@@SAPEAEPEAE@Z
; public: static unsigned char * __ptr64 __cdecl CCompressedString::CreateEmpty(unsigned char * __ptr64)
?CreateEmpty@CCompressedString@@SAPEAEPEAE@Z
; public: static unsigned char * __ptr64 __cdecl CCompressedStringList::CreateEmpty(unsigned char * __ptr64)
?CreateEmpty@CCompressedStringList@@SAPEAEPEAE@Z
; public: static unsigned char * __ptr64 __cdecl CDataTable::CreateEmpty(unsigned char * __ptr64)
?CreateEmpty@CDataTable@@SAPEAEPEAE@Z
; public: unsigned char * __ptr64 __cdecl CDecorationPart::CreateEmpty(unsigned char,unsigned char * __ptr64) __ptr64
?CreateEmpty@CDecorationPart@@QEAAPEAEEPEAE@Z
; public: static unsigned char * __ptr64 __cdecl CFastHeap::CreateEmpty(unsigned char * __ptr64)
?CreateEmpty@CFastHeap@@SAPEAEPEAE@Z
; public: static unsigned char * __ptr64 __cdecl CMethodPart::CreateEmpty(unsigned char * __ptr64)
?CreateEmpty@CMethodPart@@SAPEAEPEAE@Z
; public: static unsigned char * __ptr64 __cdecl CPropertyLookupTable::CreateEmpty(unsigned char * __ptr64)
?CreateEmpty@CPropertyLookupTable@@SAPEAEPEAE@Z
; public: static unsigned char * __ptr64 __cdecl CWbemClass::CreateEmpty(unsigned char * __ptr64)
?CreateEmpty@CWbemClass@@SAPEAEPEAE@Z
; public: static class CWbemClass * __ptr64 __cdecl CWbemClass::CreateFromBlob2(class CWbemClass * __ptr64,unsigned char * __ptr64,unsigned short * __ptr64,unsigned short * __ptr64)
?CreateFromBlob2@CWbemClass@@SAPEAV1@PEAV1@PEAEPEAG2@Z
; public: static class CWbemInstance * __ptr64 __cdecl CWbemInstance::CreateFromBlob2(class CWbemClass * __ptr64,unsigned char * __ptr64,unsigned short * __ptr64,unsigned short * __ptr64)
?CreateFromBlob2@CWbemInstance@@SAPEAV1@PEAVCWbemClass@@PEAEPEAG2@Z
; public: static class CWbemClass * __ptr64 __cdecl CWbemClass::CreateFromBlob(class CWbemClass * __ptr64,unsigned char * __ptr64,unsigned __int64)
?CreateFromBlob@CWbemClass@@SAPEAV1@PEAV1@PEAE_K@Z
; public: static class CWbemInstance * __ptr64 __cdecl CWbemInstance::CreateFromBlob(class CWbemClass * __ptr64,unsigned char * __ptr64,unsigned __int64)
?CreateFromBlob@CWbemInstance@@SAPEAV1@PEAVCWbemClass@@PEAE_K@Z
; public: static class CWbemObject * __ptr64 __cdecl CWbemObject::CreateFromMemory(unsigned char * __ptr64,int,int,class CBlobControl & __ptr64)
?CreateFromMemory@CWbemObject@@SAPEAV1@PEAEHHAEAVCBlobControl@@@Z
; public: static class CWbemObject * __ptr64 __cdecl CWbemObject::CreateFromStream(struct IStream * __ptr64)
?CreateFromStream@CWbemObject@@SAPEAV1@PEAUIStream@@@Z
; public: virtual long __cdecl CWmiObjectTextSrc::XObjectTextSrc::CreateFromText(long,unsigned short * __ptr64,unsigned long,struct IWbemContext * __ptr64,struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?CreateFromText@XObjectTextSrc@CWmiObjectTextSrc@@UEAAJJPEAGKPEAUIWbemContext@@PEAPEAUIWbemClassObject@@@Z
; public: unsigned short * __ptr64 __cdecl CInternalString::CreateLPWSTRCopy(void)const  __ptr64
?CreateLPWSTRCopy@CInternalString@@QEBAPEAGXZ
; public: unsigned char * __ptr64 __cdecl CClassAndMethods::CreateLimitedRepresentation(class CLimitationMapping * __ptr64,int,unsigned char * __ptr64,int & __ptr64) __ptr64
?CreateLimitedRepresentation@CClassAndMethods@@QEAAPEAEPEAVCLimitationMapping@@HPEAEAEAH@Z
; public: unsigned char * __ptr64 __cdecl CClassPart::CreateLimitedRepresentation(class CLimitationMapping * __ptr64,int,unsigned char * __ptr64,int & __ptr64) __ptr64
?CreateLimitedRepresentation@CClassPart@@QEAAPEAEPEAVCLimitationMapping@@HPEAEAEAH@Z
; public: unsigned char * __ptr64 __cdecl CDataTable::CreateLimitedRepresentation(class CLimitationMapping * __ptr64,int,class CFastHeap * __ptr64,class CFastHeap * __ptr64,unsigned char * __ptr64) __ptr64
?CreateLimitedRepresentation@CDataTable@@QEAAPEAEPEAVCLimitationMapping@@HPEAVCFastHeap@@1PEAE@Z
; public: unsigned char * __ptr64 __cdecl CDecorationPart::CreateLimitedRepresentation(class CLimitationMapping * __ptr64,unsigned char * __ptr64) __ptr64
?CreateLimitedRepresentation@CDecorationPart@@QEAAPEAEPEAVCLimitationMapping@@PEAE@Z
; public: unsigned char * __ptr64 __cdecl CDerivationList::CreateLimitedRepresentation(class CLimitationMapping * __ptr64,unsigned char * __ptr64) __ptr64
?CreateLimitedRepresentation@CDerivationList@@QEAAPEAEPEAVCLimitationMapping@@PEAE@Z
; public: unsigned char * __ptr64 __cdecl CInstancePart::CreateLimitedRepresentation(class CLimitationMapping * __ptr64,int,unsigned char * __ptr64) __ptr64
?CreateLimitedRepresentation@CInstancePart@@QEAAPEAEPEAVCLimitationMapping@@HPEAE@Z
; public: unsigned char * __ptr64 __cdecl CPropertyLookupTable::CreateLimitedRepresentation(class CLimitationMapping * __ptr64,class CFastHeap * __ptr64,unsigned char * __ptr64,int & __ptr64) __ptr64
?CreateLimitedRepresentation@CPropertyLookupTable@@QEAAPEAEPEAVCLimitationMapping@@PEAVCFastHeap@@PEAEAEAH@Z
; public: unsigned char * __ptr64 __cdecl CQualifierSetList::CreateLimitedRepresentation(class CLimitationMapping * __ptr64,class CFastHeap * __ptr64,class CFastHeap * __ptr64,unsigned char * __ptr64) __ptr64
?CreateLimitedRepresentation@CQualifierSetList@@QEAAPEAEPEAVCLimitationMapping@@PEAVCFastHeap@@1PEAE@Z
; public: static unsigned char * __ptr64 __cdecl CQualifierSetList::CreateListOfEmpties(unsigned char * __ptr64,int)
?CreateListOfEmpties@CQualifierSetList@@SAPEAEPEAEH@Z
; protected: long __cdecl CMethodPart::CreateMethod(unsigned short const * __ptr64,class CWbemObject * __ptr64,class CWbemObject * __ptr64) __ptr64
?CreateMethod@CMethodPart@@IEAAJPEBGPEAVCWbemObject@@1@Z
; public: int __cdecl CFastHeap::CreateNoCaseStringHeapPtr(unsigned short const * __ptr64,unsigned long & __ptr64 __ptr64) __ptr64
?CreateNoCaseStringHeapPtr@CFastHeap@@QEAAHPEBGAEFAK@Z
; public: unsigned char * __ptr64 __cdecl CFastHeap::CreateOutOfLine(unsigned char * __ptr64,unsigned long) __ptr64
?CreateOutOfLine@CFastHeap@@QEAAPEAEPEAEK@Z
; protected: long __cdecl CWbemRefreshingSvc::CreateRefreshableObjectTemplate(unsigned short const * __ptr64,long,struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?CreateRefreshableObjectTemplate@CWbemRefreshingSvc@@IEAAJPEBGJPEAPEAUIWbemClassObject@@@Z
; public: static int __cdecl CMethodDescription::CreateUnmergedVersion(struct CMethodDescription * __ptr64 __ptr64,struct CMethodDescription * __ptr64 __ptr64,class CFastHeap * __ptr64,class CFastHeap * __ptr64)
?CreateUnmergedVersion@CMethodDescription@@SAHPEFAU1@0PEAVCFastHeap@@1@Z
; public: class WString  __cdecl CCompressedString::CreateWStringCopy(void)const  __ptr64
?CreateWStringCopy@CCompressedString@@QEBA?AVWString@@XZ
; public: unsigned char * __ptr64 __cdecl CCompressedStringList::CreateWithExtra(unsigned char * __ptr64,class CCompressedString * __ptr64) __ptr64
?CreateWithExtra@CCompressedStringList@@QEAAPEAEPEAEPEAVCCompressedString@@@Z
; public: virtual long __cdecl CWbemClass::Decorate(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?Decorate@CWbemClass@@UEAAJPEBG0@Z
; public: virtual long __cdecl CWbemInstance::Decorate(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?Decorate@CWbemInstance@@UEAAJPEBG0@Z
; public: static void __cdecl CBasicQualifierSet::Delete(unsigned char * __ptr64,class CFastHeap * __ptr64)
?Delete@CBasicQualifierSet@@SAXPEAEPEAVCFastHeap@@@Z
; public: virtual long __cdecl CQualifierSet::Delete(unsigned short const * __ptr64) __ptr64
?Delete@CQualifierSet@@UEAAJPEBG@Z
; public: void __cdecl CUntypedArray::Delete(class CType,class CFastHeap * __ptr64) __ptr64
?Delete@CUntypedArray@@QEAAXVCType@@PEAVCFastHeap@@@Z
; public: virtual long __cdecl CWbemClass::Delete(unsigned short const * __ptr64) __ptr64
?Delete@CWbemClass@@UEAAJPEBG@Z
; public: virtual long __cdecl CWbemInstance::Delete(unsigned short const * __ptr64) __ptr64
?Delete@CWbemInstance@@UEAAJPEBG@Z
; public: long __cdecl CMethodPart::DeleteMethod(unsigned short const * __ptr64) __ptr64
?DeleteMethod@CMethodPart@@QEAAJPEBG@Z
; public: virtual long __cdecl CWbemClass::DeleteMethod(unsigned short const * __ptr64) __ptr64
?DeleteMethod@CWbemClass@@UEAAJPEBG@Z
; public: virtual long __cdecl CWbemInstance::DeleteMethod(unsigned short const * __ptr64) __ptr64
?DeleteMethod@CWbemInstance@@UEAAJPEBG@Z
; public: long __cdecl CClassPart::DeleteProperty(unsigned short const * __ptr64) __ptr64
?DeleteProperty@CClassPart@@QEAAJPEBG@Z
; public: void __cdecl CClassPart::DeleteProperty(int) __ptr64
?DeleteProperty@CClassPart@@QEAAXH@Z
; public: void __cdecl CInstancePart::DeleteProperty(class CPropertyInformation * __ptr64) __ptr64
?DeleteProperty@CInstancePart@@QEAAXPEAVCPropertyInformation@@@Z
; public: void __cdecl CPropertyLookupTable::DeleteProperty(struct CPropertyLookup * __ptr64,int) __ptr64
?DeleteProperty@CPropertyLookupTable@@QEAAXPEAUCPropertyLookup@@H@Z
; public: long __cdecl CWbemInstance::DeleteProperty(int) __ptr64
?DeleteProperty@CWbemInstance@@QEAAJH@Z
; public: long __cdecl CQualifierSet::DeleteQualifier(unsigned short const * __ptr64,int) __ptr64
?DeleteQualifier@CQualifierSet@@QEAAJPEBGH@Z
; public: void __cdecl CQualifierSetList::DeleteQualifierSet(int) __ptr64
?DeleteQualifierSet@CQualifierSetList@@QEAAXH@Z
; protected: void __cdecl CMethodPart::DeleteSignature(int,int) __ptr64
?DeleteSignature@CMethodPart@@IEAAXHH@Z
; protected: static long __cdecl CWbemObject::DisabledValidateObject(class CWbemObject * __ptr64)
?DisabledValidateObject@CWbemObject@@KAJPEAV1@@Z
; public: void __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::Discard(int) __ptr64
?Discard@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAAXH@Z
; public: void __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::Discard(int) __ptr64
?Discard@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAAXH@Z
; public: virtual long __cdecl CWbemObject::DisconnectObject(unsigned long) __ptr64
?DisconnectObject@CWbemObject@@UEAAJK@Z
; protected: int __cdecl CMethodPart::DoSignaturesMatch(int,enum METHOD_SIGNATURE_TYPE,class CWbemObject * __ptr64) __ptr64
?DoSignaturesMatch@CMethodPart@@IEAAHHW4METHOD_SIGNATURE_TYPE@@PEAVCWbemObject@@@Z
; public: static int __cdecl CType::DoesCIMTYPEMatchVARTYPE(long,unsigned short)
?DoesCIMTYPEMatchVARTYPE@CType@@SAHJG@Z
; protected: int __cdecl CMethodPart::DoesSignatureMatchOther(class CMethodPart & __ptr64,int,enum METHOD_SIGNATURE_TYPE) __ptr64
?DoesSignatureMatchOther@CMethodPart@@IEAAHAEAV1@HW4METHOD_SIGNATURE_TYPE@@@Z
; public: int __cdecl CFastHeap::ElementMaxSize(unsigned long) __ptr64
?ElementMaxSize@CFastHeap@@QEAAHK@Z
; public: void __cdecl CFastHeap::Empty(void) __ptr64
?Empty@CFastHeap@@QEAAXXZ
; public: void __cdecl CInternalString::Empty(void) __ptr64
?Empty@CInternalString@@QEAAXXZ
; protected: static long __cdecl CWbemObject::EnabledValidateObject(class CWbemObject * __ptr64)
?EnabledValidateObject@CWbemObject@@KAJPEAV1@@Z
; public: virtual long __cdecl CQualifierSet::EndEnumeration(void) __ptr64
?EndEnumeration@CQualifierSet@@UEAAJXZ
; public: virtual long __cdecl CWbemObject::EndEnumeration(void) __ptr64
?EndEnumeration@CWbemObject@@UEAAJXZ
; public: virtual long __cdecl CWbemClass::EndMethodEnumeration(void) __ptr64
?EndMethodEnumeration@CWbemClass@@UEAAJXZ
; public: virtual long __cdecl CWbemInstance::EndMethodEnumeration(void) __ptr64
?EndMethodEnumeration@CWbemInstance@@UEAAJXZ
; public: long __cdecl CClassPart::EnsureProperty(unsigned short const * __ptr64,unsigned short,long,int) __ptr64
?EnsureProperty@CClassPart@@QEAAJPEBGGJH@Z
; public: long __cdecl CMethodPart::EnsureQualifier(class CWbemObject * __ptr64,unsigned short const * __ptr64,class CWbemObject * __ptr64 * __ptr64) __ptr64
?EnsureQualifier@CMethodPart@@QEAAJPEAVCWbemObject@@PEBGPEAPEAV2@@Z
; public: long __cdecl CWbemClass::EnsureQualifier(unsigned short const * __ptr64) __ptr64
?EnsureQualifier@CWbemClass@@QEAAJPEBG@Z
; public: int __cdecl CQualifierSetList::EnsureReal(void) __ptr64
?EnsureReal@CQualifierSetList@@QEAAHXZ
; public: long __cdecl CBasicQualifierSet::EnumPrimaryQualifiers(unsigned char,unsigned char,class CFixedBSTRArray & __ptr64,class CFixedBSTRArray & __ptr64) __ptr64
?EnumPrimaryQualifiers@CBasicQualifierSet@@QEAAJEEAEAVCFixedBSTRArray@@0@Z
; public: long __cdecl CQualifierSet::EnumQualifiers(unsigned char,unsigned char,class CFixedBSTRArray & __ptr64) __ptr64
?EnumQualifiers@CQualifierSet@@QEAAJEEAEAVCFixedBSTRArray@@@Z
; public: unsigned long __cdecl CWbemClass::EstimateDerivedClassSpace(class CDecorationPart * __ptr64) __ptr64
?EstimateDerivedClassSpace@CWbemClass@@QEAAKPEAVCDecorationPart@@@Z
; public: unsigned long __cdecl CClassAndMethods::EstimateDerivedPartSpace(void) __ptr64
?EstimateDerivedPartSpace@CClassAndMethods@@QEAAKXZ
; public: unsigned long __cdecl CClassPart::EstimateDerivedPartSpace(void) __ptr64
?EstimateDerivedPartSpace@CClassPart@@QEAAKXZ
; public: unsigned long __cdecl CMethodPart::EstimateDerivedPartSpace(void) __ptr64
?EstimateDerivedPartSpace@CMethodPart@@QEAAKXZ
; public: static unsigned long __cdecl CCompressedStringList::EstimateExtraSpace(class CCompressedString * __ptr64)
?EstimateExtraSpace@CCompressedStringList@@SAKPEAVCCompressedString@@@Z
; public: static unsigned long __cdecl CCompressedStringList::EstimateExtraSpace(unsigned short const * __ptr64)
?EstimateExtraSpace@CCompressedStringList@@SAKPEBG@Z
; public: static unsigned long __cdecl CWbemInstance::EstimateInstanceSpace(class CClassPart & __ptr64,class CDecorationPart * __ptr64)
?EstimateInstanceSpace@CWbemInstance@@SAKAEAVCClassPart@@PEAVCDecorationPart@@@Z
; public: unsigned long __cdecl CWbemObject::EstimateLimitedRepresentationSpace(long,class CWStringArray * __ptr64) __ptr64
?EstimateLimitedRepresentationSpace@CWbemObject@@QEAAKJPEAVCWStringArray@@@Z
; public: static unsigned long __cdecl CClassAndMethods::EstimateMergeSpace(class CClassAndMethods & __ptr64,class CClassAndMethods & __ptr64)
?EstimateMergeSpace@CClassAndMethods@@SAKAEAV1@0@Z
; public: static unsigned long __cdecl CClassPart::EstimateMergeSpace(class CClassPart & __ptr64,class CClassPart & __ptr64)
?EstimateMergeSpace@CClassPart@@SAKAEAV1@0@Z
; public: static unsigned long __cdecl CMethodPart::EstimateMergeSpace(class CMethodPart & __ptr64,class CMethodPart & __ptr64)
?EstimateMergeSpace@CMethodPart@@SAKAEAV1@0@Z
; public: unsigned long __cdecl CWbemClass::EstimateMergeSpace(unsigned char * __ptr64,long) __ptr64
?EstimateMergeSpace@CWbemClass@@QEAAKPEAEJ@Z
; public: static unsigned long __cdecl CEmbeddedObject::EstimateNecessarySpace(class CVar & __ptr64)
?EstimateNecessarySpace@CEmbeddedObject@@SAKAEAVCVar@@@Z
; public: static unsigned long __cdecl CEmbeddedObject::EstimateNecessarySpace(class CWbemObject * __ptr64)
?EstimateNecessarySpace@CEmbeddedObject@@SAKPEAVCWbemObject@@@Z
; public: unsigned long __cdecl CClassAndMethods::EstimateUnmergeSpace(void) __ptr64
?EstimateUnmergeSpace@CClassAndMethods@@QEAAKXZ
; public: unsigned long __cdecl CClassPart::EstimateUnmergeSpace(void) __ptr64
?EstimateUnmergeSpace@CClassPart@@QEAAKXZ
; public: unsigned long __cdecl CMethodPart::EstimateUnmergeSpace(void) __ptr64
?EstimateUnmergeSpace@CMethodPart@@QEAAKXZ
; public: virtual unsigned long __cdecl CWbemClass::EstimateUnmergeSpace(void) __ptr64
?EstimateUnmergeSpace@CWbemClass@@UEAAKXZ
; public: virtual unsigned long __cdecl CWbemInstance::EstimateUnmergeSpace(void) __ptr64
?EstimateUnmergeSpace@CWbemInstance@@UEAAKXZ
; public: int __cdecl CFastHeap::Extend(unsigned long,unsigned long,unsigned long) __ptr64
?Extend@CFastHeap@@QEAAHKKK@Z
; public: int __cdecl CWbemClass::ExtendClassAndMethodsSpace(unsigned long) __ptr64
?ExtendClassAndMethodsSpace@CWbemClass@@QEAAHK@Z
; public: virtual int __cdecl CClassAndMethods::ExtendClassPartSpace(class CClassPart * __ptr64,unsigned long) __ptr64
?ExtendClassPartSpace@CClassAndMethods@@UEAAHPEAVCClassPart@@K@Z
; public: virtual int __cdecl CWbemInstance::ExtendClassPartSpace(class CClassPart * __ptr64,unsigned long) __ptr64
?ExtendClassPartSpace@CWbemInstance@@UEAAHPEAVCClassPart@@K@Z
; public: virtual int __cdecl CClassPart::ExtendDataTableSpace(unsigned char * __ptr64,unsigned long,unsigned long) __ptr64
?ExtendDataTableSpace@CClassPart@@UEAAHPEAEKK@Z
; public: virtual int __cdecl CInstancePart::ExtendDataTableSpace(unsigned char * __ptr64,unsigned long,unsigned long) __ptr64
?ExtendDataTableSpace@CInstancePart@@UEAAHPEAEKK@Z
; public: virtual int __cdecl CClassPart::ExtendHeapSize(unsigned char * __ptr64,unsigned long,unsigned long) __ptr64
?ExtendHeapSize@CClassPart@@UEAAHPEAEKK@Z
; public: virtual int __cdecl CInstancePart::ExtendHeapSize(unsigned char * __ptr64,unsigned long,unsigned long) __ptr64
?ExtendHeapSize@CInstancePart@@UEAAHPEAEKK@Z
; public: virtual int __cdecl CMethodPart::ExtendHeapSize(unsigned char * __ptr64,unsigned long,unsigned long) __ptr64
?ExtendHeapSize@CMethodPart@@UEAAHPEAEKK@Z
; public: virtual int __cdecl CWbemInstance::ExtendInstancePartSpace(class CInstancePart * __ptr64,unsigned long) __ptr64
?ExtendInstancePartSpace@CWbemInstance@@UEAAHPEAVCInstancePart@@K@Z
; public: virtual int __cdecl CClassAndMethods::ExtendMethodPartSpace(class CMethodPart * __ptr64,unsigned long) __ptr64
?ExtendMethodPartSpace@CClassAndMethods@@UEAAHPEAVCMethodPart@@K@Z
; public: virtual int __cdecl CClassPart::ExtendPropertyTableSpace(unsigned char * __ptr64,unsigned long,unsigned long) __ptr64
?ExtendPropertyTableSpace@CClassPart@@UEAAHPEAEKK@Z
; public: virtual int __cdecl CInstancePart::ExtendQualifierSetListSpace(unsigned char * __ptr64,unsigned long,unsigned long) __ptr64
?ExtendQualifierSetListSpace@CInstancePart@@UEAAHPEAEKK@Z
; public: virtual int __cdecl CClassPart::ExtendQualifierSetSpace(class CBasicQualifierSet * __ptr64,unsigned long) __ptr64
?ExtendQualifierSetSpace@CClassPart@@UEAAHPEAVCBasicQualifierSet@@K@Z
; public: virtual int __cdecl CInstancePQSContainer::ExtendQualifierSetSpace(class CBasicQualifierSet * __ptr64,unsigned long) __ptr64
?ExtendQualifierSetSpace@CInstancePQSContainer@@UEAAHPEAVCBasicQualifierSet@@K@Z
; public: virtual int __cdecl CInstancePart::ExtendQualifierSetSpace(class CBasicQualifierSet * __ptr64,unsigned long) __ptr64
?ExtendQualifierSetSpace@CInstancePart@@UEAAHPEAVCBasicQualifierSet@@K@Z
; public: virtual int __cdecl CMethodQualifierSetContainer::ExtendQualifierSetSpace(class CBasicQualifierSet * __ptr64,unsigned long) __ptr64
?ExtendQualifierSetSpace@CMethodQualifierSetContainer@@UEAAHPEAVCBasicQualifierSet@@K@Z
; public: int __cdecl CQualifierSetList::ExtendQualifierSetSpace(class CBasicQualifierSet * __ptr64,unsigned long) __ptr64
?ExtendQualifierSetSpace@CQualifierSetList@@QEAAHPEAVCBasicQualifierSet@@K@Z
; public: int __cdecl CDataTable::ExtendTo(unsigned short,unsigned long) __ptr64
?ExtendTo@CDataTable@@QEAAHGK@Z
; public: long __cdecl CWbemInstance::FastClone(class CWbemInstance * __ptr64) __ptr64
?FastClone@CWbemInstance@@QEAAJPEAV1@@Z
; public: void __cdecl CFixedBSTRArray::Filter(unsigned short const * __ptr64,int) __ptr64
?Filter@CFixedBSTRArray@@QEAAXPEBGH@Z
; public: int __cdecl CCompressedStringList::Find(unsigned short const * __ptr64) __ptr64
?Find@CCompressedStringList@@QEAAHPEBG@Z
; public: class WString  __cdecl CWbemClass::FindLimitationError(long,class CWStringArray * __ptr64) __ptr64
?FindLimitationError@CWbemClass@@QEAA?AVWString@@JPEAVCWStringArray@@@Z
; protected: int __cdecl CMethodPart::FindMethod(unsigned short const * __ptr64) __ptr64
?FindMethod@CMethodPart@@IEAAHPEBG@Z
; public: virtual long __cdecl CWbemClass::FindMethod(unsigned short const * __ptr64) __ptr64
?FindMethod@CWbemClass@@UEAAJPEBG@Z
; public: virtual long __cdecl CWbemObject::FindMethod(unsigned short const * __ptr64) __ptr64
?FindMethod@CWbemObject@@UEAAJPEBG@Z
; public: static int __cdecl CSystemProperties::FindName(unsigned short const * __ptr64)
?FindName@CSystemProperties@@SAHPEBG@Z
; protected: class CFastPropertyBagItem * __ptr64 __cdecl CFastPropertyBag::FindProperty(unsigned short const * __ptr64) __ptr64
?FindProperty@CFastPropertyBag@@IEAAPEAVCFastPropertyBagItem@@PEBG@Z
; public: struct CPropertyLookup * __ptr64 __cdecl CPropertyLookupTable::FindProperty(unsigned short const * __ptr64) __ptr64
?FindProperty@CPropertyLookupTable@@QEAAPEAUCPropertyLookup@@PEBG@Z
; public: struct CPropertyLookup * __ptr64 __cdecl CPropertyLookupTable::FindPropertyByName(class CCompressedString * __ptr64) __ptr64
?FindPropertyByName@CPropertyLookupTable@@QEAAPEAUCPropertyLookup@@PEAVCCompressedString@@@Z
; public: struct CPropertyLookup * __ptr64 __cdecl CPropertyLookupTable::FindPropertyByOffset(unsigned long) __ptr64
?FindPropertyByOffset@CPropertyLookupTable@@QEAAPEAUCPropertyLookup@@K@Z
; public: struct CPropertyLookup * __ptr64 __cdecl CPropertyLookupTable::FindPropertyByPtr(unsigned long) __ptr64
?FindPropertyByPtr@CPropertyLookupTable@@QEAAPEAUCPropertyLookup@@K@Z
; protected: int __cdecl CFastPropertyBag::FindPropertyIndex(unsigned short const * __ptr64) __ptr64
?FindPropertyIndex@CFastPropertyBag@@IEAAHPEBG@Z
; public: class CPropertyInformation * __ptr64 __cdecl CClassPart::FindPropertyInfo(unsigned short const * __ptr64) __ptr64
?FindPropertyInfo@CClassPart@@QEAAPEAVCPropertyInformation@@PEBG@Z
; public: long __cdecl CWbemClass::ForcePropValue(unsigned short const * __ptr64,class CVar * __ptr64,long) __ptr64
?ForcePropValue@CWbemClass@@QEAAJPEBGPEAVCVar@@J@Z
; public: long __cdecl CWbemClass::ForcePut(unsigned short const * __ptr64,long,struct tagVARIANT * __ptr64,long) __ptr64
?ForcePut@CWbemClass@@QEAAJPEBGJPEAUtagVARIANT@@J@Z
; public: void __cdecl CFastHeap::Free(unsigned long,unsigned long) __ptr64
?Free@CFastHeap@@QEAAXKK@Z
; public: void __cdecl CFixedBSTRArray::Free(void) __ptr64
?Free@CFixedBSTRArray@@QEAAXXZ
; public: void __cdecl CFastHeap::FreeString(unsigned long) __ptr64
?FreeString@CFastHeap@@QEAAXK@Z
; public: long __cdecl CFastPropertyBag::Get(int,unsigned short const * __ptr64 * __ptr64,long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,void * __ptr64 * __ptr64) __ptr64
?Get@CFastPropertyBag@@QEAAJHPEAPEBGPEAJPEAK2PEAPEAX@Z
; public: long __cdecl CFastPropertyBag::Get(unsigned short const * __ptr64,long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,void * __ptr64 * __ptr64) __ptr64
?Get@CFastPropertyBag@@QEAAJPEBGPEAJPEAK2PEAPEAX@Z
; public: virtual long __cdecl CQualifierSet::Get(unsigned short const * __ptr64,long,struct tagVARIANT * __ptr64,long * __ptr64) __ptr64
?Get@CQualifierSet@@UEAAJPEBGJPEAUtagVARIANT@@PEAJ@Z
; public: long __cdecl CWbemFetchRefrMgr::Get(struct _IWbemRefresherMgr * __ptr64 * __ptr64) __ptr64
?Get@CWbemFetchRefrMgr@@QEAAJPEAPEAU_IWbemRefresherMgr@@@Z
; public: virtual long __cdecl CWbemObject::Get(unsigned short const * __ptr64,long,struct tagVARIANT * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?Get@CWbemObject@@UEAAJPEBGJPEAUtagVARIANT@@PEAJ2@Z
; public: virtual long __cdecl CWbemFetchRefrMgr::XFetchRefrMgr::Get(struct _IWbemRefresherMgr * __ptr64 * __ptr64) __ptr64
?Get@XFetchRefrMgr@CWbemFetchRefrMgr@@UEAAJPEAPEAU_IWbemRefresherMgr@@@Z
; public: unsigned char __cdecl CClassPart::GetAbstractFlavor(void) __ptr64
?GetAbstractFlavor@CClassPart@@QEAAEXZ
; public: unsigned char __cdecl CWbemClass::GetAbstractFlavor(void) __ptr64
?GetAbstractFlavor@CWbemClass@@QEAAEXZ
; public: void __cdecl CWbemInstance::GetActualTransferBlob(unsigned char * __ptr64) __ptr64
?GetActualTransferBlob@CWbemInstance@@QEAAXPEAE@Z
; public: long __cdecl CWbemInstance::GetActualTransferBlobSize(void) __ptr64
?GetActualTransferBlobSize@CWbemInstance@@QEAAJXZ
; public: unsigned long __cdecl CType::GetActualType(void) __ptr64
?GetActualType@CType@@QEAAKXZ
; public: static unsigned long __cdecl CType::GetActualType(unsigned long)
?GetActualType@CType@@SAKK@Z
; public: long __cdecl CInstancePart::GetActualValue(class CPropertyInformation * __ptr64,class CVar * __ptr64) __ptr64
?GetActualValue@CInstancePart@@QEAAJPEAVCPropertyInformation@@PEAVCVar@@@Z
; public: unsigned long __cdecl CFastHeap::GetAllocatedDataLength(void) __ptr64
?GetAllocatedDataLength@CFastHeap@@QEAAKXZ
; public: class CFlexArray & __ptr64 __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::GetArray(void) __ptr64
?GetArray@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAAAEAVCFlexArray@@XZ
; public: class CFlexArray & __ptr64 __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::GetArray(void) __ptr64
?GetArray@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAAAEAVCFlexArray@@XZ
; public: class CUntypedArray * __ptr64 __cdecl CWbemObject::GetArrayByHandle(long) __ptr64
?GetArrayByHandle@CWbemObject@@QEAAPEAVCUntypedArray@@J@Z
; public: virtual long __cdecl CWbemObject::GetArrayPropAddrByHandle(long,long,unsigned long * __ptr64,void * __ptr64 * __ptr64) __ptr64
?GetArrayPropAddrByHandle@CWbemObject@@UEAAJJJPEAKPEAPEAX@Z
; public: virtual long __cdecl CWbemObject::GetArrayPropElementByHandle(long,long,unsigned long,unsigned long * __ptr64,unsigned long * __ptr64,void * __ptr64 * __ptr64) __ptr64
?GetArrayPropElementByHandle@CWbemObject@@UEAAJJJKPEAK0PEAPEAX@Z
; public: virtual long __cdecl CWbemObject::GetArrayPropInfoByHandle(long,long,unsigned short * __ptr64 * __ptr64,long * __ptr64,unsigned long * __ptr64) __ptr64
?GetArrayPropInfoByHandle@CWbemObject@@UEAAJJJPEAPEAGPEAJPEAK@Z
; public: virtual long __cdecl CWbemObject::GetArrayPropRangeByHandle(long,long,unsigned long,unsigned long,unsigned long,unsigned long * __ptr64,unsigned long * __ptr64,void * __ptr64) __ptr64
?GetArrayPropRangeByHandle@CWbemObject@@UEAAJJJKKKPEAK0PEAX@Z
; public: long __cdecl CWbemObject::GetArrayPropertyHandle(unsigned short const * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetArrayPropertyHandle@CWbemObject@@QEAAJPEBGPEAJ1@Z
; public: class CFastPropertyBagItem * __ptr64 * __ptr64 __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::GetArrayPtr(void) __ptr64
?GetArrayPtr@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAAPEAPEAVCFastPropertyBagItem@@XZ
; public: class CWmiTextSource * __ptr64 * __ptr64 __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::GetArrayPtr(void) __ptr64
?GetArrayPtr@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAAPEAPEAVCWmiTextSource@@XZ
; public: class CFastPropertyBagItem * __ptr64 __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::GetAt(int) __ptr64
?GetAt@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAAPEAVCFastPropertyBagItem@@H@Z
; public: class CFastPropertyBagItem const * __ptr64 __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::GetAt(int)const  __ptr64
?GetAt@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEBAPEBVCFastPropertyBagItem@@H@Z
; public: class CWmiTextSource * __ptr64 __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::GetAt(int) __ptr64
?GetAt@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAAPEAVCWmiTextSource@@H@Z
; public: class CWmiTextSource const * __ptr64 __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::GetAt(int)const  __ptr64
?GetAt@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEBAPEBVCWmiTextSource@@H@Z
; public: unsigned short * __ptr64 & __ptr64 __cdecl CFixedBSTRArray::GetAt(int) __ptr64
?GetAt@CFixedBSTRArray@@QEAAAEAPEAGH@Z
; public: struct CPropertyLookup * __ptr64 __cdecl CPropertyLookupTable::GetAt(int) __ptr64
?GetAt@CPropertyLookupTable@@QEAAPEAUCPropertyLookup@@H@Z
; public: class CCompressedString * __ptr64 __cdecl CCompressedStringList::GetAtFromLast(int) __ptr64
?GetAtFromLast@CCompressedStringList@@QEAAPEAVCCompressedString@@H@Z
; public: long __cdecl CWbemCallSecurity::GetAuthentication(unsigned long * __ptr64) __ptr64
?GetAuthentication@CWbemCallSecurity@@QEAAJPEAK@Z
; public: virtual long __cdecl CWbemThreadSecurityHandle::GetAuthentication(unsigned long * __ptr64) __ptr64
?GetAuthentication@CWbemThreadSecurityHandle@@UEAAJPEAK@Z
; public: unsigned long __cdecl CWbemThreadSecurityHandle::GetAuthenticationLevel(void) __ptr64
?GetAuthenticationLevel@CWbemThreadSecurityHandle@@QEAAKXZ
; public: virtual long __cdecl CWbemCallSecurity::GetAuthenticationLuid(void * __ptr64) __ptr64
?GetAuthenticationLuid@CWbemCallSecurity@@UEAAJPEAX@Z
; public: virtual long __cdecl CWbemThreadSecurityHandle::GetAuthenticationLuid(void * __ptr64) __ptr64
?GetAuthenticationLuid@CWbemThreadSecurityHandle@@UEAAJPEAX@Z
; public: unsigned long __cdecl CWbemThreadSecurityHandle::GetAuthenticationService(void) __ptr64
?GetAuthenticationService@CWbemThreadSecurityHandle@@QEAAKXZ
; public: unsigned long __cdecl CWbemThreadSecurityHandle::GetAuthorizationService(void) __ptr64
?GetAuthorizationService@CWbemThreadSecurityHandle@@QEAAKXZ
; public: unsigned long __cdecl CType::GetBasic(void) __ptr64
?GetBasic@CType@@QEAAKXZ
; public: static unsigned long __cdecl CType::GetBasic(unsigned long)
?GetBasic@CType@@SAKK@Z
; protected: virtual unsigned long __cdecl CWbemClass::GetBlockLength(void) __ptr64
?GetBlockLength@CWbemClass@@MEAAKXZ
; protected: virtual unsigned long __cdecl CWbemInstance::GetBlockLength(void) __ptr64
?GetBlockLength@CWbemInstance@@MEAAKXZ
; public: unsigned long __cdecl CClassPart::GetClassIndex(unsigned short const * __ptr64) __ptr64
?GetClassIndex@CClassPart@@QEAAKPEBG@Z
; public: unsigned long __cdecl CWbemObject::GetClassIndex(unsigned short const * __ptr64) __ptr64
?GetClassIndex@CWbemObject@@QEAAKPEBG@Z
; public: class CCompressedString * __ptr64 __cdecl CWbemObject::GetClassInternal(void) __ptr64
?GetClassInternal@CWbemObject@@QEAAPEAVCCompressedString@@XZ
; public: static long __cdecl CClassAndMethods::GetClassNameW(class WString & __ptr64,unsigned char * __ptr64)
?GetClassNameW@CClassAndMethods@@SAJAEAVWString@@PEAE@Z
; public: long __cdecl CClassPart::GetClassNameW(class CVar * __ptr64) __ptr64
?GetClassNameW@CClassPart@@QEAAJPEAVCVar@@@Z
; public: class CCompressedString * __ptr64 __cdecl CClassPart::GetClassNameW(void) __ptr64
?GetClassNameW@CClassPart@@QEAAPEAVCCompressedString@@XZ
; public: virtual long __cdecl CWbemClass::GetClassNameW(class CVar * __ptr64) __ptr64
?GetClassNameW@CWbemClass@@UEAAJPEAVCVar@@@Z
; public: virtual long __cdecl CWbemInstance::GetClassNameW(class CVar * __ptr64) __ptr64
?GetClassNameW@CWbemInstance@@UEAAJPEAVCVar@@@Z
; private: long __cdecl CWbemObjectArrayPacket::GetClassObject(class CWbemObjectPacket & __ptr64,struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?GetClassObject@CWbemObjectArrayPacket@@AEAAJAEAVCWbemObjectPacket@@PEAPEAUIWbemClassObject@@@Z
; protected: virtual class CClassPart * __ptr64 __cdecl CWbemClass::GetClassPart(void) __ptr64
?GetClassPart@CWbemClass@@MEAAPEAVCClassPart@@XZ
; public: virtual long __cdecl CWbemClass::GetClassPart(void * __ptr64,unsigned long,unsigned long * __ptr64) __ptr64
?GetClassPart@CWbemClass@@UEAAJPEAXKPEAK@Z
; protected: virtual class CClassPart * __ptr64 __cdecl CWbemInstance::GetClassPart(void) __ptr64
?GetClassPart@CWbemInstance@@MEAAPEAVCClassPart@@XZ
; public: virtual long __cdecl CWbemInstance::GetClassPart(void * __ptr64,unsigned long,unsigned long * __ptr64) __ptr64
?GetClassPart@CWbemInstance@@UEAAJPEAXKPEAK@Z
; public: long __cdecl CClassPart::GetClassQualifier(unsigned short const * __ptr64,long * __ptr64,class CTypedValue * __ptr64,class CFastHeap * __ptr64 * __ptr64,int) __ptr64
?GetClassQualifier@CClassPart@@QEAAJPEBGPEAJPEAVCTypedValue@@PEAPEAVCFastHeap@@H@Z
; public: long __cdecl CClassPart::GetClassQualifier(unsigned short const * __ptr64,class CVar * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetClassQualifier@CClassPart@@QEAAJPEBGPEAVCVar@@PEAJ2@Z
; public: virtual long __cdecl CWbemClass::GetClassSubset(unsigned long,unsigned short const * __ptr64 * __ptr64,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?GetClassSubset@CWbemClass@@UEAAJKPEAPEBGPEAPEAU_IWmiObject@@@Z
; public: virtual long __cdecl CWbemInstance::GetClassSubset(unsigned long,unsigned short const * __ptr64 * __ptr64,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?GetClassSubset@CWbemInstance@@UEAAJKPEAPEBGPEAPEAU_IWmiObject@@@Z
; private: long __cdecl CWbemObjectArrayPacket::GetClasslessInstanceObject(class CWbemObjectPacket & __ptr64,struct IWbemClassObject * __ptr64 * __ptr64,class CWbemClassCache & __ptr64) __ptr64
?GetClasslessInstanceObject@CWbemObjectArrayPacket@@AEAAJAEAVCWbemObjectPacket@@PEAPEAUIWbemClassObject@@AEAVCWbemClassCache@@@Z
; public: virtual unsigned long __cdecl CClassAndMethods::GetCurrentOrigin(void) __ptr64
?GetCurrentOrigin@CClassAndMethods@@UEAAKXZ
; public: virtual unsigned long __cdecl CClassPart::GetCurrentOrigin(void) __ptr64
?GetCurrentOrigin@CClassPart@@UEAAKXZ
; public: unsigned long __cdecl CWbemClass::GetCurrentOrigin(void) __ptr64
?GetCurrentOrigin@CWbemClass@@QEAAKXZ
; public: unsigned long __cdecl CDataTable::GetDataLength(void) __ptr64
?GetDataLength@CDataTable@@QEAAKXZ
; public: virtual class CDataTable * __ptr64 __cdecl CClassPart::GetDataTable(void) __ptr64
?GetDataTable@CClassPart@@UEAAPEAVCDataTable@@XZ
; public: class CDataTable * __ptr64 __cdecl CInstancePart::GetDataTable(void) __ptr64
?GetDataTable@CInstancePart@@QEAAPEAVCDataTable@@XZ
; public: static unsigned char * __ptr64 __cdecl CInstancePart::GetDataTableData(unsigned char * __ptr64)
?GetDataTableData@CInstancePart@@SAPEAEPEAE@Z
; public: long __cdecl CClassPart::GetDefaultByHandle(long,long,long * __ptr64,unsigned char * __ptr64) __ptr64
?GetDefaultByHandle@CClassPart@@QEAAJJJPEAJPEAE@Z
; public: long __cdecl CClassPart::GetDefaultPtrByHandle(long,void * __ptr64 * __ptr64) __ptr64
?GetDefaultPtrByHandle@CClassPart@@QEAAJJPEAPEAX@Z
; public: long __cdecl CClassPart::GetDefaultValue(class CPropertyInformation * __ptr64,class CVar * __ptr64) __ptr64
?GetDefaultValue@CClassPart@@QEAAJPEAVCPropertyInformation@@PEAVCVar@@@Z
; public: long __cdecl CClassPart::GetDefaultValue(unsigned short const * __ptr64,class CVar * __ptr64) __ptr64
?GetDefaultValue@CClassPart@@QEAAJPEBGPEAVCVar@@@Z
; public: long __cdecl CClassPart::GetDerivation(class CVar * __ptr64) __ptr64
?GetDerivation@CClassPart@@QEAAJPEAVCVar@@@Z
; public: long __cdecl CWbemObject::GetDerivation(class CVar * __ptr64) __ptr64
?GetDerivation@CWbemObject@@QEAAJPEAVCVar@@@Z
; public: virtual long __cdecl CWbemObject::GetDerivation(long,unsigned long,unsigned long * __ptr64,unsigned long * __ptr64,unsigned short * __ptr64) __ptr64
?GetDerivation@CWbemObject@@UEAAJJKPEAK0PEAG@Z
; public: virtual long __cdecl CWbemObject::GetDescription(unsigned short * __ptr64 * __ptr64) __ptr64
?GetDescription@CWbemObject@@UEAAJPEAPEAG@Z
; public: long __cdecl CClassPart::GetDynasty(class CVar * __ptr64) __ptr64
?GetDynasty@CClassPart@@QEAAJPEAVCVar@@@Z
; public: class CCompressedString * __ptr64 __cdecl CClassPart::GetDynasty(void) __ptr64
?GetDynasty@CClassPart@@QEAAPEAVCCompressedString@@XZ
; public: virtual long __cdecl CWbemClass::GetDynasty(class CVar * __ptr64) __ptr64
?GetDynasty@CWbemClass@@UEAAJPEAVCVar@@@Z
; public: virtual long __cdecl CWbemInstance::GetDynasty(class CVar * __ptr64) __ptr64
?GetDynasty@CWbemInstance@@UEAAJPEAVCVar@@@Z
; public: unsigned char * __ptr64 __cdecl CUntypedArray::GetElement(int,int) __ptr64
?GetElement@CUntypedArray@@QEAAPEAEHH@Z
; public: class CWbemObject * __ptr64 __cdecl CEmbeddedObject::GetEmbedded(void) __ptr64
?GetEmbedded@CEmbeddedObject@@QEAAPEAVCWbemObject@@XZ
; public: class CWbemObject * __ptr64 __cdecl CWbemObject::GetEmbeddedObj(long) __ptr64
?GetEmbeddedObj@CWbemObject@@QEAAPEAV1@J@Z
; public: class CCompressedString * __ptr64 __cdecl CCompressedStringList::GetFirst(void) __ptr64
?GetFirst@CCompressedStringList@@QEAAPEAVCCompressedString@@XZ
; public: struct CQualifier * __ptr64 __cdecl CBasicQualifierSet::GetFirstQualifier(void) __ptr64
?GetFirstQualifier@CBasicQualifierSet@@QEAAPEAUCQualifier@@XZ
; public: static struct CQualifier * __ptr64 __cdecl CBasicQualifierSet::GetFirstQualifierFromData(unsigned char * __ptr64)
?GetFirstQualifierFromData@CBasicQualifierSet@@SAPEAUCQualifier@@PEAE@Z
; public: long __cdecl CLimitationMapping::GetFlags(void) __ptr64
?GetFlags@CLimitationMapping@@QEAAJXZ
; public: unsigned short * __ptr64 __cdecl CWbemObject::GetFullPath(void) __ptr64
?GetFullPath@CWbemObject@@QEAAPEAGXZ
; public: virtual long __cdecl CWbemObject::GetGUID(struct _GUID * __ptr64) __ptr64
?GetGUID@CWbemObject@@UEAAJPEAU_GUID@@@Z
; public: virtual long __cdecl CWbemClass::GetGenus(class CVar * __ptr64) __ptr64
?GetGenus@CWbemClass@@UEAAJPEAVCVar@@@Z
; public: virtual long __cdecl CWbemInstance::GetGenus(class CVar * __ptr64) __ptr64
?GetGenus@CWbemInstance@@UEAAJPEAVCVar@@@Z
; public: virtual long __cdecl CWbemRemoteRefresher::XWbemRemoteRefr::GetGuid(long,struct _GUID * __ptr64) __ptr64
?GetGuid@XWbemRemoteRefr@CWbemRemoteRefresher@@UEAAJJPEAU_GUID@@@Z
; public: virtual long __cdecl CWbemThreadSecurityHandle::GetHandleType(unsigned long * __ptr64) __ptr64
?GetHandleType@CWbemThreadSecurityHandle@@UEAAJPEAK@Z
; public: static unsigned long __cdecl CCompressedStringList::GetHeaderLength(void)
?GetHeaderLength@CCompressedStringList@@SAKXZ
; protected: unsigned long __cdecl CFastHeap::GetHeaderLength(void) __ptr64
?GetHeaderLength@CFastHeap@@IEAAKXZ
; public: static int __cdecl CQualifierSetList::GetHeaderLength(void)
?GetHeaderLength@CQualifierSetList@@SAHXZ
; public: static unsigned long __cdecl CUntypedArray::GetHeaderLength(void)
?GetHeaderLength@CUntypedArray@@SAKXZ
; public: class CFastHeap * __ptr64 __cdecl CBasicQualifierSet::GetHeap(void) __ptr64
?GetHeap@CBasicQualifierSet@@QEAAPEAVCFastHeap@@XZ
; public: virtual class CFastHeap * __ptr64 __cdecl CClassPart::GetHeap(void) __ptr64
?GetHeap@CClassPart@@UEAAPEAVCFastHeap@@XZ
; public: virtual class CFastHeap * __ptr64 __cdecl CInstancePQSContainer::GetHeap(void) __ptr64
?GetHeap@CInstancePQSContainer@@UEAAPEAVCFastHeap@@XZ
; public: virtual class CFastHeap * __ptr64 __cdecl CInstancePart::GetHeap(void) __ptr64
?GetHeap@CInstancePart@@UEAAPEAVCFastHeap@@XZ
; public: class CFastHeap * __ptr64 __cdecl CMethodPart::GetHeap(void) __ptr64
?GetHeap@CMethodPart@@QEAAPEAVCFastHeap@@XZ
; public: virtual class CFastHeap * __ptr64 __cdecl CMethodQualifierSetContainer::GetHeap(void) __ptr64
?GetHeap@CMethodQualifierSetContainer@@UEAAPEAVCFastHeap@@XZ
; public: class CFastHeap * __ptr64 __cdecl CPropertyLookupTable::GetHeap(void) __ptr64
?GetHeap@CPropertyLookupTable@@QEAAPEAVCFastHeap@@XZ
; public: class CFastHeap * __ptr64 __cdecl CQualifierSetList::GetHeap(void) __ptr64
?GetHeap@CQualifierSetList@@QEAAPEAVCFastHeap@@XZ
; public: unsigned char * __ptr64 __cdecl CFastHeap::GetHeapData(void) __ptr64
?GetHeapData@CFastHeap@@QEAAPEAEXZ
; public: unsigned long __cdecl CClassPart::GetHeapPtrByHandle(long) __ptr64
?GetHeapPtrByHandle@CClassPart@@QEAAKJ@Z
; public: unsigned long __cdecl CWbemObject::GetHeapPtrByHandle(long) __ptr64
?GetHeapPtrByHandle@CWbemObject@@QEAAKJ@Z
; public: virtual long __cdecl CWbemObject::GetHelpContext(unsigned long * __ptr64) __ptr64
?GetHelpContext@CWbemObject@@UEAAJPEAK@Z
; public: virtual long __cdecl CWbemObject::GetHelpFile(unsigned short * __ptr64 * __ptr64) __ptr64
?GetHelpFile@CWbemObject@@UEAAJPEAPEAG@Z
; public: unsigned short * __ptr64 __cdecl CWbemThreadSecurityHandle::GetIdentity(void) __ptr64
?GetIdentity@CWbemThreadSecurityHandle@@QEAAPEAGXZ
; public: long __cdecl CWbemClass::GetIds(class CFlexArray & __ptr64,class CWbemClass * __ptr64) __ptr64
?GetIds@CWbemClass@@QEAAJAEAVCFlexArray@@PEAV1@@Z
; public: virtual long __cdecl CWbemCallSecurity::GetImpersonation(unsigned long * __ptr64) __ptr64
?GetImpersonation@CWbemCallSecurity@@UEAAJPEAK@Z
; public: virtual long __cdecl CWbemThreadSecurityHandle::GetImpersonation(unsigned long * __ptr64) __ptr64
?GetImpersonation@CWbemThreadSecurityHandle@@UEAAJPEAK@Z
; public: unsigned long __cdecl CWbemThreadSecurityHandle::GetImpersonationLevel(void) __ptr64
?GetImpersonationLevel@CWbemThreadSecurityHandle@@QEAAKXZ
; protected: unsigned long * __ptr64 __ptr64 __cdecl CFastHeap::GetInLineLength(void) __ptr64
?GetInLineLength@CFastHeap@@IEAAPEFAKXZ
; public: static int __cdecl CFastHeap::GetIndexFromFake(unsigned long)
?GetIndexFromFake@CFastHeap@@SAHK@Z
; public: static int __cdecl CKnownStringTable::GetIndexOfKey(void)
?GetIndexOfKey@CKnownStringTable@@SAHXZ
; public: static int __cdecl CClassAndMethods::GetIndexedProps(class CWStringArray & __ptr64,unsigned char * __ptr64)
?GetIndexedProps@CClassAndMethods@@SAHAEAVCWStringArray@@PEAE@Z
; public: int __cdecl CClassPart::GetIndexedProps(class CWStringArray & __ptr64) __ptr64
?GetIndexedProps@CClassPart@@QEAAHAEAVCWStringArray@@@Z
; public: virtual int __cdecl CWbemClass::GetIndexedProps(class CWStringArray & __ptr64) __ptr64
?GetIndexedProps@CWbemClass@@UEAAHAEAVCWStringArray@@@Z
; public: virtual int __cdecl CWbemInstance::GetIndexedProps(class CWStringArray & __ptr64) __ptr64
?GetIndexedProps@CWbemInstance@@UEAAHAEAVCWStringArray@@@Z
; private: long __cdecl CWbemObjectArrayPacket::GetInstanceObject(class CWbemObjectPacket & __ptr64,struct IWbemClassObject * __ptr64 * __ptr64,class CWbemClassCache & __ptr64) __ptr64
?GetInstanceObject@CWbemObjectArrayPacket@@AEAAJAEAVCWbemObjectPacket@@PEAPEAUIWbemClassObject@@AEAVCWbemClassCache@@@Z
; public: virtual struct IUnknown * __ptr64 __cdecl CWbemInstance::GetInstanceObjectUnknown(void) __ptr64
?GetInstanceObjectUnknown@CWbemInstance@@UEAAPEAUIUnknown@@XZ
; protected: virtual void * __ptr64 __cdecl CWbemEnumMarshaling::GetInterface(struct _GUID const & __ptr64) __ptr64
?GetInterface@CWbemEnumMarshaling@@MEAAPEAXAEBU_GUID@@@Z
; protected: virtual void * __ptr64 __cdecl CWbemFetchRefrMgr::GetInterface(struct _GUID const & __ptr64) __ptr64
?GetInterface@CWbemFetchRefrMgr@@MEAAPEAXAEBU_GUID@@@Z
; protected: virtual void * __ptr64 __cdecl CWbemRefreshingSvc::GetInterface(struct _GUID const & __ptr64) __ptr64
?GetInterface@CWbemRefreshingSvc@@MEAAPEAXAEBU_GUID@@@Z
; protected: virtual void * __ptr64 __cdecl CWmiObjectFactory::GetInterface(struct _GUID const & __ptr64) __ptr64
?GetInterface@CWmiObjectFactory@@MEAAPEAXAEBU_GUID@@@Z
; public: class CVar * __ptr64 __cdecl CWbemInstance::GetKey(void) __ptr64
?GetKey@CWbemInstance@@QEAAPEAVCVar@@XZ
; public: long __cdecl CClassPart::GetKeyOrigin(class WString & __ptr64) __ptr64
?GetKeyOrigin@CClassPart@@QEAAJAEAVWString@@@Z
; public: virtual long __cdecl CWbemClass::GetKeyOrigin(class WString & __ptr64) __ptr64
?GetKeyOrigin@CWbemClass@@UEAAJAEAVWString@@@Z
; public: virtual long __cdecl CWbemInstance::GetKeyOrigin(class WString & __ptr64) __ptr64
?GetKeyOrigin@CWbemInstance@@UEAAJAEAVWString@@@Z
; public: virtual long __cdecl CWbemObject::GetKeyOrigin(long,unsigned long,unsigned long * __ptr64,unsigned short * __ptr64) __ptr64
?GetKeyOrigin@CWbemObject@@UEAAJJKPEAKPEAG@Z
; public: int __cdecl CClassPart::GetKeyProps(class CWStringArray & __ptr64) __ptr64
?GetKeyProps@CClassPart@@QEAAHAEAVCWStringArray@@@Z
; public: virtual int __cdecl CWbemClass::GetKeyProps(class CWStringArray & __ptr64) __ptr64
?GetKeyProps@CWbemClass@@UEAAHAEAVCWStringArray@@@Z
; public: virtual int __cdecl CWbemInstance::GetKeyProps(class CWStringArray & __ptr64) __ptr64
?GetKeyProps@CWbemInstance@@UEAAHAEAVCWStringArray@@@Z
; public: unsigned short * __ptr64 __cdecl CWbemInstance::GetKeyStr(void) __ptr64
?GetKeyStr@CWbemInstance@@QEAAPEAGXZ
; public: virtual long __cdecl CWbemObject::GetKeyString(long,unsigned short * __ptr64 * __ptr64) __ptr64
?GetKeyString@CWbemObject@@UEAAJJPEAPEAG@Z
; public: struct CQualifier * __ptr64 __cdecl CBasicQualifierSet::GetKnownQualifierLocally(int) __ptr64
?GetKnownQualifierLocally@CBasicQualifierSet@@QEAAPEAUCQualifier@@H@Z
; public: static struct CQualifier * __ptr64 __cdecl CBasicQualifierSet::GetKnownQualifierLocally(unsigned char * __ptr64,int)
?GetKnownQualifierLocally@CBasicQualifierSet@@SAPEAUCQualifier@@PEAEH@Z
; public: static class CCompressedString & __ptr64 __cdecl CKnownStringTable::GetKnownString(int)
?GetKnownString@CKnownStringTable@@SAAEAVCCompressedString@@H@Z
; public: static int __cdecl CKnownStringTable::GetKnownStringIndex(unsigned short const * __ptr64)
?GetKnownStringIndex@CKnownStringTable@@SAHPEBG@Z
; public: class CCompressedString * __ptr64 __cdecl CCompressedStringList::GetLast(void) __ptr64
?GetLast@CCompressedStringList@@QEAAPEAVCCompressedString@@XZ
; public: unsigned long __cdecl CBasicQualifierSet::GetLength(void) __ptr64
?GetLength@CBasicQualifierSet@@QEAAKXZ
; public: unsigned long __cdecl CClassAndMethods::GetLength(void) __ptr64
?GetLength@CClassAndMethods@@QEAAKXZ
; public: unsigned long __cdecl CClassPart::GetLength(void) __ptr64
?GetLength@CClassPart@@QEAAKXZ
; public: int __cdecl CCompressedString::GetLength(void)const  __ptr64
?GetLength@CCompressedString@@QEBAHXZ
; public: unsigned long __cdecl CCompressedStringList::GetLength(void) __ptr64
?GetLength@CCompressedStringList@@QEAAKXZ
; public: unsigned long __cdecl CDataTable::GetLength(void) __ptr64
?GetLength@CDataTable@@QEAAKXZ
; public: unsigned long __cdecl CDecorationPart::GetLength(void) __ptr64
?GetLength@CDecorationPart@@QEAAKXZ
; public: unsigned long __cdecl CEmbeddedObject::GetLength(void) __ptr64
?GetLength@CEmbeddedObject@@QEAAKXZ
; public: unsigned long __cdecl CFastHeap::GetLength(void) __ptr64
?GetLength@CFastHeap@@QEAAKXZ
; public: int __cdecl CFixedBSTRArray::GetLength(void) __ptr64
?GetLength@CFixedBSTRArray@@QEAAHXZ
; public: int __cdecl CInstancePart::GetLength(void) __ptr64
?GetLength@CInstancePart@@QEAAHXZ
; public: static int __cdecl CInstancePart::GetLength(unsigned char * __ptr64)
?GetLength@CInstancePart@@SAHPEAE@Z
; public: int __cdecl CInternalString::GetLength(void)const  __ptr64
?GetLength@CInternalString@@QEBAHXZ
; public: unsigned long __cdecl CMethodPart::GetLength(void) __ptr64
?GetLength@CMethodPart@@QEAAKXZ
; public: int __cdecl CPropertyLookupTable::GetLength(void) __ptr64
?GetLength@CPropertyLookupTable@@QEAAHXZ
; public: int __cdecl CQualifierSetList::GetLength(void) __ptr64
?GetLength@CQualifierSetList@@QEAAHXZ
; public: static int __cdecl CQualifierSetList::GetLength(unsigned char * __ptr64,int)
?GetLength@CQualifierSetList@@SAHPEAEH@Z
; public: unsigned long __cdecl CType::GetLength(void) __ptr64
?GetLength@CType@@QEAAKXZ
; public: static unsigned long __cdecl CType::GetLength(unsigned long)
?GetLength@CType@@SAKK@Z
; public: unsigned long __cdecl CWbemClass::GetLength(void) __ptr64
?GetLength@CWbemClass@@QEAAKXZ
; public: unsigned long __cdecl CWbemInstance::GetLength(void) __ptr64
?GetLength@CWbemInstance@@QEAAKXZ
; public: unsigned long __cdecl CUntypedArray::GetLengthByActualLength(int) __ptr64
?GetLengthByActualLength@CUntypedArray@@QEAAKH@Z
; public: unsigned long __cdecl CUntypedArray::GetLengthByType(class CType) __ptr64
?GetLengthByType@CUntypedArray@@QEAAKVCType@@@Z
; public: static unsigned long __cdecl CBasicQualifierSet::GetLengthFromData(unsigned char * __ptr64)
?GetLengthFromData@CBasicQualifierSet@@SAKPEAE@Z
; public: long __cdecl CWbemClass::GetLimitedVersion(class CLimitationMapping * __ptr64,class CWbemClass * __ptr64 * __ptr64) __ptr64
?GetLimitedVersion@CWbemClass@@QEAAJPEAVCLimitationMapping@@PEAPEAV1@@Z
; public: long __cdecl CWbemInstance::GetLimitedVersion(class CLimitationMapping * __ptr64,class CWbemInstance * __ptr64 * __ptr64) __ptr64
?GetLimitedVersion@CWbemInstance@@QEAAJPEAVCLimitationMapping@@PEAPEAV1@@Z
; public: long __cdecl CWbemGuidToClassMap::GetMap(class CGUID & __ptr64,class CWbemClassToIdMap * __ptr64 * __ptr64) __ptr64
?GetMap@CWbemGuidToClassMap@@QEAAJAEAVCGUID@@PEAPEAVCWbemClassToIdMap@@@Z
; public: unsigned short __cdecl CLimitationMapping::GetMapped(unsigned short) __ptr64
?GetMapped@CLimitationMapping@@QEAAGG@Z
; public: class CPropertyInformation * __ptr64 __cdecl CLimitationMapping::GetMapped(class CPropertyInformation * __ptr64) __ptr64
?GetMapped@CLimitationMapping@@QEAAPEAVCPropertyInformation@@PEAV2@@Z
; public: long __cdecl CWbemEnumMarshaling::GetMarshalPacket(struct _GUID const & __ptr64,unsigned long,struct IWbemClassObject * __ptr64 * __ptr64,unsigned long * __ptr64,unsigned char * __ptr64 * __ptr64) __ptr64
?GetMarshalPacket@CWbemEnumMarshaling@@QEAAJAEBU_GUID@@KPEAPEAUIWbemClassObject@@PEAKPEAPEAE@Z
; public: virtual long __cdecl CWbemEnumMarshaling::XEnumMarshaling::GetMarshalPacket(struct _GUID const & __ptr64,unsigned long,struct IWbemClassObject * __ptr64 * __ptr64,unsigned long * __ptr64,unsigned char * __ptr64 * __ptr64) __ptr64
?GetMarshalPacket@XEnumMarshaling@CWbemEnumMarshaling@@UEAAJAEBU_GUID@@KPEAPEAUIWbemClassObject@@PEAKPEAPEAE@Z
; public: virtual long __cdecl CWbemObject::GetMarshalSizeMax(struct _GUID const & __ptr64,void * __ptr64,unsigned long,void * __ptr64,unsigned long,unsigned long * __ptr64) __ptr64
?GetMarshalSizeMax@CWbemObject@@UEAAJAEBU_GUID@@PEAXK1KPEAK@Z
; public: virtual long __cdecl CWbemInstance::GetMaxMarshalStreamSize(unsigned long * __ptr64) __ptr64
?GetMaxMarshalStreamSize@CWbemInstance@@UEAAJPEAK@Z
; public: virtual long __cdecl CWbemObject::GetMaxMarshalStreamSize(unsigned long * __ptr64) __ptr64
?GetMaxMarshalStreamSize@CWbemObject@@UEAAJPEAK@Z
; public: virtual unsigned char * __ptr64 __cdecl CClassPart::GetMemoryLimit(void) __ptr64
?GetMemoryLimit@CClassPart@@UEAAPEAEXZ
; public: virtual unsigned char * __ptr64 __cdecl CInstancePart::GetMemoryLimit(void) __ptr64
?GetMemoryLimit@CInstancePart@@UEAAPEAEXZ
; public: virtual unsigned char * __ptr64 __cdecl CMethodPart::GetMemoryLimit(void) __ptr64
?GetMemoryLimit@CMethodPart@@UEAAPEAEXZ
; public: long __cdecl CMethodPart::GetMethod(unsigned short const * __ptr64,long,class CWbemObject * __ptr64 * __ptr64,class CWbemObject * __ptr64 * __ptr64) __ptr64
?GetMethod@CMethodPart@@QEAAJPEBGJPEAPEAVCWbemObject@@1@Z
; public: virtual long __cdecl CWbemClass::GetMethod(unsigned short const * __ptr64,long,struct IWbemClassObject * __ptr64 * __ptr64,struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?GetMethod@CWbemClass@@UEAAJPEBGJPEAPEAUIWbemClassObject@@1@Z
; public: virtual long __cdecl CWbemInstance::GetMethod(unsigned short const * __ptr64,long,struct IWbemClassObject * __ptr64 * __ptr64,struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?GetMethod@CWbemInstance@@UEAAJPEBGJPEAPEAUIWbemClassObject@@1@Z
; public: long __cdecl CMethodPart::GetMethodAt(int,unsigned short * __ptr64 * __ptr64,class CWbemObject * __ptr64 * __ptr64,class CWbemObject * __ptr64 * __ptr64) __ptr64
?GetMethodAt@CMethodPart@@QEAAJHPEAPEAGPEAPEAVCWbemObject@@1@Z
; public: long __cdecl CMethodPart::GetMethodOrigin(unsigned short const * __ptr64,unsigned long * __ptr64) __ptr64
?GetMethodOrigin@CMethodPart@@QEAAJPEBGPEAK@Z
; public: virtual long __cdecl CWbemClass::GetMethodOrigin(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
?GetMethodOrigin@CWbemClass@@UEAAJPEBGPEAPEAG@Z
; public: virtual long __cdecl CWbemInstance::GetMethodOrigin(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
?GetMethodOrigin@CWbemInstance@@UEAAJPEBGPEAPEAG@Z
; public: virtual long __cdecl CWbemObject::GetMethodQual(unsigned short const * __ptr64,unsigned short const * __ptr64,long,unsigned long,long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,void * __ptr64) __ptr64
?GetMethodQual@CWbemObject@@UEAAJPEBG0JKPEAJPEAK2PEAX@Z
; public: virtual long __cdecl CWbemClass::GetMethodQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,long * __ptr64,class CTypedValue * __ptr64,class CFastHeap * __ptr64 * __ptr64,int) __ptr64
?GetMethodQualifier@CWbemClass@@UEAAJPEBG0PEAJPEAVCTypedValue@@PEAPEAVCFastHeap@@H@Z
; public: virtual long __cdecl CWbemClass::GetMethodQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,class CVar * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetMethodQualifier@CWbemClass@@UEAAJPEBG0PEAVCVar@@PEAJ2@Z
; public: virtual long __cdecl CWbemInstance::GetMethodQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,long * __ptr64,class CTypedValue * __ptr64,class CFastHeap * __ptr64 * __ptr64,int) __ptr64
?GetMethodQualifier@CWbemInstance@@UEAAJPEBG0PEAJPEAVCTypedValue@@PEAPEAVCFastHeap@@H@Z
; public: virtual long __cdecl CWbemInstance::GetMethodQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,class CVar * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetMethodQualifier@CWbemInstance@@UEAAJPEBG0PEAVCVar@@PEAJ2@Z
; public: long __cdecl CMethodPart::GetMethodQualifierSet(unsigned short const * __ptr64,struct IWbemQualifierSet * __ptr64 * __ptr64) __ptr64
?GetMethodQualifierSet@CMethodPart@@QEAAJPEBGPEAPEAUIWbemQualifierSet@@@Z
; public: virtual long __cdecl CWbemClass::GetMethodQualifierSet(unsigned short const * __ptr64,struct IWbemQualifierSet * __ptr64 * __ptr64) __ptr64
?GetMethodQualifierSet@CWbemClass@@UEAAJPEBGPEAPEAUIWbemQualifierSet@@@Z
; public: virtual long __cdecl CWbemInstance::GetMethodQualifierSet(unsigned short const * __ptr64,struct IWbemQualifierSet * __ptr64 * __ptr64) __ptr64
?GetMethodQualifierSet@CWbemInstance@@UEAAJPEBGPEAPEAUIWbemQualifierSet@@@Z
; public: unsigned long __cdecl CWbemDataPacket::GetMinHeaderSize(void) __ptr64
?GetMinHeaderSize@CWbemDataPacket@@QEAAKXZ
; public: static unsigned long __cdecl CBasicQualifierSet::GetMinLength(void)
?GetMinLength@CBasicQualifierSet@@SAKXZ
; public: static unsigned long __cdecl CClassAndMethods::GetMinLength(void)
?GetMinLength@CClassAndMethods@@SAKXZ
; public: static int __cdecl CClassPart::GetMinLength(void)
?GetMinLength@CClassPart@@SAHXZ
; public: static unsigned long __cdecl CDataTable::GetMinLength(void)
?GetMinLength@CDataTable@@SAKXZ
; public: static unsigned long __cdecl CDecorationPart::GetMinLength(void)
?GetMinLength@CDecorationPart@@SAKXZ
; public: static unsigned long __cdecl CFastHeap::GetMinLength(void)
?GetMinLength@CFastHeap@@SAKXZ
; public: static unsigned long __cdecl CMethodPart::GetMinLength(void)
?GetMinLength@CMethodPart@@SAKXZ
; public: static unsigned long __cdecl CPropertyLookupTable::GetMinLength(void)
?GetMinLength@CPropertyLookupTable@@SAKXZ
; public: static unsigned long __cdecl CWbemClass::GetMinLength(void)
?GetMinLength@CWbemClass@@SAKXZ
; protected: class CCompressedString * __ptr64 __cdecl CMethodPart::GetName(int) __ptr64
?GetName@CMethodPart@@IEAAPEAVCCompressedString@@H@Z
; public: static unsigned short * __ptr64 __cdecl CSystemProperties::GetNameAsBSTR(int)
?GetNameAsBSTR@CSystemProperties@@SAPEAGH@Z
; public: virtual long __cdecl CQualifierSet::GetNames(long,struct tagSAFEARRAY * __ptr64 * __ptr64) __ptr64
?GetNames@CQualifierSet@@UEAAJJPEAPEAUtagSAFEARRAY@@@Z
; public: virtual long __cdecl CWbemObject::GetNames(unsigned short const * __ptr64,long,struct tagVARIANT * __ptr64,struct tagSAFEARRAY * __ptr64 * __ptr64) __ptr64
?GetNames@CWbemObject@@UEAAJPEBGJPEAUtagVARIANT@@PEAPEAUtagSAFEARRAY@@@Z
; public: long __cdecl CWbemObject::GetNamespace(class CVar * __ptr64) __ptr64
?GetNamespace@CWbemObject@@QEAAJPEAVCVar@@@Z
; public: class CCompressedString * __ptr64 __cdecl CCompressedStringList::GetNext(class CCompressedString * __ptr64) __ptr64
?GetNext@CCompressedStringList@@QEAAPEAVCCompressedString@@PEAV2@@Z
; public: long __cdecl CWbemInstance::GetNonsystemPropertyValue(unsigned short const * __ptr64,class CVar * __ptr64) __ptr64
?GetNonsystemPropertyValue@CWbemInstance@@QEAAJPEBGPEAVCVar@@@Z
; public: virtual long __cdecl CWbemObject::GetNormalizedPath(long,unsigned short * __ptr64 * __ptr64) __ptr64
?GetNormalizedPath@CWbemObject@@UEAAJJPEAPEAG@Z
; public: unsigned long __cdecl CDataTable::GetNullnessLength(void) __ptr64
?GetNullnessLength@CDataTable@@QEAAKXZ
; public: static int __cdecl CSystemProperties::GetNumDecorationIndependentProperties(void)
?GetNumDecorationIndependentProperties@CSystemProperties@@SAHXZ
; public: int __cdecl CUntypedArray::GetNumElements(void) __ptr64
?GetNumElements@CUntypedArray@@QEAAHXZ
; public: int __cdecl CLimitationMapping::GetNumMappings(void) __ptr64
?GetNumMappings@CLimitationMapping@@QEAAHXZ
; protected: int __cdecl CMethodPart::GetNumMethods(void) __ptr64
?GetNumMethods@CMethodPart@@IEAAHXZ
; public: int __cdecl CWbemObject::GetNumParents(void) __ptr64
?GetNumParents@CWbemObject@@QEAAHXZ
; public: int __cdecl CPropertyLookupTable::GetNumProperties(void) __ptr64
?GetNumProperties@CPropertyLookupTable@@QEAAHXZ
; public: virtual int __cdecl CWbemClass::GetNumProperties(void) __ptr64
?GetNumProperties@CWbemClass@@UEAAHXZ
; public: virtual int __cdecl CWbemInstance::GetNumProperties(void) __ptr64
?GetNumProperties@CWbemInstance@@UEAAHXZ
; public: int __cdecl CQualifierSetList::GetNumSets(void) __ptr64
?GetNumSets@CQualifierSetList@@QEAAHXZ
; public: int __cdecl CCompressedStringList::GetNumStrings(void) __ptr64
?GetNumStrings@CCompressedStringList@@QEAAHXZ
; public: static int __cdecl CSystemProperties::GetNumSystemProperties(void)
?GetNumSystemProperties@CSystemProperties@@SAHXZ
; public: int __cdecl CBasicQualifierSet::GetNumUpperBound(void) __ptr64
?GetNumUpperBound@CBasicQualifierSet@@QEAAHXZ
; public: virtual long __cdecl CWbemObject::GetObjQual(unsigned short const * __ptr64,long,unsigned long,long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,void * __ptr64) __ptr64
?GetObjQual@CWbemObject@@UEAAJPEBGJKPEAJPEAK2PEAX@Z
; public: virtual long __cdecl CWbemObject::GetObjectMemory(void * __ptr64,unsigned long,unsigned long * __ptr64) __ptr64
?GetObjectMemory@CWbemObject@@UEAAJPEAXKPEAK@Z
; public: virtual long __cdecl CWbemClass::GetObjectParts(void * __ptr64,unsigned long,unsigned long,unsigned long * __ptr64) __ptr64
?GetObjectParts@CWbemClass@@UEAAJPEAXKKPEAK@Z
; public: virtual long __cdecl CWbemInstance::GetObjectParts(void * __ptr64,unsigned long,unsigned long,unsigned long * __ptr64) __ptr64
?GetObjectParts@CWbemInstance@@UEAAJPEAXKKPEAK@Z
; public: long __cdecl CInstancePart::GetObjectQualifier(unsigned short const * __ptr64,class CVar * __ptr64,long * __ptr64) __ptr64
?GetObjectQualifier@CInstancePart@@QEAAJPEBGPEAVCVar@@PEAJ@Z
; public: virtual long __cdecl CWbemClass::GetObjectText(long,unsigned short * __ptr64 * __ptr64) __ptr64
?GetObjectText@CWbemClass@@UEAAJJPEAPEAG@Z
; public: virtual long __cdecl CWbemInstance::GetObjectText(long,unsigned short * __ptr64 * __ptr64) __ptr64
?GetObjectText@CWbemInstance@@UEAAJJPEAPEAG@Z
; public: long __cdecl CWbemClassCache::GetObjectW(struct _GUID & __ptr64,struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?GetObjectW@CWbemClassCache@@QEAAJAEAU_GUID@@PEAPEAUIWbemClassObject@@@Z
; public: class CUntypedValue * __ptr64 __cdecl CDataTable::GetOffset(unsigned long) __ptr64
?GetOffset@CDataTable@@QEAAPEAVCUntypedValue@@K@Z
; public: class CCompressedString * __ptr64 __cdecl CWbemObject::GetParentAtIndex(int) __ptr64
?GetParentAtIndex@CWbemObject@@QEAAPEAVCCompressedString@@H@Z
; public: virtual long __cdecl CWbemClass::GetParentClassFromBlob(long,unsigned long,void * __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
?GetParentClassFromBlob@CWbemClass@@UEAAJJKPEAXPEAPEAG@Z
; public: virtual long __cdecl CWbemObject::GetParentClassFromBlob(long,unsigned long,void * __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
?GetParentClassFromBlob@CWbemObject@@UEAAJJKPEAXPEAPEAG@Z
; public: long __cdecl CWbemObject::GetPath(class CVar * __ptr64) __ptr64
?GetPath@CWbemObject@@QEAAJPEAVCVar@@@Z
; public: static class CUntypedArray * __ptr64 __cdecl CUntypedArray::GetPointer(class CPtrSource * __ptr64)
?GetPointer@CUntypedArray@@SAPEAV1@PEAVCPtrSource@@@Z
; public: class CCompressedString * __ptr64 __cdecl CCompressedStringList::GetPrevious(class CCompressedString * __ptr64) __ptr64
?GetPrevious@CCompressedStringList@@QEAAPEAVCCompressedString@@PEAV2@@Z
; public: virtual long __cdecl CWbemObject::GetPropAddrByHandle(long,long,unsigned long * __ptr64,void * __ptr64 * __ptr64) __ptr64
?GetPropAddrByHandle@CWbemObject@@UEAAJJJPEAKPEAPEAX@Z
; public: virtual long __cdecl CWbemClass::GetPropName(int,class CVar * __ptr64) __ptr64
?GetPropName@CWbemClass@@UEAAJHPEAVCVar@@@Z
; public: virtual long __cdecl CWbemInstance::GetPropName(int,class CVar * __ptr64) __ptr64
?GetPropName@CWbemInstance@@UEAAJHPEAVCVar@@@Z
; public: virtual long __cdecl CWbemObject::GetPropQual(unsigned short const * __ptr64,unsigned short const * __ptr64,long,unsigned long,long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,void * __ptr64) __ptr64
?GetPropQual@CWbemObject@@UEAAJPEBG0JKPEAJPEAK2PEAX@Z
; public: long __cdecl CClassPart::GetPropQualifier(class CPropertyInformation * __ptr64,unsigned short const * __ptr64,class CVar * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetPropQualifier@CClassPart@@QEAAJPEAVCPropertyInformation@@PEBGPEAVCVar@@PEAJ3@Z
; public: long __cdecl CClassPart::GetPropQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,long * __ptr64,class CTypedValue * __ptr64,class CFastHeap * __ptr64 * __ptr64,int) __ptr64
?GetPropQualifier@CClassPart@@QEAAJPEBG0PEAJPEAVCTypedValue@@PEAPEAVCFastHeap@@H@Z
; public: virtual long __cdecl CWbemClass::GetPropQualifier(class CPropertyInformation * __ptr64,unsigned short const * __ptr64,long * __ptr64,class CTypedValue * __ptr64,class CFastHeap * __ptr64 * __ptr64,int) __ptr64
?GetPropQualifier@CWbemClass@@UEAAJPEAVCPropertyInformation@@PEBGPEAJPEAVCTypedValue@@PEAPEAVCFastHeap@@H@Z
; public: virtual long __cdecl CWbemClass::GetPropQualifier(class CPropertyInformation * __ptr64,unsigned short const * __ptr64,class CVar * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetPropQualifier@CWbemClass@@UEAAJPEAVCPropertyInformation@@PEBGPEAVCVar@@PEAJ3@Z
; public: virtual long __cdecl CWbemClass::GetPropQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,long * __ptr64,class CTypedValue * __ptr64,class CFastHeap * __ptr64 * __ptr64,int) __ptr64
?GetPropQualifier@CWbemClass@@UEAAJPEBG0PEAJPEAVCTypedValue@@PEAPEAVCFastHeap@@H@Z
; public: virtual long __cdecl CWbemClass::GetPropQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,class CVar * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetPropQualifier@CWbemClass@@UEAAJPEBG0PEAVCVar@@PEAJ2@Z
; public: virtual long __cdecl CWbemInstance::GetPropQualifier(class CPropertyInformation * __ptr64,unsigned short const * __ptr64,long * __ptr64,class CTypedValue * __ptr64,class CFastHeap * __ptr64 * __ptr64,int) __ptr64
?GetPropQualifier@CWbemInstance@@UEAAJPEAVCPropertyInformation@@PEBGPEAJPEAVCTypedValue@@PEAPEAVCFastHeap@@H@Z
; public: virtual long __cdecl CWbemInstance::GetPropQualifier(class CPropertyInformation * __ptr64,unsigned short const * __ptr64,class CVar * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetPropQualifier@CWbemInstance@@UEAAJPEAVCPropertyInformation@@PEBGPEAVCVar@@PEAJ3@Z
; public: virtual long __cdecl CWbemInstance::GetPropQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,long * __ptr64,class CTypedValue * __ptr64,class CFastHeap * __ptr64 * __ptr64,int) __ptr64
?GetPropQualifier@CWbemInstance@@UEAAJPEBG0PEAJPEAVCTypedValue@@PEAPEAVCFastHeap@@H@Z
; public: virtual long __cdecl CWbemInstance::GetPropQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,class CVar * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetPropQualifier@CWbemInstance@@UEAAJPEBG0PEAVCVar@@PEAJ2@Z
; protected: virtual long __cdecl CWbemClass::GetProperty(class CPropertyInformation * __ptr64,class CVar * __ptr64) __ptr64
?GetProperty@CWbemClass@@MEAAJPEAVCPropertyInformation@@PEAVCVar@@@Z
; public: virtual long __cdecl CWbemClass::GetProperty(unsigned short const * __ptr64,class CVar * __ptr64) __ptr64
?GetProperty@CWbemClass@@UEAAJPEBGPEAVCVar@@@Z
; protected: virtual long __cdecl CWbemInstance::GetProperty(class CPropertyInformation * __ptr64,class CVar * __ptr64) __ptr64
?GetProperty@CWbemInstance@@MEAAJPEAVCPropertyInformation@@PEAVCVar@@@Z
; public: virtual long __cdecl CWbemInstance::GetProperty(unsigned short const * __ptr64,class CVar * __ptr64) __ptr64
?GetProperty@CWbemInstance@@UEAAJPEBGPEAVCVar@@@Z
; public: long __cdecl CClassPart::GetPropertyCount(class CVar * __ptr64) __ptr64
?GetPropertyCount@CClassPart@@QEAAJPEAVCVar@@@Z
; public: virtual long __cdecl CWbemClass::GetPropertyCount(class CVar * __ptr64) __ptr64
?GetPropertyCount@CWbemClass@@UEAAJPEAVCVar@@@Z
; public: virtual long __cdecl CWbemInstance::GetPropertyCount(class CVar * __ptr64) __ptr64
?GetPropertyCount@CWbemInstance@@UEAAJPEAVCVar@@@Z
; public: long __cdecl CClassPart::GetPropertyHandle(unsigned short const * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetPropertyHandle@CClassPart@@QEAAJPEBGPEAJ1@Z
; public: virtual long __cdecl CWbemObject::GetPropertyHandle(unsigned short const * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetPropertyHandle@CWbemObject@@UEAAJPEBGPEAJ1@Z
; public: long __cdecl CClassPart::GetPropertyHandleEx(unsigned short const * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetPropertyHandleEx@CClassPart@@QEAAJPEBGPEAJ1@Z
; public: virtual long __cdecl CWbemObject::GetPropertyHandleEx(unsigned short const * __ptr64,long,long * __ptr64,long * __ptr64) __ptr64
?GetPropertyHandleEx@CWbemObject@@UEAAJPEBGJPEAJ1@Z
; public: long __cdecl CWbemObject::GetPropertyIndex(unsigned short const * __ptr64,int * __ptr64) __ptr64
?GetPropertyIndex@CWbemObject@@QEAAJPEBGPEAH@Z
; public: long __cdecl CClassPart::GetPropertyInfoByHandle(long,unsigned short * __ptr64 * __ptr64,long * __ptr64) __ptr64
?GetPropertyInfoByHandle@CClassPart@@QEAAJJPEAPEAGPEAJ@Z
; public: virtual long __cdecl CWbemObject::GetPropertyInfoByHandle(long,unsigned short * __ptr64 * __ptr64,long * __ptr64) __ptr64
?GetPropertyInfoByHandle@CWbemObject@@UEAAJJPEAPEAGPEAJ@Z
; public: struct CPropertyLookup * __ptr64 __cdecl CClassPart::GetPropertyLookup(int) __ptr64
?GetPropertyLookup@CClassPart@@QEAAPEAUCPropertyLookup@@H@Z
; public: long __cdecl CWbemObject::GetPropertyNameFromIndex(int,unsigned short * __ptr64 * __ptr64) __ptr64
?GetPropertyNameFromIndex@CWbemObject@@QEAAJHPEAPEAG@Z
; public: long __cdecl CClassPart::GetPropertyOrigin(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
?GetPropertyOrigin@CClassPart@@QEAAJPEBGPEAPEAG@Z
; public: virtual long __cdecl CWbemObject::GetPropertyOrigin(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
?GetPropertyOrigin@CWbemObject@@UEAAJPEBGPEAPEAG@Z
; public: virtual long __cdecl CWbemClass::GetPropertyQualifierSet(unsigned short const * __ptr64,struct IWbemQualifierSet * __ptr64 * __ptr64) __ptr64
?GetPropertyQualifierSet@CWbemClass@@UEAAJPEBGPEAPEAUIWbemQualifierSet@@@Z
; public: virtual long __cdecl CWbemInstance::GetPropertyQualifierSet(unsigned short const * __ptr64,struct IWbemQualifierSet * __ptr64 * __ptr64) __ptr64
?GetPropertyQualifierSet@CWbemInstance@@UEAAJPEBGPEAPEAUIWbemQualifierSet@@@Z
; public: unsigned char * __ptr64 __cdecl CClassPart::GetPropertyQualifierSetData(unsigned short const * __ptr64) __ptr64
?GetPropertyQualifierSetData@CClassPart@@QEAAPEAEPEBG@Z
; public: class CCompressedString * __ptr64 __cdecl CWbemObject::GetPropertyString(long) __ptr64
?GetPropertyString@CWbemObject@@QEAAPEAVCCompressedString@@J@Z
; public: long __cdecl CClassPart::GetPropertyType(class CPropertyInformation * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetPropertyType@CClassPart@@QEAAJPEAVCPropertyInformation@@PEAJ1@Z
; public: long __cdecl CClassPart::GetPropertyType(unsigned short const * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetPropertyType@CClassPart@@QEAAJPEBGPEAJ1@Z
; public: static long __cdecl CSystemProperties::GetPropertyType(unsigned short const * __ptr64,long * __ptr64,long * __ptr64)
?GetPropertyType@CSystemProperties@@SAJPEBGPEAJ1@Z
; public: virtual long __cdecl CWbemClass::GetPropertyType(class CPropertyInformation * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetPropertyType@CWbemClass@@UEAAJPEAVCPropertyInformation@@PEAJ1@Z
; public: virtual long __cdecl CWbemClass::GetPropertyType(unsigned short const * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetPropertyType@CWbemClass@@UEAAJPEBGPEAJ1@Z
; public: virtual long __cdecl CWbemInstance::GetPropertyType(class CPropertyInformation * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetPropertyType@CWbemInstance@@UEAAJPEAVCPropertyInformation@@PEAJ1@Z
; public: virtual long __cdecl CWbemInstance::GetPropertyType(unsigned short const * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetPropertyType@CWbemInstance@@UEAAJPEBGPEAJ1@Z
; public: virtual long __cdecl CWbemObject::GetPropertyValue(struct _tag_WbemPropertyName * __ptr64,long,unsigned short * __ptr64 * __ptr64,struct tagVARIANT * __ptr64) __ptr64
?GetPropertyValue@CWbemObject@@UEAAJPEAU_tag_WbemPropertyName@@JPEAPEAGPEAUtagVARIANT@@@Z
; public: long __cdecl CClassPart::GetQualifier(unsigned short const * __ptr64,class CVar * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetQualifier@CClassPart@@QEAAJPEBGPEAVCVar@@PEAJ2@Z
; public: long __cdecl CInstancePart::GetQualifier(unsigned short const * __ptr64,long * __ptr64,class CTypedValue * __ptr64,class CFastHeap * __ptr64 * __ptr64,int) __ptr64
?GetQualifier@CInstancePart@@QEAAJPEBGPEAJPEAVCTypedValue@@PEAPEAVCFastHeap@@H@Z
; public: long __cdecl CInstancePart::GetQualifier(unsigned short const * __ptr64,class CVar * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetQualifier@CInstancePart@@QEAAJPEBGPEAVCVar@@PEAJ2@Z
; public: long __cdecl CQualifierSet::GetQualifier(unsigned short const * __ptr64,long * __ptr64,class CTypedValue * __ptr64,class CFastHeap * __ptr64 * __ptr64,int) __ptr64
?GetQualifier@CQualifierSet@@QEAAJPEBGPEAJPEAVCTypedValue@@PEAPEAVCFastHeap@@H@Z
; public: long __cdecl CQualifierSet::GetQualifier(unsigned short const * __ptr64,class CVar * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetQualifier@CQualifierSet@@QEAAJPEBGPEAVCVar@@PEAJ2@Z
; public: struct CQualifier * __ptr64 __cdecl CQualifierSet::GetQualifier(unsigned short const * __ptr64) __ptr64
?GetQualifier@CQualifierSet@@QEAAPEAUCQualifier@@PEBG@Z
; public: struct CQualifier * __ptr64 __cdecl CQualifierSet::GetQualifier(unsigned short const * __ptr64,int & __ptr64) __ptr64
?GetQualifier@CQualifierSet@@QEAAPEAUCQualifier@@PEBGAEAH@Z
; public: virtual long __cdecl CWbemClass::GetQualifier(unsigned short const * __ptr64,long * __ptr64,class CTypedValue * __ptr64,class CFastHeap * __ptr64 * __ptr64,int) __ptr64
?GetQualifier@CWbemClass@@UEAAJPEBGPEAJPEAVCTypedValue@@PEAPEAVCFastHeap@@H@Z
; public: virtual long __cdecl CWbemClass::GetQualifier(unsigned short const * __ptr64,class CVar * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetQualifier@CWbemClass@@UEAAJPEBGPEAVCVar@@PEAJ2@Z
; public: virtual long __cdecl CWbemInstance::GetQualifier(unsigned short const * __ptr64,long * __ptr64,class CTypedValue * __ptr64,class CFastHeap * __ptr64 * __ptr64,int) __ptr64
?GetQualifier@CWbemInstance@@UEAAJPEBGPEAJPEAVCTypedValue@@PEAPEAVCFastHeap@@H@Z
; public: virtual long __cdecl CWbemInstance::GetQualifier(unsigned short const * __ptr64,class CVar * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?GetQualifier@CWbemInstance@@UEAAJPEBGPEAVCVar@@PEAJ2@Z
; public: long __cdecl CWbemObject::GetQualifierArrayInfo(unsigned short const * __ptr64,unsigned short const * __ptr64,int,long,long * __ptr64,unsigned long * __ptr64) __ptr64
?GetQualifierArrayInfo@CWbemObject@@QEAAJPEBG0HJPEAJPEAK@Z
; public: long __cdecl CWbemObject::GetQualifierArrayRange(unsigned short const * __ptr64,unsigned short const * __ptr64,int,long,unsigned long,unsigned long,unsigned long,unsigned long * __ptr64,unsigned long * __ptr64,void * __ptr64) __ptr64
?GetQualifierArrayRange@CWbemObject@@QEAAJPEBG0HJKKKPEAK1PEAX@Z
; public: struct CQualifier * __ptr64 __cdecl CBasicQualifierSet::GetQualifierLocally(class CCompressedString * __ptr64) __ptr64
?GetQualifierLocally@CBasicQualifierSet@@QEAAPEAUCQualifier@@PEAVCCompressedString@@@Z
; public: struct CQualifier * __ptr64 __cdecl CBasicQualifierSet::GetQualifierLocally(unsigned short const * __ptr64) __ptr64
?GetQualifierLocally@CBasicQualifierSet@@QEAAPEAUCQualifier@@PEBG@Z
; public: struct CQualifier * __ptr64 __cdecl CBasicQualifierSet::GetQualifierLocally(unsigned short const * __ptr64,int & __ptr64) __ptr64
?GetQualifierLocally@CBasicQualifierSet@@QEAAPEAUCQualifier@@PEBGAEAH@Z
; public: static struct CQualifier * __ptr64 __cdecl CBasicQualifierSet::GetQualifierLocally(unsigned char * __ptr64,class CFastHeap * __ptr64,class CCompressedString * __ptr64)
?GetQualifierLocally@CBasicQualifierSet@@SAPEAUCQualifier@@PEAEPEAVCFastHeap@@PEAVCCompressedString@@@Z
; public: static struct CQualifier * __ptr64 __cdecl CBasicQualifierSet::GetQualifierLocally(unsigned char * __ptr64,class CFastHeap * __ptr64,unsigned short const * __ptr64)
?GetQualifierLocally@CBasicQualifierSet@@SAPEAUCQualifier@@PEAEPEAVCFastHeap@@PEBG@Z
; public: static struct CQualifier * __ptr64 __cdecl CBasicQualifierSet::GetQualifierLocally(unsigned char * __ptr64,class CFastHeap * __ptr64,unsigned short const * __ptr64,int & __ptr64)
?GetQualifierLocally@CBasicQualifierSet@@SAPEAUCQualifier@@PEAEPEAVCFastHeap@@PEBGAEAH@Z
; public: virtual long __cdecl CWbemClass::GetQualifierSet(struct IWbemQualifierSet * __ptr64 * __ptr64) __ptr64
?GetQualifierSet@CWbemClass@@UEAAJPEAPEAUIWbemQualifierSet@@@Z
; public: virtual long __cdecl CWbemInstance::GetQualifierSet(struct IWbemQualifierSet * __ptr64 * __ptr64) __ptr64
?GetQualifierSet@CWbemInstance@@UEAAJPEAPEAUIWbemQualifierSet@@@Z
; public: unsigned char * __ptr64 __cdecl CQualifierSetList::GetQualifierSetData(int) __ptr64
?GetQualifierSetData@CQualifierSetList@@QEAAPEAEH@Z
; public: static unsigned char * __ptr64 __cdecl CQualifierSetList::GetQualifierSetData(unsigned char * __ptr64,int)
?GetQualifierSetData@CQualifierSetList@@SAPEAEPEAEH@Z
; public: virtual unsigned char * __ptr64 __cdecl CInstancePart::GetQualifierSetListStart(void) __ptr64
?GetQualifierSetListStart@CInstancePart@@UEAAPEAEXZ
; public: virtual unsigned char * __ptr64 __cdecl CClassPart::GetQualifierSetStart(void) __ptr64
?GetQualifierSetStart@CClassPart@@UEAAPEAEXZ
; public: virtual unsigned char * __ptr64 __cdecl CInstancePQSContainer::GetQualifierSetStart(void) __ptr64
?GetQualifierSetStart@CInstancePQSContainer@@UEAAPEAEXZ
; public: virtual unsigned char * __ptr64 __cdecl CInstancePart::GetQualifierSetStart(void) __ptr64
?GetQualifierSetStart@CInstancePart@@UEAAPEAEXZ
; public: virtual unsigned char * __ptr64 __cdecl CMethodQualifierSetContainer::GetQualifierSetStart(void) __ptr64
?GetQualifierSetStart@CMethodQualifierSetContainer@@UEAAPEAEXZ
; public: static long __cdecl CUntypedArray::GetRange(class CPtrSource * __ptr64,unsigned long,unsigned long,class CFastHeap * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long * __ptr64,void * __ptr64)
?GetRange@CUntypedArray@@SAJPEAVCPtrSource@@KKPEAVCFastHeap@@KKKPEAKPEAX@Z
; public: unsigned char * __ptr64 __cdecl CCompressedString::GetRawData(void)const  __ptr64
?GetRawData@CCompressedString@@QEBAPEAEXZ
; public: unsigned long __cdecl CFastHeap::GetRealLength(void) __ptr64
?GetRealLength@CFastHeap@@QEAAKXZ
; protected: long __cdecl CWbemRefreshingSvc::GetRefrMgr(struct _IWbemRefresherMgr * __ptr64 * __ptr64) __ptr64
?GetRefrMgr@CWbemRefreshingSvc@@IEAAJPEAPEAU_IWbemRefresherMgr@@@Z
; public: struct CQualifier * __ptr64 __cdecl CBasicQualifierSet::GetRegularQualifierLocally(unsigned short const * __ptr64) __ptr64
?GetRegularQualifierLocally@CBasicQualifierSet@@QEAAPEAUCQualifier@@PEBG@Z
; public: static struct CQualifier * __ptr64 __cdecl CBasicQualifierSet::GetRegularQualifierLocally(unsigned char * __ptr64,class CFastHeap * __ptr64,unsigned short const * __ptr64)
?GetRegularQualifierLocally@CBasicQualifierSet@@SAPEAUCQualifier@@PEAEPEAVCFastHeap@@PEBG@Z
; public: virtual unsigned short * __ptr64 __cdecl CWbemClass::GetRelPath(int) __ptr64
?GetRelPath@CWbemClass@@UEAAPEAGH@Z
; public: virtual unsigned short * __ptr64 __cdecl CWbemInstance::GetRelPath(int) __ptr64
?GetRelPath@CWbemInstance@@UEAAPEAGH@Z
; public: long __cdecl CWbemObject::GetRelPath(class CVar * __ptr64) __ptr64
?GetRelPath@CWbemObject@@QEAAJPEAVCVar@@@Z
; protected: virtual long __cdecl CWbemRefreshingSvc::GetRemoteRefresher(struct _WBEM_REFRESHER_ID * __ptr64,long,unsigned long,struct IWbemRemoteRefresher * __ptr64 * __ptr64,struct _GUID * __ptr64,unsigned long * __ptr64) __ptr64
?GetRemoteRefresher@CWbemRefreshingSvc@@MEAAJPEAU_WBEM_REFRESHER_ID@@JKPEAPEAUIWbemRemoteRefresher@@PEAU_GUID@@PEAK@Z
; public: virtual long __cdecl CWbemRefreshingSvc::XWbemRefrSvc::GetRemoteRefresher(struct _WBEM_REFRESHER_ID * __ptr64,long,unsigned long,struct IWbemRemoteRefresher * __ptr64 * __ptr64,struct _GUID * __ptr64,unsigned long * __ptr64) __ptr64
?GetRemoteRefresher@XWbemRefrSvc@CWbemRefreshingSvc@@UEAAJPEAU_WBEM_REFRESHER_ID@@JKPEAPEAUIWbemRemoteRefresher@@PEAU_GUID@@PEAK@Z
; public: class CBasicQualifierSet * __ptr64 __cdecl CMethodQualifierSetContainer::GetSecondarySet(void) __ptr64
?GetSecondarySet@CMethodQualifierSetContainer@@QEAAPEAVCBasicQualifierSet@@XZ
; protected: static unsigned long __cdecl CCompressedStringList::GetSeparatorLength(void)
?GetSeparatorLength@CCompressedStringList@@KAKXZ
; public: long __cdecl CWbemObject::GetServer(class CVar * __ptr64) __ptr64
?GetServer@CWbemObject@@QEAAJPEAVCVar@@@Z
; public: long __cdecl CWbemObject::GetServerAndNamespace(class CVar * __ptr64) __ptr64
?GetServerAndNamespace@CWbemObject@@QEAAJPEAVCVar@@@Z
; public: unsigned short * __ptr64 __cdecl CWbemThreadSecurityHandle::GetServerPrincipalName(void) __ptr64
?GetServerPrincipalName@CWbemThreadSecurityHandle@@QEAAPEAGXZ
; public: unsigned long __cdecl CMethodDescription::GetSig(int) __ptr64
?GetSig@CMethodDescription@@QEAAKH@Z
; protected: void __cdecl CMethodPart::GetSignature(int,int,class CWbemObject * __ptr64 * __ptr64) __ptr64
?GetSignature@CMethodPart@@IEAAXHHPEAPEAVCWbemObject@@@Z
; public: int __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::GetSize(void)const  __ptr64
?GetSize@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEBAHXZ
; public: int __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::GetSize(void)const  __ptr64
?GetSize@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEBAHXZ
; public: virtual long __cdecl CWbemObject::GetSource(unsigned short * __ptr64 * __ptr64) __ptr64
?GetSource@CWbemObject@@UEAAJPEAPEAG@Z
; public: unsigned char * __ptr64 __cdecl CBasicQualifierSet::GetStart(void) __ptr64
?GetStart@CBasicQualifierSet@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CClassAndMethods::GetStart(void) __ptr64
?GetStart@CClassAndMethods@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CClassPart::GetStart(void) __ptr64
?GetStart@CClassPart@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CCompressedString::GetStart(void) __ptr64
?GetStart@CCompressedString@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CCompressedStringList::GetStart(void) __ptr64
?GetStart@CCompressedStringList@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CDataTable::GetStart(void) __ptr64
?GetStart@CDataTable@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CDecorationPart::GetStart(void) __ptr64
?GetStart@CDecorationPart@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CEmbeddedObject::GetStart(void) __ptr64
?GetStart@CEmbeddedObject@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CFastHeap::GetStart(void) __ptr64
?GetStart@CFastHeap@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CInstancePart::GetStart(void) __ptr64
?GetStart@CInstancePart@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CMethodPart::GetStart(void) __ptr64
?GetStart@CMethodPart@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CPropertyLookupTable::GetStart(void) __ptr64
?GetStart@CPropertyLookupTable@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CQualifierSetList::GetStart(void) __ptr64
?GetStart@CQualifierSetList@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CWbemInstance::GetStart(void) __ptr64
?GetStart@CWbemInstance@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CWbemObject::GetStart(void) __ptr64
?GetStart@CWbemObject@@QEAAPEAEXZ
; public: int __cdecl CCompressedString::GetStringLength(void)const  __ptr64
?GetStringLength@CCompressedString@@QEBAHXZ
; public: static long __cdecl CClassAndMethods::GetSuperclassName(class WString & __ptr64,unsigned char * __ptr64)
?GetSuperclassName@CClassAndMethods@@SAJAEAVWString@@PEAE@Z
; public: long __cdecl CClassPart::GetSuperclassName(class CVar * __ptr64) __ptr64
?GetSuperclassName@CClassPart@@QEAAJPEAVCVar@@@Z
; public: class CCompressedString * __ptr64 __cdecl CClassPart::GetSuperclassName(void) __ptr64
?GetSuperclassName@CClassPart@@QEAAPEAVCCompressedString@@XZ
; public: virtual long __cdecl CWbemClass::GetSuperclassName(class CVar * __ptr64) __ptr64
?GetSuperclassName@CWbemClass@@UEAAJPEAVCVar@@@Z
; public: virtual long __cdecl CWbemInstance::GetSuperclassName(class CVar * __ptr64) __ptr64
?GetSuperclassName@CWbemInstance@@UEAAJPEAVCVar@@@Z
; public: unsigned short * __ptr64 __cdecl CType::GetSyntax(void) __ptr64
?GetSyntax@CType@@QEAAPEAGXZ
; public: static unsigned short * __ptr64 __cdecl CType::GetSyntax(unsigned long)
?GetSyntax@CType@@SAPEAGK@Z
; public: long __cdecl CWbemObject::GetSystemProperty(int,class CVar * __ptr64) __ptr64
?GetSystemProperty@CWbemObject@@QEAAJHPEAVCVar@@@Z
; public: long __cdecl CWbemObject::GetSystemPropertyByName(unsigned short const * __ptr64,class CVar * __ptr64) __ptr64
?GetSystemPropertyByName@CWbemObject@@QEAAJPEBGPEAVCVar@@@Z
; public: long __cdecl CBasicQualifierSet::GetText(long,class WString & __ptr64) __ptr64
?GetText@CBasicQualifierSet@@QEAAJJAEAVWString@@@Z
; public: static long __cdecl CBasicQualifierSet::GetText(unsigned char * __ptr64,class CFastHeap * __ptr64,long,class WString & __ptr64)
?GetText@CBasicQualifierSet@@SAJPEAEPEAVCFastHeap@@JAEAVWString@@@Z
; public: char const * __ptr64 __cdecl CInternalString::GetText(void)const  __ptr64
?GetText@CInternalString@@QEBAPEBDXZ
; public: virtual long __cdecl CWmiObjectTextSrc::XObjectTextSrc::GetText(long,struct IWbemClassObject * __ptr64,unsigned long,struct IWbemContext * __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
?GetText@XObjectTextSrc@CWmiObjectTextSrc@@UEAAJJPEAUIWbemClassObject@@KPEAUIWbemContext@@PEAPEAG@Z
; public: virtual long __cdecl CWbemCallSecurity::GetThreadSecurity(enum tag_WMI_THREAD_SECURITY_ORIGIN,struct _IWmiThreadSecHandle * __ptr64 * __ptr64) __ptr64
?GetThreadSecurity@CWbemCallSecurity@@UEAAJW4tag_WMI_THREAD_SECURITY_ORIGIN@@PEAPEAU_IWmiThreadSecHandle@@@Z
; public: class CWbemThreadSecurityHandle * __ptr64 __cdecl CWbemCallSecurity::GetThreadSecurityHandle(void) __ptr64
?GetThreadSecurityHandle@CWbemCallSecurity@@QEAAPEAVCWbemThreadSecurityHandle@@XZ
; public: void * __ptr64 __cdecl CWbemThreadSecurityHandle::GetThreadToken(void) __ptr64
?GetThreadToken@CWbemThreadSecurityHandle@@QEAAPEAXXZ
; public: virtual long __cdecl CWbemThreadSecurityHandle::GetToken(void * __ptr64 * __ptr64) __ptr64
?GetToken@CWbemThreadSecurityHandle@@UEAAJPEAPEAX@Z
; public: virtual long __cdecl CWbemThreadSecurityHandle::GetTokenOrigin(enum tag_WMI_THREAD_SECURITY_ORIGIN * __ptr64) __ptr64
?GetTokenOrigin@CWbemThreadSecurityHandle@@UEAAJPEAW4tag_WMI_THREAD_SECURITY_ORIGIN@@@Z
; public: unsigned long __cdecl CClassPart::GetTotalRealLength(void) __ptr64
?GetTotalRealLength@CClassPart@@QEAAKXZ
; public: unsigned long __cdecl CInstancePart::GetTotalRealLength(void) __ptr64
?GetTotalRealLength@CInstancePart@@QEAAKXZ
; public: long __cdecl CWbemInstance::GetTransferArrayBlob(long,unsigned char * __ptr64 * __ptr64,long * __ptr64) __ptr64
?GetTransferArrayBlob@CWbemInstance@@QEAAJJPEAPEAEPEAJ@Z
; public: long __cdecl CWbemInstance::GetTransferArrayBlobSize(void) __ptr64
?GetTransferArrayBlobSize@CWbemInstance@@QEAAJXZ
; public: static long __cdecl CWbemInstance::GetTransferArrayHeaderSize(void)
?GetTransferArrayHeaderSize@CWbemInstance@@SAJXZ
; public: long __cdecl CWbemInstance::GetTransferBlob(long * __ptr64,long * __ptr64,unsigned char * __ptr64 * __ptr64) __ptr64
?GetTransferBlob@CWbemInstance@@QEAAJPEAJ0PEAPEAE@Z
; public: long __cdecl CWbemInstance::GetTransferBlobSize(void) __ptr64
?GetTransferBlobSize@CWbemInstance@@QEAAJXZ
; public: virtual long __cdecl CWbemObject::GetUnmarshalClass(struct _GUID const & __ptr64,void * __ptr64,unsigned long,void * __ptr64,unsigned long,struct _GUID * __ptr64) __ptr64
?GetUnmarshalClass@CWbemObject@@UEAAJAEBU_GUID@@PEAXK1KPEAU2@@Z
; public: unsigned long __cdecl CFastHeap::GetUsedLength(void) __ptr64
?GetUsedLength@CFastHeap@@QEAAKXZ
; public: virtual long __cdecl CWbemCallSecurity::GetUser(unsigned long * __ptr64,unsigned short * __ptr64) __ptr64
?GetUser@CWbemCallSecurity@@UEAAJPEAKPEAG@Z
; public: virtual long __cdecl CWbemThreadSecurityHandle::GetUser(unsigned long * __ptr64,unsigned short * __ptr64) __ptr64
?GetUser@CWbemThreadSecurityHandle@@UEAAJPEAKPEAG@Z
; public: virtual long __cdecl CWbemCallSecurity::GetUserSid(unsigned long * __ptr64,void * __ptr64) __ptr64
?GetUserSid@CWbemCallSecurity@@UEAAJPEAKPEAX@Z
; public: virtual long __cdecl CWbemThreadSecurityHandle::GetUserSid(unsigned long * __ptr64,void * __ptr64) __ptr64
?GetUserSid@CWbemThreadSecurityHandle@@UEAAJPEAKPEAX@Z
; public: unsigned short __cdecl CType::GetVARTYPE(void) __ptr64
?GetVARTYPE@CType@@QEAAGXZ
; public: static unsigned short __cdecl CType::GetVARTYPE(unsigned long)
?GetVARTYPE@CType@@SAGK@Z
; public: static unsigned short * __ptr64 __cdecl CWbemObject::GetValueText(long,class CVar & __ptr64,unsigned long)
?GetValueText@CWbemObject@@SAPEAGJAEAVCVar@@K@Z
; public: unsigned long __cdecl CLimitationMapping::GetVtableLength(void) __ptr64
?GetVtableLength@CLimitationMapping@@QEAAKXZ
; public: virtual struct IUnknown * __ptr64 __cdecl CClassAndMethods::GetWbemObjectUnknown(void) __ptr64
?GetWbemObjectUnknown@CClassAndMethods@@UEAAPEAUIUnknown@@XZ
; public: virtual struct IUnknown * __ptr64 __cdecl CClassPart::GetWbemObjectUnknown(void) __ptr64
?GetWbemObjectUnknown@CClassPart@@UEAAPEAUIUnknown@@XZ
; public: virtual struct IUnknown * __ptr64 __cdecl CInstancePQSContainer::GetWbemObjectUnknown(void) __ptr64
?GetWbemObjectUnknown@CInstancePQSContainer@@UEAAPEAUIUnknown@@XZ
; public: virtual struct IUnknown * __ptr64 __cdecl CInstancePart::GetWbemObjectUnknown(void) __ptr64
?GetWbemObjectUnknown@CInstancePart@@UEAAPEAUIUnknown@@XZ
; public: struct IUnknown * __ptr64 __cdecl CMethodPart::GetWbemObjectUnknown(void) __ptr64
?GetWbemObjectUnknown@CMethodPart@@QEAAPEAUIUnknown@@XZ
; public: virtual struct IUnknown * __ptr64 __cdecl CMethodQualifierSetContainer::GetWbemObjectUnknown(void) __ptr64
?GetWbemObjectUnknown@CMethodQualifierSetContainer@@UEAAPEAUIUnknown@@XZ
; public: struct IUnknown * __ptr64 __cdecl CQualifierSetList::GetWbemObjectUnknown(void) __ptr64
?GetWbemObjectUnknown@CQualifierSetList@@QEAAPEAUIUnknown@@XZ
; public: struct IUnknown * __ptr64 __cdecl CWbemClass::GetWbemObjectUnknown(void) __ptr64
?GetWbemObjectUnknown@CWbemClass@@QEAAPEAUIUnknown@@XZ
; public: virtual struct IUnknown * __ptr64 __cdecl CWbemInstance::GetWbemObjectUnknown(void) __ptr64
?GetWbemObjectUnknown@CWbemInstance@@UEAAPEAUIUnknown@@XZ
; public: static int __cdecl CBasicQualifierSet::HasLocalQualifiers(unsigned char * __ptr64)
?HasLocalQualifiers@CBasicQualifierSet@@SAHPEAE@Z
; public: int __cdecl CWbemObject::HasRefs(void) __ptr64
?HasRefs@CWbemObject@@QEAAHXZ
; public: virtual long __cdecl CWbemCallSecurity::ImpersonateClient(void) __ptr64
?ImpersonateClient@CWbemCallSecurity@@UEAAJXZ
; public: void __cdecl CBasicQualifierSet::IncrementLength(unsigned long) __ptr64
?IncrementLength@CBasicQualifierSet@@QEAAXK@Z
; public: int __cdecl CClassPart::InheritsFrom(unsigned short const * __ptr64) __ptr64
?InheritsFrom@CClassPart@@QEAAHPEBG@Z
; public: virtual long __cdecl CWbemObject::InheritsFrom(unsigned short const * __ptr64) __ptr64
?InheritsFrom@CWbemObject@@UEAAJPEBG@Z
; public: long __cdecl CWbemFetchRefrMgr::Init(struct _IWmiProvSS * __ptr64,struct IWbemServices * __ptr64) __ptr64
?Init@CWbemFetchRefrMgr@@QEAAJPEAU_IWmiProvSS@@PEAUIWbemServices@@@Z
; public: virtual long __cdecl CWbemFetchRefrMgr::XFetchRefrMgr::Init(struct _IWmiProvSS * __ptr64,struct IWbemServices * __ptr64) __ptr64
?Init@XFetchRefrMgr@CWbemFetchRefrMgr@@UEAAJPEAU_IWmiProvSS@@PEAUIWbemServices@@@Z
; public: long __cdecl CWbemClass::InitEmpty(int,int) __ptr64
?InitEmpty@CWbemClass@@QEAAJHH@Z
; public: long __cdecl CWbemInstance::InitEmptyInstance(class CClassPart & __ptr64,unsigned char * __ptr64,int,class CDecorationPart * __ptr64) __ptr64
?InitEmptyInstance@CWbemInstance@@QEAAJAEAVCClassPart@@PEAEHPEAVCDecorationPart@@@Z
; public: long __cdecl CWbemInstance::InitNew(class CWbemClass * __ptr64,int,class CDecorationPart * __ptr64) __ptr64
?InitNew@CWbemInstance@@QEAAJPEAVCWbemClass@@HPEAVCDecorationPart@@@Z
; public: long __cdecl CClassPart::InitPropertyQualifierSet(unsigned short const * __ptr64,class CClassPropertyQualifierSet * __ptr64) __ptr64
?InitPropertyQualifierSet@CClassPart@@QEAAJPEBGPEAVCClassPropertyQualifierSet@@@Z
; public: static void __cdecl CKnownStringTable::Initialize(void)
?Initialize@CKnownStringTable@@SAXXZ
; public: virtual int __cdecl CWbemRefreshingSvc::Initialize(void) __ptr64
?Initialize@CWbemRefreshingSvc@@UEAAHXZ
; protected: long __cdecl CWbemInstance::InitializePropQualifierSet(class CPropertyInformation * __ptr64,class CInstancePropertyQualifierSet & __ptr64) __ptr64
?InitializePropQualifierSet@CWbemInstance@@IEAAJPEAVCPropertyInformation@@AEAVCInstancePropertyQualifierSet@@@Z
; protected: long __cdecl CWbemInstance::InitializePropQualifierSet(unsigned short const * __ptr64,class CInstancePropertyQualifierSet & __ptr64) __ptr64
?InitializePropQualifierSet@CWbemInstance@@IEAAJPEBGAEAVCInstancePropertyQualifierSet@@@Z
; public: bool __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::InsertAt(int,class CFastPropertyBagItem * __ptr64) __ptr64
?InsertAt@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAA_NHPEAVCFastPropertyBagItem@@@Z
; public: bool __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::InsertAt(int,class CWmiTextSource * __ptr64) __ptr64
?InsertAt@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAA_NHPEAVCWmiTextSource@@@Z
; public: long __cdecl CPropertyLookupTable::InsertProperty(struct CPropertyLookup const & __ptr64,int & __ptr64) __ptr64
?InsertProperty@CPropertyLookupTable@@QEAAJAEBUCPropertyLookup@@AEAH@Z
; public: long __cdecl CPropertyLookupTable::InsertProperty(unsigned short const * __ptr64,unsigned long,int & __ptr64) __ptr64
?InsertProperty@CPropertyLookupTable@@QEAAJPEBGKAEAH@Z
; public: long __cdecl CQualifierSetList::InsertQualifierSet(int) __ptr64
?InsertQualifierSet@CQualifierSetList@@QEAAJH@Z
; public: int __cdecl CClassPart::IsAbstract(void) __ptr64
?IsAbstract@CClassPart@@QEAAHXZ
; public: int __cdecl CWbemClass::IsAbstract(void) __ptr64
?IsAbstract@CWbemClass@@QEAAHXZ
; public: int __cdecl CClassPart::IsAmendment(void) __ptr64
?IsAmendment@CClassPart@@QEAAHXZ
; public: int __cdecl CWbemClass::IsAmendment(void) __ptr64
?IsAmendment@CWbemClass@@QEAAHXZ
; public: int __cdecl CType::IsArray(void) __ptr64
?IsArray@CType@@QEAAHXZ
; public: static int __cdecl CType::IsArray(unsigned long)
?IsArray@CType@@SAHK@Z
; public: long __cdecl CWbemObject::IsArrayPropertyHandle(long,long * __ptr64,unsigned long * __ptr64) __ptr64
?IsArrayPropertyHandle@CWbemObject@@QEAAJJPEAJPEAK@Z
; public: long __cdecl CUntypedArray::IsArrayValid(class CType,class CFastHeap * __ptr64) __ptr64
?IsArrayValid@CUntypedArray@@QEAAJVCType@@PEAVCFastHeap@@@Z
; protected: static int __cdecl CCompressedString::IsAsciiable(unsigned short const * __ptr64)
?IsAsciiable@CCompressedString@@KAHPEBG@Z
; public: int __cdecl CClassPart::IsAssociation(void) __ptr64
?IsAssociation@CClassPart@@QEAAHXZ
; public: int __cdecl CClassPart::IsAutocook(void) __ptr64
?IsAutocook@CClassPart@@QEAAHXZ
; public: int __cdecl CWbemClass::IsChildOf(class CWbemClass * __ptr64) __ptr64
?IsChildOf@CWbemClass@@QEAAHPEAV1@@Z
; protected: int __cdecl CWbemInstance::IsClassPartAvailable(void) __ptr64
?IsClassPartAvailable@CWbemInstance@@IEAAHXZ
; protected: int __cdecl CWbemInstance::IsClassPartInternal(void) __ptr64
?IsClassPartInternal@CWbemInstance@@IEAAHXZ
; protected: int __cdecl CWbemInstance::IsClassPartShared(void) __ptr64
?IsClassPartShared@CWbemInstance@@IEAAHXZ
; public: int __cdecl CDecorationPart::IsClientOnly(void) __ptr64
?IsClientOnly@CDecorationPart@@QEAAHXZ
; public: int __cdecl CWbemObject::IsClientOnly(void) __ptr64
?IsClientOnly@CWbemObject@@QEAAHXZ
; public: int __cdecl CQualifierSet::IsComplete(void) __ptr64
?IsComplete@CQualifierSet@@QEAAHXZ
; public: int __cdecl CClassPart::IsCompressed(void) __ptr64
?IsCompressed@CClassPart@@QEAAHXZ
; public: int __cdecl CWbemClass::IsCompressed(void) __ptr64
?IsCompressed@CWbemClass@@QEAAHXZ
; public: int __cdecl CDecorationPart::IsDecorated(void) __ptr64
?IsDecorated@CDecorationPart@@QEAAHXZ
; protected: int __cdecl CWbemInstance::IsDecorationPartAvailable(void) __ptr64
?IsDecorationPartAvailable@CWbemInstance@@IEAAHXZ
; public: int __cdecl CDataTable::IsDefault(int) __ptr64
?IsDefault@CDataTable@@QEAAHH@Z
; public: int __cdecl CClassPart::IsDynamic(void) __ptr64
?IsDynamic@CClassPart@@QEAAHXZ
; public: int __cdecl CWbemClass::IsDynamic(void) __ptr64
?IsDynamic@CWbemClass@@QEAAHXZ
; public: int __cdecl CBasicQualifierSet::IsEmpty(void) __ptr64
?IsEmpty@CBasicQualifierSet@@QEAAHXZ
; public: static int __cdecl CBasicQualifierSet::IsEmpty(unsigned char * __ptr64)
?IsEmpty@CBasicQualifierSet@@SAHPEAE@Z
; public: int __cdecl CCompressedStringList::IsEmpty(void) __ptr64
?IsEmpty@CCompressedStringList@@QEAAHXZ
; public: bool __cdecl CInternalString::IsEmpty(void) __ptr64
?IsEmpty@CInternalString@@QEAA_NXZ
; public: int __cdecl CQualifierSetList::IsEmpty(void) __ptr64
?IsEmpty@CQualifierSetList@@QEAAHXZ
; public: static int __cdecl CFastHeap::IsFakeAddress(unsigned long)
?IsFakeAddress@CFastHeap@@SAHK@Z
; public: int __cdecl CClassPart::IsHiPerf(void) __ptr64
?IsHiPerf@CClassPart@@QEAAHXZ
; public: int __cdecl CClassPart::IsIdenticalWith(class CClassPart & __ptr64) __ptr64
?IsIdenticalWith@CClassPart@@QEAAHAEAV1@@Z
; public: static int __cdecl CSystemProperties::IsIllegalDerivedClass(unsigned short const * __ptr64)
?IsIllegalDerivedClass@CSystemProperties@@SAHPEBG@Z
; public: virtual int __cdecl CWbemCallSecurity::IsImpersonating(void) __ptr64
?IsImpersonating@CWbemCallSecurity@@UEAAHXZ
; public: int __cdecl CWbemClass::IsIndexLocal(unsigned short const * __ptr64) __ptr64
?IsIndexLocal@CWbemClass@@QEAAHPEBG@Z
; public: int __cdecl CDecorationPart::IsInstance(void) __ptr64
?IsInstance@CDecorationPart@@QEAAHXZ
; public: int __cdecl CWbemObject::IsInstance(void) __ptr64
?IsInstance@CWbemObject@@QEAAHXZ
; public: int __cdecl CWbemInstance::IsInstanceOf(class CWbemClass * __ptr64) __ptr64
?IsInstanceOf@CWbemInstance@@QEAAHPEAVCWbemClass@@@Z
; protected: int __cdecl CWbemInstance::IsInstancePartAvailable(void) __ptr64
?IsInstancePartAvailable@CWbemInstance@@IEAAHXZ
; public: int __cdecl CWbemClass::IsKeyLocal(unsigned short const * __ptr64) __ptr64
?IsKeyLocal@CWbemClass@@QEAAHPEBG@Z
; public: int __cdecl CClassPart::IsKeyed(void) __ptr64
?IsKeyed@CClassPart@@QEAAHXZ
; public: virtual int __cdecl CWbemClass::IsKeyed(void) __ptr64
?IsKeyed@CWbemClass@@UEAAHXZ
; public: virtual int __cdecl CWbemInstance::IsKeyed(void) __ptr64
?IsKeyed@CWbemInstance@@UEAAHXZ
; public: int __cdecl CDecorationPart::IsLimited(void) __ptr64
?IsLimited@CDecorationPart@@QEAAHXZ
; public: int __cdecl CWbemObject::IsLimited(void) __ptr64
?IsLimited@CWbemObject@@QEAAHXZ
; public: int __cdecl CClassPart::IsLocalized(void) __ptr64
?IsLocalized@CClassPart@@QEAAHXZ
; public: int __cdecl CInstancePart::IsLocalized(void) __ptr64
?IsLocalized@CInstancePart@@QEAAHXZ
; public: virtual int __cdecl CWbemClass::IsLocalized(void) __ptr64
?IsLocalized@CWbemClass@@UEAAHXZ
; public: virtual int __cdecl CWbemInstance::IsLocalized(void) __ptr64
?IsLocalized@CWbemInstance@@UEAAHXZ
; public: static int __cdecl CType::IsMemCopyAble(unsigned short,long)
?IsMemCopyAble@CType@@SAHGJ@Z
; public: int __cdecl CType::IsNonArrayPointerType(void) __ptr64
?IsNonArrayPointerType@CType@@QEAAHXZ
; public: static int __cdecl CType::IsNonArrayPointerType(unsigned long)
?IsNonArrayPointerType@CType@@SAHK@Z
; public: int __cdecl CDataTable::IsNull(int) __ptr64
?IsNull@CDataTable@@QEAAHH@Z
; public: virtual long __cdecl CWbemObject::IsObjectInstance(void) __ptr64
?IsObjectInstance@CWbemObject@@UEAAJXZ
; protected: int __cdecl CFastHeap::IsOutOfLine(void) __ptr64
?IsOutOfLine@CFastHeap@@IEAAHXZ
; public: virtual long __cdecl CWbemClass::IsParentClass(long,struct _IWmiObject * __ptr64) __ptr64
?IsParentClass@CWbemClass@@UEAAJJPEAU_IWmiObject@@@Z
; public: virtual long __cdecl CWbemInstance::IsParentClass(long,struct _IWmiObject * __ptr64) __ptr64
?IsParentClass@CWbemInstance@@UEAAJJPEAU_IWmiObject@@@Z
; public: int __cdecl CType::IsParents(void) __ptr64
?IsParents@CType@@QEAAHXZ
; public: static int __cdecl CType::IsParents(unsigned long)
?IsParents@CType@@SAHK@Z
; public: int __cdecl CType::IsPointerType(void) __ptr64
?IsPointerType@CType@@QEAAHXZ
; public: static int __cdecl CType::IsPointerType(unsigned long)
?IsPointerType@CType@@SAHK@Z
; public: static int __cdecl CSystemProperties::IsPossibleSystemPropertyName(unsigned short const * __ptr64)
?IsPossibleSystemPropertyName@CSystemProperties@@SAHPEBG@Z
; protected: int __cdecl CMethodPart::IsPropagated(int) __ptr64
?IsPropagated@CMethodPart@@IEAAHH@Z
; public: int __cdecl CClassPart::IsPropertyIndexed(unsigned short const * __ptr64) __ptr64
?IsPropertyIndexed@CClassPart@@QEAAHPEBG@Z
; public: int __cdecl CClassPart::IsPropertyKeyed(unsigned short const * __ptr64) __ptr64
?IsPropertyKeyed@CClassPart@@QEAAHPEBG@Z
; public: static int __cdecl CReservedWordTable::IsReservedWord(unsigned short const * __ptr64)
?IsReservedWord@CReservedWordTable@@SAHPEBG@Z
; public: int __cdecl CWbemObject::IsSameClass(class CWbemObject * __ptr64) __ptr64
?IsSameClass@CWbemObject@@QEAAHPEAV1@@Z
; public: int __cdecl CClassPart::IsSingleton(void) __ptr64
?IsSingleton@CClassPart@@QEAAHXZ
; public: int __cdecl CWbemClass::IsSingleton(void) __ptr64
?IsSingleton@CWbemClass@@QEAAHXZ
; public: int __cdecl CType::IsStringType(void) __ptr64
?IsStringType@CType@@QEAAHXZ
; public: static int __cdecl CType::IsStringType(unsigned long)
?IsStringType@CType@@SAHK@Z
; public: int __cdecl CClassPart::IsTopLevel(void) __ptr64
?IsTopLevel@CClassPart@@QEAAHXZ
; public: static int __cdecl CMethodDescription::IsTouched(struct CMethodDescription * __ptr64 __ptr64,class CFastHeap * __ptr64)
?IsTouched@CMethodDescription@@SAHPEFAU1@PEAVCFastHeap@@@Z
; public: int __cdecl CMethodPart::IsTouched(int,int * __ptr64) __ptr64
?IsTouched@CMethodPart@@QEAAHHPEAH@Z
; public: int __cdecl CMethodPart::IsTouched(unsigned short const * __ptr64,int * __ptr64) __ptr64
?IsTouched@CMethodPart@@QEAAHPEBGPEAH@Z
; public: int __cdecl CCompressedString::IsUnicode(void)const  __ptr64
?IsUnicode@CCompressedString@@QEBAHXZ
; public: long __cdecl CWbemDataPacket::IsValid(void) __ptr64
?IsValid@CWbemDataPacket@@QEAAJXZ
; public: bool __cdecl CWbemObjectArrayPacket::IsValid(class CWbemClassCache * __ptr64) __ptr64
?IsValid@CWbemObjectArrayPacket@@QEAA_NPEAVCWbemClassCache@@@Z
; public: long __cdecl CClassPart::IsValidClassPart(void) __ptr64
?IsValidClassPart@CClassPart@@QEAAJXZ
; public: long __cdecl CInstancePart::IsValidInstancePart(class CClassPart * __ptr64,class std::vector<struct EmbeddedObj,class wbem_allocator<struct EmbeddedObj> > & __ptr64) __ptr64
?IsValidInstancePart@CInstancePart@@QEAAJPEAVCClassPart@@AEAV?$vector@UEmbeddedObj@@V?$wbem_allocator@UEmbeddedObj@@@@@std@@@Z
; public: int __cdecl CWbemInstance::IsValidKey(unsigned short const * __ptr64) __ptr64
?IsValidKey@CWbemInstance@@QEAAHPEBG@Z
; public: long __cdecl CMethodPart::IsValidMethodPart(void) __ptr64
?IsValidMethodPart@CMethodPart@@QEAAJXZ
; public: virtual long __cdecl CWbemClass::IsValidObj(void) __ptr64
?IsValidObj@CWbemClass@@UEAAJXZ
; public: virtual long __cdecl CWbemInstance::IsValidObj(void) __ptr64
?IsValidObj@CWbemInstance@@UEAAJXZ
; public: long __cdecl CClassPart::IsValidPropertyHandle(long) __ptr64
?IsValidPropertyHandle@CClassPart@@QEAAJJ@Z
; public: long __cdecl CWbemObject::IsValidPropertyHandle(long) __ptr64
?IsValidPropertyHandle@CWbemObject@@QEAAJJ@Z
; public: bool __cdecl CFastHeap::IsValidPtr(unsigned long) __ptr64
?IsValidPtr@CFastHeap@@QEAA_NK@Z
; public: long __cdecl CBasicQualifierSet::IsValidQualifierSet(void) __ptr64
?IsValidQualifierSet@CBasicQualifierSet@@QEAAJXZ
; public: static int __cdecl CBasicQualifierSet::IsValidQualifierType(unsigned short)
?IsValidQualifierType@CBasicQualifierSet@@SAHG@Z
; protected: int __cdecl CWbemRefreshingSvc::IsWinmgmt(struct _WBEM_REFRESHER_ID * __ptr64) __ptr64
?IsWinmgmt@CWbemRefreshingSvc@@IEAAHPEAU_WBEM_REFRESHER_ID@@@Z
; public: static long __cdecl CUntypedArray::LoadFromCVarVector(class CPtrSource * __ptr64,class CVarVector & __ptr64,unsigned long,class CFastHeap * __ptr64,unsigned long & __ptr64,int)
?LoadFromCVarVector@CUntypedArray@@SAJPEAVCPtrSource@@AEAVCVarVector@@KPEAVCFastHeap@@AEAKH@Z
; protected: long __cdecl CWbemObject::LocalizeProperties(int,bool,struct IWbemClassObject * __ptr64,struct IWbemClassObject * __ptr64,bool & __ptr64) __ptr64
?LocalizeProperties@CWbemObject@@IEAAJH_NPEAUIWbemClassObject@@1AEA_N@Z
; protected: long __cdecl CWbemObject::LocalizeQualifiers(int,bool,struct IWbemQualifierSet * __ptr64,struct IWbemQualifierSet * __ptr64,bool & __ptr64) __ptr64
?LocalizeQualifiers@CWbemObject@@IEAAJH_NPEAUIWbemQualifierSet@@1AEA_N@Z
; public: int __cdecl CHiPerfLock::Lock(unsigned long) __ptr64
?Lock@CHiPerfLock@@QEAAHK@Z
; public: int __cdecl CSharedLock::Lock(unsigned long) __ptr64
?Lock@CSharedLock@@QEAAHK@Z
; public: virtual long __cdecl CWbemObject::Lock(long) __ptr64
?Lock@CWbemObject@@UEAAJJ@Z
; protected: static char __cdecl CCompressedString::LowerByte(unsigned short)
?LowerByte@CCompressedString@@KADG@Z
; public: static unsigned long __cdecl CType::MakeArray(unsigned long)
?MakeArray@CType@@SAKK@Z
; public: static unsigned long __cdecl CFastHeap::MakeFakeFromIndex(int)
?MakeFakeFromIndex@CFastHeap@@SAKH@Z
; public: static unsigned long __cdecl CType::MakeLocal(unsigned long)
?MakeLocal@CType@@SAKK@Z
; public: void __cdecl CCompressedString::MakeLowercase(void) __ptr64
?MakeLowercase@CCompressedString@@QEAAXXZ
; public: static unsigned long __cdecl CType::MakeNotArray(unsigned long)
?MakeNotArray@CType@@SAKK@Z
; public: static unsigned long __cdecl CType::MakeParents(unsigned long)
?MakeParents@CType@@SAKK@Z
; public: virtual long __cdecl CWbemClass::MakeSubsetInst(struct _IWmiObject * __ptr64,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?MakeSubsetInst@CWbemClass@@UEAAJPEAU_IWmiObject@@PEAPEAU2@@Z
; public: virtual long __cdecl CWbemInstance::MakeSubsetInst(struct _IWmiObject * __ptr64,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?MakeSubsetInst@CWbemInstance@@UEAAJPEAU_IWmiObject@@PEAPEAU2@@Z
; public: void __cdecl CLimitationMapping::Map(class CPropertyInformation * __ptr64,class CPropertyInformation * __ptr64,int) __ptr64
?Map@CLimitationMapping@@QEAAXPEAVCPropertyInformation@@0H@Z
; public: int __cdecl CClassPart::MapLimitation(long,class CWStringArray * __ptr64,class CLimitationMapping * __ptr64) __ptr64
?MapLimitation@CClassPart@@QEAAHJPEAVCWStringArray@@PEAVCLimitationMapping@@@Z
; public: static int __cdecl CDecorationPart::MapLimitation(class CWStringArray * __ptr64,class CLimitationMapping * __ptr64)
?MapLimitation@CDecorationPart@@SAHPEAVCWStringArray@@PEAVCLimitationMapping@@@Z
; public: int __cdecl CPropertyLookupTable::MapLimitation(long,class CWStringArray * __ptr64,class CLimitationMapping * __ptr64) __ptr64
?MapLimitation@CPropertyLookupTable@@QEAAHJPEAVCWStringArray@@PEAVCLimitationMapping@@@Z
; public: int __cdecl CWbemClass::MapLimitation(long,class CWStringArray * __ptr64,class CLimitationMapping * __ptr64) __ptr64
?MapLimitation@CWbemClass@@QEAAHJPEAVCWStringArray@@PEAVCLimitationMapping@@@Z
; public: static void __cdecl CDecorationPart::MarkKeyRemoval(unsigned char * __ptr64)
?MarkKeyRemoval@CDecorationPart@@SAXPEAE@Z
; public: virtual long __cdecl CWbemObject::MarshalInterface(struct IStream * __ptr64,struct _GUID const & __ptr64,void * __ptr64,unsigned long,void * __ptr64,unsigned long) __ptr64
?MarshalInterface@CWbemObject@@UEAAJPEAUIStream@@AEBU_GUID@@PEAXK2K@Z
; public: long __cdecl CWbemMtgtDeliverEventPacket::MarshalPacket(long,struct IWbemClassObject * __ptr64 * __ptr64,struct _GUID * __ptr64,int * __ptr64) __ptr64
?MarshalPacket@CWbemMtgtDeliverEventPacket@@QEAAJJPEAPEAUIWbemClassObject@@PEAU_GUID@@PEAH@Z
; public: long __cdecl CWbemMtgtDeliverEventPacket::MarshalPacket(unsigned char * __ptr64,unsigned long,long,struct IWbemClassObject * __ptr64 * __ptr64,struct _GUID * __ptr64,int * __ptr64) __ptr64
?MarshalPacket@CWbemMtgtDeliverEventPacket@@QEAAJPEAEKJPEAPEAUIWbemClassObject@@PEAU_GUID@@PEAH@Z
; public: long __cdecl CWbemObjectArrayPacket::MarshalPacket(long,struct IWbemClassObject * __ptr64 * __ptr64,struct _GUID * __ptr64,int * __ptr64) __ptr64
?MarshalPacket@CWbemObjectArrayPacket@@QEAAJJPEAPEAUIWbemClassObject@@PEAU_GUID@@PEAH@Z
; public: long __cdecl CWbemObjectArrayPacket::MarshalPacket(unsigned char * __ptr64,unsigned long,long,struct IWbemClassObject * __ptr64 * __ptr64,struct _GUID * __ptr64,int * __ptr64) __ptr64
?MarshalPacket@CWbemObjectArrayPacket@@QEAAJPEAEKJPEAPEAUIWbemClassObject@@PEAU_GUID@@PEAH@Z
; public: long __cdecl CWbemSmartEnumNextPacket::MarshalPacket(long,struct IWbemClassObject * __ptr64 * __ptr64,struct _GUID * __ptr64,int * __ptr64) __ptr64
?MarshalPacket@CWbemSmartEnumNextPacket@@QEAAJJPEAPEAUIWbemClassObject@@PEAU_GUID@@PEAH@Z
; public: long __cdecl CWbemSmartEnumNextPacket::MarshalPacket(unsigned char * __ptr64,unsigned long,long,struct IWbemClassObject * __ptr64 * __ptr64,struct _GUID * __ptr64,int * __ptr64) __ptr64
?MarshalPacket@CWbemSmartEnumNextPacket@@QEAAJPEAEKJPEAPEAUIWbemClassObject@@PEAU_GUID@@PEAH@Z
; public: static int __cdecl CSystemProperties::MaxNumProperties(void)
?MaxNumProperties@CSystemProperties@@SAHXZ
; public: static unsigned char * __ptr64 __cdecl CBasicQualifierSet::Merge(unsigned char * __ptr64,class CFastHeap * __ptr64,unsigned char * __ptr64,class CFastHeap * __ptr64,unsigned char * __ptr64,class CFastHeap * __ptr64,int)
?Merge@CBasicQualifierSet@@SAPEAEPEAEPEAVCFastHeap@@0101H@Z
; public: static unsigned char * __ptr64 __cdecl CClassAndMethods::Merge(class CClassAndMethods & __ptr64,class CClassAndMethods & __ptr64,unsigned char * __ptr64,int)
?Merge@CClassAndMethods@@SAPEAEAEAV1@0PEAEH@Z
; public: static unsigned char * __ptr64 __cdecl CClassPart::Merge(class CClassPart & __ptr64,class CClassPart & __ptr64,unsigned char * __ptr64,int)
?Merge@CClassPart@@SAPEAEAEAV1@0PEAEH@Z
; public: static unsigned char * __ptr64 __cdecl CDataTable::Merge(class CDataTable * __ptr64,class CFastHeap * __ptr64,class CDataTable * __ptr64,class CFastHeap * __ptr64,class CPropertyLookupTable * __ptr64,unsigned char * __ptr64,class CFastHeap * __ptr64)
?Merge@CDataTable@@SAPEAEPEAV1@PEAVCFastHeap@@01PEAVCPropertyLookupTable@@PEAE1@Z
; public: static unsigned char * __ptr64 __cdecl CDerivationList::Merge(class CCompressedStringList & __ptr64,class CCompressedStringList & __ptr64,unsigned char * __ptr64)
?Merge@CDerivationList@@SAPEAEAEAVCCompressedStringList@@0PEAE@Z
; public: static unsigned char * __ptr64 __cdecl CMethodPart::Merge(class CMethodPart & __ptr64,class CMethodPart & __ptr64,unsigned char * __ptr64,unsigned long)
?Merge@CMethodPart@@SAPEAEAEAV1@0PEAEK@Z
; public: static unsigned char * __ptr64 __cdecl CPropertyLookupTable::Merge(class CPropertyLookupTable * __ptr64,class CFastHeap * __ptr64,class CPropertyLookupTable * __ptr64,class CFastHeap * __ptr64,unsigned char * __ptr64,class CFastHeap * __ptr64,int)
?Merge@CPropertyLookupTable@@SAPEAEPEAV1@PEAVCFastHeap@@01PEAE1H@Z
; public: unsigned char * __ptr64 __cdecl CWbemClass::Merge(unsigned char * __ptr64,unsigned char * __ptr64,int,int) __ptr64
?Merge@CWbemClass@@QEAAPEAEPEAE0HH@Z
; public: virtual long __cdecl CWbemClass::Merge(long,unsigned long,void * __ptr64,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?Merge@CWbemClass@@UEAAJJKPEAXPEAPEAU_IWmiObject@@@Z
; public: virtual long __cdecl CWbemInstance::Merge(long,unsigned long,void * __ptr64,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?Merge@CWbemInstance@@UEAAJJKPEAXPEAPEAU_IWmiObject@@@Z
; public: virtual long __cdecl CWbemObject::MergeAmended(long,struct _IWmiObject * __ptr64) __ptr64
?MergeAmended@CWbemObject@@UEAAJJPEAU_IWmiObject@@@Z
; public: virtual long __cdecl CWbemClass::MergeAndDecorate(long,unsigned long,void * __ptr64,unsigned short * __ptr64,unsigned short * __ptr64,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?MergeAndDecorate@CWbemClass@@UEAAJJKPEAXPEAG1PEAPEAU_IWmiObject@@@Z
; public: virtual long __cdecl CWbemInstance::MergeAndDecorate(long,unsigned long,void * __ptr64,unsigned short * __ptr64,unsigned short * __ptr64,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?MergeAndDecorate@CWbemInstance@@UEAAJJKPEAXPEAG1PEAPEAU_IWmiObject@@@Z
; public: virtual long __cdecl CWbemClass::MergeClassPart(struct IWbemClassObject * __ptr64) __ptr64
?MergeClassPart@CWbemClass@@UEAAJPEAUIWbemClassObject@@@Z
; public: virtual long __cdecl CWbemInstance::MergeClassPart(struct IWbemClassObject * __ptr64) __ptr64
?MergeClassPart@CWbemInstance@@UEAAJPEAUIWbemClassObject@@@Z
; public: bool __cdecl CCompressedString::NValidateSize(int)const  __ptr64
?NValidateSize@CCompressedString@@QEBA_NH@Z
; public: static class CWbemCallSecurity * __ptr64 __cdecl CWbemCallSecurity::New(void)
?New@CWbemCallSecurity@@SAPEAV1@XZ
; public: static class CWbemThreadSecurityHandle * __ptr64 __cdecl CWbemThreadSecurityHandle::New(void)
?New@CWbemThreadSecurityHandle@@SAPEAV1@XZ
; public: virtual long __cdecl CQualifierSet::Next(long,unsigned short * __ptr64 * __ptr64,struct tagVARIANT * __ptr64,long * __ptr64) __ptr64
?Next@CQualifierSet@@UEAAJJPEAPEAGPEAUtagVARIANT@@PEAJ@Z
; public: virtual long __cdecl CWbemObject::Next(long,unsigned short * __ptr64 * __ptr64,struct tagVARIANT * __ptr64,long * __ptr64,long * __ptr64) __ptr64
?Next@CWbemObject@@UEAAJJPEAPEAGPEAUtagVARIANT@@PEAJ2@Z
; public: int __cdecl CLimitationMapping::NextMapping(class CPropertyInformation * __ptr64,class CPropertyInformation * __ptr64) __ptr64
?NextMapping@CLimitationMapping@@QEAAHPEAVCPropertyInformation@@0@Z
; public: virtual long __cdecl CWbemClass::NextMethod(long,unsigned short * __ptr64 * __ptr64,struct IWbemClassObject * __ptr64 * __ptr64,struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?NextMethod@CWbemClass@@UEAAJJPEAPEAGPEAPEAUIWbemClassObject@@1@Z
; public: virtual long __cdecl CWbemInstance::NextMethod(long,unsigned short * __ptr64 * __ptr64,struct IWbemClassObject * __ptr64 * __ptr64,struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?NextMethod@CWbemInstance@@UEAAJJPEAPEAGPEAPEAUIWbemClassObject@@1@Z
; public: long __cdecl CWbemInstance::PlugKeyHoles(void) __ptr64
?PlugKeyHoles@CWbemInstance@@QEAAJXZ
; public: virtual long __cdecl CQualifierSet::Put(unsigned short const * __ptr64,struct tagVARIANT * __ptr64,long) __ptr64
?Put@CQualifierSet@@UEAAJPEBGPEAUtagVARIANT@@J@Z
; public: virtual long __cdecl CWbemClass::Put(unsigned short const * __ptr64,long,struct tagVARIANT * __ptr64,long) __ptr64
?Put@CWbemClass@@UEAAJPEBGJPEAUtagVARIANT@@J@Z
; public: virtual long __cdecl CWbemInstance::Put(unsigned short const * __ptr64,long,struct tagVARIANT * __ptr64,long) __ptr64
?Put@CWbemInstance@@UEAAJPEBGJPEAUtagVARIANT@@J@Z
; public: long __cdecl CMethodPart::PutMethod(unsigned short const * __ptr64,long,class CWbemObject * __ptr64,class CWbemObject * __ptr64) __ptr64
?PutMethod@CMethodPart@@QEAAJPEBGJPEAVCWbemObject@@1@Z
; public: virtual long __cdecl CWbemClass::PutMethod(unsigned short const * __ptr64,long,struct IWbemClassObject * __ptr64,struct IWbemClassObject * __ptr64) __ptr64
?PutMethod@CWbemClass@@UEAAJPEBGJPEAUIWbemClassObject@@1@Z
; public: virtual long __cdecl CWbemInstance::PutMethod(unsigned short const * __ptr64,long,struct IWbemClassObject * __ptr64,struct IWbemClassObject * __ptr64) __ptr64
?PutMethod@CWbemInstance@@UEAAJPEBGJPEAUIWbemClassObject@@1@Z
; public: virtual long __cdecl CWbemCallSecurity::QueryBlanket(unsigned long * __ptr64,unsigned long * __ptr64,unsigned short * __ptr64 * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,void * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64
?QueryBlanket@CWbemCallSecurity@@UEAAJPEAK0PEAPEAG00PEAPEAX0@Z
; public: virtual long __cdecl CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@?$CImpl@UIWbemObjectTextSrc@@VCWmiObjectTextSrc@@@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@?$CImpl@UIWbemRefreshingServices@@VCWbemRefreshingSvc@@@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@?$CImpl@UIWbemRemoteRefresher@@VCWbemRemoteRefresher@@@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@?$CImpl@U_IWbemConfigureRefreshingSvcs@@VCWbemRefreshingSvc@@@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@?$CImpl@U_IWbemEnumMarshaling@@VCWbemEnumMarshaling@@@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@?$CImpl@U_IWbemFetchRefresherMgr@@VCWbemFetchRefrMgr@@@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@?$CImpl@U_IWmiObjectFactory@@VCWmiObjectFactory@@@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CQualifierSet::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CQualifierSet@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CWbemCallSecurity::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CWbemCallSecurity@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CWbemObject::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CWbemObject@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CWbemThreadSecurityHandle::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CWbemThreadSecurityHandle@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CWbemObject::QueryObjectFlags(long,unsigned __int64,unsigned __int64 * __ptr64) __ptr64
?QueryObjectFlags@CWbemObject@@UEAAJJ_KPEA_K@Z
; public: virtual long __cdecl CWbemObject::QueryPartInfo(unsigned long * __ptr64) __ptr64
?QueryPartInfo@CWbemObject@@UEAAJPEAK@Z
; public: virtual long __cdecl CWbemObject::QueryPropertyFlags(long,unsigned short const * __ptr64,unsigned __int64,unsigned __int64 * __ptr64) __ptr64
?QueryPropertyFlags@CWbemObject@@UEAAJJPEBG_KPEA_K@Z
; public: virtual long __cdecl CWbemObject::ReadDWORD(long,unsigned long * __ptr64) __ptr64
?ReadDWORD@CWbemObject@@UEAAJJPEAK@Z
; public: virtual long __cdecl CWbemObject::ReadProp(unsigned short const * __ptr64,long,unsigned long,long * __ptr64,long * __ptr64,int * __ptr64,unsigned long * __ptr64,void * __ptr64) __ptr64
?ReadProp@CWbemObject@@UEAAJPEBGJKPEAJ1PEAHPEAKPEAX@Z
; public: virtual long __cdecl CWbemObject::ReadPropertyValue(long,long,long * __ptr64,unsigned char * __ptr64) __ptr64
?ReadPropertyValue@CWbemObject@@UEAAJJJPEAJPEAE@Z
; public: virtual long __cdecl CWbemObject::ReadQWORD(long,unsigned __int64 * __ptr64) __ptr64
?ReadQWORD@CWbemObject@@UEAAJJPEA_K@Z
; public: int __cdecl CClassPart::ReallocAndCompact(unsigned long) __ptr64
?ReallocAndCompact@CClassPart@@QEAAHK@Z
; public: int __cdecl CInstancePart::ReallocAndCompact(unsigned long) __ptr64
?ReallocAndCompact@CInstancePart@@QEAAHK@Z
; protected: static long __cdecl CUntypedArray::ReallocArray(class CPtrSource * __ptr64,unsigned long,class CFastHeap * __ptr64,unsigned long,unsigned long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64)
?ReallocArray@CUntypedArray@@KAJPEAVCPtrSource@@KPEAVCFastHeap@@KPEAK22@Z
; public: int __cdecl CFastHeap::Reallocate(unsigned long,unsigned long,unsigned long,unsigned long & __ptr64 __ptr64) __ptr64
?Reallocate@CFastHeap@@QEAAHKKKAEFAK@Z
; protected: unsigned char * __ptr64 __cdecl CWbemObject::Reallocate(unsigned long) __ptr64
?Reallocate@CWbemObject@@IEAAPEAEK@Z
; public: void __cdecl CBasicQualifierSet::Rebase(unsigned char * __ptr64) __ptr64
?Rebase@CBasicQualifierSet@@QEAAXPEAE@Z
; public: void __cdecl CClassAndMethods::Rebase(unsigned char * __ptr64) __ptr64
?Rebase@CClassAndMethods@@QEAAXPEAE@Z
; public: void __cdecl CClassPart::Rebase(unsigned char * __ptr64) __ptr64
?Rebase@CClassPart@@QEAAXPEAE@Z
; public: void __cdecl CCompressedStringList::Rebase(unsigned char * __ptr64) __ptr64
?Rebase@CCompressedStringList@@QEAAXPEAE@Z
; public: void __cdecl CDataTable::Rebase(unsigned char * __ptr64) __ptr64
?Rebase@CDataTable@@QEAAXPEAE@Z
; public: void __cdecl CDecorationPart::Rebase(unsigned char * __ptr64) __ptr64
?Rebase@CDecorationPart@@QEAAXPEAE@Z
; public: void __cdecl CFastHeap::Rebase(unsigned char * __ptr64) __ptr64
?Rebase@CFastHeap@@QEAAXPEAE@Z
; public: void __cdecl CInstancePart::Rebase(unsigned char * __ptr64) __ptr64
?Rebase@CInstancePart@@QEAAXPEAE@Z
; public: void __cdecl CMethodPart::Rebase(unsigned char * __ptr64) __ptr64
?Rebase@CMethodPart@@QEAAXPEAE@Z
; public: void __cdecl CPropertyLookupTable::Rebase(unsigned char * __ptr64) __ptr64
?Rebase@CPropertyLookupTable@@QEAAXPEAE@Z
; public: void __cdecl CQualifierSetList::Rebase(unsigned char * __ptr64) __ptr64
?Rebase@CQualifierSetList@@QEAAXPEAE@Z
; public: void __cdecl CQualifierSetList::Rebase(void) __ptr64
?Rebase@CQualifierSetList@@QEAAXXZ
; public: void __cdecl CWbemClass::Rebase(unsigned char * __ptr64) __ptr64
?Rebase@CWbemClass@@QEAAXPEAE@Z
; public: void __cdecl CWbemInstance::Rebase(unsigned char * __ptr64) __ptr64
?Rebase@CWbemInstance@@QEAAXPEAE@Z
; public: void __cdecl CInstancePQSContainer::RebaseSecondarySet(void) __ptr64
?RebaseSecondarySet@CInstancePQSContainer@@QEAAXXZ
; public: enum EReconciliation  __cdecl CClassAndMethods::ReconcileWith(class CClassAndMethods & __ptr64) __ptr64
?ReconcileWith@CClassAndMethods@@QEAA?AW4EReconciliation@@AEAV1@@Z
; public: enum EReconciliation  __cdecl CClassPart::ReconcileWith(class CClassPart & __ptr64) __ptr64
?ReconcileWith@CClassPart@@QEAA?AW4EReconciliation@@AEAV1@@Z
; public: enum EReconciliation  __cdecl CMethodPart::ReconcileWith(class CMethodPart & __ptr64) __ptr64
?ReconcileWith@CMethodPart@@QEAA?AW4EReconciliation@@AEAV1@@Z
; public: enum EReconciliation  __cdecl CWbemClass::ReconcileWith(class CWbemClass * __ptr64) __ptr64
?ReconcileWith@CWbemClass@@QEAA?AW4EReconciliation@@PEAV1@@Z
; public: virtual long __cdecl CWbemClass::ReconcileWith(long,struct _IWmiObject * __ptr64) __ptr64
?ReconcileWith@CWbemClass@@UEAAJJPEAU_IWmiObject@@@Z
; public: virtual long __cdecl CWbemInstance::ReconcileWith(long,struct _IWmiObject * __ptr64) __ptr64
?ReconcileWith@CWbemInstance@@UEAAJJPEAU_IWmiObject@@@Z
; protected: virtual long __cdecl CWbemRefreshingSvc::ReconnectRemoteRefresher(struct _WBEM_REFRESHER_ID * __ptr64,long,long,unsigned long,struct _WBEM_RECONNECT_INFO * __ptr64,struct _WBEM_RECONNECT_RESULTS * __ptr64,unsigned long * __ptr64) __ptr64
?ReconnectRemoteRefresher@CWbemRefreshingSvc@@MEAAJPEAU_WBEM_REFRESHER_ID@@JJKPEAU_WBEM_RECONNECT_INFO@@PEAU_WBEM_RECONNECT_RESULTS@@PEAK@Z
; public: virtual long __cdecl CWbemRefreshingSvc::XWbemRefrSvc::ReconnectRemoteRefresher(struct _WBEM_REFRESHER_ID * __ptr64,long,long,unsigned long,struct _WBEM_RECONNECT_INFO * __ptr64,struct _WBEM_RECONNECT_RESULTS * __ptr64,unsigned long * __ptr64) __ptr64
?ReconnectRemoteRefresher@XWbemRefrSvc@CWbemRefreshingSvc@@UEAAJPEAU_WBEM_REFRESHER_ID@@JJKPEAU_WBEM_RECONNECT_INFO@@PEAU_WBEM_RECONNECT_RESULTS@@PEAK@Z
; public: void __cdecl CFastHeap::Reduce(unsigned long,unsigned long,unsigned long) __ptr64
?Reduce@CFastHeap@@QEAAXKKK@Z
; public: void __cdecl CWbemClass::ReduceClassAndMethodsSpace(unsigned long) __ptr64
?ReduceClassAndMethodsSpace@CWbemClass@@QEAAXK@Z
; public: virtual void __cdecl CClassAndMethods::ReduceClassPartSpace(class CClassPart * __ptr64,unsigned long) __ptr64
?ReduceClassPartSpace@CClassAndMethods@@UEAAXPEAVCClassPart@@K@Z
; public: virtual void __cdecl CWbemInstance::ReduceClassPartSpace(class CClassPart * __ptr64,unsigned long) __ptr64
?ReduceClassPartSpace@CWbemInstance@@UEAAXPEAVCClassPart@@K@Z
; public: virtual void __cdecl CClassPart::ReduceDataTableSpace(unsigned char * __ptr64,unsigned long,unsigned long) __ptr64
?ReduceDataTableSpace@CClassPart@@UEAAXPEAEKK@Z
; public: virtual void __cdecl CInstancePart::ReduceDataTableSpace(unsigned char * __ptr64,unsigned long,unsigned long) __ptr64
?ReduceDataTableSpace@CInstancePart@@UEAAXPEAEKK@Z
; public: virtual void __cdecl CClassPart::ReduceHeapSize(unsigned char * __ptr64,unsigned long,unsigned long) __ptr64
?ReduceHeapSize@CClassPart@@UEAAXPEAEKK@Z
; public: virtual void __cdecl CInstancePart::ReduceHeapSize(unsigned char * __ptr64,unsigned long,unsigned long) __ptr64
?ReduceHeapSize@CInstancePart@@UEAAXPEAEKK@Z
; public: virtual void __cdecl CMethodPart::ReduceHeapSize(unsigned char * __ptr64,unsigned long,unsigned long) __ptr64
?ReduceHeapSize@CMethodPart@@UEAAXPEAEKK@Z
; public: virtual void __cdecl CWbemInstance::ReduceInstancePartSpace(class CInstancePart * __ptr64,unsigned long) __ptr64
?ReduceInstancePartSpace@CWbemInstance@@UEAAXPEAVCInstancePart@@K@Z
; public: virtual void __cdecl CClassAndMethods::ReduceMethodPartSpace(class CMethodPart * __ptr64,unsigned long) __ptr64
?ReduceMethodPartSpace@CClassAndMethods@@UEAAXPEAVCMethodPart@@K@Z
; public: virtual void __cdecl CClassPart::ReducePropertyTableSpace(unsigned char * __ptr64,unsigned long,unsigned long) __ptr64
?ReducePropertyTableSpace@CClassPart@@UEAAXPEAEKK@Z
; public: virtual void __cdecl CInstancePart::ReduceQualifierSetListSpace(unsigned char * __ptr64,unsigned long,unsigned long) __ptr64
?ReduceQualifierSetListSpace@CInstancePart@@UEAAXPEAEKK@Z
; public: virtual void __cdecl CClassPart::ReduceQualifierSetSpace(class CBasicQualifierSet * __ptr64,unsigned long) __ptr64
?ReduceQualifierSetSpace@CClassPart@@UEAAXPEAVCBasicQualifierSet@@K@Z
; public: virtual void __cdecl CInstancePQSContainer::ReduceQualifierSetSpace(class CBasicQualifierSet * __ptr64,unsigned long) __ptr64
?ReduceQualifierSetSpace@CInstancePQSContainer@@UEAAXPEAVCBasicQualifierSet@@K@Z
; public: virtual void __cdecl CInstancePart::ReduceQualifierSetSpace(class CBasicQualifierSet * __ptr64,unsigned long) __ptr64
?ReduceQualifierSetSpace@CInstancePart@@UEAAXPEAVCBasicQualifierSet@@K@Z
; public: virtual void __cdecl CMethodQualifierSetContainer::ReduceQualifierSetSpace(class CBasicQualifierSet * __ptr64,unsigned long) __ptr64
?ReduceQualifierSetSpace@CMethodQualifierSetContainer@@UEAAXPEAVCBasicQualifierSet@@K@Z
; public: void __cdecl CQualifierSetList::ReduceQualifierSetSpace(class CBasicQualifierSet * __ptr64,unsigned long) __ptr64
?ReduceQualifierSetSpace@CQualifierSetList@@QEAAXPEAVCBasicQualifierSet@@K@Z
; public: virtual unsigned long __cdecl CImpl<struct IWbemObjectTextSrc,class CWmiObjectTextSrc>::Release(void) __ptr64
?Release@?$CImpl@UIWbemObjectTextSrc@@VCWmiObjectTextSrc@@@@UEAAKXZ
; public: virtual unsigned long __cdecl CImpl<struct IWbemRefreshingServices,class CWbemRefreshingSvc>::Release(void) __ptr64
?Release@?$CImpl@UIWbemRefreshingServices@@VCWbemRefreshingSvc@@@@UEAAKXZ
; public: virtual unsigned long __cdecl CImpl<struct IWbemRemoteRefresher,class CWbemRemoteRefresher>::Release(void) __ptr64
?Release@?$CImpl@UIWbemRemoteRefresher@@VCWbemRemoteRefresher@@@@UEAAKXZ
; public: virtual unsigned long __cdecl CImpl<struct _IWbemConfigureRefreshingSvcs,class CWbemRefreshingSvc>::Release(void) __ptr64
?Release@?$CImpl@U_IWbemConfigureRefreshingSvcs@@VCWbemRefreshingSvc@@@@UEAAKXZ
; public: virtual unsigned long __cdecl CImpl<struct _IWbemEnumMarshaling,class CWbemEnumMarshaling>::Release(void) __ptr64
?Release@?$CImpl@U_IWbemEnumMarshaling@@VCWbemEnumMarshaling@@@@UEAAKXZ
; public: virtual unsigned long __cdecl CImpl<struct _IWbemFetchRefresherMgr,class CWbemFetchRefrMgr>::Release(void) __ptr64
?Release@?$CImpl@U_IWbemFetchRefresherMgr@@VCWbemFetchRefrMgr@@@@UEAAKXZ
; public: virtual unsigned long __cdecl CImpl<struct _IWmiObjectFactory,class CWmiObjectFactory>::Release(void) __ptr64
?Release@?$CImpl@U_IWmiObjectFactory@@VCWmiObjectFactory@@@@UEAAKXZ
; public: virtual unsigned long __cdecl CClassQualifierSet::Release(void) __ptr64
?Release@CClassQualifierSet@@UEAAKXZ
; public: virtual unsigned long __cdecl CInstanceQualifierSet::Release(void) __ptr64
?Release@CInstanceQualifierSet@@UEAAKXZ
; public: virtual unsigned long __cdecl CMethodQualifierSet::Release(void) __ptr64
?Release@CMethodQualifierSet@@UEAAKXZ
; public: virtual unsigned long __cdecl CQualifierSet::Release(void) __ptr64
?Release@CQualifierSet@@UEAAKXZ
; public: virtual unsigned long __cdecl CWbemCallSecurity::Release(void) __ptr64
?Release@CWbemCallSecurity@@UEAAKXZ
; public: virtual unsigned long __cdecl CWbemObject::Release(void) __ptr64
?Release@CWbemObject@@UEAAKXZ
; public: virtual unsigned long __cdecl CWbemThreadSecurityHandle::Release(void) __ptr64
?Release@CWbemThreadSecurityHandle@@UEAAKXZ
; protected: void __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::ReleaseElement(class CFastPropertyBagItem * __ptr64) __ptr64
?ReleaseElement@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@IEAAXPEAVCFastPropertyBagItem@@@Z
; protected: void __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::ReleaseElement(class CWmiTextSource * __ptr64) __ptr64
?ReleaseElement@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@IEAAXPEAVCWmiTextSource@@@Z
; public: virtual long __cdecl CWbemObject::ReleaseMarshalData(struct IStream * __ptr64) __ptr64
?ReleaseMarshalData@CWbemObject@@UEAAJPEAUIStream@@@Z
; public: virtual long __cdecl CWbemRemoteRefresher::XWbemRemoteRefr::RemoteRefresh(long,long * __ptr64,struct _WBEM_REFRESHED_OBJECT * __ptr64 * __ptr64) __ptr64
?RemoteRefresh@XWbemRemoteRefr@CWbemRemoteRefresher@@UEAAJJPEAJPEAPEAU_WBEM_REFRESHED_OBJECT@@@Z
; public: long __cdecl CFastPropertyBag::Remove(unsigned short const * __ptr64) __ptr64
?Remove@CFastPropertyBag@@QEAAJPEBG@Z
; public: void __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::RemoveAll(void) __ptr64
?RemoveAll@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAAXXZ
; public: void __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::RemoveAll(void) __ptr64
?RemoveAll@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAAXXZ
; public: long __cdecl CFastPropertyBag::RemoveAll(void) __ptr64
?RemoveAll@CFastPropertyBag@@QEAAJXZ
; public: virtual long __cdecl CWbemObject::RemoveArrayPropElementByHandle(long,long,unsigned long) __ptr64
?RemoveArrayPropElementByHandle@CWbemObject@@UEAAJJJK@Z
; public: virtual long __cdecl CWbemObject::RemoveArrayPropRangeByHandle(long,long,unsigned long,unsigned long) __ptr64
?RemoveArrayPropRangeByHandle@CWbemObject@@UEAAJJJKK@Z
; public: bool __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::RemoveAt(int,class CFastPropertyBagItem * __ptr64 * __ptr64) __ptr64
?RemoveAt@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAA_NHPEAPEAVCFastPropertyBagItem@@@Z
; public: bool __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::RemoveAt(int,class CWmiTextSource * __ptr64 * __ptr64) __ptr64
?RemoveAt@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAA_NHPEAPEAVCWmiTextSource@@@Z
; public: virtual long __cdecl CWbemObject::RemoveDecoration(void) __ptr64
?RemoveDecoration@CWbemObject@@UEAAJXZ
; protected: virtual long __cdecl CWbemRefreshingSvc::RemoveObjectFromRefresher(struct _WBEM_REFRESHER_ID * __ptr64,long,long,unsigned long,unsigned long * __ptr64) __ptr64
?RemoveObjectFromRefresher@CWbemRefreshingSvc@@MEAAJPEAU_WBEM_REFRESHER_ID@@JJKPEAK@Z
; public: virtual long __cdecl CWbemRefreshingSvc::XWbemRefrSvc::RemoveObjectFromRefresher(struct _WBEM_REFRESHER_ID * __ptr64,long,long,unsigned long,unsigned long * __ptr64) __ptr64
?RemoveObjectFromRefresher@XWbemRefrSvc@CWbemRefreshingSvc@@UEAAJPEAU_WBEM_REFRESHER_ID@@JJKPEAK@Z
; public: void __cdecl CDataTable::RemoveProperty(unsigned short,unsigned long,unsigned long) __ptr64
?RemoveProperty@CDataTable@@QEAAXGKK@Z
; public: long __cdecl CWbemObject::RemoveQualifierArrayRange(unsigned short const * __ptr64,unsigned short const * __ptr64,int,long,unsigned long,unsigned long) __ptr64
?RemoveQualifierArrayRange@CWbemObject@@QEAAJPEBG0HJKK@Z
; public: static long __cdecl CUntypedArray::RemoveRange(class CPtrSource * __ptr64,unsigned long,unsigned long,class CFastHeap * __ptr64,unsigned long,unsigned long)
?RemoveRange@CUntypedArray@@SAJPEAVCPtrSource@@KKPEAVCFastHeap@@KK@Z
; public: void __cdecl CLimitationMapping::RemoveSpecific(void) __ptr64
?RemoveSpecific@CLimitationMapping@@QEAAXXZ
; public: long __cdecl CWbemInstance::Reparent(class CWbemClass * __ptr64,class CWbemInstance * __ptr64 * __ptr64) __ptr64
?Reparent@CWbemInstance@@QEAAJPEAVCWbemClass@@PEAPEAV1@@Z
; public: void __cdecl CCompressedStringList::Reset(void) __ptr64
?Reset@CCompressedStringList@@QEAAXXZ
; public: void __cdecl CLimitationMapping::Reset(void) __ptr64
?Reset@CLimitationMapping@@QEAAXXZ
; protected: long __cdecl CWbemRefreshingSvc::ResetRefreshInfo(struct _WBEM_REFRESH_INFO * __ptr64) __ptr64
?ResetRefreshInfo@CWbemRefreshingSvc@@IEAAJPEAU_WBEM_REFRESH_INFO@@@Z
; public: unsigned char * __ptr64 __cdecl CClassPart::ResolveHeapPointer(unsigned long) __ptr64
?ResolveHeapPointer@CClassPart@@QEAAPEAEK@Z
; public: unsigned char * __ptr64 __cdecl CFastHeap::ResolveHeapPointer(unsigned long) __ptr64
?ResolveHeapPointer@CFastHeap@@QEAAPEAEK@Z
; public: class CCompressedString * __ptr64 __cdecl CClassPart::ResolveHeapString(unsigned long) __ptr64
?ResolveHeapString@CClassPart@@QEAAPEAVCCompressedString@@K@Z
; public: class CCompressedString * __ptr64 __cdecl CFastHeap::ResolveString(unsigned long) __ptr64
?ResolveString@CFastHeap@@QEAAPEAVCCompressedString@@K@Z
; public: virtual long __cdecl CWbemCallSecurity::RevertToSelf(void) __ptr64
?RevertToSelf@CWbemCallSecurity@@UEAAJXZ
; public: int __cdecl CQualifierSet::SelfRebase(void) __ptr64
?SelfRebase@CQualifierSet@@QEAAHXZ
; public: long __cdecl CInstancePart::SetActualValue(class CPropertyInformation * __ptr64,class CVar * __ptr64) __ptr64
?SetActualValue@CInstancePart@@QEAAJPEAVCPropertyInformation@@PEAVCVar@@@Z
; public: void __cdecl CLimitationMapping::SetAddChildKeys(int) __ptr64
?SetAddChildKeys@CLimitationMapping@@QEAAXH@Z
; public: void __cdecl CDataTable::SetAllToDefault(void) __ptr64
?SetAllToDefault@CDataTable@@QEAAXXZ
; public: void __cdecl CFastHeap::SetAllocatedDataLength(unsigned long) __ptr64
?SetAllocatedDataLength@CFastHeap@@QEAAXK@Z
; public: virtual long __cdecl CWbemObject::SetArrayPropElementByHandle(long,long,unsigned long,unsigned long,void * __ptr64) __ptr64
?SetArrayPropElementByHandle@CWbemObject@@UEAAJJJKKPEAX@Z
; public: virtual long __cdecl CWbemObject::SetArrayPropRangeByHandle(long,long,unsigned long,unsigned long,unsigned long,void * __ptr64) __ptr64
?SetArrayPropRangeByHandle@CWbemObject@@UEAAJJJKKKPEAX@Z
; public: void __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::SetAt(int,class CFastPropertyBagItem * __ptr64,class CFastPropertyBagItem * __ptr64 * __ptr64) __ptr64
?SetAt@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAAXHPEAVCFastPropertyBagItem@@PEAPEAV2@@Z
; public: void __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::SetAt(int,class CWmiTextSource * __ptr64,class CWmiTextSource * __ptr64 * __ptr64) __ptr64
?SetAt@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAAXHPEAVCWmiTextSource@@PEAPEAV2@@Z
; public: long __cdecl CClassPart::SetClassName(class CVar * __ptr64) __ptr64
?SetClassName@CClassPart@@QEAAJPEAVCVar@@@Z
; public: void __cdecl CLimitationMapping::SetClassObject(class CWbemClass * __ptr64) __ptr64
?SetClassObject@CLimitationMapping@@QEAAXPEAVCWbemClass@@@Z
; public: virtual long __cdecl CWbemClass::SetClassPart(void * __ptr64,unsigned long) __ptr64
?SetClassPart@CWbemClass@@UEAAJPEAXK@Z
; public: virtual long __cdecl CWbemInstance::SetClassPart(void * __ptr64,unsigned long) __ptr64
?SetClassPart@CWbemInstance@@UEAAJPEAXK@Z
; public: long __cdecl CClassPart::SetClassQualifier(unsigned short const * __ptr64,long,class CTypedValue * __ptr64) __ptr64
?SetClassQualifier@CClassPart@@QEAAJPEBGJPEAVCTypedValue@@@Z
; public: long __cdecl CClassPart::SetClassQualifier(unsigned short const * __ptr64,class CVar * __ptr64,long) __ptr64
?SetClassQualifier@CClassPart@@QEAAJPEBGPEAVCVar@@J@Z
; public: void __cdecl CDecorationPart::SetClientOnly(void) __ptr64
?SetClientOnly@CDecorationPart@@QEAAXXZ
; public: void __cdecl CWbemObject::SetClientOnly(void) __ptr64
?SetClientOnly@CWbemObject@@QEAAXXZ
; public: void __cdecl CFastHeap::SetContainer(class CHeapContainer * __ptr64) __ptr64
?SetContainer@CFastHeap@@QEAAXPEAVCHeapContainer@@@Z
; public: void __cdecl CBasicQualifierSet::SetData(unsigned char * __ptr64,class CFastHeap * __ptr64) __ptr64
?SetData@CBasicQualifierSet@@QEAAXPEAEPEAVCFastHeap@@@Z
; public: void __cdecl CClassAndMethods::SetData(unsigned char * __ptr64,class CWbemClass * __ptr64,class CClassAndMethods * __ptr64) __ptr64
?SetData@CClassAndMethods@@QEAAXPEAEPEAVCWbemClass@@PEAV1@@Z
; public: void __cdecl CClassPart::SetData(unsigned char * __ptr64,class CClassPartContainer * __ptr64,class CClassPart * __ptr64) __ptr64
?SetData@CClassPart@@QEAAXPEAEPEAVCClassPartContainer@@PEAV1@@Z
; public: void __cdecl CCompressedStringList::SetData(unsigned char * __ptr64) __ptr64
?SetData@CCompressedStringList@@QEAAXPEAE@Z
; public: void __cdecl CDataTable::SetData(unsigned char * __ptr64,int,int,class CDataTableContainer * __ptr64) __ptr64
?SetData@CDataTable@@QEAAXPEAEHHPEAVCDataTableContainer@@@Z
; public: void __cdecl CDecorationPart::SetData(unsigned char * __ptr64) __ptr64
?SetData@CDecorationPart@@QEAAXPEAE@Z
; public: int __cdecl CFastHeap::SetData(unsigned char * __ptr64,class CHeapContainer * __ptr64) __ptr64
?SetData@CFastHeap@@QEAAHPEAEPEAVCHeapContainer@@@Z
; public: void __cdecl CInstancePart::SetData(unsigned char * __ptr64,class CInstancePartContainer * __ptr64,class CClassPart & __ptr64,unsigned __int64) __ptr64
?SetData@CInstancePart@@QEAAXPEAEPEAVCInstancePartContainer@@AEAVCClassPart@@_K@Z
; public: void __cdecl CMethodPart::SetData(unsigned char * __ptr64,class CMethodPartContainer * __ptr64,class CMethodPart * __ptr64) __ptr64
?SetData@CMethodPart@@QEAAXPEAEPEAVCMethodPartContainer@@PEAV1@@Z
; public: void __cdecl CMethodQualifierSet::SetData(class CMethodPart * __ptr64,class CMethodPart * __ptr64,unsigned short const * __ptr64) __ptr64
?SetData@CMethodQualifierSet@@QEAAXPEAVCMethodPart@@0PEBG@Z
; public: void __cdecl CMethodQualifierSetContainer::SetData(class CMethodPart * __ptr64,class CMethodPart * __ptr64,unsigned short const * __ptr64) __ptr64
?SetData@CMethodQualifierSetContainer@@QEAAXPEAVCMethodPart@@0PEBG@Z
; public: void __cdecl CPropertyLookupTable::SetData(unsigned char * __ptr64,class CPropertyTableContainer * __ptr64) __ptr64
?SetData@CPropertyLookupTable@@QEAAXPEAEPEAVCPropertyTableContainer@@@Z
; public: void __cdecl CQualifierSet::SetData(unsigned char * __ptr64,class CQualifierSetContainer * __ptr64,class CBasicQualifierSet * __ptr64) __ptr64
?SetData@CQualifierSet@@QEAAXPEAEPEAVCQualifierSetContainer@@PEAVCBasicQualifierSet@@@Z
; public: void __cdecl CQualifierSetList::SetData(unsigned char * __ptr64,int,class CQualifierSetListContainer * __ptr64) __ptr64
?SetData@CQualifierSetList@@QEAAXPEAEHPEAVCQualifierSetListContainer@@@Z
; public: void __cdecl CSharedLock::SetData(struct SHARED_LOCK_DATA * __ptr64) __ptr64
?SetData@CSharedLock@@QEAAXPEAUSHARED_LOCK_DATA@@@Z
; public: virtual void __cdecl CWbemClass::SetData(unsigned char * __ptr64,int) __ptr64
?SetData@CWbemClass@@UEAAXPEAEH@Z
; public: void __cdecl CWbemDataPacket::SetData(unsigned char * __ptr64,unsigned long,bool) __ptr64
?SetData@CWbemDataPacket@@QEAAXPEAEK_N@Z
; public: void __cdecl CWbemInstance::SetData(unsigned char * __ptr64,int,unsigned long) __ptr64
?SetData@CWbemInstance@@QEAAXPEAEHK@Z
; public: virtual void __cdecl CWbemInstance::SetData(unsigned char * __ptr64,int) __ptr64
?SetData@CWbemInstance@@UEAAXPEAEH@Z
; public: void __cdecl CWbemMtgtDeliverEventPacket::SetData(unsigned char * __ptr64,unsigned long,bool) __ptr64
?SetData@CWbemMtgtDeliverEventPacket@@QEAAXPEAEK_N@Z
; public: void __cdecl CWbemObjectArrayPacket::SetData(unsigned char * __ptr64,unsigned long,bool) __ptr64
?SetData@CWbemObjectArrayPacket@@QEAAXPEAEK_N@Z
; public: void __cdecl CWbemSmartEnumNextPacket::SetData(unsigned char * __ptr64,unsigned long,bool) __ptr64
?SetData@CWbemSmartEnumNextPacket@@QEAAXPEAEK_N@Z
; protected: static void __cdecl CBasicQualifierSet::SetDataLength(unsigned char * __ptr64,unsigned long)
?SetDataLength@CBasicQualifierSet@@KAXPEAEK@Z
; public: void __cdecl CClassPart::SetDataLength(unsigned long) __ptr64
?SetDataLength@CClassPart@@QEAAXK@Z
; public: void __cdecl CInstancePart::SetDataLength(unsigned long) __ptr64
?SetDataLength@CInstancePart@@QEAAXK@Z
; public: static void __cdecl CBasicQualifierSet::SetDataToNone(unsigned char * __ptr64)
?SetDataToNone@CBasicQualifierSet@@SAXPEAE@Z
; public: void __cdecl CClassAndMethods::SetDataWithNumProps(unsigned char * __ptr64,class CWbemClass * __ptr64,unsigned long,class CClassAndMethods * __ptr64) __ptr64
?SetDataWithNumProps@CClassAndMethods@@QEAAXPEAEPEAVCWbemClass@@KPEAV1@@Z
; public: void __cdecl CClassPart::SetDataWithNumProps(unsigned char * __ptr64,class CClassPartContainer * __ptr64,unsigned long,class CClassPart * __ptr64) __ptr64
?SetDataWithNumProps@CClassPart@@QEAAXPEAEPEAVCClassPartContainer@@KPEAV1@@Z
; public: virtual long __cdecl CWbemObject::SetDecoration(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?SetDecoration@CWbemObject@@UEAAJPEBG0@Z
; protected: long __cdecl CClassPart::SetDefaultValue(class CPropertyInformation * __ptr64,class CVar * __ptr64) __ptr64
?SetDefaultValue@CClassPart@@IEAAJPEAVCPropertyInformation@@PEAVCVar@@@Z
; public: long __cdecl CClassPart::SetDefaultValue(unsigned short const * __ptr64,class CVar * __ptr64) __ptr64
?SetDefaultValue@CClassPart@@QEAAJPEBGPEAVCVar@@@Z
; public: void __cdecl CDataTable::SetDefaultness(int,int) __ptr64
?SetDefaultness@CDataTable@@QEAAXHH@Z
; public: void __cdecl CLimitationMapping::SetFlags(long) __ptr64
?SetFlags@CLimitationMapping@@QEAAXJ@Z
; public: void __cdecl CCompressedString::SetFromAscii(char const * __ptr64,unsigned __int64) __ptr64
?SetFromAscii@CCompressedString@@QEAAXPEBD_K@Z
; public: void __cdecl CCompressedString::SetFromUnicode(int,unsigned short const * __ptr64) __ptr64
?SetFromUnicode@CCompressedString@@QEAAXHPEBG@Z
; public: void __cdecl CCompressedString::SetFromUnicode(unsigned short const * __ptr64) __ptr64
?SetFromUnicode@CCompressedString@@QEAAXPEBG@Z
; protected: void __cdecl CFastHeap::SetInLineLength(unsigned long) __ptr64
?SetInLineLength@CFastHeap@@IEAAXK@Z
; public: void __cdecl CLimitationMapping::SetIncludeDerivation(int) __ptr64
?SetIncludeDerivation@CLimitationMapping@@QEAAXH@Z
; public: void __cdecl CLimitationMapping::SetIncludeNamespace(int) __ptr64
?SetIncludeNamespace@CLimitationMapping@@QEAAXH@Z
; public: void __cdecl CLimitationMapping::SetIncludeServer(int) __ptr64
?SetIncludeServer@CLimitationMapping@@QEAAXH@Z
; public: long __cdecl CClassPart::SetInheritanceChain(long,unsigned short * __ptr64 * __ptr64) __ptr64
?SetInheritanceChain@CClassPart@@QEAAJJPEAPEAG@Z
; public: virtual long __cdecl CWbemClass::SetInheritanceChain(long,unsigned short * __ptr64 * __ptr64) __ptr64
?SetInheritanceChain@CWbemClass@@UEAAJJPEAPEAG@Z
; public: virtual long __cdecl CWbemInstance::SetInheritanceChain(long,unsigned short * __ptr64 * __ptr64) __ptr64
?SetInheritanceChain@CWbemInstance@@UEAAJJPEAPEAG@Z
; public: long __cdecl CInstancePart::SetInstanceQualifier(unsigned short const * __ptr64,long,class CTypedValue * __ptr64) __ptr64
?SetInstanceQualifier@CInstancePart@@QEAAJPEBGJPEAVCTypedValue@@@Z
; public: long __cdecl CInstancePart::SetInstanceQualifier(unsigned short const * __ptr64,class CVar * __ptr64,long) __ptr64
?SetInstanceQualifier@CInstancePart@@QEAAJPEBGPEAVCVar@@J@Z
; public: void __cdecl CFixedBSTRArray::SetLength(int) __ptr64
?SetLength@CFixedBSTRArray@@QEAAXH@Z
; public: void __cdecl CDecorationPart::SetLimited(void) __ptr64
?SetLimited@CDecorationPart@@QEAAXXZ
; public: void __cdecl CClassPart::SetLocalized(int) __ptr64
?SetLocalized@CClassPart@@QEAAXH@Z
; public: void __cdecl CInstancePart::SetLocalized(int) __ptr64
?SetLocalized@CInstancePart@@QEAAXH@Z
; public: virtual void __cdecl CWbemClass::SetLocalized(int) __ptr64
?SetLocalized@CWbemClass@@UEAAXH@Z
; public: virtual void __cdecl CWbemInstance::SetLocalized(int) __ptr64
?SetLocalized@CWbemInstance@@UEAAXH@Z
; public: long __cdecl CMethodPart::SetMethodOrigin(unsigned short const * __ptr64,long) __ptr64
?SetMethodOrigin@CMethodPart@@QEAAJPEBGJ@Z
; public: virtual long __cdecl CWbemClass::SetMethodOrigin(unsigned short const * __ptr64,long) __ptr64
?SetMethodOrigin@CWbemClass@@UEAAJPEBGJ@Z
; public: virtual long __cdecl CWbemInstance::SetMethodOrigin(unsigned short const * __ptr64,long) __ptr64
?SetMethodOrigin@CWbemInstance@@UEAAJPEBGJ@Z
; public: virtual long __cdecl CWbemObject::SetMethodQual(unsigned short const * __ptr64,unsigned short const * __ptr64,long,unsigned long,unsigned long,long,unsigned long,void * __ptr64) __ptr64
?SetMethodQual@CWbemObject@@UEAAJPEBG0JKKJKPEAX@Z
; public: virtual long __cdecl CWbemClass::SetMethodQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,long,class CTypedValue * __ptr64) __ptr64
?SetMethodQualifier@CWbemClass@@UEAAJPEBG0JPEAVCTypedValue@@@Z
; public: virtual long __cdecl CWbemClass::SetMethodQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,long,class CVar * __ptr64) __ptr64
?SetMethodQualifier@CWbemClass@@UEAAJPEBG0JPEAVCVar@@@Z
; public: virtual long __cdecl CWbemInstance::SetMethodQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,long,class CTypedValue * __ptr64) __ptr64
?SetMethodQualifier@CWbemInstance@@UEAAJPEBG0JPEAVCTypedValue@@@Z
; public: virtual long __cdecl CWbemInstance::SetMethodQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,long,class CVar * __ptr64) __ptr64
?SetMethodQualifier@CWbemInstance@@UEAAJPEBG0JPEAVCVar@@@Z
; public: void __cdecl CDataTable::SetNullness(int,int) __ptr64
?SetNullness@CDataTable@@QEAAXHH@Z
; public: virtual long __cdecl CWbemObject::SetObjQual(unsigned short const * __ptr64,long,unsigned long,unsigned long,long,unsigned long,void * __ptr64) __ptr64
?SetObjQual@CWbemObject@@UEAAJPEBGJKKJKPEAX@Z
; public: virtual long __cdecl CWbemObject::SetObjectFlags(long,unsigned __int64,unsigned __int64) __ptr64
?SetObjectFlags@CWbemObject@@UEAAJJ_K0@Z
; public: virtual long __cdecl CWbemObject::SetObjectMemory(void * __ptr64,unsigned long) __ptr64
?SetObjectMemory@CWbemObject@@UEAAJPEAXK@Z
; public: virtual long __cdecl CWbemClass::SetObjectParts(void * __ptr64,unsigned long,unsigned long) __ptr64
?SetObjectParts@CWbemClass@@UEAAJPEAXKK@Z
; public: virtual long __cdecl CWbemInstance::SetObjectParts(void * __ptr64,unsigned long,unsigned long) __ptr64
?SetObjectParts@CWbemInstance@@UEAAJPEAXKK@Z
; public: void __cdecl CWbemThreadSecurityHandle::SetOrigin(enum tag_WMI_THREAD_SECURITY_ORIGIN) __ptr64
?SetOrigin@CWbemThreadSecurityHandle@@QEAAXW4tag_WMI_THREAD_SECURITY_ORIGIN@@@Z
; public: virtual long __cdecl CWbemObject::SetPropByHandle(long,long,unsigned long,void * __ptr64) __ptr64
?SetPropByHandle@CWbemObject@@UEAAJJJKPEAX@Z
; public: virtual long __cdecl CWbemObject::SetPropQual(unsigned short const * __ptr64,unsigned short const * __ptr64,long,unsigned long,unsigned long,long,unsigned long,void * __ptr64) __ptr64
?SetPropQual@CWbemObject@@UEAAJPEBG0JKKJKPEAX@Z
; public: long __cdecl CClassPart::SetPropQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,long,class CTypedValue * __ptr64) __ptr64
?SetPropQualifier@CClassPart@@QEAAJPEBG0JPEAVCTypedValue@@@Z
; public: long __cdecl CClassPart::SetPropQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,long,class CVar * __ptr64) __ptr64
?SetPropQualifier@CClassPart@@QEAAJPEBG0JPEAVCVar@@@Z
; public: virtual long __cdecl CWbemClass::SetPropQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,long,class CTypedValue * __ptr64) __ptr64
?SetPropQualifier@CWbemClass@@UEAAJPEBG0JPEAVCTypedValue@@@Z
; public: virtual long __cdecl CWbemClass::SetPropQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,long,class CVar * __ptr64) __ptr64
?SetPropQualifier@CWbemClass@@UEAAJPEBG0JPEAVCVar@@@Z
; public: virtual long __cdecl CWbemInstance::SetPropQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,long,class CTypedValue * __ptr64) __ptr64
?SetPropQualifier@CWbemInstance@@UEAAJPEBG0JPEAVCTypedValue@@@Z
; public: virtual long __cdecl CWbemInstance::SetPropQualifier(unsigned short const * __ptr64,unsigned short const * __ptr64,long,class CVar * __ptr64) __ptr64
?SetPropQualifier@CWbemInstance@@UEAAJPEBG0JPEAVCVar@@@Z
; public: virtual long __cdecl CWbemClass::SetPropValue(unsigned short const * __ptr64,class CVar * __ptr64,long) __ptr64
?SetPropValue@CWbemClass@@UEAAJPEBGPEAVCVar@@J@Z
; public: virtual long __cdecl CWbemInstance::SetPropValue(unsigned short const * __ptr64,class CVar * __ptr64,long) __ptr64
?SetPropValue@CWbemInstance@@UEAAJPEBGPEAVCVar@@J@Z
; public: long __cdecl CClassPart::SetPropertyOrigin(unsigned short const * __ptr64,long) __ptr64
?SetPropertyOrigin@CClassPart@@QEAAJPEBGJ@Z
; public: virtual long __cdecl CWbemClass::SetPropertyOrigin(unsigned short const * __ptr64,long) __ptr64
?SetPropertyOrigin@CWbemClass@@UEAAJPEBGJ@Z
; public: virtual long __cdecl CWbemInstance::SetPropertyOrigin(unsigned short const * __ptr64,long) __ptr64
?SetPropertyOrigin@CWbemInstance@@UEAAJPEBGJ@Z
; public: virtual long __cdecl CWbemClass::SetQualifier(unsigned short const * __ptr64,long,class CTypedValue * __ptr64) __ptr64
?SetQualifier@CWbemClass@@UEAAJPEBGJPEAVCTypedValue@@@Z
; public: virtual long __cdecl CWbemClass::SetQualifier(unsigned short const * __ptr64,class CVar * __ptr64,long) __ptr64
?SetQualifier@CWbemClass@@UEAAJPEBGPEAVCVar@@J@Z
; public: virtual long __cdecl CWbemInstance::SetQualifier(unsigned short const * __ptr64,long,class CTypedValue * __ptr64) __ptr64
?SetQualifier@CWbemInstance@@UEAAJPEBGJPEAVCTypedValue@@@Z
; public: virtual long __cdecl CWbemInstance::SetQualifier(unsigned short const * __ptr64,class CVar * __ptr64,long) __ptr64
?SetQualifier@CWbemInstance@@UEAAJPEBGPEAVCVar@@J@Z
; public: long __cdecl CWbemObject::SetQualifierArrayRange(unsigned short const * __ptr64,unsigned short const * __ptr64,int,long,unsigned long,long,unsigned long,unsigned long,unsigned long,void * __ptr64) __ptr64
?SetQualifierArrayRange@CWbemObject@@QEAAJPEBG0HJKJKKKPEAX@Z
; public: long __cdecl CQualifierSet::SetQualifierValue(unsigned short const * __ptr64,unsigned char,class CTypedValue * __ptr64,int,int) __ptr64
?SetQualifierValue@CQualifierSet@@QEAAJPEBGEPEAVCTypedValue@@HH@Z
; public: static long __cdecl CUntypedArray::SetRange(class CPtrSource * __ptr64,long,unsigned long,unsigned long,class CFastHeap * __ptr64,unsigned long,unsigned long,unsigned long,void * __ptr64)
?SetRange@CUntypedArray@@SAJPEAVCPtrSource@@JKKPEAVCFastHeap@@KKKPEAX@Z
; public: void __cdecl CInstancePQSContainer::SetSecondarySetData(void) __ptr64
?SetSecondarySetData@CInstancePQSContainer@@QEAAXXZ
; public: virtual long __cdecl CWbemObject::SetServerNamespace(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?SetServerNamespace@CWbemObject@@UEAAJPEBG0@Z
; protected: virtual long __cdecl CWbemRefreshingSvc::SetServiceData(unsigned short * __ptr64,unsigned short * __ptr64) __ptr64
?SetServiceData@CWbemRefreshingSvc@@MEAAJPEAG0@Z
; public: virtual long __cdecl CWbemRefreshingSvc::XCfgRefrSrvc::SetServiceData(unsigned short * __ptr64,unsigned short * __ptr64) __ptr64
?SetServiceData@XCfgRefrSrvc@CWbemRefreshingSvc@@UEAAJPEAG0@Z
; public: void __cdecl CMethodDescription::SetSig(int,unsigned long) __ptr64
?SetSig@CMethodDescription@@QEAAXHK@Z
; protected: long __cdecl CMethodPart::SetSignature(int,enum METHOD_SIGNATURE_TYPE,class CWbemObject * __ptr64) __ptr64
?SetSignature@CMethodPart@@IEAAJHW4METHOD_SIGNATURE_TYPE@@PEAVCWbemObject@@@Z
; public: void __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::SetSize(int) __ptr64
?SetSize@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAAXH@Z
; public: void __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::SetSize(int) __ptr64
?SetSize@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAAXH@Z
; public: virtual long __cdecl CWbemCallSecurity::SetThreadSecurity(struct _IWmiThreadSecHandle * __ptr64) __ptr64
?SetThreadSecurity@CWbemCallSecurity@@UEAAJPEAU_IWmiThreadSecHandle@@@Z
; public: void __cdecl CFastHeap::SetUsedLength(unsigned long) __ptr64
?SetUsedLength@CFastHeap@@QEAAXK@Z
; public: void __cdecl CLimitationMapping::SetVtableLength(unsigned long,int) __ptr64
?SetVtableLength@CLimitationMapping@@QEAAXKH@Z
; protected: long __cdecl CWbemDataPacket::SetupDataPacketHeader(unsigned long,unsigned char,unsigned long,unsigned long) __ptr64
?SetupDataPacketHeader@CWbemDataPacket@@IEAAJKEKK@Z
; public: int __cdecl CLimitationMapping::ShouldAddChildKeys(void) __ptr64
?ShouldAddChildKeys@CLimitationMapping@@QEAAHXZ
; public: int __cdecl CLimitationMapping::ShouldIncludeDerivation(void) __ptr64
?ShouldIncludeDerivation@CLimitationMapping@@QEAAHXZ
; public: int __cdecl CLimitationMapping::ShouldIncludeNamespace(void) __ptr64
?ShouldIncludeNamespace@CLimitationMapping@@QEAAHXZ
; public: int __cdecl CLimitationMapping::ShouldIncludeServer(void) __ptr64
?ShouldIncludeServer@CLimitationMapping@@QEAAHXZ
; public: int __cdecl CFastPropertyBag::Size(void) __ptr64
?Size@CFastPropertyBag@@QEAAHXZ
; public: unsigned char * __ptr64 __cdecl CBasicQualifierSet::Skip(void) __ptr64
?Skip@CBasicQualifierSet@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CFastHeap::Skip(void) __ptr64
?Skip@CFastHeap@@QEAAPEAEXZ
; public: unsigned char * __ptr64 __cdecl CPropertyLookupTable::Skip(void) __ptr64
?Skip@CPropertyLookupTable@@QEAAPEAEXZ
; public: void __cdecl CFixedBSTRArray::SortInPlace(void) __ptr64
?SortInPlace@CFixedBSTRArray@@QEAAXXZ
; public: virtual long __cdecl CWbemClass::SpawnDerivedClass(long,struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?SpawnDerivedClass@CWbemClass@@UEAAJJPEAPEAUIWbemClassObject@@@Z
; public: virtual long __cdecl CWbemInstance::SpawnDerivedClass(long,struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?SpawnDerivedClass@CWbemInstance@@UEAAJJPEAPEAUIWbemClassObject@@@Z
; public: virtual long __cdecl CWbemClass::SpawnInstance(long,struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?SpawnInstance@CWbemClass@@UEAAJJPEAPEAUIWbemClassObject@@@Z
; public: virtual long __cdecl CWbemInstance::SpawnInstance(long,struct IWbemClassObject * __ptr64 * __ptr64) __ptr64
?SpawnInstance@CWbemInstance@@UEAAJJPEAPEAUIWbemClassObject@@@Z
; public: virtual long __cdecl CWbemClass::SpawnKeyedInstance(long,unsigned short const * __ptr64,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?SpawnKeyedInstance@CWbemClass@@UEAAJJPEBGPEAPEAU_IWmiObject@@@Z
; public: virtual long __cdecl CWbemInstance::SpawnKeyedInstance(long,unsigned short const * __ptr64,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?SpawnKeyedInstance@CWbemInstance@@UEAAJJPEBGPEAPEAU_IWmiObject@@@Z
; public: int __cdecl CCompressedString::StartsWithNoCase(unsigned short const * __ptr64)const  __ptr64
?StartsWithNoCase@CCompressedString@@QEBAHPEBG@Z
; public: virtual long __cdecl CWbemRemoteRefresher::XWbemRemoteRefr::StopRefreshing(long,long * __ptr64,long) __ptr64
?StopRefreshing@XWbemRemoteRefr@CWbemRemoteRefresher@@UEAAJJPEAJJ@Z
; public: void __cdecl CEmbeddedObject::StoreEmbedded(unsigned long,class CVar & __ptr64) __ptr64
?StoreEmbedded@CEmbeddedObject@@QEAAXKAEAVCVar@@@Z
; public: void __cdecl CEmbeddedObject::StoreEmbedded(unsigned long,class CWbemObject * __ptr64) __ptr64
?StoreEmbedded@CEmbeddedObject@@QEAAXKPEAVCWbemObject@@@Z
; protected: long __cdecl CQualifierSet::StoreQualifierConflicts(unsigned short const * __ptr64,class CVar & __ptr64,class CQualifierFlavor & __ptr64,class CVarVector & __ptr64) __ptr64
?StoreQualifierConflicts@CQualifierSet@@IEAAJPEBGAEAVCVar@@AEAVCQualifierFlavor@@AEAVCVarVector@@@Z
; public: int __cdecl CCompressedString::StoreToCVar(class CVar & __ptr64)const  __ptr64
?StoreToCVar@CCompressedString@@QEBAHAEAVCVar@@@Z
; public: void __cdecl CEmbeddedObject::StoreToCVar(class CVar & __ptr64) __ptr64
?StoreToCVar@CEmbeddedObject@@QEAAXAEAVCVar@@@Z
; public: virtual long __cdecl CWbemClass::StripClassPart(void) __ptr64
?StripClassPart@CWbemClass@@UEAAJXZ
; public: virtual long __cdecl CWbemInstance::StripClassPart(void) __ptr64
?StripClassPart@CWbemInstance@@UEAAJXZ
; public: void __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::Swap(int,int) __ptr64
?Swap@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAAXHH@Z
; public: void __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::Swap(int,int) __ptr64
?Swap@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAAXHH@Z
; public: long __cdecl CClassPart::TestCircularReference(unsigned short const * __ptr64) __ptr64
?TestCircularReference@CClassPart@@QEAAJPEBG@Z
; public: void __cdecl CFixedBSTRArray::ThreeWayMergeOrdered(class CFixedBSTRArray & __ptr64,class CFixedBSTRArray & __ptr64,class CFixedBSTRArray & __ptr64) __ptr64
?ThreeWayMergeOrdered@CFixedBSTRArray@@QEAAXAEAV1@00@Z
; public: static int __cdecl CBasicQualifierSet::TranslateToNewHeap(class CPtrSource * __ptr64,class CFastHeap * __ptr64,class CFastHeap * __ptr64)
?TranslateToNewHeap@CBasicQualifierSet@@SAHPEAVCPtrSource@@PEAVCFastHeap@@1@Z
; public: int __cdecl CCompressedString::TranslateToNewHeap(class CFastHeap * __ptr64,class CFastHeap * __ptr64) __ptr64
?TranslateToNewHeap@CCompressedString@@QEAAHPEAVCFastHeap@@0@Z
; public: int __cdecl CDataTable::TranslateToNewHeap(class CPropertyLookupTable * __ptr64,int,class CFastHeap * __ptr64,class CFastHeap * __ptr64) __ptr64
?TranslateToNewHeap@CDataTable@@QEAAHPEAVCPropertyLookupTable@@HPEAVCFastHeap@@1@Z
; public: int __cdecl CInstancePart::TranslateToNewHeap(class CClassPart & __ptr64,class CFastHeap * __ptr64,class CFastHeap * __ptr64) __ptr64
?TranslateToNewHeap@CInstancePart@@QEAAHAEAVCClassPart@@PEAVCFastHeap@@1@Z
; public: int __cdecl CQualifierSetList::TranslateToNewHeap(class CFastHeap * __ptr64,class CFastHeap * __ptr64) __ptr64
?TranslateToNewHeap@CQualifierSetList@@QEAAHPEAVCFastHeap@@0@Z
; public: static int __cdecl CUntypedArray::TranslateToNewHeap(class CPtrSource * __ptr64,class CType,class CFastHeap * __ptr64,class CFastHeap * __ptr64)
?TranslateToNewHeap@CUntypedArray@@SAHPEAVCPtrSource@@VCType@@PEAVCFastHeap@@2@Z
; public: void __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::Trim(void) __ptr64
?Trim@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAAXXZ
; public: void __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::Trim(void) __ptr64
?Trim@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAAXXZ
; public: void __cdecl CFastHeap::Trim(void) __ptr64
?Trim@CFastHeap@@QEAAXXZ
; public: void __cdecl CInternalString::Unbind(void) __ptr64
?Unbind@CInternalString@@QEAAXXZ
; public: class CFastPropertyBagItem * __ptr64 * __ptr64 __cdecl CPointerArray<class CFastPropertyBagItem,class CReferenceManager<class CFastPropertyBagItem>,class CFlexArray>::UnbindPtr(void) __ptr64
?UnbindPtr@?$CPointerArray@VCFastPropertyBagItem@@V?$CReferenceManager@VCFastPropertyBagItem@@@@VCFlexArray@@@@QEAAPEAPEAVCFastPropertyBagItem@@XZ
; public: class CWmiTextSource * __ptr64 * __ptr64 __cdecl CPointerArray<class CWmiTextSource,class CReferenceManager<class CWmiTextSource>,class CFlexArray>::UnbindPtr(void) __ptr64
?UnbindPtr@?$CPointerArray@VCWmiTextSource@@V?$CReferenceManager@VCWmiTextSource@@@@VCFlexArray@@@@QEAAPEAPEAVCWmiTextSource@@XZ
; public: virtual void __cdecl CWbemClass::Undecorate(void) __ptr64
?Undecorate@CWbemClass@@UEAAXXZ
; public: virtual void __cdecl CWbemInstance::Undecorate(void) __ptr64
?Undecorate@CWbemInstance@@UEAAXXZ
; public: long __cdecl CWbemFetchRefrMgr::Uninit(void) __ptr64
?Uninit@CWbemFetchRefrMgr@@QEAAJXZ
; public: virtual long __cdecl CWbemFetchRefrMgr::XFetchRefrMgr::Uninit(void) __ptr64
?Uninit@XFetchRefrMgr@CWbemFetchRefrMgr@@UEAAJXZ
; public: int __cdecl CHiPerfLock::Unlock(void) __ptr64
?Unlock@CHiPerfLock@@QEAAHXZ
; public: int __cdecl CSharedLock::Unlock(void) __ptr64
?Unlock@CSharedLock@@QEAAHXZ
; public: virtual long __cdecl CWbemObject::Unlock(long) __ptr64
?Unlock@CWbemObject@@UEAAJJ@Z
; public: virtual long __cdecl CWbemObject::UnmarshalInterface(struct IStream * __ptr64,struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?UnmarshalInterface@CWbemObject@@UEAAJPEAUIStream@@AEBU_GUID@@PEAPEAX@Z
; public: long __cdecl CWbemMtgtDeliverEventPacket::UnmarshalPacket(long & __ptr64,struct IWbemClassObject * __ptr64 * __ptr64 & __ptr64,class CWbemClassCache & __ptr64) __ptr64
?UnmarshalPacket@CWbemMtgtDeliverEventPacket@@QEAAJAEAJAEAPEAPEAUIWbemClassObject@@AEAVCWbemClassCache@@@Z
; public: long __cdecl CWbemObjectArrayPacket::UnmarshalPacket(long & __ptr64,struct IWbemClassObject * __ptr64 * __ptr64 & __ptr64,class CWbemClassCache & __ptr64) __ptr64
?UnmarshalPacket@CWbemObjectArrayPacket@@QEAAJAEAJAEAPEAPEAUIWbemClassObject@@AEAVCWbemClassCache@@@Z
; public: long __cdecl CWbemSmartEnumNextPacket::UnmarshalPacket(long & __ptr64,struct IWbemClassObject * __ptr64 * __ptr64 & __ptr64,class CWbemClassCache & __ptr64) __ptr64
?UnmarshalPacket@CWbemSmartEnumNextPacket@@QEAAJAEAJAEAPEAPEAUIWbemClassObject@@AEAVCWbemClassCache@@@Z
; public: static unsigned char * __ptr64 __cdecl CBasicQualifierSet::Unmerge(unsigned char * __ptr64,class CFastHeap * __ptr64,unsigned char * __ptr64,class CFastHeap * __ptr64)
?Unmerge@CBasicQualifierSet@@SAPEAEPEAEPEAVCFastHeap@@01@Z
; public: unsigned char * __ptr64 __cdecl CClassAndMethods::Unmerge(unsigned char * __ptr64,unsigned long) __ptr64
?Unmerge@CClassAndMethods@@QEAAPEAEPEAEK@Z
; public: unsigned char * __ptr64 __cdecl CClassPart::Unmerge(unsigned char * __ptr64,int) __ptr64
?Unmerge@CClassPart@@QEAAPEAEPEAEH@Z
; public: unsigned char * __ptr64 __cdecl CDataTable::Unmerge(class CPropertyLookupTable * __ptr64,class CFastHeap * __ptr64,unsigned char * __ptr64,class CFastHeap * __ptr64) __ptr64
?Unmerge@CDataTable@@QEAAPEAEPEAVCPropertyLookupTable@@PEAVCFastHeap@@PEAE1@Z
; public: unsigned char * __ptr64 __cdecl CDerivationList::Unmerge(unsigned char * __ptr64) __ptr64
?Unmerge@CDerivationList@@QEAAPEAEPEAE@Z
; public: unsigned char * __ptr64 __cdecl CMethodPart::Unmerge(unsigned char * __ptr64,unsigned long) __ptr64
?Unmerge@CMethodPart@@QEAAPEAEPEAEK@Z
; public: unsigned char * __ptr64 __cdecl CPropertyLookupTable::Unmerge(class CDataTable * __ptr64,class CFastHeap * __ptr64,unsigned char * __ptr64,class CFastHeap * __ptr64) __ptr64
?Unmerge@CPropertyLookupTable@@QEAAPEAEPEAVCDataTable@@PEAVCFastHeap@@PEAE1@Z
; public: virtual long __cdecl CWbemClass::Unmerge(unsigned char * __ptr64,int,unsigned long * __ptr64) __ptr64
?Unmerge@CWbemClass@@UEAAJPEAEHPEAK@Z
; public: virtual long __cdecl CWbemInstance::Unmerge(unsigned char * __ptr64,int,unsigned long * __ptr64) __ptr64
?Unmerge@CWbemInstance@@UEAAJPEAEHPEAK@Z
; public: unsigned long __cdecl CWbemObject::Unmerge(unsigned char * __ptr64 * __ptr64) __ptr64
?Unmerge@CWbemObject@@QEAAKPEAPEAE@Z
; public: virtual long __cdecl CWbemObject::Unmerge(long,unsigned long,unsigned long * __ptr64,void * __ptr64) __ptr64
?Unmerge@CWbemObject@@UEAAJJKPEAKPEAX@Z
; public: static long __cdecl CClassAndMethods::Update(class CClassAndMethods & __ptr64,class CClassAndMethods & __ptr64,long)
?Update@CClassAndMethods@@SAJAEAV1@0J@Z
; public: static long __cdecl CClassPart::Update(class CClassPart & __ptr64,class CClassPart & __ptr64,long)
?Update@CClassPart@@SAJAEAV1@0J@Z
; public: static long __cdecl CMethodPart::Update(class CMethodPart & __ptr64,class CMethodPart & __ptr64,long)
?Update@CMethodPart@@SAJAEAV1@0J@Z
; public: long __cdecl CQualifierSet::Update(class CBasicQualifierSet & __ptr64,long,class CFixedBSTRArray * __ptr64) __ptr64
?Update@CQualifierSet@@QEAAJAEAVCBasicQualifierSet@@JPEAVCFixedBSTRArray@@@Z
; public: long __cdecl CWbemClass::Update(class CWbemClass * __ptr64,long,class CWbemClass * __ptr64 * __ptr64) __ptr64
?Update@CWbemClass@@QEAAJPEAV1@JPEAPEAV1@@Z
; public: virtual long __cdecl CWbemClass::Update(struct _IWmiObject * __ptr64,long,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?Update@CWbemClass@@UEAAJPEAU_IWmiObject@@JPEAPEAU2@@Z
; public: virtual long __cdecl CWbemInstance::Update(struct _IWmiObject * __ptr64,long,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?Update@CWbemInstance@@UEAAJPEAU_IWmiObject@@JPEAPEAU2@@Z
; public: static long __cdecl CClassPart::UpdateProperties(class CClassPart & __ptr64,class CClassPart & __ptr64,long)
?UpdateProperties@CClassPart@@SAJAEAV1@0J@Z
; public: virtual long __cdecl CWbemClass::Upgrade(struct _IWmiObject * __ptr64,long,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?Upgrade@CWbemClass@@UEAAJPEAU_IWmiObject@@JPEAPEAU2@@Z
; public: virtual long __cdecl CWbemInstance::Upgrade(struct _IWmiObject * __ptr64,long,struct _IWmiObject * __ptr64 * __ptr64) __ptr64
?Upgrade@CWbemInstance@@UEAAJPEAU_IWmiObject@@JPEAPEAU2@@Z
; protected: static char __cdecl CCompressedString::UpperByte(unsigned short)
?UpperByte@CCompressedString@@KADG@Z
; public: static class CType  __cdecl CType::VARTYPEToType(unsigned short)
?VARTYPEToType@CType@@SA?AV1@G@Z
; public: long __cdecl CWbemInstance::Validate(void) __ptr64
?Validate@CWbemInstance@@QEAAJXZ
; public: static unsigned __int64 __cdecl CBasicQualifierSet::ValidateBuffer(unsigned char * __ptr64,unsigned __int64)
?ValidateBuffer@CBasicQualifierSet@@SA_KPEAE_K@Z
; public: static unsigned __int64 __cdecl CClassAndMethods::ValidateBuffer(unsigned char * __ptr64,unsigned __int64)
?ValidateBuffer@CClassAndMethods@@SA_KPEAE_K@Z
; public: static unsigned __int64 __cdecl CClassPart::ValidateBuffer(unsigned char * __ptr64,unsigned __int64)
?ValidateBuffer@CClassPart@@SA_KPEAE_K@Z
; public: static unsigned __int64 __cdecl CCompressedStringList::ValidateBuffer(unsigned char * __ptr64,unsigned __int64)
?ValidateBuffer@CCompressedStringList@@SA_KPEAE_K@Z
; public: static unsigned __int64 __cdecl CDataTable::ValidateBuffer(unsigned char * __ptr64,unsigned __int64,int)
?ValidateBuffer@CDataTable@@SA_KPEAE_KH@Z
; public: static unsigned __int64 __cdecl CDecorationPart::ValidateBuffer(unsigned char * __ptr64,unsigned __int64)
?ValidateBuffer@CDecorationPart@@SA_KPEAE_K@Z
; public: static void __cdecl CEmbeddedObject::ValidateBuffer(unsigned char * __ptr64,unsigned __int64,class std::vector<struct EmbeddedObj,class wbem_allocator<struct EmbeddedObj> > & __ptr64)
?ValidateBuffer@CEmbeddedObject@@SAXPEAE_KAEAV?$vector@UEmbeddedObj@@V?$wbem_allocator@UEmbeddedObj@@@@@std@@@Z
; public: static unsigned __int64 __cdecl CFastHeap::ValidateBuffer(unsigned char * __ptr64,unsigned __int64)
?ValidateBuffer@CFastHeap@@SA_KPEAE_K@Z
; public: static unsigned __int64 __cdecl CInstancePart::ValidateBuffer(unsigned char * __ptr64,unsigned __int64,class CClassPart & __ptr64,class std::vector<struct EmbeddedObj,class wbem_allocator<struct EmbeddedObj> > & __ptr64)
?ValidateBuffer@CInstancePart@@SA_KPEAE_KAEAVCClassPart@@AEAV?$vector@UEmbeddedObj@@V?$wbem_allocator@UEmbeddedObj@@@@@std@@@Z
; public: static unsigned __int64 __cdecl CMethodPart::ValidateBuffer(unsigned char * __ptr64,unsigned __int64)
?ValidateBuffer@CMethodPart@@SA_KPEAE_K@Z
; public: static unsigned __int64 __cdecl CPropertyLookupTable::ValidateBuffer(unsigned char * __ptr64,unsigned __int64)
?ValidateBuffer@CPropertyLookupTable@@SA_KPEAE_K@Z
; public: static unsigned __int64 __cdecl CQualifierSetList::ValidateBuffer(unsigned char * __ptr64,unsigned __int64,int)
?ValidateBuffer@CQualifierSetList@@SA_KPEAE_KH@Z
; public: static unsigned __int64 __cdecl CWbemClass::ValidateBuffer(unsigned char * __ptr64,unsigned __int64)
?ValidateBuffer@CWbemClass@@SA_KPEAE_K@Z
; public: static unsigned __int64 __cdecl CWbemInstance::ValidateBuffer(unsigned char * __ptr64,int,unsigned long,class std::vector<struct EmbeddedObj,class wbem_allocator<struct EmbeddedObj> > & __ptr64)
?ValidateBuffer@CWbemInstance@@SA_KPEAEHKAEAV?$vector@UEmbeddedObj@@V?$wbem_allocator@UEmbeddedObj@@@@@std@@@Z
; public: static unsigned __int64 __cdecl CWbemInstance::ValidateBuffer(unsigned char * __ptr64,int,class CWbemInstance * __ptr64,class std::vector<struct EmbeddedObj,class wbem_allocator<struct EmbeddedObj> > & __ptr64)
?ValidateBuffer@CWbemInstance@@SA_KPEAEHPEAV1@AEAV?$vector@UEmbeddedObj@@V?$wbem_allocator@UEmbeddedObj@@@@@std@@@Z
; public: static unsigned __int64 __cdecl CWbemInstance::ValidateBuffer(unsigned char * __ptr64,unsigned __int64,class std::vector<struct EmbeddedObj,class wbem_allocator<struct EmbeddedObj> > & __ptr64)
?ValidateBuffer@CWbemInstance@@SA_KPEAE_KAEAV?$vector@UEmbeddedObj@@V?$wbem_allocator@UEmbeddedObj@@@@@std@@@Z
; public: long __cdecl CLimitationMapping::ValidateInstance(class CWbemInstance * __ptr64) __ptr64
?ValidateInstance@CLimitationMapping@@QEAAJPEAVCWbemInstance@@@Z
; public: virtual long __cdecl CWbemObject::ValidateObject(long) __ptr64
?ValidateObject@CWbemObject@@UEAAJJ@Z
; protected: long __cdecl CMethodPart::ValidateOutParams(class CWbemObject * __ptr64) __ptr64
?ValidateOutParams@CMethodPart@@IEAAJPEAVCWbemObject@@@Z
; public: long __cdecl CWbemObject::ValidatePath(struct ParsedObjectPath * __ptr64) __ptr64
?ValidatePath@CWbemObject@@QEAAJPEAUParsedObjectPath@@@Z
; public: long __cdecl CPropertyLookupTable::ValidateRange(unsigned short * __ptr64 * __ptr64,class CDataTable * __ptr64,class CFastHeap * __ptr64) __ptr64
?ValidateRange@CPropertyLookupTable@@QEAAJPEAPEAGPEAVCDataTable@@PEAVCFastHeap@@@Z
; public: int __cdecl CWbemObject::ValidateRange(unsigned short * __ptr64 * __ptr64) __ptr64
?ValidateRange@CWbemObject@@QEAAHPEAPEAG@Z
; public: long __cdecl CQualifierSet::ValidateSet(unsigned short const * __ptr64,unsigned char,class CTypedValue * __ptr64,int,int) __ptr64
?ValidateSet@CQualifierSet@@QEAAJPEBGEPEAVCTypedValue@@HH@Z
; public: int __cdecl CCompressedString::ValidateSize(int)const  __ptr64
?ValidateSize@CCompressedString@@QEBAHH@Z
; public: static long __cdecl CWbemObject::WbemObjectFromCOMPtr(struct IUnknown * __ptr64,class CWbemObject * __ptr64 * __ptr64)
?WbemObjectFromCOMPtr@CWbemObject@@SAJPEAUIUnknown@@PEAPEAV1@@Z
; unsigned short * __ptr64 __cdecl WbemStringCopy(unsigned short const * __ptr64)
?WbemStringCopy@@YAPEAGPEBG@Z
; void __cdecl WbemStringFree(unsigned short * __ptr64)
?WbemStringFree@@YAXPEAG@Z
; protected: long __cdecl CWbemRefreshingSvc::WrapRemoteRefresher(struct IWbemRemoteRefresher * __ptr64 * __ptr64) __ptr64
?WrapRemoteRefresher@CWbemRefreshingSvc@@IEAAJPEAPEAUIWbemRemoteRefresher@@@Z
; public: virtual long __cdecl CWbemObject::WriteDWORD(long,unsigned long) __ptr64
?WriteDWORD@CWbemObject@@UEAAJJK@Z
; public: long __cdecl CWbemClass::WriteDerivedClass(unsigned char * __ptr64,int,class CDecorationPart * __ptr64) __ptr64
?WriteDerivedClass@CWbemClass@@QEAAJPEAEHPEAVCDecorationPart@@@Z
; public: virtual long __cdecl CWbemObject::WriteProp(unsigned short const * __ptr64,long,unsigned long,unsigned long,long,void * __ptr64) __ptr64
?WriteProp@CWbemObject@@UEAAJPEBGJKKJPEAX@Z
; public: static unsigned char * __ptr64 __cdecl CBasicQualifierSet::WritePropagatedVersion(class CPtrSource * __ptr64,unsigned char,class CPtrSource * __ptr64,class CFastHeap * __ptr64,class CFastHeap * __ptr64)
?WritePropagatedVersion@CBasicQualifierSet@@SAPEAEPEAVCPtrSource@@E0PEAVCFastHeap@@1@Z
; public: unsigned char * __ptr64 __cdecl CDataTable::WritePropagatedVersion(class CPropertyLookupTable * __ptr64,class CFastHeap * __ptr64,unsigned char * __ptr64,class CFastHeap * __ptr64) __ptr64
?WritePropagatedVersion@CDataTable@@QEAAPEAEPEAVCPropertyLookupTable@@PEAVCFastHeap@@PEAE1@Z
; public: unsigned char * __ptr64 __cdecl CPropertyLookupTable::WritePropagatedVersion(class CFastHeap * __ptr64,unsigned char * __ptr64,class CFastHeap * __ptr64) __ptr64
?WritePropagatedVersion@CPropertyLookupTable@@QEAAPEAEPEAVCFastHeap@@PEAE0@Z
; public: long __cdecl CWbemClass::WritePropertyAsMethodParam(class WString & __ptr64,int,long,class CWbemClass * __ptr64,int) __ptr64
?WritePropertyAsMethodParam@CWbemClass@@QEAAJAEAVWString@@HJPEAV1@H@Z
; public: virtual long __cdecl CWbemObject::WritePropertyValue(long,long,unsigned char const * __ptr64) __ptr64
?WritePropertyValue@CWbemObject@@UEAAJJJPEBE@Z
; public: virtual long __cdecl CWbemObject::WriteQWORD(long,unsigned __int64) __ptr64
?WriteQWORD@CWbemObject@@UEAAJJ_K@Z
; public: unsigned char * __ptr64 __cdecl CDataTable::WriteSmallerVersion(int,unsigned long,unsigned char * __ptr64) __ptr64
?WriteSmallerVersion@CDataTable@@QEAAPEAEHKPEAE@Z
; public: unsigned char * __ptr64 __cdecl CQualifierSetList::WriteSmallerVersion(int,unsigned char * __ptr64) __ptr64
?WriteSmallerVersion@CQualifierSetList@@QEAAPEAEHPEAE@Z
; public: virtual long __cdecl CWbemInstance::WriteToStream(struct IStream * __ptr64) __ptr64
?WriteToStream@CWbemInstance@@UEAAJPEAUIStream@@@Z
; public: virtual long __cdecl CWbemObject::WriteToStream(struct IStream * __ptr64) __ptr64
?WriteToStream@CWbemObject@@UEAAJPEAUIStream@@@Z
; public: static void __cdecl CWbemInstance::WriteTransferArrayHeader(long,unsigned char * __ptr64 * __ptr64)
?WriteTransferArrayHeader@CWbemInstance@@SAXJPEAPEAE@Z
; public: virtual long __cdecl CWbemObject::_GetCoreInfo(long,void * __ptr64 * __ptr64) __ptr64
?_GetCoreInfo@CWbemObject@@UEAAJJPEAPEAX@Z
; public: static unsigned short * __ptr64 __cdecl CCompressedString::fast_wcscpy(unsigned short * __ptr64,unsigned short const * __ptr64)
?fast_wcscpy@CCompressedString@@SAPEAGPEAGPEBG@Z
; public: static int __cdecl CCompressedString::fast_wcslen(unsigned short const * __ptr64)
?fast_wcslen@CCompressedString@@SAHPEBG@Z
; public: static unsigned short * __ptr64 __cdecl CCompressedString::fast_wcsncpy(unsigned short * __ptr64,unsigned short const * __ptr64,int)
?fast_wcsncpy@CCompressedString@@SAPEAGPEAGPEBGH@Z
; protected: static unsigned char *  CWbemDataPacket::s_abSignature
?s_abSignature@CWbemDataPacket@@1PAEA DATA
; private: static unsigned short const * __ptr64 *  CReservedWordTable::s_apwszReservedWords
?s_apwszReservedWords@CReservedWordTable@@0PAPEBGA DATA
; protected: static class CStaticCritSec  CWbemFetchRefrMgr::s_cs
?s_cs@CWbemFetchRefrMgr@@1VCStaticCritSec@@A DATA
; protected: static struct _IWbemRefresherMgr * __ptr64  __ptr64 CWbemFetchRefrMgr::s_pRefrMgr
?s_pRefrMgr@CWbemFetchRefrMgr@@1PEAU_IWbemRefresherMgr@@EA DATA
; private: static unsigned short const * __ptr64 const  __ptr64 CReservedWordTable::s_pszStartingCharsLCase
?s_pszStartingCharsLCase@CReservedWordTable@@0PEBGEB DATA
; private: static unsigned short const * __ptr64 const  __ptr64 CReservedWordTable::s_pszStartingCharsUCase
?s_pszStartingCharsUCase@CReservedWordTable@@0PEBGEB DATA
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer
GetObjectCount
