次の方法で共有


IOleCache::Cache メソッド (oleidl.h)

埋め込みオブジェクト内にキャッシュする形式とその他のデータを指定します。

構文

HRESULT Cache(
  [in]  FORMATETC *pformatetc,
  [in]  DWORD     advf,
  [out] DWORD     *pdwConnection
);

パラメーター

[in] pformatetc

キャッシュする形式とその他のデータを指定する FORMATETC 構造体へのポインター。 ビュー キャッシュは、 pformatetc で 0 個のクリップボード形式を渡すことによって指定されます。

[in] advf

キャッシュを制御するフラグのグループ。 指定できる値は 、ADVF 列挙体から取得されます。 このコンテキストで使用する場合、キャッシュの場合、これらの値には「解説」で説明されている特定の意味があります。 詳細な説明については、 ADVF 列挙を参照してください。

[out] pdwConnection

この接続の識別子を受け取る変数へのポインター。後でキャッシュをオフにするために使用できます ( IOleCache::Uncache に渡すことによって)。 この値が 0 の場合、接続は確立されませんでした。 OLE で提供される実装では、接続識別子に 0 以外の数値が使用されます。

戻り値

このメソッドは、成功したS_OKを返します。 その他の可能な戻り値は次のとおりです。

リターン コード 説明
E_INVALIDARG
指定された pformatetc 引数または advf 引数が無効です。
E_UNEXPECTED
予期しないエラーが発生しました。
E_OUTOFMEMORY
操作に使用できるメモリが不足しています。
CACHE_S_FORMATETC_NOTSUPPORTED
キャッシュは作成されましたが、オブジェクト アプリケーションは指定された形式をサポートしていません。 形式がサポートされていない場合でもキャッシュの作成は成功し、呼び出し元がキャッシュを埋めることができます。 ただし、呼び出し元がキャッシュを保持する必要がない場合は、 IOleCache::Uncache を呼び出します。
CACHE_S_SAMECACHE
IOleCache::Uncache に渡される FORMATETC のキャッシュは既に存在します。 この場合、新しいアドバイス フラグがキャッシュに割り当てられ、以前に割り当てられた接続識別子が返されます。
DV_E_LINDEX
pformatetc-lindex> の値が無効です。現在は -1 のみがサポートされています。
DV_E_TYMED
値は pformatetc-tymed>では無効です。
DV_E_DVASPECT
この値は pformatetc-dwAspect> では無効です。
DV_E_CLIPFORMAT
pformatetc-cfFormat> の値が無効です。
CO_E_NOTINITIALIZED
キャッシュのストレージが初期化されていません。
DV_E_DVTARGETDEVICE
この値は pformatetc--->ptd では無効です。
OLE_E_STATIC
キャッシュは静的オブジェクト用であり、キャッシュ ノードが既に存在します。

注釈

IOleCache::Cache では、データ キャッシュまたはビュー (プレゼンテーション) キャッシュのいずれかを指定できます。 データ キャッシュを指定するには、有効なデータ形式を pformatetc で渡す必要があります。 ビュー キャッシュの場合、キャッシュする形式はキャッシュ オブジェクト自体によって決定されるため、呼び出し元は次のように pformatetc でゼロ データ形式を渡します。

pFormatetc->cfFormat == 0

カスタム オブジェクト ハンドラーは、特定の形式でデータを格納しないことを選択できます。 代わりに、要求時にオンデマンドで合成できます。

advf 値は、ADVF 列挙体のメンバーを指定します。 このコンテキストでこれらの値の 1 つ (または複数の値の OR'd の組み合わせ) を使用する場合、これらの値は次を意味します。

ADVF 値 説明
ADVF_NODATA キャッシュは、実行中のオブジェクトに加えられた変更によって更新されません。 代わりに、コンテナーは IOleCache::SetData、IDataObject::SetData、または IOleCache2::UpdateCache を明示的に呼び出すことによってキャッシュを更新します。 このフラグは、通常、オブジェクトの象徴的な側面がキャッシュされている場合に使用されます。
ADVF_ONLYONCE キャッシュを 1 回だけ更新します。 更新が完了すると、オブジェクトとキャッシュの間のアドバイザリ接続が切断されます。 アドバイザリ接続のソース オブジェクトは 、Release メソッドを呼び出します。
ADVF_PRIMEFIRST オブジェクトは、キャッシュを更新する前に、データまたはビューが変更されるのを待つ必要はありません。 or'd と ADVF_ONLYONCE、このパラメーターは非同期 IDataObject::GetData 呼び出しを提供します。
ADVFCACHE_NOHANDLER ADVFCACHE_FORCEBUILTINのシノニム。
ADVFCACHE_FORCEBUILTIN DLL オブジェクト アプリケーションとオブジェクト ハンドラーによって使用され、プレゼンテーション データをキャッシュするオブジェクトを描画して、キャッシュにプレゼンテーションがあることを確認します。 これにより、オブジェクトまたはハンドラー コードが使用できない場合でも、データを取得できます。
ADVFCACHE_ONSAVE キャッシュされた表現を更新するのは、キャッシュを含むオブジェクトが保存されている場合のみです。 キャッシュは、OLE オブジェクトが実行中の状態から読み込み状態に戻ったときにも更新されます (後続の保存操作ではオブジェクトを再度実行する必要があるため)。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー oleidl.h

こちらもご覧ください

IOleCache

IOleCache::Uncache