Re: Opendoc (was Re: spell checking)



Jo Dillon wrote:
> 
> Hmm...did this message get chopped off somehow? Something a bit
> more detailed than this would be useful in weighing up its advantages
> (are there any? ;)/disadvantages against Opendoc and suchlike.

I would say that OLE is fairly cumbersome to use.  The tools have
developed over time to make it easier (the latest is ATL, a set
of C++ templates), but it's still a bear to deal with.  The
registration is cryptic -- the objects themselves use the same
type of 16-byte ID's that the interfaces do, so you have this
proliferation of nasty byte strings, e.g. 

	{ 8e27c92b-01264-101c-8a2f-040224009c02 }

which could stand for ANYTHING.  Arrgh!  (c;  It's nice in that
you can build your components in any language, but that's hardly
new.  Probably one of the main arguments for it is that it's
widely supported in MS-land.  I wouldn't want to port MS Office
to Linux without having native OLE support.  But that's moot
anyway...  I don't think it's intrinsically better than, say,
CORBA.

I'll think about it some more and get back to you.

> > OLE/COM is heavily based on the idea of interfaces.  Each and
> > every COM object (e.g. a GUI control, or container, or service)
> > uses more than one interface to talk back and forth between its
> > owner (container, server, whatever).
> 
>   What's a service and a container in this context?

A non-GUI component would be a service (e.g. a calculus
interface).  Actually, "service" isn't really a buzzword in OLE. 
I just used it in a descriptive sense.

A container is usually a hosting application that borrows the
functionality of another object/application, e.g. if you imported
an MS Excel spreadsheet into MS Word, Word would be the container
(host) because it houses the OLE spreadsheet (as part of a
compound document).  Excel (which would be running invisibly in
the background, controlling the spreadsheet imbedded in Word) is
the server.  In this context, Word would also be a client,
because it requests the spreadsheet interface from Excel.

So, really, an OLE object cannot BE a container.  It can only be
owned or used by a container.

Does that help?  

John



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]