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]