Note: I currently use this to create seemless links between the Browser and a
local Notes Client Session.
Declare Function OpenClipboard Lib "User32" (Byval hwnd As Long) As Long
Declare Function CloseClipboard Lib "User32" () As Long
Declare Function GetClipboardData Lib "User32" (Byval wFormat As Long) As Long
Declare Function GlobalLock Lib "kernel32" (Byval hMem As Long) As Long
Declare Function GlobalUnlock Lib "kernel32" (Byval hMem As Long) As Long
Declare Function lstrcpy Lib "kernel32" (Byval lpString1 As String, Byval
lpString2 As Any) As Long
Function ClipBoard_GetData() As String
' This function will return the text currently in the Windows 95/NT
' It will return an empty string if there is an image in the clipboard
Dim hClipMemory As Long
Dim lpClipMemory As Long
Dim MyString As String *4096
Dim TrimmedString As String
Dim RetVal As Long
Dim returnInt As Integer
Const CF_TEXT = 1
Const MAXSIZE = 4096
If OpenClipboard(0&) = 0 Then
Msgbox "Cannot open Clipboard. Another application may have it open"
' Obtain the handle to the global memory block that is referencing the
hClipMemory = GetClipboardData(CF_TEXT)
If hClipMemory = 0 Then
Msgbox "Could not allocate memory."
' Lock Clipboard memory so we can reference the actual data string.
lpClipMemory = GlobalLock(hClipMemory)
If lpClipMemory <> 0 Then
MyString = Space$(MAXSIZE)
RetVal = lstrcpy(MyString, lpClipMemory)
RetVal = GlobalUnlock(hClipMemory)
MyString = Mid(MyString, 1, Instr(1, MyString, Chr$(0), 0) - 1) '
Strip off the null terminating character.
TrimmedString = Trim(MyString)
Msgbox "Could not lock memory to copy string from."
RetVal = CloseClipboard()
ClipBoard_GetData = TrimmedString