I am launching two applications via the Init registry key. The first
is a simple test application and the second is my "shell" application

"Launch70"="a2test.exe"
"Depend70"=hex:0a,00,14,00,1e,00

"Launch80"="a2man.exe"
"Depend80"=hex:46,00


All was good in the universe. Then I decided to add a PropertySheet to
my test app. I now get an exception because some serivice is not
available. Since I do not know how to determine what it is trying to
use, I added the IsAPIReady(SH_SHELL) at the beginning of my test
application. It NEVER becomes ready! It would seem that this is also
a very obscure, or at least poorly documented, part of CE. If I run
the explorer shell and then lauch my application it runs fine. Are the
common controls dependent on Explorer.exe? Somewhat related is the
fact that if I do not include the AYGSHELL API component the control
panel applets do not show any of their windows controls!

What sets the IsAPIReady(SH_SHELL)? And just as importantly how can I
determine what magic component I am lacking when I get an Invalid
System Service exception?

Re: IsAPIReady(SH_SHELL) and shell components by gerrit

gerrit
Wed Feb 08 13:01:39 CST 2006

I just found some interesting info in another post:

>>The reason for which the callstack is messed up is that the exception is
>>raised in the middle of a PSL call and calling conventions are not
>>respected in PrefetchAbort().
>>This can happen for example when trying to call the GWES before it is
>>loaded.
>>To diagnose the problem, you should find the offending calling function at
>>pth->pcstkTop->retAddr (in the context of the exception).
>>
>>--
>>Greg Hogdal
>>Microsoft Corporation
>>Development Lead - Windows CE Core Diagnostic Tools

I did this then went to the location. It is sipinfo.cpp which
unfortunately I have no source for. So I am still just as perplexed
about what API sipinfo.cpp is trying to use and why it would be
dependent on Explorer.exe

gerrit


Re: IsAPIReady(SH_SHELL) and shell components by Anthony

Anthony
Wed Feb 08 13:02:50 CST 2006

The explorer usual shell is launched through the "launch50" key. Did you
try to change your "launch80" to "launch50" tomake your own shell to be
launched the same way explorer.exe is?
Anyway, what you could do is make your test app be launched after your
shell and make it dependent on thye shell launch key. Don't forget to
use SignalStarted function within your shell to allow your app (which
depend on the shell) to be started, otherwise it will never be launched!

HTH

--
--
----------------------------------------------------------------
Anthony Pellerin
ADENEO (ADESET)
Windows Embedded Consultant
<apellerin AT adeneo DOT adetelgroup DOT com>
http://www.adeneo.adetelgroup.com
Tél : +33 (0)4.72.18.57.77
Fax : +33 (0)4.72.18.57.78
----------------------------------------------------------------


gerrit a écrit :
> I am launching two applications via the Init registry key. The first
> is a simple test application and the second is my "shell" application
>
> "Launch70"="a2test.exe"
> "Depend70"=hex:0a,00,14,00,1e,00
>
> "Launch80"="a2man.exe"
> "Depend80"=hex:46,00
>
>
> All was good in the universe. Then I decided to add a PropertySheet to
> my test app. I now get an exception because some serivice is not
> available. Since I do not know how to determine what it is trying to
> use, I added the IsAPIReady(SH_SHELL) at the beginning of my test
> application. It NEVER becomes ready! It would seem that this is also
> a very obscure, or at least poorly documented, part of CE. If I run
> the explorer shell and then lauch my application it runs fine. Are the
> common controls dependent on Explorer.exe? Somewhat related is the
> fact that if I do not include the AYGSHELL API component the control
> panel applets do not show any of their windows controls!
>
> What sets the IsAPIReady(SH_SHELL)? And just as importantly how can I
> determine what magic component I am lacking when I get an Invalid
> System Service exception?
>

Re: IsAPIReady(SH_SHELL) and shell components by gerrit

gerrit
Wed Feb 08 13:10:30 CST 2006

Yes I have effectively removed the launch50 key (replaced it with
another application that does some HW initialization) And all of my
launch applications call SignalStarted. The function call that is
failing is the SHSipInfo call. Why would creating a PropertySheet
result in that call?


Re: IsAPIReady(SH_SHELL) and shell components by gerrit

gerrit
Wed Feb 08 15:58:31 CST 2006

Got to love documentation!

"Once you have registered the shell callback functions for your custom
shell, Windows CE forwards the Shell_NotifyIcon and SHAddToRecentDocs
functions to your custom shell through these callbacks. Also, the
IsAPIReady function always returns TRUE when any application calls with
the SH_SHELL flag."

Unfortunately, this still does not solve my problem. If I replace the
shell with my application why can't it use the PropertySheet. What
else is Explorer.exe doing that I am not?


