Méthode ICaptureGraphBuilder2 ::AllocCapFile (strmif.h)
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si 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.]
La AllocCapFile
méthode préalloue un fichier de capture à une taille spécifiée. Pour de meilleurs résultats, capturez toujours dans un fichier de capture défragmenté et préalloué qui dépasse la taille des données de capture.
Syntaxe
HRESULT AllocCapFile(
[in] LPCOLESTR lpstr,
[in] DWORDLONG dwlSize
);
Paramètres
[in] lpstr
Pointeur vers une chaîne de caractères larges qui contient le nom du fichier à créer ou à redimensionner.
[in] dwlSize
Taille du fichier à allouer, en octets.
Valeur retournée
Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
Remarques
Cette méthode échoue si le fichier est en lecture seule.
Il est préférable d’allouer autant d’espace que possible, dans l’idéal, plus que nécessaire. Toutefois, cela peut entraîner un fichier très volumineux qui contient relativement peu de données. Par exemple, un fichier de capture de 1 gigaoctet (Go) peut contenir quelques mégaoctets de vidéo capturée. Utilisez la méthode ICaptureGraphBuilder2 ::CopyCaptureFile pour copier les données dans un nouveau fichier. Cette méthode copie uniquement les données et ignore la partie vide du fichier d’origine.
Si vous utilisez cette méthode pour préallouer le fichier, appelez IFileSinkFilter2 ::SetMode sur le filtre de l’enregistreur de fichiers avec la valeur zéro. Si le filtre est défini sur AM_FILE_OVERWRITE, il supprime le fichier préalloué. Notez que certains filtres d’enregistreur de fichiers ne prennent pas en charge le mode 0.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | strmif.h (include Dshow.h) |
Bibliothèque | Strmiids.lib |