欢迎光临
我们一直在努力

基于C#的接口基础教程之六(4)-.NET教程,C#语言

建站超值云服务器,限时71元/月

下面是一个使用c# 映射媒体播放机com 对象的程序。
  
    程序清单2 demoncom.cs
  
  using system;
  using system.runtime.interopservices;
  namespace quartztypelib
  {
  //声明一个com接口 imediacontrol,此接口来源于媒体播放机com类
  [guid(“56a868b1-0ad4-11ce-b03a-0020af0ba770”),
  interfacetype(cominterfacetype.interfaceisdual)]
  interface imediacontrol
  { //列出接口成员
  void run();
  void pause();
  void stop();
  void getstate( [in] int mstimeout, [out] out int pfs);
  void renderfile(
  [in, marshalas(unmanagedtype.bstr)] string strfilename);
  void addsourcefilter(
  [in, marshalas(unmanagedtype.bstr)] string strfilename,
  [out, marshalas(unmanagedtype.interface)]
  out object ppunk);
  [return: marshalas(unmanagedtype.interface)]
  object filtercollection();
  [return: marshalas(unmanagedtype.interface)]
  object regfiltercollection();
  void stopwhenready();
  }
  //声明一个com类:
  [comimport, guid(“e436ebb3-524f-11ce-9f53-0020af0ba770”)]
  class filgraphmanager //此类不能再继承其它基类或接口
  {
  //这里不能有任何代码 ,系统自动增加一个缺省的构造函数
  }
  }
  class mainclass
  {
  public static void main(string[] args)
  {
  //命令行参数:
  if (args.length != 1)
  {
  displayusage();
  return;
  }
  string filename = args[0];
  if (filename.equals(“/?”))
  {
  displayusage();
  return;
  }
  // 声明filgraphmanager的实类对象:
  quartztypelib.filgraphmanager graphmanager =new quartztypelib.filgraphmanager();
  //声明imediacontrol的实类对象::
  quartztypelib.imediacontrol mc =(quartztypelib.imediacontrol)graphmanager;
  // 调用com的方法:
  mc.renderfile(filename);
  //运行文件.
  mc.run();
  //暂借停.
  console.writeline(“press enter to continue.”);
  console.readline();
  }
  private static void displayusage()
  { // 显示
  console.writeline(“媒体播放机: 播放 avi 文件.”);
  console.writeline(“使用方法: videoplayer.exe 文件名”);
  }
  }
  
    运行示例:
  
    若要显示影片示例 clock.avi,请使用以下命令:
  
  interop2 %windir%\clock.avi
  
    这将在屏幕上显示影片,直到按 enter 键停止。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 基于C#的接口基础教程之六(4)-.NET教程,C#语言
分享到: 更多 (0)