News | Articles | Libraries | Developer Tools | Books | Forum Links | Search   
Sections:
 

Articles

Audio

  • Playing multiple wave files continuously and simultaneously
    May 15, 2003. Windows has various APIs for outputting wave files. The simplest way is to use PlaySound(), which I bet you have already used. It seemed to work fine - until you realized it is unable to play more than one wave at the same time, which makes it useless for purposes like game sound effects. On this article I'll explain how to turn around this limitation, but for that we'll have to forget about the so-beautiful PlaySound(), and take a look at the waveOut interface. It is a bit scary at first sight (specially for those used to PlaySound), but I'll try to take it easy by using only what we really need from it.
  • QA: How can I change sound volume from my program?
    October 02, 2001. I need to change sound volume from my program. It could be changed in the Control Panel in Sounds & Reminders applet but I need to change sound from my program. How can I do it?
  • Play wav sounds on Pocket PC
    August 23, 2001. There are several functions on Pocket PC that can be used for playing sounds in your programs. These are: PlaySound, MessageBeep, waveOutWrite and other waveOut... functions. This article covers working with a PlaySound function. In it, there is a description how to play a .wav file, play a sound from resources and play a .wav file located in memory.
  • Playing audio on a Pocket PC
    September 20, 2001. It is not easy to play a custom sound on Pocket PC, there are a lot of questions in newsgroups. This article describes using waveOut... functions for playing custom sounds. You will be able to use the information and the sample to play active sounds in your games or any other applications.

COM/ActiveX

Control panel

  • Creating Control Panel Applet
    August 17, 2001. Pocket PC contains a Settings item in Start menu that is similar to Control Panel on desktop computers and we will call is Control Panel. This article describes how to create your own applet in Control Panel.
  • Using Control Panel
    August 10, 2001. Sometimes we need to show a control panel applet (a control panel page) from our program. That may be necessary when users of your program change some system settings often and you want to provide an easy interface for that. This article shows how to open a certain control panel applet from your program.
  • QA: How can I get information about Control Panel applets like dialog names, icons, etc?
    August 26, 2001. How can I enumerate existing Control Panel applets, get corresponding applet icons and names?

Databases

  • Managing Blobs Using the ATL OLE DB Consumer Templates
    July 2, 2004. This is the second article on using the ATL OLE DB Consumer Templates on the Pocket PC. In the first article I described how the ATL OLE DB Consumer Templates can be adapted and used on Pocket PC platforms. The article provided a simple example of managing data in a SQL Server CE 2.0 database, and is the foundation for the material provided here.
  • Using the ATL OLE DB Consumer Templates
    March 10, 2004. This article describes how the ATL OLE DB Consumer Templates can be adapted and used on Pocket PC platforms. The information presented here applies to both the Pocket PC 2002 and 2003 SDKs. A working knowledge of the desktop OLE DB Consumer Templates is assumed - you won't learn them by reading this article.
  • QA: How can I install ADOCE 3.1?
    November 18, 2003. What is the correct method of installing ADOCE 3.1 both on the device and emulator?

Debug

  • STLogFile - easy way to trace debug info in Release build
    September 02, 2002. There is no debugger for Pocket PC that allows you attaching to a process. So you cannot use debugger in drivers, SIP input methods, password dialogs, shared new handlers, today plug-ins, ActiveSync plug-ins etc. And you have to use a log file. This article explains using log files on Pocket PC and gives a powerful free log file library for Pocket PC.
  • QA: How to turn off messages sent by MFC to Debug window?
    April 25, 2002. I use TRACE command to output debug information to Debug window of eVC. But it's hard to find my own debug messages since Debug window is flooded by messages from MFC. How can I turn these off?
  • Pocket PC TestSuite
    May 28, 2002. This article describes automation of the testing process on Pocket PC using Pocket PC TestSuite 2.0. You will find how to record test scripts, how to check results in the scripts and how to test programs in stress conditions.
  • Testing programs on Pocket PC
    January 17, 2002. If the program is not tested it does not work. Good developers understand that testing is needed. Experienced developers demand testing. What is specific of testing programs on Pocket PC? If there are any? This article describes experience of Pocket PC Testing Center.

Device information

.NET CF

Emulator

