1 package org.jinterop.dcom.test; 2 3 import java.net.UnknownHostException ; 4 import java.util.ArrayList ; 5 6 import org.jinterop.dcom.common.JIException; 7 import org.jinterop.dcom.common.JIInterfaceDefinition; 8 import org.jinterop.dcom.common.JIJavaCoClass; 9 import org.jinterop.dcom.common.JIMethodDescriptor; 10 import org.jinterop.dcom.core.IJIComObject; 11 import org.jinterop.dcom.core.JIComServer; 12 import org.jinterop.dcom.core.JIFlags; 13 import org.jinterop.dcom.core.JIInterfacePointer; 14 import org.jinterop.dcom.core.JIParameterObject; 15 import org.jinterop.dcom.core.JIProgId; 16 import org.jinterop.dcom.core.JISession; 17 import org.jinterop.dcom.core.JIString; 18 import org.jinterop.dcom.core.JIVariant; 19 import org.jinterop.dcom.win32.ComFactory; 20 import org.jinterop.dcom.win32.IJIDispatch; 21 22 public class MSInternetExplorer { 23 24 private JIComServer comServer = null; 25 private JISession session = null; 26 private IJIComObject ieObject = null; 27 private IJIDispatch ieObjectDispatch = null; 28 private String identifier = null; 29 public MSInternetExplorer(String address, String [] args) throws JIException, UnknownHostException 30 { 31 session = JISession.createSession(args[1],args[2],args[3]); 32 comServer = new JIComServer(JIProgId.valueOf(session,"InternetExplorer.Application"),address,session); 33 ieObject = comServer.createInstance(); 34 IJIComObject ieObjectWebBrowser2 = (IJIComObject)ieObject.queryInterface("D30C1661-CDAF-11D0-8A3E-00C04FC9E26E"); 35 ieObjectDispatch = (IJIDispatch)ComFactory.createCOMInstance(IJIDispatch.IID,ieObject); 36 37 } 38 39 private void setVisible() throws JIException 40 { 41 42 int dispId = ieObjectDispatch.getIDsOfNames("Visible"); 43 ieObjectDispatch.put(dispId,new JIVariant(Boolean.TRUE)); 44 ieObjectDispatch.put("AddressBar",new JIVariant(Boolean.TRUE)); 45 ieObjectDispatch.put("MenuBar",new JIVariant(Boolean.TRUE)); 46 ieObjectDispatch.put("ToolBar",new JIVariant(Boolean.TRUE)); 47 48 } 49 50 private void navigateToUrl(String url) throws JIException 51 { 52 ieObjectDispatch.callMethod("Navigate2",new Object []{new JIString(url),JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM}); 55 } 56 57 private void attachCallBack() throws JIException 58 { 59 60 103 JIJavaCoClass javaComponent = new JIJavaCoClass(new JIInterfaceDefinition("45B5FC0C-FAC2-42bd-923E-2B221A89E092"),DWebBrowserEvents2.class); 104 105 JIParameterObject propertyChangeObject = new JIParameterObject(); 106 propertyChangeObject.addInParamAsType(JIString.class,JIFlags.FLAG_NULL); 107 JIMethodDescriptor methodDescriptor = new JIMethodDescriptor("PropertyChange",0x70,propertyChangeObject); 108 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 109 110 111 JIParameterObject navigateObject = new JIParameterObject(); 112 navigateObject.addInParamAsType(JIInterfacePointer.class,JIFlags.FLAG_NULL); 113 navigateObject.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 114 navigateObject.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 115 navigateObject.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 116 navigateObject.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 117 navigateObject.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 118 navigateObject.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 119 methodDescriptor = new JIMethodDescriptor("BeforeNavigate2",0xFA,navigateObject); 120 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 121 122 JIParameterObject StatusTextChange = new JIParameterObject(); 123 StatusTextChange.addInParamAsType(JIString.class,JIFlags.FLAG_NULL); 124 methodDescriptor = new JIMethodDescriptor("StatusTextChange",0x66,StatusTextChange); 125 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 126 127 JIParameterObject ProgressChange = new JIParameterObject(); 128 ProgressChange.addInParamAsType(Integer .class,JIFlags.FLAG_NULL); 129 ProgressChange.addInParamAsType(Integer .class,JIFlags.FLAG_NULL); 130 methodDescriptor = new JIMethodDescriptor("ProgressChange",0x6c,ProgressChange); 131 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 132 133 JIParameterObject CommandStateChange = new JIParameterObject(); 134 CommandStateChange.addInParamAsType(Integer .class,JIFlags.FLAG_NULL); 135 CommandStateChange.addInParamAsType(Boolean .class,JIFlags.FLAG_NULL); 136 methodDescriptor = new JIMethodDescriptor("CommandStateChange",0x69,CommandStateChange); 137 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 138 139 JIParameterObject DownloadBegin = new JIParameterObject(); 140 methodDescriptor = new JIMethodDescriptor("DownloadBegin",0x6a,DownloadBegin); 141 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 142 143 JIParameterObject DownloadComplete = new JIParameterObject(); 144 methodDescriptor = new JIMethodDescriptor("DownloadComplete",0x68,DownloadComplete); 145 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 146 147 JIParameterObject TitleChange = new JIParameterObject(); 148 TitleChange.addInParamAsType(JIString.class,JIFlags.FLAG_NULL); 149 methodDescriptor = new JIMethodDescriptor("TitleChange",0x71,TitleChange); 150 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 151 152 JIParameterObject NewWindow2 = new JIParameterObject(); 153 NewWindow2.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 154 NewWindow2.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 155 methodDescriptor = new JIMethodDescriptor("NewWindow2",0xfb,NewWindow2); 156 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 157 158 JIParameterObject NavigateComplete2 = new JIParameterObject(); 159 NavigateComplete2.addInParamAsType(JIInterfacePointer.class,JIFlags.FLAG_NULL); 160 NavigateComplete2.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 161 methodDescriptor = new JIMethodDescriptor("NavigateComplete2",0xfc,NavigateComplete2); 162 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 163 164 JIParameterObject DocumentComplete = new JIParameterObject(); 165 DocumentComplete.addInParamAsType(JIInterfacePointer.class,JIFlags.FLAG_NULL); 166 DocumentComplete.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 167 methodDescriptor = new JIMethodDescriptor("DocumentComplete",0x103,DocumentComplete); 168 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 169 170 JIParameterObject OnQuit = new JIParameterObject(); 171 methodDescriptor = new JIMethodDescriptor("OnQuit",0xfd,OnQuit); 172 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 173 174 JIParameterObject OnVisible = new JIParameterObject(); 175 OnVisible.addInParamAsType(Boolean .class,JIFlags.FLAG_NULL); 176 methodDescriptor = new JIMethodDescriptor("OnVisible",0xfe,OnVisible); 177 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 178 179 JIParameterObject OnToolBar = new JIParameterObject(); 180 OnToolBar.addInParamAsType(Boolean .class,JIFlags.FLAG_NULL); 181 methodDescriptor = new JIMethodDescriptor("OnToolBar",0xff,OnToolBar); 182 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 183 184 JIParameterObject OnMenuBar = new JIParameterObject(); 185 OnMenuBar.addInParamAsType(Boolean .class,JIFlags.FLAG_NULL); 186 methodDescriptor = new JIMethodDescriptor("OnMenuBar",0x100,OnMenuBar); 187 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 188 189 JIParameterObject OnStatusBar = new JIParameterObject(); 190 OnStatusBar.addInParamAsType(Boolean .class,JIFlags.FLAG_NULL); 191 methodDescriptor = new JIMethodDescriptor("OnStatusBar",0x101,OnStatusBar); 192 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 193 194 JIParameterObject OnFullScreen = new JIParameterObject(); 195 OnFullScreen.addInParamAsType(Boolean .class,JIFlags.FLAG_NULL); 196 methodDescriptor = new JIMethodDescriptor("OnFullScreen",0x102,OnFullScreen); 197 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 198 199 JIParameterObject OnTheaterMode = new JIParameterObject(); 200 OnTheaterMode.addInParamAsType(Boolean .class,JIFlags.FLAG_NULL); 201 methodDescriptor = new JIMethodDescriptor("OnTheaterMode",0x104,OnTheaterMode); 202 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 203 204 JIParameterObject WindowSetResizable = new JIParameterObject(); 205 WindowSetResizable.addInParamAsType(Boolean .class,JIFlags.FLAG_NULL); 206 methodDescriptor = new JIMethodDescriptor("WindowSetResizable",0x106,WindowSetResizable); 207 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 208 209 JIParameterObject WindowSetLeft = new JIParameterObject(); 210 WindowSetLeft.addInParamAsType(Integer .class,JIFlags.FLAG_NULL); 211 methodDescriptor = new JIMethodDescriptor("WindowSetLeft",0x108,WindowSetLeft); 212 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 213 214 JIParameterObject WindowSetTop = new JIParameterObject(); 215 WindowSetTop.addInParamAsType(Integer .class,JIFlags.FLAG_NULL); 216 methodDescriptor = new JIMethodDescriptor("WindowSetTop",0x109,WindowSetTop); 217 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 218 219 JIParameterObject WindowSetWidth = new JIParameterObject(); 220 WindowSetWidth.addInParamAsType(Integer .class,JIFlags.FLAG_NULL); 221 methodDescriptor = new JIMethodDescriptor("WindowSetWidth",0x10a,WindowSetWidth); 222 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 223 224 JIParameterObject WindowSetHeight = new JIParameterObject(); 225 WindowSetHeight.addInParamAsType(Integer .class,JIFlags.FLAG_NULL); 226 methodDescriptor = new JIMethodDescriptor("WindowSetHeight",0x10b,WindowSetHeight); 227 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 228 229 JIParameterObject WindowClosing = new JIParameterObject(); 230 WindowClosing.addInParamAsType(Boolean .class,JIFlags.FLAG_NULL); 231 WindowClosing.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 232 methodDescriptor = new JIMethodDescriptor("WindowClosing",0x107,WindowClosing); 233 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 234 235 JIParameterObject ClientToHostWindow = new JIParameterObject(); 236 ClientToHostWindow.addInParamAsType(Integer .class,JIFlags.FLAG_NULL); 237 ClientToHostWindow.addInParamAsType(Integer .class,JIFlags.FLAG_NULL); 238 methodDescriptor = new JIMethodDescriptor("ClientToHostWindow",0x10c,ClientToHostWindow); 239 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 240 241 JIParameterObject SetSecureLockIcon = new JIParameterObject(); 242 SetSecureLockIcon.addInParamAsType(Integer .class,JIFlags.FLAG_NULL); 243 methodDescriptor = new JIMethodDescriptor("SetSecureLockIcon",0x10d,SetSecureLockIcon); 244 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 245 246 JIParameterObject FileDownload = new JIParameterObject(); 247 FileDownload.addInParamAsType(Boolean .class,JIFlags.FLAG_NULL); 248 FileDownload.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 249 methodDescriptor = new JIMethodDescriptor("FileDownload",0x10e,FileDownload); 250 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 251 252 JIParameterObject NavigateError = new JIParameterObject(); 253 NavigateError.addInParamAsType(JIInterfacePointer.class,JIFlags.FLAG_NULL); 254 NavigateError.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 255 NavigateError.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 256 NavigateError.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 257 NavigateError.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 258 methodDescriptor = new JIMethodDescriptor("NavigateError",0x10f,NavigateError); 259 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 260 261 JIParameterObject NewWindow3 = new JIParameterObject(); 262 NewWindow3.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 263 NewWindow3.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 264 NewWindow3.addInParamAsType(Integer .class,JIFlags.FLAG_NULL); 265 NewWindow3.addInParamAsType(JIString.class,JIFlags.FLAG_NULL); 266 NewWindow3.addInParamAsType(JIString.class,JIFlags.FLAG_NULL); 267 methodDescriptor = new JIMethodDescriptor("NewWindow3",0x111,NewWindow3); 268 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 269 270 JIParameterObject PrintTemplateInstantiation = new JIParameterObject(); 271 PrintTemplateInstantiation.addInParamAsType(JIInterfacePointer.class,JIFlags.FLAG_NULL); 272 methodDescriptor = new JIMethodDescriptor("PrintTemplateInstantiation",0xe1,PrintTemplateInstantiation); 273 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 274 275 JIParameterObject PrintTemplateTeardown = new JIParameterObject(); 276 PrintTemplateTeardown.addInParamAsType(JIInterfacePointer.class,JIFlags.FLAG_NULL); 277 methodDescriptor = new JIMethodDescriptor("PrintTemplateTeardown",0xe2,PrintTemplateTeardown); 278 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 279 280 JIParameterObject SetPhishingFilterStatus = new JIParameterObject(); 281 SetPhishingFilterStatus.addInParamAsType(Integer .class,JIFlags.FLAG_NULL); 282 methodDescriptor = new JIMethodDescriptor("SetPhishingFilterStatus",0x11A,SetPhishingFilterStatus ); 283 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 284 285 JIParameterObject WindowStateChanged = new JIParameterObject(); 286 WindowStateChanged.addInParamAsType(Integer .class,JIFlags.FLAG_NULL); 287 WindowStateChanged.addInParamAsType(Integer .class,JIFlags.FLAG_NULL); 288 methodDescriptor = new JIMethodDescriptor("WindowStateChanged",0x11B,WindowStateChanged); 289 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 290 291 292 JIParameterObject UpdatePageStatus = new JIParameterObject(); 293 UpdatePageStatus.addInParamAsType(JIInterfacePointer.class,JIFlags.FLAG_NULL); 294 UpdatePageStatus.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 295 UpdatePageStatus.addInParamAsType(JIVariant.class,JIFlags.FLAG_NULL); 296 methodDescriptor = new JIMethodDescriptor("UpdatePageStatus",0xe3,UpdatePageStatus); 297 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 298 299 JIParameterObject PrivacyImpactedStateChange = new JIParameterObject(); 300 PrivacyImpactedStateChange.addInParamAsType(Boolean .class,JIFlags.FLAG_NULL); 301 methodDescriptor = new JIMethodDescriptor("PrivacyImpactedStateChange",0x110,PrivacyImpactedStateChange); 302 javaComponent.getInterfaceDefinition().addMethodDescriptor(methodDescriptor); 303 304 305 ArrayList list = new ArrayList (); 306 list.add("34A715A0-6587-11D0-924A-0020AFC7AC4D"); 307 javaComponent.setSupportedEventInterfaces(list); 308 309 310 311 identifier = ComFactory.attachEventHandler(ieObject,"34A715A0-6587-11D0-924A-0020AFC7AC4D",JIInterfacePointer.getInterfacePointer(session,javaComponent)); 312 try { 313 Thread.sleep(5000); 314 } catch (InterruptedException e) { 315 e.printStackTrace(); 317 } } 319 320 private void detachCallBack() throws JIException 321 { 322 ComFactory.detachEventHandler(ieObject,identifier); 323 JISession.destroySession(ieObjectDispatch.getAssociatedSession()); 324 } 325 326 327 public static void main(String [] args) { 328 329 try { 330 331 if (args.length < 4) 332 { 333 System.out.println("Please provide address domain username password"); 334 return; 335 } 336 337 MSInternetExplorer internetExplorer = new MSInternetExplorer(args[0],args); 338 internetExplorer.setVisible(); 339 internetExplorer.attachCallBack(); 340 internetExplorer.navigateToUrl("www.rediff.com"); 341 Thread.sleep(30000); internetExplorer.detachCallBack(); 343 344 } catch (Exception e) { 345 e.printStackTrace(); 347 } 348 349 } 350 351 352 } 353 354 | Popular Tags |