FYI: Desktop search of OOo Document content on Windows Vista

Lars Langhans <[email protected]> Fri, 08 Dec 2006 14:45:42 +0100
Newsgroups gmane.comp.openoffice.devel.porting
Organization StarOffice / Sun Microsystems, Inc.
Message-ID <[email protected]>
Hi,
some words to Windows Vista Search. Within Vista it should be possible 
to search documents by it's content. So, if there exist a word like 
'supercallifragilisti' ;-) in a document A, you are able to search for 
'supercalli' and in the result list you will get the document A.

First, open:
 Control Panel (Classic View)->Indexing Options->(Button)Advanced->(Tab 
page)File types
on this page, mark 'Index Properties and File Contents'
leave the dialog by 'ok' press Advanced again and do a 'Rebuild' and 
press ok, take a good coffee ;-)

This doesn't work as expected. Within Windows XP it works well.


With OOo there exist some shell extensions in project shell. The DLL 
ooofiltproxy.dll and ooofilt.dll. The first DLL loads ooofilt.dll via 
LoadLibraryEx. This is a need because we need some more libraries out of 
the program directory.

In the ooofilt.dll is the code for desktop search implemented. At the 
moment OOo only supports the IPersistFile Interface.
After some debug sessions and extra code implementation I found out:
A QueryInterface is called from shell32.dll (Microsoft) and try to use 
the IPersistStream interface, if it is implemented, it queries to 
ICallFactory interface, if it is implemented, it calls IFilter::Init() 
from IFilter interface, but with wrong parameters. Only a catch of 
exception tripple dot can hold us. I try also to fix the wrong 
parameters by simple good ones but this also doesn't help.
Therefore the IFilter implementation (desktop search) doesn't work at 
the moment.

IPersistFile is not used within Windows Vista at the moment.

This tests has done with Vista RC1 && RC2 && Final.

BugID is i71112

JM2C

Regards
Lars