TweetFollow Us on Twitter

New PrGeneral

Volume Number: 13 (1997)
Issue Number: 6
Column Tag: develop

The New PrGeneral Version Opcode

by Ingrid Kelly

For the past 12 years, printer driver developers have used the print record's wDev field in the TPrStl data structure to store their device information. Specifically, they've consistently used the high-order byte of this field - commonly known as the wDev ID - to store the device code. Unfortunately, due to the design limitations of the print record and the wDev field, the Printing Manager allowed for a maximum of only 256 IDs. Surprisingly enough (ha ha), with the expansion of the printer market, we're running out of numbers! As a result, with LaserWriter driver version 8.4, we've added a PrGeneral opcode and new structures to the Printing Manager so that developers can work around this limitation.

Both printer driver and application developers need to add code to support this new information, but the changes are minimal. Accompanying this column on the MacTech Web site is a sample application, called PrGeneral Version, that shows you how to properly retrieve the new version information when your application is looking for the features of a particular printer driver.

The New PrGeneral Opcode:

kprversionop

LaserWriter driver version 8.4 introduced several new PrGeneral opcodes, including a new opcode for driver version information: kPrVersionOp. Using kPrVersionOp is now the recommended way for applications to find out the printer driver currently in use. Remember that for printer drivers that haven't updated to use this new PrGeneral opcode, your application needs to keep its wDev-checking code as well.

For more information on the extended print record opcodes introduced with LaserWriter version 8.4, read the Print Hints column "The All-New LaserWriter Driver Version 8.4" in develop Issue 27. There you'll find a table that lists all the other PrGeneral opcodes supported in Apple printer drivers. See the article "Meet PrGeneral, the Trap That Makes the Most of the Printing Manager" in develop Issue 3 for more information on PrGeneral.

What Printer Driver Developers Need to Know

From now on, Apple's Developer Support Center will assign all printer drivers a wDev ID of 255. If you have an old wDev ID number (which is less than 255), you should still use the number you were assigned so that you don't break any applications that vary their behavior based on your driver's wDev. In addition, you should implement the new kPrVersionOp opcode as described here so that new applications can take advantage of it with your driver.

Listing 1 shows the new opcode and structures that you'll need to implement in your PDEF 7 resource. You need to place your creator type in the driver.creator field of the TPrVersion structure. You should also place your version number in driver.release so that application developers know what version of the driver is available.

Listing 1. The new version opcode and structures

enum {
   ...
   kPrVersionOp = 22             // LaserWriter version 8.4 and later only
};

typedef struct {
   OSType     architecture;      // Architecture (for example, 'pwpc', 'm68k')
   OSType     creator;           // Driver's creator type (for example, 'AAPL')
   unsigned longrelease;         // Release number (for example, 0x8480)
   unsigned longinterfaces;      // Interfaces version (for example, 0x8480)
} TVersion;

typedef struct {
   short       iOpCode;          // Must be kPrVersionOp
   short       iError;           // For returning errors
   long        lReserved;        // Reserved, set to 0
   TVersion    driver;           // Driver information
   TVersion    reserved;         // Reserved, set to 0
} TPrVersion;

The release and interfaces fields have the same format as the first long in a 'vers' resource - that is, the following four 1-byte values: a major version number, a minor version number, a revision stage (development = 0x20, alpha = 0x40, beta = 0x60, and release = 0x80), and a prerelease version number.

That's all you'll need to do to support the new PrGeneral opcode in your driver - hard to believe, but true!

What Application Developers Need to Know

Although Apple doesn't recommend that application developers check the wDev field of the print record, many do. They assume that the wDev value means they can count on certain features being present in the printer. For instance, many developers assume that a wDev of 3 means the printer driver supports PostScript. In fact, it indicates only that the current printer uses the Apple LaserWriter driver. This leaves out the possibility that a user has a non-Apple PostScript printer driver with an ID of, say, 243.

