>Function filetype > Lparameters lcData > Local lcReturn,lcContents > If Pcount()=0 or Vartype(lcData)#'C' > lcReturn='' > Else > If ADir(laDummy,lcData)>0 && File > lcContents=FileToStr(lcData) > Else && Memory variabøe > lcContents=lcData > EndIf > Do case > Case Len(lcContents)<4 > lcReturn='' > Case left(lcContents,3)=CHR(0xFF)+CHR(0xD8)+CHR(0xFF) > lcReturn='JPG' > Case left(lcContents,3)='GIF' > lcReturn='GIF' > Case substr(lcContents,42,3)='EMF' > lcReturn='EMF' > Case left(lcContents,4)=CHR(0xD7)+CHR(0xCD)+CHR(0xC6)+CHR(0x9A) > lcReturn='WMF' > Case left(lcContents,4)=CHR(0x4D)+CHR(0x4D)+CHR(0x00)+CHR(0x2A) > lcReturn='TIF' > Case left(lcContents,4)=CHR(0x89)+'PNG' > lcReturn='PNG' > Case left(lcContents,2)='BM' > lcReturn='BMP' > Case left(lcContents,4)='CWS'+CHR(0x06) > lcReturn='SWF' > Case left(lcContents,4)='FWS'+CHR(0x04) > lcReturn='SWF' > Otherwise > lcReturn='' > EndCase > EndIf >Return lcReturnI am sending you a SWF file by email. You will be able to test it with your function. It has the first three characters ok but the fourth one, the one with the hexadecimal reference, does not match. I would appreciate if you could try to see what adjustment need to be done in here. TIA