 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
I spent an afternoon reading about DDE, COM, COM+, DCOM, OLE, DCE/RPC,
MSRPC and many other things that I can't even remember the name of now.
All of which make virtually no sense at all.
Can somebody explain to me what all this stuff is meant to be for?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On Mon, 29 Oct 2007 18:48:27 +0000, Orchid XP v7 wrote:
> I spent an afternoon reading about DDE, COM, COM+, DCOM, OLE, DCE/RPC,
> MSRPC and many other things that I can't even remember the name of now.
> All of which make virtually no sense at all.
>
> Can somebody explain to me what all this stuff is meant to be for?
IPC. HTH. HAND. :-)
Jim
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Jim Henderson" <nos### [at] nospam com> wrote in message
news:47263a47$1@news.povray.org...
> On Mon, 29 Oct 2007 18:48:27 +0000, Orchid XP v7 wrote:
>
>> I spent an afternoon reading about DDE, COM, COM+, DCOM, OLE,
>> DCE/RPC,
>> MSRPC and many other things that I can't even remember the name
>> of now.
>> All of which make virtually no sense at all.
>>
>> Can somebody explain to me what all this stuff is meant to be
>> for?
>
> IPC. HTH. HAND. :-)
>
> Jim
P.s. mutex trafficking
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Orchid XP v7 wrote:
> I spent an afternoon reading about DDE, COM, COM+, DCOM, OLE, DCE/RPC,
> MSRPC and many other things that I can't even remember the name of now.
> All of which make virtually no sense at all.
>
> Can somebody explain to me what all this stuff is meant to be for?
Cross-process object-oriented calling. Basically, remote procedure
calls and everything you need to do it "right" instead of half-assed.
--
Darren New / San Diego, CA, USA (PST)
Remember the good old days, when we
used to complain about cryptography
being export-restricted?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Darren New wrote:
> Cross-process object-oriented calling. Basically, remote procedure
> calls and everything you need to do it "right" instead of half-assed.
OK. So... if I actually knew how to do all this stuff, what useful
things could I do with it?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Orchid XP v7 wrote:
> Darren New wrote:
>
>> Cross-process object-oriented calling. Basically, remote procedure
>> calls and everything you need to do it "right" instead of half-assed.
>
> OK. So... if I actually knew how to do all this stuff, what useful
> things could I do with it?
It's the fundamental technology that Windows parts use to talk to other
Windows parts. You could write a program that starts up Word and Excel,
loads a spreadsheet, clips a range out and pastes it into your Word
document. You can take a blob of code that someone wrote to manage
calendars, and a blob of code that someone wrote to manage email, and
paste them together to make an email-sending reminder applciation. You
can write components for (for example) decompressing your compressed
movie stream, and plug them into Windows Media Player without having to
recompile either one. It's used for everything from plug-ins,
specialized widgets, active agents running in the background,
distributed processing, and embedded programming languages for
applications.
It's basically library++, "active" libraries that can run by themselves
as independent components.
It's "component" stuff, which I don't think Linux ever really got around
to implementing, or at least not using in any sort of consistent way.
You use it to do all the sorts of things you use IPC for (pipes,
sockets, etc) in Linux land.
--
Darren New / San Diego, CA, USA (PST)
Remember the good old days, when we
used to complain about cryptography
being export-restricted?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Darren New escribió:
> Orchid XP v7 wrote:
>> Darren New wrote:
>>
>>> Cross-process object-oriented calling. Basically, remote procedure
>>> calls and everything you need to do it "right" instead of half-assed.
>>
>> OK. So... if I actually knew how to do all this stuff, what useful
>> things could I do with it?
>
> It's the fundamental technology that Windows parts use to talk to other
> Windows parts. You could write a program that starts up Word and Excel,
> loads a spreadsheet, clips a range out and pastes it into your Word
> document. You can take a blob of code that someone wrote to manage
> calendars, and a blob of code that someone wrote to manage email, and
> paste them together to make an email-sending reminder applciation. You
> can write components for (for example) decompressing your compressed
> movie stream, and plug them into Windows Media Player without having to
> recompile either one. It's used for everything from plug-ins,
> specialized widgets, active agents running in the background,
> distributed processing, and embedded programming languages for
> applications.
>
> It's basically library++, "active" libraries that can run by themselves
> as independent components.
>
> It's "component" stuff, which I don't think Linux ever really got around
> to implementing, or at least not using in any sort of consistent way.
>
> You use it to do all the sorts of things you use IPC for (pipes,
> sockets, etc) in Linux land.
>
Let me add some: things like showing custom thumbnails for a file format
(like Windows does by default for pictures) is done by implementing a
COM interface. explorer.exe will tell your COM object to generate the
thumbnails.
Same for adding items to the context menu, and to the drag context menu
(like WinZIP and other file archivers do, right-drag a zip and it will
have an "extract here" along with the default "move here" and "copy here").
Adding toolbars to explorer and/or Internet Explorer uses COM too, so
there's a technology advertisers know well[1].
Embedding and linking objects in Office documents uses OLE, which is
based in COM. I think WordPad is a program Microsoft used to test OLE
mechanisms, then they decided to release it.
Guess what ActiveX is based on.
[1] http://img.photobucket.com/albums/v391/brownpau/friends_ie.jpg
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Nicolas Alvarez wrote:
> [1] http://img.photobucket.com/albums/v391/brownpau/friends_ie.jpg
Holy toolbars, Batman!
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Mike Raiford wrote:
> Nicolas Alvarez wrote:
>> [1] http://img.photobucket.com/albums/v391/brownpau/friends_ie.jpg
> Holy toolbars, Batman!
Problem is, it is possible to get the same effect in Firefox.
Incautious/computer-unsavvy people don't care what browser they're
using, they'll still wreak havoc on their machine. :P
--
Tim Cook
http://home.bellsouth.net/p/PWP-empyrean
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GFA dpu- s: a?-- C++(++++) U P? L E--- W++(+++)>$
N++ o? K- w(+) O? M-(--) V? PS+(+++) PE(--) Y(--)
PGP-(--) t* 5++>+++++ X+ R* tv+ b++(+++) DI
D++(---) G(++) e*>++ h+ !r--- !y--
------END GEEK CODE BLOCK------
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Darren New wrote:
> Orchid XP v7 wrote:
>> OK. So... if I actually knew how to do all this stuff, what useful
>> things could I do with it?
>
> It's the fundamental technology that Windows parts use to talk to other
> Windows parts. You could write a program that starts up Word and Excel,
> loads a spreadsheet, clips a range out and pastes it into your Word
> document. You can take a blob of code that someone wrote to manage
> calendars, and a blob of code that someone wrote to manage email, and
> paste them together to make an email-sending reminder applciation. You
> can write components for (for example) decompressing your compressed
> movie stream, and plug them into Windows Media Player without having to
> recompile either one. It's used for everything from plug-ins,
> specialized widgets, active agents running in the background,
> distributed processing, and embedded programming languages for
> applications.
So... would it for example be possible to write some gizmo that enables
you to insert a mathematical formula into a Word document without Word
crashing? (Or an organisation chart, for that matter?)
Could you write a plugin for Excel that draws some new kind of chart? Or
maybe be able to write macros in Haskell instead of VisualBasic? (You
know how normally you can write a macro in VB and then use it as a
normal function in cells of the spreadsheet? Well, what if you wanted to
use Haskell instead? Is that possible, technically?)
> You use it to do all the sorts of things you use IPC for (pipes,
> sockets, etc) in Linux land.
When I develop things that have to talk to each other, I generally just
use TCP. (Because almost all programming languages know how to do it. As
a somewhat nice side effect, it also makes it possible to run components
on seperate machines.) I have no idea what the overhead is though.
(Before now I've written some code in one programming language, then had
it use TCP to talk to a Tcl script to provide a front-end. Damn, if only
there was 1 programming language that had *all* the features I need...)
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Orchid XP v7 wrote:
> So... would it for example be possible to write some gizmo that enables
> you to insert a mathematical formula into a Word document without Word
> crashing? (Or an organisation chart, for that matter?)
Possible, yes. That's exactly one of the sorts of things it's good for.
> Could you write a plugin for Excel that draws some new kind of chart?
Yep.
> maybe be able to write macros in Haskell instead of VisualBasic? (You
> know how normally you can write a macro in VB and then use it as a
> normal function in cells of the spreadsheet? Well, what if you wanted to
> use Haskell instead? Is that possible, technically?)
I would expect so. It depends what Excel exposes.0
>> You use it to do all the sorts of things you use IPC for (pipes,
>> sockets, etc) in Linux land.
>
> When I develop things that have to talk to each other, I generally just
> use TCP. (Because almost all programming languages know how to do it. As
> a somewhat nice side effect, it also makes it possible to run components
> on seperate machines.) I have no idea what the overhead is though.
There's certainly the serialization overhead.
> (Before now I've written some code in one programming language, then had
> it use TCP to talk to a Tcl script to provide a front-end. Damn, if only
> there was 1 programming language that had *all* the features I need...)
Yah. That's what I'm doing right now, to wrap up some buggy C++ code
that doesn't bother to deallocate resources when something fails. :)
--
Darren New / San Diego, CA, USA (PST)
Remember the good old days, when we
used to complain about cryptography
being export-restricted?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Tim Cook <z99### [at] bellsouth net> wrote:
> Problem is, it is possible to get the same effect in Firefox.
> Incautious/computer-unsavvy people don't care what browser they're
> using, they'll still wreak havoc on their machine. :P
OTOH most spyware is designed to stick onto IE so at least they will
have a bit less of harmful effect if you use firefox.
--
- Warp
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Darren New wrote:
> Orchid XP v7 wrote:
>> So... would it for example be possible to write some gizmo that
>> enables you to insert a mathematical formula into a Word document
>> without Word crashing? (Or an organisation chart, for that matter?)
>
> Possible, yes. That's exactly one of the sorts of things it's good for.
So... when you double-click a "drawing" object in Word, and Word locks
up for 40 seconds while it pages huge amounts of data back into RAM...
that's Word loading the external plugin that handles drawing objects?
>> maybe be able to write macros in Haskell instead of VisualBasic? (You
>> know how normally you can write a macro in VB and then use it as a
>> normal function in cells of the spreadsheet? Well, what if you wanted
>> to use Haskell instead? Is that possible, technically?)
>
> I would expect so. It depends what Excel exposes.
Heh. Where do you find this kind of information?
(I guess it's kind of moot anyway. I don't have access to any
programming language that supports COM. No, I classify VB as "joke"
rather than "programming language"...)
>> When I develop things that have to talk to each other, I generally
>> just use TCP. I have no idea what the overhead is though.
>
> There's certainly the serialization overhead.
Depends on what you're sending. (If it's text anyway, that's not too
bad. Or if you're just sending button presses...)
I know you probably don't care, but for a project I once make a small
gizmo that allows you to talk a Smalltalk application and move it's GUI
to another machine on the network. (But unlike, say, X11 or VNC, you're
working at the model level rather than the bitmap level.)
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Orchid XP v7 escribió:
> (I guess it's kind of moot anyway. I don't have access to any
> programming language that supports COM. No, I classify VB as "joke"
> rather than "programming language"...)
Javascript running under Windows Scripting Host (and under IE with very
low security settings) can use COM. PHP has a COM extension too,
although I have never tried it.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Orchid XP v7 wrote:
> So... when you double-click a "drawing" object in Word, and Word locks
> up for 40 seconds while it pages huge amounts of data back into RAM...
> that's Word loading the external plugin that handles drawing objects?
I don't know if that's built in, or a separate COM object, or what.
>> I would expect so. It depends what Excel exposes.
> Heh. Where do you find this kind of information?
Google "Excel vba interface" or "Excel com interface".
An example of code with COM calls in it:
http://www.smartquant.com/help/excel/
Or go to msdn.microsoft.com and search, except that they tend to take
down the documentation on any older versions of products, the bastards.
> (I guess it's kind of moot anyway. I don't have access to any
> programming language that supports COM. No, I classify VB as "joke"
> rather than "programming language"...)
Actually, most stuff that runs on Windows supports COM. Including Tcl
(google for TCOM). And including WSH. And including anything written
with .NET. I'd be really surprised if Perl and all them didn't, too.
> Depends on what you're sending. (If it's text anyway, that's not too
> bad. Or if you're just sending button presses...)
Yeah. If you're sending events, it's easier. COM exposes some pretty
complex APIs, tho.
> I know you probably don't care, but for a project I once make a small
> gizmo that allows you to talk a Smalltalk application and move it's GUI
> to another machine on the network. (But unlike, say, X11 or VNC, you're
> working at the model level rather than the bitmap level.)
That's pretty cool.
--
Darren New / San Diego, CA, USA (PST)
Remember the good old days, when we
used to complain about cryptography
being export-restricted?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Darren New wrote:
> Google "Excel vba interface" or "Excel com interface".
Or, come to think of it, fire up Excel and go into the help box and
search for "vba".
--
Darren New / San Diego, CA, USA (PST)
Remember the good old days, when we
used to complain about cryptography
being export-restricted?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Orchid XP v7" <voi### [at] dev null> wrote in message
news:4727aac0$1@news.povray.org...
> (I guess it's kind of moot anyway. I don't have access to any
> programming language that supports COM. No, I classify VB as "joke"
> rather than "programming language"...)
C#?
You might also try F#. I haven't personally used it, but I think is a
language you might like, and it's built on the .NET framework.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On Tue, 30 Oct 2007 19:44:40 -0700, Darren New <dne### [at] san rr com> wrote:
>Or, come to think of it, fire up Excel and go into the help box and
>search for "vba".
Or, while in Excel, [ALT}+[F11] to open the Visual Basic Editor, then [F2] to open the
Object Browser window, at least in Excel 2000.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
So... can anybody provide a high-level overview of the general structure
and terminology of this stuff?
(All the documentation I found so far just shows examples in C - which
means nothing to me.)
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In article <4727abda$1@news.povray.org>,
nic### [at] gmail is the best com says...
> Orchid XP v7 escribió:
> > (I guess it's kind of moot anyway. I don't have access to any
> > programming language that supports COM. No, I classify VB as "joke"
> > rather than "programming language"...)
>
> Javascript running under Windows Scripting Host (and under IE with very
> low security settings) can use COM. PHP has a COM extension too,
> although I have never tried it.
>
It should be noted that support for COM in those does **not** include
event management. That is only supported if you are running it IE, since
it has all the fancy bits in it that allow you to call Invoke. This is
apparently intentional, though I never quite got how knowing that you
fracking clicked on a button is more dangerous than a COM object that
tries to format your hard drive... I just don't get how disallowing
events did anything but make it a pain to do anything (though it does
work in IE, since IE supports an object event handler system, which lets
you link your own script function to the event. Its why, if you look in
the help for it, you will find that there are commands to both "link" an
event (don't remember the name of that) and a "GetRef" command used to
get the internal entry point to your script function, so that when the
event happens that function will be called. But without IE's event
manager, the linking command just generates a, "This command not
available", type error. :p
Its basically a serious pain in the rear. You can get past it by
introducing what is known as a ATL Bridge. Basically, ATL give more
direct support to the functions that are "needed" to tell Event A to
call your own code/script function. The problem is, the event cycle is a
bit wacky. Basically, you click the button, for example, it generates a
system level event, which is sent to your application, which is **then**
supposed to be sent to the event handler that is keeping track of who to
call when the event is received. Things like VB, MFC and Windows
Scripting Host, all pretty much leave you hosed, since they either don't
provide a way to *create* the needed link, or to even inform the object
that it should generate the event. But in some like MFC, the "event" is
not identified as one that belongs to your program, so is tossed back to
the OS, to die in obscurity, instead of being passed on to any handler
you "may" have. VB is a bit nicer, since you can trap arbitrary events
(harder to do in MFC, and impossible in WSH), but since you can't talk
to the core layer of the object to tell it that you "want" the event in
the first place, it won't tell you that it happened, let alone allow
your application to do anything about it.
Bloody mess...
--
void main () {
If Schrödingers_cat is alive
call functional_code()
else
call crash_windows();
}
<A HREF='http://www.daz3d.com/index.php?refid=16130551'>Get 3D Models,
3D Content, and 3D Software at DAZ3D!</A>
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Orchid XP v7" <voi### [at] dev null> wrote in message
news:4728ece4$1@news.povray.org...
> So... can anybody provide a high-level overview of the general
> structure and terminology of this stuff?
>
> (All the documentation I found so far just shows examples in C -
> which means nothing to me.)
http://en.wikipedia.org/wiki/Component_object_model
Also - powershell from MS is free and does COM
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
pan wrote:
> "Orchid XP v7" <voi### [at] dev null> wrote in message
> news:4728ece4$1@news.povray.org...
>> So... can anybody provide a high-level overview of the general
>> structure and terminology of this stuff?
>
> http://en.wikipedia.org/wiki/Component_object_model
Already read it. It's one of Wikipedia's less helpful articles. (Ditto
for all that .NET stuff.)
> Also - powershell from MS is free and does COM
Um... OK. Maybe they have some documentation I can use...
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Invisible wrote:
> Um... OK. Maybe they have some documentation I can use...
I think it's more like, now that you know what it is (namely, an API for
communication between independent objects via an API-like interface),
what's your actual question? :-)
--
Darren New / San Diego, CA, USA (PST)
Remember the good old days, when we
used to complain about cryptography
being export-restricted?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Darren New wrote:
> Invisible wrote:
>> Um... OK. Maybe they have some documentation I can use...
>
> I think it's more like, now that you know what it is (namely, an API for
> communication between independent objects via an API-like interface),
> what's your actual question? :-)
From Wikipedia's article, it seems that COM's idea of what the terms
"object", "class" and "method" mean is somewhat different from the usual
OO terminology. (Or Wikipedia is outright incorrect, which is of course
not impossible.) Can anybody clarify?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Invisible escribió:
> Darren New wrote:
>> Invisible wrote:
>>> Um... OK. Maybe they have some documentation I can use...
>>
>> I think it's more like, now that you know what it is (namely, an API
>> for communication between independent objects via an API-like
>> interface), what's your actual question? :-)
>
> From Wikipedia's article, it seems that COM's idea of what the terms
> "object", "class" and "method" mean is somewhat different from the usual
> OO terminology. (Or Wikipedia is outright incorrect, which is of course
> not impossible.) Can anybody clarify?
It is a bit different from normal OO terms. Just wait until you get to
the "containment/delegation and aggregation" part (replaces uses of
inheritance), that's really screwed up.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|
 |