Order Smart's many uses

Okay, so I need to figure out how to differentiate between the various uses of Smart. If you right-click on anything, the GetUnitCurrentOrder() returns smart, regardless of if it's an enemy, an ally or a point and said target is being followed/attacked/moved to. Is there a way, using GetUnitCurrentOrder(), to find out which variant or smart my unit has? I'm trying to avoid having to catch it with an event and storing the GetOrderTargetUnit() into a variable for reference later on.