Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft Specific
Retrieves the GUID attached to the expression.
__uuidof (
expression
)
Remarks
The expression can be a type name, pointer, reference, or array of that type, a template specialized on these types, or a variable of these types. The argument is valid as long as the compiler can use it to find the attached GUID.
A special case of this intrinsic is when either 0 or NULL is supplied as the argument. In this case, __uuidof will return a GUID made up of zeros.
Use this keyword to extract the GUID attached to:
Note
In a debug build, __uuidof always initializes an object dynamically (at runtime). In a release build, __uuidof can statically (at compile time) initialize an object.
Example
The following code (compiled with ole32.lib) will display the uuid of a library block created with the module attribute:
// 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);
}
Comments
In cases where the library name is no longer in scope, you can use __LIBID_ instead of __uuidof. For example:
StringFromCLSID(__LIBID_, &lpolestr);
END Microsoft Specific