我正在试验从outlook电子邮件附件到自定义应用程序的拖放。它在C#上运行得很好,但现在我想让它在VB6上运行。我的测试代码如下所示:
Private Sub grdLis_OLEDragDrop(Data As MSFlexGridLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim FileDropped As String * 256
Dim lCF_FILEGROUP As Long
Dim CF_FILEGROUP As Integer
Dim lCF_FILECONTENTS As Long
Dim CF_FILECONTENTS As Integer
Dim bData() As Byte
Dim bFileNameData(256) As Byte
Dim bData2() As Byte
lCF_FILEGROUP = RegisterClipboardFormat("FileGroupDescriptor")
MoveMemory CF_FILEGROUP, lCF_FILEGROUP, 2
bData() = Data.GetData(CF_FILEGROUP)
j = 0
For i = 76 To 76 + 256
bFileNameData(j) = bData(i)
j = j + 1
Next i
FileDropped = Trim(StrConv(bFileNameData, vbUnicode))
lCF_FILECONTENTS = RegisterClipboardFormat("FileContents")
MoveMemory CF_FILECONTENTS, lCF_FILECONTENTS, 2
bData2() = Data.GetData(CF_FILECONTENTS)这样做可以获得文件名,但它会在Data.GetData(CF_FILECONTENTS)调用中抛出异常,并且错误消息显示"Automation error invalid tymed“。
我在VB6方面没有太多经验,我不知道这个错误消息是什么意思,也不知道该怎么处理它。任何帮助或见解都将不胜感激。
发布于 2010-07-28 05:24:18
请查看Get dropped attachments from Outlook messages了解更多想法。它大量使用OLE。
https://stackoverflow.com/questions/3345861
复制相似问题