Conecte-se ao nome do usuário ou email no Windows 8 usando C ++ e WinAPIs

No Windows 7 para recuperar o nome de um usuário conectado, posso fazer isso:

LPTSTR pUserName = NULL;
DWORD dwcbSzUserName = 0;

//'dwSessID' = user session ID
if(WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, dwSessID, WTSUserName, &pUserName, &dwcbSzUserName))
{
    //Got user name in 'pUserName'
}

if(pUserName)
    WTSFreeMemory(pUserName);

Mas no Windows 8, ele retorna algum nome abreviado, por exemplo, "john_000" quando o nome do usuário real é "John A. Doe".

Então, qual é a maneira de recuperar o nome do usuário conectado (e possivelmente o seu email) no Windows 8 com C ++ usando WinAPIs como é mostrado na tela de logon?

questionAnswers(1)

yourAnswerToTheQuestion