Я хочу использовать InterfaceSupportsErrorInfo, чтобы проверить, поддерживает ли COM-объект IErrorInfo. Я не могу понять, откуда мне взять параметр riid.
Я получаю CComPtr следующим образом:
CoInitialize(NULL);
CComPtr<IDispatch> pCOM;
pCOM.CoCreateInstance(L"<ClassName>", NULL, CLSCTX_ALL);
Затем я получаю сбой HRESULT из вызова pCOM-> InvokeN. Я знаю, что объект поддерживает IErrorInfo, потому что GetErrorInfo возвращает его успешно, но я хотел бы знать, как формально проверить, поддерживается ли интерфейс.
Я пытался
CComQIPtr<ISupportErrorInfo, &IID_ISupportErrorInfo> pSupportErrorInfo(pCOM);
pSupportErrorInfo->InterfaceSupportsErrorInfo(IID_IDispatch);
, но возвращает S_FALSE .