基于C#的接口基础教程之六(4)
点击次数:24 次 发布日期:2008-11-27 00:02:07 作者:源代码网
|
源代码网推荐 源代码网推荐 程序清单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 键停止。 源代码网推荐 源代码网供稿. |
