dosprn("myprint.txt","HP on secretary") func dosprn LPARAMETERS xfile,xport LOCAL xstr xstr=FILETOSTR(m.xfile) SET PROC TO DIRPRTCLASS.PRG ADDITIVE oDirPrt = CREATEOBJ('DirectPrintOutput') WITH oDirPrt .PrinterOpen(m.xport) IF .PrinterIsOpen() .DocOpen('MySpool') .DocWrite(m.xstr) .SpoolFile('MySpoolFile.TMP', .T.) .DocClose() .PrinterClose() ELSE DECLARE INTEGER CopyFile IN kernel32; STRING lpSrcFile, STRING lpDstFile, INTEGER bFail CopyFile(m.xfile,m.xport, 0) ENDIF ENDWITH