The Smartphone API (Application Programming Interface) is a software development model that streamlines the process of writing powerful and robust applications for the Microsoft® Windows® Powered Smartphone. It works by extending the functionality of familiar Windows-based application development environments such as Embedded Visual C++ and Visual Studio .NET — producing an application development environment that is specifically tailored for writing Smartphone applications.
The Smartphone API consists of a standard set of programming constructs which includes interfaces, properties, methods, functions, data types, and data structures. Each set targets one specific area of functionality, and is named after that area of functionality. For example, the CE Messaging API (CEMAPI) provides the constructs for developing messaging applications, and the Remote API (RAPI) provides the constructs for developing applications that allow desktop computers to host communications with mobile devices.
The programming constructs you will use most are those for calling API functions from Windows CE. These include procedure declarations for Windows CE functions, user-defined type definitions for data structures passed to those functions, and constant declarations for values passed to and returned from those functions.
The Smartphone API Reference is divided into several subsections, one for each supported area of functionality.
| Smartphone API | Description |
|---|---|
| ActiveSync | For creating mobile application installation and setup modules, synchronization service modules, filter procedures, and for accessing ActiveSync service helper functions. |
| Bluetooth API | For creating mobile applications that allow Smartphones to connect wirelessly to Bluetooth enabled devices such as headsets, printers, and other mobile devices. |
| CE Messaging (CEMAPI) | For creating messaging applications for mobile devices. |
| Configuration Service Providers | For creating mobile applications that affect the various CSPs. |
| Connection Manager | For creating mobile applications that automate the management of mobile device network connections. |
| Control API | For displaying Smartphone controls in your mobile applications. |
| Device Management API | For creating mobile applications that remotely access mobile device configuration management functionality. |
| Game API (GAPI) | For creating high-performance, real-time games for mobile devices. |
| Home Screen API | For creating Home Screen plug-ins. Plug-ins must support the IHomePlugin and IPersistStream interfaces,which are detailed in this section. |
| HTML Control | For creating mobile applications that display HTML text and embedded images, parse XML, and bind URL resources to monikers. |
| MIDI | For creating mobile applications that play MIDI files. |
| Object Exchange (OBEX) | For creating push/pull applications that allow mobile devices to exchange data, wirelessly, and spontaneously. |
| Pocket Outlook Object Model (POOM) API | For creating mobile applications that manipulate Inbox items (Contact, Calendar, and Tasks). |
| Projects Control | For creating applications that interact with the Projects Control. |
| Remote API (RAPI) | For creating desktop applications that interact with, or control mobile devices. |
| Speech Recognizer | To add speech recognition functionality to an application (for example, voice dialing). |
| Telephony | For creating cellular telephony and Short Messaging Service (SMS) applications. |
| User Interface | For managing the input panel, and adding user interface elements to your mobile applications. |
| Vibrate API | For adding vibration features to your mobile application. |
| Voice Recorder Control | For creating mobile digital recording applications. |
| Windows User Interface Controls | For creating mobile applications that incorporate the mobile extensions to the standard Microsoft® Windows® CE user interface controls. |