我正在尝试编写一个函数,它将下载网站的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数组会产生错误。
答案 0 :(得分:6)
它是指向IStream
的指针。 “LP”代表“Long Pointer”,现在只是指“指针”。这是Windows SDK中的常见命名约定,例如,请参阅LPVOID
(void*
)和LPWSTR
(wchar_t*
)。
您可以通过查找SDK中声明的位置(即,您已包含的标题中)来查找类型。或者,在这种情况下,您正在调用的URLOpenBlockingStream
函数的文档说明了ppStream
参数的以下内容:
指向此函数创建的流对象上的
IStream
接口的指针。一旦有了这个指针,调用者就可以从流中读取它。