Как узнать, какой «вид» документа отображается в IE - PullRequest
1 голос
/ 05 мая 2009

Я использую c # для создания кнопки для IE, и эта кнопка выполняет определенные действия, которые зависят от того, является ли документ PDF документом. Я пытаюсь настроить защиту, чтобы предотвратить какие-либо действия, если тип документа не является PDF, но я не уверен, как IE передает документ Adobe, а читатель берет на себя ответственность. Я использую оба SHDocWv посмотрел на объекты WebBrowserClass и не уверен, как это выяснить. какие-либо предложения?

Ответы [ 3 ]

1 голос
/ 21 мая 2009

Это немного проблематично сделать это AFAIK.

Значение свойства IWebBrowser2 :: Type зависит от того, какой плагин, который вы установили, который обрабатывает PDF, потому что некоторые плагины создают HTML-оболочку для файла PDF (например, Adobe), поэтому вы получаете «HTML-документ». "as type и некоторые плагины этого не делают (например, Foxit), поэтому вы не можете ретранслировать это исключительно.

Таким образом, если вы получили PDF с HTML-оберткой, вы можете использовать IHTMLDocument2 :: mimeType , чтобы узнать точный тип документа (файлы JPEG / GIF / PNG / и т. Д. Все файлы упаковываются в HTML браузером ). Но, как я знаю, это также ненадежно, например, на моем компьютере он возвращает «Документ Firefox» для документов HTML, потому что файлы .html связаны с Firefox: s Но я не проверял, так ли это с PDF-файлами.

Другой вариант - использовать GetUrlCacheEntryInfoEx Вызов API для получения файла в кеше локального браузера, в котором хранится документ, а затем прочитать его (важно только начало файла, думаю, важны только первые 256 байтов) и вызовите FindMimeFromData с данными, которые вы только что прочитали, и он вернет тип mime.

0 голосов
/ 12 августа 2009

Еще один хороший способ - сделать следующее.

1] Приведите объект Document к IPersist, а затем извлеките CLSID, используя .GetClassID (..). 2] pInvoke ProgIDFromCLSID, чтобы извлечь progId 3] Сопоставьте progID с известными COM-объектами / приложениями.

0 голосов
/ 05 мая 2009

Проверьте тип MIME документа или посмотрите window.location.href веб-браузера ... Если отображается pdf, вы сможете найти его ...

...