MPEG ファイルを再生する OCX を開発しています。
その OCX を貼り付けた HTML ファイル(VB Script)を
IE6 や VB6+SP5 の WebBrowser コントロールで呼び出し,
表示させようとしています。
あるとき,OCX が張り付いている HTML ファイルの
フルパスを OCX 自身が知る必要が出てきました。
どのようにすれば OCX は,張り付いている HTML ファイルが
呼び出されたとき,その HTML ファイルのフルパスを知ることが
出来るでしょうか?
ご存知の方,ご教示ください。
[追記]
実行環境や,HTML ファイルはネットワークを介することなく
ローカル PC 上でローカルな HTML ファイルの処理です。
WebBrowser コントローラな実行ファイルから HTML ファイルを
呼び出すとき,OCX にも HTML ファイルのフルパスを通知すること
なく,OCX 自身が HTML ファイルのフルパスを知ることが
できないかを検討しています。
OCX へは再生する MPG ファイル名を,ファイル名のみ,または
相対パス指定によるファイル名を渡しています。
MPG ファイルは HTMLファイルのあるディレクトリの配下に
あるのですが,WIN32API の GetFullPathName() で MPG ファイルの
フルパスを取得すると,EXE ファイルをカレントディレクトリとした
パスになってしまいます。
なんらかの方法で OCX が HTML のフルパスを知ることが出来れば
正しい MPG ファイルのフルパスに変換できると思います。
引き続き,情報をお待ちしてます。。
OCXが張り付いているHTMLファイルのフルパスを取得する方法が分かりました。
OCX から IWebBrowser2 インタフェイスを取得後, IWebBrowser2::get_LocationURL 関数により,HTMLファイルのURLを
取得することができるようです。
http://support.microsoft.com/default.aspx?kbid=172763
URLなので,ローカルマシン上のファイルなら file: が,
WWWサーバ上のファイルなら http: が先頭につきます。