I really want to help here. It's just that I still don't understand exactly how the user interaction is supposed to go, so I can't suggest any coding techniques.
It sounds like a pretty standard thing you are trying to do here, and the usual solution goes like this:
Initially A shows "Apple/Oracle/MS..."; B and C are blank
User selects MS, B is populated with list of MS products; C is still blank.
User selects "Office" from B, C is populated with "Word/Excel/..."
... uses selects from C, selection process is complete OR
... user selects another product from B, C is re-populated appropriately OR
... user selects another manufacturer, B is re-populated appropriately; C is cleared
Instead of clearing/populating entries you can instead have them all present but disable/enable them.
But none of your descriptions seem to match this standard model - how exactly does your desired solution differ from that?