Enterprise

  • Creating Pocket PC kiosk programs for enterprise market
    July 15, 2003. There is a tendency of Pocket PCs being used as special devices in a very restricted way with many functions disabled and with only one application executed - this is called kiosk mode. A lot of vertical market applications require kiosk mode. For example, it can disable all games and other entertainment programs on Pocket PC. This article describes how to create kiosk applications for Pocket PC using Spb Kiosk Engine.

eVB

  • Pie Chart in eVB
    September 26, 2002. This article helps you to display your data as a pie chart in eVB program. It gives a sample code that you can use and modify.

eVC++

  • Strings on a Pocket PC, Unicode and ANSI
    September 26, 2001. All WinAPI functions on Pocket PC work with Unicode strings. I think that it was a greate idea but... But legacy in our minds. Developers get into the way of using ANSI string developing for desktop. This article describes some common problems.
  • QA: How to use STLPort on Pocket PC?
    October 16, 2001. I know that STLPort is one of the best portable STL libraries. How can I use STLPort with my embedded Visual C++ program?
  • QA: Why does MFC adds "WCE_" prefix to my classes?
    January 14, 2003. I created a window of my custom class using MFC and noticed that the class name of the window got "WCE_" prefix. Why was it added? How can I get rid of it?
  • QA: How can I handle command line parameters in MFC based application?
    March 21, 2002. I want to handle command line parameters in my MFC based application. The problem is that MFC based programs have only one copy and when I start my program and it's already running I cannot handle the command like parameters. Let's say instance A of my program is already running. I start instance B with some command line parameters. Instance B checks that instance A is running, sends A foreground and exits. So I cannot access command line parameters of B from instance A.
  • QA: How to fix when the class wizard says Parsing error: Expected "afx_msg".?
    January 02, 2002. I have just created a new application using "WCE Pocket PC MFC AppWizard (exe)" template, opened the class wizard and got the following error message: 'Parsing error: Expected "afx_msg".'. How can I fix it?

Events

Files and Registry

  • QA: How do I read from and write to an ini file?
    February 9, 2004. I want to read from a ini file and write back any changes. Is there an API for this?
  • QA: How to get file system change notification?
    May 16, 2003. I want my application to be notified about all changes in the file system. How can I do this?
  • Working with language dependent folders on Pocket PC
    May 31, 2002. There is a number of "standard" folders on Pocket PC (such as \Windows, \Program Files etc.). The problem is, many of these folders are named differently on localized Pocket PCs. So it's not recommended to hard-code their names in your program. Instead you should determine the name of standard folder "on the fly". This article describes how to do this.
  • Working with registry on Pocket PC
    January 21, 2002. Working with registry on Pocket PC is very similar to working in desktop Windows. Nevertheless there are some differences. Registry in Pocket PC is not stored in a file. There are some undocumented possibilities to change settings of built-in application that are Pocket PC specific. Also third-part libraries and controls will simplify working with registry in your eVC++ and eVB programs.
  • QA: How can I know what is a full path to my program that is running?
    September 07, 2001. Some my files are located in the same folder as the main executable file. Because Pocket PC does not support local file names I need to know a full path to my executable file to find full path to my other files. How can I do it?
  • QA: How to copy registry key recursively?
    April 30, 2002. How to copy registry key recursively with all subkeys and values?

