You are previewing Windows® CE 3.0 Application Programming.
O'Reilly logo
Windows® CE 3.0 Application Programming

Book Description

  • Windows CE 3.0 programming for Pocket PC, handheld PC, and embedded devices

  • Enterprise computing including COM, DCOM, database access using ADOCE, and Microsoft Message Queue

  • Communications, including Internet Web access with HTTP, TCP/IP, sockets, serial communications, and desktop synchronization with ActiveSync 3.0

  • Build and run applications in Visual C++ using Microsoft Foundation Classes

  • CD-ROM with eMbedded Visual C++ 3.0 and Pocket PC SDK

  • Beyond the user interface to hard-core programming

  • Full-scale networking and enterprise computing

  • Global communications from Pocket PCs

  • All the new features of Windows CE 3.0

  • Advanced techniques for serious Windows CE programmers.

    Get beyond user interface programming and discover the behind-the-scenes operating system facilities that will let you make the most of the new features in Windows CE 3.0. This hot technology lets you control Pocket PCs, handheld PCs, and the embedded devices in hundreds of commercial products. Learn the lean and mean techniques that keep your programs humming on portable devices with limited memory, and the key data storage methods that make them possible. Master the communications protocols that keep Windows CE devices in contact with desktop computers and the Internet. In addition:

  • Build and run applications in Visual C++ 6.0 and eMbedded Visual C++ 3.0

  • Use the Windows CE API and Microsoft Foundation Classes

  • Communicate via HTTP, TCP/IP, sockets, remote access, and telephony

  • Access standard Windows CE databases and Microsoft SQL Server for Windows CE

  • Interface between desktop systems and Windows CE devices

  • This book is for serious developers with real programming experience. Besides familiarity with Windows CE devices and general Windows API programming, a basic knowledge of C and C++ is needed to understand the code samples.

    About the Software

    The accompanying CD-ROM contains all the code examples from the book, as well as a fully searchable index of all the book's examples, programs, and tutorials. The CD-ROM also contains a complete working copy of eMbedded Visual C++ 3.0 and Pocket PC SDK.

    Table of Contents

    1. Copyright
    2. PREFACE
    4. Introduction
      1. About Microsoft Windows CE
      2. About This Book
      3. About You
      4. About MFC (Microsoft Foundation Classes) and ATL (ActiveX Template Libraries)
      5. eMbedded Visual C11 3.0
      6. The Code Samples
      7. Unicode Text and Strings
      8. Error Checking
      9. Exception Handling and Page Faults
      10. Conclusion
    5. Files
      1. Overview
      2. Opening and Reading from a File
      3. Getting and Setting File Information
      4. Conclusion
    6. Object Store, Directory, and Network Operations
      1. Getting Object Store Free Space
      2. Creating and Deleting Directories
      3. Compact Flash and Other Storage Devices
      4. WNet Functions
      5. Adding and Canceling Connections
      6. Conclusion
    7. Property Databases and the Registry
      1. Database Volumes
      2. Flushing a Database Volume
      3. Properties
      4. Sort Orders
      5. Creating a Property Database
      6. Opening and Closing Property Databases
      7. Deleting Property Databases
      8. Writing Records
      9. Reading Records
      10. Using the CEVT_BLOB Property Data Type
      11. Searching for Records
      12. Deleting Properties and Records
      13. Updating Database Records
      14. Database Notifications
      15. Listing Database Information
      16. Changing Database Attributes
      17. Using MFC Classes with Property Databases
      18. Accessing the Registry
      19. Conclusion
    8. Processes and Threads
      1. Creating a Process with CreateProcess
      2. Process Kernel Object Handles and Identifiers
      3. Creating a Process with ShellExecuteEx
      4. Waiting for a Process to Terminate
      5. Process Exit Code
      6. Listing Running Processes
      7. Modules Used by a Process
      8. Terminating a Process
      9. Determining If a Previous Instance of a Process Is Running
      10. Threads
      11. Creating a Thread
      12. Terminating a Thread and Thread Exit Codes
      13. Thread Scheduling
      14. Thread Priorities
      15. Enumerating Threads
      16. Determine Thread Execution Times
      17. Creating Threads with MFC
      18. Conclusion
    9. Thread Synchronization
      1. The Need for Synchronization
      2. Critical Sections
      3. The Interlocked Functions
      4. WaitForSingleObject and WaitForMultipleObjects
      5. Using Mutex Objects
      6. Using Event Objects
      7. Using Semaphores
      8. Selecting the Correct Synchronization Technique
      9. Thread Local Storage and Dynamic Link Libraries
      10. Conclusion
    10. Notifications
      1. Running an Application at a Specified Time
      2. Using Mini-Applications with Notification
      3. Starting an Application on an Event
      4. Manually Controlling the LED
      5. User Notification
      6. CeSetUserNotificationEx
      7. Conclusion
    11. Communications Using TCP/IP: HTTP and Sockets
      1. Overview of TCP/IP Communications
      2. Programming the HTTP Protocol
      3. Simple HTTP Requests
      4. More Complex HTTP Requests Using a Session
      5. Using a Proxy Server
      6. Connecting to Secure Sites
      7. Sending Data to a Server
      8. HTTP in Summary
      9. Socket Programming
      10. Conclusion
    12. Serial Communications
      1. Basic Serial Communications
      2. GPS and NMEA
      3. Infrared and Other Devices
      4. Conclusion
    13. The Remote API (RAPI)
      1. Initializing and Un-initializing RAPI
      2. Handling Errors
      3. A Simple RAPI Application—Creating a Process
      4. Overview of RAPI Functions
      5. Write Your Own RAPI Functions with CeRapiInvoke
      6. Conclusion
    14. Telephone API (TAPI) and Remote Access Services (RAS)
      1. Introduction to Telephone API (TAPI)
      2. Line Initialization and Shutdown
      3. Enumerating TAPI Devices
      4. Making a Call with TAPI
      5. Communicating Through an Open Call
      6. Remote Access Services (RAS)
      7. Conclusion
    15. Memory Management
      1. The Virtual Address Space
      2. Allocating Memory for Data Storage
      3. Obtaining System Processor and Memory Information
      4. Obtaining the Current Memory Status
      5. Application Memory Allocation
      6. Creating Your Own Heaps
      7. Handling Low-Memory Situations
      8. Conclusion
    16. System Information and Power Management
      1. Operating System Version Information
      2. Power Management
      3. Conclusion
    17. COM and ActiveX
      1. Introduction to the Component Object Model (COM)
      2. POOM—The Pocket Office Object Model
      3. Using COM Components
      4. Using Smart Pointers
      5. Creating a Recurring Appointment
      6. ActiveX and Automation
      7. Using Automation Objects with MFC
      8. Conclusion
    18. Microsoft Message Queue (MSMQ)
      1. Overview of Microsoft Message Queue
      2. Installation
      3. Managing Queues on Windows 2000
      4. Sending Messages from Windows CE
      5. Creating a New Queue
      6. Reading Messages from a Queue
      7. Message Timeouts, Acknowledgements, and Administration Queues
      8. Message Transactions
      9. Conclusion
    19. ADOCE and SQL Server for Windows CE
      1. Installing SQL Server for Windows CE
      2. ADOCE and ADOXCE
      3. Using Smart Pointers with ADOCE
      4. Using _bstr_t and _variant_t Classes
      5. Creating a Catalog (Database)
      6. Enumerating Tables in a Catalog
      7. Dropping a Table
      8. Adding Records to a Table
      9. Retrieving Records from a Table
      10. Connection Object
      11. Deleting Records
      12. SQL Data Definition Language (DDL)
      13. INSERT Statement
      14. Error Handling
      15. Transactions
      16. Conclusion
    20. ActiveSync
      1. ActiveSync Items, Folders, and Store
      2. Steps to Implement Device Synchronization
      3. Steps to Implement Desktop Synchronization
      4. Additional Steps for Continuous Synchronization
      5. The Sample Application
      6. Installation and Registration
      7. Data Organization
      8. Important Note
      9. Implementing the Windows CE Device Provider
      10. Implementing the Desktop Provider
      11. Conclusion