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

Windows Discussion :

WaveInOpen, de la dll WinMM, retourne un code 1, non documenté.


Sujet :

Windows

  1. #1
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 512
    Points : 131
    Points
    131
    Par défaut WaveInOpen, de la dll WinMM, retourne un code 1, non documenté.
    Bonjour à tous.

    J'espère que je suis dans le bon forum : je développe en VB6 sous Windows 10, mais je suis venu ici car il me semble que le problème dépend plutôt de mon fichier winmm.dll que d'autre chose.

    Ce programme a déjà marché. Il commence par rechercher les microphones disponibles, puis l'utilisateur en choisit un et le programme est sensé traiter ce qui arrive sur ce micro. S'il n'y a pas de micro disponible, le programme le dit (et ne fait rien, bien sûr).

    Or là, il y a bien un micro (et quand, dans le gestionnaire ed périphériques, je dis d'écouter ce micro, ça marche), mon programme le voit, donc il exécute l'API waveInOpen avec les paramètres qui sont là depuis toujours, et ça ne marche pas.

    Je passe en mode debug, et je trouve que le code retour de waveInOpen vaut 1. Or voici ce que donne la doc µ$ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Return Value
    
    Returns MMSYSERR_NOERROR if successful or an error otherwise. Possible error values include the following.
    Return code 	Description
    
    MMSYSERR_ALLOCATED
    
    	Specified resource is already allocated.
    
    MMSYSERR_BADDEVICEID
    
    	Specified device identifier is out of range.
    
    MMSYSERR_NODRIVER
    
    	No device driver is present.
    
    MMSYSERR_NOMEM
    
    	Unable to allocate or lock memory.
    
    WAVERR_BADFORMAT
    
    	Attempted to open with an unsupported waveform-audio format.
    J'ai eu beaucoup de mal à trouver des lignes de code d'origine µ$ pour l'énumération MMSYSERR, mais j'en ai quand-même trouvé qui ressemblent à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    MMSYSERR_NOERROR = 0x0
    MMSYSERR_ERROR = (NOERROR + 1)
    MMSYSERR_BADDEVICEID = (NOERROR + 2)
    MMSYSERR_NOTENABLED = (NOERROR + 3)
    MMSYSERR_ALLOCATED = (NOERROR + 4)
    MMSYSERR_INVALHANDLE = (NOERROR + 5)
    MMSYSERR_NODRIVER = (NOERROR + 6)
    MMSYSERR_NOMEM = (NOERROR + 7)
    MMSYSERR_NOTSUPPORTED = (NOERROR + 8)
    MMSYSERR_BADERRNUM = (NOERROR + 9)
    MMSYSERR_INVALFLAG = (NOERROR + 10)
    MMSYSERR_INVALPARAM = (NOERROR + 11)
    MMSYSERR_HANDLEBUSY = (NOERROR + 12)
    MMSYSERR_INVALIDALIAS = (NOERROR + 13)
    MMSYSERR_BADDB = (NOERROR + 14)
    MMSYSERR_KEYNOTFOUND = (NOERROR + 15)
    MMSYSERR_READERROR = (NOERROR + 16)
    MMSYSERR_WRITEERROR = (NOERROR + 17)
    MMSYSERR_DELETEERROR = (NOERROR + 18)
    MMSYSERR_VALNOTFOUND = (NOERROR + 19)
    MMSYSERR_NODRIVERCB = (NOERROR + 20)
    Est-ce que vous, ça vous aurait aidé à trouver ce qui ne va pas ?

    AMIcalement.

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Je ne connais pas ta dll par contre, j'aime bien ton erreur... qui semble être celle-ci : MMSYSERR_ERROR =(MMSYSERR_NOERROR + 1). Genre y'a une erreur mais on sait pas quoi te dire...

    Je viens de trouver ça : http://xpdll.nirsoft.net/winmm_dll.html qui parle de dll liées.

    Est-ce que tu as installé ton prg sur un système récent ? Entre XP et W10 y'a des différences de fonctionnement et des dll qui ne sont plus là et/ou dans les mêmes versions (32/64 bits).
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 512
    Points : 131
    Points
    131
    Par défaut
    Merci de répondre : on se sent moins seul. Malheureusement, ta réponse ne fait que redire ce que j'ai dit dans mon post... En effet, j'espérais que quelqu'un connaissant cette DLL pourrait me dire des trucs...

    Je travaille sur un PC de bureau ou sur un portable, tous deux sous Win 10 à jour. Il y a el et bien une différence entre les deux : le driver "high definition audio" n'est pas le même : Microsoft 10.0.17763.737 sur l'un (celui où ça bug) et IDT 6.10.6276.0 sur le portable, qui marche. Je ne sais pas si (et encore moins comment) on peut forcer l'installation du pilote IDT... ni si WINMM.DLL vient avec, ou si c'est toujours d'origine µ$...

    Encore merci.

    AMIcalement.

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Hello l'ami,

    Il faudrait que tu regardes dans le .inf du driver idt ce que tu as comme dll et les injecter dans l'autre pc. C'est pas sûr que ça va fonctionner mais ça peut aider.

    Pour l'installation du pilote, tu peux essayer si c'est un installeur. Ca se rapproche de l'idée émise ci-dessus.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  5. #5
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 512
    Points : 131
    Points
    131
    Par défaut
    Oulala ! Ca va loin pour moi ! Quand je regarde les drivers dans les propriétés des cares son, il y a plein de .sys dans c:\windows\system32\drivers, et des .dll dans c:\windows\system32, et nulle part de .inf. Quand je cherche des .inf dans C:, il me sort plein de trucs, mais les fichiers ne sont pas lisibles. Bref, je ne sais pas comment faire ce que tu me dis.

    Mais de toutes façons, je suis moyen fana de transférer des fichiers système du portable HP vers le PC que j'ai assemblé moi-même.

    Par contre, je suis toujours intéressé à de la documentation sur l'usage de WinMM.dll. Microsoft ne publie pas cette information ?

    En tout cas, merci de répondre encore.

    AMicalement.

  6. #6
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    les .inf sont dans C:\Windows\INF. C'est un dossier caché.

    Je te comprends pour le transfert de driver. C'est chaud.

    Où trouver des infos sur la dll, bah, ça je sais pas. faudrait chercher sur des forums de geeks (in english of course). Peut-être trouveras tu ton happiness bonheur.

    Bon courage l'AMI
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  7. #7
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Hello l'ami Yves,

    j'ai eu une petite idée : j'ai regardé quel est le "vrai" nom de la constante d'erreur. A partir de là, j'ai fait une recherche gogol... et ça renvoie plein de résultats. Essaye en recherchant MMSYSERR_ERROR.

    Bon courage

    Claude
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  8. #8
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 512
    Points : 131
    Points
    131
    Par défaut
    Désolé de revenir si tard, FrenchSting : ce truc me prend tellement la tête...

    Désolé encore, mais ta réponse ne m'aide pas : la recherche de MMSYSERROR, je l'ai déjà faite, et j'ai même publié son résultat dans mon premier message.

    Mais je vais reposer ma question d'une façon un peu différente :

    Est-il connu que, dans certaines conditions (à définir), un périphérique "Microphone" dont Windows 10 est capable de se servir, ne soit pas utilisable avec l'API WinnMM ?

    J'ajoute que je suis tombé sur cette bizarrerie en tentant de faire tourner sur un ordi de bureau un programme que j'ai développé sur un portable HP, et qui y fonctionne très bien.

    J'espère avoir pls de réponse avec cette ouvelle façon de présenter mon problème.

    AMIcalement.

  9. #9
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Pas de souci l'ami,

    j'ai fait une recherche rapide avec les mots-clés "MMSYSERR_ERROR WinnMM microphone".
    J'ai trouvé un lien ici https://social.msdn.microsoft.com/Fo...diodevelopment

    Je pense également que tu trouveras plus d'exemples en C++ / C# qu'en VB.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  10. #10
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 512
    Points : 131
    Points
    131
    Par défaut
    Merci, FrenchSting : cette référence semble bien en effet faire référence à un problème qui ressemble au mien. Je suis bien désolé de ne pas être plus "fluent" en anglais, mais, de ce que j'ai compris, l’essentiel de la discussion traite de la façon de faire remonter le problème chez µ$, et un peu (mais j'ai peut-être pas tout compris) de quelles modifications chez µ$ peuvent provoquer le problème, mais je n'ai pas vu de quelle façon le résoudre.

    Je suis en déplacement pour une semaine, et je n'ai donc plus accès au poste où le problème se pose, mais je n'ai pas souvenir d'avoir vu un bouton "autoriser vos programmes à accéder à ce périphérique" (il est bien clair que si µ$ a introduit cette modification, ça explique mon cas, mais si le bouton n'apparait pas, ou s'il est sans effet, je suis mal !). Sur mon portable, aujourd'hui, il y a juste une liste déroulante qui ne comporte qu'une option :"Accéder à ce périphérique". Est-ce que c'est ça ?

    Ayant fait la même remarque à propos de C# et C++, j'ai demandé au modérateur de passer mon message sur "Windows/System", et ça a été fait.

    AMIcalement

  11. #11
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Hello, j'avais également compris que ça parlait surtout d'une remontée d'erreur et pas du traitement de celle-ci.

    Je ne sais plus si j'ai posé la question, mais est-ce que tu as la même version de Windows sur les 2 postes (mises à jour windows) ?

    Si c'est le cas, cela peut provenir d'un souci de pilote (piste déjà soulevée) ou d'autorisation système pour le microphone. Si c'est un problème d'autorisation, il faut trouver un bout de code qui permet de la paramétrer.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  12. #12
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 512
    Points : 131
    Points
    131
    Par défaut
    J'ai dit dans le message N° 3 que les deux windows sont les mêmes (w10 à jour), mais les ordi. ne sont pas de même marque, et les "périphériques son et jeux" (de mémoire) ne sont pas de même version.

    La discussion dont tu as mis le lien évoque en effet quelque chose du genre "autorisation système", mais il n'y a pas de piste pour le "bout de code" qui permettrait de la gérer. Je ne suis pas très fort pour trouver ce genre de doc chez notre ami commun (Google), mais si ils ont ajouté ce point dans l'interface du panneau de configuration, il doit bien y avoir quelque part un appel d'API qui y répond. Où ?

    A+

    AMIcalement.

  13. #13
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Hello Yves,

    J'ai trouvé ça pour toi : https://docs.microsoft.com/fr-fr/win...y-declarations
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  14. #14
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 512
    Points : 131
    Points
    131
    Par défaut
    Aïe aïe aïe ! C'est quoi encore ce truc ? Est-ce que ça concerne Visual Basic ? Il me semble que µ$ a dit qu'il maintiendrait le fonctionnement de VB, non ?

    Est-ce que je suis vraiment censé créer un "manifeste de package" pour mon appli ? Et où est la doc pour savoir comment faire ? Et pourquoi je suis emm... sur un seul poste ? Je préférerais mourir dans un fossé plutôt que de publier mon appli sur le Windows Store !

    Mais j'oublie de te remercier pour cette découverte : je n'arrive même pas à imaginer comment j'aurais pu trouver ce lien...

    AMIcalement.

  15. #15
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Hello Yves,

    J'aime bien l'expression "mourir dans un fossé"

    J'espère que tu va trouver ton bonheur autrement. Les fossés ne sont pas toujours très confortables...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  16. #16
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 512
    Points : 131
    Points
    131
    Par défaut
    C'est pas ce que Boris Johnson avait dit s'il ne pouvait pas sortir de l'EU avant le 31 octobre ?

  17. #17
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Peut-être, mais c'est un bon mot de sa part dance cas. Ce qui n'est pas souvent le cas.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  18. #18
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 512
    Points : 131
    Points
    131
    Par défaut
    Eh bien j'ai trouvé la réponse, en cherchant tout à fait autre chose : il faut aller dans "Paramètres du PC/Confidentialité/Microphone", et autoriser les applications à accéder au microphone.

    Heureusement que ce n'était pas un problème de manifeste de package, par ce que je ne savais vraiment pas par quel bout le prendre..

    Merci à tous, problème résolu.

    AMIcalement.

  19. #19
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Super !
    Je suis content pour toi !
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

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

Discussions similaires

  1. [.Net]utiliser la DLL Winmm
    Par NiamorH dans le forum Général Dotnet
    Réponses: 11
    Dernier message: 11/05/2010, 10h56
  2. Fonction d'une DLL qui retourne plusieur valeur
    Par vtk37 dans le forum Débuter
    Réponses: 9
    Dernier message: 27/05/2009, 10h01
  3. Codeguard dans une DLL utilisé par du code managé
    Par Volfoni dans le forum C++Builder
    Réponses: 0
    Dernier message: 06/11/2008, 17h06
  4. Procédure stockée retournant un code d'erreur
    Par Hartdrooz dans le forum Développement
    Réponses: 2
    Dernier message: 03/10/2008, 07h39
  5. créer DLL pour c# à partir code en VC++ (fichiers .h)
    Par punto dans le forum Windows Forms
    Réponses: 1
    Dernier message: 21/03/2008, 15h12

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