*https://forums.codeguru.com/showthread.php?565003-SetClipboardData()-to-Copy-File *!* typedef struct _DROPFILES { *!* DWORD pFiles; 4 *!* POINT pt; 4+4 *!* BOOL fNC; 4 *!* BOOL fWide; 4 *!* } DROPFILES, *LPDROPFILES; *!* typedef struct tagPOINT { *!* LONG x; *!* LONG y; *!* } POINT, *PPOINT; #DEFINE CF_HDROP 15 #Define GMEM_MOVABLE 0x0002 #Define GMEM_ZEROINIT 0x0040 #Define GMEM_SHARE 0x2000 && Clipboard Functions Declare Long OpenClipboard In WIN32API Long HWnd Declare Long CloseClipboard In WIN32API Declare Long EmptyClipboard In WIN32API Declare Long SetClipboardData In WIN32API Long uFormat, Long Hmem && Memory Management Functions Declare Long GlobalAlloc In WIN32API Long wFlags, Long dwBytes Declare Long GlobalFree In WIN32API Long Hmem Declare Long GlobalLock In WIN32API Long Hmem Declare Long GlobalUnlock In WIN32API Long Hmem Declare Long RtlMoveMemory In WIN32API As CopyFromStr Long lpDest, String @lpSrc, Long iLen m.lcFile= "G:\Clients\xfrx\Test\_Images\_3_small.tiff" * empty DROPFILES structure lcDropFiles=CHR(20)+CHR(0)+CHR(0)+CHR(0)+; CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(0)+; CHR(1)+CHR(0)+CHR(0)+CHR(0)+; CHR(0)+CHR(0)+CHR(0)+CHR(0) *!* dropfiles->pFiles = sizeof(DROPFILES); *!* dropfiles->fNC = TRUE; *!* dropfiles->fWide = FALSE; lnDataLen=LEN(lcDropFiles) + LEN(m.lcFile) + 2 m.hGlobal = GlobalAlloc(GMEM_MOVABLE+GMEM_ZEROINIT+GMEM_SHARE, lnDataLen) if m.hGlobal>0 lpDropFiles = GlobalLock(m.hGlobal) IF NOT lpDropFiles=0 *!* memcpy(&dropfiles[1], path, strlen(path)) lcDropFiles=lcDropFiles+m.lcFile+CHR(0)+CHR(0) =CopyFromStr(lpDropFiles, @lcDropFiles, lnDataLen) =GlobalUnlock(lpDropFiles) IF NOT OpenClipboard(0) = 0 IF NOT EmptyClipboard() = 0 IF NOT SetClipboardData(CF_HDROP, m.hGlobal)=0 ?"OK" ELSE ?"Failed" ENDIF ENDIF =CloseClipboard() ENDIF ENDIF =GlobalFree(m.hGlobal) ENDIFMartinaJ
>#Define CF_BITMAP 2 >#Define CF_DIB 8 >#Define IMAGE_BITMAP 0 >#Define LR_LOADFROMFILE 16 >#Define LR_MONOCHROME 0x00000001 > >Local xpict >m.xpict="E:\abc.tif" > >Local m.oo >m.oo=Newobject("image") >m.oo.Picture=m.xpict >Local lnWidth,lnHeight >lnWidth=m.oo.Width >lnHeight=m.oo.Height > >nBitmap=0 >hbm=0 >GdipCreateBitmapFromFile(Strconv(m.xpict+0h00,5),@nBitmap) >GdipCreateHBITMAPFromBitmap(nBitmap,@hbm,0) >lhBmp = CopyImage(hbm, 0, m.lnWidth, m.lnHeight,0) >If OpenClipboard(0)!= 0 > EmptyClipboard() > SetClipboardData(CF_BITMAP, lhBmp) > CloseClipboard() >Endif >ENDPROC >>
>>> >>>Declare Integer Sleep In kernel32 Integer >>>Declare Integer OpenClipboard In User32 Integer >>>Declare Integer CloseClipboard In User32 >>>Declare Integer EmptyClipboard In User32 >>>Declare Integer SetClipboardData In User32 Integer,Integer >>>Declare Integer LoadImage In WIN32API Integer,String,Integer,Integer,Integer,Integer >>>Declare Integer GetClipboardData In User32 Integer >>>Declare Integer GdipCreateBitmapFromHBITMAP In GDIPlus.Dll Integer, Integer, Integer @ >>>Declare Integer GdipSaveImageToFile In GDIPlus.Dll Integer,String,String @,String @ >>>Declare Long GdipCreateHBITMAPFromBitmap In GDIPlus.Dll Long nativeImage, Long @, Long >>>Declare Long GdipCreateBitmapFromFile In GDIPlus.Dll String FileName, Long @nBitmap >>>Declare Long GdipCreateBitmapFromFile In GDIPlus.Dll String FileName, Long @nBitmap >>>Declare Long CopyImage In WIN32API Long hImage, Long, Long, Long , Long >>> >>>#Define CF_BITMAP 2 >>>#Define CF_DIB 8 >>>#Define IMAGE_BITMAP 0 >>>#Define LR_LOADFROMFILE 16 >>>#Define LR_MONOCHROME 0x00000001 >>> >>>Local xpict >>>m.xpict="E:\abc.tif" >>> >>>Local m.oo >>>m.oo=Newobject("image") >>>m.oo.Picture=m.xpict >>>Local lnWidth,lnHeight >>>lnWidth=m.oo.Width >>>lnHeight=m.oo.Height >>> >>>nBitmap=0 >>>hbm=0 >>>GdipCreateBitmapFromFile(Strconv(m.xpict+0h00,5),@nBitmap) >>>GdipCreateHBITMAPFromBitmap(nBitmap,@hbm,0) >>>lhBmp = CopyImage(hbm, 0, m.lnWidth, m.lnHeight,0) >>>If OpenClipboard(0)!= 0 >>> EmptyClipboard() >>> SetClipboardData(CF_BITMAP, lhBmp) >>> CloseClipboard() >>>Endif >>>ENDPROC >>>>>>