IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

AVIFileOpen, REGDB_E_CLASSNOTREG et CLSID


Sujet :

Visual C++

  1. #1
    Membre chevronné Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Par défaut AVIFileOpen, REGDB_E_CLASSNOTREG et CLSID
    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 )

  2. #2
    Membre chevronné Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Par défaut
    En fait, je crois que j'ai placé mon post dans un forum trop spécialisé.

    Est-ce qu'un modérateur pourrait me le transférer dans le forum parent "Visual C++" ?

    Merci.

    Flo.

  3. #3
    Membre chevronné Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Par défaut
    Salut,

    Un collègue a trouvé la solution ... Dans le vfw.h de Visual Studio 2005, la chaîne de caractères qui contient le nom du fichier à ouvrir (dans le AVIFileOpen) doit être en UNICODE (et moi je la passais en char*).

    C'est nouveau, c'est du Visual Studio 2005.

    C'est malheureux, qu'en 2007, on puisse pas ouvrir un fichier sans se poser la question si ça doit être de l'unicode ou pas. Un coup c'est du char *, du const char *, du wchar*, du const wchar* et j'en oublie.

    A+

    Flo.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] CLSID
    Par cacalex dans le forum Windows Forms
    Réponses: 14
    Dernier message: 15/01/2006, 18h38
  2. CLSID => Signification
    Par kunfuka dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 13/12/2005, 15h49
  3. [ActiveX Acrobat] Problème avec la définition du CLSID / EVENTID
    Par SubZero2 dans le forum API, COM et SDKs
    Réponses: 10
    Dernier message: 19/09/2005, 08h54
  4. Réponses: 6
    Dernier message: 10/06/2005, 23h56
  5. Réponses: 4
    Dernier message: 04/03/2005, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo