static
BOOL
IntGetConsoleInput(HANDLE hConsoleInput,
- BOOL bRead,
PINPUT_RECORD lpBuffer,
DWORD nLength,
LPDWORD lpNumberOfEventsRead,
- BOOL bUnicode)
+ WORD wFlags,
+ BOOLEAN bUnicode)
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
/* Set up the data to send to the Console Server */
GetInputRequest->InputHandle = hConsoleInput;
- GetInputRequest->Unicode = bUnicode;
- GetInputRequest->bRead = bRead;
GetInputRequest->InputsRead = 0;
GetInputRequest->Length = nLength;
+ GetInputRequest->wFlags = wFlags;
+ GetInputRequest->Unicode = bUnicode;
/* Call the server */
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
}
/* Return the read region */
- DPRINT("read region: %lx\n", ReadOutputRequest->ReadRegion);
+ DPRINT("read region: %p\n", ReadOutputRequest->ReadRegion);
*lpReadRegion = ReadOutputRequest->ReadRegion;
/* Release the capture buffer */
PINPUT_RECORD lpBuffer,
DWORD nLength,
LPDWORD lpNumberOfEventsWritten,
- BOOL bUnicode)
+ BOOL bUnicode,
+ BOOL bAppendToEnd)
{
CONSOLE_API_MESSAGE ApiMessage;
PCONSOLE_WRITEINPUT WriteInputRequest = &ApiMessage.Data.WriteInputRequest;
/* Set up the data to send to the Console Server */
WriteInputRequest->InputHandle = hConsoleInput;
- WriteInputRequest->Unicode = bUnicode;
WriteInputRequest->Length = nLength;
+ WriteInputRequest->Unicode = bUnicode;
+ WriteInputRequest->AppendToEnd = bAppendToEnd;
/* Call the server */
CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
}
/* Return the read region */
- DPRINT("read region: %lx\n", WriteOutputRequest->WriteRegion);
+ DPRINT("read region: %p\n", WriteOutputRequest->WriteRegion);
*lpWriteRegion = WriteOutputRequest->WriteRegion;
/* Release the capture buffer */
WriteOutputCodeRequest->CodeType = CodeType;
WriteOutputCodeRequest->Coord = dwWriteCoord;
- WriteOutputCodeRequest->Length = nLength;
+ WriteOutputCodeRequest->Length = (USHORT)nLength;
/* Call the server */
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
LPDWORD lpNumberOfEventsRead)
{
return IntGetConsoleInput(hConsoleInput,
- FALSE,
lpBuffer,
nLength,
lpNumberOfEventsRead,
+ CONSOLE_READ_KEEPEVENT | CONSOLE_READ_CONTINUE,
TRUE);
}
LPDWORD lpNumberOfEventsRead)
{
return IntGetConsoleInput(hConsoleInput,
- FALSE,
lpBuffer,
nLength,
lpNumberOfEventsRead,
+ CONSOLE_READ_KEEPEVENT | CONSOLE_READ_CONTINUE,
FALSE);
}
LPDWORD lpNumberOfEventsRead)
{
return IntGetConsoleInput(hConsoleInput,
- TRUE,
lpBuffer,
nLength,
lpNumberOfEventsRead,
+ 0,
TRUE);
}
LPDWORD lpNumberOfEventsRead)
{
return IntGetConsoleInput(hConsoleInput,
- TRUE,
lpBuffer,
nLength,
lpNumberOfEventsRead,
+ 0,
FALSE);
}
+/*--------------------------------------------------------------
+ * ReadConsoleInputExW
+ *
+ * @implemented
+ */
BOOL
WINAPI
-ReadConsoleInputExW(HANDLE hConsole, LPVOID lpBuffer, DWORD dwLen, LPDWORD Unknown1, DWORD Unknown2)
+ReadConsoleInputExW(HANDLE hConsoleInput,
+ PINPUT_RECORD lpBuffer,
+ DWORD nLength,
+ LPDWORD lpNumberOfEventsRead,
+ WORD wFlags)
{
- STUB;
- return FALSE;
+ return IntGetConsoleInput(hConsoleInput,
+ lpBuffer,
+ nLength,
+ lpNumberOfEventsRead,
+ wFlags,
+ TRUE);
}
+/*--------------------------------------------------------------
+ * ReadConsoleInputExA
+ *
+ * @implemented
+ */
BOOL
WINAPI
-ReadConsoleInputExA(HANDLE hConsole, LPVOID lpBuffer, DWORD dwLen, LPDWORD Unknown1, DWORD Unknown2)
+ReadConsoleInputExA(HANDLE hConsoleInput,
+ PINPUT_RECORD lpBuffer,
+ DWORD nLength,
+ LPDWORD lpNumberOfEventsRead,
+ WORD wFlags)
{
- STUB;
- return FALSE;
+ return IntGetConsoleInput(hConsoleInput,
+ lpBuffer,
+ nLength,
+ lpNumberOfEventsRead,
+ wFlags,
+ FALSE);
}
(PINPUT_RECORD)lpBuffer,
nLength,
lpNumberOfEventsWritten,
+ TRUE,
TRUE);
}
(PINPUT_RECORD)lpBuffer,
nLength,
lpNumberOfEventsWritten,
+ FALSE,
+ TRUE);
+}
+
+
+/*--------------------------------------------------------------
+ * WriteConsoleInputVDMW
+ *
+ * @implemented
+ */
+BOOL
+WINAPI
+WriteConsoleInputVDMW(HANDLE hConsoleInput,
+ CONST INPUT_RECORD *lpBuffer,
+ DWORD nLength,
+ LPDWORD lpNumberOfEventsWritten)
+{
+ return IntWriteConsoleInput(hConsoleInput,
+ (PINPUT_RECORD)lpBuffer,
+ nLength,
+ lpNumberOfEventsWritten,
+ TRUE,
+ FALSE);
+}
+
+
+/*--------------------------------------------------------------
+ * WriteConsoleInputVDMA
+ *
+ * @implemented
+ */
+BOOL
+WINAPI
+WriteConsoleInputVDMA(HANDLE hConsoleInput,
+ CONST INPUT_RECORD *lpBuffer,
+ DWORD nLength,
+ LPDWORD lpNumberOfEventsWritten)
+{
+ return IntWriteConsoleInput(hConsoleInput,
+ (PINPUT_RECORD)lpBuffer,
+ nLength,
+ lpNumberOfEventsWritten,
+ FALSE,
FALSE);
}