# US 10,120,735 B2 · Touch application programming interfaces

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

- Number: US 10,120,735 B2
- Document ID: US10120735B2
- Status: Granted
- Kind: B2
- Application number: 14/928,153
- Filed: 2015-10-30
- Published: 2016-10-06
- Granted: 2018-11-06
- Earliest claimed: 2015-03-30
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Brent Gilbert; Benjamin D. Haynes; Tony J. Beeman; Tyler R. Adams
- Web page: https://patentgrep.com/patent/US10120735B2

## CPC

- G06F 9/543: {User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]}
- G06F 3/01: Input arrangements or combined input and output arrangements for interaction between user and computer (G06F3/16 takes precedence)
- G06F 3/038: Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
- G06F 3/041: Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F 3/0488: using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F 9/451: Execution arrangements for user interfaces
- G06F 2203/04808: Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, methods, apparatuses, and software for touch input systems in computing environments are provided herein. In one example, an interaction service positioned logically between an operating system and an application is provided. The interaction service directs a processing system to receive a call from the application referencing an interaction class to attach to a layer in a user interface used for the application, attach the interaction class to the layer in the user interface, listen to the operating system for user input occurring with respect to the layer, and determine per the interaction class what actions to perform in response to the user input.

## Claims

### Claim 1

A computing apparatus comprising:
one or more computer readable storage media;
a processing system operatively coupled with the one or more computer readable storage media; and
program instructions stored on the one or more computer readable storage media comprising an interaction service positioned logically between an operating system and an application, wherein the interaction service, when executed by the processing system, directs the processing system to at least:
receive a call from the application referencing a subset of Application Programming Interface (API) calls from a set of API calls, wherein the application selects the subset of API calls from the set of API calls based on a touch intent determined from a touch down event;
attach the subset of API calls to a layer in a user interface used for the application;
listen to the operating system for user input occurring with respect to the layer; and
determine per the subset of API calls what actions to perform in response to the user input.

### Claim 2 (depends on 1)

The computing apparatus of claim 1, wherein the subset of API calls corresponds
to layer modification instructions indicating at least a set of parameters for handling the response to the user input.

### Claim 3 (depends on 1)

The computing apparatus of claim 1, wherein the user input occurring with respect to the layer comprises a touch input.

### Claim 4 (depends on 1)

The computing apparatus of claim 1, wherein the touch intent is determined based on at least on a relationship of the touch down event with respect to the layer.

### Claim 5 (depends on 1)

The computing apparatus of claim 1, wherein the subset of API calls are determined from a set of Extensive Markup Language (XML) statements compiled into the application which indicate layer modification instructions and sets of parameters for handling the response to the user input.

### Claim 6 (depends on 1)

The computing apparatus of claim 1, comprising further program instructions, when executed by the processing system, direct the processing system to at least:
receive at least one API call from the application that indicates layer modification instructions from among a set of layer modification instructions standardized for a plurality of applications, wherein the at least one API call further comprises parameters for the response to the user input.

### Claim 7 (depends on 1)

The computing apparatus of claim 1, comprising further program instructions, when executed by the processing system, direct the processing system to at least:
responsive to the call from the application, identify platform-specific layer modification routines which are configured to modify the layer according to the subset of APIs calls that are provided in the call from the application.

### Claim 8 (depends on 1)

The computing apparatus of claim 1, comprising further program instructions, when executed by the processing system, direct the processing system to at least:
in response to determining per the subset of APIs calls what actions to perform, modify the layer using the subset of APIs calls according to at least the user input and one or more API calls received from the application that indicate a desired reaction to the user input.

### Claim 9 (depends on 1)

The computing apparatus of claim 1, comprising further program instructions, when executed by the processing system, direct the processing system to at least:
transfer a callback indication to the application responsive to modifications to the layer in response to the user input, where the callback indication prompts the application to perform contextual application user interface changes based at least on the modifications to the layer.

### Claim 10

A method of operating a touch computing apparatus having an interaction service positioned logically between an operating system and an application, the method comprising:
in the interaction service, receiving a call from the application referencing a subset of Application Interface (API) calls from a set of API calls, wherein the application selects the subset of API calls from the set of API calls based on a touch intent determined from a touch down event;
in the interaction service, attaching the subset of APIs calls to a layer in a user interface used for the application;
in the interaction service, listening to the operating system for touch input occurring with respect to the layer; and
in the interaction service, determining per the subset of APIs calls what actions to perform in response to the touch input.

### Claim 11 (depends on 10)

The method of claim 10, wherein the subset of API calls corresponds
to layer modification instructions indicating at least a set of parameters for handling the response to the touch input.

### Claim 12 (depends on 10)

The method of claim 10, wherein the subset of API calls comprise a subset of touch API calls.

### Claim 13 (depends on 10)

The method of claim 10, wherein the touch intent is determined based on at least on a relationship of the touch down event with respect to the layer.

### Claim 14 (depends on 10)

The method of claim 10, wherein the subset of API calls are determined from a set of Extensive Markup Language (XML) statements compiled into the application which indicate layer modification instructions and sets of parameters for handling the response to the touch input.

### Claim 15 (depends on 10)

The method of claim 10, further comprising:
in the interaction service, receiving at least one API call from the application that indicates layer modification instructions from among a set of layer modification instructions standardized for a plurality of applications, wherein the at least one API call further comprises parameters for the response to the touch input.

### Claim 16 (depends on 10)

The method of claim 10, further comprising:
in the interaction service, responsive to the call from the application, identifying platform-specific layer modification routines which are configured to modify the layer according to one or more API calls referencing the selected interaction class that are provided in the call from the application.

### Claim 17 (depends on 10)

The method of claim 10, further comprising:
in the interaction service, in response to determining per the subset of APIs calls what actions to perform, modifying the layer using the subset of APIs calls according to at least the touch input and one or more API calls received from the application that indicate a desired reaction to the touch input.

### Claim 18 (depends on 10)

The method of claim 10, further comprising:
in the interaction service, transferring a callback indication to the application responsive to modifications to the layer in response to the touch input, where the callback indication prompts the application to perform contextual application user interface changes based at least on the modifications to the layer.

### Claim 19

An apparatus comprising:
one or more computer readable storage media;
program instructions stored on the one or more computer readable storage media that, when executed by a processing system, direct the processing system to at least:
receive a call into a subset of API calls from a set of API calls, wherein the the subset of API calls are selected from the set of API calls based on a touch intent determined from a touch down event;
load the subset of APIs calls;
attach the subset of APIs calls to a layer;
listen for pointer input with respect to the layer;
determine per the subset of APIs calls what actions to perform in response to the pointer input.

### Claim 20 (depends on 19)

The apparatus of claim 19, comprising further program instructions, when executed by the processing system, direct the processing system to at least:
receive at least one API call in the call from the application that indicates layer modification instructions and parameters for handling the response to the pointer input;
identify platform-specific layer modification routines which are configured to modify the layer according to the subset of APIs calls identified in the at least one API call;
in response to determining per the subset of APIs calls what actions to perform, modify the layer using the subset of APIs calls according to at least the parameters indicated in the at least one API call.
