Operador __uuidof

Específicos de Microsoft

Recupera el GUID asociado a la expresión.

Sintaxis

__uuidof (expression)

Comentarios

La expresión puede ser un nombre de tipo, un puntero, una referencia o una matriz de ese tipo, una plantilla especializada en estos tipos, o una variable de estos tipos. El argumento es válido siempre y cuando el compilador pueda utilizarlo para encontrar el GUID asociado.

Un caso especial de este intrínseco es cuando se proporciona 0 o NULL como argumento. En este caso, __uuidof devolverá un GUID compuesto de ceros.

Utilice esta palabra clave para extraer el GUID asociado a lo siguiente:

  • Un objeto por el atributo extendido uuid.

  • Un bloque de biblioteca creado con el atributo module.

Nota:

En una compilación de depuración, __uuidof siempre inicializa un objeto dinámicamente (en tiempo de ejecución). En una compilación de versión, __uuidof puede inicializar estáticamente (en tiempo de compilación) un objeto.

A efectos de compatibilidad con versiones anteriores, _uuidof es un sinónimo de __uuidof a menos que se especifique la opción del compilador /Za (Deshabilitar extensiones de lenguaje).

Ejemplo

El código siguiente (compilado con ole32.lib) mostrará el uuid de un bloque de biblioteca creado con el atributo 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);
}

Comentarios

En aquellos casos en los que el nombre de la biblioteca ya no se encuentre en el ámbito, puede utilizar __LIBID_ en lugar de __uuidof. Por ejemplo:

StringFromCLSID(__LIBID_, &lpolestr);

FIN de Específicos de Microsoft

Consulte también

Expresiones con operadores unarios
Palabras clave