Если нужна работа только с текстом, то можно напрямую winapi юзать

Const GMEM_MOVEABLE% = 2
Const CF_TEXT% = 1
Function ClearClipboard()
If OpenClipboard(SystemProperty("AppHWND")) Then
EmptyClipboard()
CloseClipboard()
EndIf
End Function
Function SetClipboardText(value$)
Local length%, bank%, memory%, temp%
If OpenClipboard(SystemProperty("AppHWND")) Then
EmptyClipboard()
length = Len(value)
If length > 0 Then
length = length + 2
bank = CreateBank(length)
If bank Then
temp = length - 1
Repeat
PokeByte(bank, temp - 1, Asc(Mid(value, temp)))
temp = temp - 1
Until temp <= 0
memory = GlobalAlloc(GMEM_MOVEABLE, length)
If memory Then
temp = GlobalLock(memory)
MoveMemoryFromBank(temp, bank, length)
GlobalUnlock(memory)
SetClipboardData(CF_TEXT, memory)
EndIf
FreeBank(bank)
EndIf
EndIf
CloseClipboard()
EndIf
End Function
Function GetClipboardText$()
Local value$, memory%, length%, bank%, address%
value = ""
If OpenClipboard(SystemProperty("AppHWND")) Then
memory = GetClipboardData(CF_TEXT)
If memory Then
length = GlobalSize(memory)
If length > 2 Then
length = length - 2
bank = CreateBank(length)
If bank Then
address = GlobalLock(memory)
MoveMemoryToBank(bank, address, length)
GlobalUnlock(memory)
Repeat
length = length - 1
value = Chr(PeekByte(bank, length)) + value
Until length <= 0
FreeBank(bank)
EndIf
EndIf
EndIf
CloseClipboard()
EndIf
Return value
End Function
SetClipboardText("Hello World!")
Print GetClipboardText()
ClearClipboard()
Print GetClipboardText()
WaitKey()
End
Ну а картинки лучше в памяти колбасить (структура буфера известна, блок памяти дернуть не проблема, через формат CF_DIB с построением структуры BITMAPINFO по данным того же буфера) и это да, уже только через dll
ЗЫ
Чуть не забыл деклс
.lib "user32.dll"
OpenClipboard%(window%)
CloseClipboard()
EmptyClipboard()
SetClipboardData(type%, data%)
GetClipboardData%(type%)
.lib "kernel32.dll"
GlobalAlloc%(flags%, bytes%)
GlobalFree(handle%)
GlobalLock%(handle%)
GlobalUnlock(handle%)
GlobalSize%(handle%)
MoveMemoryFromBank(destination%, source*, length%):"RtlMoveMemory"
MoveMemoryToBank(destination*, source%, length%):"RtlMoveMemory"