網際網路上的非同步 Moniker
由於緩慢的網路存取,網際網路需要加入新的方法至應用程式設計。 應用程式應該非同步地執行網路存取,避免讓使用者介面失去作用。 MFC 類別 CAsyncMonikerFile 為下載檔案提供非同步支援。
有了非同步 Moniker,您可以擴充 COM 應用程式,跨網際網路非同步地下載並提供大型物件的轉換,例如點陣圖和 VRML 物件。 非同步 Moniker 在網際網路啟用要下載的 ActiveX 控制項屬性或檔案中網際網路,而不會封鎖使用者介面的回應。
非同步 Moniker 的優點
您可以使用非同步 Moniker 進行:
下載程式碼和檔案,並且不會封鎖。
在 ActiveX 控制項下載屬性,並且不會封鎖。
接收下載進度通知。
追蹤進度和就緒狀態資訊。
提供進度的狀態資訊給使用者。
允許使用者隨時取消下載。
非同步 Moniker 的 MFC 類別
CAsyncMonikerFile 衍生自 CMonikerFile,其又是衍生自 COleStreamFile。 COleStreamFile 物件表示資料流;CMonikerFile 物件使用 IMoniker 取得資料,而 CAsyncMonikerFile 也是非同步地如此做。
非同步 Moniekr 主要使用在網際網路可用的應用程式和 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 控制項。