comp.lang.ada
 help / color / mirror / Atom feed
From: Nick Roberts <nick.roberts@acm.org>
Subject: Re: Thick Ada bindings to C Win32
Date: Fri, 12 Nov 2004 12:09:11 +0000
Date: 2004-11-12T12:09:11+00:00	[thread overview]
Message-ID: <2vjnfbF2lioiaU1@uni-berlin.de> (raw)
In-Reply-To: <sa4y8haifwq.fsf@snoopy.apana.org.au>

Try:


   function Addr (S : BYTE_Array) return LPCVOID is

      function To_LPCVOID is new
        Ada.Unchecked_Conversion (System.Address, LPCVOID);

   begin
      return To_LPCVOID( S(S'First)'Address );
   end;

   pragma Inline(Addr);


   procedure Put(Handle : Handle_Type; Item : in Byte_Array) is

      Successful: Win32.BOOL;
   begin

      Successful :=
         Win32.Winbase.WriteFile
         ( ...
          lpBuffer              => Addr(Item),  -- Win32.Lpcvoid
          nNumberOfBytesToWrite => Item'Length, -- Win32.Dword  => 1 bytes
          ... );

      if not Successful then raise ???_Error; end if;
   end Put;


I haven't tested this. It might be GNAT-specific. Must dash!

-- 
Nick Roberts



  parent reply	other threads:[~2004-11-12 12:09 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-10  2:41 Thick Ada bindings to C Win32 Brian May
2004-11-10  4:36 ` tmoran
2004-11-10 19:31 ` Jeffrey Carter
2004-11-12  1:51   ` Brian May
2004-11-12 12:09 ` Nick Roberts [this message]
2004-11-12 17:57   ` tmoran
2004-11-12 18:50     ` Martin Krischik
2004-11-12 23:29   ` Brian May
2004-11-13  0:51     ` Jeffrey Carter
2004-11-25 23:19       ` Brian May
2004-11-26  9:50         ` Martin Krischik
2004-11-26 12:23           ` Frank J. Lhota
2004-11-26 19:19         ` Jeffrey Carter
2004-11-27 23:56           ` Brian May
2004-11-28 18:57             ` Jeffrey Carter
2004-11-28 23:45             ` Brian May
2004-11-29  7:50               ` Message-ID: <sa4vfbpzgfu.fsf@snoo tmoran
2004-11-29 14:34               ` Thick Ada bindings to C Win32 Frank J. Lhota
replies disabled

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