Usando un poco del codigo que tiene leandro en el ucImage, habria que cambiar el evento Downloading del ucDownload ( en la definicion y en el RaiseEvent )
' cambiar la definicion del evento
Public Event Downloading(BytesMax As Long, BytesLeidos As Long)
'y cambiar RaiseEvent
Private Sub UserControl_AsyncReadProgress(AsyncProp As AsyncProperty)
With AsyncProp
Select Case .StatusCode
Case vbAsyncStatusCodeDownloadingData: RaiseEvent Downloading(.BytesMax, .BytesRead)
Case vbAsyncStatusCodeError: c_bSinc = False
End Select
End With
End Sub
Y para probar, en un formulario agrega un progressbar y un commandbutton
Option Explicit
Private Sub Command1_Click()
With ProgressBar1
.Min = 0
.Max = 100
.Value = 0
End With
ucDownload1.Download "http://cdn0.wickedweasel.com/assets/images/pics/0048/6763/7.jpg?1314315914", App.Path & "\ww.jpg"
End Sub
Private Sub ucDownload1_DownloadComplete(ByVal bSuccess As Boolean)
If bSuccess Then
ProgressBar1.Visible = False
Command1.Visible = False
Set Me.Picture = LoadPicture(App.Path & "\ww.jpg")
Me.WindowState = vbMaximized
End If
End Sub
Private Sub ucDownload1_Downloading(BytesMax As Long, BytesLeidos As Long)
'no es el tiempo que se demora, pero ya sabes cuantos bytes deben leerse y cuantos han sido leidos
ProgressBar1.Value = Int((BytesLeidos * 100) / BytesMax)
End Sub