windows-nt/Source/XPSP1/NT/base/wmi/bmoflocparser/inc/locutil/locenum.h

340 lines
7.9 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
//-----------------------------------------------------------------------------
//
// File: locenum.h
// Copyright (C) 1994-1997 Microsoft Corporation
// All rights reserved.
//
//
//
//-----------------------------------------------------------------------------
//------------------------------------------------------------------------------
class LTAPIENTRY CStringType
{
public:
//
// This order is important - if must change it, make sure you make the
// corresponding changes in GetTypeName() and GetTypeTLA()!
// All new values must be added TO THE END, or you will break old
// parsers...
//
// NOTE: These #include files define an enumeration. They MUST be inside this
// class definition.
//
#include "PreCEnum.h"
#include "EnumStringType.h"
static int DefaultValue;
NOTHROW static const TCHAR * GetTypeName(CStringType::StringType);
NOTHROW static const TCHAR * GetTypeTLA(CStringType::StringType);
static void Enumerate(CEnumCallback &);
static const CStringType::StringType GetStringType(const TCHAR * tChIn);
static const TCHAR * GetDefaultStringTypeText();
static const CStringType::StringType GetDefaultStringType();
static bool IsValidStringType(const CStringType::StringType &nIn);
static bool IsValidStringType(const TCHAR * tChIn);
private:
//
// Nobody should actually CONTRUCT one of these.
//
CStringType();
//
// Used to store the info about each element in the enum...
//
struct StringTypeInfo
{
TCHAR szTLA[4];
const TCHAR * szName;
};
static const StringTypeInfo m_Info[];
};
typedef CStringType CST;
//------------------------------------------------------------------------------
class LTAPIENTRY CPlatform
{
public:
// NOTE: These #include files define an enumeration. They MUST be inside this
// class definition.
//
#include "PreCEnum.h"
#include "EnumPlatform.h"
NOTHROW static const TCHAR * GetPlatformName(CPlatform::Platform);
static void Enumerate(CEnumCallback &);
static const CPlatform::Platform CPlatform::GetPlatformType(const TCHAR * tChplat);
static const TCHAR * GetDefaultPlatformText();
static const CPlatform::Platform GetDefaultPlatform();
static bool IsValidPlatform(const CPlatform::Platform &nIn);
static bool IsValidPlatform(const TCHAR * tChplat);
private:
static int DefaultValue;
static const TCHAR * const m_szPlatformNames[];
};
//------------------------------------------------------------------------------
class LTAPIENTRY CLocApprovalState
{
public:
enum ApprovalState
{
Invalid = 0,
Old_Pending, // OBSOLETE! Do Not Use!
Approved,
PreApproved,
NotReady,
Failed,
ForResearch,
NotApplicable
};
static ApprovalState DefaultValue;
NOTHROW static const TCHAR * GetApprovalText(CLocApprovalState::ApprovalState);
static void Enumerate(CEnumCallback &);
static const CLocApprovalState::ApprovalState GetApprovalState(const TCHAR * );
static const TCHAR * GetDefaultApprovalText();
static const CLocApprovalState::ApprovalState GetDefaultApprovalState();
static BOOL IsValidApprovalState(const CLocApprovalState::ApprovalState &nIn);
static BOOL IsValidApprovalState(const TCHAR * );
private:
struct SStateName
{
ApprovalState as;
const TCHAR *szName;
};
static const SStateName m_aStateNames[];
CLocApprovalState();
};
typedef CLocApprovalState CAS;
//------------------------------------------------------------------------------
class LTAPIENTRY CLocAutoApproved
{
// Operations
public:
enum AutoApproved
{
Invalid = 0,
No,
Partial,
Yes,
NotApplicable
};
NOTHROW static TCHAR const * GetAutoApprovedText(AutoApproved const aa);
static void Enumerate(CEnumCallback & cbEnumCallback);
static AutoApproved const GetAutoApproved(TCHAR const * const tChIn);
static TCHAR const * GetDefaultAutoApprovedText();
static AutoApproved const GetDefaultAutoApproved();
static bool IsValidAutoApproved(AutoApproved const nIn);
static bool IsValidAutoApproved(TCHAR const * tChIn);
// Construction
private:
// prevent constructing, copying and assigning
CLocAutoApproved();
CLocAutoApproved(CLocAutoApproved const &);
CLocAutoApproved const & operator=(CLocAutoApproved const &);
// Member Variables
private:
static TCHAR const * const m_szAutoApprovedNames[];
static AutoApproved const DefaultValue;
};
typedef CLocAutoApproved CAA;
//------------------------------------------------------------------------------
class LTAPIENTRY CLocTranslationOrigin
{
public:
enum TranslationOrigin
{
Invalid = 0,
New,
Uploaded,
AutoTranslated,
Copied,
PreviousVersion,
NotApplicable
};
NOTHROW static const TCHAR * GetOriginText(CLocTranslationOrigin::TranslationOrigin);
static void Enumerate(CEnumCallback &);
private:
static const TCHAR *const m_szOriginNames[];
CLocTranslationOrigin();
};
typedef CLocTranslationOrigin CTO;
class LTAPIENTRY COutputTabs
{
public:
enum OutputTabs
{
File,
Test,
Messages,
Update,
Utility,
GlobalErrorBox,
OutputMax
};
static void Enumerate(CEnumCallback &);
private:
static const UINT m_nStateNames[];
COutputTabs();
};
class LTAPIENTRY CValidationCode
{
public:
enum ValidationCode
{
NotHandled, // for sub-parser use ONLY
NoError,
Warning,
Error
};
NOTHROW static ValidationCode UpgradeValue(ValidationCode OldValue,
ValidationCode NewValue);
private:
CValidationCode();
};
typedef CValidationCode CVC;
//------------------------------------------------------------------------------
class LTAPIENTRY CValidationOptions
{
public:
CValidationOptions();
enum ValidationOption
{
CheckDBCSHotKeyPos = 0,
CheckDBCSHotKeyChar,
CheckRemovedHotKey,
CheckAddedHotKey,
CheckHotKeyPosition,
CheckRemovedAccelerator,
CheckReorderableParams,
CheckPrintf,
CheckBlankTarget,
CheckBlankSource,
CheckNewLineCount,
CheckChangedTerminator,
CheckLeadingPunctuation,
CheckTrailingPunctuation,
CheckLeadingSpaces,
CheckTrailingSpaces,
CheckTranslationSize,
CheckNULChanges,
CheckCharsInCodePage,
//
// Internal value, DO NOT USE
//
END_MARKER
};
static void Enumerate(CEnumCallback &);
NOTHROW static void GetText(ValidationOption, CLString &);
NOTHROW static void GetLongText(ValidationOption vo, CLString &strText);
NOTHROW void SetFlag(ValidationOption, BOOL);
NOTHROW BOOL GetFlag(ValidationOption) const;
NOTHROW const CValidationOptions & operator=(const CValidationOptions &);
private:
DWORD dwFlags;
};
typedef CValidationOptions CVO;
//------------------------------------------------------------------------------
class LTAPIENTRY CAmpKeyword
{
public:
enum AmpKeyword
{
amp = 0,
lt,
gt,
};
static const WCHAR * GetValue(CAmpKeyword::AmpKeyword);
static unsigned int GetValueLength(CAmpKeyword::AmpKeyword);
static WCHAR GetEquivalentChar(CAmpKeyword::AmpKeyword);
static int FindAmpKeyword(const WCHAR * pwszStr, unsigned int nPos);
private:
//
// Nobody should actually CONTRUCT one of these.
//
CAmpKeyword();
//
// Used to store the info about each element in the enum...
//
struct SAmpKeyword
{
const WCHAR * m_wszValue;
WCHAR m_chEquivalentChar;
};
static const SAmpKeyword m_aAmpKeywords[];
static const int m_nNumAmpKeywords;
};
typedef CAmpKeyword CAK;
//------------------------------------------------------------------------------
// CEnumIntoPasStrList provides a method of enumerating directly into a list of
// CPascalString's.
//
// ASSUMPTIONS:
// 1. Enumerators will send data in proper increasing order
// 2. No gaps in indicies.
//
class LTAPIENTRY CEnumIntoPasStrList: public CEnumCallback
{
// Construction
public:
CEnumIntoPasStrList(CPasStringList & lstPasStr, BOOL fLock = TRUE);
~CEnumIntoPasStrList();
// CEnumCallback implementation
public:
virtual void SetRange(UINT nStart, UINT nFinish);
virtual BOOL ProcessEnum(const EnumInfo &);
protected:
CPasStringList & m_lstPasStr;
UINT m_nStart; // Start of range
UINT m_nFinish; // End of range
UINT m_nCurrent; // Check of current item TO retrieve
BOOL m_fLock; // Lock list when finished
};