BLS Wrote:

> John C wrote:
> > BLS Wrote:
> > 
> >> Hi,
> >> Sergey G. ask (by accident ;) ) about : How to create an ActiveX control 
> >> in D.
> >> Now, I am curious : Is it possible to create an ActiveX Control In D ?
> >>
> >> Something along :
> >> class Component : IDispatch
> >> {
> >> }
> >>
> >> instead of :
> >>
> >> class Component : IUnknown
> >> {
> >> }
> >>
> >> and if so, how to build an AX control in D, guess as DLL + D runtime ???
> >>
> >> Thank's for enlighten me.
> >> björn
> > 
> > I wouldn't, certainly not merely out of curiosity. It's a mountain of work, 
> > and you have to implement lots of pretty obscure interfaces. If you really 
> > must do it, find a C++ example and translate it to D.
> 
> 
> Thanks John,
> 
> If YOU don't give it a chance... then everything is lost.
> 
> another leak in D
> +

Well, I wouldn't go that far. It's just that some other languages have either 
built-in language support for ActiveX (VB, C#, Delphi) or libraries that do 
much of the legwork for you (eg, MFC/ATL/VCL). But I don't think these belong 
in the D language or its standard library.

It's relatively straightforward to create a COM server in a DLL and register a 
few classes with the system. Juno's (http://www.dsource.org/projects/juno) COM 
package shows how it can be done.

If you want to do something useful like show a window have allow the user to 
interact with it, you need to implement IOleObject, IOleControl, 
IOleInPlaceActiveObject, and so on 
(http://msdn.microsoft.com/en-us/library/aa751972(VS.85).aspx). And maybe 
IDispatch. And you need a UI library. So if you're feeling bold...

John.

Reply via email to