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

Silverlight Discussion :

Appeler une WinApi (winmm.dll) Silverlight OOB


Sujet :

Silverlight

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 61
    Points : 53
    Points
    53
    Par défaut Appeler une WinApi (winmm.dll) Silverlight OOB
    Bonjour

    J'essaye de comprendre si c'est possible d'appeler une dll windows dans une application Silverlight OOB, par exemple winmm.dll.

    Dans le chapitre security level : http://msdn.microsoft.com/en-us/libr...28(VS.95).aspx il semblerait que ce soit possible.

    je cite :

    SafeCritical code helps to ensure that it is safe for Transparent code to perform critical operations. SafeCritical APIs typically do various checks before passing control to a Critical API, including validating incoming parameters and ensuring that the application state is acceptable for the call to continue. Once a SafeCritical call is allowed to proceed, it invokes a Critical method on the caller's behalf or performs the operation directly.
    Par contre je n'arrive pas à réaliser un appel.

    Quelqu'un ... par miracle ... saurait-il comment faire ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Tu pourrais nous montrer ce que tu as comme code ?

    Tu as une erreur particulière ?

    Ton application est bien un application Out Of Browser en mode Trusted ?

    http://broux.developpez.com/articles...erlight-4/#L10
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 61
    Points : 53
    Points
    53
    Par défaut
    Oui j'ai bien paramétré : Out Of Browser en mode Trusted

    En final je voudrais pouvoir faire ça

    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Call WinMM.midiOutShortMsg(hMidiOut, (100 * &H10000) + (100 * &H100) + (1 - 1 + 144))

    C'est juste un essai pas vraiment une application.

    Voilà le squelette du projet : http://www.furukoo.fr/cms/mimp/MimpWeb.zip

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Ben là il faut voir quels sont les appels COM possible à partir de ta dll.

    Dans tous les cas il te faudra utiliser la ComAutomationFactory
    http://msdn.microsoft.com/en-us/libr...8VS.96%29.aspx
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 61
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par Skyounet Voir le message
    Ben là il faut voir quels sont les appels COM possible à partir de ta dll.

    Dans tous les cas il te faudra utiliser la ComAutomationFactory
    http://msdn.microsoft.com/en-us/libr...8VS.96%29.aspx
    Tu pourrais m'expliquer ?
    COM c'est plutot pour appeler un programme comme Word ou Excel ?

  6. #6
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Et bien il faudrait faire un truc du genre

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dynamic winmm = ComAutomationFactory.CreateObject("xxx");
    winmm.midiOutShortMsg(...);

    Mais alors je sais pas du tout ce qu'il faut mettre à le place de "xxx".
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  7. #7
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Bon après quelques recherches il s'avère que winmm.dll n'est pas un composant COM... Tu ne peux donc pas l'utiliser avec Silverlight, même en mode OOB.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 61
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par Skyounet Voir le message
    Bon après quelques recherches il s'avère que winmm.dll n'est pas un composant COM... Tu ne peux donc pas l'utiliser avec Silverlight, même en mode OOB.
    Pourtant dans le chapitre security level : http://msdn.microsoft.com/en-us/libr...28(VS.95).aspx il semblerait que ce soit possible de faire un appel a P/Invoke ?

  9. #9
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Non on ne peut pas faire de P/Invoke avec Silverlight même en OOB.

    Je pense que le seul code Critical est écrit par l'équipe de dev.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 61
    Points : 53
    Points
    53
    Par défaut
    Est ce que quelqu'un sait comment Silverlight accède au microphone ? c'est la même API normalement.

  11. #11
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    C'est built-in dans Silverlight 4.

    http://broux.developpez.com/articles...verlight-4/#L6
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 61
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par Skyounet Voir le message
    Il y a forcément un accès bas-niveau !

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 159
    Points : 259
    Points
    259
    Par défaut
    Hello,

    Il n'y pas d'appels natifs possible en Silverlight 4 même en mode elevated out of browser.

    Lorsque l'on est en mode out of browser en mode de privilèges élevés, on sort alors légèrement de la sandbox pour pouvoir faire appel à des composants COM enregistrés sur la machine ou accéder directement au système de fichiers sans autorisation systématique de l'utilisateur (uniquement les specials folder par contre : my documents, my music, etc.).

    Si tu as besoin de faire du P/Invoke sur des APIs Win32, Silverlight n'est pas la technologie qu'il te faut. Bascules alors sur WPF.

    Quant à l'accès micro/webcam/impression de Silverlight, il se fait à travers son framework en managé et le tout protégé (== controlé par l'utilisateur). C'est le Framework Siverlight qui fait appels aux bonnes APIs en dessous mais en aucun cas, un développeur Silverlight n'y aura accès.

    Bye,

    David Rousset
    Microsoft France

Discussions similaires

  1. Appeler une méthode de DLL
    Par nox75 dans le forum Windows
    Réponses: 9
    Dernier message: 08/12/2008, 11h34
  2. Appeler une unité depuis une DLL
    Par xavier ringoise dans le forum Langage
    Réponses: 2
    Dernier message: 03/02/2006, 21h31
  3. Réponses: 2
    Dernier message: 31/08/2005, 16h12
  4. [DLL] problème pour appeler une fonction d'une DLL
    Par bigboomshakala dans le forum MFC
    Réponses: 34
    Dernier message: 19/07/2004, 11h30
  5. Appeler une API sans liaison avec une DLL
    Par mat.M dans le forum x86 32-bits / 64-bits
    Réponses: 10
    Dernier message: 13/07/2004, 02h22

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