Transparent windows methods and apparatus therefor

Information

  • Patent Grant
  • 7904823
  • Patent Number
    7,904,823
  • Date Filed
    Monday, March 17, 2003
    21 years ago
  • Date Issued
    Tuesday, March 8, 2011
    13 years ago
Abstract
A method for optimizing pen-based annotations on a non-pen enabled window. The method includes starting a visible non-pen-enabled window further including position indicia and size indicia; starting a transparent pen-enabled window; and associating the visible non-pen-enabled window with the transparent pen-enabled window based on the position indicia and size indicia. The method further includes aligning the transparent pen-enabled window with the visible non-pen-enabled window, and accepting user input comprising a message. If the message further includes pen indicia, the method also includes forwarding the message to the transparent pen-enabled window. Else, the method includes forwarding the message to the first application.
Description
BACKGROUND OF THE INVENTION

The present invention relates in general to interactive graphical computing environment. More particularly, the present invention relates to methods and apparatus for optimizing a transparent window.


Many early operating systems (i.e., MS DOS) could only run a single application. It was therefore possible, if not necessary, to allow the application to be directly coupled to the computer's hardware resources, such as the keyboard and video display. Primarily comprising a text-based interface, these applications received relatively little assistance from the operating system. For example, the application would directly poll the keyboard for any user keystrokes.


In contrast, most modern graphical operating systems (i.e. Microsoft Windows, Linux, MacOS, etc.) can simultaneously run multiple applications. Hence some sort of shared messaging system must be used to preclude resource sharing conflicts. User input is no longer polled by the application, but rather the application registers with the operating system, usually during installation, describing the forms of input that it would like to receive. The operating system, in turn, forwards messages to the application as appropriate. Likewise, any output to the display area or printer was also routed through the message system to the appropriate portion of the operating system (i.e., the typing of text, the scrolling of a mouse, or the resizing of the application window).


Display windows are common characteristic of most graphical operating systems. A window is a virtual entity, commonly referred to as a control, positioned on a computer display, for presenting the interaction between the user and the computer. The typical application has a single rectangular window displayed on the screen. However, some applications open multiple windows, and others permit arbitrarily shaped windows (not just rectangles) and windows of various styles and colors.


Computer platforms are also becoming smaller, faster, mobile, and more ubiquitous. Mobile, handheld computers; computing appliances; and smart telephones allow computer support to be built into task situations. Such situations include new physical environments, where computers have been impractical up to now, and also new social environments, where, previously, computers imposed a formidable barrier to social interaction. However, traditional user interface devices can be problematic. Keyboards are often awkward and bulky to carry, while the mouse (and other cursor-based input) is generally not optimized for entering text efficiently.


Pen-based computing developed as an alternative means of user input, comprising the functions of both the keyboard and the stylus. Most pen-based devices allow annotation directly on the screen display, much like the annotation of a physical sheet of paper with a marker. Furthermore, these platforms may also convert a user's handwritten notes into computer recognized text and commands. Many pen-based devices also run existing applications. For example, the Microsoft TabletPC, based on the XP platform, can run just about any XP application,


However, most applications must generally be specifically designed to take advantage of pen-based user input. Many previously written applications, such as an Internet browser, often do not allow direct annotation in the browser window. For instance, if two users are visually sharing a browser application, such as with Microsoft NetMeeting, it may be difficult, if not impossible, for a user to annotate directly on the browser display area.


In view of the foregoing, there is desired a method and apparatus for optimizing pen-based annotations on a window of a software application.


SUMMARY OF THE INVENTION

The invention relates, in one embodiment, to a method for optimizing pen-based annotations on a non-pen enabled window. The method includes starting a visible non-pen-enabled window further including position indicia and size indicia; starting a transparent pen-enabled window; and associating the visible non-pen-enabled window with the transparent pen-enabled window based on the position indicia and size indicia. The method further includes aligning the transparent pen-enabled window with the visible non-pen-enabled window, and accepting user input comprising a message. If the message further includes pen indicia, the method also includes forwarding the message to the transparent pen-enabled window. Else, the method includes forwarding the message to the first application.


