OK、...
// Firefox //
if (e.Data.GetDataPresent("text/x-moz-url", true)) {
HandleFirefoxUrl(e);
} else if (e.Data.GetDataPresent("text/_moz_htmlcontext", true)) {
HandleFirefoxSnippet(e);
// Internet Explorer //
} else if (e.Data.GetDataPresent("UntrustedDragDrop", false)) {
HandleIELink(e);
} else if (e.Data.GetDataPresent("UniformResourceLocatorW", false)) {
HandleIEPage(e);
} else if (e.Data.GetDataPresent(DataFormats.FileDrop, true)) { //FILES
Array droppedFiles = (Array)e.Data.GetData(DataFormats.FileDrop);
HandleFiles(droppedFiles);
} else if (e.Data.GetDataPresent(DataFormats.Bitmap, true)) { // BITMAP
Bitmap image = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap);
HandleBitmap(image);
} else if (e.Data.GetDataPresent(DataFormats.Html, true)) { // HTML
String pastedHtml = (string)e.Data.GetData(DataFormats.Html);
HandleHtml(pastedHtml);
} else if (e.Data.GetDataPresent(DataFormats.CommaSeparatedValue, true)) { // CSV
MemoryStream memstr = (MemoryStream)e.Data.GetData("Csv");
StreamReader streamreader = new StreamReader(memstr);
String pastedCSV = streamreader.ReadToEnd();
HandleCSV(pastedCSV);
// } else if (e.Data.GetDataPresent(DataFormats.Tiff, true)) {
// } else if (e.Data.GetDataPresent(DataFormats.WaveAudio, true)) {
} else if (e.Data.GetDataPresent(DataFormats.Text, true)) { //TEXT
String droppedText = e.Data.GetData(DataFormats.Text).ToString();
HandleText(droppedText);
[else if .....]
} else { // UNKNOWN
Debug.WriteLine("unknown dropped format");
}
良い誰もこれの逆を知っていれば、質問、また、(どのようにドラッグしたアイテムのドロップ位置を取得します作成されたアプリケーション)、彼らも共有することができます:-) – ThePower
その逆の場合は、おそらくユーザーがマウスを放す場所を検出し、それを把握するためにウィンドウハンドルのPIDロジックを使用する。それはちょっとしたハックだけど、簡単な問題だ。 – EricLaw
htmlの場合は、SourceURLの "item"にあります。 String pastedHtml =(string)e.Data.GetData(DataFormats.Html); バージョン:1.0 StartHTML:000000182 EndHTML:000008325 StartFragment:000008144 EndFragment:000008205 StartSelection:000008144 EndSelection:000008205 のSourceURLます:http:!//www.msn.com/
Renaud