| 29 | } |
| 30 | |
| 31 | JsErrorCode JsCopyString(_In_ JsValueRef value, _Out_opt_ char* buffer, _In_ size_t bufferSize, _Out_opt_ size_t* length, UINT codePage = CP_UTF8) { |
| 32 | const wchar_t* stringValue; |
| 33 | size_t stringLength; |
| 34 | CHECK_JSRT_ERROR_CODE(JsStringToPointer(value, &stringValue, &stringLength)); |
| 35 | |
| 36 | if (length != nullptr) { |
| 37 | *length = stringLength; |
| 38 | } |
| 39 | |
| 40 | if (buffer != nullptr) { |
| 41 | int result = ::WideCharToMultiByte(codePage, 0, stringValue, static_cast<int>(stringLength), buffer, static_cast<int>(bufferSize), nullptr, nullptr); |
| 42 | assert(result != 0); |
| 43 | } |
| 44 | |
| 45 | return JsErrorCode::JsNoError; |
| 46 | } |
| 47 | |
| 48 | JsErrorCode JsCopyStringUtf16(_In_ JsValueRef value, _Out_opt_ char16_t* buffer, _In_ size_t bufferSize, _Out_opt_ size_t* length) { |
| 49 | const wchar_t* stringValue; |
no test coverage detected