Internet Explorer and Print Preview

  • Thread starter Thread starter Paul Pietromonaco
  • Start date Start date
....
I just discovered using FileMon that it could be either case.
Specifically I have found the source for the Print Preview page
and within it I found this:

find /i ".gif" yw7fqxbc.htm

---------- YW7FQXBC.HTM
img.src = img.base + "_hilite.gif";
img.src = img.base + ".gif";
img.src = img.base + "_inactive.gif";
zoomIn.src = "zoom_inactive.gif";
zoomOut.src = "zoom_inactive.gif";
imgSrc.src= "" + imgSrc.id + "_hilite.gif";
imgSrc.src= "" + imgSrc.id + ".gif";
alt="Page Setup (Alt+U)" src="printctl.gif"></BUTTON></TD>
alt="First Page (Alt+Home)" src="begin_inactive.gif"></BUTTON></TD>
alt="Previous Page (Alt+LeftArrow)" src="prev_inactive.gif"></BUTTON></TD>
alt="Next Page (Alt+RightArrow)" src="next_inactive.gif"></BUTTON></TD>
alt="Last Page (Alt+End)" src="end_inactive.gif"></BUTTON></TD>
alt="Zoom Out (Alt+Minus)" src="zoomout.gif" base="zoomOut"></BUTTON></TD>
alt="Zoom In (Alt+Plus)" src="zoomin.gif" base="zoomIn"></BUTTON></TD>
</example>

I actually found the file in a Temp directory under my Local Settings.
Assuming yours would also be loaded into a Temp directory
you could start FileMon and set it to
filter in Temp
exclude QUERY
and highlight iexplore

The file exists as long as the Print Preview "dialog" is running.
The filename is random but yours should be easy to identify
with the above trace. (Good luck.)

Notice that by changing the suffix of the base name there may be
three variations of each button image produced by concatenation.
We could test each possibility using the res:// protocol
(If I can figure out what base= means in the IMG tag
we can generate whatever it does too but that is only used
by zoomIn and zoomOut so let's ignore those two for now.)

So based on that idea here are some links you can test with:

First the unmodified ones which appear in the source:

res://shdoclc.dll/zoom_inactive.gif
res://shdoclc.dll/printctl.gif
res://shdoclc.dll/begin_inactive.gif
res://shdoclc.dll/prev_inactive.gif
res://shdoclc.dll/next_inactive.gif
res://shdoclc.dll/end_inactive.gif
res://shdoclc.dll/zoomout.gif
res://shdoclc.dll/zoomin.gif

Now some of the modified ones created by calling function enableButton(btn,img)
where the effect of the call will be display of two possible images plus an
additional effect... I think you can disable the effects by various options,
e.g. in Display Properties, IE Advanced settings, etc. so for now I will just list the images.

First let's list the possible cases by function call:

enableButton(butFirstPage, begin);
enableButton(butBackPage, prev);
enableButton(butNextPage, next);
enableButton(butLastPage, end);
enableButton(butZoomOut, zoomOut);
enableButton(butZoomIn, zoomIn);

So the images involved are:

res://shdoclc.dll/begin.gif
res://shdoclc.dll/begin_hilite.gif
res://shdoclc.dll/prev.gif
res://shdoclc.dll/prev_hilite.gif
res://shdoclc.dll/next.gif
res://shdoclc.dll/next_hilite.gif
res://shdoclc.dll/end.gif
res://shdoclc.dll/end_hilite.gif
res://shdoclc.dll/zoomOut.gif
res://shdoclc.dll/zoomOut_hilite.gif
res://shdoclc.dll/zoomIn.gif
res://shdoclc.dll/zoomIn_hilite.gif

(Note that the previous question about the base= parameter
seems to be incidentally answered or at least made less important
by this analysis.)

Notice that printctl is not present in the list
therefore we should not expect to see the following
because of that function but these two would appear
after an invocation of function buttonOver() or buttonOut():

res://shdoclc.dll/printctl.gif
res://shdoclc.dll/printctl_hilite.gif


Similarly with function disableButton(btn,img)
we find that the following calls

disableButton(butFirstPage, begin);
disableButton(butBackPage, prev);
disableButton(butNextPage, next);
disableButton(butLastPage, end);

and even (after the fact)

disableButton(butZoomIn, null);
disableButton(butZoomOut, null);

involve images which we have previously noted
(still ignoring added effects, in this case due
to function call buttonLower().)

Again printctl is not involved with this function
either and there is no other function which involves
printctl; so that is an explanation why there isn't
a printctl_inactive.gif to test. ;)

