MCPcopy Create free account
hub / github.com/Nevcairiel/LAVFilters / CoTaskGetWideCharFromMultiByte

Function CoTaskGetWideCharFromMultiByte

common/DSUtilLite/DShowUtil.cpp:259–283  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

257}
258
259LPWSTR CoTaskGetWideCharFromMultiByte(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte)
260{
261 int len = MultiByteToWideChar(CodePage, dwFlags, lpMultiByteStr, cbMultiByte, nullptr, 0);
262 if (len)
263 {
264 LPWSTR pszWideString = (LPWSTR)CoTaskMemAlloc(len * sizeof(WCHAR));
265 MultiByteToWideChar(CodePage, dwFlags, lpMultiByteStr, cbMultiByte, pszWideString, len);
266
267 return pszWideString;
268 }
269 else
270 {
271 DWORD dwErr = GetLastError();
272 if (dwErr == ERROR_NO_UNICODE_TRANSLATION && CodePage == CP_UTF8)
273 {
274 return CoTaskGetWideCharFromMultiByte(CP_ACP, dwFlags, lpMultiByteStr, cbMultiByte);
275 }
276 else if (dwErr == ERROR_NO_UNICODE_TRANSLATION && (dwFlags & MB_ERR_INVALID_CHARS))
277 {
278 return CoTaskGetWideCharFromMultiByte(CP_UTF8, (dwFlags & ~MB_ERR_INVALID_CHARS), lpMultiByteStr,
279 cbMultiByte);
280 }
281 }
282 return NULL;
283}
284
285LPSTR CoTaskGetMultiByteFromWideChar(UINT CodePage, DWORD dwFlags, LPCWSTR lpMultiByteStr, int cbMultiByte)
286{

Callers 4

InitAVFormatMethod · 0.85
GetTitleInfoMethod · 0.85
InfoMethod · 0.85
ConvertCharToBSTRFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected