throbber
(12) United States Patent
`Maltby et al.
`
`US006202100B1
`US 6,202,100 B1
`Mar. 13, 2001
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`(54) OBJECT LINKING AND EMBEDDING OVER
`A COMPUTER NETWORK
`
`(75) Inventors: John Maltby, EmsWorth; Simon
`Phipps, Southampton; Vince Singleton,
`Northants, all of (GB)
`
`(73) Assignee: International Business Machines
`Corporation, Armonk, NY (US)
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. No.: 08/395,548
`(22) Filed:
`Feb. 28, 1995
`(30)
`Foreign Application Priority Data
`
`Mar. 23, 1994
`
`(GB) ................................................ .. 9405757
`
`Brockschmidt, Kraig, “Introducing OlE 2.0, Part I: Windows
`Objects and the Component .
`.
`. ”, Microsoft Systems
`Journal, v8 n8 p. 15(9), Aug. 1993.*
`
`(no author given), “Microsoft mulls OMG compliance for
`Cairo”, PC Week, v10, n42, p. 3(1), Oct. 1993.*
`
`Orfali, Robert, Dan Harkey, “Client/Server Survival Guide
`With OS/2”, Van Nostrand Reinhold, pp. 745—753, 1994.*
`
`PoWell. James E., “HiJaak 1.0”, WindoWs Magazine, 1992,
`n. 311 p. 310, Dec. 1992.*
`
`Microsoft Visual C++ Programmer’s Guides 1993 pp. 273—
`Ch. 18 Ole Support.*
`
`Welch, Kevin P. “Inter Program Communications Using
`Windows’ Dynamic Data Exchange” Microsoft Systems
`Journal Nov. 1987.*
`
`(51) Int. Cl.7 ...................................................... .. G06F 9/00
`
`* cited by examiner
`
`(52) US. Cl. ............................................................ .. 709/329
`
`(58) Field of Search ................................... .. 395/650, 700;
`709/329, 310—332
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,408,470 * 4/1995 Rothrock et al. .................. .. 370/261
`5,446,896 * 8/1995 Hegarty et al.
`707/1
`5,452,299 * 9/1995 Thessin et al. .................... .. 370/260
`
`FOREIGN PATENT DOCUMENTS
`
`1/1989 (EP) ............................... .. G06F/9/46
`0380211
`0474339 * 11/1992 (EP) ............................... .. G06F/9/44
`
`OTHER PUBLICATIONS
`(no author given) “Object Linking & Embedding”,
`Microsoft Corp. pp. 1—45, Nov. 6, 1991.*
`William, Semich, J ., “Uncertain Future: What’s the Next
`Step After Client/Server?”, Datamation, v40, n6, p. 26(7),
`Mar. 1994.*
`
`Primary Examiner—St. John Courtenay, III
`(74) Attorney, Agent, or Firm—Jeanine S. Ray-Yarletts
`
`(57)
`
`ABSTRACT
`
`A user at computer A submits material from an application
`APPNA onto the clipboard at that machine. A routine CLIP
`SEND, part of conferencing softWare P2P-A at computer A
`obtains a list of available formats for the material on the
`clipboard, and transmits this list to a second machine,
`computer B. This list is received by conferencing softWare
`P2P-B at computer B, and a routine CLIP RECEIVE, part of
`P2P-B, submits the list to the clipboard at that machine. The
`user at machine B can then embed an object originally from
`APPNAby OLE pasting into an application at computer B,
`APPN B. in the normal manner.
`
`10 Claims, 3 Drawing Sheets
`
`CLIP SEND BECOMES VIEWER OF CUPBOARD A
`(SETCLIPBOARDVIEWER)
`
`310
`
`APPN A SUBMITS MATERIAL TO CUPBOARD A
`(SETCLIPBOARDDATA)
`I
`
`,7
`
`CLIPBOARD A SENDS NOTIFICATION TO CLIP SEND
`(WM_DRAWCLI PBOARD)
`
`CLIP SEND OBTAINS LIST OF FORMATS ON CLIPBOARD A
`(ENUMCLIPBOARDFORMATS)
`
`33D
`
`340
`
`T CLIP SEND SENDS LIST OF FORMATS TO CLIP B $1 35”
`I
`I
`CLIP RECEIVE BECOMES OWNER OF CLIPBOARD 541A’
`SETCLI PBOARDOWNER)
`(
`I
`350
`
`‘
`
`CLIP RECEIVE SUBMITS DATA TO CLIPBOARD B
`(SETCLI PBOARDDATA)
`
`370
`
`Petitioner Microsoft Corporation - Ex. 1072, p. 1
`
`

`
`U.S. Patent
`
`Mar. 13, 2001
`
`Sheet 1 of3
`
`US 6,202,100 B1
`
`FIG. 1
`
`12
`
`16
`
`,u p
`
`, 24
`MEMORY /\
`
`T RING
`
`\f‘
`
`\30
`
`NETWORK
`
`A
`
`CLIP
`SEND
`
`P2P-A
`
`COMMS
`
`B
`
`P2P-B
`
`CLIP
`RECEIVE
`
`APPN A CLIPIZOARD
`
`APPN B
`
`CLIPBBOARD
`
`Petitioner Microsoft Corporation - Ex. 1072, p. 2
`
`

`
`U.S. Patent
`
`Mar. 13, 2001
`
`Sheet 2 of3
`
`US 6,202,100 B1
`
`CLIP SEND BECOMES VIEWER OF CUPBOARD A
`(SETCLIPBOARDVIEWER)
`
`/\, 310
`
`v
`APPN A SUBMITS MATERIAL TO CLIPBOARD A
`(SETCLIPBOARDDATA)
`
`CLIPBOARD A SENDS NOTIFICATION TO CLIP SEND
`(WM_DRAWCLIPBOARD)
`
`320
`
`330
`
`V
`CLIP SEND OBTAINS LIST OF FORMATS ON CLIPBOARD A
`(ENUMCLIPBOARDFORMATS)
`
`’\¢ 340
`
`CLIP SEND SENDS LIST OF FORMATS To CLIP B
`
`4’ 35a
`
`cup RECEIVE BECOMES OWNER OF CUPBOARD B
`(SETCLIPBOARDOWNER)
`
`/\. 360
`
`\
`CLIP RECEIVE SUBMITS DATA TO CLIPBOARD B
`(SETCLIPBOARDDATA)
`
`/\~ 370
`
`Petitioner Microsoft Corporation - Ex. 1072, p. 3
`
`

`
`U.S. Patent
`
`Mar. 13, 2001
`
`Sheet 3 of3
`
`US 6,202,100 B1
`
`FIG. 4
`
`USER AT B SELECTS FORMAT
`(GETCLIPBOARDDATA)
`
`4
`\/\ 10
`
`CLIPBOARD B ASKS CLIP RECEIVE FOR FORMAT w
`(WM_RENDERFORMAT)
`42"
`
`I
`CLIP RECEIVE SEND MESSAGE TO CLIP SEND \/\ 430
`
`I
`CLIP SEND REQUESTS DATA FROM CLIPBOARD A
`(GETCLIPBOARDDATA)
`@ 440
`
`I
`CLIP SEND RECEIVES DATA FROM CLIPBOARD A \/\ 450
`
`I
`CLIP SEND FORWARDS DATA TO CLIP RECEIVE \/\ 460
`
`I
`CLIP RECEIVE PASSES DATA TO CLIPBOARD B \/\
`(SETCLIPBOARDDATA)
`47 0
`
`I
`APPN B RECEIVES DATA FROM CLIPBOARD B M 480
`
`Petitioner Microsoft Corporation - Ex. 1072, p. 4
`
`

`
`US 6,202,100 B1
`
`1
`OBJECT LINKING AND EMBEDDING OVER
`A COMPUTER NETWORK
`
`Related applications: Background information useful for
`an understanding of the present invention may be found in
`US. patent application Ser. Nos. 08/149,487 and 08/203,067
`?led on Nov. 9, 1993 and Feb. 28, 1994 respectively in the
`name of IBM Corporation, Which are incorporated herein by
`reference. Copies of these tWo applications are ?led With this
`application.
`The present invention relates to a method of providing
`object linking and embedding (OLE) over a computer
`netWork, in Which an object from a ?rst application at a ?rst
`computer in the netWork is incorporated into a second
`application at a second computer in the netWork.
`A personal computer running a multi-tasking operating
`system such as OS/2 or WindoWs1 can support more than
`one application running simultaneously. It is sometimes
`necessary for a user to be able to copy data from one
`application to another, for example to copy numbers from a
`spreadsheet into a report being prepared on a Wordprocessor.
`One Way of performing this transfer is to Write the data from
`the ?rst application into a ?le on the hard disk, and then
`retrieve the ?le into the second application. This is simple
`but relatively cumbersome.
`1OS/Z is a trademark of International Business Machines Corporation and
`Windows is a trademark of Microsoft Corporation
`The OS/2 and WindoWs operating systems provide a more
`sophisticated facility, knoWn as the clipboard, for perform
`ing such an operation. Applications copy data onto the
`clipboard (effectively a piece of memory Which they then
`surrender to the operating system). Another application can
`then interrogate the operating system to ?nd out What is
`available on the clipboard, and if desired take a copy of the
`data from the clipboard. Normally an application Will Write
`the data into the clipboard in several different formats, and
`the receiving application Will then specify in Which of these
`data formats it Would like to receive the data. There are
`several standard formats, Which are available for all appli
`cations to use. The clipboard can be used for exchanging
`text, images, and so on.
`One slight complication is that the clipboard supports
`delayed rendering. In this case, the data itself is not supplied
`to the clipboard for a particular format, rather only a
`reference to the data. The data itself is supplied by the
`originating application only When that particular format is
`requested by another application. It is possible to use
`delayed rendering for some, all or none of the formats for
`any particular piece of data posted to the clipboard.
`A typical situation in Which a user might employ the
`clipboard function Would be to copy a portion of text from
`one document to another. The user (generally With a mouse
`and cursor) Would ?rst identify the text to be copied from the
`?rst (server) application, and then select the appropriate
`menu option to place this text in the clipboard. The appli
`cation Would then pass the text to the operating system in a
`variety of formats—for example, as a text ?le, as a bit map,
`as a meta?le, as a miniature document complete With format
`information, and so on. The operating system speci?es a list
`of common predetermined formats, but it is also possible for
`the application to use its oWn particular or private format.
`The formats are normally listed in order of preference, the
`most preferred format being that Which preserves most
`information from the server about appearance etc (eg ASCII
`text might be the least preferred format, since it contains no
`formatting information at all). The user in another (client)
`application can then request that the text/data is retrieved
`from the clipboard. Such a request results in the application
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`2
`being asked to select one of the available formats. The
`application may decide automatically Which format to take
`(perhaps it can only accept a particular format), or it may
`pass this choice on to the user; typically the most preferred
`format recognised by the client application Would be
`accepted.
`An application can request (via an operating system call)
`to become the oWner or vieWer of the clipboard. Becoming
`the oWner is necessary for delayed rendering for the appli
`cation to receive noti?cation Whenever text/data is requested
`from the clipboard. Becoming a vieWer of the clipboard
`results in the application receiving noti?cation Whenever
`another application Writes something to the clipboard.
`The clipboard is Well-suited to one-off transfers. HoW
`ever, if a particular piece of data in the ?rst application is
`updated regularly, and each of these updates is to be copied
`across to the second application, then repeated use of the
`clipboard becomes tedious and aWkWard. This problem is
`addressed by the provision in OS/2 and WindoWs of an
`additional function, termed dynamic data exchange (DDE).
`In DDE a link is set up to copy data from a ?rst application
`(the server) to a second application (the client). As the name
`implies the link is dynamic, in that for as long the link is
`maintained, modi?cations to the selected entry in the server
`application are automatically copied to the client applica
`tion. In other Words, the client contains a shadoW or mirror
`of the data in the server.
`An application in OS/2 or WindoWs can initiate DDE by
`one of tWo methods. In the ?rst (Which in practice is hardly
`ever used) an application broadcasts an INITIATE message
`to other applications executing on the node. The message
`contains the folloWing information: Application Name,
`Topic, Item, in an ASCII text string, using Zeroes as delim
`iters. The ?rst of these is used to identify the originating
`application, the topic is then used to specify some particular
`data ?le or Whatever, Whilst the item indicates a position
`Within the data ?le. For example, a spreadsheet program
`Would give the spreadsheet name as the topic and perhaps
`use “R1C1” as the item to identify the data cell in the ?rst
`roW and in the ?rst column. Applications receiving the
`message that Wish to participate in DDE With the originating
`node respond positively, and a DDE conversation can then
`be set up.
`The second method, Which has become the de facto
`standard, is to initiate DDE via the clipboard. When a piece
`of data is copied to the clipboard, one of the formats used is
`a private format representative of DDE (under Microsoft
`WindoWs conventionally this private format is “Link”). The
`data stored With this private format is in fact the Application,
`Topic, and Item parameters described above. When the user
`retrieves this data into the second (client) application, this
`private format is indicated as providing DDE. When this
`option is selected, the client application responds requesting
`the start of DDE. This response is actually performed by
`broadcasting a message including the application and topic
`Which is recognised by the originating server, leading to the
`commencement of the DDE conversation. Note that the
`conversation actually occurs betWeen tWo WindoWs, one
`belonging to the server and one belonging to the client.
`These are accessed by identi?ers knoWn as WindoW handles.
`The user can therefore initiate a DDE connection betWeen
`the server application and the client. At the start of this DDE
`conversation, the server and client negotiate regarding the
`data format to use for data transfer betWeen them. Obviously
`for DDE to Work the client and server must be compatible,
`
`Petitioner Microsoft Corporation - Ex. 1072, p. 5
`
`

`
`US 6,202,100 B1
`
`3
`to the extent that the client recognises the private format
`placed on the clipboard by the server as an invitation to DDE
`and they support at least one data format in common.
`Another approach to the transfer of data betWeen appli
`cations is provided in Microsoft WindoWs and is termed
`Object Linking and Embedding (OLE). OLE is someWhat
`similar to a standard clipboard transfer betWeen applica
`tions, eXcept that instead of transferring the data as a bit
`map, teXt string or Whatever, the data is transferred as an
`object. In OLE a selected piece of data (an object), is cut
`from a ?rst application (the source or server) and added to
`the clipboard in normal fashion. Private formats are used to
`indicate that Object Linking and/or Object Embedding are
`available (OLE actually represents tWo separate facilities);
`the data associated With these formats speci?es the (server)
`application name and topic and item in the same format used
`for DDE. In Object Embedding the data is also added to the
`clipboard in a so-called “native” format, Which contains all
`the information needed to alloW the source application to
`further process the data. If either OLE format is selected
`from a second application (the client or target), the object is
`pasted into the second application. At this stage the pasted
`material is visible as if a normal clipboard transfer had been
`performed: this is achieved by also copying another suitable
`format from the clipboard to alloW display of the data
`(typically this is the format that Would have been adopted
`had OLE not been invoked). HoWever, the object that has
`been incorporated into the target application contains eXtra
`information over and above the bit map, text, or Whatever
`representing the appearance of the object: it also contains the
`name (at least) of the original source application, plus (for
`Object Embedding) a native format including all the original
`control information held by the server application about that
`object. The object therefore contains suf?cient information
`to identify and be further processed by the server applica
`tion. In Microsoft WindoWs it is subsequently possible by
`double clicking on the object as seen from the target
`application to launch the server application and use it to
`process the object. This is effected by the client application
`sending an appropriate request to the Microsoft WindoWs
`operating system.
`An eXample of the use of OLE Would be if a draWing
`application is used to create a graph (ie the object), Which is
`then incorporated using OLE into a Word processor docu
`ment. If it is subsequently decided to update the graph, there
`is no need to repeat this process (ie update the graph in the
`draWing application and then copy it across again into the
`Word processor document); rather double clicking on the
`graph in the document launches the draWing application,
`Which can then be used to update the graph directly. Thus it
`Will be seen that OLE, unlike the normal clipboard or DDE,
`alloWs pasted material to be updated from Within the target
`application, and at some arbitrary future date (DDE, by
`contrast only operates Whilst the link betWeen the tWo
`applications is maintained, and even then only alloWs updat
`ing from Within the server application).
`In Object Linking the object contains a reference back to
`the original ?le containing the relevant data (including disk
`drive, ?lename etc); thus any updates made to the original
`?le are re?ected in the object as vieWed from the client
`application. In Object Embedding by contrast, effectively a
`copy is made of the original data, so that it does not mirror
`updates to the source data. Thus it can be seen that Object
`Linking and Object Embedding, although closely related,
`differ someWhat in the precise details of their operation.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`4
`Further information about OLE under Microsoft WindoWs
`can be found in “Object linking and Embedding: Program
`mer’s Reference, Version 1”, Microsoft Press, 1992.
`To date, OLE has essentially been directed at transferring
`data betWeen tWo applications both running on a single
`machine, although some commercially available products do
`have a limited ability to perform OLE across a netWork. For
`eXample, the Microsoft WindoWs for Workgroups product
`supports OLE across tWo or more machines; hoWever, the
`WindoWs for Workgroups operating system is speci?cally
`designed for use over a netWork. In a sense it can be
`regarded as a single system distributed over multiple hard
`Ware systems (Which must be connected together by a local
`area netWork
`Only systems running WindoWs for
`Workgroups can use this netWork OLE; there is no mecha
`nism for supporting OLE betWeen machines With other
`operating systems.
`Another product, ProShare from Intel Corporation, also
`provides a limited form of OLE over a netWork. This product
`permits sharing of data from one node to another; ie material
`entered into the application at one node is mirrored at the
`other node. This product supports OLE, so that if an object
`is embedded into the application at one node, it likeWise
`appears embedded at the other node. This facility hoWever
`is only useful for providing OLE Within this one application;
`it is not possible to provide OLE betWeen an arbitrary
`application on a ?rst machine and an arbitrary application on
`a second machine.
`Thus it Will be seen that although the prior art has
`addressed the problem of OLE over a netWork to a limited
`eXtent, it has not provided a comprehensive solution that is
`both ?exible and relevant to eXisting applications.
`Accordingly, the invention provides a method of provid
`ing object linking and embedding (OLE) over a computer
`netWork, in Which an object generated by a ?rst application
`at a ?rst computer in the netWork may be incorporated into
`a second application at a second computer in the netWork,
`said ?rst and second computers each running a stand-alone
`operating system supporting a clipboard, the method com
`prising the steps of:
`receiving noti?cation that the ?rst application has sub
`mitted material to the clipboard on the ?rst computer and
`obtaining a list of available formats for said submitted
`material;
`transmitting the format(s) corresponding to Object
`Embedding to the second computer;
`submitting the format(s) corresponding to Object Embed
`ding to the clipboard at the second computer for selection by
`the second application.
`Once the appropriate format(s) for Object Embedding
`have been submitted to the clipboard at the second computer,
`the object is available to be incorporated into the second
`application in the normal manner, by selecting OLE from the
`clipboard. Subsequently, When the object is invoked by
`double clicking, the operating system at the second com
`puter Will look for an application having the same name as
`the ?rst application, but residing on the second computer.
`This application Will then be launched to alloW the object to
`be processed as per normal OLE. In the present invention the
`cross-netWork nature of the OLE is completely transparent
`to the applications and no special operating systems are
`required.
`Clearly it is necessary as described above for the second
`computer also to possess a copy of the ?rst application that
`eXists at the ?rst computer. In practice this Will normally be
`the case; in many organisations, standard softWare packages
`are available to all users, for eXample because they are
`
`Petitioner Microsoft Corporation - Ex. 1072, p. 6
`
`

`
`US 6,202,100 B1
`
`5
`It is not at present
`installed onto a local area network
`supported for double clicking in the second application at
`the second computer to result in the ?rst application at the
`?rst computer being remotely launched to process the
`object. The reason for this is that the operating system at the
`second computer could not successfully resolve the refer
`ence to the ?rst application on the ?rst computer When the
`object Was invoked. Of course, future operating systems
`may be able to handle such references, or alternatively an
`application on the second computer could be used to act as
`an intermediary betWeen the ?rst application on the ?rst
`computer and the operating system on the second computer.
`HoWever, this latter suggestion is not straightforWard and
`has yet to be implemented.
`To support OLE over a network, it is only necessary to
`submit the actual format(s) required for OLE to the clip
`board at the second computer. In Microsoft WindoWs appli
`cations the availability of OLE is conventionally signalled
`by a format named “OWnerLink”. It may be desired to pick
`out just this format from the clipboard at the ?rst computer,
`plus formats for the native and presentation data, and then
`send them to the second computer (this approach minimises
`the siZe of transmissions betWeen the tWo computers).
`HoWever, in a preferred embodiment, the list of all the
`available formats for the material submitted to the clipboard
`is transmitted to the second computer for submission to the
`clipboard at the second computer. This effectively alloWs
`applications on the ?rst and second computers to transpar
`ently share a single clipboard, as described in more detail in
`the afore-mentioned US. application Ser. No. 08/149,487.
`If the Whole list is transferred, it is preferred that the
`method further includes the step of detecting if one of the
`available formats corresponds to Object Linking. In
`Microsoft WindoWs applications such a format is conven
`tionally named “ObjectLink”. If such a format is present, it
`is not submitted to the clipboard at the second computer (eg
`by removing it from the list prior to transmission to the
`second computer, or at the second computer before submis
`sion to the clipboard). Effectively this prevents Object
`Linking being performed over the netWork. Again, the
`reason for this is that the operating system at the second
`computer could not successfully resolve the reference to the
`original data ?le on the ?rst computer When the object Was
`invoked. Of course, future operating systems may be able to
`handle such references, or alternatively an application on the
`second computer could be used to act as an intermediary
`betWeen the ?rst application on the ?rst computer and the
`operating system on the second computer. HoWever, this
`latter suggestion is not straightforWard and has yet to be
`implemented.
`Preferably a check is made to see if one of the available
`formats corresponds to dynamic data exchange (DDE). In
`Microsoft WindoWs applications such a format is conven
`tionally named “Link”. If this format is present, the data
`associated With the format is changed by replacing the
`application name therein (ie denoting the ?rst application)
`With a name containing an identi?er of the ?rst computer.
`The replacement name refers to a substitute application on
`the second computer, Which picks up any DDE requests and
`refers them back to ?rst computer, as described in the
`afore-mentioned US. application Ser. No. 08/203,067.
`Note that a slight complication to the above is that it
`appears that in reality not all Microsoft WindoWs applica
`tions adhere fully to the format naming conventions; some
`use “ObjectLink” to denote a DDE link. Thus it may be more
`effective in some cases to regard “ObjectLink” as denoting
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`6
`DDE and to process it accordingly, rather than to drop it as
`denoting Object Linking.
`Preferably the formats are submitted to the clipboard on
`the second computer using delayed rendering, and further
`comprising the steps of:
`responsive to receiving a request from the second appli
`cation for a copy of the clipboard material in a particular
`format, sending a corresponding request to the ?rst com
`puter;
`obtaining the requested material from the clipboard at the
`?rst computer;
`transmitting the requested material obtained from the
`clipboard on the ?rst computer to the second computer;
`and submitting the requested material to the clipboard on
`the second computer, for passing to the second application.
`The advantage of using delayed rendering is that it avoids
`super?uous netWork traf?c in relation to clipboard formats
`that are never actually requested. If material is submitted to
`the clipboard in the form of a bit map for example, this
`saving can be quite signi?cant. In fact, the data associated
`With the OLE format per se is simply the string containing
`the application name, topic and item, and so the delayed
`rendering for this format does not save much bandWidth per
`se. Thus it Would be quite feasible to send the data associated
`With OLE format (even if it Was obtained from the clipboard
`on the ?rst computer using delayed rendering) at the same
`time as the format itself, and submit both together to the
`clipboard on the second computer. HoWever the presentation
`and native data associated With OLE may Well be extensive,
`favoring the use of delayed rendering, Which furthermore
`alloWs the same approach to be used for OLE as for all the
`other clipboard formats, including those such as bit map.
`In a preferred embodiment, both ?rst and second com
`puters run conferencing applications, Which are responsible
`for exchanging messages betWeen the ?rst and second
`computer. The conferencing applications are also respon
`sible for interacting via the clipboard With the ?rst and
`second applications at their respective computers; ie the
`conferencing application at the ?rst computer obtains the list
`of available formats and then the associated data from the
`clipboard at the ?rst computer, Whilst the conferencing
`application at the second computer submits the list of
`available formats and then the associated data to the clip
`board at the second computer.
`A detailed description of an embodiment of the invention
`Will noW be provided by Way of example, With reference to
`the folloWing draWings:
`FIG. 1 is a schematic block diagram of a typical computer
`Workstation;
`FIG. 2 is a simpli?ed diagram of the major softWare
`components running on the Workstation of FIG. 1;
`FIG. 3 is a How chart illustrating the process for copying
`a clipboard entry at a ?rst machine to the clipboard at a
`second machine;
`FIG. 4 is a How chart illustrating the processing of a
`request at the second machine for a clipboard entry from the
`?rst machine;
`FIG. 1 is a simpli?ed schematic diagram of a computer
`system, With a system unit 10, a display screen 12, a
`keyboard 14 and a mouse 16. The system unit 10 includes
`microprocessor 22, semi-conductor memory (ROM/RAM)
`24, and a bus over Which data is transferred 26. The
`computer of FIG. 1 may be any conventional Workstation,
`such as an IBM PS/1 computer. The computer of FIG. 1 is
`equipped With a netWork adapter card 30. This card, together
`With accompanying softWare, alloWs messages to be trans
`mitted onto and received by the computer Workstation.
`
`Petitioner Microsoft Corporation - Ex. 1072, p. 7
`
`

`
`US 6,202,100 B1
`
`7
`Various forms of network adapter card are available for use
`With networks such as Token Ring, Ethernet, ISDN, and so
`on. The operation of the netWork adapter card is Well-knoWn
`and so Will not be described in detail.
`FIG. 2 illustrates the main softWare components on tWo
`terrninals A, B, necessary for an understanding of the
`invention. Both terrninalsA and B are typically Workstations
`as shoWn in FIG. 1, and have clipboards (“CLIPBOARD A”
`and “CLIPBOARD B” respectively) supported by the oper
`ating system (eg Microsoft WindoWs) at the respective
`terminals. The tWo terminals are connected by a netWork
`link
`With
`appropriate
`cornrnunications
`softWare
`(“COMMS”) at each terminal to provide data communica
`tions between terminal A and terminal B. Such communi
`cations softWare interfaces With the netWork adapter card
`and is again Well-knoWn in the art.
`Terrninals A and B also run conferencing softWare, Which
`is responsible for implementing the OLE betWeen the tWo
`terrninals. This conferencing softWare is designated as
`P2P-A and P2P-B on terrninals A and B respectively. P2P-A
`and P2P-B are simply additional applications as far as the
`operating system is concerned, although for present pur
`poses they are perhaps most simply regarded as enhance
`rnents to the COMMS softWare. P2P-A and P2P-B interact
`With the COMMS softWare to exchange messages betWeen
`terrninals A and B using conventional cornrnunication pro
`tocols. The operation of P2P-A and P2P-B is described in
`more detail beloW. An example of commercially available
`suitable conferencing softWare is Person to Person2 for
`Windows from IBM Corporation, Which supports confer
`ences betWeen tWo or more people over a variety of corn
`rnunications links (eg LAN, ISDN, asynchronous).
`2Person to Person is a trademark of International Business Machines Corpo
`ration
`An application program (“APPN A”) and a routine
`(“CLIP SEND”), part of P2P-A, run on terrninal A, With an
`application program (“APPN B”) running on terrninal B.
`CLIP SEND uses the COMMS system to send a message to
`terminal B to activate another routine (“CLIP RECEIVE”),
`part of P2P-B, at terrninal B. CLIP SEND makes an oper
`ating system call to become a vieWer of CLIPBOARD A in
`accordance With conventional clipboard manipulation. The
`user at terrninal A selects the appropriate material from
`APPN A and copies this into CLIPBOARD A in the con
`ventional rnanner. Because the CLIP SEND routine is a
`vieWer of CLIPBOARD A, it is noti?ed of any updates to
`CLIPBOARD A. When it is alerted to a change to CLIP
`BOARD A, it requests the list of available formats Which it
`sends to CLIP RECEIVE. CLIP RECEIVE noW takes oWn
`ership of CLIPBOARD B and inserts the list of formats
`using delayed rendering (ie it passes a null pointer to the
`operating system). This avoids the bandWidth overheads
`associated With sending the actual data itself. The contents
`of CLIPBOARD A are thus reproduced on CLIPBOARD B.
`In the Microsoft WindoWs operating environment the
`speci?c calls for netWork OLE are as given beloW, and are
`listed in FIGS. 3 and 4, although it should be noted that the
`invention is not limited to this operating system. CLIP
`SEND becomes a vieWer of CLIPBOARD Ausing SetClip
`boardVieWer (step 310), and APPN A inserts data onto
`CLIPBOARD A using SetClipboardData (step 320). This
`causes a noti?cation WMiDRAWCLIPBOARD to be sent
`to CLIP SEND (step 330). CLIP SEND interrogates CLIP
`BOARD A using EnurnClipboardForrnats (step 340) to
`obtain the list of formats in Which the data on the clipboard
`is available. It passes this list to the remote terminal B using
`standard messaging software (step 350). CLIP RECEIVE
`then uses the call SetClipboardOWner to become the oWner
`of CLIPBOARD B (step 360). The formats are then inserted
`onto CLIPBOARD B (step 370) using the delayed rendering
`option in SetClipboardData, and become available for user
`selection.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`8
`The various clipboard formats are noW available from
`Within APPN B. One of these formats is recognised by
`APPN B as corresponding to OLE (Object Ernbedding). For
`the purpose of the present invention We assume that the user
`at terrninal B selects Object Ernbedding (the processing
`associated With other possible selections is described in the
`afore-rnentioned applications US. application Ser. Nos.
`08/149,487 and 08/203,067.
`The processing involved With satisfying the OLE request
`is illustrated in FIG. 4. Initially the user selects the clipboard
`entry corresponding to Object Ernbedding, either irnplicitly
`or explicitly, resulting in a GetClipboardData call from
`APPN B to CLIPBOARD B (step 410). Since all the formats
`are inserted onto CLIPBOARD B using delayed rendering

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket