windows-nt/Source/XPSP1/NT/base/fs/utils/ulib/inc/stringar.hxx
2020-09-26 16:20:57 +08:00

83 lines
1.8 KiB
C++

/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
stringar.hxx
Abstract:
This module contains the definitions for the STRING_ARRAY class.
STRING_ARRAY is used only to store strings, and it provides a
method to sort the strings in ascending or descending order.
The sort methods uses the qsort() function of the C run time
library.
Author:
Jaime F. Sasson (jaimes) 01-May-1991
Environment:
ULIB, User Mode
--*/
#if ! defined( _STRING_ARRAY_ )
#define _STRING_ARRAY_
//
// Default values for an STRING_ARRAY object.
//
// - Capacity is the total number of elemnts that can be stored in an STRING_ARRAY
// - CapacityIncrement is the number of elemnts that the STRING_ARRAY's Capacity
// will be increased by when it's Capacity is exceeded
//
CONST CHNUM DefaultPosition = 0;
// CONST ULONG DefaultCapacity = 50;
// CONST ULONG DefaultCapacityIncrement = 25;
class STRING_ARRAY : public ARRAY {
public:
ULIB_EXPORT
DECLARE_CONSTRUCTOR( STRING_ARRAY );
NONVIRTUAL
ULIB_EXPORT
BOOLEAN
Initialize (
IN CHNUM Position DEFAULT DefaultPosition,
IN ULONG Capacity DEFAULT DefaultCapacity,
IN ULONG CapacityIncrement DEFAULT DefaultCapacityIncrement
);
NONVIRTUAL
ULIB_EXPORT
BOOLEAN
Sort(
IN BOOLEAN Ascending
);
private:
static
NONVIRTUAL
int __cdecl
StringCompare(
IN const void * String1,
IN const void * String2
);
static CHNUM _Position;
static BOOLEAN _Ascending;
};
#endif // _STRING_ARRAY_