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.
Ouais, il est rapidement devenu évident que j'étais "faire le mal".
OriginalL'auteur Kevin Montrose | 2009-07-14
Vous devez vous connecter pour publier un commentaire.
Essayer
CLSIDFromString
. UnCLSID
est en réalité défini comme:par conséquent, vous pouvez utiliser
CLSIDFromString
pour générer un GUID. Voici un exemple de code:Avertissement
Choses qui ne sont pas Guid sera de retour comme valide Guid. Par exemple:
Cela signifie que, en plus de retourner un résultat on ne l'attend pas, la fonction frappe le registre à chaque fois qu'il est exécuté.
Version courte: Ne pas utiliser CLSIDFromString. Au lieu de cela, vous pouvez utiliser
IIDFromString
exactement de la même façon.Pouvez-vous penser à un GUID (
{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
) qui ne parviennent pas à analyser comme une CLSID valide selonCLSIDFromString
?OriginalL'auteur Jared Oberhaus
CLSIDFromString documents maintenant vous StringFromGUID2(), qui est plus facile à utiliser... et ne pense pas que la chose est une CLSID.
OriginalL'auteur Joe Marley