IEMobile Team Weblog

Information about Internet Explorer for Windows Mobile

Extending IE Mobile in so many ways...

Howdy!

It's definitely time for another entry, and I'd like to get started updating this space a little more regularly with what's going on in our world here at Microsoft on the IE Mobile team.

I'm Cameron Etezadi, and I've recently taken over as the development lead for all of our mobile and embedded efforts around Internet Explorer.  That's not just IE Mobile, but also our port of the desktop version of IE 6 which is included in Platform Builder, for those of you building Windows CE based devices needing a big-screen browser.  Our focus, however, remains steadfastly behind enhancing IE Mobile on Windows Mobile devices, and, over the next few releases, we'll share with you some of the cool features and functionality that we're doing. 

Your job, as a reader, will be to lobby your mobile device provider for upgrades so you can get all the cool new features, as well as write apps and pages that take advantage of the enhancements!

Rest assured that our previous development lead, Randy Ramig, is still on the team.  He wanted to focus more on architecture and code design, and I'm not only proud to have him on my team in that role, I'm excited about some of the great ideas he's got as we move forward.

For starters, I asked Randy to give a small internal tech talk about browser extensibility to about 30 or 40 internal developers, testers, and program managers who we consider our "partners."  There's all kinds of momentum inside Microsoft for doing cool web things on connected Smartphones and Pocket PCs, and we thought it would be helpful to group many of the possible technologies in one place for easy reference. 

As part of that talk, he put together a set of Powerpoint decks which are more or less a laundry list of key extensibility areas for the IE Mobile browser.  I've taken one of those decks and extracted some slides to share.  Download the attached deck, and have a look for yourself. 

Keep in mind that these slides came from an internal presentation, so they're not polished and slick.  Rather, they're more of what we do to communicate a huge volume of information pretty quickly amongst our developers.  

When it all comes down to it, I probably have just as much difficulty as you do in finding just what interface or technology I need when I'm trying to get a job done.  Randy's done some very helpful work collecting it all up in one place, so I hope you all find this to be useful.

 

Published Thursday, April 06, 2006 11:14 PM by iemoblog

Attachment(s): IE Mobile Extensions.ppt

Comments

 

Robert L said:

Its quite a fantastic job you guys are doing. With more new features from MS, it's going to give us app developers more freedom.

I am particularly intrigued about the extensibility of PIE since I've been working on a application hosting PIE to render text and image contents. The format I am using on desktop ( mhtml ) stoped working on PPC and only solution I found is a third party tool to expand a mhtml file in to html

Is there any plan for PIE to support the mhtml format in the near future or is there a way to work around?

Thanks in advance
R.L
April 25, 2006 1:04 PM
 

Jesus said:

When did the term 'powerpoint deck' come along?  Are Microsoft trying to make things sound cool again?
April 28, 2006 12:05 PM
 

Zandoná Mobile® said:

I have been asked about AJAX development support for Internet Explorer Mobile (running on Windows Mobile-based...
May 3, 2006 10:29 AM
 

Shangwu said:

Recently I purchased a pocket pc with Windows Mobile 5.0 in English version. I want to use it to read East Asian web pages. How can I simply update some registry values to make the PIE show Chinese encoded HTML pages?

Thanks.
May 5, 2006 4:04 PM
 

iemoblog said:

You are correct in that there is no support for mhtml in IE Mobile in any version to date, and we haven't announced any support for it in any upcoming release.
May 23, 2006 7:14 PM
 

Nir said:

Hi I have a problem with the pluggable protocols...
I am using PieHelper sample with Igor Tandetnik's PassThruAPP in order to catch some server headers.
Sadly, it fails with "class not registered" when I try to touch the httpProtocol.
Do you have some clue for me? I have built a parallel project on the pc and it works well.
Should I use a diferent interface on the windowsmobile? is this trick supported?

June 1, 2006 6:55 AM
 

iemoblog said:

Nir --
Make sure you are calling

   CoInitializeEx(NULL, COINIT_MULTITHREADED);

and that you have your COM class is registered properly in the registry.

- Randy
June 1, 2006 12:03 PM
 

hong son said:

hi,
i'm in the process of developing a BHO for IE Mobile and
must get a collection of <input elements.
so far, all my attempts have failed.
there is no support for get_tag() or get_outerHTML().
i know i can do get_all() but how do i determine an element type?
thanks for any insight...
June 14, 2006 11:09 AM
 

iemoblog said:

Hong son:

You can determine the element type by using QueryInterface.  All input elements support IPIEHTMLControlElement, and you can QueryInterface for more specific interfaces to match what you are looking for.

See webvw.idl in the SDK for the interfaces that are supported.

Thanks,
Randy
June 14, 2006 12:34 PM
 

hong son said:

ok, that works, randy;
thanks for your quick response!
but given that get_all exists, wouldn't it be better to provide
get_tags() so that i could get any element desired rather than
this indirect (at best) way of getting <input collection?
June 14, 2006 3:02 PM
 

iemoblog said:

We provide many ways to skin a cat :)

