Operatore __uuidof
Sezione specifica Microsoft
Recupera il GUID collegato all'espressione.
Sintassi
__uuidof (
espressione)
Osservazioni:
L'espressione può essere un nome di tipo, un puntatore, un riferimento o una matrice di tale tipo, un modello specializzato in questi tipi o una variabile di questi tipi. L'argomento è valido finché il compilatore può utilizzarlo per trovare il GUID collegato.
Un caso speciale di questo intrinseco è quando viene fornito 0 o NULL come argomento. In questo caso, __uuidof
restituirà un GUID costituito da zeri.
Utilizzare questa parola chiave per estrarre il GUID collegato:
Nota
In una compilazione di debug inizializza __uuidof
sempre un oggetto in modo dinamico (in fase di esecuzione). In una build di versione può __uuidof
inizializzare un oggetto in modo statico (in fase di compilazione).
Per la compatibilità con le versioni precedenti, _uuidof
è un sinonimo di __uuidof
a meno che non sia specificata l'opzione /Za
del compilatore (Disabilita estensioni del linguaggio).
Esempio
Il codice seguente (compilato con ole32.lib) visualizza l'elemento uuid di un blocco di libreria creato con l'attributo 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);
}
Commenti
Nei casi in cui il nome della libreria non è più incluso nell'ambito, è possibile usare __LIBID_
anziché __uuidof
. Ad esempio:
StringFromCLSID(__LIBID_, &lpolestr);
Fine sezione specifica Microsoft