Operador __uuidof
Seção específica da Microsoft
Recupera o GUID vinculado à expressão.
Sintaxe
__uuidof (
expressão)
Comentários
The expressão pode ser um nome de tipo, um ponteiro, uma referência ou uma matriz desse tipo, um modelo especializado nesses tipos ou uma variável desses tipos. O argumento é válido enquanto o compilador puder usá-lo para localizar o GUID vinculado.
Um caso especial desse intrínseco é quando 0 ou NULL são fornecidos como o argumento. Nesse caso, __uuidof
retornará um GUID composto de zero.
Use essa palavra-chave para extrair o GUID vinculado a:
Observação
Em uma compilação de depuração, __uuidof
sempre inicializa um objeto dinamicamente (no tempo de execução). Em uma compilação de versão, __uuidof
pode inicializar um objeto estaticamente (no tempo de compilação).
Para compatibilidade com versões anteriores, _uuidof
é um sinônimo para __uuidof
, a menos que a opção do compilador /Za
(Desabilitar extensões de linguagem) seja especificada.
Exemplo
O código a seguir (compilado com ole32.lib) exibirá o uuid de um bloco de biblioteca criado com o 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);
}
Comentários
Em casos nos quais o nome da biblioteca não está mais no escopo, é possível usar __LIBID_
em vez de __uuidof
. Por exemplo:
StringFromCLSID(__LIBID_, &lpolestr);
Fim da seção específica da Microsoft