4

我正在尝试编写一个函数,它将下载网站的 HTML 源代码并以字符串、列表、数组或任何可用格式返回它。为此,我使用了一个名为URLOpenBlockingStream的看起来很方便的函数,它将下载网站的 HTML 源代码并将其放置在 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 数组中使用插入运算符会产生错误。

4

1 回答 1

6

它是一个指向IStream. “LP”代表“Long Pointer”,现在的意思是“指针”。这是 Windows SDK 中的常见命名约定,例如参见LPVOID( void*) 和LPWSTR( wchar_t*)。

您总是可以通过查找它在 SDK 中的声明位置(即,在您包含的标头中)来找出类型是什么。或者,在这种情况下,URLOpenBlockingStream您正在调用的函数的文档对ppStream参数进行了以下说明:

指向IStream此函数创建的流对象上的接口的指针。调用者一旦有了这个指针就可以从流中读取。

于 2012-08-23T18:25:29.407 回答