最近闲来无事,做了一个关于windows media player的程序,期间发现不少问题,苦思冥想,终得一解,不敢独享,与君参考。
AxWindowsMediaPlayer是windows media player的.com控件,toolbox item 中可以找到,不再赘述。
使用时发现一旦使用 就会报错
An unhandled exception of type 'System.Windows.Forms.AxHost.InvalidActiveXStateException' occurred in AxInterop.WMPLib.dll
自然google一下,倒也有不少相同的问题,然解决的却没几个。
某E文帖中描述,这种错误发生在控件未初始化完成时就被调用。
前思后想,不得要领。
又有一篇,也点到这个问题,但仍未及解决。
最后,感觉仍然要回到程序中去寻找
这里不得不说一下VS的强大
一个下拉式列表将所有的类,方法,属性全部包括
即使不知道要用什么,一项一项看下来,也终会找到,真是让人又爱又恨。
最后发现AxWindowsMediaPlayer有个EndInit()的方法,看着名字像完成初始化,想及前面的E文帖,猜想会不会是这个。
果然不出所料,加入AxWindowsMediaPlayer.EndInit()之后,之后的程序就能调用AxWindowsMediaPlayer了。