Are your input elements part of a form?
Use document.forms collection to get to your input elements.

Can you put an id attribute into your input elements?
Use the id to index into the document.all collection.

Randy
June 14, 2006 3:14 PM
 

hong son said:

as i'm developing a BHO,
i must search all input elements for a specific one to "click";
i was using forms collection to iterate thru its elements,
but "submit"ing the form does not always work.

even with the element type in hand,
i have to ensure it is an input element by specifically checking for valid type strings.  unless of course, only input element supports
control element interface (which i doubt).
so i really find this rather convoluted way to get a collection of
input elements; thus, my comments about get_tags().

lastly, since my BHO is strictly read-only wrt document,
id attribute would not help.
i do appreciate your insights.
June 15, 2006 8:32 AM
 

Nir said:

Hi,
Im the guy with the question from June 1.
I had a problem with manipulating httpProtocol from bho, and the problem was that the clsid is not found in the registry so I added it myself and now its working well.  2 small ones:

1. Does the lack of the clsid has a reason? (im talking about {79eac9e2-baf9-11ce-8c82-00aa004ba90b} )

2.  when IHttpNegotiate::BeginningTransaction returns E_ABORT the browser shows a "idontknowwhathappenedhere" message - is this by design or are you planning to change it?
June 22, 2006 6:56 AM
 

StoreMan said:

We are building retail applications on Windows CE using hardware from Symbol, Intermec, Casio, PSC, etc
All of them are now migrating to Windows Mobile. But, apparently, Windows Mobile does not support IE6 like Windows CE.NET 4.0 and 5.0 does. PIE on Mobile support much less events on INPUT tag and no external CSS file. All of which are crucial to build serious web applications. Is there any plan to allow IE6 to be installed on Mobile 5.0?
Thanks
June 26, 2006 10:47 PM
 

iemoblog said:

StoreMan -

There are no plans to release IE6 for the Windows Mobile platform.

We are, however, continuing to develop IE Mobile on the Windows Mobile platform.

-Cameron
June 26, 2006 11:11 PM
 

StoreMan said:

Hi again,

At this point we are trying to understand what options we have to build our retail application.  The first thing I tried to do is make our external css files work.  I read in your online documentation that the link object does support the href and rel attributes.  And from what I have found online external css files are possible on a windows mobile device.  Yet when I actually try to make it run it does not work.  I can see it work in a regular internet browser, but on the device itself it is ignored.  Yet when I put the same styling directly into the head section of the page, it works right away.

Here are the docs I have found:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/mobilesdk5/html/mob5lrflinkhtmlelement.asp

Pocket PC: Windows Mobile 2003 and later
Smartphone: Windows Mobile 2003 and later
OS Versions: Windows CE 3.0 and later

I have been developing many applications for windows CE 3.0, CE4.1 and so on...I have seen the process these device went through and I'm a bit shocked as of why Windows Mobile 5.0 > is so limited in the javascript and css abilities.  I guess it comes down to the question, why would you take a step backwards when all the functions already exist in windows CE 4.2 or >.  

I read the online docs and I’m amazed as on how little was included in just the events for example.  Most objects do not have the main events, like onkeydown, onclick…etc…this is a bit of a shock for us…since we thought the technology would improve…perhaps you could shed some light on this for me so I may have some sort of explanation for my boss.  

June 27, 2006 1:45 PM
 

iemoblog said:

StoreMan -

