Electrical computers and digital processing systems: interprogra – Application program interface – Data transfer between application windows
Reexamination Certificate
1999-02-25
2004-04-13
Banankhah, Majid A. (Department: 2127)
Electrical computers and digital processing systems: interprogra
Application program interface
Data transfer between application windows
C719S319000, C719S320000, C719S328000
Reexamination Certificate
active
06721951
ABSTRACT:
TECHNICAL FIELD
The present invention relates generally to data processing systems and, more particularly, to a uniform mechanism for transferring data within a data processing system.
BACKGROUND OF THE INVENTION
In conventional computer systems, data transfer is application specific. In other words, a computer program is responsible for handling the data transfer that is required by an application of data transfer functionality (“application”). Two examples of such applications of data transfer functionality are drag-and-drop and cut-and-paste. Drag-and-drop refers to when a computer user selects data contained within a data source and moves the mouse to a data sink while keeping the mouse button depressed. The data source and the data sink are computer programs within the computer system which contain or accept data. An example of a data source or data sink is a file editor or a word processing document. When the indicator on the computer display, which reflects mouse movement (“mouse pointer”), appears to be pointing to the data sink, the user releases the depressed mouse button and the selected data appears to be inserted into the dam sink. Cut-and-paste refers to when a computer user selects data from within a data source and performs a cut operation (typically invoked through a pull-down menu). The computer user then selects a position in the data sink and performs a paste operation (typically invoked through a pull-down menu). The result of a cut-and-paste application is that data is extracted from the data source and is inserted into the data sink. In order to understand how a data sink and a data source handle the drag-and-drop and cut-and-paste applications, drag-and-drop and cut-and-paste are examined in more detail below.
FIG. 1
depicts a conventional computer system for performing a drag-and-drop application. The memory
102
of the computer system contains a data source
104
, which contains data
110
; a global memory
108
; a window manager
112
and a data sink
106
. The global memory
108
is an area of memory that is accessible to all computer programs in a state of operation. Global memory may be contrasted against local memory wherein local memory is memory local to the computer program (i.e., within the address space of the computer program). The window manager
112
is a computer program responsible for performing all computer display-related operations.
FIG. 2
depicts a flowchart of the steps performed by a conventional computer system for performing a drag-and-drop application. When a drag-and-drop application is performed, the computer user first selects the data
110
within the data source
104
by typically using a mouse or other pointing device (step
202
). Selecting data refers to highlighting data
110
within the data source
104
. The computer user then drags the selected data
110
to the data sink
106
(step
204
). Dragging refers to the computer user (hereafter “user”) depressing the mouse button, while the mouse pointer is positioned on the selected data
110
, and moving the mouse while keeping the mouse button depressed. After the user drags the data
110
to the data sink
106
, the data source
104
converts the data
110
into a format acceptable to the global memory
108
and passes the data
110
to the window manager
112
(step
206
). When the data
110
is passed to the window manager
112
, the window manager
112
stores the data
110
into the global memory
108
. After storing the data
110
into the global memory
108
, the window manager
112
transfers the data
110
from the global memory
108
to the data sink
106
(step
208
). Upon receiving the data
110
, the data sink
106
converts the data
110
into a format acceptable to the data sink
106
(step
210
).
The cut and paste application is similar to the drag and drop application in that a data sink and a data source performing the cut and paste application also form a connection and transfer data.
FIG. 3
depicts a conventional computer system for performing the cut-and-paste application. The memory
102
of the computer system contains a data source
104
, which contains data
110
; a clipboard
302
; and a data sink
106
. The clipboard
302
is responsible for maintaining an area of global memory used for temporary storage. During a cut-and-paste application, the user selects data
110
from the data source
104
, invokes a cut operation (typically by using a pull-down menu), inserts the cursor into the data sink
106
and invokes the paste operation (typically by using a pull-down menu). Both the cut and the paste operations are provided by the clipboard
302
and are well known in the computer industry.
FIG. 4
depicts a flowchart of the steps performed by a conventional computer system for performing the cut-and-paste application. First, the user selects data
110
from the data source
104
and performs a cut operation (step
402
). The data
110
is then converted into a format acceptable to the clipboard
302
(step
404
). After the data
110
has been converted, the data
10
is copied to the clipboard
308
, wherein the data
110
then resides within global memory (step
406
). Then, the user selects a location within the data sink
106
and invokes the paste operation (step
408
). The data sink
106
transfers the data
110
from the clipboard
302
to the location in the data sink
106
selected by the user (step
410
).
As indicated above, in both the cut-and-paste and the drag-and-drop applications, the data source and the data sink form a logical connection through either the clipboard
302
or the window manager
112
. Then, after the connection is established, the data
110
is transferred. This two-step process requires the developers of computer programs which perform applications of data transfer functionality to create, for each application, both a connection component to establish a connection and a data transfer component to perform the data transfer. Thus, the developers of computer programs which support applications of data transfer functionality must implement a data transfer component for every application supported.
SUMMARY OF THE INVENTION
In accordance with a first aspect of the present invention, a method is executed in a computer system. In accordance with this method of the first aspect of the present invention, the computer has a connection mechanism, a uniform data transfer mechanism and a plurality of computer programs. In order to perform data transfer between two computer programs, this method establishes a connection between the computer programs transferring data and invokes the uniform data transfer mechanism to perform the data transfer.
In accordance with a second aspect of the present invention, a communication mechanism is provided that contains a connection component and a data transfer component. The data transfer component further contains a GetData component, a GetDataHere component, a QueryGetData component, a GetCanonicalFormat component, a SetData component, a EnumFormat component, an Advise component, an UnAdvise component and an EnumAdvise component.
REFERENCES:
patent: 5157763 (1992-10-01), Peters et al.
patent: 5187787 (1993-02-01), Skeen et al.
patent: 5257369 (1993-10-01), Skeen et al.
patent: 5261080 (1993-11-01), Khoyi et al.
patent: 5303379 (1994-04-01), Khoyi et al.
patent: 5333298 (1994-07-01), Bland et al.
patent: 5392390 (1995-02-01), Crozier
“Transfer Class,”Penpoint Architectural Reference, GO Corporation, vol. II, Part 9, chapter 83, pp. 165-178 (Jun. 1992).
Technical Introduction to the Macintosh Family, Apple Computer, Inc., Addison-Wesley Publishing Company, Inc., Menlo Park, California, 1987, pp. 63-66.
Garfinkel, S. and Michael Mahoney,NeXTSTEP Programming: Step One: Object-Oriented Applications, Springer-Verlag, New York, 1993, pp. 511-531.
Carr, R. and Dan Shafer,The Power of PenPoint, Addison-Wesley Publishing Company, Inc., Menlo Park, California, 1991, pp. 1-19 and 129-151.
Inside Macintosh, vol. 1, Apple Computer, Inc., Addison-Wesley Publishing Company, Inc., Menlo Pa
Atkinson Robert G.
Williams Antony S.
Banankhah Majid A.
Klarquist & Sparkman, LLP
Microsoft Corporation
LandOfFree
Data transfer utilizing single functionally independent data... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Data transfer utilizing single functionally independent data..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Data transfer utilizing single functionally independent data... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3213387