分享方式:


網際網路上的非同步 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 衍生自 CAsyncMonikerFileCCachedDataPathProperty 衍生自 CDataPathProperty。 若要在 ActiveX 控制項中實作非同步屬性,請從 CDataPathPropertyCCachedDataPathProperty 衍生類別,並覆寫 您想要接收的 OnDataAvailable 和其他通知。

使用非同步 Moniker 下載檔案

  1. 宣告衍生自 CAsyncMonikerFile 的類別。

  2. 覆寫 OnDataAvailable 以顯示資料。

  3. 覆寫其他成員函式,包括 OnProgress OnStartBinding OnStopBinding

  4. 宣告這個類別的執行個體並使用它來開啟 URL。

如需在 ActiveX 控制項中非同步下載的資訊,請參閱 網際網路 上的 ActiveX 控制項。

另請參閱

MFC 網際網路程式設計工作
MFC 網際網路程式設計基本概念