System for instance customization with application independent programming of controls
First Claim
1. In a computer system, which comprises a host processor having an operating system that presents an interface to a plurality of application programs, wherein an application program is capable of manipulating and modifying a document, the document being an object embedded in the application program, the plurality of application programs being installed on the host processor, a method for providing application instance customization capability to users of a selected application program by using object programming for creating an instance of the application program which contains user customized controls therein, comprising the steps of:
- storing data, external to the plurality of application programs, that defines a plurality of extensible control objects, which provide properties for the embedded object;
selecting a first extensible control object from the plurality of extensible control objects;
providing a programming layer, for the plurality of application programs, that enables users to create a customized control;
inputting into the programming layer object customization data, comprising object extender data for the first extensible control object;
generating application program instance data for the application program;
creating a controlling extensible object as a controlling unknown for the first extensible control object;
aggregating the object extender data with the first extensible control object into the controlling extensible object;
holding a private IUnknown pointer to the first extensible control object; and
merging the object customization data and the application program instance data to create a customized instance of the application program which contains the customized controls therein.
2 Assignments
0 Petitions
Accused Products
Abstract
The system for instance customization with application independent programming of controls functions to place code behind documents in a multi-program environment in a manner that eliminates the object instance management problems of existing systems. The system consists of the process whereby the behavior of an object is changed by the user without changing its identity. In particular, the system for instance customization with application independent programming of controls combines a customizable object and a language engine object to form the customized instance of the object. Instance customization is enabled by the customized object aggregating the user defined customizations into a standard object that is supplied by Visual Basic. The Visual Basic object is given a pointer to the standard part of the document object which implements the base functionality of the document.
92 Citations
30 Claims
-
1. In a computer system, which comprises a host processor having an operating system that presents an interface to a plurality of application programs, wherein an application program is capable of manipulating and modifying a document, the document being an object embedded in the application program, the plurality of application programs being installed on the host processor, a method for providing application instance customization capability to users of a selected application program by using object programming for creating an instance of the application program which contains user customized controls therein, comprising the steps of:
-
storing data, external to the plurality of application programs, that defines a plurality of extensible control objects, which provide properties for the embedded object;
selecting a first extensible control object from the plurality of extensible control objects;
providing a programming layer, for the plurality of application programs, that enables users to create a customized control;
inputting into the programming layer object customization data, comprising object extender data for the first extensible control object;
generating application program instance data for the application program;
creating a controlling extensible object as a controlling unknown for the first extensible control object;
aggregating the object extender data with the first extensible control object into the controlling extensible object;
holding a private IUnknown pointer to the first extensible control object; and
merging the object customization data and the application program instance data to create a customized instance of the application program which contains the customized controls therein. - View Dependent Claims (2, 3, 4, 5, 8, 9, 10, 11)
defining a set of properties, methods and events for the selected extensible object.
-
-
3. The method of claim 1 wherein the step of providing a programming layer comprises:
adding behavior to the first extensible control object by performing at least one of;
handling its events, adding new interfaces, adding new members and adding new events.
-
4. The method of claim 1 wherein the step of merging further comprises:
implementing an interface IUnknown on the controlling extensible object as an external interface.
-
5. The method of claim 1 wherein the step of merging comprises:
dynamically exposing interfaces, contained in the controlling extensible object, that are added to the first extensible control object by the object extender data.
-
8. The method of claim 1 wherein the step of merging comprises:
compiling at run time the object customization data with the first extensible control object to create an application program specific customized control object.
-
9. The method of claim 8 wherein the step of providing comprises:
-
storing control customization data comprising a definition of an appearance and location of the application program specific customized control object in the selected application program; and
storing control customization data comprising programmatic event data comprising at least one of;
executable code, an executable command, identification of some activatable element associated with the computer system.
-
-
10. The method of claim 9 further comprising:
-
displaying the appearance of the application program specific customized control object at the location in the selected application program; and
executing a programmatic event defined by the stored programmatic event data in response to a user activating the application program specific customized control object.
-
-
11. The method of claim 1 wherein the object comprises a control, the method further comprising the steps of:
-
creating a control container in the selected application program; and
creating at least one container in the programming layer which interconnects with the control container in the selected application program for exchanging data therebetween.
-
-
6. In a computer system, which comprises a host processor having an operating system that presents an interface to a plurality of application programs, wherein an application program is capable of manipulating and modifying a document, the document being an object embedded in the application program, the plurality of application programs being installed on the host processor, a method for providing application instance customization capability to users of a selected application program by using object programming for creating an instance of the application program which contains user customized controls therein, comprising the steps of:
-
storing data, external to the plurality of application programs, that defines a plurality of extensible control objects, which provide properties for the embedded object;
selecting a first extensible control object from the plurality of extensible control objects;
providing a programming layer, for the plurality of application programs, that enables users to create a customized control;
inputting into the programming layer object customization data, comprising object extender data for the first extensible control object;
generating application program instance data for the application program;
creating a controlling extensible object as a controlling unknown for the first extensible control object;
aggregating the object extender data with the first extensible control object into the controlling extensible object;
forwarding a query interface to the object extender data when an unrecognized interface is requested of the controlling extensible object; and
merging the object customization data and the application program instance data to create a customized instance of the application program which contains the customized controls therein. - View Dependent Claims (7)
delegating query interface requests for interfaces including;
IDispatch, IConnectionPointContainer, and a default interface for the first extensible control object.
-
-
12. In a computer system, which comprises a host processor having an operating system that presents an interface to a plurality of application programs, wherein an application program is capable of manipulating and modifying a document, the document being an object embedded in the application program, the plurality of application programs being installed on the host processor, a method for providing application instance customization capability to users of a selected application program by using object programming for creating an instance of the application program which contains user customized controls therein, comprising the steps of:
-
storing data, external to the plurality of application programs, that defines a plurality of extensible control objects, which provide properties for the embedded object;
selecting a first extensible control object from the plurality of extensible control objects;
providing a programming layer, for the plurality of application programs, that enables users to create a customized control;
defining a set of extender properties and methods for an application program specific customized control object in the selected application program;
transmitting a pointer from a control container in the selected application program to a container in the programming layer, the pointer identifying an extender type library entry in the selected application program that contains the set of extender properties and methods;
inputting into the programming layer object customization data, comprising object extender data for the first extensible control object;
generating application program instance data for the selected application program;
merging the object customization data and the application program instance data to create a customized instance of the selected application program which contains the customized controls therein;
creating a control container in the selected application program; and
creating at least one container in the programming layer which interconnects with the control container in the selected application program for exchanging data therebetween. - View Dependent Claims (13, 14, 15)
linking the pointer to the selected one of the plurality of extensible control objects.
-
-
14. The method of claim 13 wherein the step of providing further comprises:
storing in the selected application program in the selected one of the plurality of application programs a set of event handlers comprising code executable in response to activation of the customized control by a user.
-
15. The method of claim 14 wherein the step of providing further comprises:
transmitting a pointer from the control container in the selected one of the plurality of application programs to a container in the programming layer, the pointer identifying the set of event handlers.
-
16. In a computer system, which comprises a host processor having an operating system that presents an interface to a plurality of application programs installed on the host processor, a method for providing application instance customization capability to users of the plurality of application programs by using object programming for creating an instance of an application program which contains user customized controls therein, comprising the steps of:
-
storing data, external to the plurality of application programs, that defines a plurality of extensible control objects, which provide properties for the document object;
selecting a first extensible control object from the plurality of extensible control objects;
providing a programming layer, for the plurality of application programs, that enables users to create a customized control, and wherein, furthermore, defining a set of extender properties and methods for the application program specific customized control object in the selected application program in the selected one of the plurality of application programs and transmitting a pointer from the control container in the selected one of the plurality of application programs to a container in the programming layer, the pointer identifying an extender type library entry in the selected on of the plurality of application programs that contains the set of extender properties and methods, linking the pointer to the selected one of the plurality of extensible control objects, storing in the selected application program in the selected one of the plurality of application programs a set of event handlers comprising code executable in response to activation of the customized control by a user, transmitting a pointer from the control container in the selected one of the plurality of application programs to a container in the programming layer, the pointer identifying the set of event handlers;
inputting into the programming layer object customization data including object extender data for the first extensible control object;
generating application program instance data for the application program;
merging the user input object customization data and the application program instance data to create a customized instance of the application program which contains the customized controls therein, accessing, in the programming layer, the set of extender properties and methods via the extender type library entry in the selected one of the plurality of application programs that contains the set of extender properties and methods, accessing, in the programming layer, the set of event handlers stored in the application program in the selected one of the plurality of application programs, compiling the set of event handlers, the set of extender properties and methods, the selected one of the plurality of controls to create the application program specific customized control for the selected one of the plurality of application programs;
creating a control container in the selected one of the plurality of application programs; and
creating at least one container in the programming layer which interconnects with the control container in the selected one of the plurality of application programs for exchanging data there between.
-
-
17. A method for providing application instance customization capability to users of a plurality of application programs, wherein an application program is capable of manipulating and modifying a first document, the first document being an object embedded in the application program, the plurality of application programs being in a computing environment having at least one common programming tool for creating a customized instance of the application program, the customized instance of the application program containing a user customized control therein, the method comprising the steps of:
-
providing, external to the plurality of application programs, a plurality of extensible control objects, which provide properties for the embedded object;
selecting, in the customized instance of the application program, a first extensible control object from the plurality of extensible control objects;
providing at least one interface in the common programming tool, the common programming tool interface enabling users to augment the first extensible control object with an extension to provide extender properties and methods supplied by the application program;
creating a controlling extensible object with a controlling unknown, where the controlling unknown is an external interface to the controlling extensible object;
holding, by the controlling extensible object, a private IUnknown pointer to the first extensible control object; and
merging the extension and the first extensible control object to create the customized control in the customized instance of the application program. - View Dependent Claims (18, 19, 21, 22, 23, 24)
dynamically exposing interfaces by the controlling extensible object to allow access to the extender properties and methods supplied by the application program for augmenting the first extensible control object.
-
-
21. The method of claim 17 wherein the method further comprises:
creating at least one container in the common programming tool, the common programming tool container providing an interface for interconnecting with a controlling extensible object.
-
22. The method of claim 17 wherein the method further comprises:
selecting a second extensible control object, the second extensible object not being one of the plurality of extensible control objects.
-
23. The method of claim 17 wherein the method further comprises:
managing at least one instance of the application program in a project.
-
24. The method of claim 17 wherein the method further comprises:
using the instance of the application program having customized controls to create a template, the template being used to create additional instances of the application program having customized controls by inheritance from the template.
-
20. A method for providing application instance customization capability to users of a plurality of application programs in a computing environment having at least one common programming tool for creating a customized instance of an application program, the customized instance of the application program containing a user customized control therein, the method comprising the steps of:
-
providing, external to the plurality of application programs, a plurality of extensible control objects, which provide properties for the document object;
selecting, in the customized instance of the application program, a first extensible control object from the plurality of extensible control objects;
providing at least one interface in the common programming tool, the common programming tool interface enabling users to augment the first extensible control object with an extension to provide extender properties and methods supplied by the application program; and
merging the extension and the first extensible control object to create the customized control in the customized instance of the application program by creating a controlling extensible object with a controlling unknown, where the controlling unknown is an external interface to the controlling extensible object, the controlling extensible object holding a private IUnknown pointer to the first extensible control object, the controlling extensible object dynamically exposing interfaces to allow access to the extender properties and methods supplied by the application program for augmenting the first extensible control object, and the controlling extensible object forwarding a query interface request to an interface to the extension when an unrecognized interface is requested of the controlling extensible object in the query interface request.
-
-
25. A system for providing application independent programming of customized controls in a plurality of application programs wherein the customized controls have a functionality that is constant across the plurality of application programs while being customizable by at least one of the plurality of the application programs and/or user provided code, the system comprising:
-
a common programming tool for providing a constant functionality across the plurality of applications;
at least one common programming tool interface accessible to at least one of the plurality of application programs for requesting creation of a first customized control;
a library of extensible controls available through the common programming tool, each of the extensible controls having an interface to interoperate with an extension;
a library of extensions corresponding to at least one application, the library providing application specific methods, properties, and events to at least one extensible control from the plurality of extensible controls;
at least one common programming tool interface accessible to at least one of the plurality of application programs for requesting deletion of a second customized control; and
at least one application program having access to the common programming tool for creating a customized control by selecting an extensible control, an extension augmenting the extensible control, and providing a controlling extensible object with an external interface having a controlling unknown. - View Dependent Claims (26, 27, 28)
-
-
29. A method of providing an extended control in an instance of one of a plurality of application programs having access to an common programming tool via a controls programming interface, the method comprising:
-
using a plurality of interfaces, each interface in the plurality of interfaces comprising a pointer to a table of pointers, each pointer in the table of pointers pointing to a location of an object and wherein furthermore at least one pointer in the table of pointers accesses a function object for discovering interfaces;
providing, for the instance of the application, at least one of the plurality of interfaces;
providing a plurality of controls in association with the common programming tool, wherein furthermore each of the controls corresponds to at least one of the plurality of interfaces;
providing a plurality of extender objects in association with the application program wherein furthermore each of the extender object corresponds to at least one of the plurality of interfaces and wherein furthermore at least one of the plurality of extender objects adds properties, methods, or events to a chosen control through corresponding interfaces; and
using a container corresponding to the instance of the application to merge a first extender object associated with the application program with a first control from the plurality of controls using the interfaces from the plurality of interfaces associated with the first control and the first extender object to form a first extended control in the instance of the application. - View Dependent Claims (30)
-
Specification