次の方法で共有


PX_Blob

更新 : 2007 年 11 月

コントロールの DoPropExchange メンバ関数内からこの関数を呼び出して、バイナリ ラージ オブジェクト (BLOB: Binary Large Object) データを格納するプロパティをシリアル化または初期化します。

BOOL PX_Blob(
   CPropExchange* pPX,
   LPCTSTR pszPropName,
   HGLOBAL& hBlob,
   HGLOBAL hBlobDefault = NULL 
);

パラメータ

  • pPX
    CPropExchange オブジェクトへのポインタ。通常は DoPropExchange にパラメータとして渡されます。

  • pszPropName
    交換されるプロパティの名前。

  • hBlob
    プロパティが格納される変数への参照。通常はクラスのメンバ変数です。

  • hBlobDefault
    プロパティの既定値。

戻り値

交換できた場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

必要に応じてプロパティの値が hBlob で参照される変数に対して読み書きされます。この値は PX_Blob を初期呼び出しする前に、NULL で初期化しておく必要があります。通常は、コントロールのコンストラクタから初期呼び出しされます。hBlobDefault が指定されているときは、それがプロパティの既定値として使われます。何らかの理由でコントロールの初期化またはシリアル化処理が失敗したときにこの値が使われます。

hBlob および hBlobDefault のハンドルは次の内容を持つメモリ ブロックを参照します。

  • 後に続くバイナリ データの長さをバイト単位で保持する DWORD 型の値

  • 実際のバイナリ データを含むメモリ ブロック。

PX_Blob では、BLOB 型のプロパティが読み込まれるときに Windows API の GlobalAlloc を使用してメモリを割り当てます。このメモリは解放する必要があります。コントロールで割り当てているメモリを解放するには、コントロールのデストラクタで BLOB 型のハンドルを渡して GlobalFree を呼び出します。

必要条件

ヘッダー : afxctl.h

参照

概念

MFC マクロとグローバル

参照

COleControl::DoPropExchange