Adam Smith писал(а):objHTTP.GetResponseHeader("Content-Length") в Long 'или в Decimal
Точно не в Long. Бывают файлы больше 4 ГБ.
Adam Smith писал(а):objHTTP.GetResponseHeader("Content-Length") в Long 'или в Decimal
Adam Smith писал(а):Cреди API-функций есть такая, которая вернет мне данные конкретных Response Headers как это делает обертка?
WinHttpQueryHeaders писал(а):By default WinHttpQueryHeaders returns a string. However, you can request data in the form of a SYSTEMTIME structure or DWORD by including the appropriate modifier flag in dwInfoLevel. The following table shows the possible data types that WinHttpQueryHeaders can return along with the modifier flag that you use to select that data type.
Data type Modifier flag
LPCWSTR Default. No modifier flag required.
SYSTEMTIME WINHTTP_QUERY_FLAG_SYSTEMTIME
DWORD WINHTTP_QUERY_FLAG_NUMBER
Private objHTTP As Object
Private Sub Class_Initialize()
Const WinHttpRequestOption_EnableHttpsToHttpRedirects = 12
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
'Enable redirection from HTTPS to HTTP (is Off by default)
objHTTP.Option(WinHttpRequestOption_EnableHttpsToHttpRedirects) = True
End Sub
Private Sub Class_Terminate()
Set objHTTP = Nothing
End Sub
Public Function Status(Index As Long) As Long
On Error Resume Next
objHTTP.Open "HEAD", RecLinks(Index).fLink, False
If Err.Number <> 0 Then Status = 400: Exit Function
' objHTTP.setRequestHeader "Connection", "Close"
objHTTP.send
objHTTP.WaitForResponse
' If objHTTP.WaitForResponse(0) Then
Status = objHTTP.Status
If Status = 200& Then
Dim tmpStr As String
tmpStr = Mid$(objHTTP.GetResponseHeader("Last-Modified"), 6&, 20&)
Select Case Mid$(tmpStr, 4&, 3&)
Case "Jan"
Mid(tmpStr, 3&, 4&) = ".01."
Case "Feb"
Mid(tmpStr, 3&, 4&) = ".02."
Case "Mar"
Mid(tmpStr, 3&, 4&) = ".03."
Case "Apr"
Mid(tmpStr, 3&, 4&) = ".04."
Case "May"
Mid(tmpStr, 3&, 4&) = ".05."
Case "Jun"
Mid(tmpStr, 3&, 4&) = ".06."
Case "Jul"
Mid(tmpStr, 3&, 4&) = ".07."
Case "Aug"
Mid(tmpStr, 3&, 4&) = ".08."
Case "Sep"
Mid(tmpStr, 3&, 4&) = ".09."
Case "Oct"
Mid(tmpStr, 3&, 4&) = ".10."
Case "Nov"
Mid(tmpStr, 3&, 4&) = ".11."
Case "Dec"
Mid(tmpStr, 3&, 4&) = ".12."
End Select
tmpStr = Left$(tmpStr, 6&) & Right$(tmpStr, 13&)
RecLinks(Index).fTime = CDate(tmpStr)
RecLinks(Index).fType = StrConv(objHTTP.GetResponseHeader("Content-Type"), vbFromUnicode)
RecLinks(Index).fLen = objHTTP.GetResponseHeader("Content-Length")
End Function
Adam Smith писал(а):Насколько я понял, структура не важна, его можно копировать из памяти в обычный байт-массив. И наоборот, любую структуру SAFEARRAY можно воссоздать из байт-массива.
Ладно, я могу отказаться от пользовательского типа, разобью его на несколько массивов стандартных типов.
Но и такие стандартные массивы тоже нельзя копировать/восстановить из байт-массива?
Adam Smith писал(а):Говорено переговорено и в т.ч. тобой лично озвучено, что это не работает.
Adam Smith писал(а):Пример в архиве TrickMTDownloader.rar в первой теме http://bbs.vbstreets.ru/viewtopic.php?f=99&t=46807 у меня в XP SP3 не работает, даже с регистрацией dll.
Манифест есть только в exe, в dll не вижу, без регистрации это работает в гостевой учетке Win7 и не работает даже с регистрацией в WinXP. Видимо дело в манифесте.
Adam Smith писал(а):Третья тема для меня полная жесть, очень познавательно, но к моей задачке не применимо.
Adam Smith писал(а):Вторую про NativeDLL я читал и раньше. Кажется можно в рантайме из собственного Custom ресурса выгрузить dll'ку куда-нибудь в Temp и использовать оттуда. Верно?
У меня не получалось скомпилировать нативную библиотеку, не знаю может дело в версии msvbvm, VB6 у меня установлен в Win7 и я пока не пробовал сделать это под XP.
The trick писал(а):Так не нужно делать.
Adam Smith писал(а):The trick писал(а):Так не нужно делать.
Логичнее сделать утилиту одним файлом. Почему не нужно? Антивирусы к таким вещам не равнодушны или другие причины?
Adam Smith писал(а):Так там оказывается дохрена чего на ассемблере.
ADO 2.5 писал(а): Record object
ADO 2.5 introduces the Record object to represent and manage a row from a Recordset or a data provider, or an object encapsulating a semi-structured data, such as a file or directory.
Stream object
ADO 2.5 also introduces the Stream object to represent a stream of binary or text data.
URL binding
ADO 2.5 introduces the use of a URL, as an alternative to a connection string and command text, to name data store objects. A URL can be used with the existing Connection and Recordset objects, as well as with the new Record and Stream objects.
Data providers supporting URL binding
ADO 2.5 supports OLE DB providers that recognize the URL schemes. This includes OLE DB Provider for Internet Publishing, which accesses the Windows 2000 file system and recognizes the existing HTTP scheme.
Microsoft OLE DB Provider for Internet Publishing писал(а):Используется для доступа к Web-серверам и ресурсам, обслуживаемым Microsoft FrontPage или Microsoft Internet Information Server
Сейчас этот форум просматривают: Google-бот и гости: 16