青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

萬星星@豌豆莢 歡迎加入我們
一個吃軟飯的男人!!!!!我只想寫程序####
微博:http://weibo.com/wanlianwen
posts - 172,  comments - 1253,  trackbacks - 0

很近沒有更新了,閑話少說,直奔主題。

 

微軟做任何技術(shù)的思路:在實現(xiàn)一個標(biāo)準(zhǔn)的時候,往往預(yù)留出一個通用的擴展機制。呃,貌似很多大公司都是如此,通過擴展把開發(fā)者跟自己捆綁。舉例:微軟的ie可以嵌入ActiveX控件、可以用BHO擴展;richedit中支持OLE擴展。這種擴展機制主要是基于其OLE框架,這也是微軟操作系統(tǒng)框架的基石。開發(fā)層面目前的趨勢是,淡化OLE強調(diào).NET,有一種無奈叫騎虎難下,有一種錯誤叫脫離群眾,在開發(fā)平臺、技術(shù)百花齊放,開發(fā)資源極大豐富的今天,開發(fā)者對微軟的依賴已經(jīng)不那么強烈,以至于現(xiàn)在的Windows開發(fā)者有點小苦逼,尤其是C++開發(fā)者有一種被拋棄的感覺,扯遠了。

 

談?wù)?/span>OLE/COM/ACTIVEX的關(guān)系。很模糊,有一些說不清,有歷史原因,也有普及程度關(guān)系。侯捷說玩模板有三境界:會用標(biāo)準(zhǔn)庫,讀懂標(biāo)準(zhǔn)庫源碼,會用模板做設(shè)計。我覺得COM相關(guān)的也是如此,使用COM組件往往是容易。我的理解:OLE是技術(shù)規(guī)范,COM是語言規(guī)范,而ACTIVEX則是用這2東東來實做的可服用組件的稱謂。對于OLE的支撐主要在MFC庫中,而ATL庫則是更純粹的OLE/COM框架。MFCOFFICE有一衣帶水的關(guān)系,OFFICE的應(yīng)用框架促使著MFC的發(fā)展(早期如此,但UI方面早已分道揚鑣),OFFICE的應(yīng)用模型也就是MFC的應(yīng)用開發(fā)模型。

 

之所以提及MFCOFFICE,只是想說通用的擴展機制沒有那么多條條框框,即便是ACTIVEX框架這種東西。對于OLE實踐,也就是微軟最熱衷,其中Windows操作系統(tǒng)和OFFICE系列軟件要最典型,其它則很牽強。OLE技術(shù)標(biāo)準(zhǔn)接口只有極少數(shù)是必須實現(xiàn),而大部分則是可選實現(xiàn)或者部分實現(xiàn),其中richedit更是如此。OLE對服務(wù)器和客戶端都做了行為規(guī)范,如果一方(一般是服務(wù)器)自行決定如何實施,則另一方也只需對應(yīng)實現(xiàn)。

 

呃,我說了這么多,只是為了闡述我的險惡用心,或許沒人明白。ATL框架定義了四個標(biāo)準(zhǔn)導(dǎo)出函數(shù)用于規(guī)范注冊、反注冊、加載、卸載,這些跟實際的OLE功能無關(guān),尤其是在richedit擴展中。或許你在網(wǎng)上諸多示例中看到用ATL模板創(chuàng)建一個控件然后如何簡單的插入位圖就以為掌握了核心科技,那么我就要潑冷水了,這些東西無關(guān)大局。既然Windows能用OLE搭建框架,既然MFC可以實踐OLE,那么我們也可以用純正的C++代碼玩OLE,我的意思無非就是沒必要遵循ATL,也沒必要一定去注冊一個東西,問題的核心不是這些東西,目前我們僅僅是為了插入一個動畫。

 

