WebBrowserに
Dim objImg As Object
Set objImg = WebBrowser.Document.getElementsByTagName("IMG")
WebBrowser.Navgate2 objImg(0).src
として表示しているのですが、このobjImg(0).srcの画像を
PictureBox.Picture = LoadPicture(objImg(0).src)
としてもエラーが発生します。表示させる方法を教えていただけますか?
LoadPictureの最初の引数はファイル名です。
有効なファイル名を指定してください。
Dim strString As String
strString = objImg(0).src
PictureBox.Picture = LoadPicture(strString)
としますと、「ファイル名が無効です。」のエラーが発生します。
同じような質問があり、そこでは「OleLoadPicturePath」という
APIを紹介していたのですがご存知でしょうか?検索しましたが
英語のサイトになってしまっていて。
ここです。
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200408/04080029.txt
要は
PictureBox.Picture = LoadPicture("http://img.yahoo.co.jp/images/main11.gif")
なようなことができるかということなのですが、どなたか教えていただけますか?
サンプルが欲しいわけですね。
明確にあっているか分かりませんが、動作はするサンプルを提供します。
もっとスマートな形にして使用してください。
'定義部分
Public Type UUID
id1 As Long
id2 As Integer
id3 As Integer
id4(7) As Byte
End Type
Public Const S_OK = 0
Public Declare Function OleLoadPicturePath Lib "oleaut32.dll" (szURLorPath As Any, ByVal punkCaller As Long, _
ByVal dwReserved As Long, ByVal clrReserved As Long, riid As UUID, ppvRet As Any) As Long
----------------------------------------------------------------------------------------------------------------
’コード部分
Dim objImg As Object
Dim bytB() As Byte
Dim IID_IPicture As UUID
Dim oPic As IPicture
Set objImg = WebBrowser1.Document.getElementsByTagName("IMG")
IID_IPicture.id1 = &H7BF80980
IID_IPicture.id2 = &HBF32
IID_IPicture.id3 = &H101A
IID_IPicture.id4(0) = &H8B
IID_IPicture.id4(1) = &HBB
IID_IPicture.id4(2) = &H0
IID_IPicture.id4(3) = &HAA
IID_IPicture.id4(4) = &H0
IID_IPicture.id4(5) = &H30
IID_IPicture.id4(6) = &HC
IID_IPicture.id4(7) = &HAB
bytB = objImg(0).src 'OleLoadPicturePathのURLはUnicodeで渡す必要がある
If OleLoadPicturePath(bytB(0), ByVal 0&, ByVal 0&, ByVal 0&, IID_IPicture, oPic) = S_OK Then
Set Picture1.Picture = oPic
End If
Set oPic = Nothing
Dim oPic As IPicture
ではなく
Dim objPic As Object
If OleLoadPicturePath(bytB(0), ByVal 0&, ByVal 0&, ByVal 0&, IID_IPicture, objPic) = S_OK Then
Set Picture1.Picture = objPic
End If
Set objPic = Nothing
とし解決しました。ありがとうございます
ツイート | ![]() |