I have an EditUnitcodeTextControl and what I want is for the keystrokes
to be converted to uppercase (ie when the user types 'a' in the control,
it is converted and displayed as 'A'.) Looking at the doentation, it
appears I should be able to create to user defined keyfilter routine
MyKeyFilter and attach it to the control like this :-
ControlKeyFilterUPP myControlKeyFilterUPP;
myControlKeyFilterUPP = NewControlKeyFilterUPP((ControlKeyFilterProcPtr)
MyKeyFilter); SetControlData(GetSysView(),kControlEntireControl,
kControlEditTextKeyFilterTag,
sizeof(
myControlKeyFilterUPP),&myControlKeyFilterUPP);
(I tried using InvokeControlKeyFilterUPP() but I don't know what it's
for and using SetControlData at least gets MyKeyFilter called in the
right place).

Now MyKeyFilter can block lowercase characters by returning
kControlKeyFilterBlockKey and that works fine; but whatever I modify the
input char to in MyKeyFilter() makes no difference.
Am I doing something wrong, is there a better way to achieve what I want,
or is this a bug in the doentation and you can't modify keystrokes
destined for a control using ControlKeyFilterProcPtr as described in the
Carbon Control Manager Reference?
Thanks for any advice.