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。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示