Private Declare Function W3getv Lib "binetx.dll" _ (para As String, callback As Long) As Long ■呼出し方法 Dim para As String, rc As Long rc = W3getv(para,0) ' コールバック関数なし rc = W3getv(para,AddressOf W3getCallBack) ' コールバック関数あり ■パラメータ パラメータを次のように文字列で指定します。パラメータの間は、1文字の空白で区切ります。 -i input-file : パラメータをファイルから入力。複数のURLを処理できます。 -l log-file : ログファイル名 -d output-directory : 出力ディレクトリ -o output-file : 出力ファイル名 -j Japanese-character-code : 文字コード変換 sjis : SJIS euc : EUC jis : JIS ucs2 : UNICODE UCS-2 utf8 : UNICODE UTF-8 -t timeout : タイムアウト値。省略値 120 -p proxy[:port] : HTTP プロクシサーバ名とポート番号 -A user:pass : HTTP "Authorization: Basic" ヘッダー -P user:pass : HTTP "Proxy-Authorization: Basic" ヘッダー -h level : HTTPヘッダーのみアクセス。 1: ログに保存 2: ファイルに保存 3: ファイルとログの両方 -u user-agent : HTTP User-Agent ヘッダー。省略すると Binetx/1.0 を使います。 -f "firewall-arg" : FTP ファイアーウォールパラメータ。 "fhost fuser/fpass SITE" "fhost fuser/fpass" "fhost" "fhost OPEN" -F user:pass : FTP ユーザとパスワード。 ":" で区切ります。 -a : FTP ASCII モード -s : FTP PASV モード -c : HTTP クッキーパラメータ。"name=value" の形式。 url : URL http:// または ftp://。かならずパラメータの最後に指定すること。 ■終了コード 終了コードは、作成されたファイル数が返されます。 マイナスの値は、エラーコードを示します。 -1 : ソケットオープンエラー -2 : タイムアウト -4 : FTP エラー。一時的エラー。 -5 : FTP エラー。コマンドは実行できない。 -100 : キャンセルされました -101 : パラメータエラー -102 : ディレクトリが見つからない -103 : URL が長すぎる(4096以上) -104 : ファイルが作成できない -105 : ファイル書込みエラー -106 : ログファイルエラー -107 : URLに適切な/ がない -300から-500番台 : HTTP エラーコード -10000 以下は、Winsock エラーコード ■コールバック関数 コールバック関数を指定すると読込みバイト数の通知やキャンセル処理ができます。 コールバック関数は、標準モジュールに置きます。 Public Function W3getCallBack(ByVal getlen As Long, ByVal msg As String) As Long Debug.Print getlen ' 読込みバイト数 Debug.Print msg ' 書込みファイル名 W3getCallBack = 0 ' キャンセルするときに 1 End Function getlen : 読込みバイト数を返します。初回の呼出しでは、読込み予定バイト数が返ります。 2回目以降は、読込みバイト数の合計が返ります。 msg : 書込みファイル名がフルパスで返ります。 戻り値 : 続行するとき 0 を、キャンセルするときは 1 を設定します。 ■使用例 指定したディレクトリにファイルを保存 Dim para As String, rc As Long para = "-d c:\temp http://www.yahoo.co.jp/index.html" rc = W3getv(para,0) ' コールバック関数なし rc = W3getv(para,AddressOf W3getCallBack) ' コールバック関数あり
extern "C" __declspec(dllimport) int APIENTRY W3get(LPCSTR para,int callback); typedef BOOL (APIENTRY *pw3getcallback)(int len,LPCSTR name); ■呼出し方法 rc = W3get(para,0) ; // コールバック関数なし rc = W3get(para,(int) W3getCallBack); // コールバック関数あり ■パラメータ パラメータを次のように文字列で指定します。パラメータの間は、1文字の空白で区切ります。 -i input-file : パラメータをファイルから入力。複数のURLを処理できます。 -l log-file : ログファイル名 -d output-directory : 出力ディレクトリ -o output-file : 出力ファイル名 -j Japanese-character-code : 文字コード変換 sjis : SJIS euc : EUC jis : JIS ucs2 : UNICODE UCS-2 utf8 : UNICODE UTF-8 -t timeout : タイムアウト値。省略値 120 -p proxy[:port] : HTTP プロクシサーバ名とポート番号 -A user:pass : HTTP "Authorization: Basic" ヘッダー -P user:pass : HTTP "Proxy-Authorization: Basic" ヘッダー -h level : HTTPヘッダーのみアクセス。1: ログに保存 2: ファイルに保存 3: ファイルとログの両方 -u user-agent : HTTP User-Agent ヘッダー。省略すると Binetx/1.0 を使います。 -f "firewall-arg" : FTP ファイアーウォールパラメータ。 "fhost fuser/fpass SITE" "fhost fuser/fpass" "fhost" "fhost OPEN" -F user:pass : FTP ユーザとパスワード。 ":" で区切ります。 -a : FTP ASCII モード -s : FTP PASV モード -c : HTTP クッキーパラメータ。"name=value" の形式。 url : URL http:// または ftp://。かならずパラメータの最後に指定すること。 ■コールバック関数 コールバック関数を指定すると読込みバイト数の通知やキャンセル処理ができます。 次のように定義します。 int APIENTRY W3getcallback(int getlen,LPCSTR msg) { TRACE1("%d\n",getlen); TRACE1("%s\n",msg); return 0; } getlen : 読込みバイト数を返します。初回の呼出しでは、読込み予定バイト数が返ります。 2回目以降は、読込みバイト数の合計が返ります。 msg : 書込みファイル名がフルパスで返ります。 戻り値 : 続行するとき 0 を、キャンセルするときは 1 を設定します。 ■終了コード 終了コードは、作成されたファイル数が返されます。 マイナスの値は、エラーコードを示します。 -1 : ソケットオープンエラー -2 : タイムアウト -4 : FTP エラー。一時的エラー。 -5 : FTP エラー。コマンドは実行できない。 -100 : キャンセルされました -101 : パラメータエラー -102 : ディレクトリが見つからない -103 : URL が長すぎる(4096以上) -104 : ファイルが作成できない -105 : ファイル書込みエラー -106 : ログファイルエラー -107 : URLに適切な/ がない -300から-500番台 : HTTP エラーコード -10000 以下は、Winsock エラーコード ■使用例 指定したディレクトリにファイルを保存 int rc; char para[] = "-d c:\\temp http://www.yahoo.co.jp/index.html"; rc = W3get(para,0); // コールバック関数なし rc = W3get(para,(int)W3getCallBack); //コールバック関数あり
Private Declare Function Kconv Lib "binetx" _ (inputvar As Variant, outtype As Long, intype As Long) As Variant ■呼出し方法 Private Const UNKNOWN_CODE = 0 Private Const SJIS_CODE = 1 Private Const EUC_CODE = 2 Private Const JIS_CODE = 3 Private Const UNICODE_UCS2 = 4 Private Const UNICODE_UTF8 = 5 Dim a As String, b As Variant, v As Variant a = "ばば" v = a b = Kconv(v, JIS_CODE, UNICODE_UCS2) ' JIS に変換
Private Declare Function KconvFile Lib "binetx" _ (infile As String, outfile As String, outtype As Long, intype As Long) As Long ■呼出し方法 Private Const UNKNOWN_CODE = 0 Private Const SJIS_CODE = 1 Private Const EUC_CODE = 2 Private Const JIS_CODE = 3 Private Const UNICODE_UCS2 = 4 Private Const UNICODE_UTF8 = 5 Dim jx As Long jx = KconvFile("c:\temp\sjis.txt", "c:\temp\jis.txt", JIS_CODE, SJIS_CODE) Debug.Print jx