/****************************************************************************** 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); };