Comment puis-je convertir un LPWSTR à un GUID?

Je travaille avec Windows 7 Api audio, et j'ai frappé un mur.

En gros, j'ai besoin de prendre un IAudioSessionControl2* et d'obtenir un ISimpleAudioVolume*.

Maintenant, il semble que je peux appeler sur IAudioSessionManager->GetSimpleAudioVolume() l'aide de la valeur de IAudioSessionControl2->GetSessionInstanceIdentifier(...). Notez que ce n'est pas exactement énoncé comme tel dans les docs, mais il semble comme un comportement raisonnable.

Le problème, GetSimpleAudioVolume() prend un GUID* et GetSessionInstanceIdentifier() crache un LPWSTR. Par le débogage et j'ai confirmé que le retour avait valeur de GetSessionInstanceIdentifier() au moins semble comme un GUID.

Donc, la vraie question est comment puis-je convertir des LPWSTR j'ai dans un GUID? Je sais que c'est assez trivial si je le maréchal à travers dans certains de code managé et de l'utilisation intégrée de GUID, mais il y a quand même un C++ moyen de le faire.


Ok, ces Api certainement ne fonctionne pas comme je le dis dans le texte ci-dessus de vidage. Toutefois, la question fondamentale de la Chaîne -> GUID est répondu que je ne vais pas supprimer la question.

Kevin, IAudioSessionManger->GetSimpleAudioVolume ne pas prendre un ID de session. S'il vous plaît, VEUILLEZ ne pas tenter de traiter l'identifiant de session (ou identificateur de l'instance) comme autre chose qu'une chaîne opaque. Le format de l'identifiant de session est sujette à modification à tout moment (par exemple, il y avait suble changements dans la chaîne de code entre Vista et Win7).
Ouais, il est rapidement devenu évident que j'étais "faire le mal".

OriginalL'auteur Kevin Montrose | 2009-07-14