Leaked source code of windows server 2003
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.
 
 
 
 
 
 

105 lines
2.5 KiB

//-----------------------------------------------------------------------------
//
// File: optvalset.h
// Copyright (C) 1994-1997 Microsoft Corporation
// All rights reserved.
//
//
//
//-----------------------------------------------------------------------------
#pragma once
#pragma warning(disable: 4275) // non dll-interface class 'foo' used
// as base for dll-interface class 'bar'
class LTAPIENTRY CLocOptionValEnumCallback : public CObject
{
public:
CLocOptionValEnumCallback() {};
void AssertValid(void) const;
virtual BOOL ProcessOption(CLocOptionVal *) = 0;
virtual BOOL ProcessOption(const CLocOptionVal *) = 0;
private:
CLocOptionValEnumCallback(const CLocOptionValEnumCallback &);
void operator=(int);
};
class LTAPIENTRY CLocOptionValSet;
class LTAPIENTRY CLocOptionValSetList :
public CTypedPtrList<CPtrList, CLocOptionValSet *>
{
public:
NOTHROW CLocOptionValSetList() {};
void AssertValid(void) const;
NOTHROW void ReleaseAll();
NOTHROW ~CLocOptionValSetList();
private:
CLocOptionValSetList(const CLocOptionValSetList &);
void operator=(const CLocOptionValSetList &);
};
class LTAPIENTRY CLocOptionValSet : public CRefCount, public CObject
{
public:
NOTHROW CLocOptionValSet();
void AssertValid(void) const;
NOTHROW void AddOption(CLocOptionVal *);
NOTHROW void AddOptionSet(CLocOptionValSet *);
NOTHROW void SetName(const CLString &);
NOTHROW const CLocOptionValList & GetOptionList(void) const;
NOTHROW const CLocOptionValSetList & GetOptionSets(void) const;
NOTHROW BOOL FindOptionVal(const CLString &, CLocOptionVal *&pOption);
NOTHROW BOOL FindOptionVal(const CLString &, const CLocOptionVal *&pOption) const;
NOTHROW const CLString & GetName(void) const;
NOTHROW BOOL IsEmpty(void) const;
BOOL EnumOptions(CLocOptionValEnumCallback *);
BOOL EnumOptions(CLocOptionValEnumCallback *) const;
//
// Escape hatch.
//
NOTHROW void * GetPExtra(void) const;
NOTHROW DWORD GetDWExtra(void) const;
NOTHROW void SetExtra(void *);
NOTHROW void SetExtra(DWORD);
protected:
NOTHROW virtual ~CLocOptionValSet();
private:
CLocOptionValList m_olOptions;
CLocOptionValSetList m_oslSubOptions;
CLString m_strName;
union
{
void *m_pExtra;
DWORD m_dwExtra;
};
CLocOptionValSet(const CLocOptionValSet &);
void operator=(const CLocOptionValSet &);
};
#pragma warning(default: 4275)
#if !defined(_DEBUG) || defined(IMPLEMENT)
#include "optvalset.inl"
#endif