- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 COM Wrapper 与 Windows Media Player 交互。
它使用 AxHost 以某种方式包装播放器,对我来说这一切都只是引擎盖下的魔法^^
AxHost.AttachInterfaces 看起来像这样
protected override void AttachInterfaces()
{
try
{
//Get the IOleObject for Windows Media Player.
IOleObject oleObject = this.GetOcx() as IOleObject;
//Set the Client Site for the WMP control.
oleObject.SetClientSite(this as IOleClientSite);
Player = this.GetOcx() as WMPLib.WindowsMediaPlayer;
...
只要我在 Windows 窗体控件中托管此 AxHost,一切正常。但我无法在构造函数中连接事件。
这个例子是行不通的:
public WMPMediaRating()
{
var remote = new WMPRemote.RemotedWindowsMediaPlayer();
_WMP = remote.Player;
_WMP.MediaChange += new _WMPOCXEvents_MediaChangeEventHandler(_WMP_MediaChange);
}
remote.Player 始终为 null,程序因 NullReferencesException 而崩溃。
AttachInterfaces() 中的代码以某种方式仅在绘制表单或完成其他所有操作后执行。
我尝试手动调用 AttachInterfaces(),但这也不起作用,因为 GetOcx() 不返回任何内容。
那么如何在没有 Windows 窗体的情况下实例化我的 AxHost 继承控件,以便在控制台应用程序中使用它?
最佳答案
仅供引用:没有人会阻止您在控制台应用程序中使用隐藏窗口。
您将无法在非 Windows 应用程序中托管媒体播放器 - 它需要托管。如果您想播放一些音乐,您可以使用媒体图创建一个图来呈现(播放)您的音乐文件 - 它不需要任何额外的托管。
关于c# - 如何仅在代码中创建 AxHost [C#],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/106081/
我正在尝试将 Windows Media Player 对象添加到我的 Windows 窗体,但弹出错误消息: Failed to create compopnent 'AxHost'. The er
我正在使用 COM Wrapper 与 Windows Media Player 交互。 它使用 AxHost 以某种方式包装播放器,对我来说这一切都只是引擎盖下的魔法^^ AxHost.Attach
我正在尝试在 C# 的控制台 应用程序中使用AxShockwaveFlashObjects.AxShockwaveFlash 对象。为此,您必须将 obj.OcxState 设置为某些内容。我查看了
我正在开发可以优化我的工作的应用程序,通过 RDP 与我的服务器建立多个连接。那时我想做一个单一的窗口窗体来显示我所有的服务器。凭借我的适当知识 - 我想以编程方式在我的 Windows 窗体中添加
我正在尝试使用 WinFormsHost-Control 将 Unity3D-ActiveX 控件嵌入到 WPF-Form 中。 实际上在VS的属性窗口中设置路径时效果很好,但是在我的代码文件中设置时
我正在开发一个应该读取 realplayer 文件持续时间然后将其设置为 timer.Interval 的程序,但是当我调试程序时没有错误,但是当尝试获取文件长度时,我得到这个错误:System.Wi
我一直在为这个异常而苦苦挣扎 An unhandled exception of type 'System.Windows.Forms.AxHost.InvalidActiveXStateExcept
我在我的简单项目中遇到错误。 这是我的代码: if (axZKFPEngX1.InitEngine() == 0) { label1.Text = "Connected"; } else {
我正在尝试使用 AxHost.GetPictureFromIPicture() 从 MS Access 2013 数据库文件 (*.accdb) 获取 GIF 图像(保存为附件类型)- 将其转换为图像
我是一名优秀的程序员,十分优秀!