Hi Lars,

According to http://msdn2.microsoft.com/en-gb/library/aa965717.aspx you have to implement IPersistStream instead of IPersistFile (which is not suported on Vista anymore). As this is supported on XP as well I would start changing the implementation from IPersistFile to IPersistStream and make it work on XP. Once this is done I would look at Vista again.

The idea behind using IPersistStream is that Vista (or XP) opens the file for you and you have to read from the stream and need not to care about file system issues.

The core of the OOoFilter implementation is the CContentReader which eventually uses a ZipFile object to actually retrieve content from the file. All operation of that reader, however, are using a filename for initialization (the one passed by IPersistFile). So the first thing would be to add methods to the ZipFile class that can deal with a stream instead of a filename. Have a look at shell/inc/internal/zipfile.hxx and shell/source/all/zipfile.cxx to see which methods are affected (those with a string parameter).

Stephan


Lars Langhans wrote:
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

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to