FILE: AsyncDown Demonstrates Asynchronous Data Download
ID: Q177244
|
The information in this article applies to:
-
The Microsoft Foundation Classes (MFC), included with:
-
Microsoft Visual C++, 32-bit Editions, versions 4.2, 4.2b, 5.0, 6.0
SUMMARY
The Asyndown.exe sample demonstrates asynchronous download of data in an
MFC ActiveX control. MFC wraps this asynchronous download process in the
CAsyncMonikerFile class.
MORE INFORMATION
The following file is available for download from the Microsoft Software
Library:
Asyndown.exe
For more information about downloading files from the Microsoft Software
Library, please see the following article in the Microsoft Knowledge Base:
Q119591 How to Obtain Microsoft Support Files from Online Services
An Asynchronous moniker provides a way to download data asynchronously over
a network. After a download is first requested, Asynchronous Monikers use a
callback interface to indicate that data is available. This data can then
be read with an Asynchronous Read operation.
A Read operation on an Asynchronous moniker returns immediately even if the
operation has not been completed. If there are only 10 bytes available and
Read is called with 1K, it does not block but returns with the 10 available
bytes at that point in time. It is the caller's responsibility to return
later and attempt to read more data when notified through the callback.
MFC wraps this asynchronous download process in the CAsyncMonikerFile
class. ActiveX controls can use the CDataPathProperty class, derived from
CAsyncMonikerFile, to help implement asynchronous control properties. This
sample demonstrates how to set up an asynchronous loop using timers to read
the data.
In the function CDataPathProperty::OnDataAvailable, a timer is set to
indicate that data is available. When the timer message is received, the
sample reads in blocks of 128 bytes and fills an edit control. If data is
not available when the timer message is handled, the timer is turned off.
OnDataAvailable turns on the timer if more data arrives later.
Please note that the timer duration is intentionally large and data blocks
are intentionally small to demonstrate the behavior even with small files.
You can test the control either by using the HTML page with the sample or
by inserting the control in a control container and setting the DataPath
property. The control is not signed so you need to set your security
settings appropriately if you want to test the control. Depending on your
security setting, you may still be warned that the control is not safe for
scripting.
(c) Microsoft Corporation 1997, All Rights Reserved.
Contributions by Sridhar S. Madhugiri, Microsoft Corporation
Additional query words:
softlib
Keywords : kbfile kbole kbsample kbMFC kbVC kbVC420 kbVC500 kbVC600
Version : WINNT:4.2,4.2b,5.0,6.0
Platform : winnt
Issue type : kbprb
Last Reviewed: August 8, 1999