掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
API実現と「タイプライブラリ」実現の違いとは? (ID:79949)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
そもそもVBは、コンポーネント・オブジェクト・モデル(COM:コム)という技術———あるいは、アクティブエックス(ActiveX)と呼んだ方が馴染みがあるかも知れませんが——の上に成り立っています。 そしてCOMでは、インターフェイス(Interface)と呼ばれる物を通して、処理を行うようになっています。 なお、COMテクノロジ自体は非常に奥の深い分野なので、ここで詳しく解説する事はできません。 幾つかの専門書(ISBN:4881357794 など)も出ていますので、興味があれば調べてみてください。 > APIではなく「インターフェイス」という部分が分かりません 「インターフェイス」とは、『メソッドやプロパティの宣言の集まり』の事を指しています。 これはある意味では「クラス」に似ていますが、クラスとは異なり、プログラムコードの「実装」がありません。あくまで、メソッドの定義だけなのです。 例えば、ショートカット作成に使うIPersistFileインターフェイスやIShellLinkAインターフェイスは、以下のようなメソッドを持っています。 http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/ifaces/ishelllink/ishelllink.asp http://msdn.microsoft.com/library/en-us/com/htm/cmi_n2p_99ph.asp (上記MSDNの解説と併せて、ちょくとさんのページも参考になるかも知れません) http://yokohama.cool.ne.jp/chokuto/urawaza/interface/IShellLink/ http://yokohama.cool.ne.jp/chokuto/urawaza/interface/IPersistFile/ しかしVB6では、インターフェイスを定義することが出来ないため、それらを「タイプライブラリ(Type-Library)」という物にしておき、それを通してアクセスする事になります。 > APIでショートカット作成を実現したコードを見ますと、 あれはCOMと言えども、内部的にはAPIを呼び出している事には変わり無いので、突き詰めて行けば「Declareだけでもできない事は無い」という事を示すサンプルですね。 ただ、COM APIを直接Declareで呼び出すというのは、VBのコーディングとしては、あまり一般的な手法ではありません。 通常はタイプライブラリを使って利用するか、もしくは、インターフェイスを定義可能な言語でDLLを作って、それを呼び出すようにします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.