From: Michael Cole on
Two questions here.

1. I have built two seperate CAB files for my application that target
different devices - one for WinCE and one for Mobile5. Both work fine on
their respective platforms. What I would like to know is whether or not I
can go about defining the cab files such that when both are provided to
ActiveSync (WinCE Application Manager), it can check out the device and only
install the appropriate CAB?

2. After installing a particular CAB file, I would like the device to
perform a clean boot (this is a WinCE device, I am installing to Application
using a CPY and REG file, and need to have the app set itself up). Is there
a way to label a CAB file such that the device will give the "You need to
reboot" message after install? The dotNet cab seems to do this.


--
Regards,

Michael Cole


From: r_z_aret on
On Tue, 6 Feb 2007 15:06:04 +1100, "Michael Cole"
<noone(a)microsoft.com.au> wrote:

> Two questions here.
>
>1. I have built two seperate CAB files for my application that target
>different devices - one for WinCE and one for Mobile5. Both work fine on
>their respective platforms. What I would like to know is whether or not I
>can go about defining the cab files such that when both are provided to
>ActiveSync (WinCE Application Manager), it can check out the device and only
>install the appropriate CAB?

I'm quite sure ActiveSync cannot do this. On the other hand, writing a
smarter replacement is not too difficult. First, look in the registry
of the host computer to determine the platform for the device Then use
RAPI to copy and "run" the appropriate CAB file. I can't provide my
source code (mostly because it uses a private class for the registry
functions), but here are relevant notes:
// From 7 Feb 05 contribution by Peter Foot to thread called
// "How can I tell which OS Platform a CE device is using?" in
// microsoft.public.pocketpc.developer:

// Macros are defined in WinNT.h (and correspond to values used in
inf files
// when building CAB files).
(refers to PROCESSOR_STRONGARM, etc., I use)
// NOTE: The strings used here _are_ correct. See 6 Feb 05
contribution from
// Norman Bullen to thread called "CAB Files, WCE 4.x, and
non-Pocket PC 2003"
// in microsoft.public.pocketpc.developer
// HPC - HPC (CE 2.0)
// Palm PC - Palm-size PC (CE 2.01)
// Jupiter - HPC Pro (CE 2.11)
// Palm PC2 - Pocket PC (CE 3.0)
// PocketPC - Pocket PC 2002 (CE 3.0) and Pocket PC 2003 (CE
4.2)
// Smartphone - Smartphone **NOTE: BZ guess, without data**

// From 17 Oct 02 contribution by Alexander Shargin to thread
called
// "installing .CAB-files" in
microsoft.public.win32.programmer.wince
// and microsoft.public.windowsce.embedded.vc

if (!::CeCreateProcess( L"wceload.exe", wPath, 0, 0, 0, 0, 0, 0,
0, &pi ))


>
>2. After installing a particular CAB file, I would like the device to
>perform a clean boot (this is a WinCE device, I am installing to Application

Is "clean" reboot what you really want?

>using a CPY and REG file, and need to have the app set itself up). Is there
>a way to label a CAB file such that the device will give the "You need to
>reboot" message after install? The dotNet cab seems to do this.

A setup DLL will certainly work. I think it could even start the
reboot.

-----------------------------------------
To reply to me, remove the underscores (_) from my email address (and please indicate which newsgroup and message).

Robert E. Zaret, eMVP
PenFact, Inc.
20 Park Plaza, Suite 478
Boston, MA 02116
www.penfact.com
From: Mike Harris [MS] on
1. By WinCE, do you mean a non-WindowsMobile platform? There exists a
section in the INF file that can distiguish between platforms and platforms
versions - see http://msdn2.microsoft.com/en-us/library/aa924318.aspx. For
those asking, "but what's the platform?": typical platforms for
off-the-shelf devices are PocketPC and Smartphone. If you're rolling your
own OS, the value we care about is what's returned from
SystemParametersInfo(SPI_GETPLATFORMTYPE,....).
ActiveSync will use the Platform string and version information, along with
other information (like unsupportedPlatform and processor types), to
determine which cab to install on a connected device from the list of cabs
given passed to CEAPPMGR in the installation inf file. I know it's smart
enough to distinguish between PocketPC and Smartphone platform types, but
I'm not sure whether it can handle random platform strings.

