次の方法で共有


PX_Blob

コントロールの 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

参照

参照

COleControl::DoPropExchange

概念

MFC マクロとグローバル