Author: hbelusca
Date: Sun Jun 16 17:16:33 2013
New Revision: 59234
URL:
http://svn.reactos.org/svn/reactos?rev=59234&view=rev
Log:
[KERNEL32]
- Simplify initialization of CONSOLE_START_INFO objects by also initializing their AppPath
member in InitConsoleInfo.
- Add two members IconPath and IconIndex in the CONSOLE_START_INFO structure, to be used
in a future work...
[HEADERS]
- CHAR_INFO* == PCHAR_INFO
- Add two informative comments for two fields of the CONSOLE_READOUTPUT structure (again,
to be used in a future work...)
Modified:
trunk/reactos/dll/win32/kernel32/client/console/console.c
trunk/reactos/dll/win32/kernel32/client/console/init.c
trunk/reactos/dll/win32/kernel32/include/console.h
trunk/reactos/include/reactos/subsys/win/conmsg.h
Modified: trunk/reactos/dll/win32/kernel32/client/console/console.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/client/console/console.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/client/console/console.c [iso-8859-1] Sun Jun 16
17:16:33 2013
@@ -937,8 +937,6 @@
CONSOLE_API_MESSAGE ApiMessage;
PCONSOLE_ALLOCCONSOLE AllocConsoleRequest =
&ApiMessage.Data.AllocConsoleRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
- LPWSTR AppPath = NULL;
- SIZE_T Length = 0;
if (Parameters->ConsoleHandle)
{
@@ -959,14 +957,8 @@
sizeof(CONSOLE_START_INFO),
(PVOID*)&AllocConsoleRequest->ConsoleStartInfo);
-/** Copied from BasepInitConsole **********************************************/
- InitConsoleInfo(AllocConsoleRequest->ConsoleStartInfo);
-
- AppPath = AllocConsoleRequest->ConsoleStartInfo->AppPath;
- Length = min(MAX_PATH, Parameters->ImagePathName.Length / sizeof(WCHAR));
- wcsncpy(AppPath, Parameters->ImagePathName.Buffer, Length);
- AppPath[Length] = L'\0';
-/******************************************************************************/
+ InitConsoleInfo(AllocConsoleRequest->ConsoleStartInfo,
+ &Parameters->ImagePathName);
AllocConsoleRequest->Console = NULL;
AllocConsoleRequest->CtrlDispatcher = ConsoleControlDispatcher;
Modified: trunk/reactos/dll/win32/kernel32/client/console/init.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/client/console/init.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/client/console/init.c [iso-8859-1] Sun Jun 16
17:16:33 2013
@@ -108,12 +108,16 @@
VOID
-InitConsoleInfo(IN OUT PCONSOLE_START_INFO ConsoleStartInfo)
+InitConsoleInfo(IN OUT PCONSOLE_START_INFO ConsoleStartInfo,
+ IN PUNICODE_STRING ImagePathName)
{
STARTUPINFOW si;
-
+ SIZE_T Length;
+
+ /* Get the startup information */
GetStartupInfoW(&si);
+ /* Initialize the fields */
ConsoleStartInfo->dwStartupFlags = si.dwFlags;
if (si.dwFlags & STARTF_USEFILLATTRIBUTE)
{
@@ -138,12 +142,8 @@
ConsoleStartInfo->ConsoleWindowSize.cx = (LONG)(si.dwXSize);
ConsoleStartInfo->ConsoleWindowSize.cy = (LONG)(si.dwYSize);
}
- /*
- if (si.dwFlags & STARTF_RUNFULLSCREEN)
- {
- }
- */
-
+
+ /* Set up the title for the console */
if (si.lpTitle)
{
wcsncpy(ConsoleStartInfo->ConsoleTitle, si.lpTitle, MAX_PATH + 1);
@@ -152,6 +152,16 @@
{
ConsoleStartInfo->ConsoleTitle[0] = L'\0';
}
+
+ /* Retrieve the application path name */
+ Length = min(sizeof(ConsoleStartInfo->AppPath) /
sizeof(ConsoleStartInfo->AppPath[0]) - 1,
+ ImagePathName->Length / sizeof(WCHAR));
+ wcsncpy(ConsoleStartInfo->AppPath, ImagePathName->Buffer, Length);
+ ConsoleStartInfo->AppPath[Length] = L'\0';
+
+ /* The Console Server will use these fields to set up the console icon */
+ ConsoleStartInfo->IconPath[0] = L'\0';
+ ConsoleStartInfo->IconIndex = 0;
}
@@ -191,15 +201,10 @@
}
else
{
- SIZE_T Length = 0;
LPCWSTR ExeName;
- InitConsoleInfo(&ConnectInfo.ConsoleStartInfo);
-
- Length = min(sizeof(ConnectInfo.ConsoleStartInfo.AppPath) /
sizeof(ConnectInfo.ConsoleStartInfo.AppPath[0]) - 1,
- Parameters->ImagePathName.Length / sizeof(WCHAR));
- wcsncpy(ConnectInfo.ConsoleStartInfo.AppPath,
Parameters->ImagePathName.Buffer, Length);
- ConnectInfo.ConsoleStartInfo.AppPath[Length] = L'\0';
+ InitConsoleInfo(&ConnectInfo.ConsoleStartInfo,
+ &Parameters->ImagePathName);
/* Initialize Input EXE name */
ExeName = wcsrchr(Parameters->ImagePathName.Buffer, L'\\');
Modified: trunk/reactos/dll/win32/kernel32/include/console.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/include…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/include/console.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/include/console.h [iso-8859-1] Sun Jun 16 17:16:33
2013
@@ -51,7 +51,8 @@
TranslateStdHandle(HANDLE hHandle);
VOID
-InitConsoleInfo(IN OUT PCONSOLE_START_INFO ConsoleStartInfo);
+InitConsoleInfo(IN OUT PCONSOLE_START_INFO ConsoleStartInfo,
+ IN PUNICODE_STRING ImagePathName);
LPCWSTR
IntCheckForConsoleFileName(IN LPCWSTR pszName,
Modified: trunk/reactos/include/reactos/subsys/win/conmsg.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/subsys/win…
==============================================================================
--- trunk/reactos/include/reactos/subsys/win/conmsg.h [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/subsys/win/conmsg.h [iso-8859-1] Sun Jun 16 17:16:33
2013
@@ -122,6 +122,8 @@
// UNICODE_STRING ConsoleTitle;
WCHAR ConsoleTitle[MAX_PATH + 1]; // Console title or full path to the startup
shortcut
WCHAR AppPath[MAX_PATH + 1]; // Full path of the launched app
+ WCHAR IconPath[MAX_PATH + 1]; // Path to the file containing the icon
+ INT IconIndex; // Index of the icon
} CONSOLE_START_INFO, *PCONSOLE_START_INFO;
typedef struct _CONSOLE_CONNECTION_INFO
@@ -315,7 +317,7 @@
COORD BufferSize;
COORD BufferCoord;
SMALL_RECT WriteRegion;
- CHAR_INFO* CharInfo;
+ PCHAR_INFO CharInfo;
} CONSOLE_WRITEOUTPUT, *PCONSOLE_WRITEOUTPUT;
typedef struct
@@ -372,12 +374,12 @@
{
HANDLE OutputHandle;
- ULONG BufferSize;
+ ULONG BufferSize; // Seems unusued
WORD Length;
COORD Coord;
COORD EndCoord;
- ULONG NrCharactersWritten;
+ ULONG NrCharactersWritten; // Seems unusued
CODE_TYPE CodeType;
union
@@ -427,7 +429,7 @@
COORD BufferSize;
COORD BufferCoord;
SMALL_RECT ReadRegion;
- CHAR_INFO* CharInfo;
+ PCHAR_INFO CharInfo;
} CONSOLE_READOUTPUT, *PCONSOLE_READOUTPUT;
typedef struct