NOTE:
Sounds like you need the virtual key code constant represented in your TShiftstate variable. Using integer(ssShift), integer(ssAlt), etc. won't work as it will return the ordinal value of the set item. i.e. Shift will return 0, alt will return 1, etc. I'm pretty sure this is not what you want.
if you need the virtual key value, use something like this:
var kc: integer;
...
kc:= 0;
if ssShift in AShiftState then kc:= kc OR VK_SHIFT;
if ssCtrl in AShiftState then kc:= kc OR VK_CONTROL;
if ssALT in AShiftState then kc:= kc OR VK_MENU;
if you need to use it for mouse messages, use something like this:
if ssShift in AShiftState then kc:= kc OR MK_SHIFT;
if ssCtrl in AShiftState then kc:= kc OR MK_CONTROL;
//alt not supported in mouse message, you would have to use something like GetKeyState to determine it