non avendo a disposizione il riferimento a Microsoft Forms 2.0 Object Library, posso usare l'oggetto ClipboardObject, che invece ho a disposizione? se si come?
Io ho a disposizione la seguente libreria, vi posto il codice:
codice:
Type ClipboardObject
Object() As Byte
objFormat As Long
Text() As Byte
End Type
Public ClipObj(1 To 9) As ClipboardObject
Public Sub ClipboardFromBLOBToMemory()
'Memorizza nelle variabili globali di Clipboard il contenuto della tabella Clipboard
Dim lID As Long
Dim res As Boolean
Dim rst As ADODB.Recordset
Dim i As Integer
Dim Hwnd As Long
OpenClipboard Hwnd
EmptyClipboard
CloseClipboard
If Not ApreTabella(rst, "SELECT * FROM IntClipboard") Then
Messaggio msgDialog, "Non riesco ad aprire la tabella IntClipBoard"
Exit Sub
End If
For i = 1 To 9
lID = rst("Formato")
If lID = 0 Then GoTo Prossimo
ClipObj(i).objFormat = lID
If lID <> 13 Then ' Se non si tratta di testo normale...
lID = GetClipboardIDForCustomFormat("Rich Text Format") ' Registra il nome Rich Text Format nel clipboard
End If
WriteBLOBToMem rst, "Oggetto", ClipObj(i).Object
'Esporta SEMPRE entrambi i formati di clipboard
WriteBLOBToMem rst, "StrTesto", ClipObj(i).Text
Prossimo:
rst.MoveNext
Next
rst.Close
Set rst = Nothing
End Sub
Private Function WriteBLOBToMem(t As ADODB.Recordset, sField As String, Destination() As Byte)
Dim NumBlocks As Integer, DestFile As Integer, i As Integer
Dim FileLength As Long
Dim strData As String
Dim RetVal As Variant
On Error GoTo Err_WriteBLOB
FileLength = t(sField).ActualSize
If FileLength = 0 Then
WriteBLOBToMem = False
Exit Function
End If
Destination = t(sField).GetChunk(FileLength)
WriteBLOBToMem = FileLength
Exit Function
Err_WriteBLOB:
WriteBLOBToMem = -Err
Exit Function
End Function
Public Function ScriveClipboard(n As Integer, contenuto As String) As Boolean
ScriveClipboard = False
Dim rst As ADODB.Recordset
On Error GoTo fine
ApreTabella rst, "SELECT * FROM IntClipboard WHERE ID='" & n & "'"
rst("StrTesto") = contenuto
rst("Formato") = 13
rst.Update
rst.Close
Set rst = Nothing
ScriveClipboard = True
Exit Function
fine:
Messaggio 1, "Errore nella Routine ScriveClipboard"
End Function
io richiamo prima la ScriveClipboard(1,stringaMia), che mi scrive sulla tabella opportuna il contenuto che gli passo per parametro, e poi richiamo la ClipboardFromBLOBToMemory. Solo che non mi mette sugli appunti il contenuto che gli metto sulla tabella con la ScriveClipboard, e se incollo non mi incolla niente!!!!