ReactOS 0.4.16-dev-927-g467dec4
cputws.cpp File Reference
#include <conio.h>
#include <errno.h>
#include <corecrt_internal_lowio.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
Include dependency graph for cputws.cpp:

Go to the source code of this file.

Functions

int __cdecl _cputws (wchar_t const *string)
 

Function Documentation

◆ _cputws()

int __cdecl _cputws ( wchar_t const string)

Definition at line 18 of file cputws.cpp.

19{
20 _VALIDATE_CLEAR_OSSERR_RETURN((string != nullptr), EINVAL, -1);
21
23 return -1;
24
25 // Write string to console file handle:
26 size_t length = wcslen(string);
27
29
30 int result = 0;
31
32 __try
33 {
34 while (length > 0)
35 {
36 static size_t const max_write_bytes = 65535;
37 static size_t const max_write_wchars = max_write_bytes / sizeof(wchar_t);
38
39 DWORD const wchars_to_write = length > max_write_wchars
40 ? max_write_wchars
41 : static_cast<DWORD>(length);
42
43 DWORD wchars_written;
45 string,
46 wchars_to_write,
47 &wchars_written) == FALSE)
48 {
49 result = -1;
50 __leave;
51 }
52
53 string += wchars_to_write;
54 length -= wchars_to_write;
55 }
56 }
58 {
60 }
62
63 return result;
64}
#define EINVAL
Definition: acclib.h:90
void __cdecl __acrt_unlock(_In_ __acrt_lock_id lock)
Definition: locks.cpp:57
@ __acrt_conio_lock
__acrt_lock(__acrt_heap_lock)
#define FALSE
Definition: types.h:117
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
GLuint64EXT * result
Definition: glext.h:11304
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
BOOL __cdecl __dcrt_lowio_ensure_console_output_initialized()
Definition: initcon.cpp:31
BOOL __cdecl __dcrt_write_console(_In_ void const *lpBuffer, _In_ DWORD nNumberOfCharsToWrite, _Out_ LPDWORD lpNumberOfCharsWritten)
Definition: initcon.cpp:67
#define _VALIDATE_CLEAR_OSSERR_RETURN(expr, errorcode, retexpr)
#define __try
Definition: pseh2_64.h:188
#define __leave
Definition: pseh2_64.h:192
#define __endtry
Definition: pseh2_64.h:191
#define __finally
Definition: pseh2_64.h:190
#define wchar_t
Definition: wchar.h:102