Even though Apple doesn't recommend that application developers rely on the wDev field (or the new PrGeneral opcode, for that matter), if you're going to change application behavior based on the number or creator returned, at least do so properly so that your applications don't break with future releases of printer drivers. We recommend that you use the PrGeneral kPrVersionOp opcode, if available, to get the structure and then check the driver.creator and driver.release fields to determine the current printer driver and version (see Listing 1). You should also continue to support the old wDev method for printer drivers that have not yet updated to the new PrGeneral opcode. For your reference, the PrGeneral Version sample that accompanies this column shows how to properly retrieve the version and wDev information.

Go Forth and Print!

As you can see, the changes that printer driver and application developers need to make to support the new PrGeneral opcode are minimal. We've already adopted this new method with the LaserWriter version 8.4.x drivers. We hope you will, too!


WDEV Registration

Although from now on all printer drivers will be assigned a wDev ID of 255, we still request that you register your printer driver with Apple's Developer Support Center, to avoid creator type conflicts. To do so, register at http://www.devworld.apple.com/dev/wdev/. Here is the information you need to provide:

  • Company name and address
  • Contact name, phone number, and e-mail address
  • Make and model of device supported (for example, Apple LaserWriter 16/600)
  • Type of connection (for example, serial)
  • Creator type (for example, 'AAPL')

You'll receive confirmation of your registration within five to ten working days. If you have questions about wDev registration, write to devsupport@apple.com.


Related Reading

  • "Print Hints: The All-New LaserWriter Driver Version 8.4" by Dave Polaschek, develop Issue 27.
  • "Meet PrGeneral, the Trap that Makes the Most of the Printing Manager" by Pete "Luke" Alexander, develop Issue 3.

Ingrid Kelly (inge@apple.com) provides technical support for developers as a member of the Multimedia, Printing, Imaging, and Graphics group in Apple's Developer Technical Support. When she's not answering developer e-mails or trying to hold the record for most Technotes written in DTS, Ingrid can be found refilling her office candy bin, trying to come up with the ultimate chocolate chip cookie recipe, or attending Navy Blue Angels flight team demonstrations with her husband, Lance.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

How to build a successful civilisation i...
GodFinger 2 grants you godlike powers, leaving you to raise a civilization of followers. In the spirit of games like Black & White, the GodFinger games will see you building bigger and better villages, developing more advanced technology and... | Read more »
How to get all the crabs in Mr Crab 2
Mr. Crab 2 may look like a cutesy platformer for kids, but if you're the kind of person who likes to complete a game 100%, you'll soon realise that it's a tougher than a crustacean's shell. [Read more] | Read more »
How to be a star in Britney Spears: Amer...
If you've ever wanted to be a star, baby, then you've probably already checked out Britney Spears: American Dream and are happily making your way up the charts. But fame doesn't come easy, and everyone needs a helping hand sometimes. So we've got... | Read more »
AppSpy is hiring a part time Staff Write...
| Read more »
How to save lives in ER Surgery Simulato...
A serious earthquake has struck a nearby town in ER Surgery Simulator - Emergency Doctor, and it’s up to you to save the victims. [Read more] | Read more »
Tips and tricks to get a high score in G...
Ketchapp Games loves the endless runner genre. And its newest game, Gravity Switch, is no exception. Gravity Switch takes a fresh approach, though, as you move a block, suspended in zero gravity, safely through a maze of shifting pillars. If the... | Read more »
Tips and tricks to get a high score in S...
Smash Fu is a high-paced tile-tapping game that requires quick reflexes and some practice. You’ll have to smash bricks with the skill of a seasoned black belt to get a high score. To raise the stakes a bit, you’ll also have to avoid tapping any... | Read more »
How to keep the ball rolling in Dropple
If you're new to the minimalist puzzler Dropple, you may find yourself struggling to make it beyond the first couple of steps before your ball falls into the endless abyss below. [Read more] | Read more »
Game Craft releases new Legend of War ti...
Set for release at the end of this month, real time strategy title Legend of War seems sure to delight with a veritable feast of sweet features to get stuck into. Developed by Game Craft, the game is due for release through both the App Store and... | Read more »
How not to die in Traffic Rider
Traffic Rider, an Out Run-esque game in which your ride a motorcycle recklessly into trffic, might not seem particularly complicated. [Read more] | Read more »

