2016-09-22 61 views
-1

我是新的C++和我打电话说有如下定义一个窗口功能:我该怎么办的指针指向一个C++接口

HRESULT getElementById(BSTR v, IHTMLElement **pel) 

所以,我有以下用法:

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

现在我该如何处理元素对我有用?

我想知道元素的属性和方法,但我不知道该怎么去做。

有人可以帮忙。

+4

'(** element).property'?那是你在找什么? – freakish

+0

非常好 - 谢谢 – Graham

+0

你正在将一个无原型的'IHTMLElement **'传递给一个带'IHTMLElement **'的函数。有些东西不对... –

回答

6

这很可能是错误的方式来调用该函数。 getElementById函数需要一个指针指向一个指针,因为它仿效通过引用,并将写入该函数内的解除引用的指针。既然你传递了一个未初始化的指针,你将会得到未定义的行为并且可能是崩溃。

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

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

至于如何获得属性等,我建议你read a reference for IHTMLElement。也许搜索教程或例子?