External CSS files _should_ work just fine, but if you've got an example that doesn't work on WM 5.0, we'd like to hear about it.  Please note that there are some subtle differences, depending on what "view" you are using; behaviors vary between One-Column, Desktop, and Default views.  We may not load them if they're not hosted on the same site/server as the rest of the HTML, in some cases, as an optimization.  Also, note that the one-column view is actually a CSS sheet applied with !important flags, which may trump some of what you're trying to set up.

The Javascript engine itself is identical to the desktop and to Windows CE 5.0.  It's the same code, actually - just a port; there's no difference, so everything supported on the desktop is supported on the device.  What is different, though, is the underlying object model.

IE Mobile does not support as complete a DOM as the desktop browser, although we are selectively enabling more and more of it.  MSDN documents fairly well what is or isn't supported, but we're actively writing a new release of the documentation this summer which should address many of your concerns.  I've been reviewing it, as has the rest of the team, and our doc writer's definitely been hard at work and more involved in the process than ever before, which I hope will be reflected when it gets published.

With regards to CSS, the largest missing piece that I can think of is absolute positioning.  We've resisted adding it for a long time because we think it doesn't make a whole lot of sense on a mobile browser (think "three inches from the left side of a screen that's just an inch wide...")  We've got some key scenarios in the future that are going to require it, though, so we're looking at its implementation... Almost all of the _CSS Mobile Profile_, v1.0, is supported on the device, though, and if you write to it, you'll be guaranteed support going forward.

In the mean time, we're constantly working on adding new functionality and enhancing what's already there.  Rest assured that building out the DOM is high on our list.  IE Mobile is designed to be smaller and lighter weight than the IE 6.0 version on Windows CE.  If you run side by side comparisons, using IE Mobile on Windows CE, you'll see we use significantly less memory than that code, which, on mobile platforms - phones in particular - is a real concern.