GAPI

  • Drawing images and other graphics with GAPI
    February 28, 2003. The STGapiBuffer class provides a powerful interface to the display buffer and hides hardware specifics. This class provides a high-performance version of GDI primitives - the most important thing for a game developer. The interface is transparent for a developer and does not hide any key GAPI calls. This fact, together with open source code, makes this class easy to use and leave full control of application logic for a developer.
  • GapiDraw from a DirectDraw developers perspective
    March 28, 2002. GapiDraw is designed to be as similar to DirectDraw as possible, but at the same time being as easy to use and as optimized as possible for handheld devices. This page presents some common tasks in DirectDraw, and how they are implemented in GapiDraw.
  • Creating a new project with GapiDraw
    July 09, 2002. GapiDraw makes it possible to create games that run on Stationary PCs, Smartphones as well as Pocket PCs. Because different development tools are required to target each device, some work has to be done to create an easy to manage solution for cross platform projects.
  • Programming DieselEngine 1. Close up and personal with DieselEngine, Using DieselGraphics
    November 13, 2001. DieselEngine is a software development kit by Inmar Software Ltd. It is multi platform SDK that allows producing real-time 2D and 3D graphics, along with input mapping and sound engine with 3D sound. This article describes using DieselEngine.
  • Programming DieselEngine 2. Using Diesel3D
    February 18, 2002. This is second article about programming DieselEngine. DieselEngine is a software development kit by Inmar Software Ltd. It is multi platform SDK that allows producing real-time 2D and 3D graphics, along with input mapping and sound engine with 3D sound.
  • Whirl - graphics demo application
    October 03, 2001. Whirl is a demo full screen application that is written using EasyCE library. Here I describe how I created it.
  • Creating Pocket PC games that publish high scores in web
    January 13, 2002. Playing games is more interesting if you can compare your results with those of other people. Spb Software House along with PocketGamer.org has developed an open system for creating Pocket PC games that supports publishing high scores in web. This system consists of a scores section of the PocketGamer.org website, a freeware program for desktop PC that retrieves high scores from the connected Pocket PC and a C++ library for creating Pocket PC games with high scores support. This article explains how to use this library in your games.

Hardware buttons

HTML in programs

Images

  • Using IJG JPEG library
    September 18, 2001. Independent JPEG Group distributes a freeware library for JPEG image file processing. You can find library download locations on their web site www.ijg.org. This article describes how to port a version marked "6b" to a Pocket PC.
  • QA: How to save a bitmap into a jpeg file?
    January 16, 2002. I want to create a jpeg file in my program. How can I save a bitmap into a jpeg file?
  • QA: How can I get bitmap bits?
    July 02, 2001. I loaded bitmap using LoadBitmap function. Now I want to read bitmap bits (color of each point). How can I do it? I have looked at GetDIBits function but it isn't not implemented under Windows CE.

Installation

IrDA, LED

  • IrDA
    August 26, 2002. This article describes working with IrDA in details. You will find working client/server samples and a lot of information about IrDA protocol and how to program for this protocol.
  • OBEX. Transfer files between a Pocket PC and a Palm or a Symbian device
    July 24, 2002. How to programmatically transfer data via Infrared between a device running the Pocket PC OS and a device with the Palm OS or one with the Symbian OS? The Palm and the Symbian devices utilize the OBEX protocol for IR transfers, however Pocket PC 2000 devices do not support the OBEX protocol. This article deals with this problem. The code snippet can be used for all Pocket PC devices and it will basically simulate the OBEX protocol, and make believe the Palm and the Symbian (OBEX compliant devices) devices that they are compatible.
  • How to control the LED of your Pocket PC
    January 11, 2002. The LED is a part of Pocket PC specification. Generally it allows to indicate either that the battery is attached or that the Pocket PC is directly connected to the cradle. This article describes working with LED in your program. It is translated from CodePPC.com.

Misc

  • Pocket PC services
    February 26, 2004. Often Pocket PC programs need a background process and most of existing Pocket PC programs implement it by creating an executable file which is started during system start-up. But Pocket PC has 32 processes limit and having many different programs running in background can be a serious problem. Pocket PC 2003 provides special mechanism implemented in Services.exe that allows Pocket PC developers to shape their background applications into services that run in one process as different threads. This article describes creating Pocket PC services, distributing them and gives a solution to run services on Pocket PC 2000 and 2002 platforms.
  • What applications are listed in the running program list?
    May 09, 2003. I do not want my application is listed in the running programs list. How can I make it does not appear there?
  • Going background with window messages
    October 22, 2001. It is often needed to run your application on background, invisible to user. This article describes one of possible approaches to the problem solution.
  • QA: How to install J9 on Pocket PC?
    January 26, 2002. Clicking on a .jxe file produced an exception: "unknown file type, bla bla bla..."
    How can I install J9 on my Pocket PC and associate my .jxe files with it? This QA is translated from CodePPC.com.
  • QA: How can I start a program with command line arguments?
    September 04, 2001. I want a start program with commend line arguments on my Pocket PC. I can write a program for that, but may there is a "Run" dialog like in Windows 95?
  • QA: How can I start another program and wait until it will be finished?
    August 08, 2001. I need to start another executable file and waint until it will be finished. How can I do it?
  • QA: How can I measure time in milliseconds?
    July 19, 2001. How can I measure time in milliseconds? It seems like CTime supports only seconds.
  • QA: How can I convert CTime object to string?
    November 21, 2001. I need to convert CTime object to the string. I have noted that MFC for Windows CE does not support CString::Format method. What methods should I use?

