代码之家  ›  专栏  ›  技术社区  ›  humbagumba

Win7拖放:是否可以找出COleDataObject是否包含shell库?

  •  0
  • humbagumba  · 技术社区  · 15 年前

    我有一个带有文件和文件夹列表控件的应用程序,它支持拖放;删除操作。现在,我想让用户能够将Windows7库(如音乐、图片等)放到这个控件中。

    在我的投币机里我有一个 COleDataObject 现在我想知道,是否有一个库被放到了控制中心。因为对象似乎不包含标准格式(例如。 CF_HDROP COleDataObject::BeginEnumFormats COleDataObject::GetNextFormat

    FORMATETC.cfFormat FORMATETC.tymed 单个结构的构件:

    1. cfFormat=0xc418,tymed=0x1
    2. cfFormat=0xc410,tymed=0x1
    3. cfFormat=0xc0fd,tymed=0x4
    4. cfFormat=0xc0fc,tymed=0x1

    有人能告诉我其中一个是否指向shell库吗?如果是,我将如何确定这个库的解析名称?这些cfFormat值是否有文档记录?

    亨巴贡巴

    2 回复  |  直到 15 年前
        1
  •  0
  •   Mark Ransom    15 年前

    这些MSDN页面可能有助于:

    http://msdn.microsoft.com/en-us/library/bb776902%28VS.85%29.aspx http://msdn.microsoft.com/en-us/library/ff729168%28VS.85%29.aspx

    它们没有您给定的确切格式值,但这应该是一个开始。

        2
  •  0
  •   GraphicsMuncher    12 年前

    SHCreateShellItemArrayFromDataObject() 将数据对象转换为 IShellItem

    Read more on MSDN .