Hi John,
the fundamental problem is that our code started life under VAX Fortran 4 and a very clever/devious programmer wrote some fundamental tools that depended on LOC/%VAL for all its dialogue handling.
When we ported it to PC DOS using FTN77, the COREn functions were a natural replacement for %VAL.
When we ported to Windows was probably the right time to think about 'future-proofing' but we were so focussed on getting the code to just run on the new platform (which mainly involved turning the program flow 'on its head') that the thought didn't occur to us.
As a result, we now have literally thousands of dialogues in our suite of programs that depend on a toolkit that uses addresses stored in 32-bit variables.
Changing the toolkit is easy.
Changing all the routines that use the toolkit isn't.
K