2012. 1. 5. 16:03

Web에서 파일 다운로드 하기

' 아래 부분을 모듈에 선언하고 호출
'  if  DownloadFileFromWeb(서버URL, 로컬에저장할 파일이름) then
'                성공시 동작
' else
'                실패시 동작
' end if
' 주의사항 : 단!!!! 서버 URL쪽에 파일명이 한글일경우 동작하지 않는다!!!
' 마치 동작하는것 처럼 보일때도 있는데 모든 컴에서 동작하는 것이 아니기 때문에 절대로 주의!!!
' 한글이 가능하게 하는 방법은 다운 받을 서버 URL을 UTF-8로 변환해서 URLEncoding 하면 된다고
' 되어있긴 한데, 그게 되는 상황이었으면 이미 소스에 반영하여 올려놓았을것 -_-);;;
' 만일 누가 성공한 사람이 있으면 댓글로 함수 소스코드좀 올려주세효 ㅠㅠ

Private Const ERROR_SUCCESS As Long = 0
Private Const BINDF_GETNEWESTVERSION As Long = &H10
Private Const INTERNET_FLAG_RELOAD As Long = &H80000000

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long



Public Function DownloadFileFromWeb(sSourceUrl As String, sLocalFile As String) As Boolean
    DownloadFileFromWeb = URLDownloadToFile(0&, sSourceUrl, sLocalFile, BINDF_GETNEWESTVERSION, 0&) = ERROR_SUCCESS
End Function
 
2012. 1. 5. 15:58

Image나 PictureBox에 URL로 이미지 로딩하기

' 아래의 함수를 사용하면 가능

' image1.picture = loadwebpicture("url") 
' 별도의 모듈에 선언해 넣을것
' 출처는 
http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=48&MAEULNO=19&no=3692&page=2 
' 여기 데브피아에 회원정보를 까먹어서 감사하다는 인사를 못드림..ㅠㅠ OTL

Private Type TGUID
    Data1 As Long
    Data2 As Integer
    Data3 As Integer
    Data4(0 To 7) As Byte
End Type
Private Declare Function OleLoadPicturePath Lib "oleaut32.dll" (ByVal szURLorPath As Long, ByVal punkCaller As Long, ByVal dwReserved As Long, ByVal clrReserved As OLE_COLOR, ByRef riid As TGUID, ByRef ppvRet As IPicture) As Long

Public Function LoadWebPicture(ByVal strFileName As String) As Picture
Dim IID  As TGUID
    With IID
        .Data1 = &H7BF80980
        .Data2 = &HBF32
        .Data3 = &H101A
        .Data4(0) = &H8B
        .Data4(1) = &HBB
        .Data4(2) = &H0
        .Data4(3) = &HAA
        .Data4(4) = &H0
        .Data4(5) = &H30
        .Data4(6) = &HC
        .Data4(7) = &HAB
    End With
On Error GoTo ERR_LINE
    OleLoadPicturePath StrPtr(strFileName), 0&, 0&, 0&, IID, LoadWebPicture
    Exit Function
ERR_LINE:
    Set LoadWebPicture = VB.LoadPicture(strFileName)
End Function