我该如何处理c++中指向接口指针的指针呢?

What do I do with a pointer to a pointer to an interface in C++

本文关键字:指针 接口 c++ 何处理 处理      更新时间:2023-10-16

我是c++的新手,我正在调用一个具有以下定义的windows函数:

HRESULT getElementById(BSTR v, IHTMLElement **pel)

所以我有以下用法:

CComBSTR v = "myid";
IHTMLElement** element;
HRESULT hr = pDocument->getElementById(v, element);

现在我该怎么做才能使元素对我有用呢?

我想了解元素的属性和方法,但是不知道怎么做

谁来帮帮忙。

这很可能是调用函数的错误方式。getElementById函数接受指向指针的指针,因为它模拟了通过引用传递的,并且将写入函数内部的解引用指针。因为你传递了一个未初始化的指针,你将得到未定义的行为,并且可能导致崩溃。

你应该做的是声明一个单指针变量,并传递一个指向该变量的指针。像

CComBSTR v = "myid";
IHTMLElement* element;
HRESULT hr = pDocument->getElementById(v, &element);

关于如何获取属性等,我建议您阅读IHTMLElement的参考资料。也许还可以搜索教程或示例?