Geoff Chappell - Software Analyst
The IAttributeGrammar interface is implemented by C++ attribute providers to show what attributes they support and with what rules.
The IID is {64626787-83F5-11D2-B8DA-00C04F799BBB}. The methods, in vtable order after the three IUnknown methods, are:
| Offset | Method |
|---|---|
| 0x0C | GetAllAttributes |
| 0x10 | GetListenToAttributes |
| 0x14 | GetAttributeList |
| 0x18 | GetArgumentList |
| 0x1C | GetArgumentValueList |
| 0x20 | GetAttributeUsage |
| 0x24 | GetArgumentDefault |
| 0x28 | GetAttributeCategory |
| 0x2C | GetRepeatable |
| 0x30 | GetArgumentType |
| 0x34 | GetRequiredArguments |
| 0x38 | GetRequiredAttributes |
| 0x3C | GetRequiredClassAttributes |
| 0x40 | GetArgumentRequiredAttributes |
| 0x44 | GetInvalidAttributes |
| 0x48 | GetInvalidClassAttributes |
| 0x4C | GetArgumentInvalidAttributes |
| 0x50 | GetHelpString |
| 0x54 | GetAttributeHelpString |
| 0x58 | GetArgumentHelpString |
| 0x5C | GetMeta |
| 0x60 | GetVariableArguments |
| 0x64 | AttributeToInt |
| 0x68 | GetShipping |
| 0x6C | GetVersion |
| 0x70 | GetNames |
| 0x74 | GetMultiValue |
| 0x78 | GetArgumentRepeatable |
| 0x7C | GetExplicitArguments |
| 0x80 | GetEvent2ForAttribute |
| 0x84 | GetAttributeValidExpression |
| 0x88 | GetClassAttributeValidExpression |
| 0x8C | GetOverLoadList |
| 0x90 | GetOverLoad |
| 0x94 | GetOverloadedAttributes |