That really depends on what is contained in the LPVOID. LPVOID is basically a pointer that points to something which is not defined. So, if the contents are a unicode string, you can simply cast your pointer:
TCHAR* unicodeString = (TCHAR*)myPointer;
But of course, this really depends no what you have put in your pointer...
EDIT: after you edited your message, I still have the same question: to what is pointing the source pointer exactly ? That's the key to give you a correct answer.
Furthermore, you say it doesn't work, can you explain what you get and what you expected ?