日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > Delphi > 正文

DELPHI實現activex控件的限制

2019-11-18 18:28:07
字體:
來源:轉載
供稿:網友
  個人認為DELPHI實現activex控件的限制存在于DELPHIactivex控件的基類派生于TAutoObject如下:

TActiveXControl = class(TAutoObject,
    IConnectionPointContainer,
    IDataObject,
    IObjectSafety,
    IOleControl,
    IOleInPlaceActiveObject,
    IOleInPlaceObject,
    IOleObject,
    iperPRopertyBrowsing,
    IPersistPropertyBag,
    IPersistStorage,
    IPersistStreamInit,
    IQuickActivate,
    ISimpleFrameSite,
    ISpecifyPropertyPages,
    IViewObject,
    IViewObject2)

  ....

  ....

end;

 

DELPHI制作過activex控件的人都知道DELPHIactivex控件向導中必須指明控件包含的VCL窗體控件(從TWinControl派生的VCL控件),這樣就使得它的實現必須包含一個VCL窗體控件,而為了讓這個VCL窗體控件隨時可用DELPHI還要為該控件提供一個父窗口。看下面代碼:

procedure TActiveXControl.Initialize;

begin

  inherited Initialize;

  FConnectionPoints := TConnectionPoints.Create(Self);

  FControlFactory := Factory as TActiveXControlFactory;

  if FControlFactory.EventTypeInfo <> nil then

    FConnectionPoints.CreateConnectionPoint(FControlFactory.EventIID,

      ckSingle, EventConnect);

  FPropertySinks := FConnectionPoints.CreateConnectionPoint(IPropertyNotifySink,

    ckMulti, nil);

  FControl := FControlFactory.WinControlClass.CreateParented(ParkingWindow);

  if csReflector in FControl.ControlStyle then

    FWinControl := TReflectorWindow.Create(ParkingWindow, FControl) else

    FWinControl := FControl;

  FControlWndProc := FControl.WindowProc;

  FControl.WindowProc := WndProc;

  InitializeControl;

end;

這就是DELPHI實現activex控件的限制,我們如何去控制這個ParkingWindow就算能夠控制整個activex控件的體積以及膨脹了很多了,在internet上的activex控件越小越好,至少現在的DELPHI要實現類似vc輕量級控件(只實現IPersistStreamInitIOleControlIOleObjectIOleInPlaceActiveObjectIViewObjectExIOleInPlaceObjectWindowless這些接口的COM對象)非常困難,更不要說要按需(根據activex控件的使用范圍是IE還是Word或者其他)實現接口了。一種解決方案就是不從TAutoObject派生而是直接從窗體控件派生如下:

 

TMyActiveXControl=class(TMyControl,

//TMyControl一般的類也可以是VCL窗體控件類.

//下面的接口并不總是需要派生和實現。可按需派生和實現

    IConnectionPointContainer,
    IDataObject,
    IObjectSafety,
    IOleControl,
    IOleInPlaceActiveObject,
    IOleInPlaceObject,
    IOleObject,
    IPerPropertyBrowsing,
    IPersistPropertyBag,
    IPersistStorage,
    IPersistStreamInit,
    IQuickActivate,
    ISimpleFrameSite,
    ISpecifyPropertyPages,
    IViewObject,
    IViewObject2)

  ....

  ....

end;

 

但是如果這樣,新的問題又產生了,如何注冊這個activex控件呢?因為沒有合適的類廠對象,DELPHI的類廠是如下關系:

TComObjectFactory-->TTypedComObjectFactory-->TAutoObjectFactory

-->TActiveXControlFactory-->TActiveFormFactory

TComObjectFactory是這樣實現的,

TComObject = class(TObject, IUnknown, ISupportErrorInfo)

。。。。

End;

TComClass = class of TComObject;

TComObjectFactory = class(TObject, IUnknown, IClassFactory, IClassFactory2)

…..

constructor Create(ComServer: TComServerObject; ComClass: TComClass;

      const ClassID: TGUID; const ClassName, Description: string;

      Instancing: TClassInstancing; ThreadingModel: TThreadingModel = tmSingle);

End;

類廠的構造函數要求ComClass這個參數,而TComObject是從TObject派生的,因此如我們根本找不到合適的類廠基類來派生,除非有下面的delphi實現:

TMyComObject = class(TMyControl, IUnknown, ISupportErrorInfo)

。。。。

End;

TMyComClass = class of TMyComObject;

TMyComObjectFactory = class(TObject, IUnknown, IClassFactory, IClassFactory2)

…..

constructor Create(ComServer: TComServerObject; MyComClass: TMyComClass;

      const ClassID: TGUID; const ClassName, Description: string;

      Instancing: TClassInstancing; ThreadingModel: TThreadingModel = tmSingle);

End;

可惜就算有這樣的一個類我們也無法使用,這個限制來自于DELPHICOM類廠的實現如下:

TComServer = class(TComServerObject)

Private

。。。。

  procedure FactoryFree(Factory: TComObjectFactory);

  procedure FactoryRegisterClassObject(Factory: TComObjectFactory);

  procedure FactoryUpdateRegistry(Factory: TComObjectFactory);

  procedure LastReleased;

end;

問題就出在這幾個函數,這幾個函數要求參數是TComObjectFactory類型,也就是說要使用delphi提供的COM服務器的實現,那么COM對象的類廠就必須從TComObjectFactory派生,我沒想通這兒為什么不使用接口,比如是如下實現:

TComServer = class(TComServerObject)

Private

。。。。

  procedure FactoryFree(Factory: IClassFactory);

  procedure FactoryRegisterClassObject(Factory: IClassFactory);

  procedure FactoryUpdateRegistry(Factory: IClassFactory);

  procedure LastReleased;

end;

追根到底問題出在delphi提供的COM服務器的實現以及類廠的實現上了,這下就沒法了,至少我現在還沒有找到什么好辦法,現在想到的就只有自己實現COM服務器dll以及自己的activex控件類工廠了(實際上也做了一個,感覺還是很簡單,有些delph實現COM服務器的的方法可以直接使用)。

上一篇:Delphi中的線程類--之(2)

下一篇:Delphi中的線程類--之(1)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

