Printing this FAQ?
- Click this text to see an expanded view.
- Click this text to return to the collapsed view.
General Questions
Frequently Asked Questions About OSD
Technical Questions
Channels
Component Packaging / Code Download
What MIME type do I specify in my dynamically generated .cdf file?
.cdf files that are dynamically generated through Active Server Pages (ASP)
should insert the following line at the top of the file (before any CDF lines):
<% Response.ContentType = "application/x-cdf" %>
This ensures that servers return the correct MIME/content type
application/x-cdf.
Problems with .cdf files being displayed as HTML text inside the Internet Explorer browser, instead of
invoking the subscription wizard, may be caused by the server returning the incorrect
MIME type of
text/html instead of the desired
application/x-cdf.
When dynamically generating a .cdf file from an Active Server Pages (ASP) page, is the ASP file the
one the user needs to subscribe to?
Yes, assuming that the correct CDF MIME type is specified in the ASP page, as illustrated in the question
above, double-clicking on a link to the ASP file should bring up the CDF
subscription wizard appropriately.
I cannot use the ampersand character (&) in my CDF TITLE. Do I have to treat certain
characters in a special way when working with .cdf files?
As mentioned in the
"CDF Parsing Rules and Hints" section of the CDF Reference,
CDF supports encoding of ASCII characters with the format
&#nnn. The ampersand character,
therefore, could be encoded with its ASCII decimal value of 38 by using the string
&.
To specify "Peaches&Cream", for instance, here's what your <TITLE> tag would look like:
<TITLE>Peaches&Cream</TITLE>
Is it necessary to specify the <!DOCTYPE> tag in my .cdf file?
No, Internet Explorer 4 does not use the <!DOCTYPE> tag.
Is http://www.w3c.org/channel.dtd a valid URL for a <!DOCTYPE> tag?
No, this URL is only an example, it does not actually exist and is best not used in
actual .cdf files.
Is there a way to detect from an HTML page whether the user is already subscribed to it?
Is there a difference between the subscription cache and the regular cache that
Internet Explorer maintains?
All subscription information goes into the same cache maintained by Internet Explorer. However, the subscription
content in the cache is marked so that it does not get deleted
when a user clears the cache.
If the user is browsing a subscribed channel while they are connected to the Internet,
is content pulled from the cache, or does Internet Explorer query the server again?
Internet Explorer looks at the expires HTTP header returned by the server when the page was retrieved
and checks if the cached page is still valid. If it is, then content is pulled
from the cache; otherwise, Internet Explorer queries the server again for the content. Note that when Internet Explorer re-queries the server for content, in most cases, Internet Explorer will issue an
HTTP GET request with an If-Modified-Since header, which helps reduce the server load.
Does the actual download of the HTML page occur upon subscription
to the site, or only during a subscription update?
Actual download occurs during subscription update. However, users can manually update
a subscription any time they want.
From a .cdf file, is there a way to specify items to be
cached, without having the items appear in the channel bar's item list? For example, can I specify
a .wav file to be downloaded as part of the subscription update so that it gets cached
and is available when the user browses offline?
Yes, here's the correct way to do this:
<ITEM HREF="http://example.microsoft.com/sound.wav">
<USAGE VALUE="NONE"></USAGE>
</ITEM>
Note that in XML, an element that does not have child elements can be represented in a more compact format.
For instance, the above <USAGE> line could be written more compactly in this manner
(note the final / at the end of the tag):
<USAGE VALUE="NONE"/>
Also, when listing multiple items that are to be cached but not viewed in the channel pane,
instead of marking each one with a <USAGE VALUE="NONE"/>, it is better to place them all in one
sub-channel that is marked with a <USAGE> tag, as illustrated in the example below:
<CHANNEL>
<USAGE VALUE="NONE"/>
<ITEM HREF="http://example.microsoft.com/sound1.wav"/>
<ITEM HREF="http://example.microsoft.com/sound2.wav"/>
<ITEM HREF="http://example.microsoft.com/sound3.wav"/>
</CHANNEL>
Is there a way to specify the order of items to be cached from a
.cdf file? I want to ensure that high priority items are downloaded first during a subscription update.
No, there are no plans to provide support for this for Internet Explorer 4.
Is it possible to specify multiple schedules for updates in one .cdf file?
No, only one schedule can be specified per CDF in Internet Explorer 4.
Also, a desktop component cannot be bundled with a channel in one CDF.
They have to be two separate .cdf files to work correctly.
Is it possible to specify a global time for the <SCHEDULE> tag, so that
my channel updates occur between certain times, regardless of the time zone?
Currently there is no way to specify local or global time in a .cdf file. Information
specified in the <EARLIESTTIME> and <LATESTTIME> tags are both considered local and
ignore any time zone information specified in the <STARTDATE> and <ENDDATE> tags.
Is there any way my application can get notified when a channel gets updated?
Internet Explorer 4.0 will not be providing support for this. The set of APIs that would have provided
this functionality did not reach a point of stability and robustness that we felt
our partners would find acceptable so this feature has been postponed until a future version of Internet Explorer.
Is there any way to find out when a channel was last updated?
Yes, through the WinInet API GetUrlCacheEntryInfoEx. This API, which takes a URL
as a parameter, returns an INTERNET_CACHE_ENTRY_INFO struct containing information such
as local cache UNC path, LastModifiedTime, and similar type of information
about a cached file.
What exactly does <USAGE VALUE="Email"/> mean to my channel?
The URL specified is e-mailed to the subscribed user when the channel content is updated.
For an e-mail client that is not HTML-aware, the link to the URL is sent instead.
After a user subscribes to my .cdf file, my specified logo does not
show up correctly in the Active Desktop channel bar. The
generic satellite dish icon seems to be displayed instead. What's wrong?
Any of the following could cause this problem to occur:
- Use of the <SELF> tag
- The use of <LOGO> tags that point to non-existent files
- CDFs not on PCs or converted to PC text file format before copying
to the server
How does one delete a channel subscription completely from Internet Explorer's cache?
You can do this by right-clicking the channel logo
in the channel bar and selecting
Delete. This causes channel information
to get deleted from these places:
- Temporary Internet Files cache (under C:\Windows)
- Subscription folder (under C:\Windows, also from the Manage Subscriptions submenu
of the Favorites menu)
Is there any way to specify a placement order for my channel in
the channel bar? I want to add my channel to the top of the bar.
No, there is no way to do this. By default new channels will be
added to the bottom of the channel bar.
I haven't been able to get my desktop component to work unless I
put it on a separate CDF from the rest of my channel. Is this how it's designed to work?
Yes, desktop components have to be in a separate .cdf file from the rest of the channel.
We are trying to distinguish between genuine hits on our channel
versus periodic hits from the Internet Explorer WebCrawler trying to update content.
Is there a way to do this using the User-Agent HTTP header?
Yes, this is determined by the presence or absence of the
MSIECrawler
string in the
User-Agent string passed in the HTTP request to the server.
The Internet Explorer 4.0 WebCrawler sends the following User-Agent string, as it tries
to update content on the client machine:
"Mozilla/4.0 (compatible; MSIE 4.0; MSIECrawler; Windows 95)" or
"Mozilla/4.0 (compatible; MSIE 4.0; MSIECrawler; Windows NT)"
Whereas Internet Explorer 4.0 generally sends the following
User-Agent string (without the
MSIECrawler):
"Mozilla/4.0 (compatible; MSIE 4.0; Windows 95)" or
"Mozilla/4.0 (compatible; MSIE 4.0; Windows NT)"
When downloading a User
Document in Internet Explorer, I receive the error "Internet Explorer is
opening file of unknown type: MyUserDocument.VBD...." What's wrong?
When downloading a
digitally signed file, rather than displaying the Certificate dialog box as
expected, a message box appears indicating that the file has been digitally
signed but that it cannot be confirmed. What's wrong?
Microsoft has
recently confirmed a rare Certificate Verification bug caused by the .reg files
offered as part of the tools set of the ActiveX SDK. The bug causes the .reg
files, Wvtston.reg and Wvtstoff.reg, to set the system to check Verisign's
revocation server extraneously. This error occurs only when your system is set
to check the Revocation server, and the Revocation server itself is down (a very
rare occurrence). The recommended solution is to use SetReg.exe available in the
Internet Client SDK's \Inetsdk\Bin folder, rather than the .reg files in the
ActiveX SDK. SetReg.exe should be used to disable Revocation checking on your
machine. By issuing the following command, the off-line revocation server for
individual certificates is disabled:
Setreg 4 true
By issuing the following command, the
off-line revocation server for commercial certificates is disabled:
setreg 5 true
Is there a way to see a debug trace of code download activity in Internet Explorer 4.0?
In Internet Explorer 3.x, this was made possible by installing the debug
versions of Urlmon.dll and Wininet.dll, as outlined in the following Knowledge Base article
HOWTO: Debugging Code Download Activity in Internet Explorer 3.x.
In Internet Explorer 4.0, there is a tool available in the Internet Client
SDK that allows you to do this more easily. See \Inetsdk\Bin\Cdllogvw.exe. There
is also a Cdllogvw.txt file available in the same directory for more details.
What version of the MFC DLL
files ship with Internet Explorer 4.0? I'd like to know so I don't have to
worry about packaging the MFC DLL files with my ActiveX Control.
Any
component should be careful not to rely on the presence of any MFC DLL files
with the currently installed browser, because Internet Explorer 4.0 and future
versions of Internet Explorer may ship alternative versions, or may not even
ship any MFC DLL files at all. A component that uses the MFC DLL files as
dependencies should package the MFC DLL files accordingly. More information on
how to correctly package MFC DLL files correctly with your MFC component can be
found in the following Knowledge Base article:
HOWTO: Packaging MFC Controls for Use Over the Internet.