Exemple d'utilisation d'un ocx sans declaration prealable dans le projet

Contenu du snippet

Dans cette exemple , j'ai creer un object WebRadio ou est chargé l'OCX "WMPlayer.OCX" dynamiquement

l'OCX n'est pas incorporré dans le projet.

j'ai ajouté les Methodes play , pause , stop
ainsi qu'in exemple montrant comment change la propriété de sttin.autostart

Source / Exemple :


public class WebRadio
    {
        /*

  • Type de l'OCX
  • /
private Type typeOcx; /*
  • pointeur d'instance
  • /
private object instance; /*
  • pointer sur l'object 'settings' de WMPlayer.OCX
  • utilisé pour AutoStart
  • /
private object setting; /*
  • Type de l'object setting
  • /
private Type typeSetting; /*
  • pointeur sur l'object 'Controls' de WMPlayer.OCX
  • /
private object controls; /*
  • Type de l'object controls
  • /
private Type typeControls; /*
  • constructeur
  • /
public WebRadio(Boolean auto) { /*
  • recuperatition du type de l'OCX par son nom
  • /
typeOcx = Type.GetTypeFromProgID("WMPlayer.OCX"); /*
  • creation de l'instance
  • /
instance = Activator.CreateInstance(typeOcx); /*
  • creation de l'object 'setting' par invocation du membre
  • de l'instance
  • /
setting = typeOcx.InvokeMember("settings", BindingFlags.Public | BindingFlags.GetProperty, null, instance, null); typeSetting = setting.GetType(); /*
  • creation de l'object 'controls' par invocation du membre
  • de l'instance
  • /
controls = typeOcx.InvokeMember("Controls", BindingFlags.Public | BindingFlags.GetProperty, null, instance, null); typeControls = controls.GetType(); /*
  • appliquation de l'autostart
  • /
AutoStart = auto; } public Boolean AutoStart { set { object[] args = new Object[1]; args[0] = value; typeSetting.InvokeMember("autoStart", BindingFlags.Public | BindingFlags.SetProperty, null, setting, args); } } public String Url { set { object[] args = new Object[1]; args[0] = value; typeOcx.InvokeMember("URL", BindingFlags.Public | BindingFlags.SetProperty, null, instance, args); } } /*
  • Lecture
  • /
public void Play() { typeControls.InvokeMember("Play", BindingFlags.Public | BindingFlags.InvokeMethod, null, controls, null); } /*
  • Stop
  • /
public void Stop() { typeControls.InvokeMember("Stop", BindingFlags.Public | BindingFlags.InvokeMethod, null, controls, null); } /*
  • Pause
  • /
public void Pause() { typeControls.InvokeMember("Pause", BindingFlags.Public | BindingFlags.InvokeMethod, null, controls, null); } }

Conclusion :


WebRadio radio = new WebRadio(false);
radio.Url = "http://xplosive-radio.urban-radio.fr/form/xplosive-radio.asx";
radio.Play();
radio.Stop();

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.