Patents by Inventor C. Douglas Hodges
C. Douglas Hodges has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 8327263Abstract: A method and system for retrieving and maintaining presentation data in a presentation cache is provided. In a preferred embodiment, a presentation cache object provides a presentation cache with multiple cache entries. Each entry contains an indication of the format of the presentation data and the presentation data stored in that particular format. In addition, other information, such as the advisees of advisory connections for notification of cache updates, can be maintained. The presentation cache object responds to requests for retrieving source object data by returning presentation data cached within the presentation cache when it is available. In addition, the presentation cache object determines when it should delegate requests to the source object and when it can satisfy them on its own. The presentation cache object can return presentation data to a requesting client program even if the server program implementing the source object is unavailable or not running.Type: GrantFiled: May 24, 2005Date of Patent: December 4, 2012Assignee: Microsoft CorporationInventors: Robert G. Atkinson, Antony S. Williams, Craig H. Wittenberg, Srinivasa R. Koppolu, C. Douglas Hodges
-
Publication number: 20100192121Abstract: A virtual project system is described herein that creates a virtual project to provide information during remote debugging similar to the project information available for local debugging. The virtual project contains each of a document's local and original Uniform Resource Identifiers (URIs) for documents that are downloaded and compiled locally. At debug-time, the virtual project system injects the virtual project with information resolved by the debugger, including the original URI and the locally compiled version of the document. This allows the virtual project to associate the local to original URI mappings so that when the IDE receives symbol information at debug-time and attempts to open the document that has the current debug context, the IDE opens the correct remote document rather than a local copy. This ensures that any changes made by the user during debugging affect the remote document, rather than the temporary local copy.Type: ApplicationFiled: January 23, 2009Publication date: July 29, 2010Applicant: MICROSOFT CORPORATIONInventors: Aditya Unnithan, Sergey Dubinets, C. Douglas Hodges, Stefania I. Crivat, Anton Lapounov
-
Publication number: 20100077324Abstract: User interface functionality in a presentation layer is coupled with data and data processing functionality of an application in a domain-specific layer. A UI-element-factory-registrar supports registration of a UI-element-factory with the domain-specific layer for invoking a UI-element to create a UI-element object. The UI-element object is bound to a domain-specific data-source object. The presentation layer may be asynchronously notified of changes in the data-source object. Data-converter objects may be provided to convert between data formats, e.g., from a native code domain-specific layer format to a managed code presentation layer format.Type: ApplicationFiled: September 23, 2008Publication date: March 25, 2010Applicant: MICROSOFT CORPORATIONInventors: Paul Harrington, Alin Constatin, Matthew Johnson, Jean-Pierre Duplessis, C. Douglas Hodges, Jeffrey David Robison, Christopher James McGuire
-
Patent number: 7685563Abstract: An extensible project system for software development is provided by allowing a flavor, with a specific purpose, to be applied to a base project system. More than one flavor may be applied. Where components are distributed objects, such as where COM (component object model) is used, the project system is assembled by aggregation of a base project object, which contains some data for creating a project system with a flavor object, which modifies the project system. The base project object is the participating object in the aggregation and the flavor object is the controlling object. Multiple flavors may be applied to create a project system intended for multiple purposes, corresponding to the applied flavors.Type: GrantFiled: March 1, 2004Date of Patent: March 23, 2010Assignee: Microsoft CorporationInventors: Rahul Kumar, Joshua Shepard, Kevin Perry, Diane Melde, Izydor Gryko, C. Douglas Hodges, Jemy Huang, Christopher Joseph Burrows, Svetlozar Keremidarski
-
Patent number: 7530079Abstract: A facility is provided for managing application customization. In various embodiments, an application associated with the facility receives an indication of an application identifier that identifies a customized instance of the application, determines whether the customized instance of the application is available and, when the customized instance of the application is available, configures the application to employ a resource associated with the customized instance of the application. The facility can receive an identifier and an indication to update common components of an application, the application having a customized instance of the application; remove components associated with the customized instance of the application; copy common components associated with the application; associate the common components with the received identifier; and apply customizing components that customize the common components of the application to create a customized instance of the application.Type: GrantFiled: September 7, 2006Date of Patent: May 5, 2009Assignee: Microsoft CorporationInventors: Paul Stubbs, Philo N. Nordlund, John A. Shepard, Thomas E. Quinn, C. Douglas Hodges
-
Patent number: 7500248Abstract: A container object decorated with a proxy attribute is intercepted when instantiated at runtime, and a component that is an instance of a type dynamically created at runtime is returned, which implements interfaces corresponding to each of the individual interfaces of the objects extended in the container object by delegating to the extended objects. Alternately, a similar container object, when instantiated at runtime, would return a proxy object which contains a lookup table that maps interfaces to the extended objects within the component. The proxy object intercepts all calls to the container object and redirects them appropriately to the proxy objects corresponding to the extended objects, which may in turn redirect calls appropriately.Type: GrantFiled: April 29, 2003Date of Patent: March 3, 2009Assignee: Microsoft CorporationInventors: Kasy Srinivas, Barend Hermanus Venter, C. Douglas Hodges
-
Patent number: 7472376Abstract: Systems and methods for applying both profile and user customizations to an application user interface are provided. Profile customizations, created for a specialized use or field, are adapted to an application user interface, which has command-menu-toolbar contributions from various add-in modules. The user has access to the customizations through a user interface. Then, as a user is customizing the application, through commands, toolbars, and menus, the user customizations are tagged. A priority and group is assigned to each customization to allow for relative positioning of each customization. The difference between the user's final desired state and a reset state is computed. This difference computation is used to track the changes made to the application and to assist in resets of the customizations.Type: GrantFiled: May 27, 2005Date of Patent: December 30, 2008Assignee: Microsoft CorporationInventors: Aaron T. Burcham, Paul S. Harrington, C. Douglas Hodges, Rahul S. Kumar, James Kal Yu Lau, Timothy Rand Sullivan, Jason J. Weber
-
Patent number: 7418697Abstract: Specific tasks associated with debugging are performed in the background, prior to a user of an application development tool invoking the debugger. The tasks including (1) starting a hosting process, (2) loading a hosted runtime environment (e.g., .NET runtime) in the process, and (3) attaching a debugger to the hosting process, are performed in the background before the user commences debugging. Once the user invokes the debugger, the user's application is executed and debugged. Thus, the perceived time to start debugging is greatly reduced.Type: GrantFiled: July 25, 2003Date of Patent: August 26, 2008Assignee: Microsoft CorporationInventors: Izydor Gryko, Michal Sampson, Brian Crawford, C. Douglas Hodges, Michael Eng, Adam Krantz, Eric Carter, Elliot Omiya, Thomas Quinn, John Rivard
-
Publication number: 20080066051Abstract: A facility is provided for managing application customization. In various embodiments, an application associated with the facility receives an indication of an application identifier that identifies a customized instance of the application, determines whether the customized instance of the application is available and, when the customized instance of the application is available, configures the application to employ a resource associated with the customized instance of the application. The facility can receive an identifier and an indication to update common components of an application, the application having a customized instance of the application; remove components associated with the customized instance of the application; copy common components associated with the application; associate the common components with the received identifier; and apply customizing components that customize the common components of the application to create a customized instance of the application.Type: ApplicationFiled: September 7, 2006Publication date: March 13, 2008Applicant: Microsoft CorporationInventors: Paul Stubbs, Philo N. Nordlund, John A. Shepard, Thomas E. Quinn, C. Douglas Hodges
-
Patent number: 7293232Abstract: A source code editor is used to develop multilanguage documents while providing the advanced editing functionality of secondary editors and without requiring the programmer to explicitly open and interface with the secondary editors. The multilanguage document is presented to the user in a primary application view of the primary editor. Code segments written in different languages are identified and sent to the appropriate secondary editors, which in turn create secondary documents that are transparent to the programmer. As edits are made to the primary application view of the document, the edits are replicated by the secondary editors behind the scene. Functionality that is enabled by the secondary editors, such as syntax coloring, auto-completion, and validation is identified by the primary editor and replicated in the primary application view, so as to appear as if the primary editor is inherently configured with the leveraged functionality of the secondary editors.Type: GrantFiled: November 26, 2003Date of Patent: November 6, 2007Assignee: Microsoft CorporationInventors: Mikhail Arkhipov, Joshua Israel Kaplan, Timothy Michael Mc Bride, Li Zhang, C. Douglas Hodges, Elliot H. Omiya
-
Publication number: 20040221293Abstract: A container object decorated with a proxy attribute is intercepted when instantiated at runtime, and a component that is an instance of a type dynamically created at runtime is returned, which implements interfaces corresponding to each of the individual interfaces of the objects extended in the container object by delegating to the extended objects. Alternately, a similar container object, when instantiated at runtime, would return a proxy object which contains a lookup table that maps interfaces to the extended objects within the component. The proxy object intercepts all calls to the container object and redirects them appropriately to the proxy objects corresponding to the extended objects, which may in turn redirect calls appropriately.Type: ApplicationFiled: April 29, 2003Publication date: November 4, 2004Applicant: MICROSOFT CORPORATIONInventors: Kasy Srinivas, Barend Hermanus Venter, C. Douglas Hodges
-
Patent number: 6708196Abstract: A method and system for retrieving and maintaining presentation data in a presentation cache is provided. In a preferred embodiment, a presentation cache object provides a presentation cache with multiple cache entries. Each entry contains an indication of the format of the presentation data and the presentation data stored in that particular format. In addition, other information, such as the advisees of advisory connections for notification of cache updates, can be maintained. The presentation cache object responds to requests for retrieving source object data by returning presentation data cached within the presentation cache when it is available. In addition, the presentation cache object determines when it should delegate requests to the source object and when it can satisfy them on its own. The presentation cache object can return presentation data to a requesting client program even if the server program implementing the source object is unavailable or not running.Type: GrantFiled: December 14, 1999Date of Patent: March 16, 2004Assignee: Microsoft CorporationInventors: Robert G. Atkinson, Antony S. Williams, Craig Wittenberg, Srinivasa R. Koppolu, C. Douglas Hodges
-
Patent number: 6658490Abstract: The present invention provides a method and system for multi-threaded processing that is an improvement over conventional systems. The system of the present invention comprises multiple threads of execution, multiple apartments, shared data, and a concurrency management component. The threads of execution run independently and each occupy one apartment. The apartments contain objects that have methods to perform operations. The shared data contains data that is accessible by all threads within the process. The concurrency management mechanism performs processing so that the multiple threads can execute concurrently in a reliable and robust manner. In an alternative system of the present invention, the threads are separate from the apartments and the threads execute within the apartments to perform processing. After performing the processing, the thread exits the apartment so that the apartment may be occupied by another thread.Type: GrantFiled: June 8, 1999Date of Patent: December 2, 2003Assignee: Microsoft CorporationInventors: Antonty S. Williams, Alexander A. Mitchell, Robert G. Atkinson, C. Douglas Hodges, Johann Posch, Craig H Wittenberg
-
Patent number: 6625803Abstract: The present invention provides a method, apparatus, and medium for adding text and text-based components to a Web page hosted on a server. A control, which is run at the designing time of the web page (design-time), when implemented, writes HTML information to a created web page. The created HTML information may include text and other text based components (client and server scripting, applets, ActiveX controls, JAVA scripting, and other components). Through the use of OLF, the controls incorporate author-friendly capabilities including in-place editing, property sheets, and persistence. Through the use of these controls, authors may automate the web page generation process and eliminate redundant coding.Type: GrantFiled: February 8, 2000Date of Patent: September 23, 2003Assignee: Microsoft Corp.Inventors: Jay Loren Massena, C. Douglas Hodges
-
Patent number: 6526454Abstract: A method and system for aggregating objects within a computer system are provided. In a preferred embodiment, the method aggregates an enclosed object within an enclosing object. The enclosed object has an object management interface and an external interface, while the enclosing object has a controlling object management interface. The controlling object management interface and the external interface of the enclosed object have query function members for receiving an identifier of an interface and for returning a reference to the identified interface. A preferred embodiment creates an instance of an enclosing object and an object to be enclosed. In static aggregation, the controlling object management interface of the enclosing object knows in advance how to return an identifier to the external interface of the enclosed object. In dynamic aggregation, an object to be enclosed is added to the enclosing object after the enclosing object is instantiated.Type: GrantFiled: May 16, 2001Date of Patent: February 25, 2003Assignee: Microsoft CorporationInventors: Antony S. Williams, C. Douglas Hodges, Srinivasa R. Koppolu
-
Patent number: 6446135Abstract: A method and system for querying and executing commands of an application program are provided. A caller application program may dispatch a request for status information to a callee application program for one or more commands. That is, the caller application program can determine which commands a callee application program provides and determine the status of each of those commands. In particular, the caller application program may request a bit representation of the status of a command, may request a textual representation of a status of the command, or may request a textual representation of the name of a command. In addition, the caller application program may dispatch a request to execute a command to the callee application program. Moreover, the caller application program may specify whether the callee application program should request user input before executing the command.Type: GrantFiled: March 5, 1996Date of Patent: September 3, 2002Assignee: Microsoft CorporationInventors: Srinivasa R. Koppolu, C. Douglas Hodges
-
Patent number: 6412020Abstract: A method and system for aggregating objects within a computer system are provided. In a preferred embodiment, the method aggregates an enclosed object within an enclosing object. The enclosed object has an object management interface and an external interface, while the enclosing object has a controlling object management interface. The controlling object management interface and the external interface of the enclosed object have query function members for receiving an identifier of an interface and for returning a reference to the identified interface. A preferred embodiment creates an instance of an enclosing object and an object to be enclosed. In static aggregation, the controlling object management interface of the enclosing object knows in advance how to return an identifier to the external interface of the enclosed object. In dynamic aggregation, an object to be enclosed is added to the enclosing object after the enclosing object is instantiated.Type: GrantFiled: June 16, 1998Date of Patent: June 25, 2002Assignee: Microsoft CorporationInventors: Paul Leach, Antony S. Williams, Edward Jung, C. Douglas Hodges, Srinivasa R. Koppolu, Barry B. MacKichan, Craig Wittenberg
-
Patent number: 6393437Abstract: A method and apparatus for allowing multiple developers of software applications working in client/server computing network to remotely save, test and debug project files such as web pages. The client computer is capable of emulating server side operations to allow the developer to locally test changes to project files before they are saved on the server. The client computer maintains an accurate view of the overall project, but without having to locally copy the entire software project, by storing file information relating to the software project including, for example, metadata, link information, and BOT replacements, and/or a directory structure of the files and folders in the software project that mirrors the directory structure of the software project on the server. Various features include providing developers with the ability to check out, modify and debug files concurrently with other developers, and merging changes made by different developers to the same file.Type: GrantFiled: January 27, 1998Date of Patent: May 21, 2002Assignee: Microsoft CorporationInventors: Eric K. Zinda, Zhenglei Pan, David C. Johnson, William E. Hiebert, Brian R. Marshall, C. Douglas Hodges
-
Publication number: 20020040410Abstract: A method and system for aggregating objects within a computer system are provided. In a preferred embodiment, the method aggregates an enclosed object within an enclosing object. The enclosed object has an object management interface and an external interface, while the enclosing object has a controlling object management interface. The controlling object management interface and the external interface of the enclosed object have query function members for receiving an identifier of an interface and for returning a reference to the identified interface. A preferred embodiment creates an instance of an enclosing object and an object to be enclosed. In static aggregation, the controlling object management interface of the enclosing object knows in advance how to return an identifier to the external interface of the enclosed object. In dynamic aggregation, an object to be enclosed is added to the enclosing object after the enclosing object is instantiated. Once aggregated.Type: ApplicationFiled: May 16, 2001Publication date: April 4, 2002Inventors: Paul J. Leach, Antony S. Williams, Edward Jung, C. Douglas Hodges, Srinivasa R. Koppolu, Barry B. Mackichan, Craig Wittenberg
-
Patent number: 6263492Abstract: A componentizing object designer is used to define a componentization of visual forms and other object-oriented technologies. The componentized object designer includes a set of tightly integrated protocols enabling Component Object Model (COM) objects to replace standard built-in visual form and other objects. The componentized object designer allows the design-time object and the run-time object to differ in implementation. The componentized object designer allows class identifiers for the run-time objects which are different than design-time objects. With a different class identifier, the run-time object can be saved as an object which is radically different from the design-time object. This enables the run-time object to be stored in a different object library than the design-time object. The componentized object designer allows for different persistence formats to be saved for run-time objects.Type: GrantFiled: June 6, 1997Date of Patent: July 17, 2001Assignee: Microsoft CorporationInventors: Christopher Lee Fraley, Michael Halcoussis, Christopher Alan Zimmerman, Alan W. Carter, Scott Michael Wiltamuth, Gary S. Burd, C. Douglas Hodges