ActiveXプログラミング

アクセスカウンタ -

コンポーネントを含むDLLが実装すべきグローバルメソッド

  • DllCanUnloadNow()
  • DllGetClassObject()
  • DllMain()
  • DllRegisterServer()
  • DllUnregisterServer()

DllCanUnloadNow()

  • DLL が安全にアンロード可能かどうかを照会する。

DllGetClassObject()

  • クラスファクトリのインスタンスを作成する。

実装例

STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
{
        HRESULT hr = CLASS_E_CLASSNOTAVAILABLE;
        if (rclsid == CLSID_COM)
        {
                CClassFactory* pFactory = new CClassFactory;
                if (FAILED(hr = pFactory->QueryInterface(riid, ppv)))
                {
                        delete pFactory;
                }
                hr = S_OK;
        }
        return hr;
}

DllMain()

  • DLL エントリポイント。この名前 DllMain は、ライブラリで定義された関数名のプレースホルダ。

DllRegisterServer()

  • DLL のレジストリエントリを作成する。

DllUnregisterServer()

  • DLL のレジストリエントリを削除する。

サンプルプログラムダウンロード

test009_cxx_2008_01_08a.lzh Hello, Worldサンプル
test009_cxx_2008_01_08b.lzh add(a as long, b as long) as long の実装サンプル

メモ

 作成したActiveXを
Microsoft Internet Explorer 6.0.2900.2180.xpsp_sp2_gdr.070227-2254
から呼び出したところ、tlb(TypeLibrary)を使用している様子がありません。
でしたので、tlb使用しないのなら、MinGWでもActiveX開発可能かもしらん。

コメント募集中

名前:
コメント:
最終更新:2008年01月08日 12:42
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。