Whew! I think that there may be a way to test
the effects added by the buttonRaise() and
buttonLower() functions too but I'll let you try
all the simple cases first. Note that if they
all work for you you will have evidence that your
problem symptom is due to something other
than the availability of the resources (your idea)
and something more related to a problem with
effects (my idea) or even something related to
scripting in general (Frank's idea.)


(More...)
Yes, I am using themes. I'll try turning them off - and try print preview again.

<pause>

Okay - Display Properties --> Appearance ---> Windows and buttons ---> Windows Classic style.

also Taskbar and Start Menu Properties --> Start Menu ---> Classic Start menu

(just in case.)

Print Preview still fails.

I've made some pictures of it:

http://tenchi.weasel-bot.com/ie_preview/image.jpg

and

http://tenchi.weasel-bot.com/ie_preview/image2.jpg

showing the button highlighted. Does that help?


FWIW I can partially simulate your symptom by using Toggle Images.exe
(from IE5 Web Accessories) but only with

res://shdoclc.dll/preview.dlg

E.g. as soon as I then "Print Preview" that (e.g. Alt-F,v) I get to see
the real buttons, even (curiously enough) in the "Print Preview"!

So, what do you see if you Print Preview that toolbar
and then set zoom to 200%?

Cheers,
Paul


HTH

Robert
---
 
Whew! I think that there may be a way to test
the effects added by the buttonRaise() and
buttonLower() functions too but I'll let you try
all the simple cases first. Note that if they
all work for you you will have evidence that your
problem symptom is due to something other
than the availability of the resources (your idea)
and something more related to a problem with
effects (my idea) or even something related to
scripting in general (Frank's idea.)

I'm in agreement with you and Frank, BTW. When I used "ResHacker", I
finally convinced myself that all the icons were present and accounted for +
the preview script itself was intact.

Just for kicks, though, I tried all the links you posted. (^_^)

Yup - they all gave me an image.
FWIW I can partially simulate your symptom by using Toggle Images.exe
(from IE5 Web Accessories) but only with

res://shdoclc.dll/preview.dlg

E.g. as soon as I then "Print Preview" that (e.g. Alt-F,v) I get to see
the real buttons, even (curiously enough) in the "Print Preview"!

So, what do you see if you Print Preview that toolbar
and then set zoom to 200%?

I'd be happy to oblige!

http://tenchi.weasel-bot.com/ie_preview/image3.jpg

Cheers,
Paul
 
You're keeping us in suspense said:
That shows that you *might* be seeing a fully rendered toolbar
in the Print Preview of it? (I kept trying to click on that bottom
scrollbar to see images of some of its buttons. <G>)

Sorry! I thought I had made that clear. (^_^)

When I load:

res://shdoclc.dll/preview.dlg

I do get the "Print Preview" toolbar in the
browser window:

http://tenchi.weasel-bot.com/ie_preview/image4.JPG

It just doesn't work when I go to Print Preview.

Actually, I'll take that back. It works for a fraction of a second:

http://tenchi.weasel-bot.com/ie_preview/image5.JPG

Then, it fails:

http://tenchi.weasel-bot.com/ie_preview/image6.JPG

Cheers,
Paul
 

That's the one we were waiting to see. I guess I confused the issue
by suggesting 200% magnification (to try to see if the effects were
being rendered too but in retrospect that doesn't make any sense
because there aren't any used in that rendering.) OTOH I just checked:
with 200% magnification a few buttons are visible as soon as I use that
control and although the Print Preview window does not have a Maximize
button it does have Move and Size commands in its window menu;
so with the window "maximized" and centered (using its horizontal
scrollbar) I can see *all* the the graphical buttons (e.g. excluding the
text buttons) at that maximum magnification.

I haven't worked out an easy way of testing adding effects
to buttons yet. The most straightforward idea I have come up with
is to copy the source file I found using my FileMon technique
and modify it so any arbitrary effect (or combination of effects)
could be added to the whole set of buttons. But that is probably
more work than is necessary.


Another possibility we haven't looked at yet is if your video driver
is a factor in this. E.g. if the effects are being added by calling
your card for functions which it can't handle perhaps you would
get Red-X too. I think you could check on that possibility by
using the dxdiag tool's Display tab. In particular I would try
its two tests and then try to see if those Disable buttons change
your problem symptom. E.g. if you disable hardware acceleration
features they should be emulated in software. I imagine that
you are getting such software emulation in the "Print Preview"
of the Print Preview toolbar that you have shown is working (above.)
YNK flipping the bits there might even produce a "fix" for you.


Good luck

Robert
---
 
Hi Robert!

(Thanks for all of your time, BTW!)
Another possibility we haven't looked at yet is if your video driver
is a factor in this. E.g. if the effects are being added by calling
your card for functions which it can't handle perhaps you would
get Red-X too. I think you could check on that possibility by
using the dxdiag tool's Display tab. In particular I would try
its two tests and then try to see if those Disable buttons change
your problem symptom. E.g. if you disable hardware acceleration
features they should be emulated in software. I imagine that
you are getting such software emulation in the "Print Preview"
of the Print Preview toolbar that you have shown is working (above.)
YNK flipping the bits there might even produce a "fix" for you.

I have an nVidia GeForce 3 video card in this machine.

I tried disabling Hardware Acceleration in my video driver. Print Preview
still broken.

Then, I uninstalled all of my nVidia software - video driver, WDM and Stereo
support.

Nope - still broken.

I then re-installed all my video drivers fresh, verified they were installed
correctly, and tried disabling DirectDraw in DXDIAG.EXE.

Nope - still broken.

I'm thinking it's probably not a video card issue. (^_^)

Cheers,
Paul
 
Back
Top