小编tek*_*orj的帖子

使用 VirtualFileDataObject 通过 IStream 拖放大型虚拟文件

我成功地使用了Delay 博客中的 VirtualFileDataObject 代码,但我想避免将整个文件流式传输到内存中。

我在 Stack Overflow 上找到了这个先前回答的问题将大型虚拟文件从 c# 拖放到 Windows 资源管理器 该问题由 matthieu 通过更改 SetData 方法的签名来回答。

这是我的问题,更改 SetData 方法的签名后,调用它的其他地方仍在寻找旧签名。

这是原始的SetData;

   public void SetData(short dataFormat, int index, Action<Stream> streamData)
    {
        _dataObjects.Add(
            new DataObject
            {
                FORMATETC = new FORMATETC
                {
                    cfFormat = dataFormat,
                    ptd = IntPtr.Zero,
                    dwAspect = DVASPECT.DVASPECT_CONTENT,
                    lindex = index,
                    tymed = TYMED.TYMED_ISTREAM
                },
                GetData = () =>
                {
                    // Create IStream for data
                    var ptr = IntPtr.Zero;
                    var iStream = NativeMethods.CreateStreamOnHGlobal(IntPtr.Zero, true);
                    if (streamData != …
Run Code Online (Sandbox Code Playgroud)

c# wpf drag-and-drop

5
推荐指数
1
解决办法
1506
查看次数

标签 统计

c# ×1

drag-and-drop ×1

wpf ×1