構造体
 
定数定義
CL本体とプラグイン間でやり取りする関数が使用する定数です。


// 実行操作時のマウスクリックボタンフラグ
#define CPI_EXEC_LBUTTON    0    // 左ボタンクリック
#define CPI_EXEC_RBUTTON    1    // 右ボタンクリック
#define CPI_EXEC_MBUTTON    2    // 中ボタンクリック


// 実行操作発生位置
#define CPI_EXEC_BUTTON     0    // ランチャーアイコンボタンにて実行
#define CPI_EXEC_MENU       1    // ランチャーメニューにて実行


// プラグインの属性
#define CPI_DEFAULT         0    // CL本体に描画を任せた通常のアイテム
#define CPI_OWNERDRAW       1    // オーナードローアイテム
#define CPI_HIDERMENU       2    // 右クリックメニュー(設定メニュー)に表示しない (※CL v2.10以降)


// オーナードローアイテムの描画状態
#define CPI_OD_DEFAULT      0    // 通常状態
#define CPI_OD_ONMOUSE      1    // オンマウス状態
#define CPI_OD_BTNDOWN      2    // ボタンダウン状態


// メニューアイテムの属性
#define CPI_MF_DEFAULT      0    // CL本体に描画を任せた通常のメニューアイテム
#define CPI_MF_OWNERDRAW    1    // オーナードローメニューアイテム
#define CPI_MF_SEPARATOR    2    // 区切り
#define CPI_MF_POPUP        4    // 配下にサブメニューアイテムを持つメニューアイテム






 
CPIINFO
プラグインのバージョン情報等を格納する為の構造体です。

typedef struct _CPIINFO {        
                                 
    int     flag;                // プラグインの属性
    int     interval;            // プラグイン更新間隔
    char    name[64];            // プラグイン名称
    char    version[64];         // プラグインバージョン
    char    maker[64];           // プラグイン製作者名
    char    info[512];           // プラグインの説明
                                 
} CPIINFO, *LPCPIINFO;           
解説

flag
プラグインの属性を フラグ の組み合わせで設定します。
フラグ内容
CPI_DEFAULTCL本体にボタンの描画を任せます。
CPI_OWNERDRAWプラグイン側でボタンを描画します。
CPI_HIDERMENU右クリックメニュー(設定メニュー)に表示しないアイテムになります。

interval
プラグインに定期的に処理をさせる場合、処理をさせる間隔をミリ秒で設定します。
設定した間隔で CPI_Updt が呼ばれます。
最小間隔は100ミリ秒です。100ミリ秒以下を設定しても、100ミリ秒でまるめられます。
定期的な処理をしない場合は、 0 を設定してください。

name
プラグインの名称を設定します。

version
プラグインのバージョンを設定します。

maker
プラグインの製作者名を設定します。

info
プラグインの説明を設定します。







 
CLMENUITEM
プラグインが登録するメニューアイテムの情報を格納する為の構造体です。

typedef struct _CLMENUITEM {     
                                 
    int     flag;                // メニューアイテムの属性
    int     parentid;            // 親のメニューアイテムID
    int     menuid;              // メニューアイテムID
    char    name[64];            // メニューアイテム表示名称
    int     icoidx;              // メニューアイテム表示用アイコンインデックス
    HICON   hicon;               // メニューアイテム表示用アイコンハンドル
    int     width;               // メニューアイテムの幅
    int     height;              // メニューアイテムの高さ
                                 
} CLMENUITEM, *LPCLMENUITEM;     


解説

flag
メニューアイテムの属性を フラグ の組み合わせで設定します。
フラグ内容
CPI_MF_DEFAULTCL本体にメニューアイテムの描画を任せます。
CPI_MF_OWNERDRAWプラグイン側でメニューアイテムを描画します。
CPI_MF_SEPARATORセパレータ(区切り)になります。
CPI_MF_POPUP配下にサブメニューアイテムを持ちます。

parentid
サブメニューアイテムの場合、親のメニューアイテムIDを設定します。
トップレベルのメニューアイテムの場合は、 -1 を設定してください。

menuid
メニューアイテムを識別するためのIDを 0 以上の値で設定します。
他のメニューアイテムと同じ値を設定することが可能ですが、メニューアイテム属性に CPI_MF_POPUP を設定した親メニューアイテムの場合は、他と同じ値を設定しないでください。

name
メニューアイテム描画に使う名称を設定します。

icoidx
メニューアイテム描画に使うアイコンを、プラグインファイル内の 0 から始まるアイコンインデックスで設定します。
プラグインアイテムがアイコンを持たない場合や、アイコンが見つからない場合はCL本体がデフォルトのアイコンを描画します。

hicon
メニューアイテム描画に使うアイコンを、アイコンハンドルで指定する場合に設定します。
アイコンハンドルで指定しない場合は、 NULL を設定してください。
アイコンハンドルが指定された場合、CL本体側では CopyIcon APIによりコピーします。
プラグイン側で確保したアイコンは、プラグイン側で開放するようにしてください。

この値が NULL 以外の場合、 icoidx は無視されます。

width
メニューアイテム属性に CPI_MF_OWNERDRAW を設定したオーナードローメニューアイテムの場合、メニューアイテムの幅を設定します。
オーナードローメニューでない場合、この値は無視されます。

height
メニューアイテム属性に CPI_MF_OWNERDRAW を設定したオーナードローメニューアイテムの場合、メニューアイテムの高さを設定します。
オーナードローメニューでない場合、この値は無視されます。