调用该控件的 DoPropExchange 成员函数中对此函数序列化或初始化存储二进制大对象 (BLOB) (BLOB) 数据的属性。
BOOL PX_Blob(
CPropExchange* pPX,
LPCTSTR pszPropName,
HGLOBAL& hBlob,
HGLOBAL hBlobDefault = NULL
);
参数
pPX
指向 CPropExchange 对象的指针(通常是作为一个参数传递给DoPropExchange)。pszPropName
要改变的属性的名称。hBlob
对属性被存储的变量的引用 (通常是类的成员变量)。hBlobDefault
属性的默认值。
返回值
如果转换成功则为非零,如果不成功则为0。
备注
相应地,通过hBlob 从引用变量读取特性值或写入特性值到引用变量中。 应该初始化此变量为在第一次调用 NULL 前的初始 PX_Blob (通常,这将在控件的构造函数中执行)。 如果指定了 hBlobDefault,则它将用作属性的默认值。 出于某种原因,如果控件的序列化进程失败,则使用该值。
处理 hBlob 和 hBlobDefault 引用包含内容的内存块:
以字节为二进制,包含数据长度,后面的 DWORD,之后立即
实际包含二进制数据的内存块。
请注意使用 Windows GlobalAlloc API,PX_Blob 将分配了内存,那么,当加载 BLOB 类型属性。 您负责释放该内存。 因此,控件的析构函数应对任何类型属性处理 BLOB 的 GlobalFree 释放任何内存分配到控件。
要求
头文件: afxctl.h