nameditemlist.h

#ifndef NAMEDITEMLIST_H // {
#define NAMEDITEMLIST_H

class NamedItemList
{

private:

    class NamedItem
{
private:

        NamedItem();

    public:

        ~NamedItem();
static HRESULT Create(const WCHAR * pszName, NamedItem * * ppNamedItem);

NamedItem * m_pNext;
BSTR m_bstrName;
DWORD m_flags;

        BOOL IsPersistent();
void Reset();
};

    NamedItemList();
NamedItem * Find(const WCHAR * psz);
Mutex * m_pMutex;
NamedItem * * m_Buckets;
int m_cBuckets;

public:

    ~NamedItemList();

    static HRESULT Create(int cBuckets, NamedItemList * * ppNamedItemList);
HRESULT Add(const WCHAR * pszName, DWORD flags);
void Reset(void);
void Clear(void);
HRESULT Clone(NamedItemList * * ppNamedItemList);
};

#endif // NAMEDITEMLIST_H }