gpt4 book ai didi

C# 从 COM 对象获取 progID

转载 作者:太空狗 更新时间:2023-10-29 17:50:12 29 4
gpt4 key购买 nike

我想知道是否有办法在 C# 中获取 com 对象的 progId。例如 - 我有一个 webBrowser 对象,它公开了一个 COM 文档对象。有没有办法弄清楚该文档对象的 progID 是什么?

我知道您可以从 progID 获取对象,只是不确定如何反过来做。

最佳答案

您可以查询 IPersistGetClassID在上面。

这将为您提供 CLSID。然后调用ProgIDFromCLSID :

The pinvoke declaration is here.

这将为您提供 ProgID。

编辑:

要查询接口(interface),您只需在 C# 中进行强制转换:

IPersist p = myObj as IPersist;
if (p != null)
{
// phew, it worked...
}

在幕后,这就是实际发生的事情,如 C++ 所示:

IUnknown *pUnk = // ... get object from somewhere

IPersist *pPersist = 0;
if (SUCCEEDED(pUnk->QueryInterface(IID_IPersist, (void **)&pPersist)))
{
// phew, it worked...
}

(但是现在没有人为手动编写这些东西而烦恼,因为智能指针几乎可以模拟 C# 体验。)

关于C# 从 COM 对象获取 progID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1253368/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com