Windows 7 and Windows Vista have a Region and Language control panel which contains a Formats tab which contains a popup menu titled Format. This menu allows the user to select from among many language-oriented sets of number, currency, time, and date formatting preferences regardless of the language of the base system. For example, I could decide I prefer the default currency symbol to be Japanese yen on a US English system. I don't care about the currency symbol in particular; that was just an example. I'm referring here to the sets of preferences which may be applied by selecting items from the Format menu.
The Windows Contacts application appears to change its behavior based on the selection in this menu. For example, if I select Japanese, Windows Contacts displays and lets me edit phonetic names (AKA "ruby", "yomi", and "furigana") but not middle names. If I select US English, then Windows Contacts displays and lets me edit middle names but not phonetic names.
I need to write code (native C calling Win32 on XP SP2 and later) which mirrors the behavior of the Windows Contacts application in this respect. Which API should I call?