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