> On 1/30/07, Mark Hammond <[EMAIL PROTECTED]> wrote:
> > > i need to pass an IPersistStream object to a COM function,
> > > and i find a type named PyIPersistStream in the manual of pywin32.
> > >
> > > but i don't know how to generate a PyIPersistStream
> object and pass it
> > > to the function.
> > > anyone could help me?
> >
> > Gabriel is completely correct - see
> ./win32com/demos/ietoolbar.py and
> > ./win32com/test/testStreams.py for 2 samples that use this
> interface.
> >
>
> thanks to all of you for helping me.
>
> do i have to implement the IPersistStream by my self?
> regarding to IStorage and IStream, i can invoke StgCreateDocfile and
> IStorage::CreateStream to generate corresponding objects.
>
> i thought there must be some way to do that effectively, without
> having to do all trivial things by myself.

That is the nature of interfaces - they generally don't come with an
implementation.  Certainly Python removes the need for many of the trivial
things C++ would require you to do, but I can't think of any other details a
generic Python implementation could provide.  However, if you can come up
with an implementation of a base class you believe would be useful for
people implementing this interface I'd be happy to look at including it in
pywin32.

>
> i went through all of the samples coming up with pywin32 before i post
> this thread.
> as to ./win32com/test/testStreams.py, it implements IStream and
> IPersist interfaces
> by itself (and the implementation is incomplete).
> i don't think that's a good way to implement all of the interfaces
> that i need, do you?

It obviously depends on your caller - but in general I agree, providing a
partial implementation of an interface is not what production code should
do.  But that is the nature of samples - they are intended to give you
enough information to create something for your own application and do not
profess to be complete implementations of anything.

Mark

_______________________________________________
Python-win32 mailing list
Python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to