IP Library Granted Patent US 7,468,801
Granted Patent B2
US 7,468,801 · App. 10/646,473 · Granted Dec 23, 2008

Electronic ink processing

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,468,801
App. No.
10/646,473
Granted
Dec 23, 2008
Kind
B2
Abstract

An application programming interface instantiates an ink analyzer object that receives document data for a document containing electronic ink content from a software application hosting the document and running on a first processing thread. The ink analyzer object then employs the first thread to make a copy of the document data, provides the copy of the document data to an electronic ink analysis process, and returns control of the first processing thread to the analysis process. After the analysis process has analyzed the electronic ink, the ink analyzer object reconciles the results of the analysis process with current document data for the document.

Claims (50)

1. An application programming interface for analyzing electronic ink, comprising:

an analysis context object that maintains document data for a document containing electronic ink content that is hosted by a software application running on a first processing thread; and

an ink analyzer object that

employs the first processing thread to make a copy of the document data,

provides the copy of the document data to an electronic ink analysis process, and

returns control of the first processing thread to the software application wherein the software application is configured to receive new document data while the electronic ink analysis process is being performed.

2. The application programming interface recited in claim 1 , wherein the ink analyzer object reconciles the results of the analysis process with current document data for the document.

3. The application programming interface recited in claim 1 , wherein the ink analyzer object makes a second copy of the document data for use in reconciling the results of the analysis process with current document data for the document.

4. An application programming interface comprising:

an ink analyzer object that

receives document data for a document containing electronic ink content from a software application hosting the document and running on a first processing thread

employs the first thread to make a copy of the document data,

provides the copy of the document data to an electronic ink analysis process, returns control of the first processing thread to the software application, wherein the software application is configured to receive new document data while the electronic ink analysis process is being performed, and

reconciles the results of the analysis process with current document data for the document.

5. A method comprising:

receiving a copy of data of a document, wherein a first processing thread is employed to make the copy of the document data, wherein the copy of the document data includes an analysis context value identifying an analysis context object, and wherein the analysis context object includes a data structure containing characteristic data for one or more elements of the document

in response to receiving the copy of the document data, performing an analysis of the analysis context object, wherein the first processing thread receives new document data while the analysis of the analysis context is being performed; and

providing the results of the analysis of the analysis context object.

6. The method recited in claim 5 , further comprising:

receiving a user interface property defining the first processing thread;

in response to receiving the analysis context value, having the identified analysis context object analyzed using a second processing thread; and

in response to receiving the user interface property, providing the results of the analysis of the analysis context object to the first processing thread.

7. The method recited in claim 5 , further comprising:

receiving an options property specifying one or more analysis criteria for analyzing the analysis context object; and

in response to receiving the analysis context value, having the identified analysis context object analyzed using the specified analysis criteria.

8. The method recited in claim 7 , wherein the analysis criteria includes one or more of the group consisting of: enabling text recognition, enabling the use of tables, enabling the use of lists, enabling the use of annotations, and enabling the use of connectors and containers.

9. The method recited in claim 5 , further comprising:

in response to receiving the analysis context value, having the identified analysis context object analyzed using a background processing thread; and

allowing changes to the document during analysis of the document.

10. The method recited in claim 5 , further comprising providing the results of the analysis of the analysis context object by identify a copy of the analysis document object modified to include the results of the analysis of the analysis context object.

11. The method recited in claim 5 , wherein providing the results of the analysis of the analysis context object includes, upon completion of analysis of the analysis context object, generating a results event indicating completion of analysis of the analysis context object.

12. The method recited in claim 5 , further comprising:

receiving a call to reconcile the results of the analysis of the analysis context object with a current state of the document; and

in response to receiving the call to reconcile the results of the analysis of the analysis context object with a current state of the document, reconciling the results of the analysis of the analysis context object with the current state of the document.

13. The method recited in claim 5 , further comprising:

receiving a call to synchronously analyze at least a portion of the analysis context object;

in response to receiving the call, analyzing the at least a portion of the analysis context object; and

prohibiting changes to the document until the at least a portion of the analysis document object has been analyzed.

14. The method recited in claim 13 , further comprising:

receiving an identification of a region of the document; and

in response to receiving the identification of the region, analyzing only a portion of the analysis document object corresponding to the identified region of the document.

15. A method of creating an analysis context object for use in analyzing a document, comprising:

receiving a call to create an analysis context object corresponding to a document; and

in response to receiving the call to create an analysis context object corresponding to a document, creating an analysis context object that includes a data structure containing characteristic data for one or more elements of a document, and wherein the analysis context object includes hints for assisting a document analysis process.

16. The method of creating an analysis context object recited in claim 15 , wherein the analysis context object includes a value defining a portion of the analysis context object to be analyzed during a document analysis process.

17. The method of creating an analysis context object recited in claim 15 , wherein the analysis context object includes a value defining margins for the document.

18. The method of creating an analysis context object recited in claim 15 , wherein the analysis context object includes an identifier identifying a root node of the data structure.

19. The method of creating an analysis context object recited in claim 15 , further comprising:

receiving a call to provide an identified node of the data structure; and

in response to receiving the call to provide an identified node of the data structure, providing the identified node of the data structure.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →