Please note that this topic is an addition to the AppToDate support (basic) topic, which can be found here - you should ensure you are familiar with these basics first!
Descriptions
First of all let's talk about the
<description><b>My Application</b><br /><br />This is some information about <i>my application</i></description>
Note that this is XHTML and no plain HTML, that is all tags MUST be correctly closed, or they will break the XML structure. To be sure, load your XML up in a browser when complete and ensure it is parsed correctly! Also note that the user cannot navigate within this control currently (it is for display only).
XML location
In the basic tutorial, you were told to install your XML file to the '\Application Data\AppToDate' directory. While this is absolutely fine, you may prefer to install this to the same location as your application for tidiness and perhaps to save storage space. You now can! You simply need to tell AppToDate where to find the XML with a registry key... like so:
Location: HKCU\Software\MoDaCo\AppToDate\XML String Value: MyApp=\Storage Card\Program Files\MyApp\MyApp.xml
In this example, as you can probably guess, AppToDate will search for MyApp.xml in the location you specified, and parse it in exactly the same way as if you had just dropped it into the \Application Data\AppToDate directory.
Device specific caburl entries
In the basic tutorial, I showed you how to formulate your caburl entry in the XML like so:
<caburl>http://www.mysite.com/apptodate/myapp.cab</caburl>
This works great, but there may be some instances whereby you wish to install a specific CAB file based on the device's type (eg Pocket PC / Smartphone), OS (eg 5.2) or resolution (eg 640x480). You can do this with multiple caburl entries.
The first point to note for this advanced feature is that you must ALWAYS have a 'basic' caburl entry specified as above. This is because this is the one that will be used if a caburl with specific criteria cannot be matched. Omitting the basic caburl entry will cause AppToDate to rejection your application XML (bad).
Now think of the device type / os and resolution as 'attributes', which are search for in a particular order. An example... let's imagine I have a device which is Pocket PC, OS version 5.2 and 640x480 (note the higher number always comes first in resolution). You can view a device's attributes in the AppToDate 'About' box.
When AppToDate runs, it will look for caburls in the following order...
FIRST:
<caburl device='pocketpc' os='5.2' resolution='640x480'>http://www.mysite.com/apptodate/myapp.cab</caburl>
SECOND:
<caburl device='pocketpc' os='5.2'>http://www.mysite.com/apptodate/myapp.cab</caburl>
THIRD:
<caburl device='pocketpc'>http://www.mysite.com/apptodate/myapp.cab</caburl>
FINALLY:
<caburl>http://www.mysite.com/apptodate/myapp.cab</caburl>
...so as you can see, you can be quite specific or quite generic, depending on how you configure your XML. You DO need to take note of this order of precedence.
More example, you CAN:
- Specify a CAB for PPC and one for SP
- Specify a CAB for PPC WM5, PPC 2003, SP WM5 and SP 2003
Although you CANNOT (to the order attributes are applied):
- Specify a CAB for VGA and QVGA all platforms
- Specify a CAB for OS 5.2 both platforms
I hope this makes sense and these functions are useful!
Feedback welcomed!
P