成人ww免费完整版在线观看| 久久精品99久久久久久久久| 国产一二三精品| 韩国一区二区av| 91精品国产综合久久蜜臀| 国产卡1卡2卡三卡在线| 欧美久久综合性欧美| 国产欧美日韩亚州综合| 日韩欧美久久久| а√天堂8资源中文在线| av三级在线观看| 一区二区三区在线播放视频| 欧美在线日韩精品| 久99久视频| 99热最新网址| 亚洲va韩国va欧美va精品| 日韩欧美一二三| 欧美日韩精品久久久| 国产婷婷精品| 国产成人精品免费在线| 91精品视频国产| 国产高清在线视频| 国产婷婷一区二区| 91精品国产色综合久久不卡蜜臀| 91精品视频观看| 日韩欧美视频一区二区三区四区| 欧美一级在线免费| 国产一区免费视频| 亚洲免费播放| 午夜精品一区二区三区视频免费看| eeuss一区| 日韩三级一区二区| 欧美日韩午夜精品| 影音先锋一区二区资源站| 精品日韩99亚洲| 国产一区精品在线| 亚洲va久久久噜噜噜久久| 婷婷久久综合九色国产成人| 国产一级粉嫩xxxx| 国产不卡一区二区在线观看| 国产一区成人| 一级片免费在线播放| 欧美日韩国产高清| 国产福利久久| 韩国av一区二区| 一级网站免费观看| 中文字幕亚洲在| 亚洲久草视频| 日韩精品视频免费播放| 欧美日韩中文字幕| 中文字幕亚洲区| 免费一级欧美在线观看视频| 国产黄色片大全| 国产手机精品视频| 91精品国产91| 欧洲精品久久久| 欧美日韩国产不卡| 欧美日韩中文字幕日韩欧美| 国产无遮挡在线视频免费观看| 亚洲欧洲日韩在线| 精品视频久久| 亚洲黄页一区| 日韩欧美亚洲国产一区| 日本精品在线| 国内精品99| 91亚洲国产高清| 精品全国在线一区二区| 欧美日韩亚洲国内综合网俺 | 亚洲综合日韩| 亚洲免费播放| 中文字幕亚洲国产| 欧美中文字幕视频在线观看| 二区中文字幕| 日韩欧美国产三级| 91精品国产99| 一区二区在线看| 亚洲中文字幕一区| 综合激情一区| 中文字幕精品在线| 一级片免费网站| 亚洲综合三区| 日韩中文字幕二区| 精品国产99| 日韩高清在线一区二区| 99综合精品久久| 日韩中文字幕网| 在线资源av| 欧美日韩激情一区| 久久香蕉精品| 久久精品日韩无码| 中文字幕在线观看亚洲| 黄色国产网站在线观看| 国产婷婷色一区二区三区| 欧美日韩不卡在线视频| 激情五月综合| 久久riav| 亚洲高清在线免费| 精品在线一区二区三区| 一区二区三区免费看视频| 不卡在线视频| 国产三级在线| 在线免费视频一区二区| 久久精品蜜桃| 国产 欧美 日韩 在线| 91吃瓜在线观看| 欧美色视频一区二区三区在线观看| 欧美在线观看视频一区| 中文字幕日韩国产| 天天综合天天做| 91精品国产91久久| 欧美日韩综合色| 黄色一区二区在线| 亚洲综合视频一区| 91精品国产免费| 国产拍揄自揄精品视频麻豆| 日韩视频免费直播| 精品国产乱码久久久久久蜜臀| 国产精品福利视频一区二区三区| 日韩视频在线观看一区| 91精品国产高清91久久久久久| 亚洲一区在线观看视频| 亚洲一区在线观看免费| 91精品国产日韩91久久久久久| 欧美日韩国产区| 国产欧美日韩高清| 在线视频色在线| 亚洲福利在线看| 91精品国产自产91精品| 91精品国产全国免费观看| 亚洲人线精品午夜| 中文字幕欧美日韩在线| 欧美日韩国产免费| 天天综合天天综合| 91国内精品在线视频| 香蕉av一区| 久久久精品免费免费| 欧美国产日韩在线播放| 亚洲小说春色综合另类电影| 欧美午夜影院在线视频| 欧美国产日韩综合| 欧美日韩亚洲综合在线| 欧美日韩国产在线观看| 黄色片免费在线| 一区二区视频在线| 精品欧美不卡一区二区在线观看| 一区二区国产在线| 免费高清特黄a大片| 中文字幕在线亚洲| 91www成人久久| 一区二区三区四区五区视频在线观看| 成人a在线观看| av免费观看网站| 亚洲视频资源在线| 日韩精品视频网| 久久久水蜜桃| 欧美日韩国产在线播放| 九七久久人人| 日韩久久在线| 樱花草www在线| 日韩视频在线免费播放| 国产高清在线视频| 精品日韩一区二区三区免费视频| 亚洲第一页中文字幕| 日韩精品在线观看视频| 精品亚洲国内自在自线福利| 中文字幕乱码在线| 亚洲人成欧美中文字幕| 免费高清视频日韩| 日韩在线视频观看正片免费网站| 成人福利一区| 精品国产乱码久久久久久牛牛| 中文字幕无线码一区| 精品色蜜蜜精品视频在线观看| 在线观看中文字幕一区| 亚洲视频日韩| 精品一区二区三区中文字幕在线| 91国内精品在线视频| 久本草在线中文字幕亚洲欧美| 日本黄色一区二区三区| 精品人妻二区中文字幕| 日韩在线视频一区| 色欧美日韩亚洲| 久久久99久久精品欧美 | 欧美日韩成人综合| 91精品国产色综合久久不卡蜜臀| 久草亚洲一区| 欧美日韩久久久| 欧美中文字幕视频| 国产欧美日韩中文字幕在线| 欧美一级免费在线观看| 国产91久久久久蜜臀青青天草二| 久久久精品欧美| 91精品国产自产91精品| 欧美日韩三级在线| 欧美在线日韩| 国产日韩中文字幕在线| 国产69精品久久久久孕妇国产69久久 | 99视频在线看| 最近中文av字幕在线中文| 亚洲va韩国va欧美va精品| 日韩精品在线观| 国产在线高潮| 日韩在线欧美| 亚洲一区日韩精品中文字幕| 91欧美日韩| 欧美日韩三级在线观看| 国产在线观看色| 国产不卡一区| 日韩欧美中文字幕一区| 亚洲一二三不卡| 久久久久久99精品| 亚洲热线99精品视频| 日韩精品视频免费| 伊人中文字幕在线观看| 日韩欧美久久久| 久久综合九色欧美综合狠狠| 亚洲 欧美 精品| 91精品久久久久久久久久| 日韩国产成人| 92久久精品| 国产黄色在线| 中文字幕日韩精品在线| 国产乱码在线| 精品综合久久久久| 欧美日韩国产不卡| 日韩精品视频免费| 91精品国产91久久久久久青草| 欧美日韩国产专区| 精品国产1区二区| av一区在线观看| 欧美日韩国产综合视频在线观看中文| 亚洲视频日韩| 亚洲校园欧美国产另类 | 国产亚洲一级| 999精品色在线播放| 999精品网| 77777_亚洲午夜久久多人 | 欧美特黄一区| 精品三级久久| 久久精品日韩无码| www高清在线视频日韩欧美| 视频一区三区| 日韩精品中文在线观看| 日韩欧美中文在线| 国产午夜精品久久| 精品日韩视频在线观看| 欧美日韩亚洲综合| 国产福利一区在线观看| 亚洲欧洲综合另类| 日韩视频在线观看视频| 欧美日韩免费精品| 黄色国产在线| 91欧美日韩在线| 亚洲黄色片在线观看| 日韩在线三区| 免费视频最近日韩| 日韩欧美国产三级| 欧美日韩国产不卡在线看| 亚洲理论中文字幕| 中文在线不卡视频| 日韩中文字幕综合| 日韩欧美色综合| 久99久视频| 国产午夜精品一区二区三区视频| 91精品久久久久久久久| 亚洲午夜91| 欧美 日韩 国产在线| 1区2区在线| 热久久精品国产| 中文字幕精品在线视频| 国产性一级片| 欧美亚洲另类制服自拍| 不卡专区在线| 国产日产一区二区三区| 中文字幕亚洲二区| 中文字幕国产欧美| 国产日韩中文字幕| 狠狠色噜噜狠狠狠狠97| 中文精品在线| 国产午夜在线观看| 欧美日韩在线国产| 91精品国产91久久| 中文字幕日韩在线视频| 亚洲羞羞网站| 国自产拍在线网站网址视频| 欧美三级三级三级爽爽爽| 亚洲第一视频在线观看| 成人一区二区不卡免费| www日韩欧美| 久久久精品免费免费| 亚洲国产一区自拍| 中文字幕欧美国内| 国产婷婷色一区二区三区| 精品九九久久| 国产调教精品| 日韩精品在线免费播放| 精品区一区二区| 中文字幕在线视频日韩| 国产调教精品| 久久欧美中文字幕| 精品成人久久av| 亚洲高清在线观看一区| 欧美不卡123| 国产欧美综合在线观看第十页| 美女在线视频一区| 中文字幕在线精品| 国产伦精品免费视频| 亚洲a中文字幕| 国产www.大片在线| 首页国产欧美久久| 91精品久久久久久久久| 欧美国产日韩在线播放| 日本国产在线视频| 久久人人88| 午夜av一区二区| 亚洲视频一二三四| 日韩欧美一级在线播放| 中文字幕欧美日韩va免费视频| 91精品国产乱码久久蜜臀| 欧美日韩国产一二| 久久久久蜜桃| 欧美日韩国产一区| √新版天堂资源在线资源| 亚洲成年人在线播放| 欧美一级免费看| 日本亚洲视频在线| 91麻豆精品在线| 亚洲欧美日本另类| 日本不卡视频一区| 欧美日韩国产一区中文午夜| 精品人妻一区二区三区视频| 高清在线一区| 日韩欧美中文字幕视频| 精品久久久网| 天堂精品高清1区2区3区| 国产欧美日韩精品在线| 欧美日韩综合高清一区二区| 91精品国产91| 中文字幕欧美日韩在线| 伊人国产视频| 蜜桃视频中文字幕| 亚洲一区中文字幕在线观看| 日韩精品一区二区三区视频播放| 日韩在线观看a| 欧美日韩国产专区| 日韩久久精品成人| 欧美日韩第一| 国产性一级片| 国自产拍在线网站网址视频| 欧美日韩国产91| 99久久久精品免费观看国产| 日韩美女视频一区二区在线观看| 中文字幕线观看| 国产网站av| 国产小视频免费在线网址| 欧美 日韩 国产 高清| 日韩在线视频网| 欧美不卡视频一区发布| 日韩中文字幕在线视频播放| 中文网丁香综合网| 久久久久久91| 久久久精品福利| 欧美色视频一区二区三区在线观看| 国产日韩av高清| av一级在线| 日韩不卡一区二区| 国产高清精品在线| 亚洲精品中文字幕乱码三区不卡| 欧美日韩激情一区| 久久麻豆视频| 国产成人精品免费网站| 欧美日韩精品免费看| 日韩一二三四区| 日韩精品在线免费看| 国产黄色在线网站| 欧美三级精品| 91精品婷婷国产综合久久| 在线三级av| 久久中文精品| 在线观看91精品国产入口| 91av久久久| 一区三区视频| 91精品国产自产91精品| 日韩亚洲不卡在线| 国产欧美一级| 国产一级久久久| 麻豆一区二区99久久久久| 精品久久久三级| 日韩欧美国产三级| 欧美日韩中文字幕在线| 亚洲视频中文字幕| 成人xxxx| 国产福利久久| 日韩精品免费视频一区二区三区| 日韩欧美在线网址| 中文在线第一页| 久久久久久99精品| 国产95在线|亚洲| 日韩免费视频一区| 日韩亚洲欧美中文高清在线|