If there are one or two particular areas ("I have to have <button>," for instance, which I know we don't support at the moment) that you're missing, let us know, and we'll see if we can add it to our backlog.  Most of our roadmap for features comes from OEM and Operator requests, and we don't get a lot of specific, actionable feedback from consumers...and that's part of the mission of this blog.

-Cameron
June 27, 2006 2:13 PM
 

hong son said:

as my previous entries,
my application provides a BHO for IE Mobile.
i fully appreciate your task of balancing memory footprint and
functionality, but i would like to request that you provide a
generic api like get_tags when building out DOM support.
this allows the developer to get at whatever elements he or she
requires.
June 29, 2006 10:13 AM
 

iemoblog said:

do you mean something like Document.getElementsByTagName?  http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-BBACDC08

-Randy
June 29, 2006 12:21 PM
 

hong son said:

yes, precisely...
just like IHTMLDocument3::getElementsByTagName on IE6 or
if that's too expensive, provide at least
IPIEHTMLElementCollection::get_tags to
return a collection of elements matching the specified tag name.
it would seem such a routine must already exist but simply not exposed,
since api's are available for get_anchors, get_images, etc.


June 29, 2006 1:59 PM
 

Nick Fitzsimons said:

@Cameron, re: post of June 29 2006:

I definitely need support for the button element; in fact I'm currently going through a world of pain trying to work around the lack of support for it in adapting 34 UK local radio station sites for handheld devices. It's been a part of the HTML 4 spec since the beginning, so adding support for it shouldn't be regarded as optional.

My client is having to pay a lot of money (to me, granted, but that's not the point) to deal with this, so both I and they would be delighted if you could move this one off the backburner ASAP.

One more pet peeve, which I know you've heard before: why on earth do you apply stylesheets with a media type of "screen"? Again, this leads to problems (this time for users) who are forced to download a screen stylesheet which is then overridden by a handheld stylesheet, which itself has to be much larger than necessary just to override the screen-related rules that make no sense on a handheld device. Users are often charged by the byte or by connection time, or both, and the result of this non-standard implementation is that they are denied a quick and (comparatively) cheap experience in accessing content.

Other than that, IE Mobile is an excellent browser; but I honestly believe you can make it better by honouring these two aspects of the standards. It will save money for companies like my client, and it will save money for users. Could there be a better business case?
July 13, 2006 9:33 AM
 

iemoblog said:

Nick -

Button's actually being done in the next few weeks, as soon as I can get a developer on to it; it should make any future releases we do.  I'm not sure what the history actually was on that one, in regards to why it never got implemented, but it's at the top of the queue for missing features...

The "screen" CSS type is pulled down because most sites won't work without it - if you turn it off, a significant percentage of the web breaks (or just looks terrible.)

What we are doing (that's probably wrong) is pulling both screen and handheld together; if we find handheld, we should probably abandon pulling screen down, and if we locate handheld first in the incoming HTML stream, we should probably never pull screen media down.  

There's some cases where the download happens synchronously, and some where it's asynchronous - and in the former case, it is hard to tell whether we get a handheld type, if it comes later...but if it precedes the screen type, it'd be pretty trivial to skip.

If you look at section 7.3 of the CSS2 spec, around media types, the devices these days are really more than "handheld" was intended to convey.  My latest handheld we're using for testing is 600 MHz+, 128 megs of RAM, a couple of gigs of mini-SD memory, 640x480 pixels, and 3G network equipped (plus 802.11g).  Those specs are better than my first development box when I joined Microsoft to work on Windows NT 4 years ago!

So, I'm not sure I agree entirely about not pulling down or using "screen," but I think in the case where "handheld" exists, we're probably doing the wrong thing, and could be a lot better about it.  I put a bug in our bug database on this one; we'll take a look at it when we do our next round of CSS work.
July 13, 2006 1:33 PM
 

Nick Fitzsimons said:

Thanks for such a quick response.

It could make sense to only use "screen" when "handheld" is absent. Opera does something similar - if "handheld" is present it honours it and ignores "screen"; otherwise it applies some algorithm to convert the "screen" stuff into something that looks good on a small screen (they call it "SSR" for Small Screen Rendering).

As far as how bad some sites look without the "screen" CSS: I'm now finding more and more sites that are using complex CSS layouts (including my own work) which are pretty well broken _because_ of the use of "screen" CSS on IE Mobile, with horizontal scroll bars and overlapping regions, etc. In the early days of CSS, when people were still laying their sites out with tables, CSS was used primarily for typography and a splash of colour. As the use of complex CSS layouts becomes increasingly prevalent, the attempt to render a page using such a layout on a small screen is usually doomed to failure. Hopefully more designers will see the benefit of including "handheld" CSS and, after a suitable period, the inappropriate use of "screen" CSS could be dropped.

But that of course brings us back to your point about the definition of "handheld". This is something I was thinking about just the other day: if a handheld device has a screen that's as good as grandma's 14" monitor, is it still appropriate to regard it as "handheld" in the CSS sense? I'll leave it to the wiser heads of the W3C CSS Working Group to figure that one out; it might have been better just to call it "smallscreen" and leave it at that.

Thanks again for your response.
July 13, 2006 4:39 PM
 

Shangwu said:

Does PIE provide any interface to add menu items to the Context menu like OnContextMenu event for a BHO?

Thanks.
July 19, 2006 4:46 PM
 

Randy Ramig said:

Hi Shangwu, please see the Menu Extensions slides in the deck that Cameron included in this post.
July 20, 2006 11:38 AM
 

sank said:

hi
I'm trying to get around the issue of not getting keydown events on an input form by subclassing the  window procedure of the input forms window(which happens to be a child of the webview window). The keys that I am interested in are primarily the up/down/left/right/select keys. On these keypresses I do a put_innerHTML to change the display on the page. All other messages are passed to the the existing windows procedure for the form through a call to CallWindowProc.

While this works fine on pocketPC 2003; On WM5.0 pocketPC it looks like quick presses of the navigation/selection keys are handled in probably an internal message loop. so the calls to the put_innerHTML happen in a re-entrant fashion causing the app to crash.

Is there a better way to get notified of the keydown events?

As an aside, I'm using the mechanism mentioned in http://blogs.technet.com/suvarnas/default.aspx to access the HTML interfaces. Why is there a difference in the method to access the HTMLDocument interfaces between the 2 versions?
August 1, 2006 1:24 PM
 

iemoblog said:

There is no way to do this right now.  We are considering exposing key press events in a future release.
As for the differences in the versions, it is a bug we are investigating.
Thanks,
Randy
August 3, 2006 11:51 AM
 

Guddi said:

Hi, I'm using Igor Tandetnik's PassThruAPP. I'm totally new to COM techonology so am having a hard time figuring out what is going on in the application. I've tried looking up all API functions to find out if I can see what is happening in the application. What I'm trying to figure out how to do is to allow the ouput of the application to be displayed in the dialog box without any limitations. Currently, when I enter a url, the dialog box can only contain information up to some point in the navigation of the url. Can someone help me figure out how to allow the informaion to keep flowing into the dialog box. Thank you.  
August 3, 2006 12:34 PM
 

mdb said:

Hi, I'm developing a web app that uses the DIV tag with its visibility set to hidden and a display of none. Then through Javascript I am toggling these attributes to be visible and inline, and back to hidden and none. The only problem is when I change these attributes, all IMG tags on the page have their visibility set to hidden. Only background Images remain visible. Any ideas what is causing this? Thanks.
August 8, 2006 4:19 PM
 

mdb said:

Some additional Info: I am developing on the Treo 700w with Windows Mobile 5.0. The OS is 5.1.195 (Build 14929.2.2.1).  The software version is TREO700W-1.10-VZW. The above problem did not occur with TREO700W-1.02-VZW.
August 9, 2006 11:31 AM
 

mdb said:

To go along with the above the problem did not occur with OS 5.1.1700 (Build 14359.0.2.0)
August 9, 2006 11:38 AM
 

iemoblog said:

Hi mdb, are the img tags children of the div tags that you are toggling?  If you could include a snippet that repros, I'd be happy to take a look.
Randy
August 9, 2006 11:45 AM
 

mdb said:

Hi Randy

Here is a condenced version of the code you asked for:

<HTML>
<HEAD>
<TITLE>Portal</TITLE>
<script language="JavaScript">
function showMenu(DIVNAME)
{
if(DIVNAME.style.visibility=="hidden" && DIVNAME.style.display=="none")
{
DIVNAME.style.visibility="visible";
DIVNAME.style.display="inline";
}
else
{
DIVNAME.style.visibility="hidden";
DIVNAME.style.display="none";
}
}
</script>
<style type="text/css">
.BlackLinks
{
text-decoration:none;
color:#000000;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:8.5px;
}
</style>
</HEAD>
<BODY bgcolor="#ffffff" background="images/application/ConduitDesktopBasic.jpg" class="" bgproperties="fixed" id="Conduit" title="Conduit" onLoad="" onUnload="">
<table width="240px" border="0" align="left" cellpadding="0" cellspacing="0" id="Desktop">
<tr>
<td align="left" valign="top" width="100%">
<table width="227px" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="left" valign="top"><img src="images/WMInterface/AdSpace1.gif" border="0" width="227px" id="adbanner"></td>
</tr>
</table>
<table width="227px" border="0" cellpadding="0" cellspacing="0" background="images/WMInterface/MainNavigation.gif">
<tr>
<td align="left">
<a href="#" onClick="Javascript:showMenu(goMenuDiv);"><img src="images/application/blank.gif" height="20px" width="75px" border="0"></a>
</td>
</tr>
</table>
<table width="227px" border="0" align="left" cellpadding="0" cellspacing="0">
<tr>
<td align="left" valign="middle" width="100%">
<div id="goMenuDiv" style="visibility:hidden; display:none;">
<table width="227px" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>
<table width="227px" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<img src="images/WMInterface/MNDesktopLink.gif" border="0"><br>
</td>
<td align="right">
<img src="images/WMInterface/AdText.gif" border="0" id="admenu">
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="left" valign="top">
<table width="100%" border="0" align="left" cellpadding="0" cellspacing="0" class="" id="" style="" title="PrimaryTable">
<tr>
<td align="left" valign="top" class="BlackLinks" id="" title="User Information"><BR>
<img src="images/application/PlayList.gif" width="85" height="30" border="0" id="playlist1"><BR clear="ALL" style="height:2px">
</td>
</tr>
</table>
</td>
</tr>
</table>
</BODY>
</HTML>
August 9, 2006 12:09 PM
 

iemoblog said:

I took a look at this and can't reproduce the problem.  
August 10, 2006 6:18 PM
 

mdb said:

Are you sure you are using the following:
Treo 700w with Windows Mobile 5.0
OS 5.1.195 (Build 14929.2.2.1)
software version TREO700W-1.10-VZW

If not please try the code with this. If yes, are there any updates you can send me becasue I am still having all image objects on the page having their visibility set to hidden.
August 11, 2006 10:11 AM
 

pieguy said:

Hello iemoblog!
Great blog and PIE ROCKS!
Quick question for someone.
It's GREAT that you can easily change the PIE
User-Agent string in the registry to accomodate
realities on the Web right now... but how do
you make it work in real-time? What I mean is...
let's say you have a BHO that is doing nothing but
trying to sense when certain sites should be presented
with certain User-Agents. You can update the registry
freely from within "OnBeforeNavigate" in your BHO
but it seems as if PIE is only reading the "User-Agent"
value once during startup or something and unless you
kill/restart PIE the real-time changes to "User-Agent"
don't get sent.
How can I make dynamic changes to the "User-Agent"
string work in real-time and actually show up in the
output header(s) if/when they need to change
WITHOUT having to restart PIE?
Is there a way to call the top-level SetSite or something
and cause PIE to re-read the registry before or after
navigating to any particular URI?
This would really complete the MAGIC and make the
ability to change User-Agent based on URI a reality.
That would be incredibly cool and useful.
August 13, 2006 1:39 PM
 

iemoblog said:

mdb, I think the best way to figure this out is to point me to a page on the public internet that reproduces this problem.
thanks,
Randy
August 14, 2006 12:27 PM
 

iemoblog said:

Hi pieguy (and here all these years I thought I was the pieguy...)

We use the URLMON component to manage our User Agent string.  You can change this in your BHO by calling UrlMkSetSessionOption, see http://search.msdn.microsoft.com/search/Redirect.aspx?title=UrlMkSetSessionOption+Function&url=http://msdn.microsoft.com/workshop/networking/moniker/reference/functions/urlmksetsessionoption.asp

Please tread lightly, I'm sure you know how important it is to get the UA string right.

Also, see Cameron's latest post at http://blogs.msdn.com/iemobile/archive/2006/08/03/Detecting_IE_Mobile.aspx
on future UA changes.

Randy
August 14, 2006 12:31 PM
 

sank said:

Thanks to Randy for the earlier quick reply.

Are the A:hover, A:active and A:focus CSS dynamic selections supported? The A:link selection worked though.

Also, couldn't get the following javascript to work.

1. div.className="xyz";
2. div.style.background="blue"

Allowing dynamic class name associations would be very helpful. Is this possible? I wasn't able to find any COM API functions for these either.
August 14, 2006 9:43 PM
 

iemoblog said:

Sank:

We support a:active and a:focus, we do not support hover since there is no cursor.  If you are having problems with this, please send me a snippet and tell me the Windows Mobile version you are using.

For the className and background issue, are you attempting to apply those to all <div> elements?  We only support those properties on instances of the object.  For example:

<div id="foo">foo div</div>
<script>
foo.className="xyz";
foo.style.background="blue";
</script>
August 15, 2006 11:46 AM
 

sank said:


You guys respond quick:-) Keep up the good work.

I am using windows mobile 5.0, OS 5.1.70. This is on a Cingular 8125 device.

Following is the html code that am using to test both the A:focus and div.className="xyz" cases ( while trying out the A:focus case I comment out the "onfocus=onfocus1('+a+')":

<html>
<head>
<title>Entries</title>
<style type=text/css >

BODY
{
 margin:0px;
 padding:0px;
 background-color: lavender;
 background-repeat: no-repeat;
 scrollbar-face-color: #553E69;     /* doesn't seem to work on wince IE */
 scrollbar-shadow-color: #553E68;
 scrollbar-highlight-color: #553E68;
 scrollbar-3dlight-color: #553E68;
 scrollbar-darkshadow-color: #553E68;
 scrollbar-track-color: #553E68;
 scrollbar-arrow-color: lightblue;
}


TABLE
{
   border-collapse:collapse;
   border-style:none;
   border-width:0px;
   border-spacing:0px;
   border:0px;
   padding:0px;
   cell-padding:0px;
   margin:0px;
   color :inherit;
   text-decoration:none;
}

A:link
{
 color:inherit;
 text-decoration:none;
 background:inherit;
}
     
A:focus
{
 color:white;
 text-decoration:none;
 background:blue;
}
     
/*
A:visited
{
 color:red;
 text-decoration:none;
 background:blue;
}

A:hover
{
 color:blue;
 text-decoration:none;
 background:blue;
}      


A:active
{
 color:pink;
 text-decoration:none;
 background:blue;
}
*/      


EM
{
   text-decoration:underline;
   font-style:normal;
}

.hi
{
   BACKGROUND: RGB(58, 95, 205);
   color: white;
   PADDING:2px;
   BORDER-BOTTOM: #aaaaaa 1px solid
}

.uh
{
   BACKGROUND: lavender;
   BORDER-BOTTOM: #aaaaaa 1px solid
}

</style>
<script language="JScript">
   function makeTable()
   {
var str = '';
for(a=0; a<10; a++)
{
str += '<div id=';
str += 'row'+a;
str += ' class="uh">';
str += '<a href="#row5" onfocus=onfocus1('+a+') >';
str += '<table width="100%"><tr><td>';
str += 'entry #'+a;
str += '</td><td align="right">';
str += '<img src="http://msdn.microsoft.com/msdn-online/shared/graphics/icons/home.gif"/>';
str += '</td></tr></table>';
str += '</a>';
str += '<\/div>';
}
document.write(str);
               onfocus1(5);
   }


   function onfocus1(a)
   {
var div1=document.all.item("row"+a);
alert(div1.id);
       div1.className="hi";
//div1.style.background="blue";
       //row5.className="hi";
     
   }

</script>
</head>
<body id="body">
<div id="entries">
 <script language="JScript">
 makeTable();
 </script>
</div>
</body>
</html>
August 15, 2006 2:13 PM
 

abusiddiq said:

> I am using following code to update html control. I am seeing difference in
> performance time. If i connect my WindowsMobile 5.0 PocketPc using USB to my
> laptop and then run the below piece of code 10 times on 3 sec timer expiry it
> takes around 250millisec avg to complete the below piece of code. If i
> disconnect the USB and run the same piece of code, it takes around
> 450millisecs avg.  Can anybody explains why Html Control takes much time on
> non-usb case?
>
> void
> html_load(HWND html_win, char *html_buf)
> {
> gtime_stamp_array[0][gtime_stamp_array_index]=GetTickCount();
> SendMessage(html_win, DTM_ENABLESCRIPTING, 0, TRUE);
> SendMessage(html_win, DTM_ADDTEXT, FALSE, (LPARAM)html_buf);
> SendMessage(html_win, DTM_ENDOFSOURCE, 0, 0);
> gtime_stamp_array[1][gtime_stamp_array_index++]=GetTickCount();
> }
>
> void CALLBACK timerFunc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
> {
> static int j=1;
> if(j>10)
> {
> KillTimer(hwnd, 1);
> int time_sum=0,i;
> for(i=0;i < gtime_stamp_array_index;i++)
> {
> fprintf(fp,"%d\n",(gtime_stamp_array[1][i]-gtime_stamp_array[0][i]));
> time_sum+=(gtime_stamp_array[1][i]-gtime_stamp_array[0][i]);
> }
> fprintf(fp,"Avg: %d\n",time_sum/i);
> ExitProcess(0);
> }
> else
> html_load(ghwndHTML,ghtml_buf);
> j++;
> }
>
August 16, 2006 11:41 PM
 

Sean Howarth said:

Hi Randy/IE Mobile Team,

Thanks for all the great information on extending IE Mobile.

We have noticed a difference in the behavior of IE Mobile starting with the A11 version of the Dell x51v (OS 5.1.195, Build 14955.2.3.0). Starting with this version of IE Mobile, the progress bar will disappear before the entire page is finished downloading for a number of websites (clearly visible on apple.com/itunes).

Loading the PIEHelper BHO sample shows that the DocumentComplete event is being fired more than once, even though the websites I am visiting consist of a single frame.

Can you please shed some light on this behavior? Is this behavior intentional? Is it a bug? If so, will it be resolved it in some future release of WM5 (or is it already resolved)?

Your feedback on this issue is greatly appreciated.

Regards, Sean
August 17, 2006 3:47 PM
 

mdb said:

Randy,

Here is a link to a page that reproduces the problem.

http://jbtindustries.com/testpage.htm

This error occurs when using Treo 700w with Windows Mobile 5.0. The OS is 5.1.195 (Build 14929.2.2.1).  The software version is TREO700W-1.10-VZW. The above problem did not occur with TREO700W-1.02-VZW and  OS 5.1.1700 (Build 14359.0.2.0).  When you click on the EDIT Image, a DIV will appear, but all images except the Background image disappear. Obviously something has changed between the new OS version and the new software version.

Thanks for keeping at this.
mdb
August 21, 2006 11:51 AM
 

sank said:

by the way the a:focus css works on a treo running windows mobile 5.0 -  OS 5.1.1.195
August 21, 2006 11:01 PM
 

sank said:


Sorry, that was  OS 5.1.195. It didn't work on another treo (OS 5.1.1700).
August 22, 2006 10:47 AM
 

iemoblog said:

mdb:

Thanks for the URL.  I'm tracking down a Treo.
August 22, 2006 10:01 PM
 

mdb said:

Randy,

I have made a discovery today. The problem actually seem to stem from the onClick Event. When this event is called, all the images disappear as I had stated earlier.  On the testpage I have created some code to demonstrate this.

http://jbtindustries.com/testpage.htm

mdb
August 23, 2006 12:15 PM
 

lee said:

The concept of a scrolling DIV inside IE Mobile seems to be nonexistent. When using the overflow style attribute and specifying the size of the DIV, anything inside the DIV tags that is larger than the specified size will flow over the set boundries. No scrollbars will appear. Is overflow not supported?

<div STYLE="overflow:auto; width:227px; height:50px; border-left:1px gray solid;
       border-bottom:1px gray solid; border-right:1px gray solid; border-top:1px gray solid;
       padding:0px; margin: 0px" ID="NoticeList">
</div>
August 23, 2006 5:23 PM
 

piyush.hari said:

onclick event handler for a select component is not supported in IE mobile ? am I right ? any work arounds ?

-Piyush
September 8, 2006 1:52 AM
 

mdb said:

piyush.hari,

Try using the onChange event. This is supported for the select component.
September 13, 2006 12:05 PM
 

mdb said:

Randy,

I was just hping you might have an update as to the status of the problem I reported.
September 13, 2006 12:06 PM
 

datt said:

Hi iemoblog. I try to use IPIEHTMLInputTextElement for parsing and changing html. I create HelperObject as in SDK samples (Piehelper), and in OnDocumentComplete() tried to get all html objects. At first i test functions get_name(), get_value() on emulator, and its work perfect. But when i try to test my app on WM5 device, this function don't work. They return SUCCEEDED, but instead of bstr, return irregar pointer. And i don't know, why? Is this function is implemented on WindowsMobile 5 or not?
September 16, 2006 6:55 AM
 

leciel said:

Hi everybody. Thank for this resource, it very helpful. I have a problem with using IWebBrowser2::Navigate(), with no-zero PostData. I tried it many time, but always my PostData is ignored. I checked it in OnBeforeNavigate2. Is anyone used with function, or know is this feature is implemented in WM5.0? I use something like this. It is work good on Win32, and I check, in Mobile the format of PostData the same. char* szPostData = "Login=login&Password=password"; char* szDstHost = "http://www.www.www"; char* szHeader = "content-type: application/x-www-form-urlencoded"; CComBSTR vaURL(szDstHost); CComVariant postData(szPostData); char* postDataString = szPostData; int len = strlen(postDataString); postData.vt = VT_ARRAY; postData.parray = SafeArrayCreateVector(VT_UI1, 0, len); void HUGEP* safeData; HRESULT hr = SafeArrayAccessData(postData.parray, &safeData); memcpy(safeData, postDataString, len); hr = SafeArrayUnaccessData(postData.parray); CComVariant header(szHeader); CComVariant flags((int)navNoReadFromCache); hr = m_pWeb->Navigate(vaURL, &flags, NULL, &postData, &header);
September 22, 2006 8:07 AM
 

sank said:

am trying to set up an application to be launched on a specific url scheme.  something like having test app launched whenever a "test://<xyz>" url is activated.

I followed the steps in the following link from the wince msdn documentation:

http://msdn.microsoft.com/workshop/networking/pluggable/overview/appendix_a.asp

but that did not help.

Do we have to implement an asynchronous pluggable protocol handler to achieve this functionality? Or is there a simpler alternative?

November 1, 2006 10:10 AM
 

iemoblog said:

sank:

You should not have to write an AsyncPP, those instructions should work.  Please review your settings, and if you are still having problems, send the HTML source.  Having a repro on the Internet will help.

-Randy

November 3, 2006 1:01 PM
Anonymous comments are disabled

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker