網際網路上的非同步 Moniker
由於網路存取的速度很慢,網際網路需要加入新的方法至應用程式設計。 應用程式應該以非同步方式執行網路存取,避免讓使用者介面失去作用。 MFC 類別 CAsyncMonikerFile 提供下載檔案的非同步支援。
有了非同步 Moniker,您可以擴充 COM 應用程式,使其跨網際網路進行非同步下載,並提供大型物件的漸進式呈現,例如點陣圖和 VRML 物件。 非同步 Moniker 可下載網際網路上的 ActiveX 控制項屬性或檔案,而不會封鎖使用者介面的回應。
非同步 Moniker 的優點
您可以使用非同步 Moniker 進行下列動作:
下載程式碼和檔案而不會封鎖。
在 ActiveX 控制項中下載屬性,而不會封鎖。
接收下載進度的通知。
追蹤進度和就緒狀態資訊。
提供進度的狀態資訊給使用者。
允許使用者隨時取消下載。
非同步 Moniker 的 MFC 類別
CAsyncMonikerFile 衍生自 CMonikerFile ,接著衍生自 COleStreamFile 。 COleStreamFile
物件表示一種資料流;CMonikerFile
物件會使用 IMoniker
取得資料,而 CAsyncMonikerFile
也會以非同步方式如此做。
非同步 Moniker 主要在支援網際網路的應用程式和 ActiveX 控制項中使用,用於在檔案傳輸期間提供反應靈敏的使用者介面。 其中的主要範例是使用 CDataPathProperty 來提供 ActiveX 控制項的非同步屬性。
MFC 類別在 ActiveX 控制項中的資料路徑
MFC 類別 CDataPathProperty
和 CCachedDataPathProperty 會實作可非同步載入的 ActiveX 控制項屬性。 非同步屬性會在同步初始之後載入。 非同步 ActiveX 控制項會重複叫用回呼,在長時間的屬性交換過程中表示新資料的可用性。
CDataPathProperty
衍生自 CAsyncMonikerFile
。 CCachedDataPathProperty
衍生自 CDataPathProperty
。 若要在 ActiveX 控制項中實作非同步屬性,請從 CDataPathProperty
或 CCachedDataPathProperty
衍生類別,並覆寫 您想要接收的 OnDataAvailable 和其他通知。
使用非同步 Moniker 下載檔案
宣告衍生自 CAsyncMonikerFile 的類別。
覆寫 OnDataAvailable 以顯示資料。
覆寫其他成員函式,包括 OnProgress 、 OnStartBinding 和 OnStopBinding 。
宣告這個類別的執行個體並使用它來開啟 URL。
如需在 ActiveX 控制項中非同步下載的資訊,請參閱 網際網路 上的 ActiveX 控制項。