ファイルのダウンロード          <TOP>


DoFileDownload ファイルのダウンロードを呼び出す

MultiByteToWideChar ファイルのダウンロード

 

 

 

'================================================================
'= ファイルのダウンロード
'=    (DoFileDownload.bas)
'================================================================
#include "Windows.bi"

' ファイルのダウンロード
Declare Function Api_DoFileDownload& Lib "shdocvw" Alias "DoFileDownload" (ByVal lpszFile$)

' ANSI文字列をUnicode文字列に変換
Declare Function Api_MultiByteToWideChar& Lib "Kernel32" Alias "MultiByteToWideChar" (ByVal CodePage&, ByVal dwFlags&, ByVal lpMultiByteStr$, ByVal cchMultiByte&, ByVal lpWideCharStr$, ByVal cchWideChar&)

#define CP_ACP 0                        'ANSIコードページ
#define CP_MACCP 2                      'Macintoshコードページ
#define CP_OEMCP 1                      'OEMコードページ
#define CP_SYMBOL 42                    'シンボルコードページ(Windows2000・XP)
#define CP_THREAD_ACP 3                 '呼び出しスレッドのANSIコードページ(Windows2000・XP)
#define CP_UTF7 65000                   'UTF-7を使用して変換(Windows98・Me・NT4.0以降)
#define CP_UTF8 65001                   'UTF-8を使用して変換(Windows98・Me・NT4.0以降)これを指定した場合、dwFlagsパラメータは0

Var Shared Edit1 As Object
Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var Buff As String         '元の文字列
    Var wBuff As String        '変換先文字列
    Var wBufflen As Long       '変換先文字数
    Var Ret As Long

    Buff = String$(256, Chr$(0))
    Buff = Edit1.GetWindowText
    wBuff = String$(256, Chr$(0))

    '必要なバッファサイズを取得
    wBufflen = Api_MultiByteToWideChar(CP_ACP, 0, Buff, -1, wBuff, 0)
    Ret = Api_MultiByteToWideChar(CP_ACP, 0, Buff, -1, wBuff, wBufflen)

    wBuff = Left$(wBuff, (wBufflen - 1) * 2)

    Ret = Api_DoFileDownload(wBuff)
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End