I have been watching this post for some time now as I was interested to see if C1 would ever notice that it was here. As usual they did, but very very late.
I would like to be the first to throw in documentation suggestions.
1. This is the easiest, Make sure your samples build and work. Often, if not all the time, your samples error when the most up to date C1 components get put in. So, anytime after the samples are distributed if C1 updates anything it fails to check that behavior in the samples. Then, when I or another customer opens the samples they will not build and it is up to us to figure out how to fix the samples that we were hoping would teach us.
2. In your chm file, provide examples not just generic definitions. In other words, how do I use this property, function etc in practice. This will serve 2 purposes. One, it will help your clients. Two, it will help C1 actually think about the tools and changes they make to their tools from a user point of view. Something that has been drastically missing in the past.
3. In your readme distributed with each dll update be honest. Yes your tool has bugs, lots of them, every tool does and every user expects them too. We are realistic and realize the complex endeavor you have taken on. Admit that there were specific bugs and list them as fixed. Do not be generic, general, and dishonest. If I have been waiting for a bug fix for 3 months and I find out that it was fixed 2 versions ago but no one documented it I will be far more angry than if I had to wait 2 months and knew the day it came out. This is a constant issue. There is no reason for C1 to have a release, if no bug fixes are listed. And this happens often.
4. This is most important. When you put out a major release/upgrade give your users a clue as to what an upgrade will entail. Maybe look into a little backwards compatibility, maybe an example of what code changes may be needed, or an idea of conceptual changes and what they will affect. Maybe work with a client or 2 and make sure that an upgrade is even possible with your new tools. If it is not, figure out some way to appease your long time clients when they have to do a complete rewrite to keep up because of your decisions. Expecting your users to figure that out on their own, rewrite entire projects all without guidance, reason or documentation, is unnacceptable. This is the reason that people stick to your old products even when superior releases are out.
5. Fix your licensing system. Enough has been written about this, you know the problems with it, everyone does. Just fix it.