by みどるべあ » 2006年6月10日(土) 18:33
既出だったら申し訳ない…
仕様
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
既出だったら申し訳ない…
仕様
ClipTextSave
・pBuffer
保存するバッファのアドレス
・戻り値
成功なら1、失敗なら0
ClipTextOpen
・戻り値
取得した文字列へのアドレス
使ったあとは[b]必ず[/b]freeしてください
[hide=ClipTextSave][code]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[/code][/hide][hide=ClipTextOpen][code]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[/code][/hide][hide=使用例][code]Dim pBuf As BytePtr
pBuf=ClipTextOpen()
MessageBox(0,pBuf,"",0)
ClipTextSave(Ex"テストな文字列\r\n改行とかは「\\r\\n」でできます。")
pBuf=ClipTextOpen()
MessageBox(0,pBuf,"",0)
free(pBuf)[/code][/hide]
[size=59]取得と修得を間違えていたorz[/size]