Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从剪贴板获取多个Outlook附件_C++_Outlook_Clipboard_Ole_Idataobject - Fatal编程技术网

C++ 从剪贴板获取多个Outlook附件

C++ 从剪贴板获取多个Outlook附件,c++,outlook,clipboard,ole,idataobject,C++,Outlook,Clipboard,Ole,Idataobject,我正在尝试从剪贴板中获取多个附件 当用户选择多个附件并将其放置在剪贴板(或拖动)中时,将创建一个IDataObject,并将其放置在剪贴板中 我知道可以使用包含虚拟对象名称的CLIPFORMAT CFSTR_FILEDESCRIPTOR在IDataObject中找到文件名。另外,据我所知,文件内容是使用CLIPFORMAT CFSTR\u FILECONTENTS接收的。但是当我这样做的时候,我只得到一个文件,我不知道如何得到已经复制到剪贴板上的其他文件 我发现使用FORMATETC中的lind

我正在尝试从剪贴板中获取多个附件

当用户选择多个附件并将其放置在剪贴板(或拖动)中时,将创建一个
IDataObject
,并将其放置在剪贴板中

我知道可以使用包含虚拟对象名称的
CLIPFORMAT CFSTR_FILEDESCRIPTOR
IDataObject
中找到文件名。另外,据我所知,文件内容是使用
CLIPFORMAT CFSTR\u FILECONTENTS
接收的。但是当我这样做的时候,我只得到一个文件,我不知道如何得到已经复制到剪贴板上的其他文件

我发现使用
FORMATETC
中的
lindex
成员可以获取其他文件,但由于某些原因,它不起作用

有人能解释一下或举例说明我如何获得其他附件(首选C++)吗?

请看一下。它在包装类
OutlookDataObject
中使用
IDataObject
,但它与剪贴板使用的接口相同。在C#中,您可以执行以下操作

//IDataObject包装器
OutlookDataObject=新的OutlookDataObject(Clipboard.GetDataObject());
//检索文件名
字符串[]文件名=(字符串[])dataObject.GetData(“FileGroupDescriptorW”);
this.label1.Text=“文件名:\n”+string.Join(“,”,文件名)+“\n”;
//写出文件内容
MemoryStream[]filestreams=(MemoryStream[])dataObject.GetData(“FileContents”);
this.label1.Text+=“文件:\n”;
对于(int fileIndex=0;fileIndex

查看<代码> Outlook DATAObjs< /Cord>包装器类,您应该能够在C++中实现类似的东西。