a ProgID can have no more than 39 characters 'id'; nor contain any punctuation apart from '.'; nor start with a digit
The progid attribute has restrictions on the values that it can take.
The following sample generates C3507:
[module(name="x")]; [ coclass, progid("0123456789012345678901234567890123456789"), uuid("00000000-0000-0000-0000-000000000001") ] struct CMyStruct { }; void main() { }