; 
; Exports of file MSDATL3.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY MSDATL3.dll
EXPORTS
DllMain
; protected: __cdecl CBaseObj::CBaseObj(enum EBaseObjectType,long * __ptr64) __ptr64
??0CBaseObj@@IEAA@W4EBaseObjectType@@PEAJ@Z
; protected: __cdecl CBaseObj::CBaseObj(enum EBaseObjectType,struct IUnknown * __ptr64,long * __ptr64) __ptr64
??0CBaseObj@@IEAA@W4EBaseObjectType@@PEAUIUnknown@@PEAJ@Z
; public: __cdecl CBaseObj::CBaseObj(class CBaseObj const & __ptr64) __ptr64
??0CBaseObj@@QEAA@AEBV0@@Z
; public: __cdecl CBaseObjBoko::CBaseObjBoko(class CBaseObjBoko const & __ptr64) __ptr64
??0CBaseObjBoko@@QEAA@AEBV0@@Z
; public: __cdecl CBaseObjBoko::CBaseObjBoko(enum EBaseObjectType,long * __ptr64) __ptr64
??0CBaseObjBoko@@QEAA@W4EBaseObjectType@@PEAJ@Z
; public: __cdecl CBaseObjZombie::CBaseObjZombie(class CBaseObjZombie const & __ptr64) __ptr64
??0CBaseObjZombie@@QEAA@AEBV0@@Z
; public: __cdecl CBaseObjZombie::CBaseObjZombie(enum EBaseObjectType,long * __ptr64) __ptr64
??0CBaseObjZombie@@QEAA@W4EBaseObjectType@@PEAJ@Z
; public: __cdecl CBitArray::CBitArray(void) __ptr64
??0CBitArray@@QEAA@XZ
; private: __cdecl CClassFactory::CClassFactory(void) __ptr64
??0CClassFactory@@AEAA@XZ
; public: __cdecl CClassFactory::CClassFactory(class CClassFactory const & __ptr64) __ptr64
??0CClassFactory@@QEAA@AEBV0@@Z
; public: __cdecl CClassFactory::CClassFactory(long * __ptr64,long * __ptr64) __ptr64
??0CClassFactory@@QEAA@PEAJ0@Z
; public: __cdecl CConnectData::CConnectData(void) __ptr64
??0CConnectData@@QEAA@XZ
; public: __cdecl CEnum::CEnum(struct IUnknown * __ptr64,unsigned long,void * __ptr64 * __ptr64,struct _GUID,unsigned __int64,unsigned long,enum CENUMTYPE) __ptr64
??0CEnum@@QEAA@PEAUIUnknown@@KPEAPEAXU_GUID@@_KKW4CENUMTYPE@@@Z
; public: __cdecl CEnumConnectionPoints::CEnumConnectionPoints(class CEnumConnectionPoints const & __ptr64) __ptr64
??0CEnumConnectionPoints@@QEAA@AEBV0@@Z
; public: __cdecl CEnumConnectionPoints::CEnumConnectionPoints(struct IUnknown * __ptr64,unsigned long,struct IConnectionPoint * __ptr64 * __ptr64) __ptr64
??0CEnumConnectionPoints@@QEAA@PEAUIUnknown@@KPEAPEAUIConnectionPoint@@@Z
; public: __cdecl CEnumConnections::CEnumConnections(class CEnumConnections const & __ptr64) __ptr64
??0CEnumConnections@@QEAA@AEBV0@@Z
; public: __cdecl CEnumConnections::CEnumConnections(struct IUnknown * __ptr64,struct tagCONNECTDATA * __ptr64,unsigned long) __ptr64
??0CEnumConnections@@QEAA@PEAUIUnknown@@PEAUtagCONNECTDATA@@K@Z
; public: __cdecl CExtBuffer::CExtBuffer(void) __ptr64
??0CExtBuffer@@QEAA@XZ
; public: __cdecl CGenericPooler::CGenericPooler(class CGenericPooler const & __ptr64) __ptr64
??0CGenericPooler@@QEAA@AEBV0@@Z
; public: __cdecl CGenericPooler::CGenericPooler(void) __ptr64
??0CGenericPooler@@QEAA@XZ
; public: __cdecl CHashTbl::CHashTbl(class CHashTbl const & __ptr64) __ptr64
??0CHashTbl@@QEAA@AEBV0@@Z
; public: __cdecl CHashTbl::CHashTbl(void) __ptr64
??0CHashTbl@@QEAA@XZ
; public: __cdecl CHashTblAggr::CHashTblAggr(class CHashTblAggr const & __ptr64) __ptr64
??0CHashTblAggr@@QEAA@AEBV0@@Z
; public: __cdecl CHashTblAggr::CHashTblAggr(void) __ptr64
??0CHashTblAggr@@QEAA@XZ
; public: __cdecl CHeapDispenser::CHeapDispenser(class CHeapDispenser const & __ptr64) __ptr64
??0CHeapDispenser@@QEAA@AEBV0@@Z
; public: __cdecl CHeapDispenser::CHeapDispenser(void) __ptr64
??0CHeapDispenser@@QEAA@XZ
; public: __cdecl CRowsetConnectionPoint::CRowsetConnectionPoint(class CRowsetConnectionPoint const & __ptr64) __ptr64
??0CRowsetConnectionPoint@@QEAA@AEBV0@@Z
; public: __cdecl CRowsetConnectionPoint::CRowsetConnectionPoint(struct IUnknown * __ptr64,struct _GUID const * __ptr64,unsigned long) __ptr64
??0CRowsetConnectionPoint@@QEAA@PEAUIUnknown@@PEBU_GUID@@K@Z
; public: __cdecl CRowsetConnectionPointContainer::CRowsetConnectionPointContainer(class CRowsetConnectionPointContainer const & __ptr64) __ptr64
??0CRowsetConnectionPointContainer@@QEAA@AEBV0@@Z
; public: __cdecl CRowsetConnectionPointContainer::CRowsetConnectionPointContainer(struct IUnknown * __ptr64) __ptr64
??0CRowsetConnectionPointContainer@@QEAA@PEAUIUnknown@@@Z
; public: __cdecl CSlotListLong::CSlotListLong(class CSlotListLong const & __ptr64) __ptr64
??0CSlotListLong@@QEAA@AEBV0@@Z
; public: __cdecl CSlotListLong::CSlotListLong(void) __ptr64
??0CSlotListLong@@QEAA@XZ
; public: __cdecl CSlotListShort::CSlotListShort(class CSlotListShort const & __ptr64) __ptr64
??0CSlotListShort@@QEAA@AEBV0@@Z
; public: __cdecl CSlotListShort::CSlotListShort(void) __ptr64
??0CSlotListShort@@QEAA@XZ
; public: __cdecl CUtlPropInfo::CUtlPropInfo(class CUtlPropInfo const & __ptr64) __ptr64
??0CUtlPropInfo@@QEAA@AEBV0@@Z
; public: __cdecl CUtlPropInfo::CUtlPropInfo(void) __ptr64
??0CUtlPropInfo@@QEAA@XZ
; public: __cdecl CUtlProps2::CUtlProps2(class CUtlProps2 const & __ptr64) __ptr64
??0CUtlProps2@@QEAA@AEBV0@@Z
; public: __cdecl CUtlProps2::CUtlProps2(unsigned long) __ptr64
??0CUtlProps2@@QEAA@K@Z
; public: __cdecl CUtlPropsFastLookup2::CUtlPropsFastLookup2(class CUtlPropsFastLookup2 const & __ptr64) __ptr64
??0CUtlPropsFastLookup2@@QEAA@AEBV0@@Z
; public: __cdecl CUtlPropsFastLookup2::CUtlPropsFastLookup2(unsigned long) __ptr64
??0CUtlPropsFastLookup2@@QEAA@K@Z
; public: __cdecl CVLHeap::CVLHeap(void) __ptr64
??0CVLHeap@@QEAA@XZ
; public: __cdecl CWString::CWString(class CWString const & __ptr64) __ptr64
??0CWString@@QEAA@AEBV0@@Z
; public: __cdecl CWString::CWString(unsigned short,int) __ptr64
??0CWString@@QEAA@GH@Z
; public: __cdecl CWString::CWString(char const * __ptr64) __ptr64
??0CWString@@QEAA@PEBD@Z
; public: __cdecl CWString::CWString(unsigned char const * __ptr64) __ptr64
??0CWString@@QEAA@PEBE@Z
; public: __cdecl CWString::CWString(unsigned short const * __ptr64) __ptr64
??0CWString@@QEAA@PEBG@Z
; public: __cdecl CWString::CWString(unsigned short const * __ptr64,int) __ptr64
??0CWString@@QEAA@PEBGH@Z
; public: __cdecl CWString::CWString(void) __ptr64
??0CWString@@QEAA@XZ
; public: __cdecl IBookmarkObj::IBookmarkObj(class IBookmarkObj const & __ptr64) __ptr64
??0IBookmarkObj@@QEAA@AEBV0@@Z
; public: __cdecl IBookmarkObj::IBookmarkObj(void) __ptr64
??0IBookmarkObj@@QEAA@XZ
; public: __cdecl IHashTbl::IHashTbl(class IHashTbl const & __ptr64) __ptr64
??0IHashTbl@@QEAA@AEBV0@@Z
; public: __cdecl IHashTbl::IHashTbl(void) __ptr64
??0IHashTbl@@QEAA@XZ
; public: __cdecl ISlotList::ISlotList(class ISlotList const & __ptr64) __ptr64
??0ISlotList@@QEAA@AEBV0@@Z
; public: __cdecl ISlotList::ISlotList(void) __ptr64
??0ISlotList@@QEAA@XZ
; public: virtual __cdecl CBaseObj::~CBaseObj(void) __ptr64
??1CBaseObj@@UEAA@XZ
; public: virtual __cdecl CBaseObjBoko::~CBaseObjBoko(void) __ptr64
??1CBaseObjBoko@@UEAA@XZ
; public: virtual __cdecl CBaseObjZombie::~CBaseObjZombie(void) __ptr64
??1CBaseObjZombie@@UEAA@XZ
; public: __cdecl CBitArray::~CBitArray(void) __ptr64
??1CBitArray@@QEAA@XZ
; public: __cdecl CClassFactory::~CClassFactory(void) __ptr64
??1CClassFactory@@QEAA@XZ
; public: __cdecl CConnectData::~CConnectData(void) __ptr64
??1CConnectData@@QEAA@XZ
; public: __cdecl CEnum::~CEnum(void) __ptr64
??1CEnum@@QEAA@XZ
; public: __cdecl CEnumConnectionPoints::~CEnumConnectionPoints(void) __ptr64
??1CEnumConnectionPoints@@QEAA@XZ
; public: __cdecl CEnumConnections::~CEnumConnections(void) __ptr64
??1CEnumConnections@@QEAA@XZ
; public: __cdecl CExtBuffer::~CExtBuffer(void) __ptr64
??1CExtBuffer@@QEAA@XZ
; public: virtual __cdecl CHashTbl::~CHashTbl(void) __ptr64
??1CHashTbl@@UEAA@XZ
; public: virtual __cdecl CHashTblAggr::~CHashTblAggr(void) __ptr64
??1CHashTblAggr@@UEAA@XZ
; public: __cdecl CRowsetConnectionPoint::~CRowsetConnectionPoint(void) __ptr64
??1CRowsetConnectionPoint@@QEAA@XZ
; public: __cdecl CRowsetConnectionPointContainer::~CRowsetConnectionPointContainer(void) __ptr64
??1CRowsetConnectionPointContainer@@QEAA@XZ
; public: virtual __cdecl CSlotListLong::~CSlotListLong(void) __ptr64
??1CSlotListLong@@UEAA@XZ
; public: virtual __cdecl CSlotListShort::~CSlotListShort(void) __ptr64
??1CSlotListShort@@UEAA@XZ
; public: virtual __cdecl CUtlPropInfo::~CUtlPropInfo(void) __ptr64
??1CUtlPropInfo@@UEAA@XZ
; public: virtual __cdecl CUtlProps2::~CUtlProps2(void) __ptr64
??1CUtlProps2@@UEAA@XZ
; public: virtual __cdecl CUtlPropsFastLookup2::~CUtlPropsFastLookup2(void) __ptr64
??1CUtlPropsFastLookup2@@UEAA@XZ
; public: __cdecl CVLHeap::~CVLHeap(void) __ptr64
??1CVLHeap@@QEAA@XZ
; public: __cdecl CWString::~CWString(void) __ptr64
??1CWString@@QEAA@XZ
; public: virtual __cdecl IBookmarkObj::~IBookmarkObj(void) __ptr64
??1IBookmarkObj@@UEAA@XZ
; public: virtual __cdecl IHashTbl::~IHashTbl(void) __ptr64
??1IHashTbl@@UEAA@XZ
; public: virtual __cdecl ISlotList::~ISlotList(void) __ptr64
??1ISlotList@@UEAA@XZ
; public: class CBaseObj & __ptr64 __cdecl CBaseObj::operator=(class CBaseObj const & __ptr64) __ptr64
??4CBaseObj@@QEAAAEAV0@AEBV0@@Z
; public: class CBaseObjBoko & __ptr64 __cdecl CBaseObjBoko::operator=(class CBaseObjBoko const & __ptr64) __ptr64
??4CBaseObjBoko@@QEAAAEAV0@AEBV0@@Z
; public: class CBaseObjZombie & __ptr64 __cdecl CBaseObjZombie::operator=(class CBaseObjZombie const & __ptr64) __ptr64
??4CBaseObjZombie@@QEAAAEAV0@AEBV0@@Z
; public: class CBitArray & __ptr64 __cdecl CBitArray::operator=(class CBitArray const & __ptr64) __ptr64
??4CBitArray@@QEAAAEAV0@AEBV0@@Z
; public: class CClassFactory & __ptr64 __cdecl CClassFactory::operator=(class CClassFactory const & __ptr64) __ptr64
??4CClassFactory@@QEAAAEAV0@AEBV0@@Z
; public: class CConnectData & __ptr64 __cdecl CConnectData::operator=(class CConnectData const & __ptr64) __ptr64
??4CConnectData@@QEAAAEAV0@AEBV0@@Z
; public: class CEnum & __ptr64 __cdecl CEnum::operator=(class CEnum const & __ptr64) __ptr64
??4CEnum@@QEAAAEAV0@AEBV0@@Z
; public: class CEnumConnectionPoints & __ptr64 __cdecl CEnumConnectionPoints::operator=(class CEnumConnectionPoints const & __ptr64) __ptr64
??4CEnumConnectionPoints@@QEAAAEAV0@AEBV0@@Z
; public: class CEnumConnections & __ptr64 __cdecl CEnumConnections::operator=(class CEnumConnections const & __ptr64) __ptr64
??4CEnumConnections@@QEAAAEAV0@AEBV0@@Z
; public: class CExtBuffer & __ptr64 __cdecl CExtBuffer::operator=(class CExtBuffer const & __ptr64) __ptr64
??4CExtBuffer@@QEAAAEAV0@AEBV0@@Z
; public: class CGenericPooler & __ptr64 __cdecl CGenericPooler::operator=(class CGenericPooler const & __ptr64) __ptr64
??4CGenericPooler@@QEAAAEAV0@AEBV0@@Z
; public: class CHashTbl & __ptr64 __cdecl CHashTbl::operator=(class CHashTbl const & __ptr64) __ptr64
??4CHashTbl@@QEAAAEAV0@AEBV0@@Z
; public: class CHashTblAggr & __ptr64 __cdecl CHashTblAggr::operator=(class CHashTblAggr const & __ptr64) __ptr64
??4CHashTblAggr@@QEAAAEAV0@AEBV0@@Z
; public: class CHeapDispenser & __ptr64 __cdecl CHeapDispenser::operator=(class CHeapDispenser const & __ptr64) __ptr64
??4CHeapDispenser@@QEAAAEAV0@AEBV0@@Z
; public: class CRowsetConnectionPoint & __ptr64 __cdecl CRowsetConnectionPoint::operator=(class CRowsetConnectionPoint const & __ptr64) __ptr64
??4CRowsetConnectionPoint@@QEAAAEAV0@AEBV0@@Z
; public: class CRowsetConnectionPointContainer & __ptr64 __cdecl CRowsetConnectionPointContainer::operator=(class CRowsetConnectionPointContainer const & __ptr64) __ptr64
??4CRowsetConnectionPointContainer@@QEAAAEAV0@AEBV0@@Z
; public: class CSlotListLong & __ptr64 __cdecl CSlotListLong::operator=(class CSlotListLong const & __ptr64) __ptr64
??4CSlotListLong@@QEAAAEAV0@AEBV0@@Z
; public: class CSlotListShort & __ptr64 __cdecl CSlotListShort::operator=(class CSlotListShort const & __ptr64) __ptr64
??4CSlotListShort@@QEAAAEAV0@AEBV0@@Z
; public: class CUtlPropInfo & __ptr64 __cdecl CUtlPropInfo::operator=(class CUtlPropInfo const & __ptr64) __ptr64
??4CUtlPropInfo@@QEAAAEAV0@AEBV0@@Z
; public: class CUtlProps2 & __ptr64 __cdecl CUtlProps2::operator=(class CUtlProps2 const & __ptr64) __ptr64
??4CUtlProps2@@QEAAAEAV0@AEBV0@@Z
; public: class CUtlPropsFastLookup2 & __ptr64 __cdecl CUtlPropsFastLookup2::operator=(class CUtlPropsFastLookup2 const & __ptr64) __ptr64
??4CUtlPropsFastLookup2@@QEAAAEAV0@AEBV0@@Z
; public: class CVLHeap & __ptr64 __cdecl CVLHeap::operator=(class CVLHeap const & __ptr64) __ptr64
??4CVLHeap@@QEAAAEAV0@AEBV0@@Z
; public: class CWString const & __ptr64 __cdecl CWString::operator=(class CWString const & __ptr64) __ptr64
??4CWString@@QEAAAEBV0@AEBV0@@Z
; public: class CWString const & __ptr64 __cdecl CWString::operator=(char) __ptr64
??4CWString@@QEAAAEBV0@D@Z
; public: class CWString const & __ptr64 __cdecl CWString::operator=(unsigned short) __ptr64
??4CWString@@QEAAAEBV0@G@Z
; public: class CWString const & __ptr64 __cdecl CWString::operator=(char const * __ptr64) __ptr64
??4CWString@@QEAAAEBV0@PEBD@Z
; public: class CWString const & __ptr64 __cdecl CWString::operator=(unsigned char const * __ptr64) __ptr64
??4CWString@@QEAAAEBV0@PEBE@Z
; public: class CWString const & __ptr64 __cdecl CWString::operator=(unsigned short const * __ptr64) __ptr64
??4CWString@@QEAAAEBV0@PEBG@Z
; public: class IBookmarkObj & __ptr64 __cdecl IBookmarkObj::operator=(class IBookmarkObj const & __ptr64) __ptr64
??4IBookmarkObj@@QEAAAEAV0@AEBV0@@Z
; public: class IHashTbl & __ptr64 __cdecl IHashTbl::operator=(class IHashTbl const & __ptr64) __ptr64
??4IHashTbl@@QEAAAEAV0@AEBV0@@Z
; public: class ISlotList & __ptr64 __cdecl ISlotList::operator=(class ISlotList const & __ptr64) __ptr64
??4ISlotList@@QEAAAEAV0@AEBV0@@Z
; public: unsigned short __cdecl CWString::operator[](int)const  __ptr64
??ACWString@@QEBAGH@Z
; public: __cdecl CWString::operator unsigned short const * __ptr64(void)const  __ptr64
??BCWString@@QEBAPEBGXZ
; public: class CWString const & __ptr64 __cdecl CWString::operator+=(class CWString const & __ptr64) __ptr64
??YCWString@@QEAAAEBV0@AEBV0@@Z
; public: class CWString const & __ptr64 __cdecl CWString::operator+=(char) __ptr64
??YCWString@@QEAAAEBV0@D@Z
; public: class CWString const & __ptr64 __cdecl CWString::operator+=(unsigned short) __ptr64
??YCWString@@QEAAAEBV0@G@Z
; public: class CWString const & __ptr64 __cdecl CWString::operator+=(unsigned short const * __ptr64) __ptr64
??YCWString@@QEAAAEBV0@PEBG@Z
; const  CBaseObj::`vftable'
??_7CBaseObj@@6B@
; const  CBaseObjBoko::`vftable'
??_7CBaseObjBoko@@6B@
; const  CBaseObjZombie::`vftable'
??_7CBaseObjZombie@@6B@
; const  CClassFactory::`vftable'
??_7CClassFactory@@6B@
; const  CEnumConnectionPoints::`vftable'
??_7CEnumConnectionPoints@@6B@
; const  CEnumConnections::`vftable'
??_7CEnumConnections@@6B@
; const  CHashTbl::`vftable'
??_7CHashTbl@@6B@
; const  CHashTblAggr::`vftable'
??_7CHashTblAggr@@6B@
; const  CHeapDispenser::`vftable'
??_7CHeapDispenser@@6B@
; const  CRowsetConnectionPoint::`vftable'
??_7CRowsetConnectionPoint@@6B@
; const  CRowsetConnectionPointContainer::`vftable'
??_7CRowsetConnectionPointContainer@@6B@
; const  CSlotListLong::`vftable'
??_7CSlotListLong@@6B@
; const  CSlotListShort::`vftable'
??_7CSlotListShort@@6B@
; const  CUtlPropInfo::`vftable'
??_7CUtlPropInfo@@6B@
; const  CUtlProps2::`vftable'
??_7CUtlProps2@@6B@
; const  CUtlPropsFastLookup2::`vftable'
??_7CUtlPropsFastLookup2@@6B@
; const  IBookmarkObj::`vftable'
??_7IBookmarkObj@@6B@
; const  IHashTbl::`vftable'
??_7IHashTbl@@6B@
; const  ISlotList::`vftable'
??_7ISlotList@@6B@
; public: void __cdecl CUtlProps2::`default constructor closure'(void) __ptr64
??_FCUtlProps2@@QEAAXXZ
; public: void __cdecl CUtlPropsFastLookup2::`default constructor closure'(void) __ptr64
??_FCUtlPropsFastLookup2@@QEAAXXZ
; public: int __cdecl CHashTblAggr::AddHashTbl(class CSlotListShort * __ptr64) __ptr64
?AddHashTbl@CHashTblAggr@@QEAAHPEAVCSlotListShort@@@Z
; public: void __cdecl CUtlProps2::AddInternalFlags(unsigned long,unsigned long,unsigned long) __ptr64
?AddInternalFlags@CUtlProps2@@QEAAXKKK@Z
; public: virtual unsigned long __cdecl CClassFactory::AddRef(void) __ptr64
?AddRef@CClassFactory@@UEAAKXZ
; public: unsigned long __cdecl CEnum::AddRef(void) __ptr64
?AddRef@CEnum@@QEAAKXZ
; public: virtual unsigned long __cdecl CEnumConnectionPoints::AddRef(void) __ptr64
?AddRef@CEnumConnectionPoints@@UEAAKXZ
; public: virtual unsigned long __cdecl CEnumConnections::AddRef(void) __ptr64
?AddRef@CEnumConnections@@UEAAKXZ
; public: virtual unsigned long __cdecl CHeapDispenser::AddRef(void) __ptr64
?AddRef@CHeapDispenser@@UEAAKXZ
; public: virtual unsigned long __cdecl CRowsetConnectionPoint::AddRef(void) __ptr64
?AddRef@CRowsetConnectionPoint@@UEAAKXZ
; public: virtual unsigned long __cdecl CRowsetConnectionPointContainer::AddRef(void) __ptr64
?AddRef@CRowsetConnectionPointContainer@@UEAAKXZ
; private: void __cdecl CSlotListShort::AddSlotToList(struct tagSLOT * __ptr64) __ptr64
?AddSlotToList@CSlotListShort@@AEAAXPEAUtagSLOT@@@Z
; private: static unsigned long __cdecl CHashTbl::AdjustRange(unsigned long)
?AdjustRange@CHashTbl@@CAKK@Z
; public: virtual long __cdecl CRowsetConnectionPoint::Advise(struct IUnknown * __ptr64,unsigned long * __ptr64) __ptr64
?Advise@CRowsetConnectionPoint@@UEAAJPEAUIUnknown@@PEAK@Z
; protected: void __cdecl CWString::AllocBuffer(int) __ptr64
?AllocBuffer@CWString@@IEAAXH@Z
; protected: void __cdecl CWString::AllocCopy(class CWString & __ptr64,int,int,int)const  __ptr64
?AllocCopy@CWString@@IEBAXAEAV1@HHH@Z
; public: unsigned char * __ptr64 __cdecl CExtBuffer::AllocItems(unsigned __int64) __ptr64
?AllocItems@CExtBuffer@@QEAAPEAE_K@Z
; public: long __cdecl CBitArray::ArrayEmpty(void) __ptr64
?ArrayEmpty@CBitArray@@QEAAJXZ
; protected: void __cdecl CWString::AssignCopy(int,unsigned short const * __ptr64) __ptr64
?AssignCopy@CWString@@IEAAXHPEBG@Z
; private: unsigned long __cdecl CUtlPropInfo::CalcDescripBuffers(unsigned long,struct tagDBPROPINFOSET * __ptr64) __ptr64
?CalcDescripBuffers@CUtlPropInfo@@AEAAKKPEAUtagDBPROPINFOSET@@@Z
; public: static unsigned long __cdecl CHashTbl::CbHashTblSize(unsigned long)
?CbHashTblSize@CHashTbl@@SAKK@Z
; public: void __cdecl CWString::ClearError(void) __ptr64
?ClearError@CWString@@QEAAXXZ
; private: void __cdecl CUtlProps2::ClearMemberVars(void) __ptr64
?ClearMemberVars@CUtlProps2@@AEAAXXZ
; public: void __cdecl CUtlProps2::ClearPropSupported(unsigned long,unsigned long) __ptr64
?ClearPropSupported@CUtlProps2@@QEAAXKK@Z
; public: void __cdecl CUtlProps2::ClearPropertyInError(void) __ptr64
?ClearPropertyInError@CUtlProps2@@QEAAXXZ
; public: void __cdecl CUtlProps2::ClearPropsSupported(void) __ptr64
?ClearPropsSupported@CUtlProps2@@QEAAXXZ
; public: virtual long __cdecl CEnumConnectionPoints::Clone(struct IEnumConnectionPoints * __ptr64 * __ptr64) __ptr64
?Clone@CEnumConnectionPoints@@UEAAJPEAPEAUIEnumConnectionPoints@@@Z
; public: virtual long __cdecl CEnumConnections::Clone(struct IEnumConnections * __ptr64 * __ptr64) __ptr64
?Clone@CEnumConnections@@UEAAJPEAPEAUIEnumConnections@@@Z
; public: void __cdecl CExtBuffer::CompactExtBuffer(void) __ptr64
?CompactExtBuffer@CExtBuffer@@QEAAXXZ
; public: int __cdecl CWString::Compare(unsigned short const * __ptr64)const  __ptr64
?Compare@CWString@@QEBAHPEBG@Z
; long __cdecl CompareDBIDs(struct tagDBID const * __ptr64,struct tagDBID const * __ptr64)
?CompareDBIDs@@YAJPEBUtagDBID@@0@Z
; public: virtual int __cdecl CHeapDispenser::CompareResource(void * __ptr64,void * __ptr64) __ptr64
?CompareResource@CHeapDispenser@@UEAAHPEAX0@Z
; protected: void __cdecl CWString::ConcatCopy(int,unsigned short const * __ptr64,int,unsigned short const * __ptr64) __ptr64
?ConcatCopy@CWString@@IEAAXHPEBGH0@Z
; public: void __cdecl CWString::ConcatInPlace(int,unsigned short const * __ptr64) __ptr64
?ConcatInPlace@CWString@@QEAAXHPEBG@Z
; public: virtual int __cdecl CUtlProps2::ConflictsWithCurrent(unsigned long,unsigned long,struct tagVARIANT const & __ptr64) __ptr64
?ConflictsWithCurrent@CUtlProps2@@UEAAHKKAEBUtagVARIANT@@@Z
; public: long __cdecl CUtlProps2::ConvertRowsetIIDtoDBPROPSET(struct _GUID const * __ptr64,struct tagDBPROPSET * __ptr64) __ptr64
?ConvertRowsetIIDtoDBPROPSET@CUtlProps2@@QEAAJPEBU_GUID@@PEAUtagDBPROPSET@@@Z
; public: void __cdecl CUtlProps2::CopyAvailUPropSets(unsigned long * __ptr64,struct tagUPROPSET const * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64
?CopyAvailUPropSets@CUtlProps2@@QEAAXPEAKPEAPEBUtagUPROPSET@@0@Z
; long __cdecl CopyDBIDs(struct tagDBID * __ptr64,struct tagDBID const * __ptr64)
?CopyDBIDs@@YAJPEAUtagDBID@@PEBU1@@Z
; public: void __cdecl CUtlProps2::CopyPropsInError(unsigned long * __ptr64) __ptr64
?CopyPropsInError@CUtlProps2@@QEAAXPEAK@Z
; public: void __cdecl CUtlProps2::CopyPropsInError(class CUtlProps2 * __ptr64) __ptr64
?CopyPropsInError@CUtlProps2@@QEAAXPEAV1@@Z
; public: void __cdecl CUtlProps2::CopyUPropInfo(unsigned long,struct tagUPROPINFO * __ptr64 * __ptr64) __ptr64
?CopyUPropInfo@CUtlProps2@@QEAAXKPEAPEAUtagUPROPINFO@@@Z
; public: void __cdecl CUtlProps2::CopyUPropSetsSupported(unsigned long * __ptr64) __ptr64
?CopyUPropSetsSupported@CUtlProps2@@QEAAXPEAK@Z
; public: long __cdecl CUtlProps2::CopyUPropVal(unsigned long,struct tagUPROPVAL * __ptr64,class CColumnIds * __ptr64) __ptr64
?CopyUPropVal@CUtlProps2@@QEAAJKPEAUtagUPROPVAL@@PEAVCColumnIds@@@Z
; public: virtual unsigned __int64 __cdecl CSlotListLong::CountOfBusySlots(void) __ptr64
?CountOfBusySlots@CSlotListLong@@UEAA_KXZ
; public: virtual unsigned __int64 __cdecl CSlotListShort::CountOfBusySlots(void) __ptr64
?CountOfBusySlots@CSlotListShort@@UEAA_KXZ
; public: virtual long __cdecl CHeapDispenser::CreateResource(void * __ptr64,unsigned long,void * __ptr64,void * __ptr64 * __ptr64,int * __ptr64) __ptr64
?CreateResource@CHeapDispenser@@UEAAJPEAXK0PEAPEAXPEAH@Z
; public: long __cdecl CExtBuffer::DWORDIntoExtBuffer(unsigned __int64) __ptr64
?DWORDIntoExtBuffer@CExtBuffer@@QEAAJ_K@Z
; private: void __cdecl CSlotListShort::DecoupleSlot(struct tagSLOT * __ptr64) __ptr64
?DecoupleSlot@CSlotListShort@@AEAAXPEAUtagSLOT@@@Z
; public: virtual long __cdecl CHashTbl::DeleteBmk(unsigned __int64) __ptr64
?DeleteBmk@CHashTbl@@UEAAJ_K@Z
; public: virtual long __cdecl CHashTblAggr::DeleteBmk(unsigned __int64) __ptr64
?DeleteBmk@CHashTblAggr@@UEAAJ_K@Z
; public: void __cdecl CExtBuffer::DeleteFromExtBuffer(unsigned __int64) __ptr64
?DeleteFromExtBuffer@CExtBuffer@@QEAAX_K@Z
; public: void __cdecl CExtBuffer::DeleteWithCompactFromExtBuffer(unsigned __int64) __ptr64
?DeleteWithCompactFromExtBuffer@CExtBuffer@@QEAAX_K@Z
; public: virtual long __cdecl CHeapDispenser::DestroyResource(void * __ptr64) __ptr64
?DestroyResource@CHeapDispenser@@UEAAJPEAX@Z
; public: long __cdecl CRowsetConnectionPointContainer::DoFcNotify(unsigned long,enum DBREASONENUM,enum DBEVENTPHASEENUM,struct IRowset * __ptr64,unsigned __int64,unsigned __int64,unsigned __int64 * __ptr64 const) __ptr64
?DoFcNotify@CRowsetConnectionPointContainer@@QEAAJKW4DBREASONENUM@@W4DBEVENTPHASEENUM@@PEAUIRowset@@_K3QEA_K@Z
; public: long __cdecl CRowsetConnectionPoint::DoNotify(enum DBREASONENUM,enum DBEVENTPHASEENUM,enum ENOTIFICATIONTYPE,struct IRowset * __ptr64,union tagNOTIFYARGS * __ptr64) __ptr64
?DoNotify@CRowsetConnectionPoint@@QEAAJW4DBREASONENUM@@W4DBEVENTPHASEENUM@@W4ENOTIFICATIONTYPE@@PEAUIRowset@@PEATtagNOTIFYARGS@@@Z
; public: long __cdecl CRowsetConnectionPointContainer::DoRcNotify(unsigned long,enum DBREASONENUM,enum DBEVENTPHASEENUM,struct IRowset * __ptr64,unsigned __int64,unsigned __int64 * __ptr64 const) __ptr64
?DoRcNotify@CRowsetConnectionPointContainer@@QEAAJKW4DBREASONENUM@@W4DBEVENTPHASEENUM@@PEAUIRowset@@_KQEA_K@Z
; public: long __cdecl CRowsetConnectionPointContainer::DoRscNotify(unsigned long,enum DBREASONENUM,enum DBEVENTPHASEENUM,struct IRowset * __ptr64) __ptr64
?DoRscNotify@CRowsetConnectionPointContainer@@QEAAJKW4DBREASONENUM@@W4DBEVENTPHASEENUM@@PEAUIRowset@@@Z
; unsigned long __cdecl DwGetPlatformId(void)
?DwGetPlatformId@@YAKXZ
; public: class CWString  __cdecl CWString::ElementAt(unsigned short * __ptr64 const,int)const  __ptr64
?ElementAt@CWString@@QEBA?AV1@QEAGH@Z
; public: void __cdecl CWString::Empty(void) __ptr64
?Empty@CWString@@QEAAXXZ
; public: virtual long __cdecl CRowsetConnectionPointContainer::EnumConnectionPoints(struct IEnumConnectionPoints * __ptr64 * __ptr64) __ptr64
?EnumConnectionPoints@CRowsetConnectionPointContainer@@UEAAJPEAPEAUIEnumConnectionPoints@@@Z
; public: virtual long __cdecl CRowsetConnectionPoint::EnumConnections(struct IEnumConnections * __ptr64 * __ptr64) __ptr64
?EnumConnections@CRowsetConnectionPoint@@UEAAJPEAPEAUIEnumConnections@@@Z
; protected: long __cdecl CBaseObj::FInit(void) __ptr64
?FInit@CBaseObj@@IEAAJXZ
; public: long __cdecl CBitArray::FInit(unsigned __int64) __ptr64
?FInit@CBitArray@@QEAAJ_K@Z
; public: int __cdecl CExtBuffer::FInit(class CExtBuffer * __ptr64) __ptr64
?FInit@CExtBuffer@@QEAAHPEAV1@@Z
; public: int __cdecl CExtBuffer::FInit(unsigned __int64,unsigned __int64) __ptr64
?FInit@CExtBuffer@@QEAAH_K0@Z
; public: int __cdecl CExtBuffer::FInit(unsigned __int64,void * __ptr64,unsigned __int64,unsigned __int64) __ptr64
?FInit@CExtBuffer@@QEAAH_KPEAX00@Z
; public: int __cdecl CHashTbl::FInit(unsigned short,class CSlotListShort * __ptr64,class IBookmarkObj * __ptr64) __ptr64
?FInit@CHashTbl@@QEAAHGPEAVCSlotListShort@@PEAVIBookmarkObj@@@Z
; public: int __cdecl CHashTblAggr::FInit(class CHashTbl * __ptr64) __ptr64
?FInit@CHashTblAggr@@QEAAHPEAVCHashTbl@@@Z
; public: virtual int __cdecl CSlotListLong::FInit(unsigned __int64,class ISlotList * __ptr64 * __ptr64,class IHashTbl * __ptr64 * __ptr64,unsigned __int64) __ptr64
?FInit@CSlotListLong@@UEAAH_KPEAPEAVISlotList@@PEAPEAVIHashTbl@@0@Z
; public: virtual int __cdecl CSlotListShort::FInit(unsigned __int64,class ISlotList * __ptr64 * __ptr64,class IHashTbl * __ptr64 * __ptr64,unsigned __int64) __ptr64
?FInit@CSlotListShort@@UEAAH_KPEAPEAVISlotList@@PEAPEAVIHashTbl@@0@Z
; public: long __cdecl CUtlPropInfo::FInit(void) __ptr64
?FInit@CUtlPropInfo@@QEAAJXZ
; public: virtual long __cdecl CUtlProps2::FInit(class CUtlProps2 * __ptr64) __ptr64
?FInit@CUtlProps2@@UEAAJPEAV1@@Z
; public: virtual long __cdecl CUtlPropsFastLookup2::FInit(class CUtlPropsFastLookup2 * __ptr64) __ptr64
?FInit@CUtlPropsFastLookup2@@UEAAJPEAV1@@Z
; public: int __cdecl CVLHeap::FInit(unsigned __int64) __ptr64
?FInit@CVLHeap@@QEAAH_K@Z
; public: void __cdecl CGenericPooler::FInitializeGPStructures(void) __ptr64
?FInitializeGPStructures@CGenericPooler@@QEAAXXZ
; public: int __cdecl CUtlProps2::FIsDefaultValue(unsigned long,unsigned long,struct tagVARIANT * __ptr64) __ptr64
?FIsDefaultValue@CUtlProps2@@QEAAHKKPEAUtagVARIANT@@@Z
; public: virtual int __cdecl CUtlProps2::FIsValidColId(struct tagDBPROP * __ptr64) __ptr64
?FIsValidColId@CUtlProps2@@UEAAHPEAUtagDBPROP@@@Z
; public: long __cdecl CUtlProps2::FillDefaultValues(unsigned long) __ptr64
?FillDefaultValues@CUtlProps2@@QEAAJK@Z
; public: virtual long __cdecl CRowsetConnectionPointContainer::FindConnectionPoint(struct _GUID const & __ptr64,struct IConnectionPoint * __ptr64 * __ptr64) __ptr64
?FindConnectionPoint@CRowsetConnectionPointContainer@@UEAAJAEBU_GUID@@PEAPEAUIConnectionPoint@@@Z
; public: void __cdecl CConnectData::ForgetEvent(enum DBREASONENUM,enum DBEVENTPHASEENUM) __ptr64
?ForgetEvent@CConnectData@@QEAAXW4DBREASONENUM@@W4DBEVENTPHASEENUM@@@Z
; private: void __cdecl CRowsetConnectionPoint::ForgetEvent(enum DBREASONENUM,enum DBEVENTPHASEENUM) __ptr64
?ForgetEvent@CRowsetConnectionPoint@@AEAAXW4DBREASONENUM@@W4DBEVENTPHASEENUM@@@Z
; public: void __cdecl CConnectData::ForgetReason(enum DBREASONENUM) __ptr64
?ForgetReason@CConnectData@@QEAAXW4DBREASONENUM@@@Z
; public: int __cdecl CWString::FoundError(void)const  __ptr64
?FoundError@CWString@@QEBAHXZ
; public: void __cdecl CExtBuffer::Free(void) __ptr64
?Free@CExtBuffer@@QEAAXXZ
; void __cdecl FreeDBIDs(struct tagDBID * __ptr64)
?FreeDBIDs@@YAXPEAUtagDBID@@@Z
; public: void __cdecl CWString::FreeExtra(void) __ptr64
?FreeExtra@CWString@@QEAAXXZ
; private: void __cdecl CUtlProps2::FreeMemory(void) __ptr64
?FreeMemory@CUtlProps2@@AEAAXXZ
; public: int __cdecl CWString::GetAllocLength(void)const  __ptr64
?GetAllocLength@CWString@@QEBAHXZ
; public: enum EBaseObjectType  __cdecl CBaseObj::GetBaseObjectType(void) __ptr64
?GetBaseObjectType@CBaseObj@@QEAA?AW4EBaseObjectType@@XZ
; public: unsigned short * __ptr64 __cdecl CBaseObj::GetBaseObjectTypeName(void) __ptr64
?GetBaseObjectTypeName@CBaseObj@@QEAAPEAGXZ
; public: void __cdecl CBaseObjZombie::GetBokoTimestamp(void) __ptr64
?GetBokoTimestamp@CBaseObjZombie@@QEAAXXZ
; public: unsigned short * __ptr64 __cdecl CWString::GetBuffer(int) __ptr64
?GetBuffer@CWString@@QEAAPEAGH@Z
; public: unsigned short * __ptr64 __cdecl CWString::GetBufferSetLength(int) __ptr64
?GetBufferSetLength@CWString@@QEAAPEAGH@Z
; public: struct tagCONNECTDATA * __ptr64 __cdecl CConnectData::GetCd(void) __ptr64
?GetCd@CConnectData@@QEAAPEAUtagCONNECTDATA@@XZ
; public: virtual long __cdecl CRowsetConnectionPoint::GetConnectionInterface(struct _GUID * __ptr64) __ptr64
?GetConnectionInterface@CRowsetConnectionPoint@@UEAAJPEAU_GUID@@@Z
; public: virtual long __cdecl CRowsetConnectionPoint::GetConnectionPointContainer(struct IConnectionPointContainer * __ptr64 * __ptr64) __ptr64
?GetConnectionPointContainer@CRowsetConnectionPoint@@UEAAJPEAPEAUIConnectionPointContainer@@@Z
; private: unsigned long __cdecl CUtlProps2::GetCountofColids(struct tagUPROP * __ptr64) __ptr64
?GetCountofColids@CUtlProps2@@AEAAKPEAUtagUPROP@@@Z
; private: unsigned long __cdecl CUtlProps2::GetCountofWritablePropsInPropSet(unsigned long) __ptr64
?GetCountofWritablePropsInPropSet@CUtlProps2@@AEAAKK@Z
; public: class CCriticalSection * __ptr64 * __ptr64 __cdecl CBaseObj::GetCriticalSection(void) __ptr64
?GetCriticalSection@CBaseObj@@QEAAPEAPEAVCCriticalSection@@XZ
; public: unsigned __int64 __cdecl CExtBuffer::GetDWORDOfExtBuffer(unsigned __int64) __ptr64
?GetDWORDOfExtBuffer@CExtBuffer@@QEAA_K_K@Z
; public: unsigned short __cdecl CUtlProps2::GetExpectedVarType(unsigned long,unsigned long) __ptr64
?GetExpectedVarType@CUtlProps2@@QEAAGKK@Z
; public: struct _GUID const * __ptr64 __cdecl CUtlProps2::GetGuid(unsigned long) __ptr64
?GetGuid@CUtlProps2@@QEAAPEBU_GUID@@K@Z
; public: class CHeapDispenser * __ptr64 __cdecl CGenericPooler::GetHeapDispenser(void) __ptr64
?GetHeapDispenser@CGenericPooler@@QEAAPEAVCHeapDispenser@@XZ
; public: struct IGPHolder * __ptr64 __cdecl CGenericPooler::GetHeapHolder(void) __ptr64
?GetHeapHolder@CGenericPooler@@QEAAPEAUIGPHolder@@XZ
; public: virtual long __cdecl CUtlProps2::GetIndexofPropIdinPropSet(unsigned long,unsigned long,unsigned long * __ptr64) __ptr64
?GetIndexofPropIdinPropSet@CUtlProps2@@UEAAJKKPEAK@Z
; protected: virtual long __cdecl CUtlPropsFastLookup2::GetIndexofPropIdinPropSet(unsigned long,unsigned long,unsigned long * __ptr64) __ptr64
?GetIndexofPropIdinPropSet@CUtlPropsFastLookup2@@MEAAJKKPEAK@Z
; public: virtual long __cdecl CUtlProps2::GetIndexofPropSet(struct _GUID const * __ptr64,unsigned long * __ptr64) __ptr64
?GetIndexofPropSet@CUtlProps2@@UEAAJPEBU_GUID@@PEAK@Z
; public: unsigned long __cdecl CUtlProps2::GetInternalFlags(unsigned long,unsigned long) __ptr64
?GetInternalFlags@CUtlProps2@@QEAAKKK@Z
; public: unsigned long __cdecl CUtlProps2::GetInternalStatus(unsigned long,unsigned long) __ptr64
?GetInternalStatus@CUtlProps2@@QEAAKKK@Z
; public: unsigned __int64 __cdecl CExtBuffer::GetItemCount(void)const  __ptr64
?GetItemCount@CExtBuffer@@QEBA_KXZ
; public: unsigned __int64 __cdecl CExtBuffer::GetItemMax(void)const  __ptr64
?GetItemMax@CExtBuffer@@QEBA_KXZ
; public: void __cdecl CExtBuffer::GetItemOfExtBuffer(unsigned __int64,void * __ptr64) __ptr64
?GetItemOfExtBuffer@CExtBuffer@@QEAAX_KPEAX@Z
; public: unsigned __int64 __cdecl CExtBuffer::GetItemSize(void)const  __ptr64
?GetItemSize@CExtBuffer@@QEBA_KXZ
; public: void __cdecl CExtBuffer::GetLastItemHandle(unsigned __int64 & __ptr64) __ptr64
?GetLastItemHandle@CExtBuffer@@QEAAXAEA_K@Z
; public: int __cdecl CWString::GetLength(void)const  __ptr64
?GetLength@CWString@@QEBAHXZ
; public: unsigned short * __ptr64 __cdecl CExtBuffer::GetNameFromOffset(unsigned __int64) __ptr64
?GetNameFromOffset@CExtBuffer@@QEAAPEAG_K@Z
; public: virtual long __cdecl CSlotListLong::GetNextSlots(unsigned __int64,unsigned __int64,unsigned __int64 * __ptr64) __ptr64
?GetNextSlots@CSlotListLong@@UEAAJ_K0PEA_K@Z
; public: virtual long __cdecl CSlotListShort::GetNextSlots(unsigned __int64,unsigned __int64,unsigned __int64 * __ptr64) __ptr64
?GetNextSlots@CSlotListShort@@UEAAJ_K0PEA_K@Z
; private: void * __ptr64 __cdecl CEnum::GetNthElement(unsigned long) __ptr64
?GetNthElement@CEnum@@AEAAPEAXK@Z
; private: struct IUnknown * __ptr64 __cdecl CEnum::GetNthUnknown(unsigned long) __ptr64
?GetNthUnknown@CEnum@@AEAAPEAUIUnknown@@K@Z
; public: struct IUnknown * __ptr64 __cdecl CBaseObj::GetOuterUnknown(void) __ptr64
?GetOuterUnknown@CBaseObj@@QEAAPEAUIUnknown@@XZ
; public: unsigned long __cdecl CUtlProps2::GetPropID(unsigned long,unsigned long) __ptr64
?GetPropID@CUtlProps2@@QEAAKKK@Z
; public: unsigned long __cdecl CUtlProps2::GetPropOption(unsigned long,unsigned long) __ptr64
?GetPropOption@CUtlProps2@@QEAAKKK@Z
; public: unsigned long __cdecl CUtlProps2::GetPropStatus(struct tagUPROPVAL * __ptr64) __ptr64
?GetPropStatus@CUtlProps2@@QEAAKPEAUtagUPROPVAL@@@Z
; public: long __cdecl CUtlProps2::GetPropValue(struct _GUID const * __ptr64,unsigned long,struct tagVARIANT * __ptr64) __ptr64
?GetPropValue@CUtlProps2@@QEAAJPEBU_GUID@@KPEAUtagVARIANT@@@Z
; public: long __cdecl CUtlProps2::GetProperties(unsigned long,struct tagDBPROPIDSET const * __ptr64 const,unsigned long * __ptr64,struct tagDBPROPSET * __ptr64 * __ptr64) __ptr64
?GetProperties@CUtlProps2@@QEAAJKQEBUtagDBPROPIDSET@@PEAKPEAPEAUtagDBPROPSET@@@Z
; public: long __cdecl CUtlProps2::GetProperties(unsigned long,struct tagDBPROPIDSET const * __ptr64 const,unsigned long * __ptr64,struct tagDBPROPSET * __ptr64 * __ptr64,struct _GUID const * __ptr64) __ptr64
?GetProperties@CUtlProps2@@QEAAJKQEBUtagDBPROPIDSET@@PEAKPEAPEAUtagDBPROPSET@@PEBU_GUID@@@Z
; public: long __cdecl CUtlProps2::GetPropertiesArgChk(unsigned long,struct tagDBPROPIDSET const * __ptr64 const,unsigned long * __ptr64,struct tagDBPROPSET * __ptr64 * __ptr64) __ptr64
?GetPropertiesArgChk@CUtlProps2@@QEAAJKQEBUtagDBPROPIDSET@@PEAKPEAPEAUtagDBPROPSET@@@Z
; public: long __cdecl CUtlPropInfo::GetPropertyInfo(unsigned long,struct tagDBPROPIDSET const * __ptr64 const,unsigned long * __ptr64,struct tagDBPROPINFOSET * __ptr64 * __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64
?GetPropertyInfo@CUtlPropInfo@@QEAAJKQEBUtagDBPROPIDSET@@PEAKPEAPEAUtagDBPROPINFOSET@@PEAPEAG@Z
; private: long __cdecl CUtlPropInfo::GetPropertySetIndex(struct _GUID const * __ptr64) __ptr64
?GetPropertySetIndex@CUtlPropInfo@@AEAAJPEBU_GUID@@@Z
; public: unsigned long * __ptr64 __cdecl CUtlProps2::GetPropsInErrorPtr(void) __ptr64
?GetPropsInErrorPtr@CUtlProps2@@QEAAPEAKXZ
; public: void * __ptr64 __cdecl CExtBuffer::GetPtrOfExtBuffer(void) __ptr64
?GetPtrOfExtBuffer@CExtBuffer@@QEAAPEAXXZ
; public: void * __ptr64 __cdecl CExtBuffer::GetPtrOfExtBuffer(unsigned __int64) __ptr64
?GetPtrOfExtBuffer@CExtBuffer@@QEAAPEAX_K@Z
; public: long __cdecl CGenericPooler::GetResource(void * __ptr64 * __ptr64,struct IGPHolder * __ptr64,struct IGPDispenser * __ptr64,void * __ptr64 * __ptr64,void * __ptr64) __ptr64
?GetResource@CGenericPooler@@QEAAJPEAPEAXPEAUIGPHolder@@PEAUIGPDispenser@@0PEAX@Z
; public: virtual struct tagRowBuff * __ptr64 __cdecl CSlotListLong::GetRowBuff(unsigned __int64) __ptr64
?GetRowBuff@CSlotListLong@@UEAAPEAUtagRowBuff@@_K@Z
; public: virtual struct tagRowBuff * __ptr64 __cdecl CSlotListShort::GetRowBuff(unsigned __int64) __ptr64
?GetRowBuff@CSlotListShort@@UEAAPEAUtagRowBuff@@_K@Z
; public: unsigned long __cdecl CUtlProps2::GetStatus(unsigned long,unsigned long) __ptr64
?GetStatus@CUtlProps2@@QEAAKKK@Z
; public: void __cdecl CBaseObjBoko::GetTimestamp(unsigned long * __ptr64) __ptr64
?GetTimestamp@CBaseObjBoko@@QEAAXPEAK@Z
; private: long __cdecl CUtlPropInfo::GetUPropInfoPtr(unsigned long,unsigned long,struct tagUPROPINFO * __ptr64 * __ptr64) __ptr64
?GetUPropInfoPtr@CUtlPropInfo@@AEAAJKKPEAPEAUtagUPROPINFO@@@Z
; protected: unsigned long __cdecl CUtlPropInfo::GetUPropSetCount(void) __ptr64
?GetUPropSetCount@CUtlPropInfo@@IEAAKXZ
; public: unsigned long __cdecl CUtlProps2::GetUPropSetCount(void) __ptr64
?GetUPropSetCount@CUtlProps2@@QEAAKXZ
; protected: virtual unsigned long __cdecl CUtlProps2::GetUPropValIndex(unsigned long,unsigned long) __ptr64
?GetUPropValIndex@CUtlProps2@@MEAAKKK@Z
; protected: virtual unsigned long __cdecl CUtlPropsFastLookup2::GetUPropValIndex(unsigned long,unsigned long) __ptr64
?GetUPropValIndex@CUtlPropsFastLookup2@@MEAAKKK@Z
; public: short __cdecl CUtlProps2::GetValBool(unsigned long,unsigned long)const  __ptr64
?GetValBool@CUtlProps2@@QEBAFKK@Z
; public: void * __ptr64 __cdecl CUtlProps2::GetValByRef(unsigned long,unsigned long)const  __ptr64
?GetValByRef@CUtlProps2@@QEBAPEAXKK@Z
; public: long __cdecl CUtlProps2::GetValLong(unsigned long,unsigned long)const  __ptr64
?GetValLong@CUtlProps2@@QEBAJKK@Z
; public: __int64 __cdecl CUtlProps2::GetValLongLong(unsigned long,unsigned long)const  __ptr64
?GetValLongLong@CUtlProps2@@QEBA_JKK@Z
; public: short __cdecl CUtlProps2::GetValShort(unsigned long,unsigned long)const  __ptr64
?GetValShort@CUtlProps2@@QEBAFKK@Z
; public: unsigned short const * __ptr64 __cdecl CUtlProps2::GetValString(unsigned long,unsigned long) __ptr64
?GetValString@CUtlProps2@@QEAAPEBGKK@Z
; public: struct tagVARIANT * __ptr64 __cdecl CUtlProps2::GetVariant(unsigned long,unsigned long) __ptr64
?GetVariant@CUtlProps2@@QEAAPEAUtagVARIANT@@KK@Z
; public: virtual int __cdecl CHeapDispenser::HashKey(void * __ptr64,unsigned long,int * __ptr64) __ptr64
?HashKey@CHeapDispenser@@UEAAHPEAXKPEAH@Z
; public: long __cdecl CRowsetConnectionPointContainer::Init(void) __ptr64
?Init@CRowsetConnectionPointContainer@@QEAAJXZ
; protected: void __cdecl CWString::Init(void) __ptr64
?Init@CWString@@IEAAXXZ
; public: virtual long __cdecl CHashTbl::InsertFindBmk(int,unsigned __int64,unsigned __int64,unsigned char * __ptr64,unsigned __int64 * __ptr64) __ptr64
?InsertFindBmk@CHashTbl@@UEAAJH_K0PEAEPEA_K@Z
; public: virtual long __cdecl CHashTblAggr::InsertFindBmk(int,unsigned __int64,unsigned __int64,unsigned char * __ptr64,unsigned __int64 * __ptr64) __ptr64
?InsertFindBmk@CHashTblAggr@@UEAAJH_K0PEAEPEA_K@Z
; public: long __cdecl CExtBuffer::InsertIntoExtBuffer(void * __ptr64,unsigned __int64 & __ptr64) __ptr64
?InsertIntoExtBuffer@CExtBuffer@@QEAAJPEAXAEA_K@Z
; public: int __cdecl CUtlProps2::IsEmpty(unsigned long,unsigned long) __ptr64
?IsEmpty@CUtlProps2@@QEAAHKK@Z
; public: int __cdecl CWString::IsEmpty(void)const  __ptr64
?IsEmpty@CWString@@QEBAHXZ
; public: int __cdecl CUtlProps2::IsPropSet(struct _GUID const * __ptr64,unsigned long) __ptr64
?IsPropSet@CUtlProps2@@QEAAHPEBU_GUID@@K@Z
; public: int __cdecl CUtlProps2::IsRequiredFalse(unsigned long,unsigned long) __ptr64
?IsRequiredFalse@CUtlProps2@@QEAAHKK@Z
; public: int __cdecl CUtlProps2::IsRequiredTrue(unsigned long,unsigned long) __ptr64
?IsRequiredTrue@CUtlProps2@@QEAAHKK@Z
; public: int __cdecl CUtlProps2::IsSetIfCan(unsigned long,unsigned long) __ptr64
?IsSetIfCan@CUtlProps2@@QEAAHKK@Z
; public: long __cdecl CBitArray::IsSlotSet(unsigned __int64) __ptr64
?IsSlotSet@CBitArray@@QEAAJ_K@Z
; public: int __cdecl CUtlProps2::IsTrue(unsigned long,unsigned long) __ptr64
?IsTrue@CUtlProps2@@QEAAHKK@Z
; public: int __cdecl CVLHeap::IsVLAlloc(void * __ptr64) __ptr64
?IsVLAlloc@CVLHeap@@QEAAHPEAX@Z
; public: virtual long __cdecl CSlotListLong::IsValidSlot(unsigned __int64) __ptr64
?IsValidSlot@CSlotListLong@@UEAAJ_K@Z
; public: virtual long __cdecl CSlotListShort::IsValidSlot(unsigned __int64) __ptr64
?IsValidSlot@CSlotListShort@@UEAAJ_K@Z
; public: int __cdecl CBaseObjBoko::IsZombie(unsigned long) __ptr64
?IsZombie@CBaseObjBoko@@QEAAHK@Z
; public: int __cdecl CBaseObjZombie::IsZombie(void) __ptr64
?IsZombie@CBaseObjZombie@@QEAAHXZ
; unsigned long __cdecl LoadRCData(void * __ptr64,unsigned int,unsigned short * __ptr64,unsigned long)
?LoadRCData@@YAKPEAXIPEAGK@Z
; long __cdecl LoadResourceDLL(unsigned short * __ptr64,unsigned short * __ptr64,void * __ptr64,void * __ptr64 * __ptr64)
?LoadResourceDLL@@YAJPEAG0PEAXPEAPEAX@Z
; public: int __cdecl CWString::LoadStringW(void * __ptr64,unsigned int) __ptr64
?LoadStringW@CWString@@QEAAHPEAXI@Z
; public: virtual long __cdecl CClassFactory::LockServer(int) __ptr64
?LockServer@CClassFactory@@UEAAJH@Z
; public: void __cdecl CBaseObjBoko::MakeZombies(void) __ptr64
?MakeZombies@CBaseObjBoko@@QEAAXXZ
; public: class CWString  __cdecl CWString::Mid(int)const  __ptr64
?Mid@CWString@@QEBA?AV1@H@Z
; public: class CWString  __cdecl CWString::Mid(int,int)const  __ptr64
?Mid@CWString@@QEBA?AV1@HH@Z
; public: long __cdecl CEnum::Next(unsigned long,void * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64
?Next@CEnum@@QEAAJKPEAPEAXPEAK@Z
; public: virtual long __cdecl CEnumConnectionPoints::Next(unsigned long,struct IConnectionPoint * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64
?Next@CEnumConnectionPoints@@UEAAJKPEAPEAUIConnectionPoint@@PEAK@Z
; public: virtual long __cdecl CEnumConnections::Next(unsigned long,struct tagCONNECTDATA * __ptr64,unsigned long * __ptr64) __ptr64
?Next@CEnumConnections@@UEAAJKPEAUtagCONNECTDATA@@PEAK@Z
; public: virtual long __cdecl CSlotListLong::NextBusySlot(unsigned __int64 * __ptr64) __ptr64
?NextBusySlot@CSlotListLong@@UEAAJPEA_K@Z
; public: virtual long __cdecl CSlotListShort::NextBusySlot(unsigned __int64 * __ptr64) __ptr64
?NextBusySlot@CSlotListShort@@UEAAJPEA_K@Z
; public: virtual long __cdecl CSlotListLong::NoBusySlots(void) __ptr64
?NoBusySlots@CSlotListLong@@UEAAJXZ
; public: virtual long __cdecl CSlotListShort::NoBusySlots(void) __ptr64
?NoBusySlots@CSlotListShort@@UEAAJXZ
; public: unsigned long __cdecl CWString::NumElements(unsigned short * __ptr64 const)const  __ptr64
?NumElements@CWString@@QEBAKQEAG@Z
; int __cdecl OLEDBGetCharTypeW(unsigned long,unsigned short,unsigned short * __ptr64)
?OLEDBGetCharTypeW@@YAHKGPEAG@Z
; public: short __cdecl CUtlProps2::OkToPersistSensitiveAuthInfo(void) __ptr64
?OkToPersistSensitiveAuthInfo@CUtlProps2@@QEAAFXZ
; int __cdecl OnUnicodeSystem(void)
?OnUnicodeSystem@@YAHXZ
; public: virtual long __cdecl CClassFactory::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CClassFactory@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: long __cdecl CEnum::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64,struct IUnknown * __ptr64) __ptr64
?QueryInterface@CEnum@@QEAAJAEBU_GUID@@PEAPEAXPEAUIUnknown@@@Z
; public: virtual long __cdecl CEnumConnectionPoints::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CEnumConnectionPoints@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CEnumConnections::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CEnumConnections@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CHeapDispenser::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CHeapDispenser@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CRowsetConnectionPoint::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CRowsetConnectionPoint@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CRowsetConnectionPointContainer::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64
?QueryInterface@CRowsetConnectionPointContainer@@UEAAJAEBU_GUID@@PEAPEAX@Z
; public: virtual long __cdecl CHeapDispenser::RateRes(void * __ptr64,unsigned long,void * __ptr64,int * __ptr64) __ptr64
?RateRes@CHeapDispenser@@UEAAJPEAXK0PEAH@Z
; public: virtual void __cdecl CSlotListLong::RecordInternalUse(void) __ptr64
?RecordInternalUse@CSlotListLong@@UEAAXXZ
; public: virtual void __cdecl CSlotListShort::RecordInternalUse(void) __ptr64
?RecordInternalUse@CSlotListShort@@UEAAXXZ
; long __cdecl RegisterServer(void * __ptr64 const,void * __ptr64 const,unsigned long,struct tagREGENTRIES const * __ptr64 const)
?RegisterServer@@YAJQEAX0KQEBUtagREGENTRIES@@@Z
; public: virtual unsigned long __cdecl CClassFactory::Release(void) __ptr64
?Release@CClassFactory@@UEAAKXZ
; public: unsigned long __cdecl CEnum::Release(void) __ptr64
?Release@CEnum@@QEAAKXZ
; public: virtual unsigned long __cdecl CEnumConnectionPoints::Release(void) __ptr64
?Release@CEnumConnectionPoints@@UEAAKXZ
; public: virtual unsigned long __cdecl CEnumConnections::Release(void) __ptr64
?Release@CEnumConnections@@UEAAKXZ
; public: virtual unsigned long __cdecl CHeapDispenser::Release(void) __ptr64
?Release@CHeapDispenser@@UEAAKXZ
; public: virtual unsigned long __cdecl CRowsetConnectionPoint::Release(void) __ptr64
?Release@CRowsetConnectionPoint@@UEAAKXZ
; public: virtual unsigned long __cdecl CRowsetConnectionPointContainer::Release(void) __ptr64
?Release@CRowsetConnectionPointContainer@@UEAAKXZ
; public: void __cdecl CWString::ReleaseBuffer(int) __ptr64
?ReleaseBuffer@CWString@@QEAAXH@Z
; public: void __cdecl CGenericPooler::ReleaseHolders(void) __ptr64
?ReleaseHolders@CGenericPooler@@QEAAXXZ
; public: void __cdecl CGenericPooler::ReleaseResource(void * __ptr64,struct IGPHolder * __ptr64,struct IGPDispenser * __ptr64,void * __ptr64) __ptr64
?ReleaseResource@CGenericPooler@@QEAAXPEAXPEAUIGPHolder@@PEAUIGPDispenser@@0@Z
; public: virtual unsigned __int64 __cdecl CSlotListLong::ReleaseSlots(unsigned __int64,unsigned __int64) __ptr64
?ReleaseSlots@CSlotListLong@@UEAA_K_K0@Z
; public: virtual unsigned __int64 __cdecl CSlotListShort::ReleaseSlots(unsigned __int64,unsigned __int64) __ptr64
?ReleaseSlots@CSlotListShort@@UEAA_K_K0@Z
; public: void __cdecl CUtlProps2::RemoveInternalFlags(unsigned long,unsigned long,unsigned long) __ptr64
?RemoveInternalFlags@CUtlProps2@@QEAAXKKK@Z
; public: void __cdecl CWString::ReplaceAt(int,int,unsigned short const * __ptr64,int) __ptr64
?ReplaceAt@CWString@@QEAAXHHPEBGH@Z
; public: long __cdecl CExtBuffer::ReplaceInExtBuffer(unsigned __int64,unsigned __int64,void const * __ptr64,unsigned __int64) __ptr64
?ReplaceInExtBuffer@CExtBuffer@@QEAAJ_K0PEBX0@Z
; public: int __cdecl CConnectData::Reset(void) __ptr64
?Reset@CConnectData@@QEAAHXZ
; public: long __cdecl CEnum::Reset(void) __ptr64
?Reset@CEnum@@QEAAJXZ
; public: virtual long __cdecl CEnumConnectionPoints::Reset(void) __ptr64
?Reset@CEnumConnectionPoints@@UEAAJXZ
; public: virtual long __cdecl CEnumConnections::Reset(void) __ptr64
?Reset@CEnumConnections@@UEAAJXZ
; public: void __cdecl CBitArray::ResetAllSlots(void) __ptr64
?ResetAllSlots@CBitArray@@QEAAXXZ
; public: virtual void __cdecl CSlotListLong::ResetBusySlotIteration(void) __ptr64
?ResetBusySlotIteration@CSlotListLong@@UEAAXXZ
; public: virtual void __cdecl CSlotListShort::ResetBusySlotIteration(void) __ptr64
?ResetBusySlotIteration@CSlotListShort@@UEAAXXZ
; public: virtual long __cdecl CHeapDispenser::ResetResource(void * __ptr64) __ptr64
?ResetResource@CHeapDispenser@@UEAAJPEAX@Z
; public: void __cdecl CBitArray::ResetSlot(unsigned __int64) __ptr64
?ResetSlot@CBitArray@@QEAAX_K@Z
; public: void __cdecl CBitArray::ResetSlots(unsigned __int64,unsigned __int64) __ptr64
?ResetSlots@CBitArray@@QEAAX_K0@Z
; public: void __cdecl CUtlProps2::RestoreInternalFlags(unsigned long,unsigned long) __ptr64
?RestoreInternalFlags@CUtlProps2@@QEAAXKK@Z
; public: void __cdecl CUtlProps2::RestoreInternalStatus(unsigned long,unsigned long) __ptr64
?RestoreInternalStatus@CUtlProps2@@QEAAXKK@Z
; private: void __cdecl CUtlProps2::RetrieveColumnIdProps(struct tagDBPROP * __ptr64,struct tagUPROPVAL * __ptr64,unsigned long * __ptr64) __ptr64
?RetrieveColumnIdProps@CUtlProps2@@AEAAXPEAUtagDBPROP@@PEAUtagUPROPVAL@@PEAK@Z
; public: virtual unsigned __int64 __cdecl CSlotListLong::SLSlotCapacity(void) __ptr64
?SLSlotCapacity@CSlotListLong@@UEAA_KXZ
; public: virtual unsigned __int64 __cdecl CSlotListShort::SLSlotCapacity(void) __ptr64
?SLSlotCapacity@CSlotListShort@@UEAA_KXZ
; protected: static void __cdecl CWString::SafeDelete(unsigned short * __ptr64)
?SafeDelete@CWString@@KAXPEAG@Z
; protected: static int __cdecl CWString::SafeStrlen(unsigned short const * __ptr64)
?SafeStrlen@CWString@@KAHPEBG@Z
; public: void __cdecl CUtlProps2::SaveInternalFlags(unsigned long,unsigned long) __ptr64
?SaveInternalFlags@CUtlProps2@@QEAAXKK@Z
; public: void __cdecl CUtlProps2::SaveInternalStatus(unsigned long,unsigned long) __ptr64
?SaveInternalStatus@CUtlProps2@@QEAAXKK@Z
; public: void __cdecl CWString::SetAt(int,unsigned short) __ptr64
?SetAt@CWString@@QEAAXHG@Z
; public: void __cdecl CBaseObjZombie::SetBoko(class CBaseObjBoko * __ptr64) __ptr64
?SetBoko@CBaseObjZombie@@QEAAXPEAVCBaseObjBoko@@@Z
; public: virtual long __cdecl CUtlProps2::SetCombinedPassThrough(struct tagDBPROPSET const * __ptr64,unsigned long) __ptr64
?SetCombinedPassThrough@CUtlProps2@@UEAAJPEBUtagDBPROPSET@@K@Z
; public: void __cdecl CWString::SetError(void) __ptr64
?SetError@CWString@@QEAAXXZ
; public: void __cdecl CUtlProps2::SetInternalStatus(unsigned long,unsigned long,unsigned long) __ptr64
?SetInternalStatus@CUtlProps2@@QEAAXKKK@Z
; public: void __cdecl CExtBuffer::SetItemCount(unsigned __int64) __ptr64
?SetItemCount@CExtBuffer@@QEAAX_K@Z
; public: virtual long __cdecl CUtlProps2::SetPassThrough(struct tagDBPROPSET const * __ptr64) __ptr64
?SetPassThrough@CUtlProps2@@UEAAJPEBUtagDBPROPSET@@@Z
; public: long __cdecl CEnum::SetPos(unsigned long) __ptr64
?SetPos@CEnum@@QEAAJK@Z
; public: long __cdecl CEnumConnectionPoints::SetPos(unsigned long) __ptr64
?SetPos@CEnumConnectionPoints@@QEAAJK@Z
; public: long __cdecl CEnumConnections::SetPos(unsigned long) __ptr64
?SetPos@CEnumConnections@@QEAAJK@Z
; public: void __cdecl CUtlProps2::SetPropOption(unsigned long,unsigned long,unsigned long) __ptr64
?SetPropOption@CUtlProps2@@QEAAXKKK@Z
; public: void __cdecl CUtlProps2::SetPropRequired(unsigned long,unsigned long,short) __ptr64
?SetPropRequired@CUtlProps2@@QEAAXKKF@Z
; public: void __cdecl CUtlProps2::SetPropSupported(unsigned long,unsigned long) __ptr64
?SetPropSupported@CUtlProps2@@QEAAXKK@Z
; public: long __cdecl CUtlProps2::SetPropValue(struct _GUID const * __ptr64,unsigned long,struct tagVARIANT * __ptr64) __ptr64
?SetPropValue@CUtlProps2@@QEAAJPEBU_GUID@@KPEAUtagVARIANT@@@Z
; public: long __cdecl CUtlProps2::SetProperties(unsigned long,struct tagDBPROPSET const * __ptr64 const,int) __ptr64
?SetProperties@CUtlProps2@@QEAAJKQEBUtagDBPROPSET@@H@Z
; public: static long __cdecl CUtlProps2::SetPropertiesArgChk(unsigned long,struct tagDBPROPSET const * __ptr64 const)
?SetPropertiesArgChk@CUtlProps2@@SAJKQEBUtagDBPROPSET@@@Z
; private: long __cdecl CUtlProps2::SetProperty(unsigned long,unsigned long,struct tagDBPROP * __ptr64) __ptr64
?SetProperty@CUtlProps2@@AEAAJKKPEAUtagDBPROP@@@Z
; public: void __cdecl CUtlProps2::SetPropertyInError(unsigned long,unsigned long) __ptr64
?SetPropertyInError@CUtlProps2@@QEAAXKK@Z
; public: void __cdecl CUtlProps2::SetPropertyStatus(unsigned long,struct tagDBPROPSET const * __ptr64 const) __ptr64
?SetPropertyStatus@CUtlProps2@@QEAAXKQEBUtagDBPROPSET@@@Z
; private: void __cdecl CRowsetConnectionPoint::SetReasons(void) __ptr64
?SetReasons@CRowsetConnectionPoint@@AEAAXXZ
; public: long __cdecl CBitArray::SetSlot(unsigned __int64) __ptr64
?SetSlot@CBitArray@@QEAAJ_K@Z
; public: long __cdecl CBitArray::SetSlots(unsigned __int64,unsigned __int64) __ptr64
?SetSlots@CBitArray@@QEAAJ_K0@Z
; public: void __cdecl CUtlProps2::SetStatus(unsigned long,unsigned long,unsigned long) __ptr64
?SetStatus@CUtlProps2@@QEAAXKKK@Z
; protected: void __cdecl CUtlPropInfo::SetUPropSetCount(unsigned long) __ptr64
?SetUPropSetCount@CUtlPropInfo@@IEAAXK@Z
; public: void __cdecl CUtlProps2::SetUPropSetCount(unsigned long) __ptr64
?SetUPropSetCount@CUtlProps2@@QEAAXK@Z
; public: void __cdecl CUtlProps2::SetValBool(unsigned long,unsigned long,short) __ptr64
?SetValBool@CUtlProps2@@QEAAXKKF@Z
; public: void __cdecl CUtlProps2::SetValByRef(unsigned long,unsigned long,void * __ptr64) __ptr64
?SetValByRef@CUtlProps2@@QEAAXKKPEAX@Z
; public: void __cdecl CUtlProps2::SetValEmpty(unsigned long,unsigned long) __ptr64
?SetValEmpty@CUtlProps2@@QEAAXKK@Z
; public: void __cdecl CUtlProps2::SetValLong(unsigned long,unsigned long,long) __ptr64
?SetValLong@CUtlProps2@@QEAAXKKJ@Z
; public: void __cdecl CUtlProps2::SetValLongLong(unsigned long,unsigned long,__int64) __ptr64
?SetValLongLong@CUtlProps2@@QEAAXKK_J@Z
; public: void __cdecl CUtlProps2::SetValShort(unsigned long,unsigned long,short) __ptr64
?SetValShort@CUtlProps2@@QEAAXKKF@Z
; public: long __cdecl CUtlProps2::SetValString(unsigned long,unsigned long,unsigned short const * __ptr64) __ptr64
?SetValString@CUtlProps2@@QEAAJKKPEBG@Z
; public: long __cdecl CUtlProps2::SetVariant(unsigned long,unsigned long,struct tagVARIANT * __ptr64) __ptr64
?SetVariant@CUtlProps2@@QEAAJKKPEAUtagVARIANT@@@Z
; public: long __cdecl CEnum::Skip(unsigned long) __ptr64
?Skip@CEnum@@QEAAJK@Z
; public: virtual long __cdecl CEnumConnectionPoints::Skip(unsigned long) __ptr64
?Skip@CEnumConnectionPoints@@UEAAJK@Z
; public: virtual long __cdecl CEnumConnections::Skip(unsigned long) __ptr64
?Skip@CEnumConnections@@UEAAJK@Z
; public: void __cdecl CExtBuffer::Transfer(class CExtBuffer * __ptr64) __ptr64
?Transfer@CExtBuffer@@QEAAXPEAV1@@Z
; long __cdecl UnRegisterServer(void * __ptr64 const,unsigned long,struct tagREGENTRIES const * __ptr64 const)
?UnRegisterServer@@YAJQEAXKQEBUtagREGENTRIES@@@Z
; public: virtual long __cdecl CRowsetConnectionPoint::Unadvise(unsigned long) __ptr64
?Unadvise@CRowsetConnectionPoint@@UEAAJK@Z
; public: void * __ptr64 __cdecl CVLHeap::VLAlloc(unsigned __int64) __ptr64
?VLAlloc@CVLHeap@@QEAAPEAX_K@Z
; public: void __cdecl CVLHeap::VLFree(void * __ptr64) __ptr64
?VLFree@CVLHeap@@QEAAXPEAX@Z
; public: void * __ptr64 __cdecl CVLHeap::VLGrow(void * __ptr64,unsigned __int64) __ptr64
?VLGrow@CVLHeap@@QEAAPEAXPEAX_K@Z
; public: void * __ptr64 __cdecl CVLHeap::VLTrueRealloc(void * __ptr64,unsigned __int64) __ptr64
?VLTrueRealloc@CVLHeap@@QEAAPEAXPEAX_K@Z
; long __cdecl W95ConvertToAnsiOrOem(unsigned short const * __ptr64,char * __ptr64 * __ptr64,unsigned long,unsigned long * __ptr64,int,int)
?W95ConvertToAnsiOrOem@@YAJPEBGPEAPEADKPEAKHH@Z
; long __cdecl W95ConvertToUnicode(char const * __ptr64,long,unsigned short * __ptr64 * __ptr64,unsigned long * __ptr64,int,int)
?W95ConvertToUnicode@@YAJPEBDJPEAPEAGPEAKHH@Z
; public: long __cdecl CExtBuffer::WriteIntoExtBuffer(void const * __ptr64,unsigned __int64) __ptr64
?WriteIntoExtBuffer@CExtBuffer@@QEAAJPEBX_K@Z
; public: long __cdecl CExtBuffer::WriteWCharToExtBuffer(unsigned short,unsigned __int64) __ptr64
?WriteWCharToExtBuffer@CExtBuffer@@QEAAJG_K@Z
; public: int __cdecl CBaseObjBoko::ZombieMustUnprepare(void) __ptr64
?ZombieMustUnprepare@CBaseObjBoko@@QEAAHXZ
; public: int __cdecl CBaseObjZombie::ZombieMustUnprepare(void) __ptr64
?ZombieMustUnprepare@CBaseObjZombie@@QEAAHXZ
; public: int __cdecl CBitArray::fGetCopyOf(class CBitArray * __ptr64) __ptr64
?fGetCopyOf@CBitArray@@QEAAHPEAV1@@Z
; public: int __cdecl CRowsetConnectionPoint::fInit(void) __ptr64
?fInit@CRowsetConnectionPoint@@QEAAHXZ
; public: int __cdecl CConnectData::fOkToFire(enum DBREASONENUM,enum DBEVENTPHASEENUM) __ptr64
?fOkToFire@CConnectData@@QEAAHW4DBREASONENUM@@W4DBEVENTPHASEENUM@@@Z
; public: int __cdecl CRowsetConnectionPoint::fReasonNeeded(enum DBREASONENUM,enum DBEVENTPHASEENUM) __ptr64
?fReasonNeeded@CRowsetConnectionPoint@@QEAAHW4DBREASONENUM@@W4DBEVENTPHASEENUM@@@Z
; public: int __cdecl CRowsetConnectionPointContainer::fReasonNeeded(unsigned long,enum DBREASONENUM,enum DBEVENTPHASEENUM) __ptr64
?fReasonNeeded@CRowsetConnectionPointContainer@@QEAAHKW4DBREASONENUM@@W4DBEVENTPHASEENUM@@@Z
; private: static unsigned long const * const  CUtlProps2::sm_rgPropStatusFromInternStatus
?sm_rgPropStatusFromInternStatus@CUtlProps2@@0QBKB
