231 lines
5 KiB
C
231 lines
5 KiB
C
/*++
|
|
|
|
Copyright (c) 1992 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
console.h
|
|
|
|
Abstract:
|
|
|
|
This module contains the definitions for the console applet
|
|
|
|
Author:
|
|
|
|
Jerry Shea (jerrysh) Feb-3-1992
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#include "font.h"
|
|
#include "doshelp.h"
|
|
|
|
|
|
//
|
|
// Icon ID
|
|
//
|
|
|
|
#define IDI_CONSOLE 1
|
|
|
|
|
|
//
|
|
// String table constants
|
|
//
|
|
|
|
#define IDS_NAME 1
|
|
#define IDS_INFO 2
|
|
#define IDS_TITLE 3
|
|
#define IDS_RASTERFONT 4
|
|
#define IDS_FONTSIZE 5
|
|
#define IDS_SELECTEDFONT 6
|
|
#define IDS_SAVE 7
|
|
#define IDS_LINKERRCAP 8
|
|
#define IDS_LINKERROR 9
|
|
#define IDS_WARNING 10
|
|
|
|
|
|
//
|
|
// Global Variables
|
|
//
|
|
|
|
extern HINSTANCE ghInstance;
|
|
extern PCONSOLE_STATE_INFO gpStateInfo;
|
|
extern PFONT_INFO FontInfo;
|
|
extern ULONG NumberOfFonts;
|
|
extern ULONG CurrentFontIndex;
|
|
extern ULONG DefaultFontIndex;
|
|
extern TCHAR DefaultFaceName[];
|
|
extern COORD DefaultFontSize;
|
|
extern BYTE DefaultFontFamily;
|
|
extern TCHAR szPreviewText[];
|
|
extern PFACENODE gpFaceNames;
|
|
extern BOOL gbEnumerateFaces;
|
|
extern LONG gcxScreen;
|
|
extern LONG gcyScreen;
|
|
|
|
#if defined(FE_SB)
|
|
extern UINT OEMCP;
|
|
extern BOOL gfFESystem;
|
|
extern BOOL fChangeCodePage;
|
|
|
|
|
|
NTSTATUS
|
|
MakeAltRasterFont(
|
|
UINT CodePage,
|
|
COORD *AltFontSize,
|
|
BYTE *AltFontFamily,
|
|
ULONG *AltFontIndex,
|
|
LPTSTR AltFaceName
|
|
);
|
|
|
|
NTSTATUS
|
|
InitializeDbcsMisc(
|
|
VOID
|
|
);
|
|
|
|
BYTE
|
|
CodePageToCharSet(
|
|
UINT CodePage
|
|
);
|
|
|
|
LPTTFONTLIST
|
|
SearchTTFont(
|
|
LPTSTR ptszFace,
|
|
BOOL fCodePage,
|
|
UINT CodePage
|
|
);
|
|
|
|
BOOL
|
|
IsAvailableTTFont(
|
|
LPTSTR ptszFace
|
|
);
|
|
|
|
BOOL
|
|
IsAvailableTTFontCP(
|
|
LPWSTR pwszFace,
|
|
UINT CodePage
|
|
);
|
|
|
|
BOOL
|
|
IsDisableBoldTTFont(
|
|
LPTSTR ptszFace
|
|
);
|
|
|
|
LPTSTR
|
|
GetAltFaceName(
|
|
LPTSTR ptszFace
|
|
);
|
|
|
|
NTSTATUS
|
|
DestroyDbcsMisc(
|
|
VOID
|
|
);
|
|
|
|
int
|
|
LanguageListCreate(
|
|
HWND hDlg,
|
|
UINT CodePage
|
|
);
|
|
|
|
int
|
|
LanguageDisplay(
|
|
HWND hDlg,
|
|
UINT CodePage
|
|
) ;
|
|
|
|
//
|
|
// registry.c
|
|
//
|
|
NTSTATUS
|
|
MyRegOpenKey(
|
|
IN HANDLE hKey,
|
|
IN LPWSTR lpSubKey,
|
|
OUT PHANDLE phResult
|
|
);
|
|
|
|
NTSTATUS
|
|
MyRegEnumValue(
|
|
IN HANDLE hKey,
|
|
IN DWORD dwIndex,
|
|
OUT DWORD dwValueLength,
|
|
OUT LPWSTR lpValueName,
|
|
OUT DWORD dwDataLength,
|
|
OUT LPBYTE lpData
|
|
);
|
|
#endif
|
|
|
|
//
|
|
// Function prototypes
|
|
//
|
|
|
|
INT_PTR ConsolePropertySheet(HWND hWnd);
|
|
BOOL RegisterClasses(HANDLE hModule);
|
|
void UnregisterClasses(HANDLE hModule);
|
|
INT_PTR FontDlgProc(HWND hDlg, UINT wMsg, WPARAM wParam, LPARAM lParam);
|
|
PCONSOLE_STATE_INFO InitRegistryValues(VOID);
|
|
DWORD GetRegistryValues(PCONSOLE_STATE_INFO StateInfo);
|
|
VOID SetRegistryValues(PCONSOLE_STATE_INFO StateInfo, DWORD dwPage);
|
|
PCONSOLE_STATE_INFO InitStateValues(HANDLE hMap);
|
|
PCONSOLE_STATE_INFO ReadStateValues(HANDLE hMap);
|
|
BOOL WriteStateValues(PCONSOLE_STATE_INFO pStateInfo);
|
|
LRESULT ColorControlProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
|
|
LRESULT FontPreviewWndProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
|
|
LRESULT PreviewWndProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
|
|
INT_PTR CommonDlgProc(HWND hDlg, UINT wMsg, WPARAM wParam, LPARAM lParam);
|
|
VOID EndDlgPage(HWND hDlg);
|
|
BOOL UpdateStateInfo(HWND hDlg, UINT Item, int Value);
|
|
BOOL WereWeStartedFromALnk();
|
|
BOOL SetLinkValues( PCONSOLE_STATE_INFO StateInfo );
|
|
|
|
//
|
|
// Macros
|
|
//
|
|
|
|
#define NELEM(array) (sizeof(array)/sizeof(array[0]))
|
|
#define AttrToRGB(Attr) (gpStateInfo->ColorTable[(Attr) & 0x0F])
|
|
#define ScreenTextColor(pStateInfo) \
|
|
(AttrToRGB(LOBYTE(pStateInfo->ScreenAttributes) & 0x0F))
|
|
#define ScreenBkColor(pStateInfo) \
|
|
(AttrToRGB(LOBYTE(pStateInfo->ScreenAttributes >> 4)))
|
|
#define PopupTextColor(pStateInfo) \
|
|
(AttrToRGB(LOBYTE(pStateInfo->PopupAttributes) & 0x0F))
|
|
#define PopupBkColor(pStateInfo) \
|
|
(AttrToRGB(LOBYTE(pStateInfo->PopupAttributes >> 4)))
|
|
|
|
#ifdef DEBUG_PRINT
|
|
#define _DBGFONTS 0x00000001
|
|
#define _DBGFONTS2 0x00000002
|
|
#define _DBGCHARS 0x00000004
|
|
#define _DBGOUTPUT 0x00000008
|
|
#define _DBGALL 0xFFFFFFFF
|
|
extern ULONG gDebugFlag;
|
|
|
|
#define DBGFONTS(_params_) {if (gDebugFlag & _DBGFONTS) DbgPrint _params_ ; }
|
|
#define DBGFONTS2(_params_) {if (gDebugFlag & _DBGFONTS2)DbgPrint _params_ ; }
|
|
#define DBGCHARS(_params_) {if (gDebugFlag & _DBGCHARS) DbgPrint _params_ ; }
|
|
#define DBGOUTPUT(_params_) {if (gDebugFlag & _DBGOUTPUT)DbgPrint _params_ ; }
|
|
#define DBGPRINT(_params_) DbgPrint _params_
|
|
#else
|
|
#define DBGFONTS(_params_)
|
|
#define DBGFONTS2(_params_)
|
|
#define DBGCHARS(_params_)
|
|
#define DBGOUTPUT(_params_)
|
|
#define DBGPRINT(_params_)
|
|
#endif
|
|
|
|
#ifdef FE_SB
|
|
// Macro definitions that handle codepages
|
|
//
|
|
#define CP_US (UINT)437
|
|
#define CP_JPN (UINT)932
|
|
#define CP_WANSUNG (UINT)949
|
|
#define CP_TC (UINT)950
|
|
#define CP_SC (UINT)936
|
|
|
|
#define IsBilingualCP(cp) ((cp)==CP_JPN || (cp)==CP_WANSUNG)
|
|
#define IsFarEastCP(cp) ((cp)==CP_JPN || (cp)==CP_WANSUNG || (cp)==CP_TC || (cp)==CP_SC)
|
|
#endif
|
|
|
|
|