Convertir una cadena de caracteres ancha a minúsculas en C ++

¿Cómo convierto una cadena wchar_t de mayúsculas a minúsculas en C ++?

La cadena contiene una mezcla de caracteres japoneses, chinos, alemanes y griegos.

Pensé en usar towlower ...

http://msdn.microsoft.com/en-us/library/8h19t214%28VS.80%29.aspx

.. pero la documentación dice que:

La conversión de mayúsculas y minúsculas de towlower es específica de la localidad. Solo los caracteres relevantes para la configuración regional actual se cambian en el caso.

Edit: Tal vez debería describir lo que estoy haciendo. Recibo una consulta de búsqueda Unicode de un usuario. Originalmente está en codificación UTF-8, pero lo estoy convirtiendo en un widechar (puede que esté equivocado en la redacción). Mi depurador (VS2008) muestra correctamente los caracteres japoneses, alemanes, etc. en la "vigilancia rápida variable". Necesito revisar otro conjunto de datos en Unicode y encontrar coincidencias de la cadena de búsqueda. Si bien esto no es un problema para mí cuando la búsqueda distingue entre mayúsculas y minúsculas, es más problemático hacerlo sin distinción de mayúsculas y minúsculas. Mi (tal vez ingenuo) enfoque para resolver el problema sería convertir todos los datos de entrada y salida a minúsculas y luego compararlos.

Respuestas a la pregunta(4)

Su respuesta a la pregunta