Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Standard Widget Toolkit (SWT) » org.eclipse.swt.SWTException: Failed to change Variant type result = -1
org.eclipse.swt.SWTException: Failed to change Variant type result = -1 [message #371901] Wed, 23 July 2003 13:02 Go to next message
Eclipse UserFriend
Originally posted by: asra.choukri.hyperoffice.fr

C'est un message de format MIME en plusieurs parties.

------=_NextPart_000_0024_01C3512B.61247A50
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi !!

I try to run this program which must write in a brower a text HTML.
When I run it, I get an exception when i try to execute this command:
"OleAutomation doc =3D varDocument.getAutomation();"

Any ideas ?
Thanks.


/*****Exception********/

org.eclipse.swt.SWTException: Failed to change Variant type result =3D =
-1

at org.eclipse.swt.ole.win32.OLE.error(OLE.java:332)

at org.eclipse.swt.ole.win32.Variant.getAutomation(Variant.java :200)

at Main.ShellExplorer.<init>(ShellExplorer.java:38)

at Main.ShellExplorer.main(ShellExplorer.java:52)

Exception in thread "main"=20



/*****Program********/
import org.eclipse.swt.SWT;

import org.eclipse.swt.layout.RowLayout;

import org.eclipse.swt.ole.win32.OLE;

import org.eclipse.swt.ole.win32.OleAutomation;

import org.eclipse.swt.ole.win32.OleControlSite;

import org.eclipse.swt.ole.win32.OleFrame;

import org.eclipse.swt.ole.win32.Variant;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

public class ShellExplorer {

protected static Display display;

protected static Shell shell;

protected OleAutomation automationHtml;

protected OleControlSite controlSiteHtml;

protected OleFrame oleFrameHtml;

public ShellExplorer(){

oleFrameHtml =3D new OleFrame(shell, SWT.NONE);

controlSiteHtml =3D new OleControlSite(oleFrameHtml, SWT.NONE, =
"Shell.Explorer"); //webbrowser

controlSiteHtml.setSize(100, 100);

controlSiteHtml.doVerb(OLE.OLEIVERB_SHOW);

controlSiteHtml.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);

automationHtml =3D new OleAutomation(controlSiteHtml);



int[] rgdispid =3D automationHtml.getIDsOfNames(new =
String[]{"Document"}); //get a document

int dispIdMember =3D rgdispid[0];

Variant varDocument =3D automationHtml.getProperty(dispIdMember);

OleAutomation doc =3D varDocument.getAutomation();



int[] rgdispid2 =3D doc.getIDsOfNames(new String[]{"write"}); =
//write in a document

Variant[] rgvarg =3D new Variant[1];

rgvarg[0] =3D new Variant("<body>browser</body>");

automationHtml.invoke(rgdispid2[0], rgvarg);

}

public static void main (String [] args) {

display =3D new Display ();

shell =3D new Shell (display);

RowLayout fl =3D new RowLayout();

shell.setLayout(fl);

ShellExplorer se =3D new ShellExplorer();

shell.pack ();

shell.open ();

while (!shell.isDisposed ()) {

if (!display.readAndDispatch ()) display.sleep ();

}

display.dispose ();

}

}


------=_NextPart_000_0024_01C3512B.61247A50
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4134.600" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV>Hi !!</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV>I try to run this program which must write in a brower a text =
HTML.</DIV>
<DIV><FONT face=3DArial size=3D2>When I run it,&nbsp;I get an exception =
when i try=20
to execute this command:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
"<FONT=20
color=3D#000000 size=3D2>OleAutomation</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>doc</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>varDocument.getAutomation();"</FONT></FONT></DIV >
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV>Any ideas ?<BR>Thanks.<BR></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>/*****Exception********/</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><FONT color=3D#ff0000 size=3D2>
<P>org.eclipse.swt.SWTException: Failed to change Variant type result =
=3D -1</P>
<P>at org.eclipse.swt.ole.win32.OLE.error(OLE.java:332)</P>
<P>at =
org.eclipse.swt.ole.win32.Variant.getAutomation(Variant.java :200) </P>
<P>at Main.ShellExplorer.&lt;init&gt;(ShellExplorer.java:3 8) </P>
<P>at Main.ShellExplorer.main(ShellExplorer.java:52)</P>
<P>Exception in thread "main" </P></FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>/*****Program********/</FONT></DIV>
<DIV><B><FONT color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.SWT;</FONT></P>
<P><B><FONT color=3D#7f0055 size=3D2>import</B></FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 =
size=3D2>org.eclipse.swt.layout.RowLayout;</P></FONT><B> <FONT=20
color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OLE;</P></FONT><B><FONT =
color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OleAutomation;</P></FONT ><B><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OleControlSite;</P></FONT ><B><FONT=20
color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OleFrame;</P></FONT><B ><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.Variant;</P></FONT><B ><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.widgets.Display;</P></FONT><B><FONT =
color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.widgets.Shell;</P></FONT><FONT =
size=3D2></FONT><B><FONT=20
color=3D#7f0055 size=3D2>
<P>public</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>class</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>ShellExplorer</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>{</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>static</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>Display</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>display;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>static</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>Shell</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>shell;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleAutomation</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>automationHtml;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleControlSite</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>controlSiteHtml;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleFrame</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>oleFrameHtml;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>public</B></FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>ShellExplorer(){</P></FONT><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
oleFrameHtml</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT =
size=3D2> </FONT><B><FONT=20
color=3D#7f0055 size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>OleFrame(shell,</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>SWT.NONE);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleControlSite(oleFrameHtml,</FONT><FONT size=3D2> </FONT><FONT =

color=3D#000000 size=3D2>SWT.NONE,</FONT><FONT size=3D2> </FONT><FONT =
color=3D#2a00ff=20
size=3D2>"Shell.Explorer"</FONT><FONT color=3D#000000 =
size=3D2>);</FONT><FONT size=3D2>=20
</FONT><FONT color=3D#3f7f5f size=3D2>//webbrowser</P></FONT><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml.setSize(100,</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>100);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml.doVerb(OLE.OLEIVERB_SHOW);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);</P></FONT ><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
automationHtml</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleAutomation(controlSiteHtml);</P></FONT><FONT size=3D2>
<P>&nbsp;</P>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
int</B></FONT><FONT=20
color=3D#000000 size=3D2>[]</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>rgdispid</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>automationHtml.getIDsOfNames(</FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>String[]{</FONT><FONT color=3D#2a00ff =
size=3D2>"Document"</FONT><FONT=20
color=3D#000000 size=3D2>});</FONT><FONT size=3D2> </FONT><FONT =
color=3D#3f7f5f=20
size=3D2>//get a document</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
int</B></FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>dispIdMember</FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>rgdispid[0];</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
Variant</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>varDocument</FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 =
size=3D2>automationHtml.getProperty(dispIdMember);</P></FONT ><FONT=20
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
OleAutomation</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>doc</FONT><FONT size=3D2> </FONT><FONT color=3D#000000 =
size=3D2>=3D</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>varDocument.getAutomation();</P></FONT><FONT size=3D2>
<P></P>
<P></P>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
int</B></FONT><FONT=20
color=3D#000000 size=3D2>[]</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>rgdispid2</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>doc.getIDsOfNames(</FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>String[]{</FONT><FONT color=3D#2a00ff =
size=3D2>"write"</FONT><FONT=20
color=3D#000000 size=3D2>});</FONT><FONT size=3D2> </FONT><FONT =
color=3D#3f7f5f=20
size=3D2>//write in a document</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
Variant[]</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>rgvarg</FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> =
</FONT><B><FONT=20
color=3D#7f0055 size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>Variant[1];</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
rgvarg[0]</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT =
size=3D2> </FONT><B><FONT=20
color=3D#7f0055 size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>Variant(</FONT><FONT color=3D#2a00ff=20
size=3D2>"&lt;body&gt;browser&lt;/body&gt;" </FONT><FONT color=3D#000000=20
size=3D2>);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
automationHtml.invoke(rgdispid2[0],</FONT><FONT size=3D2> </FONT><FONT=20
color=3D#000000 size=3D2>rgvarg);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>}</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>public</B></FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>static</B></FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>void</B></FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>main</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>(String</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>[]</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>args)</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>{</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
display</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT =
size=3D2> </FONT><B><FONT=20
color=3D#7f0055 size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>Display</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
shell</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT =
size=3D2> </FONT><B><FONT=20
color=3D#7f0055 size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>Shell</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>(display);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
RowLayout</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>fl</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT =
color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>RowLayout();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
shell.setLayout(fl);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
ShellExplorer</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>se</FONT><FONT size=3D2> </FONT><FONT color=3D#000000 =
size=3D2>=3D</FONT><FONT=20
size=3D2> </FONT><B><FONT color=3D#7f0055 size=3D2>new</B></FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>ShellExplorer();</P></FONT><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
shell.pack</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>();</P></FONT><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
shell.open</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>();</P></FONT><FONT =
size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
while</B></FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 =
size=3D2>(!shell.isDisposed</FONT><FONT size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>())</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>{</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
if</B></FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 =
size=3D2>(!display.readAndDispatch</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>())</FONT><FONT =
size=3D2> </FONT><FONT=20
color=3D#000000 size=3D2>display.sleep</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
}</P></FONT><FONT=20
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
display.dispose</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; }</P>
<P>}</P></FONT><FONT face=3DArial size=3D2></FONT></DIV></BODY></HTML>

