1 package org.jinterop.dcom.test; 2 3 4 5 import java.net.UnknownHostException ; 6 7 import org.jinterop.dcom.common.JIException; 8 import org.jinterop.dcom.core.IJIComObject; 9 import org.jinterop.dcom.core.JICallObject; 10 import org.jinterop.dcom.core.JIClsid; 11 import org.jinterop.dcom.core.JIComServer; 12 import org.jinterop.dcom.core.JIFlags; 13 import org.jinterop.dcom.core.JIPointer; 14 import org.jinterop.dcom.core.JISession; 15 import org.jinterop.dcom.core.JIVariant; 16 import org.jinterop.dcom.win32.ComFactory; 17 import org.jinterop.dcom.win32.IJIDispatch; 18 19 public class TestCOMServer { 20 21 private JIComServer comStub = null; 22 private IJIDispatch dispatch = null; 23 private IJIComObject unknown = null; 24 25 public TestCOMServer(String address, String [] args) throws JIException, UnknownHostException 26 { 27 JISession session = JISession.createSession(args[1],args[2],args[3]); 28 29 30 comStub = new JIComServer(JIClsid.valueOf("44A9CD09-0D9B-4FD2-9B8A-0151F2E0CAD1"),address,session); 34 } 35 36 public void execute() throws JIException 37 { 38 unknown = comStub.createInstance(); 39 IJIComObject comObject = (IJIComObject)unknown.queryInterface("4AE62432-FD04-4BF9-B8AC-56AA12A47FF9"); 41 dispatch = (IJIDispatch)ComFactory.createCOMInstance(ComFactory.IID_IDispatch,comObject); 42 43 Object results[] = dispatch.callMethodA("Add",new Object []{new Integer (1), new Integer (2), new JIVariant(0,true)}); 45 System.out.println(results[1]); 46 47 JICallObject callObject = new JICallObject(comObject.getIpid()); 49 callObject.setOpnum(1); callObject.addInParamAsInt(1,JIFlags.FLAG_NULL); 51 callObject.addInParamAsInt(2,JIFlags.FLAG_NULL); 52 callObject.addInParamAsPointer(new JIPointer(new Integer (0)),JIFlags.FLAG_NULL); 53 callObject.addOutParamAsObject(Integer .class,JIFlags.FLAG_NULL); 55 results = comObject.call(callObject); 56 System.out.println(results[0]); 57 JISession.destroySession(dispatch.getAssociatedSession()); 58 } 59 60 61 62 public static void main(String [] args) { 63 64 try { 65 if (args.length < 4) 66 { 67 System.out.println("Please provide address domain username password"); 68 return; 69 } 70 TestCOMServer test = new TestCOMServer(args[0],args); 71 test.execute(); 72 } catch (Exception e) { 73 e.printStackTrace(); 75 } 76 } 77 78 79 80 81 82 } 83 | Popular Tags |