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.
 
 
 
 
 
 

94 lines
2.1 KiB

//-----------------------------------------------------------------------------
//
// File: espnls.h
// Copyright (C) 1994-1997 Microsoft Corporation
// All rights reserved.
//
// Language support functions for Espresso.
//
//-----------------------------------------------------------------------------
#ifndef ESPUTIL_ESPNLS_H
#define ESPUTIL_ESPNLS_H
typedef int CodePage;
const CodePage cpInvalidCodePage = 0xDEADBEEF;
const CodePage US_ACP = 1252;
typedef WORD LangId;
const int BAD_LOCALE = 0xFFFF;
enum CodePageType
{
cpUnknown,
cpAnsi,
cpDos,
cpMac,
cpUnicode
};
struct LanguageInfo
{
LangId lid;
CodePage cpAnsi;
CodePage cpDos;
CodePage cpMac;
const TCHAR *szName;
const TCHAR *szShortName;
WORD fLangFlags;
};
const WORD lfNoFlags = 0;
const WORD lfDBCSHotKey = 0x0001;
typedef void (*pfnLangHandler)(const LanguageInfo &, void *);
class LTAPIENTRY CLocLangId
{
public:
CLocLangId(void);
LTASSERTONLY(void AssertValid(void) const);
NOTHROW LangId GetLanguageId(void) const;
NOTHROW CodePage GetCodePage(CodePageType) const;
NOTHROW void GetLangName(CLString &) const;
NOTHROW void GetLangShortName(CLString &) const;
NOTHROW BOOL SetLanguageId(LangId);
NOTHROW const CLocLangId & operator=(const CLocLangId &);
NOTHROW int operator==(const CLocLangId &) const;
NOTHROW int operator!=(const CLocLangId &) const;
NOTHROW static UINT GetNumLangInfo(void);
static void EnumerateLanguages(pfnLangHandler, void *);
static void Enumerate(CEnumCallback &);
NOTHROW static BOOL IsDBCSHotKey(LangId);
NOTHROW BOOL IsDBCSHotKey(void) const;
NOTHROW static BOOL IsValidLangId(LangId lid);
LTASSERTONLY(~CLocLangId());
private:
//
// Private implementation.
//
NOTHROW static const LanguageInfo & LocateLangInfo(LangId);
NOTHROW static const LanguageInfo & GetLangInfo(UINT);
//
// Private data.
//
LangId m_lid;
const LanguageInfo *m_pLangInfo;
};
#if !defined(_DEBUG) || defined(IMPLEMENT)
#include "espnls.inl"
#endif
#endif // ESPUTIL_ESPNLS_H