The present invention relates to a method for providing access to displayed data, and a system implementing the method.
An exemplary prior art hardware/software display arrangement in a computer system is shown in
Also present in the computer system is main memory 10, which contains a variety of programs and routines that are executed by the computer system. Main memory contains owning application 112, other applications 114, display management application program interfaces (API's) 116, device drivers 118 and, in this example, requesting application 120. Although the term application is used in this document to refer to application 112 and other applications 114, one of skill in the art would recognize that the description herein is equally applicable to any executing process in a computer system.
Owning application 112 owns owning application window 106, while the other applications 114 own the other application windows 108. Owning application 112 may display data of any kind, such as text, images, video, etc., in owning application window 106, as well as other objects, such as control buttons, text entry boxes, sliders, etc. For example, owning application 112 may display data such as displayable data 115. In order to display data or other objects, owning application 112 communicates with display memory 102 through APIs 116, which provide a device-independent interface to the device-specific device drivers 118, which access and control the hardware of display memory 102 and display circuitry 104.
Another application, such as requesting application 120 may request access to the data displayed in application window 106. A problem arises when the requested data is unobtainable, such as may occur when the data is protected from access, when the data is in a format that is not compatible with the data request, or when the data simply does not exist, as may occur if a window is not actually visible. Currently, an error is generated and no data is returned.
A need arises for a technique that will determine what data should be supplied to an application when the application attempts to access data that is either not present, or not authorized to be accessed.
The present invention is a system and method for providing access to displayed data by determining what data should be supplied to an application when the application attempts to access data that is either not present, or not authorized to be accessed. In order to carry out the method of the present invention, a request for data of a first process is received from a second process. At the first process, a resolution to the request for data received from the second process is generated and the generated resolution is transmitted from the first process to the second process.
In one embodiment of the present invention the requested data is protected data and the received resolution comprises a modified version of the protected data. The modified version of the data may comprise data substituted for at least a portion of the protected data or data augmenting the protected data. The data substituted for at least a portion of the protected data may comprise a pattern or a message indicating where the protected data would have been displayed. The data augmenting the protected data may comprise a copyright notice.
In another embodiment of the present invention, the requested data is data that is not being displayed and the received resolution comprises the requested data.
In another embodiment of the present invention, the requested data does not exist and the received resolution comprises a generated version of the requested data.
In another embodiment of the present invention, the requesting step comprises the step of transmitting information relating to the request for data to the first process and wherein the received resolution is based on the information relating to the request for data. The information relating to the request for data may identify a process requesting the data and the received resolution may be based on the identified process or the information relating to the request for data may indicate a use to be made of the data and the received resolution may be based on the indicated use.
In another embodiment of the present invention, the requested data comprises image data. The received resolution may comprise image data having a different color depth than the requested data. The received resolution may comprise image data having a different pixel resolution than the requested data. The received resolution may comprise image data that is not the requested data.
In another embodiment of the present invention, the requested data may comprise an image of text displayed in a first font and the received resolution may comprise an image of the text displayed in a second font.
In another embodiment of the present invention, the step of generating the resolution comprises the steps of: transmitting a request for additional information relating to the request for data from the first process to the second process, receiving a response to the request for additional information from the second process, and generating, at the first process, a resolution to the request for data received from the second process based on the response to the request for additional information received from the second process. The received response to the request for additional information may comprise information identifying a process requesting the data. The received response to the request for additional information may comprise information indicating a use to be made of the data. The received response to the request for additional information may comprise information relating to attributes of the data.
The details of the present invention, both as to its structure and operation, can best be understood by referring to the accompanying drawings, in which like reference numbers and designations refer to like elements.
a is an exemplary block diagram of an embodiment of a display system, according to the present invention.
b is a flow diagram of a process which may be implemented in the system of
An exemplary hardware/software display arrangement in a computer system is shown in
Also present in the computer system is main memory 210, which contains a variety of programs and routines that are executed by the computer system. Main memory contains owning application 212, other applications 214, display management application program interfaces (API's) 216, device drivers 218 and, in this example, requesting application 220. Although the term application is used in this document to refer to owning application 212, other applications 214, and requesting application 220, one of skill in the art would recognize that the description herein is equally applicable to any executing process in a computer system.
Owning application 212 controls owning application window 206, while the other applications 214 control the other application windows 208. As shown in step 250 of
In step 252 of
In any case, in step 254 of
The action determined and resolution generated by response module 230 may depend upon several factors, such as the type of data involved in the attempted access, the application attempting to access the data, etc. For example, if the data involved in the attempted access is protected, and the application attempting to access the data is not authorized to do so, then typically, response module 230 will generate a modified version of the protected data, which will be supplied to requesting application 220. For example, response module 230 may generate a pattern or a message, such as pattern 302, shown in
Other situations may arise. The data involved in the attempted access may not be present in display memory 202. For example, the data may be off screen, or it may not have been generated yet. In this case, response module 230 may return the actual data, generating it if necessary. Response module 230 may generate different versions of the requested data depending upon the application that is requesting it. For example, the displayed data may be a color image, such as image 602, shown in
Another example is shown in
Another example is shown in
Another example is shown in
In a further embodiment of the present invention, the owning application and the requesting application may have further communications regarding the data to be provided, as shown in FIG. 14. The process shown in
In step 1404, the requesting application provides the information requested by the response module in step 1402. In step 1406, the response module analyzes the information received from the requesting application to determine if any additional information is necessary. If additional information is necessary, the response module may repeat steps 1402-1406, in order to obtain the additional information from the requesting application. Once the response module has all the necessary information, or is unable to obtain any additional information, then, in step 1408, the response module determines what action to take and generates a resolution using the received information. If the response module is unable to obtain necessary information, an error may be generated, or alternatively, a default resolution or a resolution based on at least some default information may be generated.
An example of the data flow that occurs in the processes shown in
In the example of
The requesting application receives extended request 1526 and may ignore the extended request or respond to it. In the example of
Although specific embodiments of the present invention have been described, it will be understood by those of skill in the art that there are other embodiments that are equivalent to the described embodiments. Accordingly, it is to be understood that the invention is not to be limited by the specific illustrated embodiments, but only by the scope of the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
5390335 | Stephan et al. | Feb 1995 | A |
5392400 | Berkowitz et al. | Feb 1995 | A |
5432931 | Woess et al. | Jul 1995 | A |
5519862 | Schaeffer et al. | May 1996 | A |
5630042 | McIntosh et al. | May 1997 | A |
5754178 | Johnston, Jr. et al. | May 1998 | A |
5835594 | Albrecht et al. | Nov 1998 | A |
5850466 | Schott | Dec 1998 | A |
5864666 | Shrader | Jan 1999 | A |
5881287 | Mast | Mar 1999 | A |
6266664 | Russell-Falla et al. | Jul 2001 | B1 |
6389472 | Hughes et al. | May 2002 | B1 |
6421733 | Tso et al. | Jul 2002 | B1 |
6493744 | Emens et al. | Dec 2002 | B1 |
6501472 | Hunt et al. | Dec 2002 | B1 |
Number | Date | Country |
---|---|---|
WO 9520291 | Jul 1995 | WO |