CMNロゴ

ICpx::cpxWriteEditForm Method


フォームエディタ用のフォームを出力します。

Syntax

BOOL cpxWriteEditForm(
    ICmnPilot *pICmnPilot,
    int idxBBS,
    const TMes *pMes,
    BOOL bEditMes,
    LPCSTR lpSourceFormBuf,
    LPCSTR lpDestFormPath
);

Parameters

pICmnPilot

[in] ICmnPilotインターフェースのポインタ
このインターフェースでCMNの機能を利用することが可能です。

idxBBS

[in] 掲示板のインデックス(0ベース)
掲示板情報がない場合は -1
-1 の場合には idxBBS を使用する ICmnPilot のメソッドに idxBBS を渡すことはできませんのでご注意ください。

pMes

[in] 返信発言または再編集発言の発言情報
新規発言の場合はNULL。
NULL以外の場合、bEditMesがTRUEの場合は再編集発言、FALSEの場合は新規の返信発言です。

bEditMes

[in] 再編集フラグ
再編集の場合はTRUE/それ以外はFALSE。
再編集する発言が返信発言かどうかは、親発言番号があるかどうか等で判断してください。
pMesがNULLの場合には無効です。

lpSourceFormBuf

[in] カスタマイズ元フォームデータ領域
Extensionsフォルダの .frm の内容が渡されます。
フォームがない場合はNULL。

lpDestFormPath

[in] 出力先フォームのパス

Return Value

フォームを出力した場合はTRUE、出力しない場合はFALSEを戻します。

Remarks

フォームエディタ用のフォームを出力します。
エクステンションと一緒に配布するフォーム定義ファイル(.frm)の内容をカスタマイズする場合に使用します。
条件によってフォーム項目の表示・非表示を切り替える場合には、 .frm 上では表示する可能性のある全項目を記述し、非表示の項目を当メソッドで削除してください。
但し .frm に select タグが存在する場合には、option タグを当メソッドで追加することは可能です。

ICmnPilotインターフェースを使用して各種値を参照することはできますが、値を変更することはできません
メインのメッセージループからコールされるので、長時間(1秒以上)掛かる処理を行なう場合には別スレッドを生成して行なうなど、 メッセージループが停止しないようにしなければなりません。

フォームを出力しない場合はFALSEを戻すのみです。
ICpxの他のメソッドとは独立したインスタンスでコールされます。


Example

C++

BOOL _stdcall MyCpx::cpxWriteEditForm (ICmnPilot *pICmnPilot,
                                       int idxBBS,
                                       const TMes *pMes,
                                       BOOL bEditMes,
                                       LPCSTR lpSourceFormBuf,
                                       LPCSTR lpDestFormPath)
{
    FILE *fp;
    
    fp = fopen (lpDestFormPath, "wb");
            :
    // フォーム出力
            :
    fclose (fp);

    return TRUE;
}

Delphi

function  TMyCpx.cpxWriteEditForm (pICmnPilot: ICmnPilot;
                                   idxBBS: Integer;
                                   const pMes: PTMes;
                                   bEditMes: LongBool;
                                   lpSourceFormBuf: LPCSTR;
                                   lpDestFormPath: LPCSTR): LongBool; stdcall;
begin
            :
    AssignFile (fp, 'lpDestFormPath');
            :
    // フォーム出力
            :
    CloseFile (fp);

    Result := TRUE;
end;



ICpx