effect.dll
Version 1.0


はじめに

「effect.dll」をダウンロードして下さいまして有難うございます。

「effect.dll」は、デスクトップ全体に効果を与える機能を提供するライブラリです。


導入方法

「effect.dll」にアクセスするクラスを提供しています。

1)プログラムに「effect.hpp」をインクルードします。

#include "effect.hpp"

2)クラスの宣言

effect* myEffect;

3)クラスの構築

myEffect = new effect(myPath, "effect.dll");

4)クラスの解放

delete myEffect;

クラスメンバ関数につきましては、「effect.hpp」の内容を参照してください。


プラグインについて

「effect.dll」は、同じ階層にある DLL ファイルを、プラグインとして認識します。「effect.dll」とプラグインとのインターフェースは次のようになっています。

1)まず、プラグインのロード時に次の関数が実行されます。

extern "C" __declspec(dllexport) BOOL __cdecl _load(HGLOBAL param, long param_num);

_load() の第1引数に、long 配列のメモリ内容が渡されます。param_num の値は、配列の要素数です。

関数内で必ず param を解放して下さい。

実装例:

long* myParam;
extern "C" __declspec(dllexport) BOOL __cdecl _load(HGLOBAL param, long param_num) {
    myParam = new long[param_num];
    memcpy(myParam, (long*)param, sizeof(long) * param_num);
    GlobalFree(param); // 解放
    return TRUE;
}

2)次に、以下の関数が繰り返し実行されます。

extern "C" __declspec(dllexport) BOOL __cdecl _run(RECT desktop_rect, HDC desktop_dc, HDC bitmap_dc);
extern "C" __declspec(dllexport) long __cdecl _frametime();

desktop_rect には、デスクトップの大きさが渡されます。
desktop_dc は、デスクトップの DC です。
bitmap_dc は、_load() の時点で「effect.dll」側で保持されたデスクトップイメージの DC です。

「effect.dll」は、_run() の戻り値が FALSE になるまで、_run() を _frametime() 時間の間隔で繰り返し実行します。

_frametime() の戻り値の単位は、ミリ秒です。

3)プラグインのアンロード時に次の関数が実行されます。

extern "C" __declspec(dllexport) BOOL __cdecl _unload();

_load() で FALSE を返した場合は、本関数は実行されません。


問い合わせ先

ご質問、ご要望等ありましたら、
satis@msd.biglobe.ne.jp
まで、メールをお願いします。

サポートページを開設しております。
「SatisFactory」
http://www5d.biglobe.ne.jp/~satis/


特記事項

1)「effect.dll」はフリーソフトウェアです。個人・商用を問わず、「effect.dll」を「effect.dll 使用ソフト」に同梱して配布することに制限はありません。許可をとる必要もありません。

2)一次配布の内容物に含まれているプラグインについても、(1)と同じです。

3)「effect.dll」単体あるいは一次配布の内容物のみを、他のネットワーク等へ転載、雑誌等へ収録・配布する場合には、必ず事前に連絡ください。

4)「effect.dll」使用によって生じた損害等については、作者は何も補償する義務を負わないこととさせていただきます。


履歴


1.0 - 2007/05/22


Copyright (C) SatisKia