Prev: Disable Start Menu
Next: How to disable SimUI
From: Michael Cole on 5 Feb 2007 23:06 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 6 Feb 2007 13:45 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 6 Feb 2007 17:07 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 7 Feb 2007 16:18 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 9 Feb 2007 14:53 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 |