# US 7,412,665 B2 · Menu management in an OLE document environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,412,665 B2
- Document ID: US7412665B2
- Status: Granted
- Kind: B2
- Application number: 10/778,497
- Filed: 2004-02-13
- Published: 2005-08-18
- Granted: 2008-08-12
- Earliest claimed: 2004-02-13
- Assignees: Microsoft Corporation
- Inventors: Reza Chitsaz; Svetlana Loksh; Quan Liu; Thomas E. Quinn, Jr.
- Web page: https://patentgrep.com/patent/US7412665B2

## CPC

- G06F 9/451: Execution arrangements for user interfaces
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system that facilitates menu management in an OLE document environment. The system includes a menu component that receives a server menu of a server application with a container menu of a container application. The menu component detects a menu conflict between the menus. The system further includes a conflict component that resolves the conflict between a server menu item of the server menu and a container menu item of the container menu, wherein at least one of the server menu item and the container menu item is modified to be unique from the other. The conflict component then outputs the integrated final menu.

## Claims

### Claim 1

A system embodied on a computer readable storage medium that facilitates menu management in an Object Linking and Embedding (OLE) document environment, comprising:
a menu component that integrates a server menu of a server application with a container menu of a container application;
a conflict component that resolves a conflict between at least one server menu item of the server menu and at least one container menu item of the container menu, wherein at least one of the server menu item and the container menu item is modified to be unique from the other, the conflict component automatically determines when to signal the menu component to change menu integration of the server menu and container menu, wherein the conflict component makes the determination based upon a user specified preference of a predetermined number of conflicting menu items to be modified, the menu component changes menu integration upon being signaled by the conflict component; and
a merge component to automatically infer a revision to an integrated menu, wherein the inference is based upon observation of a user's activity with at least one of the server application or container application, wherein the inference is based upon at least the user accessing a sub-menu item more often than other menu items, wherein the sub-menu item is moved to a root level of a revised integrated menu.

### Claim 2 (depends on 1)

The system of claim 1, one of the server menu and the container menu is presented as a root-level menu while the other is presented as a submenu to the root-level menu.

### Claim 3 (depends on 1)

The system of claim 1, the server menu is presented as cascading from the container menu.

### Claim 4 (depends on 1)

The system of claim 1, the container menu item is modified and placed at a root level with the server menu item.

### Claim 5 (depends on 1)

The system of claim 1 is employed in an object linking and embedding (OLE) architecture.

### Claim 6 (depends on 1)

The system of claim 1, the container application tags the container menu item with a prefix that identifies the menu item as associated with the container application.

### Claim 7 (depends on 6)

The system of claim 6, the prefix is used in a SetMenu call.

### Claim 8 (depends on 1)

The system of claim 1, the container application tags the container menu item with a prefix that identifies the menu item as associated with the container application, the tagged menu item is added to an hmenuShared menu.

### Claim 9 (depends on 1)

The system of claim 1, the container application creates at least one of a replacement composite menu and a menu descriptor.

### Claim 10 (depends on 9)

The system of claim 9, the replacement composite menu and the menu descriptor are created only when the conflict is detected.

### Claim 11 (depends on 1)

The system of claim 1, the container application calls the replacement composite menu and the menu descriptor for merging.

### Claim 12 (depends on 1)

The system of claim 1, the container application forwards a server command to the server application.

### Claim 13 (depends on 1)

The system of claim 1, further comprising a classifier component that automatically signals the menu component to modify the container menu in a predetermined way.

### Claim 14 (depends on 13)

The system of claim 13, the classifier component is a support vector machine.

### Claim 15 (depends on 1)

A computer employing the system of claim 1.

### Claim 16 (depends on 1)

The system of claim 1, the container menu is free floating.

### Claim 17

A system embodied on a computer readable storage medium that facilitates menu management in an Object Linking and Embedding (OLE) OLE environment, comprising a merge component that receives a container menu and a server menu, detects one or more conflicts between the container menu and the server menu, resolves the conflicts, and outputs an integrated menu, the merge component automatically changes menu integration of the server menu and container menu upon a number of conflicting menu items meeting a user preference of a predetermined number of conflicting menu items to be modified, wherein at least one of the server menu item and the container menu item is modified to be unique from the other, the merge component automatically infers a revision to the integrated menu, wherein the inference is based upon observation of a user's activity with at least one of the server application or container application, wherein the inference is based upon at least the user accessing a sub-menu item more often than other menu items, wherein the sub-menu item is moved to a root level of a integrated menu.

