delphi.gif (306 バイト) COMオブジェクト


toach.gif (917 バイト) COMオブジェクトとは何か

COMとはCommon Object Modelの略でMicrosoftが提唱するオブジェクトの規格です。そしてActiveXはCOMを基盤とする技術です。将来のWindowsはこのCOMを基盤とするOSに変わっていくとMicrosoftは言っています。
これが本当ならCOMを知らないとWindowsのアプリケーションは作れないということになりますが、Delphi(C++ Builderも)やVisual Basicを使っている人ならその心配はありません。なぜなら、すでにそのような人たちはすでにCOMを無意識のうちに使ってアプリケーションを作っているのですから。(Visual C++4.0/5.0でCOMを使うにはかなりの知識が必要です)
そうは言ってもCOMの知識があれば人の先をいくプログラミングが可能となります。Visual BasicではCOMの細かな操作を行うためにはWindows APIを使う必要がありますが、Delphiではいくつかの便利なCOMルーチンが用意されています。

 

toach.gif (917 バイト) COMの知識

この場でCOMの内容を詳しく説明できるほどCOMは簡単ではありません。「Delphi3 開発者ガイド」の第4部に「COMとActiveXの操作」があるので、ぜひ一読されることをお勧めします。けっこうわかりやすくCOMの一般技術が述べられています。

 

toach.gif (917 バイト) DelphiのCOM操作ルーチン

ClassIDToProgID   指定されたクラスのクラス ID(CLSID)に対応するプログラマティック ID を返します
CreateComObject   COM オブジェクトのインスタンスを 1 つ作成します
CreateOleObject   OLE オートメーションオブジェクトのインスタンスを 1 つ作成します
CreateRegKey   HKEY_CLASSES_ROOT のサブキーであるレジストリキーを作成します
CreateRemoteComObject   ほかのマシンで Com オブジェクトを作成し,そのオブジェクトの IUnknown 型のインターフェースを返します
DeleteRegKey   システムレジストリから HKEY_CLASSES_ROOT のサブキーであるキーを 1 つ削除します
DLLCanUnloadNow   この関数をエクスポートしてインプロセスサーバーをアンロードできるかどうかを Windows に示します
DllGetClassObject   ActiveX オブジェクトがインプロセス ActiveX サーバー(DLL)にある場合に,ActiveX オブジェクトのクラスファクトリを取得するために使われます
DllRegisterServer   システムレジストリ内の現在のモジュールにインプロセス ActiveX サーバーを登録します
DllUnregisterServer   システムレジストリの現在のモジュールで OLE オートメーションサーバーの登録を解除します
GetActiveOleObject   現在実行中の登録されている OLE オブジェクトへの IDispatch 型インターフェースへの参照を取得します
GetOleFont   Delphi ネイティブの TFont に直接マップされる OLE フォントオブジェクトを作成します
GetOlePicture   Delphi ネイティブの TPicture に直接マップされる OLE 画像オブジェクトを作成します
GetOleStrings   Delphi ネイティブの TStrings に直接マップされる OLE 文字列オブジェクトを作成します
GUIDToString   クラス識別子 GUID を文字列に変換します
OleCheck   結果のコードがエラーを示すとEOleSysError 例外を生成します
OleError   EOleSysError 例外を生成します
OleStrToString   OLE を介して受け取ったデータを Delphi 文字列にコピーします
OleStrToStrVar   OLE 文字列を既存の Delphi 文字列にコピーします
ProgIDToClassID   ProgID パラメータに指定された文字列に対応するクラス ID(CLSID)の TGUID を返します
SetOleFont   OLE フォントオブジェクトを TFont オブジェクトに接続し,OLE フォントオブジェクトのプロパティを TFont にコピーします
SetOlePicture   OLE 画像オブジェクトを TPicture オブジェクトに接続し,OLE 画像オブジェクトのプロパティを TPicture にコピーします
StringToGUID   文字列を GUID に変換します
StringToOleStr   文字列型を OLE 形式の文字列に変換してメモリに割り当てます