Is there an easy way to get access to a particular resource database's current overlay? If I have a database, what's the best way to get a DmOpenRef or LocalID for the currently used overlay database?
It's not easy, but you can do the following:
1. Get the creator and name for the target database. 2. Call OmGetCurrentLocale to get the overlay locale. 3. Call OmLocaleToOverlayDBName to get the overlay DB name.
Now you can either open the overlay DB directly, or you can loop over the open resource databases using DmNextOpenResDatabase (starting w/NULL) until you find a database with the same creator, the type = 'ovly', and the name = to result of calling OmLocaleToOverlayDBName.
Is there a way other than using OmGetCurrentLocale to determine the current language & country
Calling OmGetCurrentLocale is the right way to determine the overlay locale.
and figure the name of the overlay database from that info?
See above.
If I do end up using OmGetCurrentLocale, does that work okay with EFIGS devices where the locale is not stamped directly into the ROM?
Yes. Though even on an EFIGS device, there is a ROM locale, which is currently always enUS for all devices I know of. This ROM locale is used to initialize the system and overlay (current) locales. Then the user can pick a different system/overlay locale using the Language Picker app, which is automatically run following a hard reset.
-- Ken -- Ken Krugler TransPac Software, Inc. <http://www.transpac.com> +1 530-470-9200
-- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/