問題タブ [urlmon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1069 参照

c++ - IE8ボックスでURLDownloadToFileを使用する方法(クラッシュしないといいでしょう)?

メソッド(urlmon.dllで定義)を使用してファイルをダウンロードするC++アプリ(これに似ています)を入手しました。URLDownloadToFileIE8 までE_ABORTは、progress コールバックを返すことでダウンロードを中止することができました。

IE8 がインストールされているシステムでは、これを行うとプログラムがクラッシュし、エラー レポートが生成されます。

経由で開始されたダウンロードをキャンセルする別の方法を知っている人はいますURLDownloadToFileか?

0 投票する
1 に答える
1906 参照

internet-explorer - Url Monikers またはその他の方法を使用して IE で Accept-Encoding ヘッダーを変更するにはどうすればよいですか?

カスタム エンコーディング タイプでコンテンツをストリーミングするブラウザ プラグインとサーバー コンポーネント システムを開発しています。クライアントが特別なエンコーディングを処理できるかどうかをサーバー側で検出できるようになり、HTTP での通常の動作と一貫性を保ちたいので、ブラウザ プラグインから新しいエンコーディングを追加したいと思います。 Accept-Encoding リクエスト ヘッダーのエンコーディング。すなわち:

Accept-Encoding: gzip、deflate、myencoding

IHttpNegotiate を実装して、BeginningTransaction の追加ヘッダーとして設定しようとしましたが、無視するか、後で上書きされるようです。

0 投票する
1 に答える
2215 参照

c++ - URLDownloadToFile と認証

「ダウンロードマネージャー」として使用される古いATL OCXに取り組んでいます。URLDownloadToFile APIを使用してファイルをダウンロードします。

以前は、Web ページで ActiveX としてホストされていたため、サーバーで認証が必要な場合は IE によって行われていました。現在は実行可能ファイルの一部になっているため、認証を処理する必要があります。ユーザーがユーザー名とパスワードを提供したとしましょう。実際に「認証」を行うにはどうすればよいですか? IIS 用の簡易 Web 認証NTLMをサポートする必要があります。

Simple Web Authenticationの場合、URL の前にユーザー名/パスワードを渡すと問題なく機能することがわかりました。しかし、それが適切な方法であるかどうかはわかりません。

アドバイスしてください ありがとうザキー

0 投票する
1 に答える
5195 参照

c++ - 使用するおよび URLDownloadToFile を使用して、HTTPS Web リソースを取得します。

全て、

ローカル ネットワークの内外でさまざまな Web サイトからコンテンツをダウンロードできるプログラミングを作成しています。これを行うには、互換性の理由からライブラリと C++ を使用する必要があります。これまでのところ、通常の HTTP ページと Web 上の HTTPS ページに正常にアクセスできました。例:

できないことが 2 つあります。1) ローカル CA 証明書を使用するローカル ネットワーク リソースにアクセスする。

2) ローカル CA 証明書を使用するローカル ネットワーク リソースにアクセスし、クライアント証明書を介してクライアント認証を要求します。

最初のケースでは、信頼できる CA の Windows リストにないため、Windows が接続を許可していないと思います。

2番目に、クライアント証明書/秘密鍵を URLDownloadToFile の呼び出しに統合する方法を見つける必要があると思いますが、これを達成する方法がわかりません。さらに、ローカル CA を信頼するよう Windows に指示する必要もあります。

どんな助けでも大歓迎です。

0 投票する
1 に答える
618 参照

c++ - URLOpenPullStream および gzip コンテンツのダウンロード - 非圧縮データが必要

URLOpenPullStream を IBindStatusCallback および IHttpNegotiate コールバックと共に使用して、ネゴシエート、ステータス、およびデータ メッセージを処理しています。私が抱えている問題は、コンテンツが gzip の場合です (例: Content-Encoding: gzip)。OnDataAvailable 経由で受信しているデータは圧縮されています。非圧縮データが必要です。BINDF_PULLDATA | を使用しています。BindF_GETNEWESTVERSION | BINDF_NOWRITECACHE バインディング フラグ。gzip 形式をサポートする必要があるという投稿をいくつか読みました。

私は最初、Accept-Encoding リクエスト ヘッダーを変更して、gzip が不要であることを指定しようとしましたが、これではうまくいきませんでした。BeginningTransaction でヘッダーを変更または追加できますが、Accept-Content の変更に失敗します。User-Agent を変更でき、新しいヘッダーを追加できたので、プロセスは機能しましたが、何らかの理由で Accept-Content をオーバーライドしませんでした。

他のオプションは、自分でデータを解凍することです。C++ gzip ライブラリを使用した簡単なテストでは、コンテンツを unzip できました。したがって、これはオプションかもしれません。これが私がしなければならないことである場合、それを検出するための最良の方法は gzip です。BINDSTATUS_MIMETYPEAVAILABLE で OnProgress イベントが発生し、テキストが "application/x-gzip-compressed" に設定されていることに気付きました。これは私がそれを検出する方法ですか?

この問題を回避するための解決策を探しています! 私は URLOpenPullStream を使い続けたいと思っています。これはリリースされた製品であり、変更を最小限に抑えたいと考えています。

0 投票する
5 に答える
13999 参照

c++ - URLDownloadToFile()が終了するのを待っています

インターネットからページをダウンロードして解析するプログラムを作りたいです。2番目の部分は簡単です、問題は最初です。

URLDownloadToFile()関数を使用したい。ただし、デフォルトでは、ダウンロードが完了するのを待ちません。MSDNによると、最後のパラメーターは一種のコールバック関数ですが、その使用方法に関する情報は見つかりません(呼び出されたときと実行する必要があること、関数の種類も)。誰かがその最後のパラメーターとは何か、そしてそれを(C ++で)使用してアプリを待機させる方法を説明できますか?

0 投票する
1 に答える
1275 参照

c# - FindMimeFromDataが1つのホストで画像/tiffを認識しているのに、別のホストでは認識しないのはなぜですか?

アップロードされたファイルのMIMEタイプをスニッフィングするためにFindMimeFromDatafromを使用しています。Internet ExplorerのMIMEタイプ検出にurlmon.dllよると、は認識されているMIMEタイプの1つです。私の開発マシン(Windows 7 64ビット、IE9)では正常に動作しますが、テスト環境(Windows Server 2003 R2 64ビット、IE8)では動作しません-の代わりに戻ります。image/tiffapplication/octet-streamimage/tiff

上記の記事では、MIMEタイプを判別するために実行する正確な手順について説明していますが、これimage/tiffは26の認識されたタイプの1つであるため、ステップ2(実際のデータをスニッフィング)で終了する必要があります。これにより、ファイル拡張子と登録済みアプリケーション(およびその他のレジストリ関連のもの)が関係ありません。

ちなみに、TIFFファイルは実際にテストサーバー上のプログラム(Windows画像とFAXビューア)に関連付けられています。WindowsレジストリにTIFFへの参照がないわけではありません。

期待どおりに機能しない理由はありますか?

編集: FindMimeFromDataは次のように使用されます:

これは次のように呼ばれます:

0 投票する
3 に答える
2266 参照

c# - Visual Basic 6.0で「パブリック宣言Ansi関数」を実行するにはどうすればよいですか?

このVB.NET/C#宣言をVisual Basic 6.0宣言に変換しようとしていますが、問題があります(C#バージョンが含まれていますが、VB.NETへの変換は問題ありません)。

ご覧のとおり、Visual Basic / C#にCharSet=CharSet.Ansiは、Visual Basic 6.0での方法がわからない部分があります。エイリアス名の最後にAを追加しようとしましたAlias "UrlMkSetSessionOptionA"が、実際にはそうではありませんでした。動作しません(と言いますcan't find DLL entrypoint in urlmon.dll)。これがないと、pBufferに送信された文字列がぎこちないものとして出てきます(私が認識できない奇妙な文字)。

