COM 客户端代码如何引用类型库中的 IID?

How does COM client code refer to the IID in the type library?

编译源代码中包含类似

行的COM客户端
#import "../server/IFoo.tlb"

在当前工作目录中生成ifoo.tlh。

在ifoo.tlh中,有被函数(或类似函数的宏)调用包装的字符串形式的IID,例如uuid("6bee2d26-f3d8-11d4-825d-00104b3646c0"),这意味着 .tlh 文件肯定知道 IID 的值。问题是,在客户端代码中,我如何在没有 #include COM 服务器的任何头文件的情况下引用那些 IID?在 .tlh 文件或 .tlb 文件中,是否有任何(编译的)符号表示我们可以在客户端代码中使用的 IID?谢谢

您可以使用 __uuidof operator(Microsoft 专用):

Retrieves the GUID attached to the expression.

Syntax

__uuidof ( expression )