線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1427
推到 Plurk!
推到 Facebook!

如何用一個Soap元件呼叫所有COM+元件?

 
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-05-17 14:08:53 IP:61.171.xxx.xxx 未訂閱
我原來的系統是局域網的3-tier,中間件是COM , 現在想用Soap延展到internet上,但我不想一個Soap元件對應一個COM 元件, 並且在每個Soap元件重定義COM 的接口 我想只寫一個Soap元件,用一個方法CallCom,來動態調用所有的COM 方法 procedure TSoapCallCom.CallCom(ComProgID, MethodName: WideString; var ParamList,ReturnValue: OLEVariant); var ICom:IDispatch; DispIDs:array[0..0] of TDispID; DispParams:TDispParams; ParamValue:array[Byte] of OLEVariant; i:integer; begin DispParams.cArgs:=VarArrayHighBound(ParamList,1) 1; for i:=0 to DispParams.cArgs-1 do begin ParamValue[i]:=ParamList[DispParams.cArgs-1-i]; end; DispParams.rgvarg:=@ParamValue; DispParams.cNamedArgs:=0; DispParams.rgdispidNamedArgs:=nil; ICom:=CreateRemoteComObject('Sac049',ProgIDToClassID(ComProgID)) as IDispatch; OLECheck(ICOM.GetIDsOfNames(GUID_NULL,@MethodName,1,0,@DispIDs)); OLECheck(ICOM.Invoke(DispIDs[0],GUID_NULL,0,DISPATCH_METHOD,DispParams,@ReturnValue,nil,nil)); for i:=0 to DispParams.cArgs-1 do //返回var參數 ParamList[i]:=ParamValue[DispParams.cArgs-1-i]; end; 代碼可以執行,結果也對,但 1.最後兩句不能返回修改了的var參數 2.如果ParamValue:array[Byte] of OLEVariant;定義成ParamValue:array[word] of OLEVariant;會報棧溢出 3.或者有類似httpsrvr.dll的方式(它有bug,在TWebConnection釋放時,不能釋放COM )
------
江上何人初见月,江月何年初照人
baby999
一般會員


發表:0
回覆:8
積分:1
註冊:2003-01-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-27 21:03:31 IP:203.175.xxx.xxx 未訂閱
http://www.delphibbs.com/keylife/iblog_show.asp?xid=1107 What is EventSinkImp? EventSinkImp is a free utility (comes with full source code for enthusiasts) that imports COM connection point-based event interfaces for ease of use in Delphi applications. EventSinkImp creates stub classes/components that publishes event methods as native Delphi events so that you can easily build applications that need to capture COM-based events from Delphi, Visual Basic, or Visual C server COM components. If you are familiar with VB, EventSinkImp allows you to achieve the equivalent of VB's Dim WithEvents mechanism. 你可以在 http://www.techvanguards.com/products/eventsinkimp/ 下载 那儿有很多好东西呀
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-14 11:24:41 IP:218.1.xxx.xxx 未訂閱
谢谢,我会好好看看。     久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
系統時間:2024-04-26 8:59:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!