从ProgID获取CLSID

问题描述

我正在Windows 10 1909上使用com组件的小型程序上工作,但是com函数CLSIDFromProgID出现问题。 C ++代码如下。

CoInitialize(NULL);
HRESULT hr = NULL;
CLSID clsid;
LPOLESTR pProgID = L"ProvisioningWapDPURemote";
hr = ProgIDFromCLSID(clsid,&pProgID);

我检查了注册表中是否存在progid,但是每执行一次此代码,ProgIDFromCLSID函数就会返回无效的类字符串。而且,当我从clsid获取progid时,我得到的clsid与原始的相同,我的意思是“ ProvisioningWapDPURemote”。我找不到问题所在。有人可以帮我吗?

解决方法

您的问题提到CLSIDFromProgID(),但是您的代码正在调用ProgIDFromCLSID()。您需要致电前者,例如:

CLSID clsid;
LPOLESTR pProgID = L"ProvisioningWapDPURemote";
HRESULT hr = CLSIDFromProgID(pProgID,&clsid);