Method and apparatus for software technology injection for operating systems which assign separate process address spaces
Abstract
A method for enhancing the operable functionality of an existing target software application with a complex technological add-in can include mapping a library function containing a surrogate procedure to at least one of a multiplicity of application programs executing in a computer system. Upon command from an injection software application program, the library function can be selectively caused to map to the existing target software application. More specifically, a first pointer to a target procedure can be replaced with a second pointer to the surrogate procedure, so that the surrogate procedure receives intercepted messages that would otherwise be received by the target procedure. The intercepted messages can be processed in the surrogate procedure to modify an operating feature of the target application program. Also, an emulation procedure separate from and external to the surrogate procedure can be called to assist the surrogate procedure in processing the intercepted messages.
Claims
exact text as granted — not AI-modified1 . A method for enhancing the operable functionality of an existing target software application with a complex technological add-in, the method comprising the steps of:
mapping a library function containing a surrogate procedure to at least one of a plurality of application programs executing in a computer system, said at least one application program including the existing target software application; upon command from an injection software application program, selectively causing only said library function mapped to the existing target software application to replace a first pointer in memory to a target procedure for the existing target software application with a second pointer to said surrogate procedure, so that said surrogate procedure receives intercepted messages that would otherwise be received by said target procedure; processing said intercepted messages in said surrogate procedure to modify an operating feature of said target application program; and, calling an emulation procedure separate from and external to said surrogate procedure to assist said surrogate procedure in processing said intercepted messages by performing complex processing to enhance the operable functionality of the existing target software application.
2 . The method of claim 1 , further comprising the step of calling said emulation procedure by means of an application programming interface routine which has a return value, and further wherein said return value determines said processing to be performed by said surrogate procedure.
3 . The method of claim 1 further comprising the step of
processing in said surrogate window procedure, each of said intercepted messages, to determine if said intercepted message requires post-processing by said surrogate procedure after any processing by said target procedure and said emulation procedure has been completed, in order to modify said operating feature of said target application program.
4 . The method of claim 3 , further comprising the step of:
retrieving from said target procedure to said surrogate procedure, graphical user interface specification data for a graphical user interface of said target application program, when said message is a request from said operating system for information which will determine the appearance of the target application graphical user interface.
5 . The method of claim 4 , wherein said graphical user interface specification data is edited by said surrogate window procedure to create a modified portion of said target application graphical user interface.
6 . The method of claim 1 wherein said modified feature modifies the operation of the target application program without modifying the screen displays of said target application program.
7 . The method of claim 1 wherein said modified feature modifies the screen displays that are seen by the user during operation of the target application program.
8 . A machine readable storage having stored thereon a computer program for enhancing the operable functionality of an existing target software application with a complex technological add-in, the computer program comprising a routine set of instruction for causing the machine to perform the steps of:
mapping a library function containing a surrogate procedure to at least one of a plurality of application programs executing in a computer system, said at least one application program including the existing target software application; upon command from an injection software application program, selectively causing only said library function mapped to the existing target software application to replace a first pointer in memory to a target procedure for the existing target software application with a second pointer to said surrogate procedure, so that said surrogate procedure receives intercepted messages that would otherwise be received by said target procedure; processing said intercepted messages in said surrogate procedure to modify an operating feature of said target application program; and, calling an emulation procedure separate from and external to said surrogate procedure to assist said surrogate procedure in processing said intercepted messages by performing complex processing to enhance the operable functionality of the existing target software application.
9 . The machine readable storage of claim 8 , further comprising the step of calling said emulation procedure by means of an application programming interface routine which has a return value, and further wherein said return value determines said processing to be performed by said surrogate procedure.
10 . The machine readable storage of claim 8 , further comprising the step of
processing in said surrogate window procedure, each of said intercepted messages, to determine if said intercepted message requires post-processing by said surrogate procedure after any processing by said target procedure and said emulation procedure has been completed, in order to modify said operating feature of said target application program.
11 . The machine readable storage of claim 10 , further comprising the step of:
retrieving from said target procedure to said surrogate procedure, graphical user interface specification data for a graphical user interface of said target application program, when said message is a request from said operating system for information which will determine the appearance of the target application graphical user interface.
12 . The machine readable storage of claim 11 , wherein said graphical user interface specification data is edited by said surrogate window procedure to create a modified portion of said target application graphical user interface.
13 . The machine readable storage of claim 8 , wherein said modified feature modifies the operation of the target application program without modifying the screen displays of said target application program.
14 . The machine readable storage of claim 8 , wherein said modified feature modifies the screen displays that are seen by the user during operation of the target application program.Join the waitlist — get patent alerts
Track US2003191865A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.