# Copyright (c) 2012-2014 The CEF Python authors. All rights reserved. # License: New BSD License. # Website: http://code.google.com/p/cefpython/ cdef int wchar_t_size = 2 cdef void CharToWidechar(char* charString, wchar_t* wideString, int wideSize ) except *: cdef int copiedCharacters = MultiByteToWideChar( CP_UTF8, 0, charString, -1, wideString, wideSize) # MultiByteToWideChar does not include the NULL character # when 0 bytes are written. if wideSize > 0 and copiedCharacters == 0: wideString[0] = 0 cdef py_string WidecharToPyString( wchar_t* wcharString): cdef int charBytes = WideCharToMultiByte( CP_UTF8, 0, wcharString, -1, NULL, 0, NULL, NULL) assert charBytes > 0, "WideCharToMultiByte() returned 0" cdef char* charString = malloc(charBytes * sizeof(char)) cdef int copiedBytes = WideCharToMultiByte( CP_UTF8, 0, wcharString, -1, charString, charBytes, NULL, NULL) # WideCharToMultiByte does not include the NULL character # when 0 bytes are written. if copiedBytes == 0: charString[0] = 0; cdef py_string pyString = CharToPyString(charString) free(charString) return pyString