Function saveclipasjpg Lparameters cFilename Local llReturn, GDIP, img If Pcount()=0 Or Vartype(cFilename)#'C' cFilename="ClipImage" Endif cFilename=Forceext(cFilename,'jpg') Erase (cFilename) If clipIsImage() &&Len(_cliptext)=0 #include gpimage.h If Not "GPIMAGE" $ Set("Procedure") Set Procedure To gpimage Additive Endif GDIP = Createobject("gpInit") img = Createobject("gpImage") img.FromClipboard() img.saveAsJpeg(cFilename) *!* Release gdip *!* Release img Endif Return filesize(cFilename)>0 ************************************************************************************************* Function clipIsImage #Define CF_BITMAP 2 Declare short IsClipboardFormatAvailable In win32api Integer cbformat Return IsClipboardFormatAvailable(CF_BITMAP)#0 ************************************************************************************************* Function filesize Lparameters lcFileName Local lnReturn,lnAsize Local Array laDummy(1) lnReturn=0 lnAsize=Adir(laDummy,lcFileName) Do Case Case lnAsize=1 && Only one match, our goal lnReturn=laDummy(2) Case lnAsize=0 && No match lnReturn=0 Otherwise && More than one match lnReturn=-1 Endcase Return lnReturn>hi all,