クリップボードのシャットダウンシーケンスを実行する。また、OleSetClipboard 関数によってクリップボードに置かれた IDataObject ポインタを解放する。
OleFlushClipboard
(プラグイン / モジュール : ole32.dll)
クリップボードのシャットダウンシーケンスを実行する。また、OleSetClipboard 関数によってクリップボードに置かれた IDataObject ポインタを解放する。 [戻り値] 関数が成功した場合は S_OK を返す。その他に返される値は以下のとおり。 (以下省略) [備考] OleFlushClipboard はデータオブジェクトのデータをクリップボードにレンダリングし、データオブジェクトへの IDataObject ポインタを解放する。データオブジェクトをクリップボードに置いたアプリケーションが実行中の間、クリップボードはデータオブジェクトへのポインタのみを保持してメモリを節約する。クリップボード操作のソースとして動作するアプリケーションを書いている場合、ユーザがアプリケーションを終了するときなどに OleFlushClipboard 関数を呼び出すことができる。OleFlushClipboard を呼び出すことで、アプリケーション終了後も OLE オブジェクトの貼り付けや貼り付けリンクが可能になる。OleFlushClipboard を呼び出す前に、OleIsCurrentClipboard 関数を呼び出すことで自分のデータがまだクリップボード上にあるかを簡単に判定できる。OleFlushClipboard はデータ転送オブジェクトが提供するすべての形式(OLE 1 互換形式を含む)をクリップボード上に残し、アプリケーション終了後も使用できるようにする。OLE 1 互換形式に加えて、これらにはグローバルハンドルメディア(TYMED_FILE を除くすべて)で提供されるすべての形式、および NULL ターゲットデバイスで形式化されたものが含まれる。たとえば、データソースアプリケーションが特定のクリップボード形式(cfFOO)を IStorage オブジェクト上で提供し、OleFlushClipboard 関数を呼び出すと、ストレージオブジェクトはメモリにコピーされ、hglobal メモリハンドルがクリップボードに置かれる。クリップボード上の情報を取得するには、別のアプリケーションから OleGetClipboard 関数を呼び出すと、既定のデータオブジェクトが作成され、クリップボードからの hglobal は再びストレージオブジェクトとなる。さらに、FORMATETC 列挙子と IDataObject::QueryGetData メソッドは元のクリップボード形式(cfFOO)が再び TYMED_ISTORAGE で利用可能であることを正しく示す。クリップボードを空にするには、パラメータに NULL を指定して OleSetClipboard 関数を呼び出す。終了後にクリップボードにデータを残す必要がない場合、または標準の Windows クリップボード関数を使用してクリップボードにデータが置かれる場合、アプリケーションは終了時にこれを呼び出すべきである。
| プラグイン / モジュール | ole32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の ole32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_ole32_gen2.hs |