2012-08-23 113 views
2

我試圖編寫一個函數,它將下載網站的HTML源代碼,並以字符串,列表,數組或真正任何可用的格式返回它。爲此,我使用了一個稱爲URLOpenBlockingStream的便利功能,該功能將下載網站的HTML源代碼並將其放入LPSTREAM類型的對象中。什麼是LPSTREAM對象,我該如何使用它?

//Saves the HTML souce of stackoverflow.com in the object "lps", of type LPSTREAM. 
HRESULT hr = URLOpenBlockingStream(0, "http://www.stackoverflow.com/", &lps, 0, 0); 

現在,這是什麼?我可以在互聯網上的任何地方找到很少有關於LPSTREAM的參考資料,而且沒有解釋我如何從那裏獲取數據。它可能就像一個IStream對象,但即使這也沒有幫助,因爲在char數組中使用插入操作符會產生錯誤。

回答

5

它是指向IStream的指針。 「LP」代表「長指針」,現在只是「指針」。這是Windows SDK中的常用命名約定,例如請參閱LPVOIDvoid*)和LPWSTRwchar_t*)。

您可以通過查找在SDK中聲明的位置(即包含的標頭中)來始終確定類型。或者說,在這種情況下,爲URLOpenBlockingStream功能您呼叫的文件說,下面講ppStream參數:

一個指向該函數創建的流對象上IStream接口。只要有指針,調用者就可以從流中讀取數據。

+0

啊,facepalm。感謝您的快速回復! – user1620639

相關問題