次の方法で共有


OleFlushClipboard 関数 (ole2.h)

クリップボードのシャットダウン シーケンスを実行します。 また、OleSetClipboard 関数によってクリップボードに配置された IDataObject ポインターも解放されます。

構文

HRESULT OleFlushClipboard();

戻り値

この関数は、成功したS_OKを返します。 その他の使用可能な値は次のとおりです。

リターン コード 説明
CLIPBRD_E_CANT_OPEN
OleFlushClipboard 内で使用されている Windows OpenClipboard 関数が失敗しました。
CLIPBRD_E_CANT_CLOSE
OleFlushClipboard 内で使用されている Windows CloseClipboard 関数が失敗しました。

注釈

OleFlushClipboard は、データ オブジェクトのデータをクリップボードにレンダリングし、 IDataObject ポインターをデータ オブジェクトに解放します。 データ オブジェクトをクリップボードに配置するアプリケーションが実行されている間、クリップボードはデータ オブジェクトへのポインターのみを保持するため、メモリが節約されます。 クリップボード操作のソースとして機能するアプリケーションを作成している場合は、アプリケーションを閉じるときに OleFlushClipboard 関数を呼び出すことができます (ユーザーがアプリケーションを終了したときなど)。 OleFlushClipboard を呼び出すと、アプリケーションのシャットダウン後に OLE オブジェクトの貼り付けと貼り付けリンクが可能になります。

OleFlushClipboard を呼び出す前に、OleIsCurrentClipboard 関数を呼び出すことで、データがまだクリップボードに残っているかどうかを簡単に判断できます。

OleFlushClipboard は、OLE 1 互換性形式を含むデータ転送オブジェクトによって提供されるすべての形式をクリップボードに残して、アプリケーションのシャットダウン後に使用できるようにします。 OLE 1 互換形式に加えて、グローバル ハンドル メディアで提供されるすべての形式 (TYMED_FILEを除く) と NULL ターゲット デバイスで書式設定されたすべての形式が含まれます。 たとえば、データ ソース アプリケーションが IStorage オブジェクトに特定のクリップボード形式 (cfFOO など) を提供し、 OleFlushClipboard 関数を呼び出すと、ストレージ オブジェクトはメモリにコピーされ、hglobal メモリ ハンドルはクリップボードに格納されます。

クリップボードの情報を取得するには、別のアプリケーションから OleGetClipboard 関数を呼び出して、既定のデータ オブジェクトを作成し、クリップボードの hglobal が再びストレージ オブジェクトになります。 さらに、 FORMATETC 列挙子と IDataObject::QueryGetData メソッドはすべて、元のクリップボード形式 (cfFOO) がTYMED_ISTORAGEで再び使用可能であることを正しく示します。

クリップボードを空にするには、パラメーターの NULL 値を指定して OleSetClipboard 関数を呼び出します。 シャットダウン後にクリップボードにデータを残す必要がない場合、または標準の Windows クリップボード関数を使用してクリップボードにデータが配置される場合は、アプリケーションでこれを呼び出す必要があります。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ole2.h
Library Ole32.lib
[DLL] Ole32.dll
API セット ext-ms-win-com-ole32-l1-1-5 (Windows 10 バージョン 10.0.15063 で導入)

こちらもご覧ください

Idataobject

OleGetClipboard

OleIsCurrentClipboard

OleSetClipboard