Reactos
at master 35 lines 992 B view raw
1// 2// wmemmove_s.cpp 3// 4// Copyright (c) Microsoft Corporation. All rights reserved. 5// 6// Defines wmemmove_s(), which copies wide characters from a source buffer to a 7// destination buffer. Overlapping buffers are treated specially, to avoid 8// propagation. 9// 10// Returns 0 if successful; an error code on failure. 11// 12#include <corecrt_internal.h> 13#include <wchar.h> 14 15 16 17extern "C" errno_t __cdecl wmemmove_s( 18 wchar_t* const destination, 19 size_t const size_in_elements, 20 wchar_t const* const source, 21 size_t const count 22 ) 23{ 24 if (count == 0) 25 return 0; 26 27#pragma warning(suppress:__WARNING_HIGH_PRIORITY_OVERFLOW_POSTCONDITION) 28 _VALIDATE_RETURN_ERRCODE(destination != nullptr, EINVAL); 29 _VALIDATE_RETURN_ERRCODE(source != nullptr, EINVAL); 30 _VALIDATE_RETURN_ERRCODE(size_in_elements >= count, ERANGE); 31 32#pragma warning(suppress:__WARNING_BANNED_API_USAGEL2) /* 28726 */ 33 wmemmove(destination, source, count); 34 return 0; 35}