POSTのコンテキスト

ActiveXでは、SRCプロパティからURL Monikerというオブジェクトを作成し、それから目的のファイルの内容を取得する。URL Monikerは、"Unique" Resource Locator Monikerというぐらいで、名前の通りならURL Minokerだけでリソースを一意に識別できないといけないのだが、残念ながら、Monikerには、Post時のデータを記憶するような仕組みはない。実際には、Post時に送られたデータを記憶していなければ、目的のファイルを取得することが出来ないのは当たり前だ。

これを説明しているのが、次の記事だ。

SAMPLE: PostMon.exe Demonstrates How to Use URL Moniker to POST Data

これによると、URL Monikerを使ってPOSTをするには、上記の通り、POSTのデータと追加のHTTPヘッダが必要らしい。そして、POSTのデータは、IBindStatusCallback::GetBindInfoで渡し、追加のヘッダに関しては、IHttpNegotiate::BeginningTransactionで渡すということだ。

しかしながら、現状の問題は、SRCプロパティが全く信用できないことと、Post時のデータをどこからも貰えないということだ。リクエスト先のURLに関しては、まぁ、いくらでもあてにするところはあるのだが、Post時のデータはどこから貰えばいいのか。これは大きな問題だ。実際、ここで数日間、悩みまくることになる。