How does the DEFINE_GUID macro work?
The DEFINE_GUID macro solves the problem of declaring extern references to GUID values in your source code. For example, suppose that your project has three source files, Src1.cpp, Src2.cpp, and Src3.cpp, and all three files use a certain GUID value that you have defined. The GUID value must be defined exactly once in your project, and the other source files must declare extern references to it. With the DEFINE_GUID macro, you can use the same header file for both purposes.