C#调用外部程序提供的接口
xxhan 2014-08-05 09:02:48 以下是一个第三方播放器提供的程序接口,需要在C#的主程序中调用实现对播放器的操作,请问怎样实现?
winfrom程序非WEB程序
using System;
using System.Runtime.InteropServices;
namespace StereoPlayer {
[ComVisible(true)]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
[Guid("54150FC5-F6D5-419A-BC0D-E2BE08558934")]
[TypeLibType(TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FDual | TypeLibTypeFlags.FOleAutomation)]
public interface IAutomation {
/// <summary>
/// Returns the number of items in the playlist.
/// </summary>
[DispId(0xc9)]
void GetPlaylistItemCount(out int count);
/// <summary>
/// Returns the index of the currently loaded playlist item.
/// </summary>
[DispId(0xca)]
void GetPlaylistItem(out int index);
/// <summary>
/// Loads the specified playlist item.
/// </summary>
[DispId(0xcb)]
void SetPlaylistItem([In] int index);
/// <summary>
/// Loads the next playlist item.
/// </summary>
[DispId(0xcc)]
void NextPlaylistItem();
/// <summary>
/// Loads the previous playlist item.
/// </summary>
[DispId(0xcd)]
void PreviousPlaylistItem();
/// <summary>
/// Opens a stereoscopic video file.
/// </summary>
[DispId(0xce)]
void OpenFile([In, MarshalAs(UnmanagedType.BStr)] string filename);
/// <summary>
/// Opens separate left and right video files as well as an optional audio file.
/// </summary>
[DispId(0xcf)]
void OpenLeftRightFiles([In, MarshalAs(UnmanagedType.BStr)] string leftFilename, [In, MarshalAs(UnmanagedType.BStr)] string rightFilename, [In, MarshalAs(UnmanagedType.BStr)] string audioFilename, [In] AudioMode audioMode);
/// <summary>
/// Opens a DVD, specified by the path (without VIDEO_TS folder).
/// </summary>
[DispId(0xd0)]
void OpenDVD([In, MarshalAs(UnmanagedType.BStr)] string path);
/// <summary>
/// Opens a URL.
/// </summary>
[DispId(0xd1)]
void OpenURL([In, MarshalAs(UnmanagedType.BStr)] string url);
/// <summary>
/// Opens a capture device. Either specifiy the friendly name (might not be unique) or the device identified.
/// </summary>
[DispId(210)]
void OpenDevice([In, MarshalAs(UnmanagedType.BStr)] string device);
/// <summary>
/// Returns the player's state (playing, stopped, ...).
/// </summary>
[DispId(0xd3)]
void GetPlaybackState(out PlaybackState state);
/// <summary>
/// Executes a playback command (play, stop, ...).
/// </summary>
[DispId(0xd4)]
void SetPlaybackState([In] PlaybackState state);
...................
}
太长而且都一样补贴全了