Chargement d’un fichier projet

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

[Cette API n’est pas prise en charge et peut être modifiée ou indisponible à l’avenir.]

Pour charger un fichier projet, vous avez besoin de deux composants : l’analyseur XML et un chronologie vide. L’analyseur XML lit un fichier projet XML et crée chaque objet défini dans le fichier. Ensuite, il insère les objets dans le chronologie et définit les attributs chronologie, tels que la fréquence d’images par défaut. L’exemple de code suivant charge un fichier.

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();

L’analyseur expose l’interface IXml2Dex , qui contient des méthodes de chargement et d’enregistrement de fichiers projet. Le chronologie expose l’interface IAMTimeline, qui contient des méthodes permettant de manipuler les chronologie et de créer de nouveaux objets chronologie. Appelez la fonction CoCreateInstance pour créer chaque composant, comme indiqué. N’oubliez pas qu’en créant un instance, vous incrémentez le nombre de références sur l’interface. Pour éviter les fuites de mémoire, relâchez toujours une interface lorsque vous l’utilisez. Dans cet exemple, le pointeur vers IXml2Dex n’est pas nécessaire pour rien de plus, vous pouvez donc libérer l’interface. Le pointeur vers IAMTimeline est toujours nécessaire pour afficher un aperçu du chronologie.

La méthode IXml2Dex::ReadXMLFile lit le fichier spécifié et remplit le chronologie avec les objets définis dans le fichier. Le nom de fichier est spécifié à l’aide d’une valeur BSTR . Pour raccourcir l’exemple, le nom de fichier dans l’exemple est donné sous forme de chaîne littérale. Normalement, vous l’obtenez à partir d’une boîte de dialogue Ouvrir un fichier ou d’un élément similaire.

Si la méthode ReadXML réussit, elle retourne un code de réussite. Sinon, il retourne un code d’erreur tel que VFW_E_INVALID_FILE_FORMAT. Toujours case activée la valeur de retour, afin de gérer correctement les conditions d’erreur. Là encore, par souci de concision, l’exemple de code ne case activée pas pour les erreurs.

Chargement et aperçu d’un projet