本文へジャンプ

ホームページ・ビルダー ユーザー プラグイン情報

概要

プラグイン モジュールは C++ により作成する DLL ファイルです。プラグイン モジュールの作成には Microsoft® Visual Studio® 2003 以上が必要となります。

プロジェクトの作成

Microsoft Visual Studio 2003以上で「MFC拡張DLL」として作成してください。「MFC拡張DLL」は、「新しいプロジェクト」を作成する際にテンプレートとして「MFC DLL」を選択し、「MFC DLL ウィザード」の「アプリケーションの設定」でDLLの種類に「MFC 拡張 DLL」を選択することで作成することができます。

プロジェクトの設定を次のようにしてください。

ホームページ・ビルダーとのインターフェース

ホームページ・ビルダーとやり取りできるインターフェースの説明は次の通りで、これらのインターフェースを用いてホームページ・ビルダーとやり取りができるユーザー プラグインを作成することができます。

ユーザー プラグインを作成するためには、少なくとも HpbPluginAdapter.h に記述されている CHpbExternalDLLPluginIF インターフェースを実装したクラスを作成することが必要です。

作成した DLL をホームページ・ビルダーは起動時にロードします。 このロードした DLL にホームページ・ビルダーがアクセスするために FgetInterface()、FfreeLibrary()、FisUnicode() という3つの関数が DLL からエクスポートされている必要があります。

FgetInterface() 関数は DLL がロードされた直後に呼び出されます。この時に CHpbExternalDLLPluginIF インターフェースを実装したクラスのインスタンスを作成するようにします。

FfreeLibrary() 関数はホームページ・ビルダーが終了するときに呼び出されます。この時に FgetInterface() で作成したクラスのインスタンスを削除するようにします。

FisUnicode() 関数は FgetInterface() が呼び出された直後に一回呼び出されます。プロジェクトの設定で’文字セット’を’Unicode 文字セットを使用する'で作成しているので true を返すようにします。なお、UNICODE 以外で作成されている場合、ユーザー プラグインは機能しません。

static CMyDll*    _pMyDll = NULL;
CHpbExternalPluginIF*    FgetInterface()
{
    if (_pMyDll == NULL)
        _pMyDll = new CMyDll();
    return _pMyDll;
}

void FfreeLibrary()
{
    if (_pMyDll)
    {
        delete _pMyDll;
        _pMyDll = NULL;
    }
}

bool FisUnicode()
{
#ifdef _UNICODE
        return true;
#else
        return false;
#endif
}

....
FgetInterface    @1
FfreeLibrary      @2
FisUnicode       @3
...

これらの設定を行った DLL を作成してください。

注意点

DLL を作成する際に、DllMain() 内の new CDynLinkLibrary(...) は使用しないでください。ホームページ・ビルダーのプラグイン モジュールにこの関数を使用すると、正しいリソースが使用されない場合があります。

IBMはInternational Business Machines Corporationの米国およびその他の国における商標。 Microsoft、Visual StudioはMicrosoft Corporationの米国およびその他の国における商標。 他の会社名、製品名およびサービス名等はそれぞれ各社の商標。