Ignore:
Timestamp:
Apr 4, 2013, 11:27:12 PM (12 years ago)
Author:
Alex Taylor
Message:

Fix printer object creation logic (WinCreateObject not actually required)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • rxprtutl/trunk/rxprtutl.c

    r5 r6  
    10311031 *   5. The printer object title (i.e. human-readable name).  If             *
    10321032 *      not specified, the physical name will be used.            (OPTIONAL) *
    1033  *   6. The printer's WPS object ID (max length 225).             (OPTIONAL) *
    10341033 *                                                                           *
    10351034 * REXX RETURN VALUE:                                                        *
     
    10411040    PRQINFO3  qinfo         = {0};
    10421041    ULONG     cbBuf         = 0;
    1043     BOOL      fNewD         = FALSE,
    1044               fNewQ         = FALSE;
     1042    BOOL      fNewD         = FALSE;
    10451043    PSZ       pszQueueName  = NULL,
    10461044              pszDeviceName = NULL,
    10471045              pszPortName   = NULL,
    10481046              pszModel      = NULL,
    1049               pszTitle      = NULL,
    1050               pszOID        = NULL;
    1051     CHAR      szSetup[ US_SS_MAXZ ] = {0};
     1047              pszTitle      = NULL;
     1048//            pszOID        = NULL;
     1049//  CHAR      szSetup[ US_SS_MAXZ ] = {0};
    10521050    SPLERR    rc;
    10531051
     
    10571055
    10581056    // Validate the REXX arguments
    1059     if (( argc < 3 ) || ( argc > 6 )  || ( ! RXVALIDSTRING( argv[0] )) ||
     1057    if (( argc < 3 ) || ( argc > 5 )  || ( ! RXVALIDSTRING( argv[0] )) ||
    10601058        ( ! RXVALIDSTRING( argv[1] )) || ( ! RXVALIDSTRING( argv[2] )))
    10611059        return ( 40 );
     
    10641062    if (( argc > 4 ) && ( ! RXVALIDSTRING( argv[4] )))
    10651063        return ( 40 );
    1066     if (( argc > 5 ) && ( ! RXVALIDSTRING( argv[5] )))
    1067         return ( 40 );
     1064//  if (( argc > 5 ) && ( ! RXVALIDSTRING( argv[5] )))
     1065//      return ( 40 );
    10681066
    10691067    pszQueueName  = argv[0].strptr;
     
    10721070    if ( argc > 3 ) pszModel = argv[3].strptr;
    10731071    pszTitle = ( argc > 4 ) ? argv[4].strptr : pszDeviceName;
    1074     if ( argc > 5 ) pszOID = argv[5].strptr;
     1072//  if ( argc > 5 ) pszOID = argv[5].strptr;
    10751073
    10761074    // Find out if device exists already
     
    11111109        qinfo.pszPrinters = pszDeviceName;
    11121110        qinfo.pszDriverName = pszModel ? pszModel : "IBMNULL";
    1113         qinfo.pDriverData = NULL;
     1111        //qinfo.pDriverData = NULL;
    11141112        rc = SplCreateQueue( NULL, 3, &qinfo, sizeof( qinfo ));
    11151113        if ( rc != NO_ERROR ) {
     
    11191117            return ( 0 );
    11201118        }
    1121         fNewQ = TRUE;
    11221119    }
    11231120    else if ( rc != NO_ERROR ) {
     
    11281125    }
    11291126
    1130     if ( pszOID )
    1131         sprintf( szSetup, "TAKEDEFAULTS=YES;OBJECTID=%.225s;", pszOID );
    1132     else
    1133         sprintf( szSetup, "TAKEDEFAULTS=YES;");
     1127/* Actually, this doesn't seem to be necessary...
     1128
     1129    sprintf( szSetup, "QUEUENAME=%s;TAKEDEFAULTS=YES;", pszQueueName);        // TODO verify length
     1130    if ( pszOID ) {
     1131        strncat( szSetup, "OBJECTID=", US_SS_MAXZ-1 );
     1132        strncat( szSetup, pszOID, US_SS_MAXZ-1 );
     1133        strncat( szSetup, ";", US_SS_MAXZ-1 );
     1134    }
    11341135    if ( WinCreateObject("WPPrinter", pszTitle, szSetup,
    11351136                         "<WP_DESKTOP>", CO_FAILIFEXISTS ) == NULLHANDLE )
     
    11411142        return ( 0 );
    11421143    }
    1143 
     1144*/
    11441145    return ( 0 );
    11451146}
Note: See TracChangeset for help on using the changeset viewer.