Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
ptrarray.h
Package: shell.rar [view]
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 2k
Category:
Windows Kernel
Development Platform:
Visual C++
- /*
- * ptrarray.h - Pointer array ADT description.
- */
- /* Constants
- ************/
- /*
- * ARRAYINDEX_MAX is set such that (ARRAYINDEX_MAX + 1) does not overflow an
- * ARRAYINDEX. This guarantee allows GetPtrCount() to return a count of
- * pointers as an ARRAYINDEX.
- */
- #define ARRAYINDEX_MAX (LONG_MAX - 1)
- /* Types
- ********/
- /* handles */
- DECLARE_HANDLE(HPTRARRAY);
- DECLARE_STANDARD_TYPES(HPTRARRAY);
- /* array index */
- typedef LONG ARRAYINDEX;
- DECLARE_STANDARD_TYPES(ARRAYINDEX);
- /*
- * pointer comparison callback function
- *
- * In sorting functions, both pointers are pointer array elements. In
- * searching functions, the first pointer is reference data and the second
- * pointer is a pointer array element.
- */
- typedef COMPARISONRESULT (*COMPARESORTEDPTRSPROC)(PCVOID, PCVOID);
- /*
- * pointer comparison callback function
- *
- * In searching functions, the first pointer is reference data and the second
- * pointer is a pointer array element.
- */
- typedef BOOL (*COMPAREUNSORTEDPTRSPROC)(PCVOID, PCVOID);
- /* new pointer array flags */
- typedef enum _newptrarrayflags
- {
- /* Insert elements in sorted order. */
- NPA_FL_SORTED_ADD = 0x0001,
- /* flag combinations */
- ALL_NPA_FLAGS = NPA_FL_SORTED_ADD
- }
- NEWPTRARRAYFLAGS;
- /* new pointer array description */
- typedef struct _newptrarray
- {
- DWORD dwFlags;
- ARRAYINDEX aicInitialPtrs;
- ARRAYINDEX aicAllocGranularity;
- }
- NEWPTRARRAY;
- DECLARE_STANDARD_TYPES(NEWPTRARRAY);
- /* Prototypes
- *************/
- /* ptrarray.c */
- extern BOOL CreatePtrArray(PCNEWPTRARRAY, PHPTRARRAY);
- extern void DestroyPtrArray(HPTRARRAY);
- extern BOOL InsertPtr(HPTRARRAY, COMPARESORTEDPTRSPROC, ARRAYINDEX, PCVOID);
- extern BOOL AddPtr(HPTRARRAY, COMPARESORTEDPTRSPROC, PCVOID, PARRAYINDEX);
- extern void DeletePtr(HPTRARRAY, ARRAYINDEX);
- extern void DeleteAllPtrs(HPTRARRAY);
- extern ARRAYINDEX GetPtrCount(HPTRARRAY);
- extern PVOID GetPtr(HPTRARRAY, ARRAYINDEX);
- extern void SortPtrArray(HPTRARRAY, COMPARESORTEDPTRSPROC);
- extern BOOL SearchSortedArray(HPTRARRAY, COMPARESORTEDPTRSPROC, PCVOID, PARRAYINDEX);
- extern BOOL LinearSearchArray(HPTRARRAY, COMPAREUNSORTEDPTRSPROC, PCVOID, PARRAYINDEX);
- #if defined(DEBUG) || defined(VSTF)
- extern BOOL IsValidHPTRARRAY(HPTRARRAY);
- #endif
- #ifdef VSTF
- extern BOOL IsValidHGLOBAL(HGLOBAL);
- #endif