------=_NextPart_000_0024_01C3512B.61247A50--
Re: org.eclipse.swt.SWTException: Failed to change Variant type result = -1 [message #371913 is a reply to message #371901] Wed, 23 July 2003 17:35 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: veronika_irvine.oti.com

This is a multi-part message in MIME format.

------=_NextPart_000_025F_01C3511F.4AFBFC50
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Your varDocument does not contain a VT_DISPATCH object. It probably =
contains nothing (VT_EMPTY).

Shell.Explorer will not return a valid document until you have opened a =
valid URL or loaded a valid file.

Try calling the GoHome method or the Navigate method first.

See org.eclipse.swt.win32.ole for an example.
"asra" <asra.choukri@hyperoffice.fr> wrote in message =
news:bfm114$tr0$1@eclipse.org...
Hi !!

I try to run this program which must write in a brower a text HTML.
When I run it, I get an exception when i try to execute this command:
"OleAutomation doc =3D varDocument.getAutomation();"

Any ideas ?
Thanks.


/*****Exception********/

org.eclipse.swt.SWTException: Failed to change Variant type result =3D =
-1

at org.eclipse.swt.ole.win32.OLE.error(OLE.java:332)

at org.eclipse.swt.ole.win32.Variant.getAutomation(Variant.java :200)

at Main.ShellExplorer.<init>(ShellExplorer.java:38)

at Main.ShellExplorer.main(ShellExplorer.java:52)

Exception in thread "main"=20



/*****Program********/
import org.eclipse.swt.SWT;

import org.eclipse.swt.layout.RowLayout;

import org.eclipse.swt.ole.win32.OLE;

import org.eclipse.swt.ole.win32.OleAutomation;

import org.eclipse.swt.ole.win32.OleControlSite;

import org.eclipse.swt.ole.win32.OleFrame;

import org.eclipse.swt.ole.win32.Variant;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

public class ShellExplorer {

protected static Display display;

protected static Shell shell;

protected OleAutomation automationHtml;

protected OleControlSite controlSiteHtml;

protected OleFrame oleFrameHtml;

public ShellExplorer(){

oleFrameHtml =3D new OleFrame(shell, SWT.NONE);

controlSiteHtml =3D new OleControlSite(oleFrameHtml, SWT.NONE, =
"Shell.Explorer"); //webbrowser

controlSiteHtml.setSize(100, 100);

controlSiteHtml.doVerb(OLE.OLEIVERB_SHOW);

controlSiteHtml.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);

automationHtml =3D new OleAutomation(controlSiteHtml);



int[] rgdispid =3D automationHtml.getIDsOfNames(new =
String[]{"Document"}); //get a document

int dispIdMember =3D rgdispid[0];

Variant varDocument =3D automationHtml.getProperty(dispIdMember);

OleAutomation doc =3D varDocument.getAutomation();



int[] rgdispid2 =3D doc.getIDsOfNames(new String[]{"write"}); =
//write in a document

Variant[] rgvarg =3D new Variant[1];

rgvarg[0] =3D new Variant("<body>browser</body>");

automationHtml.invoke(rgdispid2[0], rgvarg);

}

public static void main (String [] args) {

display =3D new Display ();

shell =3D new Shell (display);

RowLayout fl =3D new RowLayout();

shell.setLayout(fl);

ShellExplorer se =3D new ShellExplorer();

shell.pack ();

shell.open ();

while (!shell.isDisposed ()) {

if (!display.readAndDispatch ()) display.sleep ();

}

display.dispose ();

}

}

