Share via


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 は、コントロールのプロパティをシリアル化したり、コントロールの読み込みまたは作成時にコントロールのプロパティを初期化したりするために使用できます。 の ExchangeProp および ExchangeFontProp メンバー関数 CPropExchange は、さまざまなメディアにプロパティを格納し、それらを読み込むことができます。

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

継承階層

CPropExchange

必要条件

ヘッダー: afxctl.h

CPropExchange::ExchangeBlobProp

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

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

パラメーター

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

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

hBlobDefault
プロパティの既定値。

戻り値

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

解説

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

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

CPropExchange::ExchangeFontProp

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

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

パラメーター

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

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

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

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

戻り値

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

解説

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

CArchivePropExchange::ExchangeFontProp関数、CResetPropExchange::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::ExchangePersistentProp関数、CResetPropExchange::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。

解説

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

CArchivePropExchange::ExchangeProp関数、CResetPropExchange::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、それ以外の場合は FAL Standard Edition を返します。

CPropExchange::IsLoading

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

BOOL IsLoading();

戻り値

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

関連項目

階層図
COleControl::D oPropExchange