- 締切済み
import をせずにmshtmlの機能を使いたい
mshtml を、インタフェースだけインクルードして DLL に処理依頼をさせたいです。 それをする上で、 DDL と、 タイプライブラリ(.tlb)と、 タイプライブラリヘッダー(.tlh)と、 タイプライブラリインプリメント(.tli)と、 インタフェース定義(.IDL)と、 の関係が分からず、困っています。 最終目的としては、 #import を行うことなく、mshtmlの機能を使いたいのです。 【自分の認識】 アーリーバインディングにせよ、 レイトバインディングにせよ、 オブジェクトへの参照/ポインタから起動されたメソッド呼び出しを, 実際に呼び出される関数本体のアドレスに結び付ける、ということができればよいと認識しています。 しかし、 だとしたら、 コンパイル時にバインドさせるときの なぜ .h と lib のような形にならないのでしょう?? レイトバインディングだとしても、 .h があれば、メソッドの種類とIN/OUTはわかりますよね? タイプライブラリ(.tlb)も、 タイプライブラリヘッダー(.tlh)も、 インタフェース定義(.IDL)も、 似たような役割のように感じ、 #import を行うことなく、mshtmlの機能を使うには、 どれとどれを使えばよいのかわからず困っています。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kumatti1
- ベストアンサー率60% (73/121)
回答No.1
>#import を行うことなく、mshtmlの機能を使うには、 https://msdn.microsoft.com/en-us/library/aa752279%28v=vs.85%29.aspx Mshtml.h をインクルードするだけですけど。
お礼
回答ありがとうございました。
補足
現状、tliがありませんというコンパイルエラーが出ています。 やろうとしていることは、shellWindowsで取ってきたウィンドウをウェブブラウザか判定し、IWebBrowser型に代入し、そこからIHTMLDocumentを取って処理を進めようとしています。 そのとき、#Import だとコンパイルエラーにならないのですが、.h のインクルードだけだと 上記のエラーになります。