2016-09-22 32 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。也許搜索教程或例子?