Price Scanner via MacPrices.net

Apple refurbished iMacs available for up to $...
Apple has Certified Refurbished 2015 21″ & 27″ iMacs available for up to $350 off MSRP. Apple’s one-year warranty is standard, and shipping is free. The following models are available: - 21″ 3.... Read more
Textkraft Professional Becomes A Mobile Produ...
The new update 4.1 of Textkraft Professional for the iPad comes with many new and updated features that will be particularly of interest to self-publishers of e-books. Highlights include import and... Read more
SnipNotes 2.0 – Intelligent note-taking for i...
Indie software developer Felix Lisczyk has announced the release and immediate availability of SnipNotes 2.0, the next major version of his productivity app for iOS devices and Apple Watch.... Read more
Pitch Clock – The Entrepreneur’s Wingman Laun...
Grand Rapids, Michigan based Skunk Tank has announced the release and immediate availability of Pitch Clock – The Entrepreneur’s Wingman 1.1, the company’s new business app available exclusively on... Read more
13-inch 2.9GHz Retina MacBook Pro on sale for...
B&H Photo has the 13″ 2.9GHz Retina MacBook Pro (model #MF841LL/A) on sale for $1599 including free shipping plus NY tax only. Their price is $200 off MSRP. Amazon also has the 13″ 3.9GHz Retina... Read more
Apple price trackers, updated continuously
Scan our Apple Price Trackers for the latest information on sales, bundles, and availability on systems from Apple’s authorized internet/catalog resellers. We update the trackers continuously: - 15″... Read more
Clearance 12-inch Retina MacBooks available s...
B&H Photo has dropped prices on leftover 2015 12″ Retina MacBooks with models now available starting at $999. Shipping is free, and B&H charges NY tax only: - 12″ 1.1GHz Gray Retina MacBook... Read more
Check Apple prices on any device with the iTr...
MacPrices is proud to offer readers a free iOS app (iPhones, iPads, & iPod touch) and Android app (Google Play and Amazon App Store) called iTracx, which allows you to glance at today’s lowest... Read more
New 2016 13-inch 256GB MacBook Air on sale fo...
B&H Photo has the new 13″ 1.6GHz/256GB MacBook Air (model MMGG2LL/A) on sale for $1149 including free shipping plus NY sales tax only. Their price is $50 off MSRP. Amazon has the 13″ 1.6GHz/256GB... Read more
Apple refurbished iPad Air 2s available start...
Apple has Certified Refurbished iPad Air 2 available starting at $339. Apple’s one-year warranty is included with each model, and shipping is free: - 128GB Wi-Fi iPad Air 2: $499 - 64GB Wi-Fi iPad... Read more

Jobs Board

*Apple* Nissan Service Technicians - Apple A...
Apple Automotive is one of the fastest growing dealer...and it shows. Consider making the switch to the Apple Automotive Group today! At Apple Automotive , Read more
ISCS *Apple* ID Site Support Engineer - APP...
…position, we are looking for an individual who has experience supporting customers with Apple ID issues and enjoys this area of support. This person should be Read more
Automotive Sales Consultant - Apple Ford Linc...
…you. The best candidates are smart, technologically savvy and are customer focused. Apple Ford Lincoln Apple Valley is different, because: $30,000 annual salary Read more
*Apple* Support Technician II - Worldventure...
…global, fast growing member based travel company, is currently sourcing for an Apple Support Technician II to be based in our Plano headquarters. WorldVentures is Read more
Restaurant Manager (Neighborhood Captain) - A...
…in every aspect of daily operation. WHY YOU'LL LIKE IT: You'll be the Big Apple . You'll solve problems. You'll get to show your ability to handle the stress and Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.