I've never created one as an add-in, but with the standard COM implementation the UserData property is something you can implement yourself. It can return anything you set it to return since it's typed as Object. In one implementation we've created, we return the user control. In this case, you can access the controls it houses via its Controls collection. In another implementation we return a custom object class we created to allow the passing of data via properties on that class. I would imagine with an add-in you could override the property to return whatever you want but I don't know that for sure.