[fpc-pascal] MacOS and Opaque types

Matt Emson memsom at interalpha.co.uk
Fri Feb 22 11:47:45 CET 2008

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?
As an aside - a lot of why Apple does this in Carbon stems back to the 
old MacOS 9.x heritage. In the old pre 10,x system, the memory manager 
forced the programmer to refer to data by "handles" that were references 
to pointers. This was historical and was originally because of the funky 
things it did with shuffling pointers around in memory to handle the 
fact that the early hardware (Mac 128 for example) was only barely able 
to run the OS within the memory constraints of the hardware. PowerPC 
might have altered this, dunno, but the basic OS worked on that premise 
for 68000 at least. Carbon should have minimised the madness, but I 
guess some still persists?

More information about the fpc-pascal mailing list