! //IB// SRC("GETSIGN.IBS", "KGS") OBJ("GETSIGN", "KGO") OPT("B") !R CED ! LENGTH 250 & COMMON KEY2LOOK$ LENGTH 254 & LOCAL RESULT$, RESULT2$, RESULT3$, RESULT4$ LENGTH 5.0 & LOCAL FUNCERROR, FILEERROR LENGTH 2 & LOCAL AX$, DX$ LENGTH 40 & LOCAL ERRDESC$ LENGTH 64 & LOCAL INVOICEDIR$, DEVSTATUS$ LENGTH 15 & LOCAL FILENAME$ LENGTH 5.0 & LOCAL FLAGS LENGTH 250 & LOCAL BL$ LENGTH 250 & LOCAL INVPATH$, SAVPATH$ LENGTH 254 & LOCAL cosCommand$ ! Include "CosUtl.Inc", "Wdl" ! Connection Info declaratives ! RDBUF: FORMAT KEY2LOOK$ RESULTFMT: FORMAT AX$;DX$;RESULT$;RESULT2$;RESULT3$;RESULT4$ DSPFUNCERRORM: FORMAT @( 0,25);(BF);(BF);_ @( 0,25);"FUNCTION ERROR: ";FUNCERROR;_ @( 0,26);ERRDESC$ DSPFILEERRORM: FORMAT @( 0,25);(BF);(BF);_ @( 0,25);"FILE ERROR: ";FILEERROR;_ @( 0,26);ERRDESC$ ! GET.SIGNATURE: ! INPUT (#,RDBUF) CLEAR LOCAL ESCAPETO ENDRUN FILENAME$ = STRIP(KEY2LOOK$) + ".BMP" ! PRINT (0) @( 0,23);(BF);@( 0,23);"FILENAME$: ";FILENAME$ & WAIT INVPATH$ = "TWAIN" & FLAGS = 0 DEVSTATUS$ = DSTAT(TERM$) IF SUB(DEVSTATUS$,21,1) = "@01@" FLAGS = FLAGS + 1 PRINT (GetDirAlias=INVPATH$,FLAGS) INPUT (0,RESULTFMT) GOSUB CONVERT.RESULTS IF FUNCERROR NE 1 GOTO ENDOUT INVPATH$ = SUB(RESULT$,1,64) SAVPATH$ = STRIP(INVPATH$) + "\"+STRIP(FILENAME$) INVPATH$ = STRIP(INVPATH$) + "\Getsigw.exe" + " " + STRIP(FILENAME$) PRINT (0) (CS);@( 0,0);"DIRALIAS: ";@( 0,1);INVPATH$ & WAIT PRINT (0) (Launch = INVPATH$) Input (0) cosDWord$ Gosub UnPackDWord cosCommand$ = STRIP(STR(cosDWord)) IF (cosDWord LE 32) ! failed Print (0) @( 0,26);"Could not execute command (";cosCommand$;")" & WAIT GOTO ENDRUN ENDIF KEY2LOOK$ = SAVPATH$ PRINT (#,RDBUF) GOTO ENDRUN ! WRITE (#,CONVERTFMT) & INPUT (#,FILEINFO) ! ! ENDOUT: ! PRINT (0) @( 0,26);(CS);"COULD NOT FIND ALIAS" & WAIT ENDRUN: ! IF ENTERLEVEL GT 0 EXIT CLOSE & OPEN (0) TERM$ RUN "*MONITOR" ! ! CONVERT.RESULTS: ! AX$ = SUB(AX$,2,1) + SUB(AX$,1,1) DX$ = SUB(DX$,2,1) + SUB(DX$,1,1) FUNCERROR = HEXDEC(AX$) FILEERROR = HEXDEC(DX$) IF (FUNCERROR > 32767) FUNCERROR = FUNCERROR - 65536 IF (FILEERROR > 32767) FILEERROR = FILEERROR - 65536 RETURN ! DSPFUNCERROR: ! PRINT (0,DSPFUNCERRORM) INPUT (0) "" GOTO ENDOUT DSPFILEERROR: ! PRINT (0,DSPFILEERRORM) INPUT (0) "" GOTO ENDOUT ! ! UnPackWord: cosWord = ASC(SUB(cosWord$, HI.BYTE.POS, 1)) * 256 cosWord = cosWord + ASC(cosWord$) RETURN ! UnPackDWord: cosWord$ = SUB(cosDWord$, HI.WORD.POS, WORD.S.LEN) & _ GOSUB UnPackWord & _ cosHiWord = cosWord & _ cosDWord = cosWord * 65536 cosWord$ = SUB(cosDWord$, LO.WORD.POS, WORD.S.LEN) & _ GOSUB UnPackWord & _ cosDWord = cosDWord + cosWord RETURN ! GET.FUNCTION.ERROR: ! SELECT CASE FUNCERROR CASE 0 ERRDESC$ = "Function Not Supported" CASE 1 ERRDESC$ = "Success - Update Performed" CASE 2 ERRDESC$ = "CometAnywhere Required" CASE 3 ERRDESC$ = "Source File Error (see suberrors)" CASE 4 ERRDESC$ = "Aborted by User" CASE 5 ERRDESC$ = "Function in Progress" CASE 20 ERRDESC$ = "Success - Update Not Required" CASE 21 ERRDESC$ = "Success - Update Required" CASE 22 ERRDESC$ = "Destination File Error (see suberrors)" CASE ELSE ERRDESC$ = "Unknown Error " + str(FUNCERROR) ENDSELECT RETURN ! GET.FILE.ERROR: ! SELECT CASE FILEERROR CASE 0 ERRDESC$ = "Success" CASE 2 ERRDESC$ = "File Not Found" CASE 3 ERRDESC$ = "Path Not Found" CASE 5 ERRDESC$ = "Access Denied" CASE 12 ERRDESC$ = "Invalid Access" CASE 15 ERRDESC$ = "Invalid Drive" CASE 16 ERRDESC$ = "An error has occurred in current dir" CASE 18 ERRDESC$ = "No More Files" CASE 32 ERRDESC$ = "Sharing Violation" CASE 33 ERRDESC$ = "Lock Violation" CASE 80 ERRDESC$ = "File Exists" CASE 161 ERRDESC$ = "Bad Pathname" CASE ELSE ERRDESC$ = "Unknown Error " + str(FILEERROR) ENDSELECT RETURN !