si tu as visual c++ :
tu fais un nouveau project avec l'appwizard 'atl com', puis tu insères un contrôle dans ton projet (un 'full control' fera très bien l'affaire).
tu compiles, tu regardes la page html qui aura été créée avec ton projet, et tu auras ton contrôle activex. tout simple. ce sera du c++ et non pas du C, mais je pense pas que ça te gêne des masses ... on peut faire du COM en C, mais bonjour la syntaxe.
pour démarrer rapidement, regarde dans la msdn le tutorial 'atl polygon'. il t'expliquera comment créer un contrôle, lui donner des paramètres scriptables via vbscript ou jscript, comment déclencher un event, etc ....