(IJetEngine)engine 或 engine as IJetEngine。CLR 內部呼叫 QueryInterface,成功返回包裝類,失敗拋異常或回傳 null。as 更安全。ComImport 介面,即使源介面未聲明繼承目標介面,只要底層 COM 支援 QueryInterface 即可成功。is 運算子同理可用於檢測介面支援性。IUnknown 並呼叫 QueryInterface:在介面定義中包含 QueryInterface/AddRef/Release,或繼承 IUnknown。調用時傳入 Guid 取得 IntPtr,再轉包裝類。缺點:易回到指標操作,失去包裝類優勢。強烈建議使用包裝類引用 (RCW):
Release 使計數歸零銷毀 COM 物件。ComPtr 更簡潔 (無需手動 AddRef/Release)。避免直接操作 IntPtr:需手動管理計數,極易洩漏或過早釋放。
僅聲明需要的方法,其他介面參數用 object + [MarshalAs(UnmanagedType.Interface)] 或 IntPtr 佔位,避免遞歸聲明大量介面。