共用方式為


載入項目檔

[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngine及媒體基礎中的 音訊/視訊擷取所取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayerIMFMediaEngine 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]

[此 API 不受支持,未來可能會改變或無法使用。]

若要載入項目檔,您需要兩個元件:XML 剖析器和空白時程表。 XML 剖析器會讀取 XML 項目檔,並建立檔案中定義的每個物件。 然後將物件插入時間軸,並設定任何時間軸屬性,例如預設幀速率。 下列程式代碼範例會載入檔案。

HRESULT         hr;
IAMTimeline     *pTL = NULL;
IXml2Dex        *pXML = NULL; 
hr = CoCreateInstance(CLSID_AMTimeline, NULL, CLSCTX_INPROC_SERVER, 
            IID_IAMTimeline, (void**)&pTL);
hr = CoCreateInstance(CLSID_Xml2Dex, NULL, CLSCTX_INPROC_SERVER, 
            IID_IXml2Dex, (void**)&pXML);
BSTR bstrFile = SysAllocStringLen(OLESTR("C:\\example.xtl"), 15);
hr = pXML->ReadXMLFile(pTL, bstrFile); 
SysFreeString(bstrFile);
pXML->Release();

剖析器會公開 IXml2Dex 介面,其中包含載入和儲存項目檔的方法。 時間軸公開 IAMTimeline 介面,其中包含用於操作時間軸和建立新時間軸物件的方法。 呼叫 CoCreateInstance 函式來建立每個元件,如下所示。 請記住,藉由建立新的實例,您會在 介面上遞增參考計數。 若要避免記憶體洩漏,請在使用完介面後一律釋放介面。 在此範例中,IXml2Dex 指標不再有其他用途,因此您可以從指標中釋放介面。 預覽時程表時,仍然需要 IAMTimeline 指標。

IXml2Dex::ReadXMLFile 方法會讀取指定的檔案,並在時間軸中填入檔案中定義的物件。 檔名是使用 BSTR 值來指定。 為了縮短範例,範例中的檔名會指定為常值字串。 一般而言,您會從 [開啟檔案] 對話框或類似專案取得它。

如果 ReadXML 方法成功,則會傳回成功碼。 否則,它會傳回錯誤碼,例如VFW_E_INVALID_FILE_FORMAT。 請一律檢查傳回值,以正常處理錯誤狀況。 為了簡潔起見,範例程式碼同樣不檢查錯誤。

載入和預覽專案