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: 8327263
    Abstract: 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: Grant
    Filed: May 24, 2005
    Date of Patent: December 4, 2012
    Assignee: Microsoft Corporation
    Inventors: Robert G. Atkinson, Antony S. Williams, Craig H. Wittenberg, Srinivasa R. Koppolu, C. Douglas Hodges
  • Publication number: 20100192121
    Abstract: 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: Application
    Filed: January 23, 2009
    Publication date: July 29, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Aditya Unnithan, Sergey Dubinets, C. Douglas Hodges, Stefania I. Crivat, Anton Lapounov
  • Publication number: 20100077324
    Abstract: 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: Application
    Filed: September 23, 2008
    Publication date: March 25, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Paul Harrington, Alin Constatin, Matthew Johnson, Jean-Pierre Duplessis, C. Douglas Hodges, Jeffrey David Robison, Christopher James McGuire
  • Patent number: 7685563
    Abstract: 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: Grant
    Filed: March 1, 2004
    Date of Patent: March 23, 2010
    Assignee: Microsoft Corporation
    Inventors: Rahul Kumar, Joshua Shepard, Kevin Perry, Diane Melde, Izydor Gryko, C. Douglas Hodges, Jemy Huang, Christopher Joseph Burrows, Svetlozar Keremidarski
  • Patent number: 7530079
    Abstract: 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: Grant
    Filed: September 7, 2006
    Date of Patent: May 5, 2009
    Assignee: Microsoft Corporation
    Inventors: Paul Stubbs, Philo N. Nordlund, John A. Shepard, Thomas E. Quinn, C. Douglas Hodges
  • Patent number: 7500248
    Abstract: 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: Grant
    Filed: April 29, 2003
    Date of Patent: March 3, 2009
    Assignee: Microsoft Corporation
    Inventors: Kasy Srinivas, Barend Hermanus Venter, C. Douglas Hodges
  • Patent number: 7472376
    Abstract: 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: Grant
    Filed: May 27, 2005
    Date of Patent: December 30, 2008
    Assignee: Microsoft Corporation
    Inventors: Aaron T. Burcham, Paul S. Harrington, C. Douglas Hodges, Rahul S. Kumar, James Kal Yu Lau, Timothy Rand Sullivan, Jason J. Weber
  • Patent number: 7418697
    Abstract: 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: Grant
    Filed: July 25, 2003
    Date of Patent: August 26, 2008
    Assignee: Microsoft Corporation
    Inventors: Izydor Gryko, Michal Sampson, Brian Crawford, C. Douglas Hodges, Michael Eng, Adam Krantz, Eric Carter, Elliot Omiya, Thomas Quinn, John Rivard
  • Publication number: 20080066051
    Abstract: 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: Application
    Filed: September 7, 2006
    Publication date: March 13, 2008
    Applicant: Microsoft Corporation
    Inventors: Paul Stubbs, Philo N. Nordlund, John A. Shepard, Thomas E. Quinn, C. Douglas Hodges
  • Patent number: 7293232
    Abstract: 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: Grant
    Filed: November 26, 2003
    Date of Patent: November 6, 2007
    Assignee: Microsoft Corporation
    Inventors: Mikhail Arkhipov, Joshua Israel Kaplan, Timothy Michael Mc Bride, Li Zhang, C. Douglas Hodges, Elliot H. Omiya
  • Publication number: 20040221293
    Abstract: 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: Application
    Filed: April 29, 2003
    Publication date: November 4, 2004
    Applicant: MICROSOFT CORPORATION
    Inventors: Kasy Srinivas, Barend Hermanus Venter, C. Douglas Hodges
  • Patent number: 6708196
    Abstract: 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: Grant
    Filed: December 14, 1999
    Date of Patent: March 16, 2004
    Assignee: Microsoft Corporation
    Inventors: Robert G. Atkinson, Antony S. Williams, Craig Wittenberg, Srinivasa R. Koppolu, C. Douglas Hodges
  • Patent number: 6658490
    Abstract: 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: Grant
    Filed: June 8, 1999
    Date of Patent: December 2, 2003
    Assignee: Microsoft Corporation
    Inventors: Antonty S. Williams, Alexander A. Mitchell, Robert G. Atkinson, C. Douglas Hodges, Johann Posch, Craig H Wittenberg
  • Patent number: 6625803
    Abstract: 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: Grant
    Filed: February 8, 2000
    Date of Patent: September 23, 2003
    Assignee: Microsoft Corp.
    Inventors: Jay Loren Massena, C. Douglas Hodges
  • Patent number: 6526454
    Abstract: 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: Grant
    Filed: May 16, 2001
    Date of Patent: February 25, 2003
    Assignee: Microsoft Corporation
    Inventors: Antony S. Williams, C. Douglas Hodges, Srinivasa R. Koppolu
  • Patent number: 6446135
    Abstract: 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: Grant
    Filed: March 5, 1996
    Date of Patent: September 3, 2002
    Assignee: Microsoft Corporation
    Inventors: Srinivasa R. Koppolu, C. Douglas Hodges
  • Patent number: 6412020
    Abstract: 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: Grant
    Filed: June 16, 1998
    Date of Patent: June 25, 2002
    Assignee: Microsoft Corporation
    Inventors: Paul Leach, Antony S. Williams, Edward Jung, C. Douglas Hodges, Srinivasa R. Koppolu, Barry B. MacKichan, Craig Wittenberg
  • Patent number: 6393437
    Abstract: 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: Grant
    Filed: January 27, 1998
    Date of Patent: May 21, 2002
    Assignee: Microsoft Corporation
    Inventors: Eric K. Zinda, Zhenglei Pan, David C. Johnson, William E. Hiebert, Brian R. Marshall, C. Douglas Hodges
  • Publication number: 20020040410
    Abstract: 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: Application
    Filed: May 16, 2001
    Publication date: April 4, 2002
    Inventors: Paul J. Leach, Antony S. Williams, Edward Jung, C. Douglas Hodges, Srinivasa R. Koppolu, Barry B. Mackichan, Craig Wittenberg
  • Patent number: 6263492
    Abstract: 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: Grant
    Filed: June 6, 1997
    Date of Patent: July 17, 2001
    Assignee: Microsoft Corporation
    Inventors: Christopher Lee Fraley, Michael Halcoussis, Christopher Alan Zimmerman, Alan W. Carter, Scott Michael Wiltamuth, Gary S. Burd, C. Douglas Hodges