Thanks, that I can understand. I will give it a go, and see how far I get
;-)

Kind regards

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Jonas Maebe
Sent: 22. februar 2008 11:10
To: FPC-Pascal users discussions
Subject: Re: [fpc-pascal] MacOS and Opaque types


On 22 Feb 2008, at 11:04, Bent Normann Olsen wrote:

> I'm new to Mac development environment, and I was looking thru the
> CoreMIDI/MIDIServices.h, to see how much work it's going to take (at  
> least
> maybe partially) to implement some of the functions to own projects.  
> I hit
> the wall with some typedef, for example "struct OpaqueMIDIClient *
> MIDIClientRef", and I now understand that Apple do not always want
> developers to know what is behind some type definitions. Is this true?

Yes. This is not Apple-specific, this is a basic way of information  
hiding which is regularly used in C.

> How can one come about this? I'm really open to any suggestions.

You don't need the contents (C programs don't have access to them  
either). As far as the declaration goes in Pascal, just do something  
like

type
   POpaqueMIDIClient = ^OpaqueMIDIClient;
   OpaqueMIDIClient = record
   end;

var
   MIDIClientRef: POpaqueMIDIClient;


Or you could even declare MIDIClientRef as a plain untyped pointer  
(although you'll lose some type checking when using {$t+} in that case).


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to