mirror of https://github.com/lianthony/NT4.0
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.
86 lines
2.1 KiB
86 lines
2.1 KiB
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
Copyright (c) 1993 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
pointer.hxx
|
|
|
|
Abstract:
|
|
|
|
Pointer dictionary and other pointer stuff.
|
|
|
|
Author:
|
|
|
|
Ryszard K. Kott (ryszardk) created Aug 17, 1994.
|
|
|
|
Revision History:
|
|
|
|
-------------------------------------------------------------------*/
|
|
|
|
#include "pdict.hxx"
|
|
|
|
#ifndef __POINTER_HXX__
|
|
#define __POINTER_HXX__
|
|
|
|
class POINTER;
|
|
class NDR;
|
|
|
|
typedef struct _PointerDictElem
|
|
{
|
|
long Offset; // the dictionary key
|
|
POINTER * pMember;
|
|
} POINTER_DESC;
|
|
|
|
|
|
class PTR_DICT : public Dictionary
|
|
{
|
|
private:
|
|
unsigned short EntryCount;
|
|
|
|
public:
|
|
|
|
PTR_DICT() : Dictionary()
|
|
{
|
|
EntryCount = 0;
|
|
}
|
|
|
|
~PTR_DICT()
|
|
{
|
|
// Cannot delete members here because
|
|
// they may be in the parent dict, too.
|
|
// DeleteDictMembers();
|
|
}
|
|
|
|
BOOL IsInDictionary( long Key );
|
|
|
|
// Register an entry.
|
|
|
|
void Register( long Offset,
|
|
POINTER * pMember );
|
|
|
|
unsigned short GetCount()
|
|
{
|
|
return EntryCount;
|
|
}
|
|
|
|
POINTER_DESC * GetFirst();
|
|
POINTER_DESC * GetNext();
|
|
POINTER_DESC * GetPrev();
|
|
|
|
POINTER * GetPointerMember( long BufferOffset );
|
|
|
|
int Compare( pUserType pL, pUserType pR );
|
|
|
|
void AddDictEntries( PTR_DICT * pDict );
|
|
|
|
void DeleteDictMembers();
|
|
|
|
void OutputPointees( NDR * pObject );
|
|
};
|
|
|
|
|
|
|
|
#endif // __POINTER__HXX__
|
|
|
|
|