クリップボード : データのコピーと貼り付け
このトピックでは、にコピーし、 OLE アプリケーションのクリップボードからの貼り付けことを実行するために必要な最小作業について説明します。続行する前に データ オブジェクトとデータ ソース (OLE) のトピックを読むことをお勧めします。
コピーまたは貼り付けることを実行する前に、コピーを処理する関数を提供します。編集] メニューの [切り取り]、 [貼り付け] オプション。
データをコピーまたは切り取り
データをクリップボードにコピーするには
データがネイティブ データ、または埋め込まれたまたはリンク アイテムであるコピーするかどうかを確認します。
データが埋め込まれたまたはリンクした場合は、選択した COleClientItem のオブジェクトへのポインターを取得します。
データがネイティブで、アプリケーションがサーバー、選択したデータを含む COleServerItem から派生した新しいオブジェクトを作成します。は、データの COleDataSource のオブジェクトを作成します。
選択した項目の CopyToClipboard のメンバー関数を呼び出します。
ユーザーがコピー操作ではなく切り取り操作を選択した場合は、アプリケーションから選択したデータを削除します。
この手順の例については、 MFC OLE サンプル プログラム OCLIENT と HIERSVRの OnEditCut と OnEditCopy 関数を参照してください。これらのサンプルが選択したデータにポインターが現在保持しているため、ステップ 1 が既に完了することに注意してください。
データを貼り付けること
データを貼り付けると、アプリケーションにデータを貼り付けることで使用するフォームを選択する必要があるため、でコピーより複雑です。
クリップボードからデータを貼り付けます。
クラス ビューでは、編集] メニューの [貼り付け] オプションを選択してユーザーを処理する実装 OnEditPaste 。
OnEditPaste 関数では、 COleDataObject のオブジェクトを作成し、クリップボードのデータにこのオブジェクトをリンクするに AttachClipboard のメンバー関数をダイヤルします。
特定のフォームが使用できるかどうかを確認するに COleDataObject::IsDataAvailable を呼び出します。
また、アプリケーションに適した 1 を見つけるまで、他のフォームを検索するために COleDataObject::BeginEnumFormats を使用できます。
フォームの貼り付けを実行します。
例にはこれがどのように動作するか、 MFC OLE サンプル プログラム OCLIENT と HIERSVRで定義されているビュー クラスの OnEditPaste のメンバー関数の実装を参照してください。
ヒント |
---|
独自の関数に貼り付け操作を分離する主な利点は、データがドラッグ アンド ドロップ操作中にアプリケーション上にドロップされると同じ貼り付けコードが使用できることです。OCLIENT および HIERSVR のように、 OnDrop 関数は、実装の貼り付け操作に作成されたコードを再利用する DoPasteItemをダイヤルできます。 |
編集] メニューの特別な貼り付けオプションを処理するには、 " " OLE のダイアログ ボックスを参照してください。