Windows CE General

A collection of general posts about Windows CE
Windows CE: Changing Static IP Address
A customer contacted me recently and asked me how to change a static IP address at runtime. Of course this is not something that I know how to do, but with a little bit of research I figure out how to do it. It turns out that the challenge is to request that the adapter update itself with the new IP Address. Otherwise, the change in IP address is a matter of changing the address in the registry for the adapter. The registry entry is something like: [HKEY_LOCAL_MACHINE\Comm\LA... "EnableDHCP"=dword:0 ......

Posted On Wednesday, October 24, 2012 9:00 PM | Comments (7)

Windows CE: C# Application to Format TFAT
Windows CE: C# Application to Format TFAT In Windows CE: Formatting TFAT I show how to format a disk with TFAT using C/C++ code. The customer that I wrote that for develops using C#, so I wrote a C# application to test the formatting code. To me, most formatting tools are just too difficult for the average user. In this case, the user will be someone working in the factory or field service. They just need to select a disk and request that it be formatted. The application dialog look like: It has ......

Posted On Monday, August 30, 2010 10:34 PM | Comments (3)

Windows CE: Formatting TFAT
A customer came to me for assistance in formatting an SD card with TFAT. I did a quick look in the control panel code to find how it formats disks as TFAT and told the customer to use FormatVolume() and set the FORMAT_OPTIONS dwFlags FATUTIL_FORMAT_TFAT flag. I assumed that it was that easy and left the customer to write the code. A few weeks later the customer came back to me and said that they just couldn’t get FormatVolume() to work, let alone format the disk as TFAT. So this time I dug deeper ......

Posted On Sunday, August 29, 2010 10:42 PM | Comments (8)

Windows CE: Disable the Taskbar for Full Screen Applications
In the article Windows CE: Setting an Application to Display Full Screen in C/C++ I discussed how to show an application full screen using C++. I discussed that for a kiosk application that the easiest way to disable the Explorer shell taskbar is to simply not have the Explorer shell launch when the system starts up. But there are cases where having the Explorer shell run underneath the kiosk app has value in some cases. The trouble is that the taskbar will still respond to special keys like the ......

Posted On Sunday, August 15, 2010 10:59 PM | Comments (0)

Windows CE: Setting an Application to Display Full Screen in C/C++
Many, maybe even most, Windows CE devices are single purpose devices that have an application that fills the entire screen. So of course setting the application to entirely fill the display is important. In this article we will explore setting an application to display full screen using C/C++. My plan is to create a simple application that fills the screen with white and displays two buttons, exit and explore. Those may be odd buttons for a kiosk application, but they will come in handy while working ......

Posted On Friday, August 6, 2010 10:47 PM | Comments (0)

Windows CE: Launching an Application when a Network Connects
I was working on a headless system recently and wanted to run cemgrc.exe when a network connection was made. That inspired me to write a little application to do it. I decided to make the application flexible, so I added a few requirements; be able to run from HKEY_LOCAL_MACHINE\Init, and read the application name and command line from the registry. Working backward, I wrote a function to read the registry to get the application name and command line and then start the application using CreateProcess(). ......

Posted On Thursday, August 5, 2010 9:07 PM | Comments (0)

Windows CE: Killing an Application
In Windows CE: Using ToolHelpAPI to list running processes, I showed how to use the ToolHelpAPI to get a list of running processes or applications. Someone recently asked in one of the newsgroups how to kill an application. The question included code using ToolHelpAPI to find a process, but the code had some problems. ToolHelpAPI does provide information about the processes, but the function for killing a process, TerminateProcess(), needs a HANDLE to the process. OpenProcess() can be used to get ......

Posted On Monday, December 14, 2009 1:30 PM | Comments (5)

Windows CE: Using RAPI to Run Applications (Part 3)
The CERunApp application can be downloaded from: Download CERunApp.exe The CERunApp source code can be downloaded from: Download CERunApp source code In Windows CE: Using RAPI to Run Applications (Part 1) and Windows CE: Using RAPI to Run Applications (Part 2) I wrote about using RAPI remotely start applications on a Windows CE device from a workstation. In Windows CE: Using RAPI to Run Applications (Part 2) I presented an application, CERunApp.exe, that downloads an application from the workstation ......

Posted On Thursday, December 10, 2009 3:06 PM | Comments (1)

Windows CE: Using RAPI to Run Applications (Part 2)
The CERunApp application can be downloaded from: Download CERunApp.exe Note: in Part 3 I have included an updated version of this exe The CERunApp source code can be downloaded from: Download CERunApp source code Note: in Part 3 I have included an updated version of the source code In Windows CE: Using RAPI to Run Applications (Part 1) I wrote about starting this project to create a copy of the Windows Mobile Developer Power Toys application RAPIStart. In this article I will continue by creating ......

Posted On Friday, October 30, 2009 3:24 PM | Comments (4)

Windows CE: Using RAPI to Run Applications (Part 1)
A few months ago I downloaded the Windows Mobile Developer Power Toys (Download details: Windows Mobile Developer Power Toys) because I had a need for CERDISP, the Windows CE Remote Display tool. At that time, I looked around at the other tools that were installed and played with RAPIStart.exe. RAPIStart.exe is a command line tool that lets you start applications on your device from your workstation using ActiveSync. A handy little tool, so I made a note to try to reproduce it and write a little ......

Posted On Thursday, October 29, 2009 2:48 PM | Comments (1)

Windows CE: Watchdog Timers
Watchdog timers have been coming up in discussions lately, so I thought it might be good to start a discussion about the use and misuse of watchdog timers in a preemptive multitasking operating system, like Windows CE. I am going to share my thoughts, but look forward to you, my reader, sharing your thoughts on the subject. I am going to focus this discussion on hardware watchdogs, totally ignoring the software watchdog that is included in Windows CE and discussed by Luca Calligaris in an article ......

Posted On Tuesday, September 29, 2009 8:03 PM | Comments (2)

Platform Builder: Compiler Optimization and Volatile
Many of you already know about the use of the C/C++ keyword volatile, but I was having a discussion with a colleague this afternoon and the topic came up. The colleague is a bright up and coming engineer who finds himself writing software, but really wanting to design hardware. He was telling me about a test that he wrote to estimate the CPU speed of a board. Simple little application, get the current milliseconds using GetTickCount(), then run a busy loop. When the loop completes call GetTickCount() ......

Posted On Tuesday, December 30, 2008 10:40 PM | Comments (0)

Windows CE: 7.0 Announced
Yesterday at the Embedded Systems Conference (ESC) Boston, Kevin Dallas the General Manager of Windows Embedded at Microsoft announced that there will be a major release of Windows Embedded CE 7.0 in Q2 2010. Well, that is entirely accurate; the release will be named Windows Embedded Compact 7.0. That is right, the name is changing from CE to Compact. This brings the naming in line with naming of other Windows Embedded products. This spring I attended the MVP Summit at Microsoft, an NDA event, and ......

Posted On Wednesday, September 23, 2009 10:46 PM | Comments (3)

Windows CE: Overview of Silverlight Application Development
The soon to be released Windows Embedded CE 6.0 R3 will contain a new Silverlight for Windows Embedded that will change the way great applications are developed. There are some videos available on the Windows Embedded WEB site that explain this new feature better than I can, but I want to give you a quick overview. Silverlight for Windows Embedded is not the same Silverlight that you may have seen being used by WEB sites. Instead it is a subset of the browser plug in designed to be used by stand ......

Posted On Wednesday, September 23, 2009 9:54 PM | Comments (1)

Windows CE: Soon to be Available – 6.0 R3
Yesterday at the Embedded Systems Conference (ESC) Boston, Kevin Dallas the General Manager of Windows Embedded at Microsoft announced that there will be a Windows CE 6.0 R3 release available within a month. The engineers tell me that the work is complete, now it is just a matter of getting it ready for us to download. The goal of the R3 release seems to be centered on usability. The new features are: Silverlight – or actually a subset with variation. This is not Silverlight for the browser, but ......

Posted On Wednesday, September 23, 2009 9:01 PM | Comments (0)

Windows CE: Suspend, What Really Happens?
What happens when a Windows CE device suspends? What does suspend mean? Let’s look at these, but not in the technical sense of examining all of the details and twists and turns, but in terms that an application developer and maybe a user may want to know. Suspend, also known as putting the device to sleep or on some devices turning it off, is a way to put a device in a state that it consumes very little electricity. This is important for battery operated devices, like PDAs and cell phones. The system ......

Posted On Monday, September 21, 2009 8:07 PM | Comments (13)

Windows CE: Printing in Color
The Windows CE printer driver (pcl.dll) is capable of printing in color, but it might not recognize that your connected printer supports color. When this occurs, the print dialog will not allow selecting color as a print option. The good news is that this can be corrected. There are a few ways to handle this: Use the default PCL Inkjet printer in the print dialog. It has been setup for color support. Modify the registry settings for the printer. Modify the printer driver to always support color printing. ......

Posted On Wednesday, September 2, 2009 8:10 PM | Comments (0)

Windows CE: Removing Event Notifications
So you used one of the notification functions, like CeRunAppAtEvent() or CeRunAppAtTime(), to request that an app or event be signaled when a system event occurs. Now you want to disable the event notification, well that is easy just call the same function again but with different parameters to disable it. Let’s look at this: // Ask the system to run repllog.exe when a cable is connected. CeRunAppAtEvent(TEXT("repll... NOTIFICATION_EVENT_RS232_DE... ... do other stuff // Ask the system ......

Posted On Tuesday, September 1, 2009 8:36 PM | Comments (2)

Windows CE: Outputting Copyrts.txt to the Debug Port
Windows CE: Outputting Copyrts.txt to the Debug Port Someone asked on the newsgroups recently about reading copyrts.txt from an application. This is really a simple task to do, but I decided to output the file to the debug port, which turned out to be way more interesting. The code below works to read the file into a buffer that is allocated to be the size of the file, so it reads the entire file in one call to ReadFile(). Of course to keep this simple, I left out any and all error handling – which ......

Posted On Friday, July 31, 2009 12:05 PM | Comments (2)

Windows CE: Event Data
Earlier I wrote about using Events in Windows CE (see Windows CE: Synchronization Objects – Events and Windows CE: Event Test Code) but I didn’t discuss event data. Events can have data associated with them so that one thread can pass a small piece of data to another thread. This is accomplished by calling SetEventData() and GetEventData(). The data is a DWORD, although that means that it can be a pointer to data. Of course the pointer only works if both threads are in the same process, but either ......

Posted On Friday, July 31, 2009 11:42 AM | Comments (1)

Windows CE: fatal error LNK1112:
I have seen questions about the Visual Studio error “fatal error LNK1112: module machine type 'THUMB' conflicts with target machine type 'ARM'” quite a bit lately. Tonight it happened to me. I was working on a project that I had targeded against the PocketPC 2003 SDK. Then I added a new SDK, in this case a Windows CE 5.0 ARMV4I SDK, to the project and had it copy settings from the PocketPC 2003 settings. Unfortunatly, not copying the settings makes things worse. Adding the SDK looks like: The problem ......

Posted On Thursday, July 30, 2009 9:32 PM | Comments (1)

Windows CE: Event Test Code
Yesterday, I wrote about Windows CE Events in Windows CE: Synchronization Objects – Events. Today I thought I would write some sample code to demonstrate the behavior differences between event types (manual and auto reset) and the functions for signaling the event (PulseEvent() and SetEvent()). I started by defining some macros to make the code easier to read. The call to CreateEvent() takes some parameters that are simply TRUE or FALSE. When you are writing the code and reviewing the documentation ......

Posted On Wednesday, July 29, 2009 9:30 PM | Comments (2)

Windows CE: Editing the Registry
I have posted several articles about writing software to modify and read the registry (see Summary of Registry Posts.) But what if you aren’t a Software Engineer, or don’t want to write a program to make a simple change to the registry? There are several registry editors available: · Remote Registry Editor – this tool comes with the development tools for Windows CE. It allows users to edit the Windows CE registry on a PC via a connection to the Windows CE device. The connection can be through ActiveSync, ......

Posted On Monday, February 16, 2009 12:40 PM | Comments (2)

Windows CE: Monitor Power State Changes
I started writing this as a how to monitor for system resume. But then I thought that a more general function that monitors for power state changes would be more useful. Many applications have reasons to monitor for Suspend and Resume transitions. There isn’t a good general way to monitor for Suspend, but applications can be notified when the system resumes. I do think that it would be good for applications to be notified on suspend so that they can save data just in case of power loss during suspend. ......

Posted On Saturday, February 14, 2009 11:33 PM | Comments (6)

Windows CE: Guide to Setting Thread Priorities
Windows CE has supported 256 thread priorities since version 3.0. Microsoft increased the number of thread priorities at that time to enhance the Windows CE real-time performance. With so many thread priorities, how can a system engineer determine which threads to set at which priority? I am going to attempt to give some guidance for setting the thread priorities in the article. The thread priorities currently supported are 0 through 255. Zero is the highest priority and 255 is the lowest. What this ......

Posted On Friday, February 13, 2009 11:30 PM | Comments (6)

Windows CE: Synchronization Objects – Events
Events are one of the synchronization objects provided by the Windows CE kernel. Events are used to allow one thread to signal one or more threads that something happened. Examples: · Events are used by the kernel and drivers to handle system interrupts. When an interrupt occurs the kernel signals the driver by setting an event that the driver waits for. · Events are sometimes used to signal driver or services that registry settings have been changed by an application or Control Panel Applet. The ......

Posted On Tuesday, July 28, 2009 9:16 PM | Comments (11)

Windows CE: Creating a Control Panel Applet
A reader asked me this week if I had any documentation about creating a control panel application. This topic has been on my list for a year, so I maybe it is time to write about it. I only write code from a clean sheet of paper when I can’t find a good starting point. Luckily for me, this is a case where I can find a good starting point. I am going to start with one of the sample control panel applets available in the shared source code that comes with Platform Builder. I am also going to build ......

Posted On Monday, July 6, 2009 12:18 PM | Comments (6)

Windows CE: Keeping the Backlight On
Chris Tacke of OpenNetCF and I were talking about how to keep the backlight on in Windows CE 6.0 today. He had noticed that the function SystemIdleTimerReset() no longer kept the backlight on, but does keep the system running. I had noticed this a while back, but didn’t have time to look into it. I did have a solution though. The solution is to get an event name from the registry for an event that the power manager is monitoring. Then create the event and set it. Here is how I did it: #define GWE_REG_PATH ......

Posted On Wednesday, June 17, 2009 6:59 PM | Comments (12)

Platform Builder: Setting the Default Color Scheme at Boot
Among the questions that I received today, was “How can the default color scheme be changed?” The default color scheme is the one used with the system boots. It turns out that changing the default color scheme in an OS image isn’t very easy to do. A quick look in the registry might suggest that it should be easy. It looks like just changing the following registry setting would be enough to do it: [HKEY_CURRENT_USER\ControlP... "Current"=mui_sz:"<Scheme name>" But when you test ......

Posted On Saturday, April 4, 2009 8:37 PM | Comments (0)

Windows CE: Remove Suspend from the Start Menu
To remove Suspend from the Explorer shell Start Menu, change the following registry value: [HKEY_LOCAL_MACHINE\Explorer] "Suspend"=dword:1 To: [HKEY_LOCAL_MACHINE\Explorer] "Suspend"=dword:0 You may also want to look at Summary of Registry Posts Tags: REG Files Copyright © 2008 – Bruce Eitman All Rights Reserved ......

Posted On Tuesday, November 25, 2008 5:12 PM | Comments (2)

Windows CE: Waking the System using the RTC
In Windows CE: Suspending a Device I discussed putting the device in suspend. Now let’s look at setting the system to wake using the Real-Time Clock (RTC). There are several Notify Functions that we can use to wake the system at a given time. In this case, I will use CeRunAppAtTime() to request that the system run an application a few seconds after suspending the system. This is a handy way to test the suspend and resume functionality of a system. CeRunAppAtTime() takes two parameters; a string that ......

Posted On Tuesday, November 25, 2008 2:37 PM | Comments (4)

Windows CE: Suspending a Device
One way to conserve power consumption and save the battery is to put the device in Suspend when it is not being used. When a device is suspended it typically powers down peripheral chips on the board and puts the CPU in a low power state. Then when the device is needed it wakes up, powers up the peripheral chips and resumes executing code where it left off before suspending. One way to suspend a device is to call GwesPowerOffSystem(), which is considered by some to be the “old” way to suspend. But, ......

Posted On Tuesday, November 25, 2008 12:23 PM | Comments (5)

Windows CE: Using CEConfig.h
Every Windows CE device has a file named CEConfig.h in the \Windows folder. This file can be used to conditionally compile code against different projects or SDKs. It can also be used to determine the license level of a Windows CE OS. CEConfig.h is created when a Windows CE OS project is built, or more specifically sysgened, using Platform Builder. CEConfig.h contains macro definitions for the OS components included in the project. In other words, it can tell the C code about the features that will ......

Posted On Friday, November 21, 2008 6:31 PM | Comments (2)

Windows CE: Programmatically Setting Up an Application to Auto Start
Last week I needed to write an application for my Electrical Engineer to run at boot up to test some hardware changes. He needed to run this test every time the system booted, and needed to have the system reboot often. Of course I don’t expect an EE to be able to set up the test so that it automatically starts when the system boots, and I don’t want to do it for him so I decided to have the application set itself up to run again on the next boot. I have discussed how to set up an application to ......

Posted On Monday, October 13, 2008 9:35 PM | Comments (7)

Windows CE: Data Synchronization using Interlocked Functions
Windows CE provides several ways to synchronize threads and access to data by multiple threads. These include the synchronization objects that are typical for a multithreaded operating system: mutex, semaphores, events and critical sections. These synchronization objects may be overkill for protecting access to a single variable. The Interlocked functions can be used to control access to a single 32 bit variable. The interlocked functions are: Function Name Action InterlockedCompareExchange Compares ......

Posted On Wednesday, September 3, 2008 8:42 PM | Comments (0)

Windows CE: Running Batch Files
Every once in a while I am asked about running batch files on Windows CE. My first response of course to ask why? But let’s assume that you are set on using a batch file. I know you probably think that batch files are easy to modify, but really I don’t think that they are and you may find that batch files for Windows CE aren’t that easy. The first thing that you are going to need is a Command window, or DOS shell, to run your batch file in. It is likely that your system doesn’t have one, but if you ......

Posted On Thursday, August 21, 2008 7:53 PM | Comments (13)

Windows CE: Automatically setting the Object Store Size
A customer asked me an interesting question today. He wanted to know how to know how much space his system needed for the Object Store. That had me thinking that there could be a way to monitor the size and automatically adjust it, Windows Mobile does that. Of course Windows Mobile probably has a better way to manage the Object Store size than this, I am guessing that it monitors the size within FileSys and adjusts it as requests come in. I wrote the following code just to see what could be done. ......

Posted On Wednesday, August 20, 2008 9:40 PM | Comments (0)

Windows CE: Number of Processes and Threads
Once in a while I am asked how many processes can run at any time in a Windows CE system. It is also one of my interview questions when interviewing a candidate with Windows CE experience, and the follow on question is how many threads can run at one time? Number of Processes: Then number of processes is controlled by the kernel and was changed for Windows CE 6.0 to be 32K processes. Pretty impressive, but I suspect that the limit is much smaller because on most, if not all, Windows CE systems you ......

Posted On Wednesday, August 6, 2008 10:37 PM | Comments (1)

Platform Builder: Glossary of Terms
Platform Builder Help will do a more complete job of documenting much of these terms. This is meant to be a quick start glossary of terms, and will fill in some blanks that Help doesn't cover. Platform Builder - The software development tool used for developing a Windows CE system. This tool is typically used by OEMS who create devices like PDAs, Automated Teller Machines (ATM), medical devices and much more. Board Support Package (BSP) - A BSP is a set of files used to support the chips on a board. ......

Posted On Saturday, May 24, 2008 1:12 AM | Comments (0)

Platform Builder: RETAILMSG vs. DEBUGMSG
What is the difference between RETAILMSG and DEBUGMSG? This question comes up once in a while, so I thought it might be interesting to discuss it. The first thing that we should think about is what are these? The first clue, assuming that we don’t read the documentation, is that they are both in all capital letters. This is usually a clue that they are macros. If they are macros, they cannot be hidden away in a binary, they must be in a header file that we can look at to figure out what they do. ......

Posted On Wednesday, July 23, 2008 10:33 PM | Comments (4)

Windows CE: Starting an Application when the System Boots
You have developed or bought a Windows CE system and developed an Application for it. Now you want to start your application every time the system boots up. Not an unusual need, but the solution will have a lot to do with who you are and what you have to work with. So, who are you? Platform Builder User Since you are using Platform Builder, you have access to the system registry so you can use the HKEY_LOCAL_MACHINE\Init key to start your application. FileSys uses HKEY_LOCAL_MACHINE\Init to find ......

Posted On Monday, June 30, 2008 11:35 PM | Comments (2)

Windows CE: Monitoring for Disk Insertion to add support for Startup folders
Windows CE supports starting applications in the \Startup folder when Windows Explorer starts, but doesn’t automatically run applications on removable media when the media is inserted. It would be nice to have that ability for some devices, although tread lightly with this if security is an issue. The following code example demonstrates how to use the Message Queue Point-to-Point functions and Storage Manager API to detect insertion of removable media and then launch exe files found in a Startup ......

Posted On Friday, June 13, 2008 10:56 PM | Comments (6)

Windows CE: Reading a String from the Registry
I made a change to a string value in the registry recently. That seemed like a harmless thing to do, didn’t it? But, what I did was make the string longer than it was before, again seemed harmless. Harmless until some applications started reading the value into arrays with hard coded length, the problems began. The problem is that RegQueryValueEx() does not have a parameter to indicate the size of the buffer that it will put data into. This means that if the data is bigger than the buffer, RegQueryValueEx() ......

Posted On Wednesday, June 11, 2008 12:48 PM | Comments (5)

Windows CE: How to buy Windows CE or Platform Builder
With so many Microsoft products it is very easy to purchase a license. But how do you by Windows CE? If you want to purchase Windows Vista, you would go to a store (either bricks or clicks) and buy the DVD installation and you are off and running. That just isn’t the way Windows CE works. Windows CE is not a typical off the shelf operating system; it is an operating system for embedded computers. So what is an embedded computer? An embedded computer is a special purpose computer that has custom software ......

Posted On Tuesday, June 10, 2008 9:28 PM | Comments (1)

Windows CE: GetAdaptersInfo() handling when no Adapters Exist
I thought that I would experiment with GetAdaptersInfo() yesterday (this is GeeksWithBlogs!) Being lazy, I googled to find example code to start with, and found GetAdaptersInfo Function on MSDN . This certainly was a good starting point, but I soon found a problem. As it turns out, the day before I had been working on Platform Builder: Find the Source of a Data Abort; an Example where I purposely added a Data Abort to my Ethernet driver. As a result, I didn't have any Ethernet adapters to get information ......

Posted On Wednesday, June 4, 2008 11:10 PM | Comments (0)

Windows CE: ERROR: function @ Ordinal 342 missing
You try to run your application on a new Windows CE device for the first time and BAM you get hit with the following debug output: ERROR: function @ Ordinal 342 missing !!! Please Check your SYSGEN variable !!! So you are wondering what that means. Ordinal? SYSGEN variable? Sounds ominous doesn’t it? The first line says that the function at ordinal 342 is missing. What that means is that a function that your application or DLL plans to call is missing from the OS. If you are new to Windows CE, it ......

Posted On Monday, March 23, 2009 9:27 PM | Comments (0)

Windows CE: Determining if an API is Available
Many Windows CE systems are kiosk type devices, where the Software running on the systems starts when the system boots. This causes a new problem for some software developers: the API may not be ready to be used when the software starts. To add to the fun, not all Windows CE systems are equal so some APIs may never become available. Early versions of Windows CE provide a simple method to determine if an API is available, the function IsAPIReady(). IsAPIReady() is a handy method to determine if an ......

Posted On Sunday, March 22, 2009 10:34 PM | Comments (2)

Windows CE: Dumpbin
A customer contacted me today to ask for help with a Windows CE 3.0 device. Yes, Windows CE 3.0 is alive and kicking on thousands of systems in the field. They were trying to update a driver on the system but the driver wouldn’t load and run. The driver was from a third party who claimed that the driver would run on Windows CE 3.0. I asked a few questions. Is the driver for CE 3.0? Is the driver dependent on some DLL or APIs that aren’t available? Customers being customers, the best that he could ......

Posted On Wednesday, February 25, 2009 8:36 PM | Comments (6)

Windows CE: More on Starting an Application when the Device Boots
I have written several posts about starting an application when a Windows CE device boots. These posts have been fairly popular, but there are still some questions. The how to posts include: · Windows CE: Starting an Application when the System Boots which covers information needed by both application developers and Platform Builder users. · Windows CE: Programmatically Setting Up an Application to Auto Start which covers writing an application that sets itself up to run when the system boots. · ......

Posted On Saturday, February 7, 2009 11:49 PM | Comments (0)

Windows CE: Setting the System Path
When loading an exe or dll Windows CE searches the following folders to find the file to load: LoadLibrary searches for the dll in: · The path given in the call to LoadLibrary() · The directory that the current exe was loaded from · The \Windows folder · The ROM DLL files · A search path defined in the registry CreateProcess searches for the exe in: · The path given in the call to CreateProcess() · The \Windows folder · The root folder · A search path define in the registry The search path defined ......

Posted On Saturday, February 7, 2009 11:45 PM | Comments (3)

Full Windows CE General Archive