Richedit是一個不完全的OLE實踐,前面提到能完全實踐OLE的框架不多。因為richedit實現(xiàn)了圖文混排,所以在IM領(lǐng)域很受歡迎,尤其是早期(現(xiàn)在基于chromium的擴展或許可以改變現(xiàn)狀)。Richedit是一個容器,可以容納OLE控件進入,典型的擴展就是動畫控件。基于ATL框架開發(fā),你可以實現(xiàn)一個標(biāo)準(zhǔn)的控件,但當(dāng)你面對一個非標(biāo)準(zhǔn)的容器時,那些條條框框顯得不是那么重要,這也是為什么能做好動畫控件不容易的原因。

 

根據(jù)我的調(diào)查(呃,通過實踐,通過QueryInterface觀察),我發(fā)現(xiàn)實現(xiàn)一個richedit中的動畫控件只需要實現(xiàn)二個接口:IOleObjectIViewObject2,前者為了融入到richedit環(huán)境中,后者為了渲染顯示。由于richedit默認(rèn)只喜好無窗口模式,所以針對IOleInPlaceSiteWindowless之類的,你去實現(xiàn)意義也不大,因為人家容器不認(rèn)你,當(dāng)然還有IPersist系列接口,對于標(biāo)準(zhǔn)的環(huán)境有用(比如IDE),但這里并不是很需要,所以認(rèn)清核心問題能減少很多困惑。更顯然的是我的控件沒有用ATL框架,因為此控件脫離了richedit環(huán)境生存的意義也不大,更有甚者我沒必要讓使其成為標(biāo)準(zhǔn)(也沒可能),僅僅是為了在一個系統(tǒng)中的richedit中更好地展示。實現(xiàn)的接口越少,引入的麻煩越少,這樣才能使精力集中在主要問題上。

 

綜上所述,我的控件是一個C++類,只實現(xiàn)了兩個接口:

 

X_BEGIN_INTERFACE_MAP(IMRichPicture, ObjectRootBase)
  X_INTERFACE_PART(IMRichPicture, IID_IOleObject, OleObject)
  X_INTERFACE_PART(IMRichPicture, IID_IViewObject, ViewObject)
  X_INTERFACE_PART(IMRichPicture, IID_IViewObject2, ViewObject)
X_END_INTERFACE_MAP()

 

 

