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

时间:2012-08-23 18:20:26

标签: c++ stream

我正在尝试编写一个函数,它将下载网站的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数组会产生错误。

1 个答案:

答案 0 :(得分:6)

它是指向IStream的指针。 “LP”代表“Long Pointer”,现在只是指“指针”。这是Windows SDK中的常见命名约定,例如,请参阅LPVOIDvoid*)和LPWSTRwchar_t*)。

您可以通过查找SDK中声明的位置(即,您已包含的标题中)来查找类型。或者,在这种情况下,您正在调用的URLOpenBlockingStream函数的文档说明了ppStream参数的以下内容:

  

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