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
は、コントロールのプロパティをシリアル化したり、コントロールの読み込みまたは作成時にコントロールのプロパティを初期化したりするために使用できます。 CPropExchange
のExchangeProp
および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::ExchangeBlobProp
、 CResetPropExchange::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::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。
解説
プロパティがメディアからコントロールに読み込まれている場合、プロパティの値は medium から取得され、 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、それ以外の場合は FALSE を返します。
CPropExchange::IsLoading
この関数を呼び出して、プロパティがコントロールに読み込まれているか、そこから保存されているかを判断します。
BOOL IsLoading();
戻り値
プロパティが読み込まれている場合は 0 以外。それ以外の場合は 0。