2. Need for a reboot is normally determined whether files are need to be
created/deleted need a reboot to be applied (such as rom-shadowing or in-use
files that cannot be deleted). This is why the .NET cab reboots at the end
of installation. To request a reboot occur at the end of an app's install
or uninstall, include a setup.dll where one of the install/uninstall
entrypoints returns CONFIG_S_REBOOTREQUIRED.

--
---
Mike Harris
Microsoft Corp.
This posting is provided "AS IS" with no warranties, and confers no rights.

"Michael Cole" <noone(a)microsoft.com.au> wrote in message
news:ePfUfQaSHHA.4028(a)TK2MSFTNGP03.phx.gbl...
> Two questions here.
>
> 1. I have built two seperate CAB files for my application that target
> different devices - one for WinCE and one for Mobile5. Both work fine on
> their respective platforms. What I would like to know is whether or not I
> can go about defining the cab files such that when both are provided to
> ActiveSync (WinCE Application Manager), it can check out the device and
> only install the appropriate CAB?
>
> 2. After installing a particular CAB file, I would like the device to
> perform a clean boot (this is a WinCE device, I am installing to
> Application using a CPY and REG file, and need to have the app set itself
> up). Is there a way to label a CAB file such that the device will give
> the "You need to reboot" message after install? The dotNet cab seems to
> do this.
>
>
> --
> Regards,
>
> Michael Cole
>
From: r_z_aret on
On Tue, 6 Feb 2007 14:07:11 -0800, "Mike Harris [MS]"
<mhar(a)online.microsoft.com> wrote:

>1. By WinCE, do you mean a non-WindowsMobile platform? There exists a
>section in the INF file that can distiguish between platforms and platforms
>versions - see http://msdn2.microsoft.com/en-us/library/aa924318.aspx. For
>those asking, "but what's the platform?": typical platforms for
>off-the-shelf devices are PocketPC and Smartphone. If you're rolling your
>own OS, the value we care about is what's returned from
>SystemParametersInfo(SPI_GETPLATFORMTYPE,....).
>ActiveSync will use the Platform string and version information, along with
>other information (like unsupportedPlatform and processor types), to
>determine which cab to install on a connected device from the list of cabs
>given passed to CEAPPMGR in the installation inf file. I know it's smart
>enough to distinguish between PocketPC and Smartphone platform types, but
>I'm not sure whether it can handle random platform strings.

The "unsupported platform" section can prevent installation on
specific platforms. So it can handle a set of CABs for Pocket PC and a
set of CABs for Smartphone. But all of those platforms must be listed
explicitly. That means it really can't be used to distinguish between
"Pocket PC" and "other". The OS version section could help, but only
if the versions are different. I have one set of executables for
Pocket PCs and one set for everything else; I gave up trying to get
CeAppMgr to handle this distinction.

-----------------------------------------
To reply to me, remove the underscores (_) from my email address (and please indicate which newsgroup and message).

Robert E. Zaret, eMVP
PenFact, Inc.
20 Park Plaza, Suite 478
Boston, MA 02116
www.penfact.com
From: Frank S on
Mike Harris [MS] wrote:
> 1. By WinCE, do you mean a non-WindowsMobile platform? There exists a
> section in the INF file that can distiguish between platforms and
> platforms versions - see
> http://msdn2.microsoft.com/en-us/library/aa924318.aspx. For those
> asking, "but what's the platform?": typical platforms for off-the-shelf
> devices are PocketPC and Smartphone. If you're rolling your own OS, the
> value we care about is what's returned from
> SystemParametersInfo(SPI_GETPLATFORMTYPE,....).
> ActiveSync will use the Platform string and version information, along
> with other information (like unsupportedPlatform and processor types),
> to determine which cab to install on a connected device from the list of
> cabs given passed to CEAPPMGR in the installation inf file. I know it's
> smart enough to distinguish between PocketPC and Smartphone platform
> types, but I'm not sure whether it can handle random platform strings.
>
> 2. Need for a reboot is normally determined whether files are need to be
> created/deleted need a reboot to be applied (such as rom-shadowing or
> in-use files that cannot be deleted). This is why the .NET cab reboots
> at the end of installation. To request a reboot occur at the end of an
> app's install or uninstall, include a setup.dll where one of the
> install/uninstall entrypoints returns CONFIG_S_REBOOTREQUIRED.
>

Where is CONFIG_S_REBOOTREQUIRED documented? Which versions of Windows Mobile support this return code?

--
Regards,

Frank
 | 
Pages: 1
Prev: Disable Start Menu
Next: How to disable SimUI