XMLHTTPオブジェクトで画像ファイルを取得したい

解決


にんにん。  2006-01-27 00:42:27  No: 93834

当APIはブラウザ上で実行すると、指定したrefCodeの画像ファイルを表示します。
  VBからXMLHTTPオブジェクトを使って画像を取得する方法があれば教えて下さい。

URL:
  http://www.xxx.xxxxx.xxxt/xxxxxxData/public/getFile.do?refCode=

    GPSxml.Open "POST", "http://www.xxx.xxxxx.xxxt/xxxxxxData/public/getFile.do?", False
    GPSxml.setRequestHeader "Content-Type", "image/jpeg"
    GPSxml.send ("refCode=" & strCODE)

     frmGamen.imgtest.Picture = ????


Dental  2006-01-27 01:04:36  No: 93835

> 当API
??

> VBからXMLHTTPオブジェクトを使って画像を取得する方法があれば教えて下さい。
.responseBody プロパティか .responseStream プロパティで。
(前者は、Byte配列型、後者は IStream型で結果を返します)


にんにん  2006-01-27 08:01:15  No: 93836

回答ありがとうございます。
Byte配列型で行い一度ファイルに書き出してそのファイルをLoadPictureする形でやってみます。


魔界の仮面弁士  2006-01-27 08:49:49  No: 93837

responseStream の方でやってみました。

'--------
Option Explicit

Private Declare Function OleLoadPicture Lib "oleaut32" ( _
    ByVal S As IUnknown, ByVal L As Long, ByVal R As Long, _
    ByRef G As Long, ByRef P As IPicture) As Long

Private Sub Command1_Click()
    Dim O As Object

    Set O = CreateObject("MSXML2.XMLHTTP.4.0")
    O.Open "GET", Text1.Text, False
    O.send
    If O.Status <> "200" Then
        Set Image1.Picture = LoadPicture()
        MsgBox "取得失敗", vbExclamation, O.statusText
        Exit Sub
    End If

    Dim G(3) As Long
    G(0) = &H7BF80980
    G(1) = &H101ABF32
    G(2) = &HAA00BB8B
    G(3) = &HAB0C3000
  
    Dim E As Long
    Dim P As IPicture
    E = OleLoadPicture(O.responseStream, 0&, 1&, G(0), P)
    If E = 0 Then
        Set Image1.Picture = P
    Else
        On Error Resume Next
        Err.Raise E
        MsgBox Err.Description, vbExclamation, "エラー:" & CStr(Err.Number)
        On Error GoTo 0
    End If
End Sub

# サイトによっては、XMLHTTP を使わず、直接 OleLoadPicturePath API で
# 画像化しても良いかも。


にんにん。  2006-02-01 22:42:51  No: 93838

魔界の仮面弁士さま。
連絡おくれてもうしわけありません。

回答ありがとうございました。上記ソース参考になりました。
ぶじ画像ファイル編集することができました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加