【问题标题】:What's an LPSTREAM object and how can I use it?什么是 LPSTREAM 对象,我该如何使用它?
【发布时间】:2012-08-23 18:20:26
【问题描述】:

我正在尝试编写一个函数,该函数将下载网站的 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 数组中使用插入运算符会产生错误。

【问题讨论】:

    标签: c++ stream


    【解决方案1】:

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

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

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

    【讨论】:

    • 啊,捂脸。感谢您的快速回复!
    猜你喜欢
    • 2011-06-24
    • 2010-10-18
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 2012-12-01
    • 1970-01-01
    相关资源
    最近更新 更多