如何处理指向C ++中接口的指针

时间:2016-09-22 07:54:53

标签: c++

我是C ++的新手,我正在调用具有以下定义的Windows函数:

HRESULT getElementById(BSTR v, IHTMLElement **pel)

所以我有以下用法:

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

现在我要对元素做什么对我有用?

我想了解元素的属性和方法,但我不知道如何去做。

请有人帮忙。

1 个答案:

答案 0 :(得分:6)

这很可能是调用该函数的错误方法。 getElementById函数接受指针指针,因为它模拟按引用传递,并将写入函数内的解除引用指针。由于您传递了未初始化的指针,因此您将获得未定义的行为,并且可能会崩溃。

您应该做的是声明一个指针变量,并将指针传递给该变量。像

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

至于如何获取属性等,我建议您read a reference for IHTMLElement。也许还会搜索教程或示例?