53 lines
2 KiB
C++
53 lines
2 KiB
C++
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// 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
|
|
|