Re: IsAPIReady(SH_SHELL) and shell components by Dean

Dean
Thu Feb 09 08:24:42 CST 2006

I'm not an applications guy, but I do know that there are a number of
services that a shell provides. You are probably making a call that depends
on one of them. If you are replacing the shell, then your application needs
to also register the various shell callbacks. IsApiReady(SH_SHELL) won't
return true until you do.

See ShellRegisterCallbacks() for more details.

--
Dean Ramsier - eMVP
BSQUARE Corporation


"gerrit" <google@gerritk.com> wrote in message
news:1139435911.525992.215140@g43g2000cwa.googlegroups.com...
> Got to love documentation!
>
> "Once you have registered the shell callback functions for your custom
> shell, Windows CE forwards the Shell_NotifyIcon and SHAddToRecentDocs
> functions to your custom shell through these callbacks. Also, the
> IsAPIReady function always returns TRUE when any application calls with
> the SH_SHELL flag."
>
> Unfortunately, this still does not solve my problem. If I replace the
> shell with my application why can't it use the PropertySheet. What
> else is Explorer.exe doing that I am not?
>



Re: IsAPIReady(SH_SHELL) and shell components by Dean

Dean
Thu Feb 09 08:42:41 CST 2006

I didn't read your last post close enough - looks like you already tried
this...

--
Dean Ramsier - eMVP
BSQUARE Corporation


"Dean Ramsier" <ramsiernospam@nospam.com> wrote in message
news:eK4cRSYLGHA.2812@TK2MSFTNGP14.phx.gbl...
> I'm not an applications guy, but I do know that there are a number of
> services that a shell provides. You are probably making a call that
> depends on one of them. If you are replacing the shell, then your
> application needs to also register the various shell callbacks.
> IsApiReady(SH_SHELL) won't return true until you do.
>
> See ShellRegisterCallbacks() for more details.
>
> --
> Dean Ramsier - eMVP
> BSQUARE Corporation
>
>
> "gerrit" <google@gerritk.com> wrote in message
> news:1139435911.525992.215140@g43g2000cwa.googlegroups.com...
>> Got to love documentation!
>>
>> "Once you have registered the shell callback functions for your custom
>> shell, Windows CE forwards the Shell_NotifyIcon and SHAddToRecentDocs
>> functions to your custom shell through these callbacks. Also, the
>> IsAPIReady function always returns TRUE when any application calls with
>> the SH_SHELL flag."
>>
>> Unfortunately, this still does not solve my problem. If I replace the
>> shell with my application why can't it use the PropertySheet. What
>> else is Explorer.exe doing that I am not?
>>
>
>



Re: IsAPIReady(SH_SHELL) and shell components by gerrit

gerrit
Fri Feb 10 09:05:58 CST 2006

A response from MS would be nice explaining what Explorer.exe is doing
that makes PropertySheet work! Anyway, I solved the problem by
letting Explorer Launch but then hiding and disabling the taskbar.

// Hide the taskbar. And disable the window (which also turns off
Alt-Tab,
// Ctrl-Esc, and Ctrl-Alt-Del.
hwndTaskbar = FindWindow( _T( "HHTaskBar" ), NULL );
if ( hwndTaskbar )
{
EnableWindow( hwndTaskbar, FALSE );
ShowWindow( hwndTaskbar, SW_HIDE );
}

Because, who knows what else explorer does that could be causing
problems!


Re: IsAPIReady(SH_SHELL) and shell components by gerrit

gerrit
Wed Feb 15 12:57:44 CST 2006

Well, I found a clue but unfortunately MS remains silent. Explorer
conspicuously contains the following:

// Initialize the extra common controls
if ( LoadAygshellLibrary() )
{
AygInitExtraControls();
}

if (PropertySheet(&psh))
.
.
.

So it would appear that indeed the PropertySheet functionality is
dependant on the AYGShell! Without AYGShell I see the pages to the
sheet but no controls on them. This is the same behavior as the
control panel when not including the AYGShell!


Explorer and AYGSHELL dependencies by Steve

Steve
Wed Feb 15 13:53:45 CST 2006

What version of the OS are you dealing with here? We've worked on MANY
projects without aygshell and not had any problems with the control panel or
the pages on the various property sheets.

--
Steve Maillet
EmbeddedFusion
www.EmbeddedFusion.com
smaillet at EmbeddedFusion dot com

