mirror of https://github.com/tongzx/nt5src
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.
52 lines
2.0 KiB
52 lines
2.0 KiB
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Microsoft WMIOLE DB Provider
|
|
// (C) Copyright 1999 Microsoft Corporation. All Rights Reserved.
|
|
//
|
|
// Class Definitions for Bitarray Class
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
#ifndef _BITARRAY_H_
|
|
#define _BITARRAY_H_
|
|
|
|
//=================================================================================
|
|
// Forward Declaration
|
|
//=================================================================================
|
|
class FAR CBitArray;
|
|
typedef CBitArray FAR *LPBITARRAY;
|
|
|
|
//=================================================================================
|
|
// Allocates and manages a bit array through various methods defined in the class
|
|
//
|
|
// hungarian bits or pbits
|
|
//
|
|
//=================================================================================
|
|
class FAR CBitArray
|
|
{
|
|
private:
|
|
|
|
LONG_PTR m_cslotCurrent; //Count of Slots
|
|
LONG_PTR m_cPageMax; //Maximum number of pages
|
|
LONG_PTR m_cPageCurrent; //Current number of pages
|
|
LONG_PTR m_cbPage; //Number of bytes per page
|
|
BYTE m_rgbBitMask[8]; //Mask buffer
|
|
BYTE * m_rgbBit; //Bit Array
|
|
|
|
|
|
public:
|
|
|
|
CBitArray( void ); //Class constructor
|
|
~CBitArray( void ); //Class destructor
|
|
|
|
STDMETHODIMP FInit(HSLOT cslotMax, ULONG cbPage); //Initialization method
|
|
STDMETHODIMP SetSlots(HSLOT islotFirst, HSLOT islotLast); //Set a range of slots
|
|
STDMETHODIMP ResetSlots(HSLOT islotFirst, HSLOT islotLast); //Reset a range of slots
|
|
VOID ResetAllSlots(void); //Reset all slots
|
|
STDMETHODIMP ArrayEmpty(void); //Check if any bits are set
|
|
STDMETHODIMP IsSlotSet(HSLOT islot); //Check the status of a particular bit
|
|
STDMETHODIMP FindSet(HSLOT islotStart, HSLOT islotLimit, HSLOT* pislot); //Find the first set bit in a range of bits
|
|
|
|
};
|
|
|
|
#endif
|
|
|