### Claim 18 (depends on 17)

The system of claim 17, the container menu is presented as a root-level menu while the server menu is presented as cascading from the container menu.

### Claim 19 (depends on 17)

The system of claim 17, the container menu item is modified, and a menu item of the server menu is integrated into the container menu at a root level.

### Claim 20 (depends on 17)

The system of claim 17, the container menu is identified by a change to associated graphical indicia, which change comprises at least one of adding coloration, adding prefix information, adding suffix information, and adding one or more additional descriptive words.

### Claim 21 (depends on 17)

The system of claim 17, the server menu associated at a root-level is removed from the integrated final menu.

### Claim 22 (depends on 17)

The system of claim 17, the conflict between the server menu and the container menu is a conflicting menu item, which conflicting menu item of the container menu includes a menu item of the server menu associated with the conflicting menu item.

### Claim 23 (depends on 17)

The system of claim 17, the server menu is presented as cascading from the container menu.

### Claim 24

A method of managing a menu in an Object Linking and Embedding (OLE) document environment, comprising:
receiving a server menu of a server application and a container menu of a container application;
comparing the server menu and the container menu;
detecting one or more conflicting menu items between the server menu and the container menu;
merging the server menu and the container menu;
modifying one of the server menu and the container menu to resolve the one or more conflicts upon the number of conflicts meeting a user preference of a predetermined number of conflicting menu items to be modified; and
revising the merged menus based upon automatically inferring when to revise the merged server menu and container menu, wherein the inference is based upon observation of a user's activity with at least one of the server application or container application, wherein the inference is based upon at least the user accessing a sub-menu item more often than other menu items, wherein the sub-menu item is moved to a root level of a revised merged menus.

### Claim 25 (depends on 24)

The method of claim 24, the conflicting menu item is one that is other than a Help menu item.

### Claim 26 (depends on 24)

The method of claim 24, further comprising tagging each menu item of the container menu with unique information.

### Claim 27 (depends on 26)

The method of claim 26, the unique information comprises at least one of coloration of graphical indicia of the menu item, prefix information, suffix information, and one or more additional descriptive words.

### Claim 28 (depends on 24)

The method of claim 24, further comprising creating a replacement composite menu and a menu descriptor.

### Claim 29 (depends on 28)

The method of claim 28, the composite menu is associated with hmenuShared, and the descriptor is associated with holemenu.

### Claim 30

A computer implemented method of managing a menu in an Object Linking and Embedding (OLE) environment, the method comprising:
receiving a server menu of a server application and a container menu of a container application;
comparing the server menu and the container menu;
detecting one or more conflicting items between the server menu and the container menu;
tagging the container menu with unique information;
integrating the server menu into the container menu in a cascaded fashion; and
modifying one of the server menu and the container menu to resolve the one or more conflicts upon the number of conflicts meeting a user preference of a predetermined number of conflicting menu items to be modified;
revising the integrated menus based upon automatically inferring when to revise the integrated server menu and container menu, the inference based upon observation of a user's activity with the integrated menu, wherein the inference is based upon at least the user accessing a sub-menu item more often than other menu items, wherein the sub-menu item is moved to a root level of a revised integrated menu.

### Claim 31 (depends on 30)

The method of claim 30, further comprising:
receiving server application commands; and
forwarding the server application commands to the server application.

### Claim 32

A system embodied on a computer readable storage medium that facilitates managing a menu in an Object Linking and Embedding (OLE) environment, comprising:
means for receiving a server menu of a server application and a container menu of a container application;
means for comparing the server menu and the container menu;
means for detecting one or more conflicting items between the server menu and the container menu;
means for integrating the server menu into the container menu in a cascaded fashion;
means for modifying one of the server menu and the container menu to resolve the one or more conflicts upon the number of conflicts meeting a user preference of a predetermined number of conflicting menu items to be modified; and
means for revising the integrated menus based upon automatically inferring when to revise the integrated server menu and container menu, the inference based upon observation of a user's activity with the integrated menu, wherein the inference is based upon at least the user accessing a sub-menu item more often than other menu items, wherein the sub-menu item is moved to a root level of a revised integrated menu.
