__uuidof, opérateur

Section spécifique à Microsoft

Récupère le GUID attaché à l’expression.

Syntaxe

__uuidof (expression)

Notes

L’expression peut être un nom de type, un pointeur, une référence ou un tableau de ce type, un modèle spécialisé sur ces types ou une variable de ces types. L’argument est valide tant que le compilateur peut l’utiliser pour rechercher le GUID attaché.

Un cas particulier de cette intrinsèque est lorsque 0 ou NULL est fourni en tant qu’argument. Dans ce cas, __uuidof retourne un GUID composé de zéros.

Utilisez cette mot clé pour extraire le GUID attaché à :

  • Objet par l’attribut uuid étendu.

  • Bloc de bibliothèque créé avec l’attribut module .

Remarque

Dans une build de débogage, __uuidof initialise toujours un objet dynamiquement (au moment de l’exécution). Dans une build de mise en production, __uuidof peut initialiser statiquement (au moment de la compilation) un objet.

Pour la compatibilité avec les versions précédentes, _uuidof est un synonyme de __uuidof l’option /Za du compilateur (Désactiver les extensions de langage) spécifiée.

Exemple

Le code suivant (compilé avec ole32.lib) affiche l’uuid d’un bloc de bibliothèque créé avec l’attribut de module :

// expre_uuidof.cpp
// compile with: ole32.lib
#include "stdio.h"
#include "windows.h"

[emitidl];
[module(name="MyLib")];
[export]
struct stuff {
   int i;
};

int main() {
   LPOLESTR lpolestr;
   StringFromCLSID(__uuidof(MyLib), &lpolestr);
   wprintf_s(L"%s", lpolestr);
   CoTaskMemFree(lpolestr);
}

Commentaires

Dans les cas où le nom de la bibliothèque n’est plus dans l’étendue, vous pouvez utiliser __LIBID_ au lieu de __uuidof. Par exemple :

StringFromCLSID(__LIBID_, &lpolestr);

FIN de la section spécifique à Microsoft

Voir aussi

Expressions avec opérateurs unaires
Mots clés