[ATL][ATL_APITEST] Test + implement CHeapPtrList

This commit is contained in:
Mark Jansen 2020-01-08 23:26:06 +01:00
parent 09cfb2823c
commit 008745d951
No known key found for this signature in database
GPG key ID: B39240EE84BEAE8B
7 changed files with 340 additions and 1 deletions

View file

@ -157,6 +157,17 @@ class CElementTraits :
};
template<typename T, class Allocator = CCRTAllocator>
class CHeapPtrElementTraits :
public CDefaultElementTraits< CHeapPtr<T, Allocator> >
{
public:
typedef CHeapPtr<T, Allocator>& INARGTYPE;
typedef T*& OUTARGTYPE;
};
template<typename E, class ETraits = CElementTraits<E> >
class CAtlArray
{
@ -852,6 +863,23 @@ typename CAtlList<E, ETraits>::CNode* CAtlList< E, ETraits>::GetFreeNode()
return m_FreeNode;
}
template<typename E, class Allocator = CCRTAllocator >
class CHeapPtrList :
public CAtlList<CHeapPtr<E, Allocator>, CHeapPtrElementTraits<E, Allocator> >
{
public:
CHeapPtrList(_In_ UINT nBlockSize = 10) :
CAtlList<CHeapPtr<E, Allocator>, CHeapPtrElementTraits<E, Allocator> >(nBlockSize)
{
}
private:
CHeapPtrList(const CHeapPtrList&);
CHeapPtrList& operator=(const CHeapPtrList*);
};
}
#endif