次の方法で共有


CPropExchange クラス

OLE コントロールの永続性の実装をサポートします。

構文

class AFX_NOVTABLE CPropExchange

メンバー

パブリック メソッド

名前 説明
CPropExchange::ExchangeBlobProp バイナリ ラージ オブジェクト (BLOB) プロパティを交換します。
CPropExchange::ExchangeFontProp フォント プロパティを交換します。
CPropExchange::ExchangePersistentProp コントロールとファイルの間でプロパティを交換します。
CPropExchange::ExchangeProp 任意の組み込み型のプロパティを交換します。
CPropExchange::ExchangeVersion OLE コントロールのバージョン番号を交換します。
CPropExchange::GetVersion OLE コントロールのバージョン番号を取得します。
CPropExchange::IsAsynchronous プロパティ交換が非同期的に行われるかどうかを判断します。
CPropExchange::IsLoading プロパティをコントロールに読み込むか、コントロールから保存するかを示します。

解説

CPropExchange には基底クラスはありません。

プロパティ交換のコンテキストと方向を確立します。

永続化とは、コントロール自体とメディアの間で、通常はプロパティによって表されるコントロールの状態情報の交換です。

フレームワークは、OLE コントロールのプロパティの読み込み先または永続的ストレージへの格納が通知されたときに、 CPropExchange から派生したオブジェクトを構築します。

フレームワークは、この CPropExchange オブジェクトへのポインターをコントロールの DoPropExchange 関数に渡します。 ウィザードを使用してコントロールのスターター ファイルを作成した場合、コントロールの DoPropExchange 関数は COleControl::DoPropExchange呼び出します。 基底クラスのバージョンは、コントロールのストック プロパティを交換します。派生クラスのバージョンを変更して、コントロールに追加したプロパティを交換します。

CPropExchange は、コントロールのプロパティをシリアル化したり、コントロールの読み込みまたは作成時にコントロールのプロパティを初期化したりするために使用できます。 CPropExchangeExchangePropおよびExchangeFontPropメンバー関数は、プロパティを格納し、異なるメディアから読み込むことができます。

CPropExchangeの使用方法の詳細については、「MFC ActiveX コントロール: プロパティ ページ」を参照してください。

継承階層

CPropExchange

要件

Header: afxctl.h

CPropExchange::ExchangeBlobProp

バイナリ ラージ オブジェクト (BLOB) データを格納するプロパティをシリアル化します。

virtual BOOL ExchangeBlobProp(
    LPCTSTR pszPropName,
    HGLOBAL* phBlob,
    HGLOBAL hBlobDefault = NULL) = 0;

パラメーター

pszPropName
交換するプロパティの名前。

phBlob
プロパティが格納されている場所を指す変数へのポインター (変数は通常、クラスのメンバーです)。

hBlobDefault
プロパティの既定値。

戻り値

交換が成功した場合は 0 以外。失敗した場合は 0。

解説

プロパティの値は、必要に応じて、 phBlob によって参照される変数から読み取られたり書き込まれたりします。 hBlobDefault を指定すると、プロパティの既定値として使用されます。 この値は、何らかの理由でコントロールのシリアル化が失敗した場合に使用されます。

関数 CArchivePropExchange::ExchangeBlobPropCResetPropExchange::ExchangeBlobProp、および CPropsetPropExchange::ExchangeBlobProp は、この純粋な仮想関数をオーバーライドします。

CPropExchange::ExchangeFontProp

ストレージ メディアとコントロールの間でフォント プロパティを交換します。

virtual BOOL ExchangeFontProp(
    LPCTSTR pszPropName,
    CFontHolder& font,
    const FONTDESC* pFontDesc,
    LPFONTDISP pFontDispAmbient) = 0;

パラメーター

pszPropName
交換するプロパティの名前。

font
font プロパティを含む CFontHolder オブジェクトへの参照。

pFontDesc
pFontDispAmbientが NULL の場合に、フォント プロパティの既定の状態を初期化するための値を含むFONTDESC構造体へのポインター。

pFontDispAmbient
font プロパティの既定の状態の初期化に使用するフォントの IFontDisp インターフェイスへのポインター。

戻り値

交換が成功した場合は 0 以外。失敗した場合は 0。

解説

