OleLoadPictureEx 函数 (olectl.h)

创建一个新的图片对象,并从流的内容初始化它。 这相当于调用 OleCreatePictureIndirect 并将 NULL 作为第一个参数,然后调用 IPersistStream::Load

语法

WINOLECTLAPI OleLoadPictureEx(
  [in]  LPSTREAM lpstream,
  [in]  LONG     lSize,
  [in]  BOOL     fRunmode,
  [in]  REFIID   riid,
  [in]  DWORD    xSizeDesired,
  [in]  DWORD    ySizeDesired,
  [in]  DWORD    dwFlags,
  [out] LPVOID   *lplpvObj
);

参数

[in] lpstream

指向包含图片数据的流的指针。

[in] lSize

应从流中读取的字节数;如果应读取整个流,则为零。

[in] fRunmode

与 KeepOriginalFormat 属性的初始值相反。 如果 为 TRUE则 KeepOriginalFormat 设置为 FALSE ,反之亦然。

[in] riid

对接口标识符的引用,描述在 ppvObj 中返回的接口指针的类型。

[in] xSizeDesired

图标或光标的所需宽度。 有效值为 16、32 和 48。 将LP_DEFAULT传递给这两个大小参数,以使用系统默认大小。

[in] ySizeDesired

图标或光标的所需高度。 有效值为 16、32 和 48。 将LP_DEFAULT传递给这两个大小参数,以使用系统默认大小。

[in] dwFlags

图标或光标的所需颜色深度。 值为LP_MONOCHROME (单色) 、LP_VGACOLOR (16 色) 、LP_COLOR (256 种颜色) ,或LP_DEFAULT (选择当前显示) 的最佳深度。

[out] lplpvObj

接收 riid 中请求的接口指针的指针变量的地址。 成功返回后,*ppvObj 在名字对象标识的存储上包含请求的接口指针。 如果 *ppvObj 为非 NULL,则此函数在接口上调用 IUnknown::AddRef ;调用方负责调用 IUnknown::Release。 如果发生错误,*ppvObj 设置为 NULL

返回值

此函数在成功时返回S_OK。 其他可能的值包括以下内容。

返回代码 说明
E_NOINTERFACE
对象不支持 riid 中指定的接口。
E_POINTER
pPictDescppvObj 中的地址无效。 例如,它可能为 NULL

注解

流必须采用 BMP (位图) 、WMF (图元文件) 或 ICO (图标) 格式。 使用 OleLoadPictureEx 创建的图片对象始终拥有其内部资源的所有权, (fOwn==TRUE 是隐式) 。

除了允许指定图标或光标大小外, OleLoadPictureEx 还支持加载颜色游标。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 olectl.h
Library OleAut32.lib
DLL OleAut32.dll

另请参阅

OleCreatePictureIndirect

PICTDESC