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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.