Oh boy am I stoked about delegates! Aaron + Delegates = COM support. Yes, that's right... COM support.
I've already done a proof of concept application which sets the desktop wallpaper via the IActiveDesktop COM object. I've also demonstrated some more complex stuff with a BITS implementation using IBackgroundCopyManager, et al.
The next tricky part is finding a reasonable way to automate the process so that you don't have to do a lot of the tedious work by hand. And believe me, it is tedious. However, it is possible, and that's the important thing.
Delegates rock, plain and simple. Hopefully, when I get a bit of free time, I'll start a series of blog postings about how to make a COM object in REALbasic.
I especially would like to see how they work and operate. I've never used one. Also cover in which situations they work best.
Thanks,
Tom
OK, coming from a world filled with delicious red Apples I am not all that familiar with COM. So I jumped on the web and the first thing I read was " Microsoft recommends that developers use the .NET Framework rather than COM for new development." (http://www.microsoft.com/com/default.mspx)
Hmmm....
So what makes COM seem so great? Will it a new bunch of RB objects that can talk to each other?
The example I see is embedding MS EXcel doc in MS Word. Gee I hate that feature ;-) I have seen scientists look very foolish and then get very angry when arriving in Australia to do a presentation and some part of the document is left back in the USA.
Anyway, I look forward to reading about COM and REALbasic.
Well, the fact that MS recommends using .NET doesn't mean that COM objects aren't still supported. In fact, the VB to .NET converter will wrap a lot of COM objects in the .NET framework. So, no, COM isn't going away anytime soon despite what the marketing machine may say. But, I am interested in seeing what the means long term for RB.
Does this mean being able to expose ActiveX property pages and designers in the IDE? One of my big projects in VB6 uses a ton of ActiveX controls and each one has a fancy designer that makes their setup pretty easy. It's possible, but not easy, to configure at runtime but it's a lot of work.
So, yeah. I look at this as a good thing. Just how much of a good thing is yet to be seen.
COM better not go away anytime soon; .NET is based on it (though, loosely).
As for what it means -- I'll post more about that in the future. :-)
At the risk of sounding utterly stupid, even after reading the delegates.txt file, I still am clueless as to what it/they do. Why do I need them? Why are they important? What need do they fill?
Signed,
- Confused in California
Delegates are essentially a type-safe function pointer. That allows you to do some very powerful stuff that you couldn't do before. For instance, this now allows you to write your own plugin system from pure REALbasic code (though you'd still have to use a non-RB language to actually create the plugins themselves).
They're certainly a power feature that not everyone will require. However, they open up a world of possibilities that weren't there before for things which people will use (such as COM support).
Is COM the Windows implementation of Mac OS IAC ?
(Inter-Application Communication)
COM predates that by a few decades. ;-) COM is an object model for expressing objects in a cross-platform, forwards and backwards compatible fashion. Basically, it allows you to do OOP across process boundaries (or even across machine boundaries).
In fact, IAC saw the light in 1990 or 1991, when I was working at Apple France. I do not recall specifically.
And if this is really what I think, it comes first in AppleWorks GS on the Apple IIgs computer before been implemented in AppleWorks who became ClarisWork before its recent death, killed by iWorks.
The technology allowed people to place a peace of drawings in a word processor, a peace of spreadsheet in a word processor, create a live link between a spreadsheet file (who can be update on its own) into a word processor,... I am not sure, this is so long ago... the times of Windows 2! And 286 machines!