请问一个函数的使用问题(50)(50分)

  • 主题发起人 主题发起人 madasoft
  • 开始时间 开始时间
M

madasoft

Unregistered / Unconfirmed
GUEST, unregistred user!
URLDownloadToFile()怎么用呢?delphi没有帮助。
 
在UrlMon这个单元中,定义如下:
路径是.../Borland/Delphi6/Source/Rtl/Win

function URLDownloadToFile(Caller: IUnknown; URL: PChar; FileName: PChar; Reserved: DWORD; StatusCB: IBindStatusCallback): HResult; stdcall;
{$EXTERNALSYM URLDownloadToFileA}
function URLDownloadToFileA(Caller: IUnknown; URL: PAnsiChar; FileName: PAnsiChar; Reserved: DWORD; StatusCB: IBindStatusCallback): HResult; stdcall;
{$EXTERNALSYM URLDownloadToFileW}
function URLDownloadToFileW(Caller: IUnknown; URL: PWideChar; FileName: PWideChar; Reserved: DWORD; StatusCB: IBindStatusCallback): HResult; stdcall;
{$EXTERNALSYM URLDownloadToCacheFile}
 
URLDownloadToFile的帮助如果delphi的sdk帮助里也没有的话,可以查MSDN,

URLDownloadToFile Function

--------------------------------------------------------------------------------

Downloads bits from the Internet and saves them to a file.

Syntax

HRESULT URLDownloadToFile(
LPUNKNOWN pCaller,
LPCTSTR szURL,
LPCTSTR szFileName,
DWORD dwReserved,
LPBINDSTATUSCALLBACK lpfnCB
);

Parameters

pCaller
Address of the controlling IUnknown interface of the calling ActiveX® component (if the caller is an ActiveX component). If the calling application is not an ActiveX component, this value can be set to NULL. Otherwise, the caller is a COM object that is contained in another component (such as an ActiveX control within the context of an HTML page). This parameter represents the outermost IUnknown of the calling component. The function attempts the download within the context of the ActiveX client framework and allows the caller's container to receive callbacks on the progress of the download.
szURL
Address of a string value containing the URL to be downloaded. This cannot be set to NULL.
szFileName
Addrss of a string value containing the name of the file to create for bits that come from the download.
dwReserved
Reserved for future use. Must be zero.
lpfnCB
Address of the caller's IBindStatusCallback interface. URLDownloadToFile calls this interface's IBindStatusCallback::OnProgress method on a connection activity, including the arrival of data. IBindStatusCallback::OnDataAvailable is never called. Implementing IBindStatusCallback::OnProgress allows a caller to implement a user interface or other progress monitoring functionality. It also allows the download operation to be canceled by returning E_ABORT from the IBindStatusCallback::OnProgress call. This can be set to NULL.
Return Value

Returns one of the following values:

E_OUTOFMEMORY The buffer length is invalid or there was insufficient memory to complete the operation.
S_OK The operation succeeded.

Remarks

The client can choose to be notified of progress through a notification callback.

Function Information

Windows NT Use version 4.0. Implemented as ANSI and Unicode functions.
Windows Use Windows 95 and later. Implemented as ANSI and Unicode functions.
Header Urlmon.h
Import Library Urlmon.lib
Minimum availability Internet Explorer 3.0
 
看MSDN。
URLDownloadToFile Function

--------------------------------------------------------------------------------

Downloads bits from the Internet and saves them to a file.

Syntax

HRESULT URLDownloadToFile( LPUNKNOWN pCaller,
LPCTSTR szURL,
LPCTSTR szFileName,
DWORD dwReserved,
LPBINDSTATUSCALLBACK lpfnCB
);
Parameters

pCaller
Pointer to the controlling IUnknown interface of the calling Microsoft® ActiveX®
component (if the caller is an ActiveX component). If the calling application is
not an ActiveX component, this value can be set to NULL. Otherwise, the caller
is a Component Object Model (COM) object that is contained in another component
(such as an ActiveX control within the context of an HTML page). This parameter
represents the outermost IUnknown of the calling component. The function attempts
the download within the context of the ActiveX client framework and allows the
caller's container to receive callbacks on the progress of the download.
szURL
Pointer to a string value containing the URL to be downloaded. Cannot be set to NULL.
szFileName
Pointer to a string value containing the name of the file to create for bits that
come from the download.
dwReserved
Reserved. Must be set to 0.
lpfnCB
Pointer to the caller's IBindStatusCallback interface. URLDownloadToFile calls
this interface's IBindStatusCallback::OnProgress method on a connection activity,
including the arrival of data. IBindStatusCallback::OnDataAvailable is never
called. Implementing IBindStatusCallback::OnProgress allows a caller to implement
a user interface or other progress monitoring functionality. It also allows the
download operation to be canceled by returning E_ABORT from the
IBindStatusCallback::OnProgress call. This can be set to NULL.
Return Value

Returns one of the following values.

E_OUTOFMEMORY The buffer length is invalid or there was insufficient memory to
complete the operation.
S_OK The operation succeeded.


Remarks

The client can choose to be notified of progress through a notification callback.

Function Information

Header Urlmon.h
Import library Urlmon.lib
Minimum availability Internet Explorer 3.0
Minimum operating systems Windows NT 4.0, Windows 95
 
How to download a file from the Internet. - by Borland Developer Support Staff




Abstract: Code snippit shows one way of downloading a file from the Internet.
QUESTION:
How do I download a file from a URL location?

ANSWER:

There are a number of ways to do this, below is a simple code snippit that
will give you an idea of how to do this. Make sure to add ShellApi, and UrlMon
to your uses clause.


function DownLoadInternetFile(Source, Dest : String): Boolean;
begin
try
Result := URLDownloadToFile(nil,PChar(Source),PChar(Dest),0,nil) = 0
except
Result := False;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
SourceString, DestinationString: string;
begin
//File location on the Internet.
SourceString := 'http://www.borland.com/images/homepage/del6homemural.gif';
//File destination.
DestinationString := 'C:Tempdel6homemural.gif';

if DownLoadInternetFile(SourceString, DestinationString) then
//This will display the file from your browser.
ShellExecute(Application.Handle, PChar('Open'), PChar(DestinationString), PChar(''), nil, SW_NORMAL)
else
ShowMessage('Error during Download ' + SourceString);
end;



 
多人接受答案了。
 
后退
顶部