Перетащите из приложения Outlook в приложение VB6 - PullRequest
2 голосов
/ 27 июля 2010

Я экспериментирую с перетаскиванием из вложения электронной почты 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), и в сообщениях об ошибках говорится: «Ошибка автоматизации недопустима».

У меня нет большого опыта работы с VB6, и я понятия не имею, что означает это сообщение об ошибке или что с этим делать. Буду признателен за любую помощь или понимание.

1 Ответ

2 голосов
/ 28 июля 2010

Оформить Получить вложения из сообщений Outlook для получения дополнительных идей.Он активно использует OLE.

...