仕様
ClipTextSave
・pBuffer
保存するバッファのアドレス
・戻り値
成功なら1、失敗なら0
ClipTextOpen
・戻り値
取得した文字列へのアドレス
使ったあとは必ずfreeしてください
ClipTextSave [ここをクリックすると内容が表示されます]
コード: 全て選択
Function ClipTextSave(ByVal pBuffer As BytePtr) As Long
Dim hGlobal As HGLOBAL
ClipTextSave=0
hGlobal=GlobalAlloc(GHND,lstrlen(pBuffer)+1)
lstrcpy(GlobalLock(hGlobal),pBuffer)
GlobalUnlock(hGlobal)
If OpenClipboard(0)=0 Then GlobalFree(hGlobal):ExitFunction
EmptyClipboard()
SetClipboardData(CF_TEXT,hGlobal)
CloseClipboard()
ClipTextSave=1
End Function
ClipTextOpen [ここをクリックすると内容が表示されます]
コード: 全て選択
Function ClipTextOpen() As BytePtr
Dim hGlobal As HGLOBAL
Dim pBuffer As BytePtr
ClipTextOpen=0
If OpenClipboard(0)=0 Then ExitFunction
hGlobal=GetClipboardData(CF_TEXT)
If hGlobal=0 Then ExitFunction
pBuffer=calloc(GlobalSize(hGlobal))
lstrcpy(pBuffer,GlobalLock(hGlobal))
GlobalUnlock(hGlobal)
CloseClipboard()
ClipTextOpen=pBuffer
End Function
使用例 [ここをクリックすると内容が表示されます]
取得と修得を間違えていたorzコード: 全て選択
Dim pBuf As BytePtr
pBuf=ClipTextOpen()
MessageBox(0,pBuf,"",0)
ClipTextSave(Ex"テストな文字列\r\n改行とかは「\\r\\n」でできます。")
pBuf=ClipTextOpen()
MessageBox(0,pBuf,"",0)
free(pBuf)