2

C# アプリから Skype に画像をドラッグ アンド ドロップしようとすると、次のエラーが発生します。COM コンポーネントへの呼び出しからエラー HRESULT E_FAIL が返されました。Word などの他のアプリケーションでは、Excel は問題なく動作します。

                        // Find the data behind the ListViewItem
                        DashboardItem item = (DashboardItem)listView.ItemContainerGenerator.
                            ItemFromContainer(listViewItem);

                        DragDropEffects returnedEffect = DragDropEffects.None;
                        dragging = true;

                        switch (item.Type)
                        {
                            case DashboardItem.ContentType.IMG:
                                BitmapSource realFile = new BitmapImage(new Uri(item.Content));
                                if (realFile != null)
                                {
                                    using (MemoryStream bitmapAsStream = Utils.BitmapSourceToStream(realFile))
                                    {
                                        if (bitmapAsStream != null)
                                        {
                                            using (MemoryStream dib = new MemoryStream())
                                            {
                                                    dib.Write(bitmapAsStream.GetBuffer(), 14, (int)(bitmapAsStream.Length - 14));
                                                    DataObject dragData = new DataObject(DataFormats.Dib, dib);
                                                    //Error next line
                                                    returnedEffect = DragDrop.DoDragDrop(listViewItem, dragData, DragDropEffects.Copy);
                                                    bitmapAsStream.Close();
                                                    dib.Close();
                                                }
                                            }
                                        }
                                    }
                                }
                                break;

Skype に画像をドロップするとき、Windows エクスプローラーと同じ動作を再現したいと考えています。何か案は?

4

1 に答える 1

1

Explorer から Skype に画像をドロップすると、ファイルが送信されます。私があなたのコードを理解している限り、ファイルではなく画像オブジェクトをドラッグしています。

ファイル システムからファイルを送信する場合は、この方法を使用します。

ただし、ファイル システムに保存せずに実行時にファイルを作成する場合は、このガイドの「仮想ファイル」セクションで説明されているように、仮想ファイルを実装できます。

于 2013-11-04T20:11:56.417 に答える