CMNロゴ

ICpx::cpxSendMes Method


投稿処理を実装します。

Syntax

BOOL cpxSendMes(
    const TMes& Mes
);

Parameters

Mes

[in] 投稿発言の発言情報

参照可能な項目は以下の通り。
tmPost[in] 発言作成日時
dwParentNumber[in] 親発言番号
親発言番号がない場合には MES_ID_NONE
数字以外を含む番号文字列の場合には MES_ID_STR で、 lpParentKey に番号文字列を設定されます。
wFunc[in] 機能属性
dwColorMark[in] アイコンカラー
lpName[in] 発言者名
投稿発言作成時に本文先頭に「name:」キーワードを使用した場合のみ。
フォルダに設定されている名前が使用されている場合はNULL。
lpEMail[in] メールアドレス
投稿発言作成時に本文先頭に「email:」キーワードを使用した場合のみ。
フォルダに設定されているメールアドレスが使用されている場合はNULL。
lpHP[in] ユーザーHPのURL
投稿発言作成時に本文先頭に「url:」キーワードを使用した場合のみ。
フォルダに設定されているHPアドレスが使用されている場合はNULL。
lpSubject[in] 件名
lpBody[in] 本文
lpPost[in] 投稿パラメータ
lpParentKey[in] 親発言キー
dwParentNumber が MES_ID_STR の場合に親発言の番号文字列。
lpFile[in] 投稿ファイルパス
lpParam[in] CGI追加パラメータ
lpTrip[in] トリップパスワード
lpOptionData[in] オプションデータ

Return Value

投稿が成功したらTRUE、失敗したらFALSEを戻します。

Remarks

投稿に対応しない場合はTRUEを戻すのみです。
ICpx::cpxBBSPilotStartICpx::cpxBBSPilotEndICpx::cpxGetReceivedMesCountICpx::cpxGetReadURLICpx::cpxReceiveMesICpx::cpxSendMesICpx::cpxExecFunc は同じインスタンスでコールされます。


Remarks

C++

BOOL __stdcall MyCpx::cpxSendMes (const TMes& Mes)
{
    char *pPage = NULL;
    char *pPostBuf = NULL;
    TMakePostParam MakePostParam;
    TWebParam WebParam;
    int cData;

    // 投稿データ作成
    memset (&MakePostParam, 0, sizeof (TMakePostParam));
    MakePostParam.idxBBS = m_idxBBS;
    MakePostParam.lpPostStr = Mes.lpPost;
    MakePostParam.pMes = &Mes;
    MakePostParam.idStrCode = m_idStrCode;
    MakePostParam.bMultiPart = FALSE;
    if ((pPostBuf = m_pICmnPilot->cmnMakePostData (MakePostParam)) == NULL) {
        m_pICmnPilot->cmnSetError ("メモリを確保できません");
        return TRUE;
    }
    
    // 投稿
    memset (&WebParam, 0, sizeof (TWebParam));
    WebParam.lpURL = m_pszBBSURL;
    WebParam.lpPost = pPostBuf;
    WebParam.cPost = MakePostParam.cPostData;
    WebParam.lpString = Mes.lpSubject;
    if ((pPage = m_pICmnPilot->cmnWebRequest (WebParam)) == NULL) {
        // エラー処理
        m_pICmnPilot->cmnSetError ("投稿の結果を受信できません");
        free (pPostBuf);
        return FALSE;
    }
    
    // 投稿データ開放
    m_pICmnPilot->cmnFree (pPostBuf);

    // 結果ページ解析
            :
    
    // 結果ページ開放
    m_pICmnPilot->cmnFree (pPage);
    
    return TRUE;
}

Delphi

function  TMyCpx.cpxSendMes (const Mes: TMes): LongBool; stdcall;
var
    pPostBuf:       LPSTR;                  // 投稿データ
    pPage:          LPSTR;                  // 投稿後のページ
    MakePostParam:  TMakePostParam;         // 投稿データ作成パラメータ
    WebParam:       TWebParam;              // WEBアクセスパラメータ
    cData:          Integer;                // 投稿データのサイズ

    // 投稿データ作成
    FillChar (MakePostParam, sizeof (TMakePostParam), 0);
    MakePostParam.idxBBS := m_idxBBS;
    MakePostParam.lpPostStr := Mes.lpPost;
    MakePostParam.pMes := @Mes;
    MakePostParam.idStrCode := m_idStrCode;
    MakePostParam.bMultiPart := FALSE;
    pPostBur = m_pICmnPilot.cmnMakePostData (MakePostParam);
    if (pPostBuf = Nil) then
    begin
        m_pICmnPilot.cmnSetError ('メモリを確保できません');
        Result := FALSE;
        exit;
    end;

    // 投稿
    FillChar (WebParam, sizeof (TWebParam), 0);
    WebParam.lpURL := szURL;
    WebParam.lpReferer := m_pszBBSURL;
    WebParam.lpPost := pPostBuf;
    WebParam.cPost := MakePostParam.cPostData;
    WebParam.lpString := Mes.lpSubject;
    pPage := m_pICmnPilot.cmnWebRequest (WebParam);
    if (pPage = Nil) then
    begin
        // エラー処理
        m_pICmnPilot.cmnSetError ('投稿の結果を受信できません');
        FreeMem (pPostBuf);
        Result := FALSE;
        exit;
    end

    // 投稿データ開放
    m_pICmnPilot.cmnFree (pPostBuf);

    // 結果ページ解析
            :
    
    // 結果ページ開放
    m_pICmnPilot.cmnFree (pPage);

    Result := TRUE;
end;




ICpx