diff --git a/reactos/win32ss/user/winsrv/concfg/CMakeLists.txt b/reactos/win32ss/user/winsrv/concfg/CMakeLists.txt index 98d8fdfddff..839d0a04e45 100644 --- a/reactos/win32ss/user/winsrv/concfg/CMakeLists.txt +++ b/reactos/win32ss/user/winsrv/concfg/CMakeLists.txt @@ -1,3 +1,9 @@ -add_library(concfg settings.c) +list(APPEND SOURCE + font.c + settings.c + precomp.h) + +add_library(concfg ${SOURCE}) +add_pch(concfg precomp.h SOURCE) add_dependencies(concfg xdk) diff --git a/reactos/win32ss/user/winsrv/concfg/concfg.h b/reactos/win32ss/user/winsrv/concfg/concfg.h new file mode 100644 index 00000000000..31e0f677335 --- /dev/null +++ b/reactos/win32ss/user/winsrv/concfg/concfg.h @@ -0,0 +1,30 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS Console Server DLL + * FILE: win32ss/user/winsrv/concfg/concfg.h + * PURPOSE: Console settings management - Public header + * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr) + */ + +#pragma once + +/* Needed PSDK headers when using this library */ +#if 0 + +#define WIN32_NO_STATUS +#define _INC_WINDOWS +#define COM_NO_WINDOWS_H + +#include // For LF_FACESIZE and TranslateCharsetInfo() +#include +#include // For code page support +#include + +#endif + +/* NOTE: Please keep the header inclusion order! */ + +#include "settings.h" +#include "font.h" + +/* EOF */ diff --git a/reactos/win32ss/user/winsrv/concfg/font.c b/reactos/win32ss/user/winsrv/concfg/font.c new file mode 100644 index 00000000000..46f6a9f7da0 --- /dev/null +++ b/reactos/win32ss/user/winsrv/concfg/font.c @@ -0,0 +1,333 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS Console Server DLL + * FILE: win32ss/user/winsrv/concfg/font.c + * PURPOSE: Console Fonts Management + * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr) + * Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com) + */ + +/* INCLUDES *******************************************************************/ + +#include "precomp.h" +#include + +#include "settings.h" +#include "font.h" +// #include "concfg.h" + +#define NDEBUG +#include + + +/* FUNCTIONS ******************************************************************/ + +/* Retrieves the character set associated with a given code page */ +BYTE +CodePageToCharSet( + IN UINT CodePage) +{ + CHARSETINFO CharInfo; + if (TranslateCharsetInfo((LPDWORD)CodePage, &CharInfo, TCI_SRCCODEPAGE)) + return CharInfo.ciCharset; + else + return DEFAULT_CHARSET; +} + +HFONT +CreateConsoleFontEx( + IN LONG Height, + IN LONG Width OPTIONAL, + IN OUT LPWSTR FaceName, // Points to a WCHAR array of LF_FACESIZE elements + IN ULONG FontFamily, + IN ULONG FontWeight, + IN UINT CodePage) +{ + LOGFONTW lf; + + RtlZeroMemory(&lf, sizeof(lf)); + + lf.lfHeight = Height; + lf.lfWidth = Width; + + lf.lfEscapement = 0; + lf.lfOrientation = 0; // TA_BASELINE; // TA_RTLREADING; when the console supports RTL? + // lf.lfItalic = lf.lfUnderline = lf.lfStrikeOut = FALSE; + lf.lfWeight = FontWeight; + lf.lfCharSet = CodePageToCharSet(CodePage); + lf.lfOutPrecision = OUT_DEFAULT_PRECIS; + lf.lfClipPrecision = CLIP_DEFAULT_PRECIS; + lf.lfQuality = DEFAULT_QUALITY; + lf.lfPitchAndFamily = (BYTE)(FIXED_PITCH | FontFamily); + + if (!IsValidConsoleFont(FaceName, CodePage)) + StringCchCopyW(FaceName, LF_FACESIZE, L"Terminal"); + + StringCchCopyNW(lf.lfFaceName, ARRAYSIZE(lf.lfFaceName), + FaceName, LF_FACESIZE); + + return CreateFontIndirectW(&lf); +} + +HFONT +CreateConsoleFont2( + IN LONG Height, + IN LONG Width OPTIONAL, + IN OUT PCONSOLE_STATE_INFO ConsoleInfo) +{ + return CreateConsoleFontEx(Height, + Width, + ConsoleInfo->FaceName, + ConsoleInfo->FontFamily, + ConsoleInfo->FontWeight, + ConsoleInfo->CodePage); +} + +HFONT +CreateConsoleFont( + IN OUT PCONSOLE_STATE_INFO ConsoleInfo) +{ + /* + * Format: + * Width = FontSize.X = LOWORD(FontSize); + * Height = FontSize.Y = HIWORD(FontSize); + */ + /* NOTE: FontSize is always in cell height/width units (pixels) */ + return CreateConsoleFontEx((LONG)(ULONG)ConsoleInfo->FontSize.Y, + (LONG)(ULONG)ConsoleInfo->FontSize.X, + ConsoleInfo->FaceName, + ConsoleInfo->FontFamily, + ConsoleInfo->FontWeight, + ConsoleInfo->CodePage); +} + +BOOL +GetFontCellSize( + IN HDC hDC OPTIONAL, + IN HFONT hFont, + OUT PUINT Height, + OUT PUINT Width) +{ + BOOL Success = FALSE; + HDC hOrgDC = hDC; + HFONT hOldFont; + // LONG LogSize, PointSize; + LONG CharWidth, CharHeight; + TEXTMETRICW tm; + // SIZE CharSize; + + if (!hDC) + hDC = GetDC(NULL); + + hOldFont = SelectObject(hDC, hFont); + if (hOldFont == NULL) + { + DPRINT1("GetFontCellSize: SelectObject failed\n"); + goto Quit; + } + +/* + * See also: Display_SetTypeFace in applications/fontview/display.c + */ + + /* + * Note that the method with GetObjectW just returns + * the original parameters with which the font was created. + */ + if (!GetTextMetricsW(hDC, &tm)) + { + DPRINT1("GetFontCellSize: GetTextMetrics failed\n"); + goto Cleanup; + } + + CharHeight = tm.tmHeight + tm.tmExternalLeading; + +#if 0 + /* Measure real char width more precisely if possible */ + if (GetTextExtentPoint32W(hDC, L"R", 1, &CharSize)) + CharWidth = CharSize.cx; +#else + CharWidth = tm.tmAveCharWidth; // tm.tmMaxCharWidth; +#endif + +#if 0 + /*** Logical to Point size ***/ + LogSize = tm.tmHeight - tm.tmInternalLeading; + PointSize = MulDiv(LogSize, 72, GetDeviceCaps(hDC, LOGPIXELSY)); + /*****************************/ +#endif + + *Height = (UINT)CharHeight; + *Width = (UINT)CharWidth; + Success = TRUE; + +Cleanup: + SelectObject(hDC, hOldFont); +Quit: + if (!hOrgDC) + ReleaseDC(NULL, hDC); + + return Success; +} + +BOOL +IsValidConsoleFont2( + IN PLOGFONTW lplf, + IN PNEWTEXTMETRICW lpntm, + IN DWORD FontType, + IN UINT CodePage) +{ + LPCWSTR FaceName = lplf->lfFaceName; + + /* Record the font's attributes (Fixedwidth and Truetype) */ + // BOOL fFixed = ((lplf->lfPitchAndFamily & 0x03) == FIXED_PITCH); + // BOOL fTrueType = (lplf->lfOutPrecision == OUT_STROKE_PRECIS); + + /* + * According to: http://support.microsoft.com/kb/247815 + * the criteria for console-eligible fonts are: + * - The font must be a fixed-pitch font. + * - The font cannot be an italic font. + * - The font cannot have a negative A or C space. + * - If it is a TrueType font, it must be FF_MODERN. + * - If it is not a TrueType font, it must be OEM_CHARSET. + * + * Non documented: vertical fonts are forbidden (their name start with a '@'). + * + * Additional criteria for Asian installations: + * - If it is not a TrueType font, the face name must be "Terminal". + * - If it is an Asian TrueType font, it must also be an Asian character set. + * + * To install additional TrueType fonts to be available for the console, + * add entries of type REG_SZ named "0", "00" etc... in: + * HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont + * The names of the fonts listed there should match those in: + * HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Fonts + */ + + /* + * In ReactOS we relax some of the criteria: + * - We allow fixed-pitch FF_MODERN (Monospace) TrueType fonts + * that can be italic or have negative A or C space. + * - If it is not a TrueType font, it can be from another character set + * than OEM_CHARSET. + * - We do not look into the magic registry key mentioned above. + */ + + /* Reject variable width fonts */ + if (((lplf->lfPitchAndFamily & 0x03) != FIXED_PITCH) +#if 0 /* Reject italic and TrueType fonts with negative A or C space */ + || (lplf->lfItalic) + || !(lpntm->ntmFlags & NTM_NONNEGATIVE_AC) +#endif + ) + { + DPRINT1("Font '%S' rejected because it%s (lfPitchAndFamily = %d).\n", + FaceName, !(lplf->lfPitchAndFamily & FIXED_PITCH) ? "'s not FIXED_PITCH" + : (!(lpntm->ntmFlags & NTM_NONNEGATIVE_AC) ? " has negative A or C space" + : " is broken"), + lplf->lfPitchAndFamily); + return FALSE; + } + + /* Reject TrueType fonts that are not FF_MODERN */ + if ((FontType == TRUETYPE_FONTTYPE) && ((lplf->lfPitchAndFamily & 0xF0) != FF_MODERN)) + { + DPRINT1("TrueType font '%S' rejected because it's not FF_MODERN (lfPitchAndFamily = %d)\n", + FaceName, lplf->lfPitchAndFamily); + return FALSE; + } + + /* Is the current code page Chinese, Japanese or Korean? */ + if (IsCJKCodePage(CodePage)) + { + /* It's Asian */ + if (FontType == TRUETYPE_FONTTYPE) + { + if (lplf->lfCharSet != CodePageToCharSet(CodePage)) + { + DPRINT1("TrueType font '%S' rejected because it's not user Asian charset (lfCharSet = %d)\n", + FaceName, lplf->lfCharSet); + return FALSE; + } + } + else + { + /* Reject non-TrueType fonts that are not Terminal */ + if (wcscmp(FaceName, L"Terminal") != 0) + { + DPRINT1("Non-TrueType font '%S' rejected because it's not Terminal\n", FaceName); + return FALSE; + } + } + } + else + { + /* Not CJK */ + if ((FontType != TRUETYPE_FONTTYPE) && + (lplf->lfCharSet != ANSI_CHARSET) && + (lplf->lfCharSet != DEFAULT_CHARSET) && + (lplf->lfCharSet != OEM_CHARSET)) + { + DPRINT1("Non-TrueType font '%S' rejected because it's not ANSI_CHARSET or DEFAULT_CHARSET or OEM_CHARSET (lfCharSet = %d)\n", + FaceName, lplf->lfCharSet); + return FALSE; + } + } + + /* Reject fonts that are vertical (tategaki) */ + if (FaceName[0] == L'@') + { + DPRINT1("Font '%S' rejected because it's vertical\n", FaceName); + return FALSE; + } + + /* All good */ + return TRUE; +} + +typedef struct _IS_VALID_CONSOLE_FONT_PARAM +{ + BOOL IsValidFont; + UINT CodePage; +} IS_VALID_CONSOLE_FONT_PARAM, *PIS_VALID_CONSOLE_FONT_PARAM; + +static BOOL CALLBACK +IsValidConsoleFontProc( + IN PLOGFONTW lplf, + IN PNEWTEXTMETRICW lpntm, + IN DWORD FontType, + IN LPARAM lParam) +{ + PIS_VALID_CONSOLE_FONT_PARAM Param = (PIS_VALID_CONSOLE_FONT_PARAM)lParam; + Param->IsValidFont = IsValidConsoleFont2(lplf, lpntm, FontType, Param->CodePage); + + /* Stop the enumeration now */ + return FALSE; +} + +BOOL +IsValidConsoleFont( + IN LPCWSTR FaceName, + IN UINT CodePage) +{ + IS_VALID_CONSOLE_FONT_PARAM Param; + HDC hDC; + LOGFONTW lf; + + Param.IsValidFont = FALSE; + Param.CodePage = CodePage; + + RtlZeroMemory(&lf, sizeof(lf)); + lf.lfCharSet = DEFAULT_CHARSET; // CodePageToCharSet(CodePage); + // lf.lfPitchAndFamily = FIXED_PITCH | FF_DONTCARE; + StringCchCopyW(lf.lfFaceName, ARRAYSIZE(lf.lfFaceName), FaceName); + + hDC = GetDC(NULL); + EnumFontFamiliesExW(hDC, &lf, (FONTENUMPROCW)IsValidConsoleFontProc, (LPARAM)&Param, 0); + ReleaseDC(NULL, hDC); + + return Param.IsValidFont; +} + +/* EOF */ diff --git a/reactos/win32ss/user/winsrv/concfg/font.h b/reactos/win32ss/user/winsrv/concfg/font.h new file mode 100644 index 00000000000..09b076aff80 --- /dev/null +++ b/reactos/win32ss/user/winsrv/concfg/font.h @@ -0,0 +1,68 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS Console Server DLL + * FILE: win32ss/user/winsrv/concfg/font.h + * PURPOSE: Console Fonts Management + * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr) + * Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com) + */ + +#pragma once + +/* DEFINES ********************************************************************/ + +#define CP_SHIFTJIS 932 // Japanese Shift-JIS +#define CP_HANGUL 949 // Korean Hangul +#define CP_GB2312 936 // Chinese Simplified (GB2312) +#define CP_BIG5 950 // Chinese Traditional (Big5) + +/* IsFarEastCP(CodePage) */ +#define IsCJKCodePage(CodePage) \ + ((CodePage) == CP_SHIFTJIS || (CodePage) == CP_HANGUL || \ + (CodePage) == CP_BIG5 || (CodePage) == CP_GB2312) + +/* FUNCTIONS ******************************************************************/ + +BYTE +CodePageToCharSet( + IN UINT CodePage); + +HFONT +CreateConsoleFontEx( + IN LONG Height, + IN LONG Width OPTIONAL, + IN OUT LPWSTR FaceName, // Points to a WCHAR array of LF_FACESIZE elements + IN ULONG FontFamily, + IN ULONG FontWeight, + IN UINT CodePage); + +HFONT +CreateConsoleFont2( + IN LONG Height, + IN LONG Width OPTIONAL, + IN OUT PCONSOLE_STATE_INFO ConsoleInfo); + +HFONT +CreateConsoleFont( + IN OUT PCONSOLE_STATE_INFO ConsoleInfo); + +BOOL +GetFontCellSize( + IN HDC hDC OPTIONAL, + IN HFONT hFont, + OUT PUINT Height, + OUT PUINT Width); + +BOOL +IsValidConsoleFont2( + IN PLOGFONTW lplf, + IN PNEWTEXTMETRICW lpntm, + IN DWORD FontType, + IN UINT CodePage); + +BOOL +IsValidConsoleFont( + IN LPCWSTR FaceName, + IN UINT CodePage); + +/* EOF */ diff --git a/reactos/win32ss/user/winsrv/concfg/precomp.h b/reactos/win32ss/user/winsrv/concfg/precomp.h new file mode 100644 index 00000000000..cfa0519ca36 --- /dev/null +++ b/reactos/win32ss/user/winsrv/concfg/precomp.h @@ -0,0 +1,37 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS Console Server DLL + * FILE: win32ss/user/winsrv/concfg/precomp.h + * PURPOSE: Console settings management - Precompiled header + * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr) + */ + +// #pragma once + +/* PSDK/NDK Headers */ + +#define WIN32_NO_STATUS +#define _INC_WINDOWS +#define COM_NO_WINDOWS_H + +#include +#include +#include // For LF_FACESIZE and TranslateCharsetInfo() +#include +#include // For code page support +#include +// #include + +// /* Undocumented user definitions */ +// #include + +#define NTOS_MODE_USER +// #include +// #include +#include +#include + +#include // for swprintf +#include + +/* EOF */ diff --git a/reactos/win32ss/user/winsrv/concfg/settings.c b/reactos/win32ss/user/winsrv/concfg/settings.c index eadf949abe8..fcc66d82af2 100644 --- a/reactos/win32ss/user/winsrv/concfg/settings.c +++ b/reactos/win32ss/user/winsrv/concfg/settings.c @@ -9,42 +9,20 @@ /* INCLUDES *******************************************************************/ -/* PSDK/NDK Headers */ - -#define WIN32_NO_STATUS -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H - -#include -#include -#include // For LF_FACESIZE -#include -#include -#include -// #include -// #include +#include "precomp.h" // /* Undocumented user definitions */ // #include -#define NTOS_MODE_USER -// #include -// #include -#include -// #include -#include - #include "settings.h" -#include // for swprintf -#include - #define NDEBUG #include /* GLOBALS ********************************************************************/ /* Default cursor size -- see conio_winsrv.h */ +// #define SMALL_SIZE 25 #define CSR_DEFAULT_CURSOR_SIZE 25 /* Default attributes -- see conio.h */ @@ -76,20 +54,15 @@ static const COLORREF s_Colors[16] = RGB(255, 255, 0), // GREEN | RED | INTENSITY RGB(255, 255, 255) // BLUE | GREEN | RED | INTENSITY }; -// /* Default attributes */ -// #define DEFAULT_SCREEN_ATTRIB (FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED) -// #define DEFAULT_POPUP_ATTRIB (FOREGROUND_BLUE | FOREGROUND_RED | / - // BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_INTENSITY) -// /* Cursor size */ -// #define CSR_DEFAULT_CURSOR_SIZE 25 /* FUNCTIONS ******************************************************************/ static VOID -TranslateConsoleName(OUT LPWSTR DestString, - IN LPCWSTR ConsoleName, - IN UINT MaxStrLen) +TranslateConsoleName( + OUT LPWSTR DestString, + IN LPCWSTR ConsoleName, + IN UINT MaxStrLen) { #define PATH_SEPARATOR L'\\' @@ -117,10 +90,11 @@ TranslateConsoleName(OUT LPWSTR DestString, } BOOLEAN -ConCfgOpenUserSettings(LPCWSTR ConsoleTitle, - PHKEY hSubKey, - REGSAM samDesired, - BOOLEAN Create) +ConCfgOpenUserSettings( + IN LPCWSTR ConsoleTitle, + OUT PHKEY phSubKey, + IN REGSAM samDesired, + IN BOOLEAN Create) { BOOLEAN Success = TRUE; NTSTATUS Status; @@ -171,7 +145,7 @@ ConCfgOpenUserSettings(LPCWSTR ConsoleTitle, REG_OPTION_NON_VOLATILE, samDesired, NULL, - hSubKey, + phSubKey, NULL) == ERROR_SUCCESS); } else @@ -181,7 +155,7 @@ ConCfgOpenUserSettings(LPCWSTR ConsoleTitle, szBuffer, 0, samDesired, - hSubKey) == ERROR_SUCCESS); + phSubKey) == ERROR_SUCCESS); } /* Close the parent key and return success or not */ @@ -190,8 +164,9 @@ ConCfgOpenUserSettings(LPCWSTR ConsoleTitle, } BOOLEAN -ConCfgReadUserSettings(IN OUT PCONSOLE_STATE_INFO ConsoleInfo, - IN BOOLEAN DefaultSettings) +ConCfgReadUserSettings( + IN OUT PCONSOLE_STATE_INFO ConsoleInfo, + IN BOOLEAN DefaultSettings) { BOOLEAN Success = FALSE; HKEY hKey; @@ -263,8 +238,8 @@ ConCfgReadUserSettings(IN OUT PCONSOLE_STATE_INFO ConsoleInfo, } else if (!wcscmp(szValueName, L"FaceName")) { - wcsncpy(ConsoleInfo->FaceName, szValue, LF_FACESIZE); - ConsoleInfo->FaceName[LF_FACESIZE - 1] = UNICODE_NULL; + StringCchCopyNW(ConsoleInfo->FaceName, ARRAYSIZE(ConsoleInfo->FaceName), + szValue, ARRAYSIZE(szValue)); Success = TRUE; } else if (!wcscmp(szValueName, L"FontFamily")) @@ -354,8 +329,9 @@ ConCfgReadUserSettings(IN OUT PCONSOLE_STATE_INFO ConsoleInfo, } BOOLEAN -ConCfgWriteUserSettings(IN PCONSOLE_STATE_INFO ConsoleInfo, - IN BOOLEAN DefaultSettings) +ConCfgWriteUserSettings( + IN PCONSOLE_STATE_INFO ConsoleInfo, + IN BOOLEAN DefaultSettings) { HKEY hKey; DWORD Storage = 0; @@ -445,7 +421,8 @@ do { } VOID -ConCfgInitDefaultSettings(IN OUT PCONSOLE_STATE_INFO ConsoleInfo) +ConCfgInitDefaultSettings( + IN OUT PCONSOLE_STATE_INFO ConsoleInfo) { if (ConsoleInfo == NULL) return; @@ -455,15 +432,15 @@ ConCfgInitDefaultSettings(IN OUT PCONSOLE_STATE_INFO ConsoleInfo) // wcsncpy(ConsoleInfo->FaceName, L"DejaVu Sans Mono", LF_FACESIZE); // ConsoleInfo->FontSize = MAKELONG(8, 12); // 0x000C0008; // font is 8x12 - // ConsoleInfo->FontSize = MAKELONG(16, 16); // font is 16x16 - wcsncpy(ConsoleInfo->FaceName, L"VGA", LF_FACESIZE); // HACK: !! + StringCchCopyW(ConsoleInfo->FaceName, ARRAYSIZE(ConsoleInfo->FaceName), L"VGA"); // HACK: !! // ConsoleInfo->FaceName[0] = UNICODE_NULL; + // ConsoleInfo->FontSize.X = 8; + // ConsoleInfo->FontSize.Y = 12; + ConsoleInfo->FontSize.X = 0; // HACK: !! + ConsoleInfo->FontSize.Y = 16; // HACK: !! ConsoleInfo->FontFamily = FF_DONTCARE; - ConsoleInfo->FontSize.X = 0; - ConsoleInfo->FontSize.Y = 0; - ConsoleInfo->FontWeight = FW_NORMAL; // HACK: !! - // ConsoleInfo->FontWeight = FW_DONTCARE; + ConsoleInfo->FontWeight = FW_NORMAL; // FW_DONTCARE; /* Initialize the default properties */ @@ -488,7 +465,7 @@ ConCfgInitDefaultSettings(IN OUT PCONSOLE_STATE_INFO ConsoleInfo) ConsoleInfo->WindowPosition.x = 0; ConsoleInfo->WindowPosition.y = 0; - ConsoleInfo->CursorSize = CSR_DEFAULT_CURSOR_SIZE; // #define SMALL_SIZE 25 + ConsoleInfo->CursorSize = CSR_DEFAULT_CURSOR_SIZE; ConsoleInfo->ScreenAttributes = DEFAULT_SCREEN_ATTRIB; ConsoleInfo->PopupAttributes = DEFAULT_POPUP_ATTRIB; @@ -499,7 +476,8 @@ ConCfgInitDefaultSettings(IN OUT PCONSOLE_STATE_INFO ConsoleInfo) } VOID -ConCfgGetDefaultSettings(IN OUT PCONSOLE_STATE_INFO ConsoleInfo) +ConCfgGetDefaultSettings( + IN OUT PCONSOLE_STATE_INFO ConsoleInfo) { if (ConsoleInfo == NULL) return; diff --git a/reactos/win32ss/user/winsrv/concfg/settings.h b/reactos/win32ss/user/winsrv/concfg/settings.h index 1262c90a166..b33d8019b4b 100644 --- a/reactos/win32ss/user/winsrv/concfg/settings.h +++ b/reactos/win32ss/user/winsrv/concfg/settings.h @@ -76,18 +76,28 @@ C_ASSERT(sizeof(CONSOLE_STATE_INFO) == 0xD0); /* FUNCTIONS ******************************************************************/ BOOLEAN -ConCfgOpenUserSettings(LPCWSTR ConsoleTitle, - PHKEY hSubKey, - REGSAM samDesired, - BOOLEAN Create); -BOOLEAN -ConCfgReadUserSettings(IN OUT PCONSOLE_STATE_INFO ConsoleInfo, - IN BOOLEAN DefaultSettings); -BOOLEAN -ConCfgWriteUserSettings(IN PCONSOLE_STATE_INFO ConsoleInfo, - IN BOOLEAN DefaultSettings); +ConCfgOpenUserSettings( + IN LPCWSTR ConsoleTitle, + OUT PHKEY phSubKey, + IN REGSAM samDesired, + IN BOOLEAN Create); -VOID ConCfgInitDefaultSettings(IN OUT PCONSOLE_STATE_INFO ConsoleInfo); -VOID ConCfgGetDefaultSettings(IN OUT PCONSOLE_STATE_INFO ConsoleInfo); +BOOLEAN +ConCfgReadUserSettings( + IN OUT PCONSOLE_STATE_INFO ConsoleInfo, + IN BOOLEAN DefaultSettings); + +BOOLEAN +ConCfgWriteUserSettings( + IN PCONSOLE_STATE_INFO ConsoleInfo, + IN BOOLEAN DefaultSettings); + +VOID +ConCfgInitDefaultSettings( + IN OUT PCONSOLE_STATE_INFO ConsoleInfo); + +VOID +ConCfgGetDefaultSettings( + IN OUT PCONSOLE_STATE_INFO ConsoleInfo); /* EOF */