none
i was find XRSHELL problem on platform builder (1687) RRS feed

  • Question

  • i have two version of platform builder.

    one is version 422, another is 1687

    * The 1687 is 'Windows_Embedded_Compact7_RTM_JDP'

     

    i want see xrshell on my wince device. 

    but i cann't see xrshell.. 

    i test on platform builder 422.. and it's ok (i can see xrshell on my device)

     

    so i check to source of  xrshell.

    and i find it, the xrshell need RegisterTaskBar.

    my patch code is blew

     

     ***************
    *** 28,33 ****
    --- 28,78 ----
     
     static const WCHAR* c_pClassName = L"DesktopExplorerWindow"; 
     
    + 
    + #define HHTASKBARDATA     8
    + #define HHTASKBARCLASSNAME   TEXT("HHTaskBar")
    + #define HHTASKBARID      0
    + #define HHTASKBARSTATE     4
    + 
    + LRESULT CALLBACK TaskBarWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
    + {
    + return 0;
    + }
    + 
    + 
    + void DummyTaskBar(HINSTANCE hInstance)
    + {
    + RECT rc;
    + HWND hwndTB;
    + WNDCLASS wc;
    +   wc.style = /*CS_HREDRAW | CS_VREDRAW | */CS_DBLCLKS;
    +   wc.lpfnWndProc = (WNDPROC)TaskBarWndProc;
    +   wc.cbClsExtra = 0;
    +   wc.cbWndExtra = HHTASKBARDATA;
    +   wc.hInstance = hInstance;
    +   wc.hIcon = NULL;
    +   wc.hCursor = 0;
    +   wc.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH);
    +   wc.lpszMenuName = NULL;
    +   wc.lpszClassName = HHTASKBARCLASSNAME; 
    +   RegisterClass(&wc);
    + 
    + hwndTB = CreateWindowEx(0,HHTASKBARCLASSNAME, L"", WS_POPUP, 0, 0,
    +            800, 10, NULL,
    +            NULL, hInstance, NULL);
    +         
    + RETAILMSG(1,(TEXT("DUMMY: Create TaskBar\r\n")));          
    + if(hwndTB)
    + {
    +  RegisterTaskBar(hwndTB);
    +  RETAILMSG(1,(TEXT("DUMMY: Create RegisterTaskBar\r\n")));
    + }
    + else
    +  RETAILMSG(1,(TEXT("DUMMY: Error RegisterTaskBar\r\n")));
    +  
    + 
    + }
    + 
     DWORD MissingAPI(void)
     {
       DEBUGMSG(ZONE_XRS_MISSING_API, (TEXT("XRShell callbacks: Unimplemented shell API called!!\r\n")));
    ***************
    *** 985,990 ****
    --- 1030,1037 ----
     
       // Create our desktop top most window.
       CHR(CreateDesktop());
    + 
    + DummyTaskBar(m_hInstance);
     
       // Now that everything is loaded start the 
       // parsing of Xaml
    

     

     

    apply my path to xrshell then i see xrshell on my device..

    i think.. it's bug of current version of platform build.

    but i don't know it's right? how do you think it?

     

    image of platform builder(422)

    http://www.facebook.com/photo.php?fbid=199404246747567&set=a.199403900080935.55079.100000339796161

    image of platform builder(1687)

    http://www.facebook.com/photo.php?fbid=199403916747600&set=a.199403900080935.55079.100000339796161

    Monday, March 28, 2011 4:22 AM

All replies

  • I don't believe it's the XRShell itself that's causing the problem, as I have run XRShell in PB build 1687 without problems.  I suppose it could be that you have included another component in your OS build that requires the task bar and that is somehow causing XRShell not to appear correctly unless you call RegisterTaskBar, like the NetUI system tray icon or something similar.  Unfortunately I couldn't get your image links to work, so I don't know exactly what you are seeing.
    Tom Gensel PTG Systems, LLC
    http://www.ptgsystems.com
    Monday, March 28, 2011 5:44 AM
  • Thank you T.Gensel

    ok.. i try to find a component.. 

    but... 422 and 1687 are using same component.. :-(

     

    Monday, March 28, 2011 6:27 AM
  • Core OS

     -CEBASE

       -Shell and User Interface

         -Shell

           -User Interface

             -Common Controls

               -Common Control (SYSGEN_COMMCTRL)

    i remove SYSGEN_COMMCTRL then, XRSHELL running on my device..

    if i add SYSGEN_IE7_IEEXR to my osdesign, XRSHELL do not running ...;;

     

    Tom, Do you have a Internet Explorer 7.0 Silverlight for Windows Emabeed or Common Control on your OsDesign?

     

     

     

    Monday, March 28, 2011 11:38 AM
  • May be you have Activesync with you as a component along with silverlight shell.This issue happened with Activesync and it is expecting taskbar for showing connectivity Icon . I created a dummy window like you and registered as a taskbar then the silverlight shell is launched.
    Vinoth.R http://vinoth-vinothblog.blogspot.com http://www.e-consystems.com
    Monday, March 28, 2011 11:58 AM
  • Vinoth 

    thank you for your reply!!

     

     

     

     

    Monday, March 28, 2011 12:34 PM
  • Yes, my OS design contains both SYSGEN_IE7_IEEXR and SYSGEN_COMMCTRL.  Of the other possible candidates, it does not contain SYSGEN_CONNMC, SYSGEN_DATETIME_CPL, or SYSGEN_AS_*.

    Just as a reminder, be sure to do a Clean Sysgen after adding/removing catalog components to/from your OS design prior to retesting.


    Tom Gensel PTG Systems, LLC
    http://www.ptgsystems.com
    Monday, March 28, 2011 5:32 PM
  • Thank you, Tom and Vinoth

    i understand it by your help :-)

     

    Tuesday, March 29, 2011 1:16 AM