I was just asked a question by a recent ColorButton Source code customer about how the design time .dll (ColorButton.PocketPC.asmmeta.dll) is created for the ColorButton Control and seeing how it is not obvious in code (there is not a seperate project), I thought I had better explain what is going on.
Within the ColorButton source, there is a file called '
DTAColorButton.xmta'. The DTA part is an abbreviation for Design Time Attributes, by no means a naming convention standard, but something that I have become comfortable with.
The .xmta file simply contains an .xml format definition of the public properties within the ColorButton class. The compiler (magic really) recognises the existance of the .xmta file and creates the ColorButton.PocketPC.asmmeta.dll file, or one appropriate for the project target.
Further, the ColorButton solution shares the one set of source code across all projects in the solution:
ColorButton.Desktop
ColorButton.PocketPC
ColorButton.Smartphone
ColorButton.WindowsCE
Apart from the Desktop compile which has alot of #'s in the code which takes care of the desktop design time attributes:
#if Desktop
[Description("Gets or sets the position information for button content"), Category("Appearance")]
#endif
The rest of the projects compile an asmmeta.dll to suit the device:
ColorButton.PocketPC.asmmeta.dll
ColorButton.WindowsCE.asmmeta.dll
ColorButton.Smartphone.asmmeta.dll
I hope this explains a bit about the source provided by Pocket PC Controls.com and may even give you some insight into creating your own controls.
If you need more info, feel free to add comment.