MSDN 引用了C语言也可用于创建和使用COM对象。
我浏览了CodeProject here,发现相关的头文件已经创建,它们将被包含在调用这些COM接口的C应用程序中。
来自Windows的所有COM对象是否都有类似的相关头文件?
或者还有其他方法可以从C调用COM接口吗?
答案 0 :(得分:2)
来自Windows的所有COM对象是否都有类似的相关头文件?
使用Microsoft Interface Definition Language从MIDL compiler文件生成的所有头文件都将包含供C程序使用的定义。见C/C++-Compiler Considerations:
生成的.h文件具有接口的C风格和C ++风格定义。
我不知道Windows或Windows SDK附带的所有 COM对象是否带有预编译的标头供C程序使用,但是假设这样做当然是合理的。 。如果您发现没有C风格接口定义的接口,您始终可以针对.idl文件运行MIDL编译器。
还是有其他方法可以从C调用COM接口吗?
某些COM接口实现也是type libraries(。tlb)。您可以将TLB #import转换为C ++代码。这将生成一个主头文件(.tlh),您可以使用它来重建C风格的接口定义。