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