これが私がこれまでに得たものです...

0 投票する
0 に答える
66 参照

delphi - Delphi XE2 winapi.urlmon.CoInternetSetFeatureEnabled が見つかりませんか?

重複の可能性:
Delphi2010 の CoInternetIsFeatureEnabled

twebbrowser コントロールでナビゲート音の煩わしいクリックを無効にしようとしていますが、winapi.urlmon が表示されないようです。どこでも CoInternetSetFeatureEnabled?

0 投票する
1 に答える
8867 参照

c# - urlmon.dll FindMimeFromData() は 64 ビットのデスクトップ/コンソールでは完全に動作しますが、ASP.NET ではエラーが発生します

デスクトップ環境と Web 環境の両方で使用されるユーティリティのライブラリを作成しています。

これには、ファイルのコンテンツ (拡張子ではなく) によってファイルの MIME タイプを取得するユーティリティなど、私のアプリケーションで頻繁に繰り返されると思われるいくつかの機能が含まれています。

チェックする必要があるファイルは最も一般的なもの (jpg、png、pdf、txt) であるため、外部メソッドFindMimeFromData(上記のリンク)を使用することにしました。

.NET を使用して、拡張子ではなくファイル署名に基づいてファイルの MIME タイプを見つける方法

この方法はうまく機能しますが、JPG ( image/pjpg) と PNG ( image/x-png) の 2 つの不適切な MIME タイプを除いては、return ステートメントの前にチェックを行うことで簡単に解決できます。

ライブラリは、32 ビットと 64 ビットの両方でサーバー/クライアントにインストールする必要があるため、プラットフォーム AnyCPU 用にコンパイルされています。

デスクトップ環境でテストした時点では、x86 および x64 用にコンパイルされたアプリケーションの両方ですべて正常に動作しました。

ASP.NET アプリケーション (テスト用の http ハンドラーを含む空のサイト) のテスト時に、HRESULT タイプのエラーが発生し、デバッガーはそれ以上の情報を提供できないことを通知します。

プールの ID をローカル システムに変更するなど、いくつかのテスト構成を行った後 (結果なし)、問題を特定しました。

プールは 32 ビット アプリケーションを許可する必要があります (上の画像を参照)。

IisAllow32BitApplication

なんで?

urlmon.dll現在の 64 ビット システムの dll をロードするべきではありませんか?

FindMimeFromDataこのライブラリのどこからでもメソッドを呼び出すことができるため、これは大きな問題です。

その結果、別のユーティリティ メソッドによってこのメソッドを呼び出すと、この例外がスローされる可能性があり、デバッグによっても問題を追跡することが困難になります。

アイデア/経験はありますか?

テストに使用したオペレーティング システム

デスクトップ:

  1. Windows 8 x64 -動作
  2. Windows 7 x64 -動作
  3. Windows Server 2008 Standard R2 x64 -動作
  4. Windows Server 2008 Standard x86 -動作
  5. Windows Server 2003 Standard x86 -動作
  6. Windows XP Professional SP3 -動作します

ウェブ:

  1. Windows 8 x64 -最初のエラーが見つかりました。32 ビット アプリケーションが有効になっている場合にのみ動作します
  2. Windows Server 2008 Standard R2 x64 -エラーが確認されました。32 ビット アプリケーションが有効になっている場合にのみ動作します
  3. Windows Server 2008 Standard x86 -動作

EDIT 2(質問は解決しました)

Noseratioによって解決:

パラメータの正しいタイプは、ではなく である必要がありppwzMimeOutます。pBCSystem.IntPtrSystem.UInt32

System.UInt32完全な 64 ビット Web アプリで問題が発生することはわかっていますが、その理由はわかりません。

誰かがこれらの問題の理由を知っている場合は、コメントでよりよく説明できますか?

前もって感謝します