我正在尝试编写一个函数,它将下载网站的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);
Run Code Online (Sandbox Code Playgroud)
现在,这是什么?我在互联网上的任何地方都找不到对LPSTREAM的引用,也没有人解释我如何从中获取数据.它可能就像一个IStream对象,但即使这样也无济于事,因为将插入运算符用于char数组会产生错误.
它是一个指针IStream."LP"代表"Long Pointer",现在只是指"指针".这是Windows SDK中的常见命名约定,例如see LPVOID(void*)和LPWSTR(wchar_t*).
您可以通过查找SDK中声明的位置(即,在您包含的标题中)来了解类型是什么.或者,在这种情况下,URLOpenBlockingStream您正在调用的函数的文档说明以下有关ppStream参数:
指向
IStream此函数创建的流对象上的接口的指针.一旦有了这个指针,调用者就可以从流中读取.