• 締切済み

import をせずにmshtmlの機能を使いたい

mshtml を、インタフェースだけインクルードして DLL に処理依頼をさせたいです。 それをする上で、 DDL と、 タイプライブラリ(.tlb)と、 タイプライブラリヘッダー(.tlh)と、 タイプライブラリインプリメント(.tli)と、 インタフェース定義(.IDL)と、 の関係が分からず、困っています。 最終目的としては、 #import を行うことなく、mshtmlの機能を使いたいのです。 【自分の認識】  アーリーバインディングにせよ、  レイトバインディングにせよ、  オブジェクトへの参照/ポインタから起動されたメソッド呼び出しを,  実際に呼び出される関数本体のアドレスに結び付ける、ということができればよいと認識しています。 しかし、 だとしたら、 コンパイル時にバインドさせるときの なぜ .h と lib のような形にならないのでしょう?? レイトバインディングだとしても、 .h があれば、メソッドの種類とIN/OUTはわかりますよね? タイプライブラリ(.tlb)も、 タイプライブラリヘッダー(.tlh)も、 インタフェース定義(.IDL)も、 似たような役割のように感じ、 #import を行うことなく、mshtmlの機能を使うには、 どれとどれを使えばよいのかわからず困っています。

みんなの回答

  • kumatti1
  • ベストアンサー率60% (73/121)
回答No.1

>#import を行うことなく、mshtmlの機能を使うには、 https://msdn.microsoft.com/en-us/library/aa752279%28v=vs.85%29.aspx Mshtml.h をインクルードするだけですけど。

TeferiMage
質問者

お礼

回答ありがとうございました。

TeferiMage
質問者

補足

現状、tliがありませんというコンパイルエラーが出ています。 やろうとしていることは、shellWindowsで取ってきたウィンドウをウェブブラウザか判定し、IWebBrowser型に代入し、そこからIHTMLDocumentを取って処理を進めようとしています。 そのとき、#Import だとコンパイルエラーにならないのですが、.h のインクルードだけだと 上記のエラーになります。

関連するQ&A