Загрузка файла проекта
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие 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. Всегда проверка возвращаемое значение, чтобы корректно обрабатывать условия ошибок. Опять же, для краткости пример кода не проверка ошибок.
Связанные темы