How to create Windows Mobile Shortcuts?

November 26, 2008

Shortcuts makes it easy for users to launch applications. Shortcut files have “.lnk” extension and they take up very little storage space. Shortcuts contain information about the application to launch along with any parameter information. They are really handy if predetermined values need to be passed to the application as command line parameters.

[Update] Use MakeShortcut tool from to create Windows Mobile shortcuts and that too, right from your desktop. Read on if you want to do it on your device.

How to create a Shortcut on the device

– Run Microsoft ActiveSync on your desktop and establish connection with the PDA.
– Right-click on the ActiveSync icon on the desktop Windows taskbar and Click Explore. This will bringup a window showing contents of Mobile Device folder
– Now goto the folder where the executable resides
– Rightclick on the file (say ABC.exe) and a menu pops up. Select Create Shortcut menu item
– This will generate a shortcut (.lnk) file with the name like “Shortcut to ABC.exe”
– You can rename the shortcut to anything that you like
– Move or copy the shortcut if you want it anywhere else on the device

How shortcuts work (Tech stuff for developers)

This section describes the format of a shortcut file. Simply copy the .lnk file to the desktop and open it in your favorite text editor. I use Notepad. The content in the .lnk file will have the following format.


where xx is number of characters in the above text excluding xx#.

For e.g.


where 18 is the count of characters after pound character (#) and \Windows\abc.exe is the target application.

Creating diagrams with Dia

November 23, 2008

If you are looking for a tool like Visio for creating diagrams but don’t want to spend any money, well…there is an alternative. Dia is a great tool for creating diagrams like UML, flowcharts or entity relationships. It is developed with GTK+ and is supported on Windows, Linux and Unix. Check out this website for more details and to download the installer for Windows.

UML diagram example (Click to enlarge)

UML diagram example

Tool palette window

Tool palette window

Where do I find RAPI header files and libs?

November 15, 2008

To use Remote API (RAPI) calls in your desktop application, you must include rapi.h or rapi2.h and link to rapi.lib. But these are not referred by standard paths of the Windows Mobile SDK.

Locations of these files has changed over time with SDK releases.

WM 6.0 SDK:

\Program Files\Windows Mobile 6 SDK\Activesync\inc
\Program Files\Windows Mobile 6 SDK\Activesync\Lib

WM 5.0 SDK R2

\Program Files\Windows Mobile 5.0 SDK R2\Samples\PocketPC\ActiveSync\Inc
\Program Files\Windows Mobile 5.0 SDK R2\Samples\PocketPC\ActiveSync\Lib

WM 5.0 SDK

\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Activesync\Inc
\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Activesync\Lib

As you see rapi header and lib files are always located under ActiveSync subfolder. It is because ActiveSync must be installed on the target computer for RAPI functions to work.  Installation of ActiveSync installs rapi.dll which actually implements all RAPI functions. It’s always good to confirm the presence of rapi.dll before making any RAPI calls.

Windows Mobile 6.5

November 14, 2008

To compensate for the delay of Windows Mobile 7, Microsoft is planning to release Windows Mobile 6.5 sometime in second half of 2009. Presumably the upcoming version will enhance the user experience and will be aligned to Windows Mobile 7 feature set. Screen-shots of WM 6.5 are available elsewhere on the web (not sure if they are real) but they look cool.

Debugging RAPI dlls

November 8, 2008

I hope the following post will be useful.

Sad news: Paul DiLascia is no more

November 7, 2008

If this code works, it was written by Paul DiLascia. If not, I don’t know who wrote it” used to be the starting comment in his source code files. And I say..Yes Paul..your code always worked.

Paul’s articles were source of indepth information on Win32 and MFC programming. I always enjoyed reading his MSJ Q&A columns.

Surely we will miss Paul.

Maximum path-length or filename sizes on Windows

November 5, 2008

MSDOS could understand 8.3 file names only where 8 characters were reserved for filename and 3 for the extension. But Windows NT onwards Windows applications can create or manipulate path lengths of 260 characters, where 259 are actual characters + 1 NULL character. Moreover out of 259 characters, only 256 characters can be used for each component in the path.

C:\<256 character length><NULL>

NTFS actually can actually support 32767 characters in the paths. To handle this in your application, you must use unicode versions of file APIs such as CreateFileW etc and also prepend “\\?\” to the file paths. This tells the APIs to not to enforce 260 character limit.

To handle 32k long paths from the command line prepend “\\?\” to the paths. For e.g. to copy a file from drive c: to drive d: enter the following statement on the command prompt.

copy “\\?\c:\temp\<Long Path>” “\\?\d:\temp\<Another Long Path>”