标签: istorage

使用IStorage/IStream从C#拖放到Windows资源管理器

我一直在研究听起来像简单功能的东西.我的想法是我有一个带有TreeView的应用程序.此树视图表示组织到文件和文件夹中的数据库的内容,非常类似于Windows资源管理器.因此,用户应该能够将这些文件/文件夹拖出我的应用程序并进入Windows资源管理器.

IStream如果他们拖动文件或IStorage拖动文件夹,我决定使用它.经过很长一段时间和学习方式比我想知道的Win32/COM(以及来自一个非常有帮助的人的推动),我终于拥有IStreamIStorage创建了.

然后我发现要通过这个IStreamIStorage关闭到Windows资源管理器,我必须得到它STGMEDIUM.当然,medium.tymed将是IStream或者IStorage,取决于我正在使用的,但据我所知,它medium.unionmember必须是指向的IStream/IStorage.

我已经使用固定的关键字(但它不是blittable当然),我试过只是诅咒的东西转换成字节数组试过,但不能想出一个办法做到这一点,我已经试过使用GCHandle来固定它(但它仍然不是blittable),以及其他一些不起作用的东西.

所以我的问题是这样的:给定IStorage sSTGMEDIUM m,我如何填充,m.unionmember以便Windows资源管理器很高兴并接受丢弃?

c# drag-and-drop windows-explorer istorage istream

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

标签 统计

c# ×1

drag-and-drop ×1

istorage ×1

istream ×1

windows-explorer ×1