Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I was unable to reproduce your problem, however I did some research on the subject. I believe that it is as you suspect, the problem is with step 2 of MIME Type Detection: the hard-coded tests in urlmon.dll v9 differ from those in urlmon.dll v8.</p> <p>The Wikipedia article on <a href="http://en.wikipedia.org/wiki/Tagged_Image_File_Format" rel="noreferrer">TIFF</a> shows how complex the format is and that is has been a problem from the very beginning: </p> <blockquote> <p>When TIFF was introduced, its extensibility provoked compatibility problems. The flexibility in encoding gave rise to the joke that TIFF stands for <em>Thousands of Incompatible File Formats</em>.</p> </blockquote> <p>The <a href="http://en.wikipedia.org/wiki/Tagged_Image_File_Format#TIFF_Compression_Tag" rel="noreferrer">TIFF Compression Tag</a> section clearly shows many rare compression schemes that, as I suspect, have been omitted while creating the urlmon.dll hard-coded tests in earlier versions of IE.</p> <p>So, what can be done to solve this problem? I can think of three solutions, however each of them brings different kind of new problems along:</p> <ol> <li>Update the IE on your dev machine to version 9.</li> <li>Apply the latest IE 8 updates on your dev machine. It is well known that modified versions of urlmon.dll are introduced frequently (eg. <a href="http://support.microsoft.com/kb/974455" rel="noreferrer">KB974455</a>). One of them may contain the updated MIME hard-coded tests.</li> <li>Distribute own copy of urlmon.dll with your application.</li> </ol> <p>It seems that solutions 1 and 2 are the ones you should choose from. There may be a problem, however, with the production environment. As my experience shows the administrators of production env often disagree to install some updates for many reasons. It may be harder to convince an admin to update the IE to v9 and easier to install an IE8 KB update (as they are supposed to, but we all know how it is). If you're in control of the production env, I think you should go with solution 1.</p> <p>The 3rd solution introduces two problems:</p> <ul> <li>legal: It may be against the Microsoft's policies to distribute own copy of urlmon.dll</li> <li>coding: you have to load <a href="http://blogs.msdn.com/b/jonathanswift/archive/2006/10/03/dynamically-calling-an-unmanaged-dll-from-.net-_2800_c_23002900_.aspx" rel="noreferrer">the dll dynamically</a> to call the <code>FindMimeFromData</code> function or at least customize your app's manifest file because of the <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms682586%28v=vs.85%29.aspx#search_order_for_desktop_applications" rel="noreferrer">Dynamic-Link Library Search Order</a>. I assume you are aware, that it is a very bad idea just to manually copy a newer version of urlmon.dll to the system folder as other apps would most likely crash using it.</li> </ul> <p>Anyway, good luck with solving your urlmon riddle.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload