2016-07-04 7 views
-1

Merci à Josef qui m'a mis sur la bonne voie pour le codage de l'assistance téléphonique Windows Mobile 6.5.Comment puis-je programmer le haut-parleur sur une pocketpc exécutant Windows Mobile 6.5?

J'ai trouvé quelques astuces que je voudrais partager. Oui, je sais que c'est une vieille technologie, mais il y a beaucoup de périphériques qui sont vendus et qui fonctionnent encore sur mobile. Donc: Comment puis-je programmer le haut-parleur sur une pocketpc exécutant Windows Mobile 6.5 dans .NET Compact Framework 3.5 dans VB.NET?

Répondre

0

Ceci est très simple une fois que vous savez comment. Vous appelez le fichier DLL ossvcs, mais ce fichier DLL exporte des fonctions par des numéros ordinaux, pas par des noms.

Voir http://msdn.developer-works.com/article/12376405/Reject+Call pour plus de détails. Le code suit:

<DllImport("ossvcs.dll", EntryPoint:="#218")> _ 
Private Shared Sub setSpeaker(ByVal sValue As Integer) 
End Sub 

' Call setSpeaker(1) to turn on and setSpeaker(0) to turn off. 
' If you set the speaker on when you create the line than it will always turn the speaker on for every call made 
+0

Veuillez utiliser ces fonctions non documentées avec précaution. Ils peuvent influencer d'autres appels d'API. Si possible, appelez ossvcs.dll immédiatement après l'appel. J'ai vu un problème avec DirectShow car ossvcs.dll a été chargé et SetSpeakerMode a été utilisé. – josef

+0

Merci. Comment libérer une DLL chargée? –

+0

Cela peut uniquement être fait en utilisant LoadLibary, GetProcAddress et FreeLib. Voir les invocations pour cela ou mon SetSpeakerMode2 qui utilise une DLL C++ qui enveloppe cela et peut être utilisé par .NET: https://github.com/hjgode/SetSpeakerMode – josef