1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
Option Compare Database
Option Explicit
'******************************************************************
' Purpose: Using Clipboard for Office 97 applications
' Date: 20-03-1999
' Author: JPA
' To Do: Add a specific routine for errors
'******************************************************************
Private Declare Function SetClipboardData Lib "User32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
Private Declare Function EmptyClipboard Lib "User32" () As Long
Private Declare Function CloseClipboard Lib "User32" () As Long
Private Declare Function OpenClipboard Lib "User32" (ByVal hwnd As Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function lstrcpy Lib "kernel32" (ByVal lpString1 As Any, ByVal lpString2 As Any) As Long
Private Const GMEM_MOVEABLE = &H2
Private Const GMEM_ZEROINIT = &H40
Private Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT)
Private Const CF_TEXT = 1
Private Const MAXSIZE = 4096
Public Sub CopyToClipboard97(MyString As String)
Dim lGlobalMemory As Long
Dim lLockMemory As Long
Dim lCopyMemory As Long
Dim lReturn As Long
On Error GoTo L_ErrClipboad
lGlobalMemory = GlobalAlloc(GHND, Len(MyString) + 1)
lLockMemory = GlobalLock(lGlobalMemory)
lLockMemory = lstrcpy(lLockMemory, MyString)
If GlobalUnlock(lGlobalMemory) <> 0 Then
Err.Raise vbObjectError + 1001
End If
If OpenClipboard(0&) = 0 Then
Err.Raise vbObjectError + 1002
End If
lReturn = EmptyClipboard()
lCopyMemory = SetClipboardData(CF_TEXT, lGlobalMemory)
If CloseClipboard() = 0 Then
Err.Raise vbObjectError + 1003
End If
L_ExClipboad:
Exit Sub
L_ErrClipboad:
MsgBox "Erreur: impossible de copier dans le presse-papier !", 48
Resume L_ExClipboad
End Sub |
Partager