IP Library Granted Patent US 7,284,240
Granted Patent B1
US 7,284,240 · App. 10/076,667 · Granted Oct 16, 2007

API schema language and transformation techniques

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,284,240
App. No.
10/076,667
Granted
Oct 16, 2007
Kind
B1
Abstract

An API schema language and transformation techniques allow an application programming interface to be defined in a markup language. This interface definition can then be transformed into a non-markup language source file. Examples of transformation techniques include techniques to transform the interface definition into a component object model (COM) header file, a documentation file that describes the contents of the non-markup language source file, and a proxy object code file.

Claims (33)

1. One or more computer storage media having stored thereon a plurality of instructions that, when executed by a transformation engine comprising a series of instructions executed by one or more processors, causes the transformation engine to:

access a plurality of constructs in an application programming interface description, wherein the description is written in an extensible markup language (XML) format; and

transform each of the plurality of constructs into computer executable instructions and declarations for a component object module (COM) application programming interface header file, wherein to transform one or more of the plurality of constructs is to:

check an attribute of a declare enumeration construct of the plurality of constructs to determine whether the declare enumeration construct is to be transformed into a series of manifest constants or into a component object model enumeration declaration; and

transform the declare enumeration construct into the component object model enumeration declaration if the attribute has a first value, and otherwise transform the declare enumeration construct into the series of manifest constants.

2. One or more computer storage media as recited in claim 1 , wherein the plurality of instructions include instructions to transform a declare function construct into a component object model function declaration.

3. One or more computer storage media as recited in claim 1 , wherein the plurality of instructions include instructions to transform a declare class object construct into a component object model class object ID declaration.

4. One or more computer storage media as recited in claim 1 , wherein the plurality of instructions include instructions to transform a declare interface construct into a component object model forward class declaration.

5. One or more computer storage media as recited in claim 1 , wherein the plurality of instructions include instructions to transform a declare data structure construct into a component object model data structure declaration.

6. One or more computer storage media as recited in claim 1 , wherein the plurality of instructions include instructions to transform a declare macro construct into a component object model manifest constant.

7. One or more computer storage media as recited in claim 1 , wherein the COM application programming interface header file comprises a C/C++ header file.

8. A method, implemented in a computing device, the method comprising:

accessing a plurality of constructs in an application programming interface description, wherein the description is written in an extensible markup language (XML) format; and

transforming each of the plurality of constructs into computer executable instructions and declarations for a component object module (COM) application programming interface header file, wherein transforming one or more of the plurality of constructs comprises:

checking an attribute of a declare enumeration construct of the plurality of constructs to determine whether the declare enumeration construct is to be transformed into a series of manifest constants or into a component object model enumeration declaration; and

transforming the declare enumeration construct into the component object model enumeration declaration if the attribute has a first value, and otherwise transforming the declare enumeration construct into the series of manifest constants.

9. A method as recited in claim 8 , wherein transforming at least one of the plurality of constructs comprises transforming a declare function construct into a component object model function declaration.

10. A method as recited in claim 8 , wherein transforming at least one of the plurality of constructs comprises transforming a declare class object construct into a component object model class object ID declaration.

11. A method as recited in claim 8 , wherein transforming at least one of the plurality of constructs comprises transforming a declare interface construct into a component object model forward class declaration.

12. A method as recited in claim 8 , wherein transforming at least one of the plurality of constructs comprises transforming a declare data structure construct into a component object model data structure declaration.

13. A method as recited in claim 8 , wherein transforming at least one of the plurality of constructs comprises transforming a declare macro construct into a component object model manifest constant.

14. A computing device comprising:

a processor; and

one or more computer readable media having stored thereon instructions that, when executed by the processor, cause the processor to:

access a plurality of constructs in an application programming interface description, wherein the description is written in an extensible markup language (XML) format; and

transform each of the plurality of constructs into computer executable instructions and declarations for a component object module (COM) application programming interface header file, wherein to transform one or more of the plurality of constructs is to:

check an attribute of a declare enumeration construct of the plurality of constructs to determine whether the declare enumeration construct is to be transformed into a series of manifest constants or into a component object model enumeration declaration; and

transform the declare enumeration construct into the component object model enumeration declaration if the attribute has a first value, and otherwise transform the declare enumeration construct into the series of manifest constants.

15. A computing device as recited in claim 14 , wherein the instructions include instructions to transform a declare function construct into a component object model function declaration.

16. A computing device as recited in claim 14 , wherein the instructions include instructions to transform a declare class object construct into a component object model class object ID declaration.

17. A computing device as recited in claim 14 , wherein the instructions include instructions to transform a declare interface construct into a component object model forward class declaration.

18. A computing device as recited in claim 14 , wherein the instructions include instructions to transform a declare data structure construct into a component object model data structure declaration.

19. A computing device as recited in claim 14 , wherein the instructions include instructions to transform a declare macro construct into a component object model manifest constant.

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