In another embodiment, the invention relates to an apparatus for pen-based annotations on a non-pen enabled window. The apparatus includes a means of starting a visible non-pen-enabled window further including position indicia and size indicia; a means of starting a transparent pen-enabled window; and a means of associating the visible non-pen-enabled window with the transparent pen-enabled window based on the position indicia and size indicia. The apparatus further includes a means of aligning the transparent pen-enabled window with the visible non-pen-enabled window, and a means of accepting user input comprising a message. If the message further includes pen indicia, the apparatus also includes a means of forwarding the message to the transparent pen-enabled window. Else, the apparatus includes a means of forwarding the message to the first application.


These and other features of the present invention will be described in more detail below in the detailed description of the invention and in conjunction with the following figures.





BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:



FIG. 1A illustrates, in accordance with one embodiment of the present invention, a simplified diagram in which pen-based annotations are enabled on a previously non-pen enabled window;



FIG. 1B illustrates, in accordance with one embodiment of the present invention, a simplified diagram in which pen-based annotations are enabled on a previously non-pen enabled window that cannot be automatically refreshed;



FIG. 2 illustrates, in accordance with one embodiment of the present invention, a graphical representation of the screen displays of FIGS. 1A-1B;



FIG. 3 illustrates, in accordance with one embodiment of the present invention, a simplified diagram in which pen-based annotations are enabled in an application that comprises both a pen-enabled window and a non-pen-enabled window; and,



FIG. 4 illustrates, in accordance with one embodiment of the present invention, a graphical representation of the screen display of FIG. 3.





DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention will now be described in detail with reference to a few preferred embodiments thereof as illustrated in the accompanying drawings. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process steps and/or structures have not been described in detail in order to not unnecessarily obscure the present invention. The features and advantages of the present invention may be better understood with reference to the drawings and discussions that follow.


In accordance with one embodiment of the present invention, a transparent window is advantageously employed to optimize pen-based annotation on a window of a software application.


Many software applications, including the operating system itself, comprise a set of windows. The Microsoft Windows desktop, for instance, functions as a large window. Normally, the operating system maintains and provides spatial information for each window in its desktop area. As windows overlap each other (e.g. windows have a Z order relative to the user), each application responds by redrawing its own window (or portion thereof) when unobstructed.


Most modern operating systems, like Linux, are also event driven. Rather than being a based upon a constant course of action (i.e., MS DOS), various system events are handled by a set of operating system routines. For example, the movement of a mouse or the redrawing of a screen. At the core is a loop—a portion of code that gets executed time and again throughout the life of the program. The sole job of the main loop, often called a message pump, is to make sure that events get handled, such as being forwarded to the appropriate program.


Messages are used for most basic interactions between applications and the operating system. If a user wants a window or control (which is just a specialized window) to do something, a message is sent. If an event happens such as the user typing on the keyboard, moving the mouse, clicking a button, then messages are sent by the system to the windows affected. If the message is not recognized, it is often ignored.


For example, in Microsoft Windows, a simplified example of the message pump is:

















