LPSTREAM对象是什么,我该如何使用它?

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对象,但即使如此,使用插入运算符将字符数组插入会产生错误。
1个回答

6
这是指向IStream的指针。 "LP"代表“Long Pointer”,现在只意味着“指针”。这是Windows SDK中的常见命名约定,例如请参阅LPVOID (void*)和LPWSTR (wchar_t*)。
您可以通过查找SDK中声明类型的位置(即您已包含的标头)来了解类型是什么。或者,在这种情况下,您调用的URLOpenBlockingStream函数的文档说明了ppStream参数的如下内容:

此函数创建的流对象上的IStream接口的指针。调用方一旦拥有该指针就可以从流中读取。


啊,扇耳光。感谢您的快速回复! - user1620639

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接