Bonjour,

J'ai une classe pour lire des avi avec vfw.h.
Je l'ai fait fonctionner avec Borland C++ Builder 6 et wxDevcpp.
Elle m'avait jamais posé de problème.

J'arrive à la compiler sous VS 2005 en C++.NET. Mais, à l'exécution, la fonction "AVIFileOpen" me retourne l'erreur "REGDB_E_CLASSNOTREG" dont la msdn donne la définition suivante :

According to the registry, the type of file specified in AVIFileOpen does not have a handler to process it.
Je ce que j'ai compris à ceci, c'est qu'il manque l'info, dans la base de registre, pour qu'il puisse ouvrir l'avi. C'est bien ça ?

Or, sur le même PC et avec la même classe j'arrive à ouvrir un AVI avec un exe compilé avec wxDevcpp par exemple. Pourquoi dans un cas y aurait l'info dans la base de registre et dans l'autre non ?

Par ailleurs j'utilise la fonction "AVIFileOpen" avec l'argument "pclsidHandler" égal à NULL. Argument décrit par la msdn :

Pointer to a class identifier of the standard or custom handler you want to use. If the value is NULL, the system chooses a handler from the registry based on the file extension or the RIFF type specified in the file.
J'en déduis qu'il faut peut-être mettre un Handler non nul de façon à préciser moi-même avec quoi ouvrir le avi.

J'ai essayé pleins de trucs (ya pas bcp d'aide dessus) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
CLSID z;		
z.Data1 = 0;
z.Data2 = 4;
z.Data3 = 0;
*(z.Data4) = MKFOURCC('i', 'a', 'v', 's');
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
CLSID z;	
z.Data1 = 'i';
z.Data2 = 'a';
z.Data3 = 'v';
*(z.Data4) = 's';
Toujours la même erreur. Quelqu'un à une idée ?

Merci.

Flo.

PS : Sur mon PC (Win2000), j'ai "VLC Player", "Windows Media Player" et "DirectX9" (si ça peut aider )