DCOM(分布式コンポーネントオブジェクトモデル)原理の浅い分析(一)
(分散コンポーネントオブジェクトモデル)は、マイクロソフトの概念とプログラムインタフェースの一連であり、このインタフェースを利用して、クライアントプログラムオブジェクトがネットワーク内の別のコンピュータ上のサーバプログラムオブジェクトを要求することができる.DCOMはコンポーネントオブジェクトモデル(COM)に基づいており、COMは同じコンピュータ上のクライアントとサーバとの間で通信を可能にするインタフェース(Windows 95以降のバージョンで実行)を提供している.
DCOM(分散コンポーネントオブジェクトモデル、分散コンポーネントオブジェクトモデル)は、マイクロソフトの概念とプログラムインタフェースの一連であり、このインタフェースを利用して、クライアントプログラムオブジェクトがネットワーク内の別のコンピュータ上のサーバプログラムオブジェクトから要求することができる.DCOMはコンポーネントオブジェクトモデル(COM)に基づいており、COMは同じコンピュータ上のクライアントとサーバとの間で通信を可能にするインタフェース(Windows 95以降のバージョンで実行)を提供している.
MicrosoftDistributed Component Object Model(DCOM)は、ローカルエリアネットワーク、広域ネットワーク、インターネット上で実行されているかにかかわらず、異なる2つのマシン上のコンポーネント間の通信をサポートするComponent Model(COM)の拡張です.DCOMを使用すると、アプリケーションは任意に空間分布を行うことができます.
DCOMはCOMというコンポーネント技術のシームレスなアップグレードであるため、既存のCOMに関する知識から利益を得ることができ、以前COMで開発したアプリケーション、コンポーネント、ツールは分散環境に移行することができます.DCOMは、最下位のネットワークプロトコルの詳細を遮断し、アプリケーションに集中するだけです.
COMはすでに単純な技術とプログラミング規範ではなく、研究開発思想であり、ここではCOMとDCOM思想を徐々に分析し、分布式システムの殿堂に導く.
今回は、COMオブジェクトの辞書オブジェクトを作成するCreateObject関数について説明します.
DCOM(分散コンポーネントオブジェクトモデル、分散コンポーネントオブジェクトモデル)は、マイクロソフトの概念とプログラムインタフェースの一連であり、このインタフェースを利用して、クライアントプログラムオブジェクトがネットワーク内の別のコンピュータ上のサーバプログラムオブジェクトから要求することができる.DCOMはコンポーネントオブジェクトモデル(COM)に基づいており、COMは同じコンピュータ上のクライアントとサーバとの間で通信を可能にするインタフェース(Windows 95以降のバージョンで実行)を提供している.
MicrosoftDistributed Component Object Model(DCOM)は、ローカルエリアネットワーク、広域ネットワーク、インターネット上で実行されているかにかかわらず、異なる2つのマシン上のコンポーネント間の通信をサポートするComponent Model(COM)の拡張です.DCOMを使用すると、アプリケーションは任意に空間分布を行うことができます.
DCOMはCOMというコンポーネント技術のシームレスなアップグレードであるため、既存のCOMに関する知識から利益を得ることができ、以前COMで開発したアプリケーション、コンポーネント、ツールは分散環境に移行することができます.DCOMは、最下位のネットワークプロトコルの詳細を遮断し、アプリケーションに集中するだけです.
COMはすでに単純な技術とプログラミング規範ではなく、研究開発思想であり、ここではCOMとDCOM思想を徐々に分析し、分布式システムの殿堂に導く.
今回は、COMオブジェクトの辞書オブジェクトを作成するCreateObject関数について説明します.
/*
CreateObject , IUnknown , QueryInterface IDicitionary , IDictionary
*/
BOOL CreateObject(const CLSID& clsid, const IID& iid, void** ppv)
{
hModual = LoadLibrary("DictComp.dll");
if(NULL == hModual)
{
return FALSE;
}
typedef BOOL(_stdcall* MyFunctionType)(const CLSID& clsid, const IID& iid,void **ppv);
MyFunctionType fnCreateObject;
fnCreateObject = (MyFunctionType)GetProAddress(hModual, "CreateObject");
if(NULL == fnCreateObject)
{
FreeLibrary(hModual);
return FALSE;
}
return fnCreateObject(clsid,iid, ppv);
}