comp.lang.ada
 help / color / mirror / Atom feed
From: John Walker <john@jswalker.demon.co.uk>
Subject: Re: Win32: Using COM from Gnat
Date: 1999/02/10
Date: 1999-02-10T00:00:00+00:00	[thread overview]
Message-ID: <Qc$WXmAKKXw2EwSv@jswalker.demon.co.uk> (raw)
In-Reply-To: 36b1c4dc.19475234@news.origin-it.com

In article <36b1c4dc.19475234@news.origin-it.com>, Paul Moore
<paul.moore@uk.origin-it.com> writes
>Hi,
>I'm looking at Ada as a possible alternative language for programming
>under Win32. One important area for me would be interfacing to COM
>components. Can anybody tell me if there is a *simple* way of getting
>at a COM object's interfaces from Gnat? For example, suppose I have a
>COM object which implements IStream. I'd like to be able to call the
>Read method using something straightforward like
>
>    COM_Object.Read(buffer, size, num_read)
>
>and NOT something visually impossible to read like
>
>    COM_Object.vtbl.ptr_Read(buffer'unchecked_access, size,
>                             access ptr num_read)
>
>(As you can see, I don't know Ada syntax yet!) Basically, I'd like
>something which hides the implementation details, like C++ COM code
>does, rather than something that exposes the internals, like C COM
>code.
>
>I saw a pointer to something on this subject in this newsgroup
>recently, but it looked a bit like the second example (pages of code
>to create and access an instance of a trivial "beep the speaker"
>object). Frankly, too much of Win32's internals are now COM-based for
>verbose, unreadable code to be usable...
>
>[BTW, don't construe this as a flame against Gnat, or Ada. I have no
>axe to grind here - it's just that I'm looking for an alternative to
>C++ for Win32 programming, without losing the advantages of C++ as
>regards COM programming...]
>
>Thanks in advance,
>Paul Moore.
>

The latest version of my bindings for Win32 are derived from the C++
"flavour" of Win32 rather than the C flavour such that COM interfaces
are mapped from C++ classes.  Have a look at www.jswalker.demon.co.uk/js
wtech.htm and specifically the WinAPI upgrade for DSound which includes
a trivial example for using the COM interface.  I hope this doesn't turn
out to be the "beep the speaker" example you refer to!

My bindings are distributed with Aonix ObjectAda but the example shows
you what can be done.
-- 
John Walker
Email: john@jswalker.demon.co.uk
Web  : http://www.jswalker.demon.co.uk/
Tel  : +44 (0) 118 9403749




  reply	other threads:[~1999-02-10  0:00 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-01-29  0:00 Win32: Using COM from Gnat Paul Moore
1999-02-10  0:00 ` John Walker [this message]
1999-02-10  0:00   ` David Botton
1999-02-10  0:00     ` David Botton
     [not found]       ` <01be5729$4fcf8bb0$022a6282@dieppe>
1999-02-14  0:00         ` David Botton
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox