共用方式為


CONNECT 範例:示範連接點的實作和使用 (C++ 範例)

更新:2007 年 11 月

本範例說明在多執行緒環境中連接點 (IConnectionPointContainerIConnectionPoint 介面) 的使用與實作。

注意事項:

本範例是 ATL 範例 Connect 的修改版本,用於示範對連接點接收的編譯器 COM 支援。Drive 用戶端是原生實作,但是 MDrive 用戶端會使用 Class Factory 對 COM 進行輕微的修正,以建立接收物件。Drive 和 MDrive 都不是根據 ATL 或 MFC 以取得任何 COM 支援。

安全性注意事項:

這個程式碼範例僅供概念說明之用,同時因為範例中的程式碼撰寫並沒有周全的顧及所有安全性問題,所以本範例不適用於實際執行的應用程式或網站中。如果使用者擅自將範例程式碼用於其他意圖而導致連帶事件或重大損害時,Microsoft 將不承擔任何責任。

To get samples and instructions for installing them:

  • 按一下 Visual Studio [說明] 功能表上的 [範例]。

    如需詳細資訊,請參閱尋找範例檔案

  • Visual Studio 2008 範例網頁 中提供最新版本的範例完整清單。

  • 您也可以在電腦硬碟中找到範例。根據預設,範例和一個讀我檔案會複製到 \Program Files\Visual Studio 9.0\Samples\ 底下的資料夾中。Visual Studio Express 版本的所有範例都在網路上。

建置和執行範例

若要建置和執行這個範例

  1. 開啟 connect.sln 方案。

  2. 在 [建置] 功能表上,按一下 [建置方案]。

  3. 選取您想要執行的用戶端 (Drive 或 MDrive),將它做為啟始專案 (以滑鼠右鍵按一下專案資料夾,然後按一下 [設定為啟始專案])。有關用戶端的詳細資訊可於<範例如何操作>章節中找到。

  4. 在 [偵錯] 功能表上,按一下 [啟動但不偵錯]。

範例如何操作

伺服程式是在 Connect.dll 內實作。這個 DLL 允許建立一個由 CRandom C++ 類別實作的 CoRandom COM 物件。這個 COM 物件會支援 IRandom (雙重介面) 和 IConnectionPointContainer,且接受 IRandomEvent 介面的連接。

IRandom 介面支援下列方法:

  • Start:啟動物件內部的執行緒

  • Stop:停止物件內部的執行緒

  • StopAll:停止所有正在執行的執行緒

當執行時,物件中的次要執行緒就會透過連接點持續引發事件。

提供兩個用戶端:Drive 和 MDrive,您可以在 Drive 和 MDrive 子目錄中找到這兩個用戶端。

  • Drive.exe 是一個簡單的主控台應用程式,這個應用程式會提供實作 IRandomEvent 介面的單一物件。它會建立 CoRandom 物件,在連接點上呼叫 Advise 和 Unadvise,並且讓 CoRandom 物件將事件引發至磁碟的物件。

  • Mdrive.exe 是一個 MFC 對話方塊架構的應用程式,能夠建立多個通知接收 (Advise Sink),並控制伺服程式建立的執行緒數量。當您執行 Mdrive.exe 時,至少要按一次 [啟動] 按鈕,然後連續按幾次 Advise 按鈕。每按一下 [Advise] 按鈕,就會加入一個連結點,讓顯示畫面變得更寬。如果您沒有按一下 [Advise] 按鈕,您將不會在顯示中看到任何動作。

請參閱

參考

Compiler COM Support

其他資源

編譯器 COM 支援範例