Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//Copyright (c) 1998 - 1999 Microsoft Corporation
/*********************************************************************************************
* * * Module Name: * * Ptrarray.h * * Abstract: * This is file has declaration of CPtrArray class borrowed from MFC * * Author: * * * Revision: * * ************************************************************************************************/
#ifndef PTRARRAY_H_
#define PTRARRAY_H_
class CPtrArray { public:
// Construction
CPtrArray();
// Attributes
int GetSize() const; int GetUpperBound() const; BOOL SetSize(int nNewSize, int nGrowBy = -1);
// Operations
// Clean up
void FreeExtra(); void RemoveAll();
// Accessing elements
void* GetAt(int nIndex) const; void SetAt(int nIndex, void* newElement); void*& ElementAt(int nIndex);
// Direct Access to the element data (may return NULL)
const void** GetData() const; void** GetData();
// Potentially growing the array
BOOL SetAtGrow(int nIndex, void* newElement); BOOL Add(void* newElement); int Append(const CPtrArray& src); void Copy(const CPtrArray& src);
// overloaded operator helpers
void* operator[](int nIndex) const; void*& operator[](int nIndex);
// Operations that move elements around
BOOL InsertAt(int nIndex, void* newElement, int nCount = 1); void RemoveAt(int nIndex, int nCount = 1); void InsertAt(int nStartIndex, CPtrArray* pNewArray);
// Implementation
protected: void** m_pData; // the actual array of data
int m_nSize; // # of elements (upperBound - 1)
int m_nMaxSize; // max allocated
int m_nGrowBy; // grow amount
public: ~CPtrArray(); protected: // local typedefs for class templates
// typedef void* BASE_TYPE;
// typedef void* BASE_ARG_TYPE;
};
#endif
|