我一直在研究听起来像简单功能的东西.我的想法是我有一个带有TreeView的应用程序.此树视图表示组织到文件和文件夹中的数据库的内容,非常类似于Windows资源管理器.因此,用户应该能够将这些文件/文件夹拖出我的应用程序并进入Windows资源管理器.
IStream如果他们拖动文件或IStorage拖动文件夹,我决定使用它.经过很长一段时间和学习方式比我想知道的Win32/COM(以及来自一个非常有帮助的人的推动),我终于拥有IStream或IStorage创建了.
然后我发现要通过这个IStream或IStorage关闭到Windows资源管理器,我必须得到它STGMEDIUM.当然,medium.tymed将是IStream或者IStorage,取决于我正在使用的,但据我所知,它medium.unionmember必须是指向的IStream/IStorage.
我已经使用固定的关键字(但它不是blittable当然),我试过只是诅咒的东西转换成字节数组试过,但不能想出一个办法做到这一点,我已经试过使用GCHandle来固定它(但它仍然不是blittable),以及其他一些不起作用的东西.
所以我的问题是这样的:给定IStorage s和STGMEDIUM m,我如何填充,m.unionmember以便Windows资源管理器很高兴并接受丢弃?