Attribute Providers

Though the compiler allows that attributes may be provided through arbitrary provider DLLs, the means to write, install and use provider DLLs seems to be undocumented. Moreover, what is undocumented has been kept well secret: at the time of writing, in July 2006, a search of the Internet via Google for IAttributeGrammar, which is known to be Microsoft’s name for a COM interface that must be implemented by every attribute-provider DLL, produces zero matches.

Internal Providers

In version 13.00.9466, two attribute providers are internal to the compiler. One is documented and one not. The one that is  documented is active by default, so that the attributes it recognises are available to the programmer without requiring any preparation: these attributes have, in effect, been built in to the language.

External Providers

The compiler knows of two particular attribute-provider DLLs. One, named ATLPROV.DLL, is included with the product and is documented. The other, named COMPSEC.DLL, is not included and is apparently not documented.