while(GetMessage(Message)



{



  TranslateMessage (Message);



  DispatchMessage (Message);



}










The message loop calls GetMessage( ), which looks in a message queue. When an event occurs causing a message to be added to the queue (i.e., a mouse click). GetMessages( ) returns a positive value indicating there is a message to be processed, and places the appropriate information into the Message variable. It is then passed to TranslateMessage( ) for additional processing (i.e., translating virtual key messages into character messages). The message is then passed to DispatchMessage( ) which determines the window for which it is intended. It then forwards a message to the application associated with the window, sending the handle of the window, the original received message, and other parameters. A handle is a unique identifier or pointer that is used to access an object, similar to an index number. Whenever a program or resource needs to access another resource, its presents the handle to the appropriate application programming interface, or API.


In order to substantially mimic the behavior of a regular pen, pen-based computer input generally must account for additional attributes, such as the angle of the pen, pressure on the writing surface, pen speed, steadiness, in-air movements, and others. Traditional operating systems generally, however, do not generally expose or use these pen characteristics. For example, with Microsoft Windows XP Tablet PC Edition, the infrastructure that makes the pen work consists of a pen service that sends out system or pen events that correspond to pen actions. The service determines whether the destination is a pen-enabled application or a mouse-enabled application, or whether the destination is a control or a window within an application. The service then sends a mouse message to the mouse application or control or both mouse and pen messages to a pen-enabled application.


In a non-obvious manner, the current invention allows a transparent pen-enabled window to be superimposed upon a non-pen-enabled window. In a fashion similar to laying a sheet of transparency over a sheet of paper, the user can make annotations on the transparent pen-enabled window directly over displayed elements of the underlying window. For example, a user could directly annotate on an existing presentation application, such as on a Microsoft PowerPoint slide. In one embodiment, the non-pen-enabled window is included in a collaboration application, such as with Microsoft NetMeeting. In another embodiment, a single application comprises both the transparent pen-enabled window and a non-pen-enabled window, such as with Iteration Active Studio or Active Viewer. In yet another embodiment, a first application including a transparent pen-enabled window is coupled to a second application including a non-pen-enabled window.



FIG. 1A depicts a simplified diagram according to one embodiment of the invention, in which pen-based annotations are enabled on a previously non-pen enabled window. In a non-obvious fashion, a transparent pen enabled window of a first application is coupled to a visible non-pen enabled window of a second application.


The first application may register itself with the operating system, requesting receipt of all pen messages generated by the user on the transparent window. These messages can describe pen angle, writing surface pressure, pen speed, etc. In one embodiment, the messages can be converted to a bitmap. In another embodiment, the messages are converted to a set of Bezier curves for efficient storage. In another embodiment, the messages are converted to a Microsoft Ink format. In another embodiment, the messages are converted to computer-readable characters through a handwriting recognition process.


Messages not relevant to the first application are ignored and subsequently received and processed by the second application in a normal fashion. For example, when a user selects a button control on the second application, a mouse click message is generated. The first application's transparent window, positioned before the second application's visible window, receives the mouse click message. Since it is not interested in mouse click messages, the message is instead is returned to the message pump. It is subsequently ignored by the first application, and received by the second application, wherein the mouse click message is associated with the button control. The screen is refreshed, and the user sees the appropriate button selection behavior (e.g. the mouse control being depressed and released).


In order to synchronize its movement to the underlying visible window, the first application requests the position and size of the visible window from the operating system. As the underlying visible window subsequently moves, or is resized, the pen-enabled transparent window moves or resizes as well. Furthermore, the first application can instruct the second application to redraw itself, through a refresh message, whenever a portion of the window becomes obstructed or unobstructed by another window, other than the transparent window, on the desktop.


Referring now to FIG. 1A, a first application including a non-pen-enabled window is started at step 104. Likewise, a second application including a pen-enabled window is started at step 106. The non-pen-enabled window and the transparent pen-enabled window are then associated at step 108. That this, the second application requests from the operating system information describing the position and size of the non-pen-enabled window. The transparent pen-enabled window is then instantiated and positioned over the non-pen-enabled window in the display area at step 110. User input is then generated at step 114. At step 118, the message is analyzed to determine if it is relevant to the second application. If so, at step 116, the message is forwarded to the second application, where it is processed. If not, at step 112, the message is forwarded to the first application, where it is processed. In either case, the system is again ready for additional user input at step 114.



FIG. 1B depicts a simplified diagram according to one embodiment of the invention, in which pen-based annotations are enabled on a previously non-pen enabled window that cannot be automatically refreshed. Some applications, such as Microsoft Internet Explorer, will ignore refresh requests from other applications, in order to optimize performance. That is, the application, itself, will determine the situations in which it will refresh its own windows. However, appropriate control behavior, such as the depression of a button or the rendering of a data stream, usually requires periodic screen refreshments. If a first window is positioned above a second non-pen-enabled window, even if the first window is transparent, the underlying second window may choose not to refresh. This may freeze the display area, and effectively disable the user controls, such as buttons and scrollbars.


In a non obvious fashion, the first application captures an image of the visible non-pen enabled window, effectively making the previously transparent window opaque. The user can then annotate on this opaque window as before. In one embodiment, when the user desires to access controls on the visible non-pen enabled window, the opaque window becomes transparent and moves behind the visible non-pen enabled window. In another embodiment, when the user desires to access controls on the visible non-pen enabled window, the opaque window is moved off the visible desktop.


Referring now to FIG. 1B, a first application including a non-pen-enabled window is started at step 144. Likewise, a second application including a pen-enabled window is started at step 146. The non-pen-enabled window and the transparent pen-enabled window are then associated at step 148. That this, the second application requests from the operating system information describing the position and size of the non-pen-enabled window. A decision is made at step 150, in which the user selects to enter pen annotations, or non-pen annotations (i.e., such as a mouse click). If yes, a transparent pen-enabled window is then instantiated and positioned over the non-pen-enabled window in the display area at step 152. User input is then generated at step 156. At step 160, the messages are forwarded to the second application, where they are processed. At step 162, the transparent window is removed, and the loop restarts at step 150. If not, at step 150, user input is then generated at step 154. At step 158, the messages are forwarded to the first application, where they are processed, and the loop restarts at step 150.


Referring now to FIG. 2, a graphical representation of a screen display is shown of the simplified diagrams of FIGS. 1A-B. The first application is shown as 202, whereas the included non-pen-enabled visible window is shown as 204. These, in turn, are coupled to a second application 206, and the included transparent pen-enabled window is shown as 208. Transparent pen-enabled window 208 is positioned over the visible non-pen-enabled window relative to the user's viewpoint 212. That is, the transparent pen-enabled window has a higher Z order 210 in relationship to the visible non-pen-enabled window.



FIG. 3 depicts a simplified diagram according to one embodiment of the invention, in which pen-based annotations are enabled in an application that comprises both a pen-enabled window and a non-pen-enabled window. The application including is started at step 300. The transparent pen-enabled window is then instantiated and may be automatically positioned over the non-pen-enabled window. For example, a Windows application that has and embedded Internet Explorer control (which is not commonly pen-enabled) and a transparent pen-enabled window control. There is no need to associate both windows, since both are within the same application. User input is then generated at step 304. At step 308, the message is analyzed to determine if it is a pen message. If yes, at step 306, the message is forwarded to the pen message handler of the application, where it is processed. If not, at step 302, the message is forwarded to the non-pen message handler of the application, where it too is processed. In either case, the system is again ready for additional user input at step 304.


Referring now to FIG. 4, a graphical representation of a screen display is shown of the simplified diagram of FIG. 3. Unlike FIG. 2, there is only a single application 402 that includes a non-pen-enabled visible window 404, and a transparent pen-enabled window 408. Transparent pen-enabled window 408 is positioned over the visible non-pen-enabled window 404 relative to the user's viewpoint 412. That is, the transparent pen-enabled window has a higher Z order 410 in relationship to the visible non-pen-enabled window.


While this invention has been described in terms of several preferred embodiments, there are alterations, permutations, and equivalents which fall within the scope of this invention. For example, although reference is given to the Microsoft TabletPC, it should be understood that the invention can also integrate with other computer platforms and operating systems. It should also be noted that there are many alternative ways of implementing the apparatuses of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations, and equivalents as fall within the true spirit and scope of the present invention.


Advantages of the invention include optimizing pen-based annotations on a window of a software application. Additional advantages enhancing existing non-pen-based applications with pen annotation capability.


Having disclosed exemplary embodiments and the best mode, modifications and variations may be made to the disclosed embodiments while remaining within the subject and spirit of the invention as defined by the following claims.

Claims
  • 1. A method of optimizing pen-based annotations on a non-pen enabled window comprising: providing a first application associated with a visible non-pen-enabled window including position indicia, size indicia, and order indicia;providing a second application associated with a transparent pen-enabled window including position indicia, size indicia, and order indicia;associating said visible non-pen-enabled window with said transparent pen-enabled window based on said position indicia and size indicia;receiving a first user input from a first input source of a plurality of input sources, the plurality of input sources including a pen input device and a non-pen input device;accepting the first user input;determining a source of the first user input;forwarding said first user input to said second application using the transparent pen-enabled window and adjusting the order indicia of at least one of the visible non-pen-enabled window or the transparent pen-enabled window to position the transparent pen-enabled window over the visible non-pen-enabled window in response to determining that the source of the first user input is the pen input device;receiving a second user input from a second input source of the plurality of input sources;accepting the second user input;determining a source of the second user input; andforwarding said second user input to the first application using the visible non-pen-enabled window and adjusting the order indicia of at least one of the visible non-pen-enabled window or the transparent pen-enabled window to position the visible non-pen-enabled window over the transparent pen-enabled window in response to determining that the source of the second user input is the non-pen input device.
  • 2. The method of claim 1, where said transparent pen-enabled window comprises a transparent control.
  • 3. The method of claim 2, where said non-pen enabled window comprises a non-transparent control of a collaborative application.
  • 4. The method of claim 3, where said non-pen enabled window comprises a button.
  • 5. The method of claim 4, where said non-pen enabled window comprises a browser.
  • 6. The method of claim 4, where said non-pen enabled window comprises a menu.
  • 7. The method of claim 1 further comprising registering the second application with an operating system for receiving pen messages.
  • 8. The method of claim 7 wherein pen messages describe pen angle, writing surface pressure, or pen speed.
  • 9. A method of optimizing pen-based annotations on a non-pen enabled window comprising: providing a visible non-pen-enabled window including position indicia and size indicia;providing a transparent pen-enabled window including position indicia and size indicia;accepting user input;receiving a first user input from a first input source of a plurality of input sources, the plurality of input sources including a pen input device and a non-pen input device;determining a source of the first user input;aligning the transparent pen-enabled window over the visible non-pen-enabled window based on the position indicia and the size indicia;forwarding the first user input to a first handler of an application, the first handler configured to process pen messages in response to determining that the source of the first user input is the pen input device;receiving a second user input from a second input source of the plurality of input sources;determining a source of the second user input; andforwarding the second user input to a second handler of the application, the second handler configured to process non-pen messages and moving said transparent pen-enabled window such that said transparent pen-enabled window is no longer aligned over said visible non-pen-enabled window in response to determining that the source of the second user input is the non-pen input device.
  • 10. The method of claim 9, where said transparent pen-enabled window comprises a transparent control.
  • 11. The method of claim 9, where said non-pen enabled window comprises a non-transparent control of a collaborative application.
  • 12. The method of claim 11, wherein said moving said transparent pen-enabled window includes at least one of placing said transparent pen-enabled window in a lower Z-order than said visible non-pen-enabled window and removing said transparent pen-enabled window from a visible desktop.
  • 13. The method of claim 12, where said non-pen enabled window comprises a browser.
  • 14. The method of claim 13, where said non-pen enabled window comprises a menu.
  • 15. An apparatus for optimizing pen-based annotations on a non-pen enabled window comprising: a means of providing a first application associated with a visible non-pen-enabled window including position indicia, size indicia, and order indicia;a means of providing a second application associated with a transparent pen-enabled window including position indicia, size indicia, and order indicia;a means of associating said visible non-pen-enabled window with said transparent pen-enabled window based on said position indicia and size indicia;a means of receiving a first user input from a first input source of a plurality of input sources, the plurality of input sources including a pen input device and a non-pen input device;a means of accepting the first user input;a means of determining a source of the first user input;a means of forwarding said first user input to said second application using the transparent pen-enabled window and adjusting the order indicia of at least one of the visible non-pen-enabled window or the transparent pen-enabled window to position the transparent pen-enabled window over the visible non-pen-enabled window in response to determining that the source of the first user input is the pen input device;a means of receiving a second user input from a second input source of the plurality of input sources;a means of accepting the second user input;a means of determining a source of the second user input; anda means of forwarding said second user input to the first application using the visible non-pen-enabled window and adjusting the order indicia of at least one of the visible non-pen-enabled window or the transparent pen-enabled window to position the visible non-pen-enabled window over the transparent pen-enabled window in response to determining that the source of the second user input is the non-pen input device.
  • 16. The apparatus of claim 15, where said transparent pen-enabled window comprises a transparent control.
  • 17. The apparatus of claim 15, where said non-pen enabled window comprises a control.
  • 18. The apparatus of claim 15, where said non-pen enabled window comprises a button.
  • 19. The apparatus of claim 15, where said non-pen enabled window comprises a browser.
  • 20. The apparatus of claim 15, where said non-pen enabled window comprises a menu.
  • 21. An apparatus for optimizing pen-based annotations on a non-pen enabled window comprising: a means of providing a visible non-pen-enabled window including position indicia and size indicia;a means of providing a transparent pen-enabled window including position indicia and size indicia;a means of accepting user input;a means of receiving a first user input from a first input source of a plurality of input sources, the plurality of input sources including a pen input device and a non-pen input device;a means of determining a source of the first user input;a means of aligning the transparent pen-enabled window over the visible non-pen-enabled window based on the position indicia and the size indicia;a means of forwarding the first user input to a first handler of an application, the first handler configured to process pen messages in response to determining that the source of the first user input is the pen input device;a means of receiving a second user input from a second input source of the plurality of input sources;a means of determining a source of the second user input; anda means of forwarding the second user input to a second handler of the application, the second handler configured to process non-pen messages and moving said transparent pen-enabled window such that said transparent pen-enabled window is no longer aligned over said visible non-pen-enabled window in response to determining that the source of the second user input is the non-pen input device.
  • 22. The apparatus of claim 21, where said transparent pen-enabled window comprises a transparent control.
  • 23. The apparatus of claim 21, where said non-pen enabled window comprises a control.
  • 24. The apparatus of claim 21, wherein said moving means includes at least one of means for placing said transparent pen-enabled window in a lower Z-order than said visible non-pen-enabled window and means for removing said transparent pen-enabled window from a visible desktop.
US Referenced Citations (241)
Number Name Date Kind
5033009 Dubnoff Jul 1991 A
5510980 Peters Apr 1996 A
5553215 Kaethler Sep 1996 A
5592608 Weber et al. Jan 1997 A
5613131 Moss et al. Mar 1997 A
5615362 Jensen et al. Mar 1997 A
5654726 Mima et al. Aug 1997 A
5721847 Johnson Feb 1998 A
5754774 Bittinger et al. May 1998 A
5758337 Hammond May 1998 A
5765164 Prasad et al. Jun 1998 A
5778372 Cordell et al. Jul 1998 A
5781911 Young et al. Jul 1998 A
5784275 Sojoodi et al. Jul 1998 A
5787409 Seiffert et al. Jul 1998 A
5809267 Moran et al. Sep 1998 A
5812840 Shwartz Sep 1998 A
5831609 London et al. Nov 1998 A
5831615 Drews et al. Nov 1998 A
5857201 Wright, Jr. et al. Jan 1999 A
5862325 Reed et al. Jan 1999 A
5864669 Osterman et al. Jan 1999 A
5893126 Drews et al. Apr 1999 A
5893150 Hagersten et al. Apr 1999 A
5898434 Small et al. Apr 1999 A
5918009 Gehani et al. Jun 1999 A
5922044 Banthia Jul 1999 A
5926177 Hatanaka et al. Jul 1999 A
5928327 Wang et al. Jul 1999 A
5930794 Linenbach et al. Jul 1999 A
5943620 Boltz et al. Aug 1999 A
5974236 Sherman Oct 1999 A
6023694 Kouchi et al. Feb 2000 A
6025844 Parsons Feb 2000 A
6035324 Chang Mar 2000 A
6038558 Powers et al. Mar 2000 A
6055548 Comer et al. Apr 2000 A
6070197 Cobb et al. May 2000 A
6073242 Hardy et al. Jun 2000 A
6075530 Lucas et al. Jun 2000 A
6088481 Okamoto et al. Jul 2000 A
6092102 Wagner Jul 2000 A
6094681 Shaffer et al. Jul 2000 A
6112236 Dollin et al. Aug 2000 A
6170019 Dresel et al. Jan 2001 B1
6175859 Mohler Jan 2001 B1
6185582 Zellweger et al. Feb 2001 B1
6189069 Parkes et al. Feb 2001 B1
6201539 Miller et al. Mar 2001 B1
6204846 Little et al. Mar 2001 B1
6205474 Hurley Mar 2001 B1
6208990 Suresh et al. Mar 2001 B1
6233578 Machihara et al. May 2001 B1
6239797 Hills et al. May 2001 B1
6240444 Fin et al. May 2001 B1
6243698 Powers et al. Jun 2001 B1
6243713 Nelson et al. Jun 2001 B1
6256649 Mackinlay et al. Jul 2001 B1
6256676 Taylor et al. Jul 2001 B1
6269393 Yost et al. Jul 2001 B1
6292803 Richardson et al. Sep 2001 B1
6301601 Helland et al. Oct 2001 B1
6304546 Natarajan et al. Oct 2001 B1
6314463 Abbott et al. Nov 2001 B1
6317737 Gorelik et al. Nov 2001 B1
6336135 Niblett et al. Jan 2002 B1
6341312 French et al. Jan 2002 B1
6348933 Walls et al. Feb 2002 B1
6363363 Haller et al. Mar 2002 B1
6393421 Paglin May 2002 B1
6397217 Melbin May 2002 B1
6430576 Gates et al. Aug 2002 B1
6449344 Goldfinger et al. Sep 2002 B1
6467052 Kaler et al. Oct 2002 B1
6480847 Linenbach et al. Nov 2002 B1
6501956 Weeren et al. Dec 2002 B1
6510457 Ayukawa et al. Jan 2003 B1
6513047 Talley Jan 2003 B1
6519568 Harvey et al. Feb 2003 B1
6523046 Liu et al. Feb 2003 B2
6532465 Hartley et al. Mar 2003 B2
6542165 Ohkado Apr 2003 B1
6567796 Yost et al. May 2003 B1
6567814 Bankier et al. May 2003 B1
6574618 Eylon et al. Jun 2003 B2
6574639 Carey et al. Jun 2003 B2
6591277 Spence et al. Jul 2003 B2
6591278 Ernst Jul 2003 B1
6598167 Devine et al. Jul 2003 B2
6606596 Zirngibl et al. Aug 2003 B1
6640234 Coffen et al. Oct 2003 B1
6647272 Asikainen Nov 2003 B1
6651055 Kilmer et al. Nov 2003 B1
6651142 Gorelik et al. Nov 2003 B1
6687360 Kung et al. Feb 2004 B2
6701485 Igra et al. Mar 2004 B1
6714982 McDonough et al. Mar 2004 B1
6731314 Cheng et al. May 2004 B1
6745193 Horvitz et al. Jun 2004 B1
6775267 Kung et al. Aug 2004 B1
6782424 Yodaiken Aug 2004 B2
6789083 Thelen Sep 2004 B2
6832341 Vijayan Dec 2004 B1
6870830 Schuster et al. Mar 2005 B1
6898625 Henry et al. May 2005 B2
6901592 Mar et al. May 2005 B2
6907422 Predovic Jun 2005 B1
6915457 Miller Jul 2005 B1
6920607 Ali et al. Jul 2005 B1
6937713 Kung et al. Aug 2005 B1
6938221 Nguyen Aug 2005 B2
6941345 Kapil et al. Sep 2005 B1
6941351 Vetrivelkumaran et al. Sep 2005 B2
6954757 Zargham et al. Oct 2005 B2
6954902 Noma et al. Oct 2005 B2
6996768 Elo et al. Feb 2006 B1
7003568 Chikada et al. Feb 2006 B1
7003731 Rhoads et al. Feb 2006 B1
7024474 Clubb et al. Apr 2006 B2
7028092 MeLampy et al. Apr 2006 B2
7031314 Craig et al. Apr 2006 B2
7032006 Zhuk Apr 2006 B2
7058953 Willard et al. Jun 2006 B2
7096432 Huapaya et al. Aug 2006 B2
7113964 Bequet et al. Sep 2006 B1
7120139 Kung et al. Oct 2006 B1
7171473 Eftis et al. Jan 2007 B1
7174339 Wucherer et al. Feb 2007 B1
7177909 Stark et al. Feb 2007 B2
7197565 Abdelaziz et al. Mar 2007 B2
7221658 Armstrong et al. May 2007 B1
7222294 Coffen et al. May 2007 B2
7243124 Gardner et al. Jul 2007 B1
7243127 Tabayoyon, Jr. et al. Jul 2007 B2
7272660 Powers et al. Sep 2007 B1
7275215 Werndorfer et al. Sep 2007 B2
7296217 Earnshaw et al. Nov 2007 B1
7313617 Malik et al. Dec 2007 B2
7359938 Davies et al. Apr 2008 B1
7373428 Armstrong et al. May 2008 B1
7386588 Mousseau et al. Jun 2008 B2
7389351 Horvitz Jun 2008 B2
7392478 Aureglia et al. Jun 2008 B2
7401158 Beauchamp et al. Jul 2008 B2
7406569 Van de Waerdt Jul 2008 B2
7412481 Nicholls et al. Aug 2008 B2
7412486 Petrack et al. Aug 2008 B1
7412518 Duigou et al. Aug 2008 B1
7412645 Kotler et al. Aug 2008 B2
7426059 Broda et al. Sep 2008 B2
7436947 Ordille et al. Oct 2008 B2
7454423 Powers et al. Nov 2008 B2
7487437 Aureglia et al. Feb 2009 B2
20010034733 Prompt et al. Oct 2001 A1
20010039616 Kumagai et al. Nov 2001 A1
20010040945 Fujino et al. Nov 2001 A1
20010049683 Yoshikawa Dec 2001 A1
20010049721 Blair et al. Dec 2001 A1
20020013853 Baber et al. Jan 2002 A1
20020032602 Lanzillo et al. Mar 2002 A1
20020038217 Young Mar 2002 A1
20020057678 Jiang et al. May 2002 A1
20020059472 Wollrath et al. May 2002 A1
20020065894 Dalal et al. May 2002 A1
20020078208 Crump et al. Jun 2002 A1
20020083067 Tamayo et al. Jun 2002 A1
20020083072 Steuart Jun 2002 A1
20020103909 Devine et al. Aug 2002 A1
20020107864 Battas et al. Aug 2002 A1
20020107905 Roe et al. Aug 2002 A1
20020107957 Zargham et al. Aug 2002 A1
20020116362 Li et al. Aug 2002 A1
20020120697 Generous et al. Aug 2002 A1
20020120765 Boehmke Aug 2002 A1
20020138640 Raz et al. Sep 2002 A1
20020143710 Liu Oct 2002 A1
20020152402 Tov et al. Oct 2002 A1
20020165849 Singh et al. Nov 2002 A1
20020178353 Graham Nov 2002 A1
20020184187 Bakalash et al. Dec 2002 A1
20020198985 Fraenkel et al. Dec 2002 A1
20030004742 Palmer et al. Jan 2003 A1
20030023691 Knauerhase Jan 2003 A1
20030028682 Sutherland Feb 2003 A1
20030028683 Yorke et al. Feb 2003 A1
20030033329 Bergman et al. Feb 2003 A1
20030071850 Geidl Apr 2003 A1
20030088633 Chiu et al. May 2003 A1
20030093585 Allan May 2003 A1
20030101201 Saylor et al. May 2003 A1
20030101223 Pace et al. May 2003 A1
20030105837 Kamen et al. Jun 2003 A1
20030112948 Brown et al. Jun 2003 A1
20030115186 Wilkinson et al. Jun 2003 A1
20030120805 Couts et al. Jun 2003 A1
20030154177 Holland et al. Aug 2003 A1
20030182428 Li et al. Sep 2003 A1
20030182461 Stelting et al. Sep 2003 A1
20030187971 Uliano et al. Oct 2003 A1
20030204741 Schoen et al. Oct 2003 A1
20030208543 Enete et al. Nov 2003 A1
20030217081 White et al. Nov 2003 A1
20030220860 Heytens et al. Nov 2003 A1
20030229722 Beyda Dec 2003 A1
20030235279 Richomme Dec 2003 A1
20040002958 Seshadri et al. Jan 2004 A1
20040010543 Grobman Jan 2004 A1
20040019695 Fellenstein et al. Jan 2004 A1
20040030762 Silverthorne et al. Feb 2004 A1
20040039776 Ballard Feb 2004 A1
20040039800 Black et al. Feb 2004 A1
20040049477 Powers et al. Mar 2004 A1
20040054802 Beauchamp et al. Mar 2004 A1
20040060001 Coffen et al. Mar 2004 A1
20040073596 Kloninger et al. Apr 2004 A1
20040087300 Lewis May 2004 A1
20040146044 Herkerdorf et al. Jul 2004 A1
20040152477 Wu et al. Aug 2004 A1
20040254998 Horvitz Dec 2004 A1
20050004984 Simpson Jan 2005 A1
20050055329 Bakalash et al. Mar 2005 A1
20050086211 Mayer Apr 2005 A1
20050102294 Coldewey May 2005 A1
20050102611 Chen May 2005 A1
20050125377 Kotler Jun 2005 A1
20060089939 Broda et al. Apr 2006 A1
20060161540 Schmitz et al. Jul 2006 A1
20060206589 Lentini et al. Sep 2006 A1
20080043256 Broda et al. Feb 2008 A1
20080046505 Netsch et al. Feb 2008 A1
20080046506 Broda Feb 2008 A1
20080046510 Beauchamp et al. Feb 2008 A1
20080046536 Broda Feb 2008 A1
20080046556 Nicholls et al. Feb 2008 A1
20080046568 Broda et al. Feb 2008 A1
20080046803 Beauchamp et al. Feb 2008 A1
20080077656 Broda Mar 2008 A1
20080148289 Nicholls et al. Jun 2008 A1
20080155020 Beauchamp et al. Jun 2008 A1
20090031205 Aureglia et al. Jan 2009 A1
20090037803 Bauchot Feb 2009 A1
Foreign Referenced Citations (1)
Number Date Country
WO 0163466 Aug 2001 WO
Related Publications (1)
Number Date Country
20080046837 A1 Feb 2008 US