Urgent - Update of Windows - DOM-OleAutamation [message #450349] |
Thu, 10 February 2005 17:56 |
Eclipse User |
|
|
|
Originally posted by: asra.choukri.hyperoffice.fr
Since, I installed the last ones update of Windows, the following program
doesn't work any more. Before the updates, It always worked.
I don't recover any more DOM of my OleAutamation. it's null.
I work with version 2.1 of eclipse
this problem exist on Windows 2000 and Windows XP - SP2
Here a program :
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
OleFrame oleFrameHtml = new OleFrame(shell, SWT.BORDER);
final OleControlSite controlSiteHtml = new
OleControlSite(oleFrameHtml,SWT.NONE, "DHTMLEdit.DHTMLEdit");
controlSiteHtml.doVerb(OLE.OLEIVERB_SHOW);
final OleAutomation objIDHTMLEdit = new OleAutomation(controlSiteHtml);
int[] rgdispid = objIDHTMLEdit.getIDsOfNames(new
String[]{"LoadDocument","pathIn", "promptUser"});
int dispIdMember = rgdispid[0];
Variant[] rgvarg = new Variant[2];
int[] rgdispidNamedArgs = new int[2];
rgvarg[0] = new Variant("C:\\abc2.html");
rgdispidNamedArgs[0] = rgdispid[1];rgvarg[1] = new Variant(1);
rgdispidNamedArgs[1] = rgdispid[2];
objIDHTMLEdit.invoke(dispIdMember, rgvarg, rgdispidNamedArgs);
Button b = new Button(shell, SWT.PUSH);
b.setText("Showtext");
b.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
System.out.println(innerHTMLOfOLE(objIDHTMLEdit));
}
public void widgetDefaultSelected(SelectionEvent e) {
widgetSelected(e);
}
});
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
objIDHTMLEdit.dispose();
display.dispose();
}
public static String innerHTMLOfOLE(OleAutomation automationHtml){
try{
TypeInfo.printTypeInfo(automationHtml);
int[] rgdispid = automationHtml.getIDsOfNames(new String[]{"DOM"});
Variant pVarResult = automationHtml.getProperty(rgdispid[0]);
======> pVarResult IS ALWAYS NULL NOW
if (pVarResult != null && pVarResult.getType() != OLE.VT_EMPTY) {
OleAutomation objIHTMLDocument = pVarResult.getAutomation();
pVarResult.dispose();
rgdispid = objIHTMLDocument.getIDsOfNames(new String[]{"body"});
pVarResult = objIHTMLDocument.getProperty(rgdispid[0]);
if (pVarResult != null && pVarResult.getType() != OLE.VT_EMPTY) {
OleAutomation objIHTMLbody = pVarResult.getAutomation();
pVarResult.dispose();
rgdispid = objIHTMLbody.getIDsOfNames(new String[]{"innerHTML"});
pVarResult = objIHTMLbody.getProperty(rgdispid[0]);
return pVarResult.getString();
}
return null;
}
return null;
}
catch (Throwable t){
return null;
}
}
|
|
|
|
Powered by
FUDForum. Page generated in 0.01915 seconds