Network, Internet

Non-Programming

  • Interview with Neil Cowburn and Chris Tacke
    December 04, 2003. Interview with Neil Cowburn (hereinafter NC) and Chris Tacke (hereinafter CT), both Co-Founders and Advisory Board members of OpenNETCF. They are also both Microsoft MVPs focusing on .NET CF and well known in the community. The interview is taken by Chris Forsberg (hereinafter CF).
  • Interview with Chris Forsberg
    September 04, 2003. Interview with Chris Forsberg (hereinafter CF), a new member of the Pocket PC Developer Network Team. Chris is one of the most professional .NET CF developers, who wrote several articles for MSDN and recognized as Microsoft MVP in Mobile Devices.
  • Interview with Microsoft's Shreedhar Madhavapeddi about Mobile2Market
    July 08, 2002. Interview with Shreedhar Madhavapeddi (hereinafter SM), Microsoft Program Manager for Mobile2Market. Mobile2Market is the new framework from Microsoft which enables a process for the certification and market delivery of network-ready wireless applications for the Windows Powered Pocket PC and Smartphone software platforms.
  • Handango and PocketGear about Pocket PC software development
    June 13, 2002. Handango and PocketGear are the leading publishers of Pocket PC software. Read their vision of the Pocket PC software market and of Pocket PC software development.

Password protection

  • Pocket PC password protection
    September 03, 2001. Pocket PC has a built-in password protection that allows locking the device with a password. This article describes how to set a system password and "require password when device is turned on" flag.
  • Changes in password protection on Pocket PC 2002
    October 29, 2001. Password protection is changed in Pocket PC 2002. That is why some programs that used PromptForPasswd function do not work on Pocket PC 2002. This article describes news features and how you can make your program working on Pocket PC 2002 too.

Pocket PC 2002

PIE

  • Writing ASP applications for Pocket PCs
    November 06, 2001. Active Server Pages (ASP) has provided an excellent environment for developers to rapidly create stable, feature rich, data driven applications. PocketASP brings this power the Pocket PC, enabling developers to apply their existing skills to an exciting new platform. This article explains how to get from installation through to creating a working PocketASP application.
  • Developing A New Outlook - PocketASP + POOM
    January 31, 2002. Active Server Pages (ASP) has provided an excellent environment for developers to rapidly create stable, feature rich, data driven applications. PocketASP brings this power to the Pocket PC, enabling developers to apply their existing skills to an exciting new platform.

Power

SIP

  • QA: Why does my child list view control repaints when the SIP is toggled?
    August 08, 2003. My MFC application has a CListCtrl as the CMainFrame's child. When I open or close the SIP the CListCtrl will always repaint itself. Why? How can I prevent this?
  • Working with SIP
    December 07, 2001. The main input method on Pocket PC is SIP (Soft Input Panel). There are special SIP related user interface requirements that are discussed in this article.
  • Custom input method for SIP
    December 21, 2001. This is a very simple sample input method for SIP (Soft Input Panel).
  • QA: How can I disable SIP word completion?
    November 07, 2001. My application prompts for a password in an edit box. Although the 'password' style is set so that only asterisks are displayed when characters are entered, if a password has previously been entered then the 'Word Completion' feature causes the previous password to be suggested. How can I disable word completion for the password field?
  • QA: How can I set the qwerty keyboard as the current input method?
    November 09, 2001. My application needs to set qwerty keyboard as current input method. How can I do it?

Today screen

User Interface

XML

  • Windows CE MSXML FAQ
    May 22, 2003. This article answers the most frequently asked questions about using XML on Windows CE. It has 2 areas of focus - Pocket PC devices and non-Pocket PC devices.
© 2001-2005 Pocket PC Developer Network, a division of Spb Software House