共用方式為


載入專案檔

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對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。 請一律檢查傳回值,以正常處理錯誤狀況。 同樣地,範例程式碼不會檢查錯誤。

載入和預覽專案