2

我正在尝试将图像从我的 C# 应用程序拖放到 Skype 并发生以下错误:错误 HRESULT E_FAIL 已从对 COM 组件的调用中返回。与 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 Explorer 相同的行为。有任何想法吗?

4

1 回答 1

1

当您将图像从资源管理器拖放到 Skype 时,正在发送文件。据我了解您的代码,您正在拖动图像对象,而不是文件。

如果您想从文件系统发送文件,请使用此方法

但是,如果您想在运行时创建文件而不将其保存到文件系统,则可以实现一个虚拟文件,如本指南的“虚拟文件”部分所述。

于 2013-11-04T20:11:56.417 回答