windows-nt/Source/XPSP1/NT/shell/osshell/control/console/console.h

231 lines
5 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
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