I am trying to store the whole clipboard formats in an array so that I
can restore it later.
The MetaFilePict from WordPad and Microsoft Word is a 16 byte MemoryStream.
Why does it not work while other MemoryStreams work?
Private OldClipBoard() As DataObject
Public Sub PushClipBoard()
Dim fmts() As String = Clipboard.GetDataObject.GetFormats
Debug.WriteLine(Clipboard.GetDataObject.GetFormats)
If fmts Is Nothing Then Return
ReDim OldClipBoard(UBound(fmts))
Dim i, cnt As Integer
For i = 0 To UBound(fmts)
If Not (Clipboard.GetDataObject.GetData(fmts(i), False) Is
Nothing) Then
OldClipBoard(cnt) = New DataObject
OldClipBoard(cnt).SetData(fmts(i), False,
Clipboard.GetDataObject.GetData(fmts(i), False))
cnt += 1
Debug.WriteLine(fmts(i))
End If
Next
If cnt Then ReDim Preserve OldClipBoard(cnt - 1) Else Erase
OldClipBoard
End Sub
Public Sub PopClipBoard()
If OldClipBoard Is Nothing Then Clipboard.SetDataObject(" ") : Return
Dim i As Integer, dt As New DataObject
For i = 0 To UBound(OldClipBoard)
If OldClipBoard(i).GetFormats(False)(0) = "MetaFilePict" Then Stop
dt.SetData(OldClipBoard(i).GetFormats(False)(0), False,
OldClipBoard(i).GetData(OldClipBoard(i).GetFormats(False)(0)))
Next
Clipboard.SetDataObject(dt, True)
End Sub
Thanks for taking your time
JH
|