Patents by Inventor John A. Shepard

John A. Shepard 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: 8082555
    Abstract: A dynamic proxy object is disclosed that is capable of intercepting calls from a calling object to a target object. The dynamic proxy can imitate the target object so that even though the calling object may be of a different version or type from the target object, it can still communicate with the target object. Specifically, the dynamic proxy can intercept early bound invocation by the calling object, obtain metadata from these invocations, and pass it to an adapter via a set of reflective interfaces. The adapter can also obtain metadata from the target object via late bound invocations, and then compare this metadata to the metadata provided by the dynamic proxy in order to make a determination whether or not the calling object and the target object should be communicating. If so, communication can occur between the calling and target objects in spite of differing versioning or object types.
    Type: Grant
    Filed: February 21, 2006
    Date of Patent: December 20, 2011
    Assignee: Microsoft Corporation
    Inventors: Charles Aaron Hare, John A. Shepard
  • Patent number: 7921409
    Abstract: A Managed Add-in Framework (MAF) proxy generation tool comprises a library analyzer module operable for taking as input either a type library or managed software code assembly of the existing host application, and a proxy code generation module. Also, an additional input XML file that describes changes that a user would like to be made may be received by the tool and data acquired form the inspection of the additional input XML file and the inspection of the other inputs is merged and used to create the code of the proxy to the host object model. The proxy to the host's object model conforms to requirements of the MAF.
    Type: Grant
    Filed: February 28, 2006
    Date of Patent: April 5, 2011
    Assignee: Microsoft Corporation
    Inventors: John A. Shepard, Nirav Y. Shah
  • Patent number: 7908580
    Abstract: A facility is provided for connecting with an application instance. In various embodiments, the facility starts an integrated development environment component, provides an identifier to the integrated development environment component so that the integrated development environment component can indicate the identifier when registering, locates the provided identifier in a registry, and connects to the identified process. The facility can include a running object table component that stores identifications of running application instances and their corresponding monikers, and an application having a provider component that can communicate with an integrated development environment component that, when started by the application, receives an identifier and registers the started integrated development environment with the running object table, the registration including the associated identifier so that the application can identify the started integrated development environment.
    Type: Grant
    Filed: September 7, 2006
    Date of Patent: March 15, 2011
    Assignee: Microsoft Corporation
    Inventors: Paul Stubbs, Philo N. Nordlund, Jackson M. Davis, John A. Shepard
  • Publication number: 20100171748
    Abstract: A motion desktop, including a moving image, may be presented on a display screen of a processing device. Foreground items such as, for example, icons and associated text, or other information, may appear on a surface of the motion desktop. In embodiments consistent with the subject matter of this disclosure, foreground content may be rendered to a composing surface, which may be an alpha-enabled surface capable of presenting translucent items. A motion desktop module may render content for at least a portion of a background of the motion desktop to a respective shared memory, shared with a composer. The composer may periodically copy the rendered content from the shared memory to the composing surface, where the composer may compose and blend a scene from background and foreground content. The composed scene may then be presented as the motion desktop.
    Type: Application
    Filed: March 16, 2010
    Publication date: July 8, 2010
    Applicant: Microsoft Corporation
    Inventors: John Shepard, Felix Cheung, Alex Aben-Athar Kipman
  • Publication number: 20100162266
    Abstract: A remote procedure call channel for interprocess communication in a managed code environment ensures thread-affinity on both sides of an interprocess communication. Using the channel, calls from a first process to a second process are guaranteed to run on a same thread in a target process. Furthermore, calls from the second process back to the first process will also always execute on the same thread. An interprocess communication manager that allows thread affinity and reentrancy is able to correctly keep track of the logical thread of execution so calls are not blocked in unmanaged hosts. Furthermore, both unmanaged and managed hosts are able to make use of transparent remote call functionality provided by an interprocess communication manager for the managed code environment.
    Type: Application
    Filed: March 8, 2010
    Publication date: June 24, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Jackson M. Davis, John A. Shepard
  • Patent number: 7725873
    Abstract: A Managed Add-in Framework (MAF) proxy generation tool comprises a library analyzer module operable for taking as input either a type library or managed software code assembly of the existing host application, and a proxy code generation module. Also, an additional input XML file that describes changes that a user would like to be made may be received by the tool and data acquired form the inspection of the additional input XML file and the inspection of the other inputs is merged and used to create the code of the proxy to the host object model. The proxy to the host's object model conforms to requirements of the MAF.
    Type: Grant
    Filed: February 28, 2006
    Date of Patent: May 25, 2010
    Assignee: Microsoft Corporation
    Inventors: John A. Shepard, Nirav Y. Shah
  • Patent number: 7712047
    Abstract: A motion desktop, including a moving image, may be presented on a display screen of a processing device. Foreground items such as, for example, icons and associated text, or other information, may appear on a surface of the motion desktop. In embodiments consistent with the subject matter of this disclosure, foreground content may be rendered to a composing surface, which may be an alpha-enabled surface capable of presenting translucent items. A motion desktop module may render content for at least a portion of a background of the motion desktop to a respective shared memory, shared with a composer. The composer may periodically copy the rendered content from the shared memory to the composing surface, where the composer may compose and blend a scene from background and foreground content. The composed scene may then be presented as the motion desktop.
    Type: Grant
    Filed: January 3, 2007
    Date of Patent: May 4, 2010
    Assignee: Microsoft Corporation
    Inventors: John Shepard, Felix Cheung, Alex Aben-Athar Kipman
  • Patent number: 7676811
    Abstract: A remote procedure call channel for interprocess communication in a managed code environment ensures thread-affinity on both sides of an interprocess communication. Using the channel, calls from a first process to a second process are guaranteed to run on a same thread in a target process. Furthermore, calls from the second process back to the first process will also always execute on the same thread. An interprocess communication manager that allows thread affinity and reentrancy is able to correctly keep track of the logical thread of execution so calls are not blocked in unmanaged hosts. Furthermore, both unmanaged and managed hosts are able to make use of transparent remote call functionality provided by an interprocess communication manager for the managed code environment.
    Type: Grant
    Filed: March 23, 2006
    Date of Patent: March 9, 2010
    Assignee: Microsoft Corporation
    Inventors: Jackson M. Davis, John A. Shepard
  • Publication number: 20090263761
    Abstract: A denture retention system includes a denture and an abutment. The denture has an inner channel with an elastic liner having shaped cavities. The cavities have a shaft, a radially outwardly extending ledge surface at the inner end of the shaft and an opening at the outer end of the shaft. The abutment has a shaft portion, a head portion at one end of the shaft portion and a threaded portion at the other end of the shaft portion. The head portion has an undercut surface that extends radially outwardly from the shaft portion. The ledge surface and undercut surfaces overlap and engage one another to retain the denture in the cavity. The threaded part of the abutment threads into an implant or implants into a jaw. The cavity expands when the abutment is inserted or removed from the cavity, and contracts after insertion.
    Type: Application
    Filed: April 16, 2008
    Publication date: October 22, 2009
    Inventor: JOHN SHEPARD
  • 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
  • Publication number: 20080163060
    Abstract: A motion desktop, including a moving image, may be presented on a display screen of a processing device. Foreground items such as, for example, icons and associated text, or other information, may appear on a surface of the motion desktop. In embodiments consistent with the subject matter of this disclosure, foreground content may be rendered to a composing surface, which may be an alpha-enabled surface capable of presenting translucent items. A motion desktop module may render content for at least a portion of a background of the motion desktop to a respective shared memory, shared with a composer. The composer may periodically copy the rendered content from the shared memory to the composing surface, where the composer may compose and blend a scene from background and foreground content. The composed scene may then be presented as the motion desktop.
    Type: Application
    Filed: January 3, 2007
    Publication date: July 3, 2008
    Applicant: Microsoft Corporation
    Inventors: John Shepard, Felix Cheung, Alex Aben-Athar Kipman
  • Publication number: 20080127055
    Abstract: A facility is provided for enabling an application proxy that is capable of customizing an integrated development environment to execute in-process with the integrated development environment. In various embodiments, the facility loads a project file, determines whether the project file indicates an application proxy, and when the project file indicates an application proxy, loads the application proxy so that the application proxy can customize the integrated development environment based on configuration settings. In various embodiments, the facility includes a project file associated with an application, an application proxy component, and an integrated development environment that loads the application proxy component when loading the project file so that the application proxy component can handle communications between the integrated development environment and the application to customize the integrated development environment for use with the application.
    Type: Application
    Filed: September 7, 2006
    Publication date: May 29, 2008
    Applicant: Microsoft Corporation
    Inventors: Jackson M. Davis, Paul Stubbs, John A. Shepard
  • Publication number: 20080127053
    Abstract: A facility is provided for controlling application features. In various embodiments, the facility assembles an indication of features, starts a controlled application, and provides the assembled indication of features to the controlled application so that the controlled application can disable a feature of the controlled application. The facility can include a controlling application that is adapted for assembling a set of tokens that identify features by adding or removing tokens when a user of the controlling application selects a command associated with the controlling application, and a controlled application that, when invoked by the controlling application and provided the assembled set of tokens, controls a feature of the controlled application based on the assembled set of tokens.
    Type: Application
    Filed: September 7, 2006
    Publication date: May 29, 2008
    Applicant: Microsoft Corporation
    Inventors: Paul Stubbs, Eric S. Schnepp, Peter J. Torr, John A. Shepard
  • Publication number: 20080127054
    Abstract: A facility is provided for connecting with an application instance. In various embodiments, the facility starts an integrated development environment component, provides an identifier to the integrated development environment component so that the integrated development environment component can indicate the identifier when registering, locates the provided identifier in a registry, and connects to the identified process. The facility can include a running object table component that stores identifications of running application instances and their corresponding monikers, and an application having a provider component that can communicate with an integrated development environment component that, when started by the application, receives an identifier and registers the started integrated development environment with the running object table, the registration including the associated identifier so that the application can identify the started integrated development environment.
    Type: Application
    Filed: September 7, 2006
    Publication date: May 29, 2008
    Applicant: Microsoft Corporation
    Inventors: Paul Stubbs, Philo N. Nordlund, Jackson M. Davis, John A. Shepard
  • 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
  • Publication number: 20070234312
    Abstract: A Managed Add-in Framework (MAF) proxy generation tool comprises a library analyzer module operable for taking as input either a type library or managed software code assembly of the existing host application, and a proxy code generation module. Also, an additional input XML file that describes changes that a user would like to be made may be received by the tool and data acquired form the inspection of the additional input XML file and the inspection of the other inputs is merged and used to create the code of the proxy to the host object model. The proxy to the host's object model conforms to requirements of the MAF.
    Type: Application
    Filed: February 28, 2006
    Publication date: October 4, 2007
    Applicant: Microsoft Corporation
    Inventors: John Shepard, Nirav Shah
  • Publication number: 20070234329
    Abstract: A Managed Add-in Framework (MAF) proxy generation tool comprises a library analyzer module operable for taking as input either a type library or managed software code assembly of the existing host application, and a proxy code generation module. Also, an additional input XML file that describes changes that a user would like to be made may be received by the tool and data acquired form the inspection of the additional input XML file and the inspection of the other inputs is merged and used to create the code of the proxy to the host object model. The proxy to the host's object model conforms to requirements of the MAF.
    Type: Application
    Filed: February 28, 2006
    Publication date: October 4, 2007
    Applicant: Microsoft Corporation
    Inventors: John Shepard, Nirav Shah
  • Publication number: 20070226752
    Abstract: A remote procedure call channel for interprocess communication in a managed code environment ensures thread-affinity on both sides of an interprocess communication. Using the channel, calls from a first process to a second process are guaranteed to run on a same thread in a target process. Furthermore, calls from the second process back to the first process will also always execute on the same thread. An interprocess communication manager that allows thread affinity and reentrancy is able to correctly keep track of the logical thread of execution so calls are not blocked in unmanaged hosts. Furthermore, both unmanaged and managed hosts are able to make use of transparent remote call functionality provided by an interprocess communication manager for the managed code environment.
    Type: Application
    Filed: March 23, 2006
    Publication date: September 27, 2007
    Applicant: Microsoft Corporation
    Inventors: Jackson Davis, John Shepard
  • Publication number: 20070209043
    Abstract: A dynamic proxy object is disclosed that is capable of intercepting calls from a calling object to a target object. The dynamic proxy can imitate the target object so that even though the calling object may be of a different version or type from the target object, it can still communicate with the target object. Specifically, the dynamic proxy can intercept early bound invocation by the calling object, obtain metadata from these invocations, and pass it to an adapter via a set of reflective interfaces. The adapter can also obtain metadata from the target object via late bound invocations, and then compare this metadata to the metadata provided by the dynamic proxy in order to make a determination whether or not the calling object and the target object should be communicating. If so, communication can occur between the calling and target objects in spite of differing versioning or object types.
    Type: Application
    Filed: February 21, 2006
    Publication date: September 6, 2007
    Applicant: Microsoft Corporation
    Inventors: Charles Hare, John Shepard
  • Publication number: 20070073822
    Abstract: A communication technique enables the efficient transmission of data through a low bandwidth and/or time delayed communication link and minimizes the idle time of the communication link by using a deferred acknowledgment of message bundles to temporally pack the communication link. The transmitting system stores messages to be transmitted in a pending message queue and applies a dynamic window to the pending message queue to define a message bundle to be sent through the slow communication link. The transmitting system requests an acknowledgment for at least one message within the bundle, but does not require an acknowledgment for every message within the bundle. Transmitted messages are temporarily stored as outstanding messages in a retransmission queue until the transmitted messages are acknowledged or until a time-out period associated with the messages has lapsed.
    Type: Application
    Filed: September 11, 2006
    Publication date: March 29, 2007
    Applicant: FISHER-ROSEMOUNT SYSTEMS, INC.
    Inventors: William Bennett, Ken Beoughter, Robert Havekost, John Shepard, Dwight Jennings