• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Tauruser

            Enjoy Every Day
            posts - 34, comments - 95, trackbacks - 0, articles - 5
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

              小組已經(jīng)決定開發(fā)對(duì)于內(nèi)部網(wǎng)適用的網(wǎng)絡(luò)電視,這兩天一直就在查找使用Windows Media Player ActiveX控件開發(fā)播放功能的方法。在網(wǎng)上找了好些書,也到MSDN上找過了,并安裝了Windows Media Player SDK工具包。無奈都找不到有講解在VC++2005下的文章,VC++2003也好啊。是否這兩個(gè)平臺(tái)都還沒出說明文檔,只是找到了VC6.0下的幫助。SDK Sample里還是有源代碼和SDK幫助文檔里也談了一些。可惜全是E文來的(痛苦)。
              一開始對(duì)著SDK幫助文檔,在2005下操作。雖然我知道文檔寫的是6.0下的情況,但是我想應(yīng)該不會(huì)相差太大的。依葫蘆畫瓢的東西就不說了。將WMP控件添加到窗體,給它添加成控件變量。然后想在菜單中添加一個(gè)項(xiàng)目,點(diǎn)擊的時(shí)候就可以播放特點(diǎn)的URL。就在這一步,問題來了。調(diào)用控件變量時(shí),發(fā)現(xiàn)并沒有多少成員函數(shù)可以給我調(diào)用,文檔里顯示有的函數(shù),2005的智能感應(yīng)也沒法顯示出來。到底是哪里的問題。
              無奈,使用VC6.0照著多做一次,終于發(fā)現(xiàn)區(qū)別了。6.0里添加變量之后,VC自動(dòng)生成了很多類。看一下這些頭文件就知道了。

            #include? " wmpplayer4.h "

            // ?Dispatch?interfaces?referenced?by?this?interface
            #include? " wmpcontrols.h "
            #include?
            " WMPSettings.h "
            #include?
            " wmpmedia.h "
            #include?
            " wmpmediacollection.h "
            #include?
            " wmpplaylistcollection.h "
            #include?
            " wmpnetwork.h "
            #include?
            " wmpplaylist.h "
            #include?
            " wmpcdromcollection.h "
            #include?
            " wmpclosedcaption.h "
            #include?
            " WMPError.h "
            #include?
            " wmpdvd.h "
            #include?
            " WMPPlayerApplication.h "

              每個(gè)頭文件都對(duì)應(yīng)了一個(gè)類。而在2005下,僅是簡(jiǎn)簡(jiǎn)單單了生成了一個(gè)類似于CWMPPlayer4的類。而且類中的內(nèi)容也縮水了。6.0下生成的CWMPPlayer4已經(jīng)可以提供很多功能了如:

            public :
            ????
            void ?close();
            ????CString?GetUrl();
            ????
            void ?SetUrl(LPCTSTR?lpszNewValue);
            ????
            long ?GetOpenState();
            ????
            long ?GetPlayState();
            ????CWMPControls?GetControls();
            ????CWMPSettings?GetSettings();
            ????CWMPMedia?GetCurrentMedia();
            ????
            void ?SetCurrentMedia(LPDISPATCH?newValue);
            ????CWMPMediaCollection?GetMediaCollection();
            ????CWMPPlaylistCollection?GetPlaylistCollection();
            ????CString?GetVersionInfo();
            ????
            void ?launchURL(LPCTSTR?bstrURL);
            ????CWMPNetwork?GetNetwork();
            ????CWMPPlaylist?GetCurrentPlaylist();
            ????
            void ?SetCurrentPlaylist(LPDISPATCH?newValue);
            ????CWMPCdromCollection?GetCdromCollection();
            ????CWMPClosedCaption?GetClosedCaption();
            ????BOOL?GetIsOnline();
            ????CWMPError?GetError();
            ????CString?GetStatus();
            ????CWMPDVD?GetDvd();
            ????CWMPPlaylist?newPlaylist(LPCTSTR?bstrName,?LPCTSTR?bstrURL);
            ????CWMPMedia?newMedia(LPCTSTR?bstrURL);
            ????BOOL?GetEnabled();
            ????
            void ?SetEnabled(BOOL?bNewValue);
            ????BOOL?GetFullScreen();
            ????
            void ?SetFullScreen(BOOL?bNewValue);
            ????BOOL?GetEnableContextMenu();
            ????
            void ?SetEnableContextMenu(BOOL?bNewValue);
            ????
            void ?SetUiMode(LPCTSTR?lpszNewValue);
            ????CString?GetUiMode();
            ????BOOL?GetStretchToFit();
            ????
            void ?SetStretchToFit(BOOL?bNewValue);
            ????BOOL?GetWindowlessVideo();
            ????
            void ?SetWindowlessVideo(BOOL?bNewValue);
            ????BOOL?GetIsRemote();
            ????CWMPPlayerApplication?GetPlayerApplication();
            ????
            void ?openPlayer(LPCTSTR?bstrURL);

              相反在2005下的生成的類一點(diǎn)成相應(yīng)的成員函數(shù)都沒有提供。(郁悶)
              照著6.0下的源碼給2005添加相應(yīng)的成員函數(shù),bingo正常工作了。
              難道我以后的工程都要在6.0下先生成代碼,然后再COPY到2005下。(天啊,折磨人啊)
              到底是2005比6.0退步了,還是我不會(huì)用2005?怎么回事?


            ?

            Feedback

            # re: VC++2005 比 VC++ 6.0 退步了?  回復(fù)  更多評(píng)論   

            2006-03-25 15:52 by Donne
            用MapObjects進(jìn)行VC二次開發(fā)也有這個(gè)問題!

            # re: VC++2005 比 VC++ 6.0 退步了?  回復(fù)  更多評(píng)論   

            2006-03-29 10:39 by reviver
            我覺得VS.net的編譯速度也要比VC6慢得多

            # re: VC++2005 比 VC++ 6.0 退步了?  回復(fù)  更多評(píng)論   

            2006-03-30 21:54 by jemmy
            2005相對(duì)VC6,更符合C++標(biāo)準(zhǔn),不要被VC6慣壞了

            # re: VC++2005 比 VC++ 6.0 退步了?  回復(fù)  更多評(píng)論   

            2006-03-31 10:24 by sPhinX
            有點(diǎn)懷疑,做網(wǎng)絡(luò)電視,用Windows Media Player ActiveX控件就可以了?不知道控件能不能完全滿足你的需要,我還是覺得這些東西還是用DirectShow自己來實(shí)現(xiàn)放心一些。

            # re: VC++2005 比 VC++ 6.0 退步了?  回復(fù)  更多評(píng)論   

            2006-04-05 14:46 by 夢(mèng)天堂
            我學(xué)校用的是VC++6.0
            感覺還不錯(cuò)

            # re: VC++2005 比 VC++ 6.0 退步了?  回復(fù)  更多評(píng)論   

            2006-06-19 09:32 by lqicc
            CWMPPlaylist newPlaylist(LPCTSTR bstrName, LPCTSTR bstrURL);
            請(qǐng)問這個(gè)怎么用啊。
            我在VC下,怎么總會(huì)出現(xiàn)錯(cuò)誤。
            我想實(shí)現(xiàn)的是,在一個(gè)關(guān)于音樂文件的列表中的數(shù)據(jù),放到Windows Media Player的播放列表中。
            謝謝!

            # re: VC++2005 比 VC++ 6.0 退步了?  回復(fù)  更多評(píng)論   

            2007-06-10 00:32 by ljzpzh
            在網(wǎng)上下了個(gè)VC++6.0,編譯過程經(jīng)常操作無反映,郁悶.哪位好心人有正版的捐出來大家分享一下.先謝過了.

            # re: VC++2005 比 VC++ 6.0 退步了?  回復(fù)  更多評(píng)論   

            2007-06-10 12:01 by 星夢(mèng)情緣
            正在學(xué)習(xí)VC++6.0中..................

            # re: VC++2005 比 VC++ 6.0 退步了?  回復(fù)  更多評(píng)論   

            2007-07-13 00:14 by yuanrichard
            你自己不會(huì)用別怪開發(fā)環(huán)境,vc05對(duì)c++標(biāo)準(zhǔn)的支持更好了,改進(jìn)的東西多了很多,那個(gè)添加activex不是象你那樣做的,從vs03開始就可以通過右擊項(xiàng)目,選擇添加類菜單添加這種Activex的類支持了,在添加類里面有個(gè)從Activex控件添加mfc類,選擇這個(gè)就可以添加Windows Media Player ActiveX的類了,然后再添加變量生成的對(duì)應(yīng)的類的接口就都完善了。做網(wǎng)絡(luò)電視播放用這個(gè)控件不好用,很多格式支持不行的,不如自己開發(fā)一個(gè)。

            # re: VC++2005 比 VC++ 6.0 退步了?  回復(fù)  更多評(píng)論   

            2008-07-15 13:39 by vs2005
            yuanrichard ,vs2005是可以添加類到工程,但是生成的是變量名是 COcx1 m_player;

            vs6里生成的變量很直觀, CWMPPlayer4 m_player;
            可以直接使用CWMPPlayer4里的方法,但是vs2005里使用起來極不方便,有哪些方法也沒提示!

            # re: VC++2005 比 VC++ 6.0 退步了?  回復(fù)  更多評(píng)論   

            2008-08-13 14:13 by wwd
            在OninitialDialog里添加一個(gè):CWMPPlayer4 m_player->CreateDispatch(COcx1對(duì)象m_player.GetClsid()),就行了

            # re: VC++2005 比 VC++ 6.0 退步了?  回復(fù)  更多評(píng)論   

            2009-05-28 12:24 by geyin
            一般邏輯
            越來越好

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久久久久亚洲精品不卡| 一本色道久久88—综合亚洲精品 | 久久93精品国产91久久综合 | 亚洲精品美女久久777777| 亚洲精品无码久久久| 亚洲国产精品综合久久一线| 精品久久久久中文字| 久久亚洲中文字幕精品一区| 久久综合精品国产一区二区三区| 国产三级精品久久| 亚洲午夜久久久| 久久精品一本到99热免费| 亚洲精品乱码久久久久久蜜桃不卡 | 91性高湖久久久久| 久久成人国产精品一区二区| 国产91久久综合| 亚洲国产精品成人久久蜜臀| 久久精品国产亚洲AV影院| 亚洲国产精品无码久久一线| 99久久无色码中文字幕| 99久久国产免费福利| 伊人久久大香线蕉无码麻豆| 中文字幕久久波多野结衣av| 国产精品久久午夜夜伦鲁鲁| 国内精品伊人久久久久网站| 久久精品国产久精国产果冻传媒| 久久夜色精品国产噜噜麻豆| 久久综合综合久久狠狠狠97色88| 久久乐国产精品亚洲综合| 欧美亚洲色综久久精品国产| 国产精品成人久久久久三级午夜电影| 午夜福利91久久福利| 久久亚洲中文字幕精品有坂深雪 | 国产69精品久久久久99尤物| 18禁黄久久久AAA片| 久久99国产乱子伦精品免费| 狠狠色伊人久久精品综合网 | 久久国产精品成人影院| 青青热久久国产久精品| 久久久久AV综合网成人 | 欧美国产精品久久高清|