释义 |
PX_Blob
BOOL PX_Blob( CPropExchange* pPX, LPCTSTR pszPropName, HGLOBAL& hBlob, HGLOBAL hBlobDefault = NULL );
返回值: 如果成功地交换了数据则为非零值,否则为0。
参数:pPX | 指向CPropExchange对象的指针(通常用作传递给DoPropExchange的参数)。 | pszPropName | 要交换的属性的名字。 | hBlob | 对存储属性的变量(通常是你的类的成员变量)的引用。 | hBlobDefault | 属性的缺省值。 |
说明: 在你的控件的DoPropExchange成员函数内调用这个函数,用以串行化或初始化一个存储二进制大对象(BLOB)数据的属性。属性的值将从hBlob引用的变量中读写。这个变量在最初调用PX_Blob之前必须被初始化为NULL(通常这可以在控件的构造函数中完成)。如果指定了hBlobDefault,它将被用作该属性的缺省值。如果由于某种原因,控件的初始化或串行化过程失败了,就会使用这个缺省值。 句柄hBlob和hBlobDefault指向一个内存块,其中包含如下内容:· | 包含了后面的二进制数据的长度(以字节为单位)的DWORD值,后面是: | · | 包含了实际的二进制数据的内存块。 | 注意当载入BLOB类型的属性时,PX_Blob会使用Windows的API函数GlobalAlloc来分配内存。你应该负责释放内存。因此,你的控件的析构函数必须对BLOB类型的属性句柄调用GlobalFree以释放为控件分配的内存。
请参阅:COleControl::DoPropExchange |