首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

DirectShow BindToObject 解析:將 Moniker 綁定為 Filter 物件

     編輯:程式設計綜合問答

程式碼片段:

hr = pMoniker->BindToObject(0, 0, IID_IBaseFilter, (void**)&pSrc);

核心功能解析

  • Moniker:COM 中的命名物件,類似「路徑」或「識別碼」,用於定位裝置/資料來源
  • BindToObject:將 Moniker 解析並實例化為具體的 COM 物件
  • IID_IBaseFilter:要求回傳介面為 IBaseFilter,即 DirectShow 篩選器基底介面
  • pSrc:輸出參數,接收建立好的來源篩選器指標

執行流程

  1. 系統根據 Moniker 內部資訊(如裝置路徑 @device:cm:{...})尋找對應裝置
  2. 載入該裝置對應的 DirectShow 篩選器 DLL
  3. 建立篩選器實例並 QueryInterface 為 IBaseFilter
  4. 將指標賦值給 pSrc,後續可加入 Filter Graph 進行串流處理

意義總結

這行代碼完成「從裝置識別字串 → 實例化可用的來源篩選器」的關鍵步驟,是 DirectShow 應用程式存取攝影機、擷取卡等硬體裝置的標準進入點。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved