Microsoft Windows for Pens
Contents
Windows for Pens
Why Pens?
With pen computing, you can use a pen-like stylus on a computer with a special display to print, draw, and annotate information much as you would with pen and paper. Beneath the computer’s display is a digitizer, an electronic sensing device that captures data and displays it as “ink” or interprets it as text or as a command. Pen computing supports:
Who Will Use Pens?
Consider the following scenarios:
Pen users will include:
What Is Windows for Pens?
The modular design of the Windows operating system allows the integration of pen extensions into the basic Windows 3.1 product. Windows for Pens is an OEM product to be packaged and sold with a variety of new pen computers.
Windows for Pens offers a base of pen-specific APIs to allow Windows developers to build pen-centric applications. Windows for Pens supports existing Windows applications without special modification through a special compatibility layer so users can:
Windows for Pens provides an open, modular approach to handwriting recognition, so you can replace or supplement the Windows for Pens recognizer with third-party recognizers.
Windows for Pens uses the Windows-specific functions such as scalable fonts, Advanced Power Management, support for Flash EPROM, IC card storage, and the ability to run in ROM. Windows for Pens also includes pen-specific DLLs and device drivers so that applications can run on new pen hardware platforms. Applications can run in portrait or landscape mode and can support scaling for different sized displays.
Why Choose Windows for Pens?
Windows for Pens, a complete operating environment for pen computers, offers compelling benefits for all groups involved in developing and using pen applications:
Technical Highlights
Windows 3.1 includes several special pen features and capabilities. These features, described in detail later in this paper, include:
The core components are described in “The Internal Architecture of Pen for Windows” later in this paper. These components include:
Gestures
A gesture is a special handwriting symbol that issues a command, such as Copy, or produces a non-printing character, such as a carriage return or backspace.
Figure D.1 Gestures
Gestures can save time, especially for editing or correcting text. With gestures, the user can simultaneously specify an object or function and initiate an action. Windows for Pens gestures are similar in form and purpose to common handwritten editing symbols. Three types of gestures are supported by Windows for Pens:
The Pen Palette
The Pen Palette is displayed whenever Windows for Pens is started, providing a pen interface (menus and dialog boxes to execute the most common pen commands), an expandable writing area, and an on-screen keyboard. The Pen Palette is not required for applications that call the pen API directly. To support the feel of pen and paper, Windows for Pens was designed so that users can write anywhere in the text area of an application rather than in a special writing window.
Figure D.2 The Pen Palette
The other elements that support the Pen Palette are:
Figure D.3 The Wiring window
The Control Panel
By defining values in the Control Panel, users can control the width of the ink generated by the pen, the orientation of the menus, and the type of user (left- or right-handed). The Control Panel supports multiple users and different display orientations and also defines when recognition occurs—for example, when the pen is lifted or after a time-out.
Figure D.4 Control Panel items for pens
This discussion describes how Windows for Pens is for applications programming, and is intended for readers who understand some basics of Windows programming.
Adding the pen to Windows involves enhancing both input and output. For input, the pen device driver provides pen data to the system. For output, pen data is echoed on the display as “ink” while drawing takes place. This ink layer is handled through a new device driver entry point and involves no changes to the GDI interface. The presence of ink has no impact on Windows applications. At this lowest level in the system, connection between pen input and ink on the display is immediate. This is identical to the mouse cursor location being updated at interrupt time.
Above the device-driver level, pen input is interpreted and given meaning. The device driver-to-device driver communication in the hardware guarantees that users see the pen as a writing tool that can freely leave ink on the display. The levels above interpret the ink as text, shapes, and gestures.
Windows applications interact with the pen through the RC Manager, which handles the pen device driver, recognizers, and dictionaries on behalf of all programs. The RC Manager sends pen input to the appropriate window and coordinates pen input processing for that window.
The diagram in Figure D.5 shows the various components of the pen enhancements to Windows. The RC Manager is in the Systems components layer, which also includes MS-DOS functionality, input handling (labeled “Windows” to designate the functionality in the Windows Kernel and USER.EXE libraries), and graphics output (handled by GDI.EXE). The “RC” in RC Manager stands for Recognition Context.
Figure D.5 The pen enhancements to Windows
RC Manager
The RC Manager is the heart of the extensions to Windows provided in Windows for Pens, providing the architectural component that orchestrates pen input handling. Code for the RC Manager is contained in PENWIN.DLL, so the terms “RC Manager” and “Pen DLL” are synonymous.
Whenever a windows program wants to work with the pen extensions, that program obtains an RC, fills in the fields of the RC appropriately, and hands the RC to the RC Manager. Within the RC data structure are fields that specify exactly how the pen data is to be handled. In this sense, the RC is patterned after the Device Context used with GDI.
In general, one RC is used with each inking “transaction” between the user and the program. Often, programs will find it convenient to allocate an RC permanently and fine-tune it as needed (just like an “own” DC).
Fields within the RC identify which recognizer should be applied to the ink and which dictionaries used to select the “best guess” string. Other fields specify what conditions will end the inking transaction (such as the pen going up, or the pen going down in a specific location, or a time-out for pauses). The RC also provides parameters used by the recognizer and the dictionaries themselves.
At the end of each inking transaction, the RC Manager returns the results of ink processing to the window that initiated the transaction. If the window does not fill in an RC and initiate an inking transaction with the RC Manager, the pen will function exactly like a mouse.
The Pen and Pen Driver
Pens come both tethered and untethered, to serve different markets, but both styles of pen act the same under Windows for Pens. The pen works together with electronics in the PC to encode (x, y) locations and other information. The pen must sense the difference between touching and not touching the drawing surface, typically accomplished with a tip-switch that acts just like the left mouse button. Many pens actually report pressure levels at the surface, but this additional information is not required. Some pen systems also provide location even when the pen is not quite touching the surface (called proximity sensing).
Many pens will also provide a button on the barrel. An OEM might also implement a pen that records the slant of the pen or rotation of the pen barrel. This information is not required by Windows for Pens, but a standard method is provided for applications to determine whether the information is present and, if so, to access the information.
All pen devices must be capable of recording at least 120 events each second, and must have a resolution of at least 200 spots per inch. Many pens will be able to record data at much higher resolution or rates. These requirements guarantee sufficient data for character recognition by the vector-based character recognizers used with Windows for Pens.
All pen data is reported by the Pen Device Driver to the system at 0.001" resolution. This standard resolution allows improvements in pen hardware. It also is the same as the HIENGLISH Mapping mode in the GDI, and is therefore convenient for programs.
The Pen SDK includes sample device drivers for WACOM and Scriptel tablets. These drivers can be easily modified to support any pen whose hardware uses an interrupt to return data through I/O addresses.
Display Driver
The display driver under Windows for Pens is an enhancement of the standard display driver for Windows 3.1. The extensions support echoing ink on the display as it is drawn by the user, and moving the origin of the screen to support landscape and portrait orientations. Ink support should be provided in such a way that removing the ink does not generate redraw messages to Windows programs. The display driver must also provide a new cursor—the Pen cursor.
Inking is supported by two function calls in the display driver, InkReady() and GetLPDevice(), and is perhaps the easiest of the functions to implement. Supporting portrait and landscape modes is somewhat more difficult. The Pen SDK includes a sample driver for VGA devices.
Recognizer
A recognizer is a dynamic-link library (DLL) that collects ink from the device driver and interprets that ink as characters in one or more alphabets. When inking begins, the RC Manager calls the recognizer specified in the RC for the transaction. Windows programs do not directly interact with recognizers, though programs may use application-specific recognizers.
Recognizers are required to handle an inking transaction according to the fields set in the RC for that transaction. The recognizer will end the transaction when the conditions specified in RC fields are met. The recognizer will examine the ink for characters in the alphabets and character sets named in the RC. The recognizer will only return characters from the character sets named, and, within those sets, only characters recognized at the level of confidence specified.
During recognition, the recognizer collects and analyzes the ink. The original ink is returned to the calling program along with the results of analysis, which is returned in a symbol graph that is a sequence of 32-bit values. Each 32-bit symbol is either a recognized character or a meta-character used to group alternate possibilities where more than one character meets the confidence level set for the transaction in the RC. For example, the string of symbols “clea{r|n}” would be a symbol graph representing two possible strings (“clear” and “clean”). In this example, “c,” “l,” “e,” “a,” “r,” and “n” represent recognized characters, each of which is associated with a confidence level. The “{,” “|,” and “}” symbols are meta-characters used to define the graph of alternatives.
All recognized characters in a symbol graph are associated with both the confidence the recognizer assigns to that character and the specific strokes in the ink that make up the character. If the recognizer cannot assign a character to some part of the ink with the required confidence, it specifies “don’t know” at that position in the symbol graph.
A recognizer returns the results of its analysis to the RC Manager, which arranges to return the results to the calling program. The recognizer returns ink, a symbol graph, symbol elements (containing the symbol value and confidence), and symbol correlations (which list the strokes for a recognized character). Recognizers may return partial results during an inking transaction.
Beyond the requirements for collecting ink and returning results, there are no constraints placed on how recognizers work. Windows for Pens was built from the ground up to accommodate recognizers for languages using non-Roman alphabets. The recognizer interface is open and published, and third-party recognizers will be widely available. At least some Windows programs will want to provide custom recognizers for special symbols.
Compatibility with Windows Applications
The Pen Message Interpreter allows the pen to be used with existing Windows (and non-Windows) applications by acting as a “middleman” between these applications and Windows for Pens. Most pen input is treated as mouse input (for example, a downward motion that depresses the pen point is treated as a mouse click) and is passed to the application’s mouse buffer for processing. Existing Windows applications already buffer mouse input separately from keyboard input, simplifying the pen message interpreter’s tasks.
However, when the user moves the pen into a text entry box, Windows for Pens recognizes that the user is now over a writing area. This causes several changes: the cursor shape changes to that of a pen; the display device driver temporarily throws a transparent overlay over the existing screen to show the “ink” left by the pen; and pen input is sent to the handwriting recognition engine for processing, then sent to the application’s keyboard buffer. Gestures are handled similarly and mapped to command events, such as “copy.”
Support Resources
CompuServe
CompuServe features a special forum for Windows for Pens beta developers. The forum is used daily by engineers and support specialists who answer technical questions and place technical articles that are of wide interest to Windows for Pens developers. To access this forum, developers need to be on the Windows for Pens beta program. Section 12 under “winbtdev” is dedicated to Windows for Pens issues.
Contact: 800/ 848–8199
We recommend using TAPCIS, The Access Program for the CompuServe Information Service. Put together by Support Group, Inc.
Contact:
Phone: 800/ 872–4768 or 301/ 387–4500
Fax: 301/ 387–7322
Pen for Windows Consultants
Andersen Consulting
Andersen Consulting is a world wide information systems integrator, with offices in 146 cities. In the U.S., there is an Andersen Consulting office in all major metropolitan areas. Since installing the first business computer in 1954, Andersen Consulting has helped leaders in virtually every industry to apply information technology for competitive advantage and to manage the profound change associated with it. We offer clients our expertise in industry, business, and advanced technology, plus the services necessary to integrate complex business and technology systems. This unmatched blend of capabilities has made Andersen Consulting one of the world’s largest commercial systems integrators. A single source for the total solution, from strategic planning and systems design and development to change management, facilities management, hardware, and software.
As one of the largest systems integration firms in the world, our clients list is extensive. We provide professional services to a significant proportion of the Fortune 500 and to the leading companies in most local markets. In industries like Insurance, Aerospace, and Telecommunications, we are presently working with nearly all the major entrants.
Product Specific Experience: Andersen Consulting is a leader in the development of custom Windows-based applications for major corporations. As part of our ongoing application platform research, we have followed the development of pen-based technology with interest since its inception. We have been a participant in the Windows for Pens beta program since its inception, evaluating it as a basis for client solutions and demonstrating its capabilities to existing clients.
Pen Consulting Services: For the organization considering the application of pen technology, Andersen Consulting can provide a number of services, including:
Contact for Andersen Consulting Information:
Timothy M. Boudreau
69 West Washington Street
Chicago, IL 60602
Phone: 312/ 507–6526
Fax: 312/ 507–2548
K.C. Watkins
801 Second Avenue
Seattle, WA 98104
Phone: 206/ 233–8241
Fax: 206/ 386–8615
Joseph McCall & Company
Joseph McCall & Company provides professional consulting services in North America in the following functional areas:
Major accounts include: Department of Business Regulation, State of Florida; Allis–Gleaner (AG Co.); Continental Telecom (Contel); Alabama Gas Company; Blue Cross-Blue Shield of Florida.
Pen-Based Experience: In early 1990, Joseph McCall & Company made a strategic decision to pursue pen-based technology. Since that time we have established ourselves as strategic marketing partners with Microsoft and NCR Corporation and have successfully implemented one of the largest applications of pen-based technology. Our goal is to provide innovative pen-based solutions that meet the information processing needs of our clients. With the experience and knowledge gained from our involvement in pen-based projects, we have successfully applied our expertise across various industries including: Insurance and Healthcare; Consumer Products; Federal, State and Local Government; and Manufacturing.
Pen Consulting Services: Joseph McCall and Company is an information systems consulting firm that has been providing professional services for over six years. Our focus is on helping our clients achieve the promise of today’s advanced technologies. Our goal is to provide innovative pen-based solutions that address the specific challenges facing our clients. We have a dedicated team of professionals, with expertise in all phases of the systems development life cycle. Our challenge as systems integrators is to help companies to build on their investment in existing technologies, while also allowing them to effectively assimilate pen-based technologies into their current systems architecture. Through the strategic application of pen-based technology we can assist organizations in realizing the significant benefits offered by today’s advanced technologies.Contact for Joseph McCall & Co. Information:
Scott J. Brady, Manager, Pen-Based Development
1819 Peachtree Street
Suite 520
Atlanta, GA 30309
Phone: 404/ 352–4241
Fax: 404/ 351–3728
Knowledge-Based Solutions (KBS)
The areas of expertise for Knowledge-Based Solutions include our QUICK START rapid prototyping program for early adopters of pen-based systems; domain experience includes field maintenance, sales force automation, financial, health care, and insurance, with projects throughout U.S., though primarily New York and New England. Representative clients include:
Product Experience: Experience with all major Windows–based development tools, including but not limited to ObjectVision, Visual Basic, Windows for Pens SDK, as well as connectivity with databases, wireless networks, and other Windows applications.
Pen Consulting Services: We are experts in the deployment of field automation systems, specifically involving pen-based systems. Our early work on pen computing with Microsoft and other pioneers, combined with extensive contacts, provides KBS clients with access to the most complete base of experience with this technology.
KBS works closely with vendors as an approved NCR Software Alliance Partner and a Microsoft Consultant Relations Program member.Our low-cost, low-risk QUICK START program provides clients with a chance to quickly produce a “proof of concept” system to get started with pen-based computing. Other KBS services include full system development, executive overviews, technology transfer, and strategic analysis. Please contact us for a copy of our QUICK START brochure.
Contact for KBS Information:
Randy Parker
65 Westbourne Terrace, Suite 300
Brookline, MA 02146
Phone: 617/ 566–2451
Fax: 617/ 734–8442
Microsoft Consulting Services
Microsoft Consulting Services are available worldwide. MCS Consultants have assisted organizations throughout the world. MCS has already served hundreds of clients with tasks ranging from developing feasibility studies to providing onsite, long-term consultants. We’ve worked with dozens of industries, including aerospace, public utilities, law, finance, government, hotels and resorts, telecommunications, health care, automobile, manufacturing, and others.
Microsoft Consulting Services is staffed by consultants with a wide range of expertise in the field of information technology management and world-class technical consultants in areas such as the Microsoft Windows graphical environment, OS/2 operating systems, Microsoft Visual Basic modern programming system for Windows, Microsoft Mail for PC Networks, LANs, multimedia, enterprise networking, cooperative processing, development tools, and office automation. And because MCS is an integral part of Microsoft, clients have excellent resources. MCS is directly linked to Microsoft product development and support groups and is able to obtain their tools, services, and expertise.
Major clients include: Baxter Healthcare, British Petroleum, Coca-Cola Company, Dun and Bradstreet, Eli Lilly and Company, JP Morgan Company, Nike International, and Texaco are a partial list of organizations served by MCS worldwide.
Pen Consulting Services: MCS offers four primary services, tailored to meet the needs of individual clients and devised to get the job done for the mobile professional:We are committed to helping you leverage your investment in information technology to your best advantage. We can provide assistance with all phases of a project in developing systems that take advantage of the portability and the familiarity of pen computing. Our mission is to help you apply the leading information technologies such as pen computing to the information needs of your organization.
Contact for MCS Information:
Western Regional Office:
Microsoft Consulting Services
Microsoft Corporation
One Market Plaza, Suite 1550
Spear Street Tower
San Francisco, CA 94105
Phone: 415/ 905–0235
Eastern Regional Office:
Microsoft Consulting Services
Microsoft Corporation
200 State Street
Boston, MA 02109
Phone: 617/ 951–2780
Sales Technologies (ST) develops, installs, and supports tailored, networked systems that improve sales force productivity for corporations with mobile field sales forces. ST’s software product consists of five core application modules: Territory Management, Electronic Mail, Electronic Forms, Electronic Reports Distribution, and Spreadsheets. Pen-based systems are already being used with the Territory Management module, and further development of pen-based software is underway. ST also offers a broad range of services to keep customers’ systems running smoothly, including design consulting, database development, 24-hour help line, data center, hardware repair and replacement services, and comprehensive user training.
ST has developed sales force productivity solutions for companies in many different industries, including consumer package goods, industrial, oil and gas, and health care.
Major clients include: 3M, General Mills, Gillette, Mobile Oil, SmithKline Beecham, The Upjohn Company.
Pen Consulting Services: Sales Technologies offers custom solutions based on its core products. Our primary services include:
Contact for Sales Technologies Information:
Gitesh Ramamurthy
3399 Peachtree Rd. NE
The Lenox Building, Suite 700
Atlanta, GA 30326
Phone: 404/ 841–4000
Fax: 404/ 841–4115