コード: 全て選択
Declare Function IsClipboardFormatAvailable Lib "user32.dll" (ByVal wFormat As Long) As Long
Class CClipboard
Protected
c_hWnd As HWND
Public
Sub CClipboard(ByVal hWnd As HWND)
c_hWnd=hWnd
End Sub
Function clear() As Long
clear=FALSE
If OpenClipboard(c_hWnd) Then
EmptyClipboard()
CloseClipboard()
clear=TRUE
End If
End Function
Function setText(ByVal lpString As BytePtr) As Long
Dim hMem As HGLOBAL
Dim lpStr As BytePtr
setText=FALSE
hMem=GlobalAlloc(GHND,lstrlen(lpString)+1)
If hMem Then
lpStr=GlobalLock(hMem)
If lpStr Then
lstrcpy(lpStr,lpString)
GlobalUnlock(hMem)
If OpenClipboard(c_hWnd) Then
EmptyClipboard()
SetClipboardData(CF_TEXT,hMem)
CloseClipboard()
setText=TRUE
End If
End If
GlobalFree(hMem)
End If
End Function
Function getText() As BytePtr
Dim hMem As HGLOBAL
getText=NULL
If IsClipboardFormatAvailable(CF_TEXT) Then
If OpenClipboard(c_hWnd) Then
hMem=GetClipboardData(CF_TEXT)
getText=GlobalLock(hMem)
GlobalUnlock(hMem)
CloseClipboard()
End If
End If
End Function
End Class
ハイテク過ぎてよく分かりません。
コード: 全て選択
Dim cpBrd As CClipboard(NULL)
cpBrd.setText("setText")
MessageBox(0,cpBrd.getText(),"getText",MB_OK)
cpBrd.clear()