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

C# Discussion :

Utiliser une API Win32: ComDBGetCurrentPortUsage


Sujet :

C#

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 346
    Par défaut Utiliser une API Win32: ComDBGetCurrentPortUsage
    Bonjour,

    j'essaie d'utiliser la fonction ComDBGetCurrentPortUsage de msports.dll documentée ici :
    http://msdn.microsoft.com/en-us/library/ms800834.aspx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    LONG WINAPI
      ComDBGetCurrentPortUsage(
        IN HCOMDB  HComDB,
        IN OUT PBYTE  Buffer,
        IN DWORD  BufferSize,
        IN ULONG  ReportType,
        OUT LPDWORD  MaxPortsReported
        );
    J'ai essayé plusieurs déclarations, sans succès. J'ai toujours une erreur de signature. Voici la dernière utilisée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [DllImport("msports.dll")]
            public static extern long ComDBGetCurrentPortUsage(
                IntPtr HComDB,
                [MarshalAs(UnmanagedType.LPArray)]
                ref byte[] buffer, 
                Int32 bufferSize,
                Int32 reportType,
                out Int32 maxPortsReported);
    Quel prototype dois-je déclarer pour utiliser cette méthode ?

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [DllImport("msports.dll")]
            public static extern long ComDBGetCurrentPortUsage(
                [In] IntPtr HComDB,
                [In, Out] byte[] buffer, 
                [In] Int32 bufferSize,
                [In] Int32 reportType,
                [Out] out Int32 maxPortsReported);
    ?
    (C'est approximatif ... InAttribute ou OutAttribute sont définis dans System.Runtime.InteropServices).

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 346
    Par défaut
    Génial :-)

    Merci beaucoup, ça marche.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/08/2009, 15h28
  2. Réponses: 6
    Dernier message: 23/04/2007, 11h41
  3. comment utiliser une DLL win32 en C??
    Par Jayceblaster dans le forum C
    Réponses: 8
    Dernier message: 31/03/2006, 12h49
  4. Comment faire une API Win32 avec C++ Builder
    Par Zerocool003 dans le forum C++Builder
    Réponses: 2
    Dernier message: 31/01/2006, 16h13
  5. Réponses: 36
    Dernier message: 13/05/2004, 18h22

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