程序代碼: http://m.shnenglu.com/Files/alantop/async.rar
This sample creates a control that downloads data asynchronously from a URL. The control implements the IBindStatusCallback interface. Typically, you asynchronously download large binary objects or properties. This allows the control's user interface to remain unblocked during potentially lengthy network operations. The use of asynchronous downloading also gives the user a chance to abort the download. ATL uses WinInet functions internally to implement asynchronous downloading.
這個(gè)例子建立了一個(gè)控件從一個(gè)URL里異步下載數(shù)據(jù)。這個(gè)控件實(shí)現(xiàn)了IBindStatusCallback接口。有代表性的,你異步下載大的數(shù)據(jù)和道具。這將保持在整個(gè)網(wǎng)絡(luò)長(zhǎng)時(shí)間的網(wǎng)絡(luò)操作中,用戶的接口保持不被封鎖。異步下載可以給用戶提供中斷的機(jī)會(huì)。ATL用內(nèi)建的WinInet函數(shù)實(shí)現(xiàn)異步下載。
ASYNC creates a subclassed edit control with one property called URL. The URL property is a BSTR that represents a URL that points to data. The ASYNC sample uses the ATL CBindStatusCallback class to implement asynchronous downloading. When the control user sets the URL property, ASYNC creates a CBindStatusCallback object. The CBindStatusCallback::StartAsyncDownload method is then called and passed both the URL and a pointer to a callback function. This function, CAtlAsync::OnData, is called by the CBindStatusCallback object and is passed the binary data from the URL as it is received. CAtlAsync::OnData simply sends the received data to the subclassed edit control, where it is displayed.
ASYNC建立一個(gè)子類化的edit控件,其有一個(gè)屬性關(guān)聯(lián)URL.URL屬性用BSTR代表。演示程序用CBindStatusCallback類實(shí)現(xiàn)異步下載。當(dāng)控件用戶設(shè)置URL屬性,ASYNC建立一個(gè)CBindStatusCallback屬性。然后,CBindStatusCallback::StartAsyncDownload被調(diào)用,URL和一個(gè)指向回調(diào)函數(shù)的指針被傳遞給函數(shù)。CAtlAsync::OnData被CBindStatusCallback對(duì)象調(diào)用,并傳遞url接收到的二進(jìn)制數(shù)據(jù)。CAtlAsync::OnData發(fā)送接收到的數(shù)據(jù)到被顯示的子類化控件中。
Running the Sample
Load the AtlAsync.htm file into your web browser. Type a URL into the edit control and press the Go button. This sets the ASYNC control's URL property to the URL you typed and starts the download. As data is downloaded, you will see it displayed in the ASYNC control.
在瀏覽器中打開atlasync.htm文件。在edit控件鍵入網(wǎng)址,并選擇go.這將設(shè)置ASYNC控件的URL屬性并開始下載。當(dāng)數(shù)據(jù)下載的時(shí)候,你可以看到它在async控件中顯示。
For an example of how to subclass Windows controls using ATL, see the ATL SubEdit sample.
怎樣用
ATL
子類化窗口控件,看
ATL subedit
例子。
?