PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
8982 99/10/29 09:22:27 RE(7):PB6.5: BSMTP.DLLのRcvMail関数の使い方について。 By Minoru
8938 99/10/27 10:58:30 RE(6):PB6.5: BSMTP.DLLのRcvMail関数の使い方について。 By にしやん
8926 99/10/26 17:34:13 RE(5):PB6.5: BSMTP.DLLのRcvMail関数の使い方について。 By あすかちゃんの父
8925 99/10/26 16:37:46 RE(4):PB6.5: BSMTP.DLLのRcvMail関数の使い方について。 By Minoru
8919 99/10/26 11:38:59 RE(3):PB6.5: BSMTP.DLLのRcvMail関数の使い方について。 By あすかちゃんの父
8913 99/10/26 09:45:35 RE(2):PB6.5: BSMTP.DLLのRcvMail関数の使い方について。 By Minoru
8912 99/10/25 18:57:27 RE(1):PB6.5: BSMTP.DLLのRcvMail関数の使い方について。 By M.M
8911 99/10/25 18:42:05 PB6.5: BSMTP.DLLのRcvMail関数の使い方について。 By Minoru

カテゴリ:PowerBuilderの開発環境
日付:1999年10月27日 10:58 発信者:にしやん
題名:RE(6):PB6.5: BSMTP.DLLのRcvMail関数の使い方について。

Minoruさん、こんにちは。

RcvMail も解析してみました。

解析の結果、RcvMail では最初の引数の前にもう一つ何らかのポインタを
渡していて、そのアドレスに4バイト長のデータを4つ(計16バイト)
返して来ることがわかりました。
どうも、戻り値の Variant 型のポインタを指定する必要があるみたいです。

というわけで、次のようにすれば、とりあえず RcvMail を呼び出すだけは出来ます。

外部関数
FUNCTION Long RcvMail(REF Long Output[4], REF Long szServer, REF Long szUser, REF Long szPass, &
    REF Long szCommand, REF Long szDir) LIBRARY \"BSMTP.DLL\"
FUNCTION Long lstrcpyn(REF String dst, REF String src, UnsignedLong length) &
    LIBRARY \"KERNEL32.DLL\" ALIAS FOR \"lstrcpynA\"

スクリプト
//変数宣言
String szServer,szUser,szPass,szCommand,szDir
Long lpszServer,lpszUser,lpszPass,lpszCommand,lpszDir
Long VariantType[4]

//引数設定
szServer = POP3 サーバのアドレス
szUser = サーバアカウント
szPass = パスワード
szCommand = RcvMail 関数のコマンド文字列
szDir = 受信メールの保存ディレクトリ

//引数のポインタ値取得
lpszServer = lstrcpyn(szServer,szServer,0)
lpszUser = lstrcpyn(szUser,szUser,0)
lpszPass = lstrcpyn(szPass,szPass,0)
lpszCommand = lstrcpyn(szCommand,szCommand,0)
lpszDir = lstrcpyn(szDir,szDir,0)

//メール受信処理
RcvMail(VariantType,lpszServer,lpszUser,lpszPass,lpszCommand,lpszDir)


このあと、戻り値を取得する処理を入れる必要があります。(書ききれないので省略)

VariantType[3] が指し示すアドレスに戻り値の配列のヘッダ情報があり、そこから
さらにポインタをたどっていけば取得できます。
エラーの場合は、VariantType[3] が指し示すアドレスにエラーメッセージが格納
されています。

返される文字列は UNICODE になっているので、WideCharToMultiByte を使って
SJIS に変換する必要があります。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Sybase SQL Anywhere Standalone
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.