Ok I got my function to work by defining ALLOW_ACCESS_TO_INTERNALS_OF_LISTS
before including the Palmos headers. I'd still like someone to tell me if
there is a better/safer way to do this. I want to maintain compatability
with future Palm OS releases.
Thanks again.
Richard
----- Original Message -----
From: "Richard Bell" <[EMAIL PROTECTED]>
To: "Palm Developer Forum" <[EMAIL PROTECTED]>
Sent: Thursday, February 28, 2002 4:16 PM
Subject: Problem with LstGetTopItem
> I'm using SDK 4.0 and made use of the call LstGetTopItem so I can store
the
> top item of a list. The call works fine if I'm using an OS 4.0 or higher
> device but fails on an OS 3.5 device. I attempted to create a function
that
> would detect the version and use the older method but it will not compile.
> I recieve the error:
>
> Error: illegal use of incomplete struct/union/class 'ListType'
>
> I've seen that error reported before here in the forum and know its
related
> to me attempting to access the internals of a structure. I'll be happy
not
> to do it if someone can tell me how to generate a prc that will work on my
> 3.5 devices as well as my 4.0.
>
> And if I'm just doing something really stupid, I'm happy to accept that
too.
>
> Here is my attempt at a function to get around the problem:
>
> Int16 MyLstGetTopItem(const FormType *frmP, UInt16 objIndex)
> {
> Int16 ret;
> Int32 requiredVersion;
> UInt32 romVersion;
>
> // we can only use LstGetTopItem if the os is 4.0 or better
> requiredVersion = sysMakeROMVersion(4,0,0,sysROMStageRelease,0);
>
> FtrGet(sysFtrCreator, sysFtrNumROMVersion, &romVersion);
>
> if (romVersion < requiredVersion)
> { // we have to do it the hard way
> // and access the internal structures
> #undef DO_NOT_ALLOW_ACCESS_TO_INTERNALS_OF_STRUCTS
> ListType *pLst;
> pLst = (ListType *)FrmGetObjectPtr (frmP, objIndex);
> ret = pLst->topItem;
> #define DO_NOT_ALLOW_ACCESS_TO_INTERNALS_OF_STRUCTS
> }
> else
> {
> ret = LstGetTopItem ((ListType *)FrmGetObjectPtr(frmP, objIndex));
> }
>
> return ret;
> }
>
>
> --
> For information on using the Palm Developer Forums, or to unsubscribe,
please see http://www.palmos.com/dev/tech/support/forums/
>
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palmos.com/dev/tech/support/forums/