当前位置:首页 > 网络编程 > WEB编程 > ASP.net > 基于C#的接口基础教程之六(4)

基于C#的接口基础教程之六(4)

点击次数:24 次 发布日期:2008-11-27 00:02:07 作者:源代码网
源代码网推荐      下面是一个使用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)
会员中心
网络编程
本站推荐
网络编程之精华