"gerrit" <google@gerritk.com> wrote in message
news:1140029864.888078.250900@o13g2000cwo.googlegroups.com...
> Well, I found a clue but unfortunately MS remains silent. Explorer
> conspicuously contains the following:
>
> // Initialize the extra common controls
> if ( LoadAygshellLibrary() )
> {
> AygInitExtraControls();
> }
>
> if (PropertySheet(&psh))
> .
> .
> .
>
> So it would appear that indeed the PropertySheet functionality is
> dependant on the AYGShell! Without AYGShell I see the pages to the
> sheet but no controls on them. This is the same behavior as the
> control panel when not including the AYGShell!
>



Re: Explorer and AYGSHELL dependencies by gerrit

gerrit
Wed Feb 15 15:14:25 CST 2006

5.0 with the latest QFE's


Re: Explorer and AYGSHELL dependencies by gerrit

gerrit
Wed Feb 15 15:21:33 CST 2006

More specifically, we are using the Freescale i.MX21 BSP with source.
I have added and removed the AYGShell API Set component many times with
the effect always the same. Control panel applets do/do not show their
controls. Now I am developing a test app based on a PropertySheet and
see the same effect. I am stumped, and frustrated as the inclusion of
the AYGShell API Set component affects the licensing significantly. Any
suggestions?


Re: Explorer and AYGSHELL dependencies by Steve

Steve
Wed Feb 15 17:50:01 CST 2006

You ld have to review your other sysgen settings. What OS design template
did you start your workspace from?

--
Steve Maillet
EmbeddedFusion
www.EmbeddedFusion.com
smaillet at EmbeddedFusion dot com

"gerrit" <google@gerritk.com> wrote in message
news:1140038493.305718.298210@g14g2000cwa.googlegroups.com...
> More specifically, we are using the Freescale i.MX21 BSP with source.
> I have added and removed the AYGShell API Set component many times with
> the effect always the same. Control panel applets do/do not show their
> controls. Now I am developing a test app based on a PropertySheet and
> see the same effect. I am stumped, and frustrated as the inclusion of
> the AYGShell API Set component affects the licensing significantly. Any
> suggestions?
>



Re: Explorer and AYGSHELL dependencies by gerrit

gerrit
Wed Feb 15 18:10:24 CST 2006

I started from the "Mobile Handheld". Is the template more than just a
starting point?

SYSGEN_ATADISK=1
SYSGEN_AUDIO=1
SYSGEN_AUTH=1
SYSGEN_AUTH_NTLM=1
SYSGEN_AUTH_SCHANNEL=1
SYSGEN_AUTORAS=1
SYSGEN_BATTERY=1
SYSGEN_BTH_SDIO_ONLY=1
SYSGEN_CERTS=1
SYSGEN_CMD=1
SYSGEN_COMMCTRL=1
SYSGEN_CONNMC=1
SYSGEN_CONSOLE=1
SYSGEN_CRYPTO=1
SYSGEN_DOTNETV2=1
SYSGEN_DOTNETV2_SUPPORT=1
SYSGEN_DSHOW_WAV=1
SYSGEN_DSHOW_WAVEOUT=1
SYSGEN_ETH_80211=1
SYSGEN_FONTS_ARIAL_1_30=1
SYSGEN_FONTS_COMIC=1
SYSGEN_FONTS_COUR_1_30=1
SYSGEN_FONTS_GEORGIA=1
SYSGEN_FONTS_TIMES_1_30=1
SYSGEN_FONTS_TREBUC=1
SYSGEN_FONTS_VERDANA=1
SYSGEN_FSADVERTISE=1
SYSGEN_GDI_ALPHABLEND=1
SYSGEN_GPE_CLEARTYPE=1
SYSGEN_GPE_GRADFILL=1
SYSGEN_GRADFILL=1
SYSGEN_HTTPD=1
SYSGEN_MENU_OVERLAP=1
SYSGEN_MFC=1
SYSGEN_MODEM=1
SYSGEN_MSIM=1
SYSGEN_MSPART=1
SYSGEN_NETUTILS=1
SYSGEN_NOTIFY=1
SYSGEN_PLATMAN=1
SYSGEN_PPC=1
SYSGEN_PPP=1
SYSGEN_QVGAP=1
SYSGEN_REDIR=1
SYSGEN_SD_MEMORY=1
SYSGEN_STANDARDSHELL=1
SYSGEN_STOREMGR=1
SYSGEN_STOREMGR_CPL=1
SYSGEN_TOUCH=1
SYSGEN_USB=1
SYSGEN_USBFN_ETHERNET=1
SYSGEN_USBFN_SERIAL=1
SYSGEN_USBFN_STORAGE=1
SYSGEN_USB_HID=1
SYSGEN_USB_HID_CLIENTS=1
SYSGEN_USB_HID_KEYBOARD=1
SYSGEN_USB_HID_MOUSE=1
SYSGEN_USB_STORAGE=1