------=_NextPart_000_025F_01C3511F.4AFBFC50
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2800.1141" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Your varDocument does not contain a =
VT_DISPATCH=20
object.&nbsp; It probably contains nothing (VT_EMPTY).</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Shell.Explorer will not return a valid =
document=20
until you have opened a valid URL or loaded a valid file.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Try calling the GoHome method or the =
Navigate=20
method first.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>See org.eclipse.swt.win32.ole for an=20
example.</FONT></DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"asra" &lt;<A=20
=
href=3D"mailto:asra.choukri@hyperoffice.fr">asra.choukri@hyperoffice.fr</=
A>&gt;=20
wrote in message <A=20
=
href=3D"news:bfm114$tr0$1@eclipse.org">news:bfm114$tr0$1@eclipse.org</A>.=
...</DIV>
<DIV>Hi !!</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV>I try to run this program which must write in a brower a text =
HTML.</DIV>
<DIV><FONT face=3DArial size=3D2>When I run it,&nbsp;I get an =
exception when i try=20
to execute this command:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
"<FONT=20
color=3D#000000 size=3D2>OleAutomation</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>doc</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>varDocument.getAutomation();"</FONT></FONT></DIV >
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV>Any ideas ?<BR>Thanks.<BR></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>/*****Exception********/</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><FONT color=3D#ff0000 size=3D2>
<P>org.eclipse.swt.SWTException: Failed to change Variant type result =
=3D -1</P>
<P>at org.eclipse.swt.ole.win32.OLE.error(OLE.java:332)</P>
<P>at =
org.eclipse.swt.ole.win32.Variant.getAutomation(Variant.java :200) </P>
<P>at Main.ShellExplorer.&lt;init&gt;(ShellExplorer.java:3 8) </P>
<P>at Main.ShellExplorer.main(ShellExplorer.java:52)</P>
<P>Exception in thread "main" </P></FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>/*****Program********/</FONT></DIV>
<DIV><B><FONT color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.SWT;</FONT></P>
<P><B><FONT color=3D#7f0055 size=3D2>import</B></FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 =
size=3D2>org.eclipse.swt.layout.RowLayout;</P></FONT><B> <FONT=20
color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OLE;</P></FONT><B><FONT =
color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OleAutomation;</P></FONT ><B><FONT=20
color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OleControlSite;</P></FONT ><B><FONT=20
color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OleFrame;</P></FONT><B ><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.Variant;</P></FONT><B ><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.widgets.Display;</P></FONT><B><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.widgets.Shell;</P></FONT><FONT =
size=3D2></FONT><B><FONT=20
color=3D#7f0055 size=3D2>
<P>public</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>class</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>ShellExplorer</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>{</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>static</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000 =

size=3D2>Display</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>display;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>static</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000 =

size=3D2>Shell</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>shell;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleAutomation</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>automationHtml;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleControlSite</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>controlSiteHtml;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleFrame</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>oleFrameHtml;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>public</B></FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>ShellExplorer(){</P></FONT><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
oleFrameHtml</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleFrame(shell,</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>SWT.NONE);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleControlSite(oleFrameHtml,</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>SWT.NONE,</FONT><FONT size=3D2> </FONT><FONT =
color=3D#2a00ff=20
size=3D2>"Shell.Explorer"</FONT><FONT color=3D#000000 =
size=3D2>);</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#3f7f5f =
size=3D2>//webbrowser</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml.setSize(100,</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>100);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml.doVerb(OLE.OLEIVERB_SHOW);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);</P></FONT ><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
automationHtml</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleAutomation(controlSiteHtml);</P></FONT><FONT size=3D2>
<P>&nbsp;</P>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
int</B></FONT><FONT=20
color=3D#000000 size=3D2>[]</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>rgdispid</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>automationHtml.getIDsOfNames(</FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>String[]{</FONT><FONT color=3D#2a00ff =
size=3D2>"Document"</FONT><FONT=20
color=3D#000000 size=3D2>});</FONT><FONT size=3D2> </FONT><FONT =
color=3D#3f7f5f=20
size=3D2>//get a document</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
int</B></FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 =
size=3D2>dispIdMember</FONT><FONT size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>rgdispid[0];</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
Variant</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 =
size=3D2>varDocument</FONT><FONT size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 =
size=3D2>automationHtml.getProperty(dispIdMember);</P></FONT ><FONT=20
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
OleAutomation</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>doc</FONT><FONT size=3D2> </FONT><FONT color=3D#000000 =
size=3D2>=3D</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>varDocument.getAutomation();</P></FONT><FONT size=3D2>
<P></P>
<P></P>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
int</B></FONT><FONT=20
color=3D#000000 size=3D2>[]</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>rgdispid2</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>doc.getIDsOfNames(</FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>String[]{</FONT><FONT color=3D#2a00ff =
size=3D2>"write"</FONT><FONT=20
color=3D#000000 size=3D2>});</FONT><FONT size=3D2> </FONT><FONT =
color=3D#3f7f5f=20
size=3D2>//write in a document</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
Variant[]</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>rgvarg</FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> =
</FONT><B><FONT=20
color=3D#7f0055 size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>Variant[1];</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
rgvarg[0]</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>new</B></FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>Variant(</FONT><FONT color=3D#2a00ff=20
size=3D2>"&lt;body&gt;browser&lt;/body&gt;" </FONT><FONT =
color=3D#000000=20
size=3D2>);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
automationHtml.invoke(rgdispid2[0],</FONT><FONT size=3D2> </FONT><FONT =

color=3D#000000 size=3D2>rgvarg);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>}</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>public</B></FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>static</B></FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>void</B></FONT><FONT =
size=3D2> </FONT><FONT=20
color=3D#000000 size=3D2>main</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>(String</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>[]</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>args)</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>{</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
display</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>new</B></FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>Display</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
shell</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>new</B></FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>Shell</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>(display);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
RowLayout</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>fl</FONT><FONT =
size=3D2> </FONT><FONT=20
color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT =
color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>RowLayout();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
shell.setLayout(fl);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
ShellExplorer</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>se</FONT><FONT size=3D2> </FONT><FONT color=3D#000000 =
size=3D2>=3D</FONT><FONT=20
size=3D2> </FONT><B><FONT color=3D#7f0055 size=3D2>new</B></FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>ShellExplorer();</P></FONT><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
shell.pack</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>();</P></FONT><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
shell.open</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>();</P></FONT><FONT =
size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
while</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>(!shell.isDisposed</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>())</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>{</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
if</B></FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>(!display.readAndDispatch</FONT><FONT size=3D2> </FONT><FONT=20
color=3D#000000 size=3D2>())</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>display.sleep</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
}</P></FONT><FONT=20
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
display.dispose</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; }</P>
<P>}</P></FONT><FONT face=3DArial =
size=3D2></FONT></DIV></BLOCKQUOTE></BODY></HTML>

------=_NextPart_000_025F_01C3511F.4AFBFC50--
Re: org.eclipse.swt.SWTException: Failed to change Variant type result = -1 [message #371948 is a reply to message #371913] Thu, 24 July 2003 17:01 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: asra.choukri.hyperoffice.fr

C'est un message de format MIME en plusieurs parties.

------=_NextPart_000_0015_01C35215.F717F880
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Thanks, for your response. I will try.

Asra.
"Veronika Irvine" <veronika_irvine@oti.com> a =E9crit dans le message =
news: bfmh13$jim$1@eclipse.org...
Your varDocument does not contain a VT_DISPATCH object. It probably =
contains nothing (VT_EMPTY).

Shell.Explorer will not return a valid document until you have opened =
a valid URL or loaded a valid file.

Try calling the GoHome method or the Navigate method first.

See org.eclipse.swt.win32.ole for an example.
"asra" <asra.choukri@hyperoffice.fr> wrote in message =
news:bfm114$tr0$1@eclipse.org...
Hi !!

I try to run this program which must write in a brower a text HTML.
When I run it, I get an exception when i try to execute this =
command:
"OleAutomation doc =3D varDocument.getAutomation();"

Any ideas ?
Thanks.


/*****Exception********/

org.eclipse.swt.SWTException: Failed to change Variant type result =
=3D -1

at org.eclipse.swt.ole.win32.OLE.error(OLE.java:332)

at org.eclipse.swt.ole.win32.Variant.getAutomation(Variant.java :200)

at Main.ShellExplorer.<init>(ShellExplorer.java:38)

at Main.ShellExplorer.main(ShellExplorer.java:52)

Exception in thread "main"=20



/*****Program********/
import org.eclipse.swt.SWT;

import org.eclipse.swt.layout.RowLayout;

import org.eclipse.swt.ole.win32.OLE;

import org.eclipse.swt.ole.win32.OleAutomation;

import org.eclipse.swt.ole.win32.OleControlSite;

import org.eclipse.swt.ole.win32.OleFrame;

import org.eclipse.swt.ole.win32.Variant;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

public class ShellExplorer {

protected static Display display;

protected static Shell shell;

protected OleAutomation automationHtml;

protected OleControlSite controlSiteHtml;

protected OleFrame oleFrameHtml;

public ShellExplorer(){

oleFrameHtml =3D new OleFrame(shell, SWT.NONE);

controlSiteHtml =3D new OleControlSite(oleFrameHtml, SWT.NONE, =
"Shell.Explorer"); //webbrowser

controlSiteHtml.setSize(100, 100);

controlSiteHtml.doVerb(OLE.OLEIVERB_SHOW);

controlSiteHtml.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);

automationHtml =3D new OleAutomation(controlSiteHtml);



int[] rgdispid =3D automationHtml.getIDsOfNames(new =
String[]{"Document"}); //get a document

int dispIdMember =3D rgdispid[0];

Variant varDocument =3D =
automationHtml.getProperty(dispIdMember);

OleAutomation doc =3D varDocument.getAutomation();



int[] rgdispid2 =3D doc.getIDsOfNames(new String[]{"write"}); =
//write in a document

Variant[] rgvarg =3D new Variant[1];

rgvarg[0] =3D new Variant("<body>browser</body>");

automationHtml.invoke(rgdispid2[0], rgvarg);

}

public static void main (String [] args) {

display =3D new Display ();

shell =3D new Shell (display);

RowLayout fl =3D new RowLayout();

shell.setLayout(fl);

ShellExplorer se =3D new ShellExplorer();

shell.pack ();

shell.open ();

while (!shell.isDisposed ()) {

if (!display.readAndDispatch ()) display.sleep ();

}

display.dispose ();

}

}


------=_NextPart_000_0015_01C35215.F717F880
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4134.600" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV>
<DIV><FONT face=3DArial size=3D2>Thanks, for your response. I will =
try.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Asra.</FONT></DIV></DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Veronika Irvine" &lt;<A=20
=
href=3D"mailto:veronika_irvine@oti.com">veronika_irvine@oti.com</A>&gt; =
a =E9crit=20
dans le message news: <A=20
=
href=3D"mailto:bfmh13$jim$1@eclipse.org">bfmh13$jim$1@eclipse.org</A>...<=
/DIV>
<DIV><FONT face=3DArial size=3D2>Your varDocument does not contain a =
VT_DISPATCH=20
object.&nbsp; It probably contains nothing (VT_EMPTY).</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Shell.Explorer will not return a =
valid document=20
until you have opened a valid URL or loaded a valid file.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Try calling the GoHome method or the =
Navigate=20
method first.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>See org.eclipse.swt.win32.ole for an=20
example.</FONT></DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"asra" &lt;<A=20
=
href=3D"mailto:asra.choukri@hyperoffice.fr">asra.choukri@hyperoffice.fr</=
A>&gt;=20
wrote in message <A=20
=
href=3D"news:bfm114$tr0$1@eclipse.org">news:bfm114$tr0$1@eclipse.org</A>.=
...</DIV>
<DIV>Hi !!</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV>I try to run this program which must write in a brower a text=20
HTML.</DIV>
<DIV><FONT face=3DArial size=3D2>When I run it,&nbsp;I get an =
exception when i=20
try to execute this command:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp; "<FONT=20
color=3D#000000 size=3D2>OleAutomation</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>doc</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>varDocument.getAutomation();"</FONT></FONT></DIV >
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV>Any ideas ?<BR>Thanks.<BR></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial =
size=3D2>/*****Exception********/</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><FONT color=3D#ff0000 size=3D2>
<P>org.eclipse.swt.SWTException: Failed to change Variant type =
result =3D=20
-1</P>
<P>at org.eclipse.swt.ole.win32.OLE.error(OLE.java:332)</P>
<P>at =
org.eclipse.swt.ole.win32.Variant.getAutomation(Variant.java :200) </P>
<P>at Main.ShellExplorer.&lt;init&gt;(ShellExplorer.java:3 8) </P>
<P>at Main.ShellExplorer.main(ShellExplorer.java:52)</P>
<P>Exception in thread "main" </P></FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>/*****Program********/</FONT></DIV>
<DIV><B><FONT color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.SWT;</FONT></P>
<P><B><FONT color=3D#7f0055 size=3D2>import</B></FONT><FONT =
size=3D2> </FONT><FONT=20
color=3D#000000 =
size=3D2>org.eclipse.swt.layout.RowLayout;</P></FONT><B> <FONT=20
color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OLE;</P></FONT><B><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OleAutomation;</P></FONT ><B><FONT =

color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
=
size=3D2>org.eclipse.swt.ole.win32.OleControlSite;</P></FONT ><B><FONT=20
color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OleFrame;</P></FONT><B ><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.Variant;</P></FONT><B ><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.widgets.Display;</P></FONT><B><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.widgets.Shell;</P></FONT><FONT =
size=3D2></FONT><B><FONT=20
color=3D#7f0055 size=3D2>
<P>public</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>class</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>ShellExplorer</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>{</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>static</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>Display</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>display;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>static</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>Shell</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>shell;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleAutomation</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>automationHtml;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleControlSite</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>controlSiteHtml;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleFrame</FONT><FONT size=3D2> </FONT><FONT color=3D#000000 =

size=3D2>oleFrameHtml;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>public</B></FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 =
size=3D2>ShellExplorer(){</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
oleFrameHtml</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleFrame(shell,</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>SWT.NONE);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleControlSite(oleFrameHtml,</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>SWT.NONE,</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#2a00ff size=3D2>"Shell.Explorer"</FONT><FONT =
color=3D#000000=20
size=3D2>);</FONT><FONT size=3D2> </FONT><FONT color=3D#3f7f5f=20
size=3D2>//webbrowser</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml.setSize(100,</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>100);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml.doVerb(OLE.OLEIVERB_SHOW);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
=
controlSiteHtml.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);</P></FONT ><FONT=20
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
automationHtml</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleAutomation(controlSiteHtml);</P></FONT><FONT size=3D2>
<P>&nbsp;</P>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
int</B></FONT><FONT color=3D#000000 size=3D2>[]</FONT><FONT =
size=3D2> </FONT><FONT=20
color=3D#000000 size=3D2>rgdispid</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>automationHtml.getIDsOfNames(</FONT><B><FONT =
color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>String[]{</FONT><FONT color=3D#2a00ff =
size=3D2>"Document"</FONT><FONT=20
color=3D#000000 size=3D2>});</FONT><FONT size=3D2> </FONT><FONT =
color=3D#3f7f5f=20
size=3D2>//get a document</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
int</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>dispIdMember</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>rgdispid[0];</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
Variant</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 =
size=3D2>varDocument</FONT><FONT size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000=20
size=3D2>automationHtml.getProperty(dispIdMember);</P></FONT ><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
OleAutomation</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>doc</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>varDocument.getAutomation();</P></FONT><FONT size=3D2>
<P></P>
<P></P>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
int</B></FONT><FONT color=3D#000000 size=3D2>[]</FONT><FONT =
size=3D2> </FONT><FONT=20
color=3D#000000 size=3D2>rgdispid2</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>doc.getIDsOfNames(</FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>String[]{</FONT><FONT color=3D#2a00ff =
size=3D2>"write"</FONT><FONT=20
color=3D#000000 size=3D2>});</FONT><FONT size=3D2> </FONT><FONT =
color=3D#3f7f5f=20
size=3D2>//write in a document</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
Variant[]</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>rgvarg</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>Variant[1];</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
rgvarg[0]</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>Variant(</FONT><FONT color=3D#2a00ff=20
size=3D2>"&lt;body&gt;browser&lt;/body&gt;" </FONT><FONT =
color=3D#000000=20
size=3D2>);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
automationHtml.invoke(rgdispid2[0],</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>rgvarg);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>}</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>public</B></FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>static</B></FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>void</B></FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>main</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>(String</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>[]</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>args)</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>{</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
display</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>new</B></FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>Display</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
shell</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>new</B></FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>Shell</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>(display);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
RowLayout</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>fl</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>RowLayout();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
shell.setLayout(fl);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
ShellExplorer</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>se</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>ShellExplorer();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
shell.pack</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
shell.open</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
while</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>(!shell.isDisposed</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>())</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>{</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
if</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>(!display.readAndDispatch</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>())</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>display.sleep</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
}</P></FONT><FONT=20
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
display.dispose</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; }</P>
<P>}</P></FONT><FONT face=3DArial=20
size=3D2></FONT></DIV></BLOCKQUOTE></BLOCKQUOTE></BODY> </HTML>

------=_NextPart_000_0015_01C35215.F717F880--
Re: org.eclipse.swt.SWTException: Failed to change Variant type result = -1 [message #372033 is a reply to message #371913] Mon, 28 July 2003 07:54 Go to previous message
Eclipse UserFriend
Originally posted by: asra.choukri.hyperoffice.fr

C'est un message de format MIME en plusieurs parties.

------=_NextPart_000_0014_01C354EE.2EA1C850
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable


Hi!

I used the Navigate method to regulate the exception Thanks.
But now, the problem is that I can't still write anythinks in my page =
HTML.

I don't know where goes wrong!
thank for your help.

Asra.


/********************************/
import org.eclipse.swt.SWT;

import org.eclipse.swt.layout.RowLayout;

import org.eclipse.swt.ole.win32.OLE;

import org.eclipse.swt.ole.win32.OleAutomation;

import org.eclipse.swt.ole.win32.OleControlSite;

import org.eclipse.swt.ole.win32.OleFrame;

import org.eclipse.swt.ole.win32.Variant;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

public class ShellExplorer {

protected static Display display;

protected static Shell shell;

protected OleAutomation automationHtml;

protected OleControlSite controlSiteHtml;

protected OleFrame oleFrameHtml;

public ShellExplorer(){

oleFrameHtml =3D new OleFrame(shell, SWT.NONE);

controlSiteHtml =3D new OleControlSite(oleFrameHtml, SWT.NONE, =
"Shell.Explorer"); //webbrowser

controlSiteHtml.setSize(100, 100);

controlSiteHtml.doVerb(OLE.OLEIVERB_SHOW);

controlSiteHtml.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);

automationHtml =3D new OleAutomation(controlSiteHtml);

int[] ids =3D automationHtml.getIDsOfNames(new String[]{"Navigate", =
"URL"});=20

Variant[] rgvarg =3D new Variant[] {new Variant("C:\\toto.html")};

int[] rgdispidNamedArgs =3D new int[]{ids[1]};

automationHtml.invoke(ids[0], rgvarg, rgdispidNamedArgs);


int[] rgdispid =3D automationHtml.getIDsOfNames(new =
String[]{"Document"}); //get a document

int dispIdMember =3D rgdispid[0];

Variant varDocument =3D automationHtml.getProperty(dispIdMember);

OleAutomation doc =3D varDocument.getAutomation();



int[] rgdispid2 =3D doc.getIDsOfNames(new String[]{"write"}); =
//write in a document

Variant[] rgvarg2 =3D new Variant[1];

rgvarg2[0] =3D new Variant("I'm here");

automationHtml.invoke(rgdispid2[0], rgvarg2);




}

public static void main (String [] args) {

display =3D new Display ();

shell =3D new Shell (display);

RowLayout fl =3D new RowLayout();

shell.setLayout(fl);

ShellExplorer se =3D new ShellExplorer();

shell.pack ();

shell.open ();

while (!shell.isDisposed ()) {

if (!display.readAndDispatch ()) display.sleep ();

}

display.dispose ();

}

}




/********************************/







"Veronika Irvine" <veronika_irvine@oti.com> a =E9crit dans le message =
news: bfmh13$jim$1@eclipse.org...
Your varDocument does not contain a VT_DISPATCH object. It probably =
contains nothing (VT_EMPTY).

Shell.Explorer will not return a valid document until you have opened =
a valid URL or loaded a valid file.

Try calling the GoHome method or the Navigate method first.

See org.eclipse.swt.win32.ole for an example.
"asra" <asra.choukri@hyperoffice.fr> wrote in message =
news:bfm114$tr0$1@eclipse.org...
Hi !!

I try to run this program which must write in a brower a text HTML.
When I run it, I get an exception when i try to execute this =
command:
"OleAutomation doc =3D varDocument.getAutomation();"

Any ideas ?
Thanks.


/*****Exception********/

org.eclipse.swt.SWTException: Failed to change Variant type result =
=3D -1

at org.eclipse.swt.ole.win32.OLE.error(OLE.java:332)

at org.eclipse.swt.ole.win32.Variant.getAutomation(Variant.java :200)

at Main.ShellExplorer.<init>(ShellExplorer.java:38)

at Main.ShellExplorer.main(ShellExplorer.java:52)

Exception in thread "main"=20



/*****Program********/
import org.eclipse.swt.SWT;

import org.eclipse.swt.layout.RowLayout;

import org.eclipse.swt.ole.win32.OLE;

import org.eclipse.swt.ole.win32.OleAutomation;

import org.eclipse.swt.ole.win32.OleControlSite;

import org.eclipse.swt.ole.win32.OleFrame;

import org.eclipse.swt.ole.win32.Variant;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

public class ShellExplorer {

protected static Display display;

protected static Shell shell;

protected OleAutomation automationHtml;

protected OleControlSite controlSiteHtml;

protected OleFrame oleFrameHtml;

public ShellExplorer(){

oleFrameHtml =3D new OleFrame(shell, SWT.NONE);

controlSiteHtml =3D new OleControlSite(oleFrameHtml, SWT.NONE, =
"Shell.Explorer"); //webbrowser

controlSiteHtml.setSize(100, 100);

controlSiteHtml.doVerb(OLE.OLEIVERB_SHOW);

controlSiteHtml.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);

automationHtml =3D new OleAutomation(controlSiteHtml);



int[] rgdispid =3D automationHtml.getIDsOfNames(new =
String[]{"Document"}); //get a document

int dispIdMember =3D rgdispid[0];

Variant varDocument =3D =
automationHtml.getProperty(dispIdMember);

OleAutomation doc =3D varDocument.getAutomation();



int[] rgdispid2 =3D doc.getIDsOfNames(new String[]{"write"}); =
//write in a document

Variant[] rgvarg =3D new Variant[1];

rgvarg[0] =3D new Variant("<body>browser</body>");

automationHtml.invoke(rgdispid2[0], rgvarg);

}

public static void main (String [] args) {

display =3D new Display ();

shell =3D new Shell (display);

RowLayout fl =3D new RowLayout();

shell.setLayout(fl);

ShellExplorer se =3D new ShellExplorer();

shell.pack ();

shell.open ();

while (!shell.isDisposed ()) {

if (!display.readAndDispatch ()) display.sleep ();

}

display.dispose ();

}

}


------=_NextPart_000_0014_01C354EE.2EA1C850
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4134.600" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Hi!</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>I used the&nbsp;Navigate method to =
regulate the=20
exception Thanks.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>But now, the problem is that I can't=20
still&nbsp;write&nbsp;anythinks in my page HTML.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><FONT face=3D"Times New Roman" =
size=3D3>I don't know=20
where goes wrong!</FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><FONT face=3D"Times New Roman" =
size=3D3>thank for your=20
help.</FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><FONT face=3D"Times New Roman"=20
size=3D3></FONT></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><FONT face=3D"Times New Roman"=20
size=3D3>Asra.</FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><FONT face=3D"Times New Roman"=20
size=3D3></FONT></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><FONT face=3D"Times New Roman"=20
size=3D3></FONT></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><FONT face=3D"Times New Roman"=20
size=3D3>/********************************/</FONT></FONT> </DIV>
<DIV><B><FONT color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.SWT;</P></FONT><B><FONT color=3D#7f0055 =
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.layout.RowLayout;</P></FONT><B> <FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OLE;</P></FONT><B><FONT =
color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OleAutomation;</P></FONT ><B><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OleControlSite;</P></FONT ><B><FONT=20
color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OleFrame;</P></FONT><B ><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.Variant;</P></FONT><B ><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.widgets.Display;</P></FONT><B><FONT =
color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.widgets.Shell;</P></FONT><FONT =
size=3D2></FONT><B><FONT=20
color=3D#7f0055 size=3D2>
<P>public</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>class</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>ShellExplorer</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>{</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>static</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>Display</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>display;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>static</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>Shell</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>shell;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleAutomation</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>automationHtml;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleControlSite</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>controlSiteHtml;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleFrame</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>oleFrameHtml;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>public</B></FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>ShellExplorer(){</P></FONT><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
oleFrameHtml</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT =
size=3D2> </FONT><B><FONT=20
color=3D#7f0055 size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>OleFrame(shell,</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>SWT.NONE);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleControlSite(oleFrameHtml,</FONT><FONT size=3D2> </FONT><FONT =

color=3D#000000 size=3D2>SWT.NONE,</FONT><FONT size=3D2> </FONT><FONT =
color=3D#2a00ff=20
size=3D2>"Shell.Explorer"</FONT><FONT color=3D#000000 =
size=3D2>);</FONT><FONT size=3D2>=20
</FONT><FONT color=3D#3f7f5f size=3D2>//webbrowser</P></FONT><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml.setSize(100,</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>100);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml.doVerb(OLE.OLEIVERB_SHOW);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);</P></FONT ><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
automationHtml</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleAutomation(controlSiteHtml);</FONT></P><FONT color=3D#000000 =

size=3D2><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
int</B></FONT><FONT=20
color=3D#000000 size=3D2>[]</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>ids</FONT><FONT size=3D2> </FONT><FONT color=3D#000000 =
size=3D2>=3D</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>automationHtml.getIDsOfNames(</FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>String[]{</FONT><FONT color=3D#2a00ff =
size=3D2>"Navigate"</FONT><FONT=20
color=3D#000000 size=3D2>,</FONT><FONT size=3D2> </FONT><FONT =
color=3D#2a00ff=20
size=3D2>"URL"</FONT><FONT color=3D#000000 size=3D2>});</FONT><FONT =
size=3D2> </P>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
Variant[]</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>rgvarg</FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> =
</FONT><B><FONT=20
color=3D#7f0055 size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>Variant[]</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>{</FONT><B><FONT color=3D#7f0055 size=3D2>new</B></FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>Variant(</FONT><FONT =
color=3D#2a00ff=20
size=3D2>"C:\\toto.html"</FONT><FONT color=3D#000000 =
size=3D2>)};</P></FONT><FONT=20
size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
int</B></FONT><FONT=20
color=3D#000000 size=3D2>[]</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>rgdispidNamedArgs</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>int</B></FONT><FONT color=3D#000000 =
size=3D2>[]{ids[1]};</P></FONT><FONT=20
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
automationHtml.invoke(ids[0],</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>rgvarg,</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>rgdispidNamedArgs);</P></FONT><FONT size=3D2>
<P></P>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
int</B></FONT><FONT=20
color=3D#000000 size=3D2>[]</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>rgdispid</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>automationHtml.getIDsOfNames(</FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>String[]{</FONT><FONT color=3D#2a00ff =
size=3D2>"Document"</FONT><FONT=20
color=3D#000000 size=3D2>});</FONT><FONT size=3D2> </FONT><FONT =
color=3D#3f7f5f=20
size=3D2>//get a document</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
int</B></FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>dispIdMember</FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>rgdispid[0];</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
Variant</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>varDocument</FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 =
size=3D2>automationHtml.getProperty(dispIdMember);</P></FONT ><FONT=20
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
OleAutomation</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>doc</FONT><FONT size=3D2> </FONT><FONT color=3D#000000 =
size=3D2>=3D</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>varDocument.getAutomation();</P></FONT><FONT size=3D2>
<P></P>
<P></P>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
int</B></FONT><FONT=20
color=3D#000000 size=3D2>[]</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>rgdispid2</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>doc.getIDsOfNames(</FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>String[]{</FONT><FONT color=3D#2a00ff =
size=3D2>"write"</FONT><FONT=20
color=3D#000000 size=3D2>});</FONT><FONT size=3D2> </FONT><FONT =
color=3D#3f7f5f=20
size=3D2>//write in a document</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
Variant[]</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>rgvarg2</FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> =
</FONT><B><FONT=20
color=3D#7f0055 size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>Variant[1];</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
rgvarg2[0]</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT =
size=3D2> </FONT><B><FONT=20
color=3D#7f0055 size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>Variant(</FONT><FONT color=3D#2a00ff size=3D2>"I'm =
here"</FONT><FONT=20
color=3D#000000 size=3D2>);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
automationHtml.invoke(rgdispid2[0],</FONT><FONT size=3D2> </FONT><FONT=20
color=3D#000000 size=3D2>rgvarg2);</P></FONT><FONT size=3D2>
<P></P>
<P></P>
<P></P>
<P></FONT><FONT color=3D#000000 size=3D2>}</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>public</B></FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>static</B></FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>void</B></FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>main</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>(String</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>[]</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>args)</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>{</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
display</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT =
size=3D2> </FONT><B><FONT=20
color=3D#7f0055 size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>Display</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
shell</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT =
size=3D2> </FONT><B><FONT=20
color=3D#7f0055 size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>Shell</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>(display);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
RowLayout</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>fl</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT =
color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>RowLayout();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
shell.setLayout(fl);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
ShellExplorer</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>se</FONT><FONT size=3D2> </FONT><FONT color=3D#000000 =
size=3D2>=3D</FONT><FONT=20
size=3D2> </FONT><B><FONT color=3D#7f0055 size=3D2>new</B></FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>ShellExplorer();</P></FONT><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
shell.pack</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>();</P></FONT><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
shell.open</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>();</P></FONT><FONT =
size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
while</B></FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 =
size=3D2>(!shell.isDisposed</FONT><FONT size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>())</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>{</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp; =
if</B></FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 =
size=3D2>(!display.readAndDispatch</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>())</FONT><FONT =
size=3D2> </FONT><FONT=20
color=3D#000000 size=3D2>display.sleep</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
}</P></FONT><FONT=20
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
display.dispose</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; }</P>
<P>}</P></FONT></FONT>
<P><FONT color=3D#000000 size=3D2><FONT =
face=3DArial></FONT>&nbsp;</P></FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>
<DIV><FONT face=3DArial size=3D2><FONT face=3D"Times New Roman"=20
size=3D3>/********************************/</FONT></FONT> </DIV></FONT><FO=
NT=20
face=3DArial size=3D2></FONT></DIV>
<DIV><FONT face=3DArial><BR><FONT size=3D2></FONT></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Veronika Irvine" &lt;<A=20
=
href=3D"mailto:veronika_irvine@oti.com">veronika_irvine@oti.com</A>&gt; =
a =E9crit=20
dans le message news: <A=20
=
href=3D"mailto:bfmh13$jim$1@eclipse.org">bfmh13$jim$1@eclipse.org</A>...<=
/DIV>
<DIV><FONT face=3DArial size=3D2>Your varDocument does not contain a =
VT_DISPATCH=20
object.&nbsp; It probably contains nothing (VT_EMPTY).</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Shell.Explorer will not return a =
valid document=20
until you have opened a valid URL or loaded a valid file.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Try calling the GoHome method or the =
Navigate=20
method first.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>See org.eclipse.swt.win32.ole for an=20
example.</FONT></DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"asra" &lt;<A=20
=
href=3D"mailto:asra.choukri@hyperoffice.fr">asra.choukri@hyperoffice.fr</=
A>&gt;=20
wrote in message <A=20
=
href=3D"news:bfm114$tr0$1@eclipse.org">news:bfm114$tr0$1@eclipse.org</A>.=
...</DIV>
<DIV>Hi !!</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV>I try to run this program which must write in a brower a text=20
HTML.</DIV>
<DIV><FONT face=3DArial size=3D2>When I run it,&nbsp;I get an =
exception when i=20
try to execute this command:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp; "<FONT=20
color=3D#000000 size=3D2>OleAutomation</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>doc</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>varDocument.getAutomation();"</FONT></FONT></DIV >
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV>Any ideas ?<BR>Thanks.<BR></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial =
size=3D2>/*****Exception********/</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><FONT color=3D#ff0000 size=3D2>
<P>org.eclipse.swt.SWTException: Failed to change Variant type =
result =3D=20
-1</P>
<P>at org.eclipse.swt.ole.win32.OLE.error(OLE.java:332)</P>
<P>at =
org.eclipse.swt.ole.win32.Variant.getAutomation(Variant.java :200) </P>
<P>at Main.ShellExplorer.&lt;init&gt;(ShellExplorer.java:3 8) </P>
<P>at Main.ShellExplorer.main(ShellExplorer.java:52)</P>
<P>Exception in thread "main" </P></FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>/*****Program********/</FONT></DIV>
<DIV><B><FONT color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.SWT;</FONT></P>
<P><B><FONT color=3D#7f0055 size=3D2>import</B></FONT><FONT =
size=3D2> </FONT><FONT=20
color=3D#000000 =
size=3D2>org.eclipse.swt.layout.RowLayout;</P></FONT><B> <FONT=20
color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OLE;</P></FONT><B><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OleAutomation;</P></FONT ><B><FONT =

color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
=
size=3D2>org.eclipse.swt.ole.win32.OleControlSite;</P></FONT ><B><FONT=20
color=3D#7f0055 size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.OleFrame;</P></FONT><B ><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.ole.win32.Variant;</P></FONT><B ><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.widgets.Display;</P></FONT><B><FONT =
color=3D#7f0055=20
size=3D2>
<P>import</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>org.eclipse.swt.widgets.Shell;</P></FONT><FONT =
size=3D2></FONT><B><FONT=20
color=3D#7f0055 size=3D2>
<P>public</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>class</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>ShellExplorer</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>{</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>static</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>Display</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>display;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>static</B></FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>Shell</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>shell;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleAutomation</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>automationHtml;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleControlSite</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>controlSiteHtml;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
protected</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleFrame</FONT><FONT size=3D2> </FONT><FONT color=3D#000000 =

size=3D2>oleFrameHtml;</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>public</B></FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 =
size=3D2>ShellExplorer(){</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
oleFrameHtml</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleFrame(shell,</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>SWT.NONE);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleControlSite(oleFrameHtml,</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>SWT.NONE,</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#2a00ff size=3D2>"Shell.Explorer"</FONT><FONT =
color=3D#000000=20
size=3D2>);</FONT><FONT size=3D2> </FONT><FONT color=3D#3f7f5f=20
size=3D2>//webbrowser</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml.setSize(100,</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>100);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
controlSiteHtml.doVerb(OLE.OLEIVERB_SHOW);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
=
controlSiteHtml.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);</P></FONT ><FONT=20
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
automationHtml</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>OleAutomation(controlSiteHtml);</P></FONT><FONT size=3D2>
<P>&nbsp;</P>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
int</B></FONT><FONT color=3D#000000 size=3D2>[]</FONT><FONT =
size=3D2> </FONT><FONT=20
color=3D#000000 size=3D2>rgdispid</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>automationHtml.getIDsOfNames(</FONT><B><FONT =
color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>String[]{</FONT><FONT color=3D#2a00ff =
size=3D2>"Document"</FONT><FONT=20
color=3D#000000 size=3D2>});</FONT><FONT size=3D2> </FONT><FONT =
color=3D#3f7f5f=20
size=3D2>//get a document</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
int</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>dispIdMember</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>rgdispid[0];</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
Variant</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 =
size=3D2>varDocument</FONT><FONT size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000=20
size=3D2>automationHtml.getProperty(dispIdMember);</P></FONT ><FONT =
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
OleAutomation</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>doc</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>varDocument.getAutomation();</P></FONT><FONT size=3D2>
<P></P>
<P></P>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
int</B></FONT><FONT color=3D#000000 size=3D2>[]</FONT><FONT =
size=3D2> </FONT><FONT=20
color=3D#000000 size=3D2>rgdispid2</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>=3D</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>doc.getIDsOfNames(</FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>String[]{</FONT><FONT color=3D#2a00ff =
size=3D2>"write"</FONT><FONT=20
color=3D#000000 size=3D2>});</FONT><FONT size=3D2> </FONT><FONT =
color=3D#3f7f5f=20
size=3D2>//write in a document</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
Variant[]</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>rgvarg</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>Variant[1];</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
rgvarg[0]</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>Variant(</FONT><FONT color=3D#2a00ff=20
size=3D2>"&lt;body&gt;browser&lt;/body&gt;" </FONT><FONT =
color=3D#000000=20
size=3D2>);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
automationHtml.invoke(rgdispid2[0],</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>rgvarg);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>}</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>public</B></FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>static</B></FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>void</B></FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>main</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>(String</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>[]</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>args)</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>{</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
display</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>new</B></FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>Display</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
shell</FONT><FONT=20
size=3D2> </FONT><FONT color=3D#000000 size=3D2>=3D</FONT><FONT =
size=3D2>=20
</FONT><B><FONT color=3D#7f0055 size=3D2>new</B></FONT><FONT =
size=3D2>=20
</FONT><FONT color=3D#000000 size=3D2>Shell</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>(display);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
RowLayout</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>fl</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>RowLayout();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
shell.setLayout(fl);</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
ShellExplorer</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>se</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>=3D</FONT><FONT size=3D2> </FONT><B><FONT color=3D#7f0055=20
size=3D2>new</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>ShellExplorer();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
shell.pack</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
shell.open</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
while</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>(!shell.isDisposed</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>())</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>{</P></FONT><FONT size=3D2>
<P></FONT><B><FONT color=3D#7f0055 size=3D2>&nbsp;&nbsp;&nbsp;=20
if</B></FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>(!display.readAndDispatch</FONT><FONT size=3D2> =
</FONT><FONT=20
color=3D#000000 size=3D2>())</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>display.sleep</FONT><FONT size=3D2> </FONT><FONT =
color=3D#000000=20
size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; =
}</P></FONT><FONT=20
size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp;=20
display.dispose</FONT><FONT size=3D2> </FONT><FONT color=3D#000000=20
size=3D2>();</P></FONT><FONT size=3D2>
<P></FONT><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; }</P>
<P>}</P></FONT><FONT face=3DArial=20
size=3D2></FONT></DIV></BLOCKQUOTE></BLOCKQUOTE></BODY> </HTML>

------=_NextPart_000_0014_01C354EE.2EA1C850--
Previous Topic:difference btwn MultiPageEditorPart vs MultiEditor?
Next Topic:question of running SWT example
Goto Forum:
  


Current Time: Fri Apr 19 23:24:23 GMT 2024

Powered by FUDForum. Page generated in 0.03788 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top