2025-04-27 07:49:33 -04:00

57 lines
2.4 KiB
C++

/******************************************************************************
Header File: Code Page Knowledge Base.H
This encapsulates a C++ class which will reside in this DLL. It will provide
all of the basic information needed to manage and translate code pages for the
Minidriver Development Tool.
Copyright (c) 1997 by Microsoft Corporation
******************************************************************************/
class AFX_EXT_CLASS CCodePageInformation {
DWORD m_dwidMapped, m_dwidIn, m_dwidOut; // CP cached in each array
CByteArray m_cbaMap; // Raw Map
CWordArray m_cwaIn, m_cwaOut; // Full MB2Uni and Uni2MB maps
BOOL Load(DWORD dwidMap); // Load the support page
BOOL Map(BOOL bUnicode); // Map the requested direction
BOOL GenerateMap(DWORD dwidMap) const; // Create resource for RC file
// based on this code page
public:
CCodePageInformation();
// Attributes
const unsigned InstalledCount() const; // Code pages in )S
const unsigned MappedCount() const; // Code pages in RC file
const unsigned SupportedCount() const; // Code pages supported by OS
const DWORD Installed(unsigned u) const; // Retrieve one
const DWORD Mapped(unsigned u) const; // Retrieve one
void Mapped(CDWordArray& cdwaReturn) const; // The IDs
const DWORD Supported(unsigned u) const; // Retrieve one
CString Name(DWORD dw) const; // Name of the code page
// cf RC file
BOOL IsInstalled(DWORD dwPage) const;
BOOL HaveMap(DWORD dwPage) const;
// DBCS query- is page DBCS? if so is this code point DBCS?
BOOL IsDBCS(DWORD dwidPage);
BOOL IsDBCS(DWORD dwidPage, WORD wCodePoint);
// Operations
unsigned Convert(CByteArray& cbaMBCS, CWordArray& cbaWC,
DWORD dwidPage);
BOOL GenerateAllMaps() const; // Gen resources for any
// installed & unsupported
BOOL Collect(DWORD dwidMap, CWordArray& cwaWhere,
BOOL bUnicode = TRUE);
};