OLEドラッグ&ドロップ
IDataObject・IDropSource・IDropTargetとDoDragDropのループで構成される、COMベースのデータ受け渡し。
- 概念URI
https://comcomponent.com/knowledge/ole-drag-drop/
- 最終確認日
- 2026-08-01
- 機械可読データ
- JSON-LD
この概念が関わる関係
- OLEドラッグ&ドロップはIDataObjectを利用します。IDataObjectが運ばれるデータ本体で、IDropSourceがドラッグ継続/中止の判断とカーソルフィードバック、IDropTargetがDragEnter/DragOver/DragLeave/Dropでの受け入れ可否の表明と受け取りを担う。クリップボードのコピー&ペーストとまったく同じ機能を提供するため、コピペを実装済みのアプリなら追加はわずかとされている。 / 確度: 確立した関係 / 確認日: 2026-08-21 出典
- OLEドラッグ&ドロップはOleInitialize(STA)を前提とします。ドロップ先ウィンドウはRegisterDragDropで登録するが、CoInitialize/CoInitializeExで初期化しているとE_OUTOFMEMORYで必ず失敗し、OleInitializeでなければならない。呼び出しスレッドがメッセージポンプを回していることも必須で、怠るとドラッグ中の他アプリがハングする。 / 確度: 確立した関係 / 確認日: 2026-08-21 出典
- UIPI(User Interface Privilege Isolation)はOLEドラッグ&ドロップを防ぎます。UIPIは低い整合性レベルの送信元からのメッセージを遮断するため、通常権限のエクスプローラーから昇格したアプリへはドロップの通知が届かない。ChangeWindowMessageFilterExで通せるのは旧式のWM_DROPFILESであって、OLE D&D全体が解決するわけではない。 / 確度: 確立した関係 / 確認日: 2026-08-21 出典
- OLEドラッグ&ドロップはDragDropEffects(Copy / Move / Link)を利用します。Copy/Move/Linkはドラッグ元とドロップ先の間の契約で、ドラッグ元がDoDragDropで許可する効果の集合を宣言し、ドロップ先が実際の効果を選ぶ。Moveが成立するとドラッグ元がデータを削除するため、受け側が深く考えずMoveを返すと元のファイルが消える事故になる。 / 確度: 確立した関係 / 確認日: 2026-08-22 出典
この概念を扱う記事
一次資料
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。