其中大部分接口都可以無視,因為我們只需要這個控件在richedit中能夠占位(長寬),能夠展示(效率關(guān)鍵),至于其他的可編程、在位激活、對象識別都不重要。我觀察了QQ的動畫控件,呃,比現(xiàn)在網(wǎng)上流行的要改變很多(網(wǎng)上內(nèi)容沒有與時俱進)。現(xiàn)在的`QQ的動畫控件很簡單(后面會講述如何找到這個控件),看起來只是作為一個占位工具,如何觸發(fā)動畫則是由host控制。觀其接口:

interface IRichFrameObj : IDispatch {
    };
interface IRichPicObj : IDispatch {
        [id(0x00000001), propput, helpstring("property src")]
        HRESULT src([in] BSTR rhs);
        [id(0x00000002), propput, helpstring("property static")]
        HRESULT na([inlong rhs);
        [id(0x00000003), propput, helpstring("property autoHeight")]
        HRESULT autoHeight([inlong rhs);
        [id(0x00000004), propput, helpstring("property autoWidth")]
        HRESULT autoWidth([inlong rhs);
        [id(0x00000005), propput, helpstring("property maxAutoWidth")]
        HRESULT maxAutoWidth([inint rhs);
        [id(0x00000006), propput, helpstring("property onerror")]
        HRESULT onerror([in] BSTR rhs);
        [id(0x00000007), propput, helpstring("property objid")]
        HRESULT objid([in] BSTR rhs);
    };

 

IrichFrameObj的作用我不是很理解居然一個接口都沒有而后者模糊的能夠理解一些src大概就是動畫圖片路徑,auto系列是為了動態(tài)縮放。現(xiàn)在的QQ只允許一個自定義動畫,依據(jù)老衲猜測,因為自定義動畫往往是截圖,比較大,在一行容易引起點擊時視圖跳躍。再有其他的屬性是為了識別所用,無法推測具體行為。

 

呃,事情看起來沒有那么復(fù)雜,的確,我只實現(xiàn)了2個接口,而其中大部分也都是返回E_NOTIMPL,因為richedit確實沒有那么標(biāo)準(zhǔn),你實現(xiàn)的再標(biāo)準(zhǔn)也無濟于事。當(dāng)然richeit也在更新,win8sdk對其改動最大,但win7sdk也暴露了一些更早的功能,這或許是目前實現(xiàn)的最大亮點(技術(shù)含量,高風(fēng)險高回報,一般人難以置信)。

 

對于動畫控件闡述到此為止,或許很多人會很失望,但也僅僅如此,因為它本身什么都沒有,尤其是在你真正明白之后,所以這里或許你會很失望,但是真正的內(nèi)容就這么多,我也不知怎么添油加醋。

 

最后一個建議,希望尊重所有的玩技術(shù)的:

1、中國官本位思想很嚴(yán)重,技術(shù)搞得不錯(或許是運氣)立馬轉(zhuǎn)管理

2、文人相輕

3、資本運作,體制運作,技術(shù)作用不明顯

4、吃飽肚皮,難以維系理想

 

大道無形,大音希聲,牛叉的技術(shù)很多都是巧工,而真正的產(chǎn)業(yè)才是大無畏的研發(fā),我們只不過在投機取巧。

posted on 2012-08-05 19:18 萬連文 閱讀(1736) 評論(0)  編輯 收藏 引用 所屬分類: richedit
簡歷下載
聯(lián)系我

<2006年4月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(66)

隨筆分類

隨筆檔案

相冊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            先锋a资源在线看亚洲| 欧美日韩一区二区三区在线视频| 在线观看国产精品网站| 国产精品高清免费在线观看| 毛片av中文字幕一区二区| 久久久久久久网站| 久久精品国产77777蜜臀| 久久久亚洲影院你懂的| 欧美高清免费| 欧美亚洲成人精品| 国产午夜精品麻豆| 很黄很黄激情成人| 亚洲精美视频| 亚洲免费婷婷| 老司机精品福利视频| 欧美大尺度在线观看| 夜夜狂射影院欧美极品| 久久动漫亚洲| 欧美性一二三区| 国产色综合久久| 日韩亚洲欧美在线观看| 欧美在线视频一区二区| 免费亚洲电影| 一区二区三区高清不卡| 久久午夜色播影院免费高清| 欧美日韩另类综合| 激情文学一区| 午夜精品久久久久久99热软件| 免费国产一区二区| 亚洲一区二区视频在线| 欧美成人蜜桃| 激情五月***国产精品| 亚洲一区三区在线观看| 欧美成人免费观看| 性欧美暴力猛交69hd| 欧美精品久久久久久久免费观看| 久久亚洲一区| 亚洲免费在线观看| 欧美国产日本高清在线| 亚洲欧美99| 欧美吻胸吃奶大尺度电影| 亚洲激情视频在线播放| 久久久久一区二区三区四区| 夜夜夜久久久| 欧美日韩国产综合久久| 亚洲国产成人精品视频| 久久久久欧美精品| 午夜精品国产更新| 国产精品一区二区三区四区| 一区二区三区日韩欧美精品| 免费成人黄色av| 欧美专区在线观看一区| 国产欧美视频一区二区三区| 亚洲欧美国产另类| 99这里只有精品| 欧美日韩1区2区| 99国内精品久久久久久久软件| 麻豆久久婷婷| 久久久免费精品| 国户精品久久久久久久久久久不卡| 亚洲宅男天堂在线观看无病毒| 亚洲精品自在久久| 欧美日韩国产系列| 中文亚洲免费| 亚洲午夜精品| 国产精品久久久久久妇女6080| 亚洲永久免费精品| 亚洲视频axxx| 国产午夜精品福利| 欧美va亚洲va香蕉在线| 久久综合久色欧美综合狠狠| 亚洲成人在线免费| 亚洲福利专区| 欧美日韩精品免费看| 亚洲永久免费精品| 亚洲欧美日韩一区在线| 国产一二三精品| 欧美成人在线免费观看| 欧美成人免费全部| 这里只有视频精品| 午夜欧美电影在线观看| 在线观看欧美日韩国产| 最新国产乱人伦偷精品免费网站 | 亚洲视频网在线直播| 国产精品久久久久久久久借妻| 午夜精品久久久久久久99樱桃| 亚洲欧美一区二区激情| 在线观看视频一区| 日韩午夜免费| 国产欧美日本一区二区三区| 免费久久精品视频| 欧美日本一区| 久久久久久自在自线| 欧美极品一区| 久久免费偷拍视频| 欧美精彩视频一区二区三区| 亚洲欧美一区二区视频| 国产精品99一区| 久久九九久久九九| 欧美/亚洲一区| 亚洲欧美在线一区二区| 久久精品视频在线播放| 宅男66日本亚洲欧美视频| 欧美一区二区播放| 99av国产精品欲麻豆| 欧美在线看片| 亚洲视频免费看| 巨乳诱惑日韩免费av| 午夜精品免费视频| 欧美高清在线视频| 久久看片网站| 国产精品视频自拍| 亚洲裸体视频| 亚洲精品久久| 久久精品在线观看| 午夜在线电影亚洲一区| 欧美精品日韩一本| 欧美大秀在线观看| 国产字幕视频一区二区| 亚洲天堂第二页| 日韩天天综合| 欧美aaaaaaaa牛牛影院| 久久伊伊香蕉| 精品9999| 久久激情五月婷婷| 久久精视频免费在线久久完整在线看| 欧美日韩国产影片| 亚洲激情综合| 亚洲精品视频啊美女在线直播| 久久成人综合网| 久久精品视频免费播放| 国产免费观看久久黄| 一区二区日韩欧美| 亚洲影院高清在线| 国产精品v欧美精品v日本精品动漫 | 亚洲欧美中文字幕| 午夜精品在线| 国产精品亚发布| 亚洲一区二区三区高清| 亚洲图片欧美一区| 国产精品高潮呻吟久久| 亚洲图片自拍偷拍| 欧美在线网址| 国产一区在线视频| 久久久久久色| 亚洲第一黄色| 中国女人久久久| 国产精品无人区| 久久成人av少妇免费| 美女国内精品自产拍在线播放| 亚洲高清一区二| 欧美日韩国产欧| 亚洲一区精品电影| 久久免费午夜影院| 亚洲精品一区二区三区樱花| 欧美日韩岛国| 亚洲一区二区三区精品动漫| 久久成人免费网| 亚洲国产一区二区三区高清| 国产精品三级久久久久久电影| 欧美一进一出视频| 久久久蜜臀国产一区二区| 在线成人性视频| 欧美日韩午夜在线| 欧美一区高清| 欧美激情一区二区三区在线| aa亚洲婷婷| 国产一区二区三区久久悠悠色av | 亚洲免费福利视频| 欧美吻胸吃奶大尺度电影| 欧美一区国产二区| 亚洲经典一区| 久久er99精品| 亚洲精品中文字幕女同| 国产精品久久久久久久久借妻| 久久久精彩视频| 一本色道久久88综合亚洲精品ⅰ| 久久精品中文字幕免费mv| 亚洲精品久久久久久一区二区| 国产精品私房写真福利视频 | 欧美激情影院| 午夜视频一区二区| 亚洲伦伦在线| 欧美韩国在线| 久久精品国产99精品国产亚洲性色 | 欧美日韩中文字幕精品| 久久久久久婷| 亚洲午夜小视频| 亚洲激情另类| 欧美a级一区| 久久九九有精品国产23| 亚洲综合激情| 夜色激情一区二区| 亚洲韩国日本中文字幕| 国产九色精品成人porny| 欧美精品videossex性护士| 久久久久久久性| 久久精品电影| 久久riav二区三区| 欧美一区二区三区的|