フォント プロパティがメディアからコントロールに読み込まれている場合は、フォントの特性が medium から取得され、font によって参照されるCFontHolder オブジェクトが初期化されます。 font プロパティが格納されている場合は、フォント オブジェクトの特性がメディアに書き込まれます。

関数 CArchivePropExchange::ExchangeFontPropCResetPropExchange::ExchangeFontProp、および CPropsetPropExchange::ExchangeFontProp は、この純粋な仮想関数をオーバーライドします。

CPropExchange::ExchangePersistentProp

コントロールとファイルの間でプロパティを交換します。

virtual BOOL ExchangePersistentProp(
    LPCTSTR pszPropName,
    LPUNKNOWN* ppUnk,
    REFIID iid,
    LPUNKNOWN pUnkDefault) = 0;

パラメーター

pszPropName
交換するプロパティの名前。

ppUnk
プロパティの IUnknown インターフェイスへのポインターを含む変数へのポインター (通常、この変数はクラスのメンバーです)。

iid
コントロールが使用するプロパティのインターフェイスのインターフェイス ID。

pUnkDefault
プロパティの既定値。

戻り値

交換が成功した場合は 0 以外。失敗した場合は 0。

解説

プロパティがファイルからコントロールに読み込まれている場合は、プロパティが作成され、ファイルから初期化されます。 プロパティが格納されている場合、その値はファイルに書き込まれます。

関数 CArchivePropExchange::ExchangePersistentPropCResetPropExchange::ExchangePersistentProp、および CPropsetPropExchange::ExchangePersistentProp は、この純粋な仮想関数をオーバーライドします。

CPropExchange::ExchangeProp

ストレージ メディアとコントロールの間でプロパティを交換します。

virtual BOOL ExchangeProp(
    LPCTSTR pszPropName,
    VARTYPE vtProp,
    void* pvProp,
    const void* pvDefault = NULL) = 0 ;

パラメーター

pszPropName
交換するプロパティの名前。

vtProp
交換するプロパティの型を指定するシンボル。 次のいずれかの値になります。

記号 プロパティの種類
VT_I2 short
VT_I4 long
VT_BOOL BOOL
VT_BSTR CString
VT_CY CY
VT_R4 float
VT_R8 double

pvProp
プロパティの値へのポインター。

pvDefault
プロパティの既定値へのポインター。

戻り値

交換が成功した場合は 0 以外。失敗した場合は 0。

解説

プロパティがメディアからコントロールに読み込まれている場合、プロパティの値は medium から取得され、 pvProp が指すオブジェクトに格納されます。 プロパティがメディアに格納されている場合、 pvProp が指すオブジェクトの値がメディアに書き込まれます。

関数 CArchivePropExchange::ExchangePropCResetPropExchange::ExchangeProp、および CPropsetPropExchange::ExchangeProp は、この純粋な仮想関数をオーバーライドします。

CPropExchange::ExchangeVersion

バージョン番号の永続化を処理するためにフレームワークによって呼び出されます。

virtual BOOL ExchangeVersion(
    DWORD& dwVersionLoaded,
    DWORD dwVersionDefault,
    BOOL bConvert);

パラメーター

dwVersionLoaded
読み込まれる永続データのバージョン番号が格納される変数への参照。

dwVersionDefault
コントロールの現在のバージョン番号。

bConvert
永続データを現在のバージョンに変換するか、読み込まれたのと同じバージョンに保持するかを示します。

戻り値

関数が成功した場合は 0 以外。それ以外の場合は 0。

CPropExchange::GetVersion

この関数を呼び出して、コントロールのバージョン番号を取得します。

DWORD GetVersion();

戻り値

コントロールのバージョン番号。

CPropExchange::IsAsynchronous

プロパティ交換が非同期的に行われるかどうかを判断します。

BOOL IsAsynchronous();

戻り値

プロパティが非同期的に交換される場合は TRUE、それ以外の場合は FALSE を返します。

CPropExchange::IsLoading

この関数を呼び出して、プロパティがコントロールに読み込まれているか、そこから保存されているかを判断します。

BOOL IsLoading();

戻り値

プロパティが読み込まれている場合は 0 以外。それ以外の場合は 0。

関連項目

階層図
COleControl::D oPropExchange