Geoff Chappell - Software Analyst
The table below lists the errors that the ATL Attribute Provider (ATLPROV) is known to be capable of issuing in version 7.00.9466.0. Text for each error message is reproduced from the corresponding resource string in the executable, with placeholders resolved as much as possible in the style of the product documentation.
Error numbers that the product documentation does not list among the ATL Provider Errors and Warnings are highlighted yellow. There are only two, and one of these is obviously never meant to occur (and Microsoft perhaps does not even realise that it can). That the product documentation’s list is so close to complete is remarkable only because it is so unusual. For rather many error numbers, the product documentation provides no more detail than does this page’s list: it reproduces the message text, but with no additional comment. One error, ATL2234, is listed by the product documentation but is omitted here because it actually occurs as a warning (and is therefore listed here among the ATL Warnings).
ATL errors feed back to the compiler as error C2338. The message text for the compiler error then gives the ATL details, citing an attribute as well as showing the ATL error number and the ATL message text:
position : error C2338: attribute Atl Attribute Provider : error ATLnumber: message
Given that this compiler error is so plainly described as originating with the ATL Attribute Provider, it perhaps does not matter that C2338 does not appear in the product documentation’s list of C/C++ Build Errors.
Error | Message |
---|---|
ATL0 | Unknown error #number |
ATL2004 | Out of memory processing attributes. |
ATL2007 | Requires inclusion of header header.h. |
ATL2010 | Undeclared identifier "id". |
ATL2011 | Only 1 inline unnamed attribute allowed per scope. |
ATL2012 | Missing attribute db_accessor(num). |
ATL2013 | class "class" contains a COLUMN_MAP. Attribute cannot be used on the class |
ATL2014 | class "class" contains a PARAM_MAP. Attribute cannot be used on the class |
ATL2015 | Attribute cannot be used on a class that has constructor and/or destructor |
ATL2020 | Unknown root key format, no acceptable root key found in "key" |
ATL2021 | Subkey syntax - (\) not allowed in values |
ATL2023 | Attribute should be used with a real array with storage backing it and not just a simple pointer. |
ATL2024 | Attribute should be used with a 4 byte storage data type for a DWORD key. |
ATL2025 | Failed to compile RGS, Unknown Root key "key" specified. |
ATL2026 | Failed to compile RGS, Syntax error - expecting a {, found "string". |
ATL2027 | Failed to compile RGS, Out of memory. |
ATL2028 | Failed to compile RGS, RGS tree contains unparseable constructs. |
ATL2029 | Failed to compile RGS, Syntax error - [!ifexist] not followed by [!endif] |
ATL2030 | Failed to compile RGS, Syntax error - closing ')' not found to match '(' in ifexist block. |
ATL2031 | Failed to compile RGS, Syntax error - illegal else without matching if. |
ATL2032 | Failed to compile RGS, Attribute "attr" specified in the script not found in attribute block. |
ATL2033 | Failed to compile RGS, Value "value" specified in script not found in attribute block. |
ATL2034 | Failed to compile RGS, Script file "filename" not found. |
ATL2050 | Attribute cannot be specified on a class that indirectly derives from CComCoClass. |
ATL2054 | Unknown interface "interface" used with attribute. |
ATL2055 | Interface "interface" does not have a UUID associated with it. |
ATL2056 | Derive from either "class1" or "class2", not both. |
ATL2057 | Derive from either "class" or "template<class>", not both. |
ATL2070 | "symbol" cannot be used in attributed project |
ATL2100 | Cannot have more than one default counter per perf_object: "object" already has a default counter |
ATL2102 | Must define either a name_res/help_res or a namestring/helpstring. |
ATL2103 | Cannot have a perf_counter without a perf_object class. |
ATL2104 | Must define one perf counter type. Use either countertype or countertype_string |
ATL2105 | Invalid Counter Type: "type". Only the
following counters are supported through countertype_string: counter, timer,
bulk_count, text, rawcount, value, rate, fraction, base, elapsed, queuelen,
histogram, precision. For other counters, use the countertype parameter with the perf counter type value. |
ATL2107 | Replacement methods that have parameters must use simple types or specify the parse_func parameter to tag_name. |
ATL2108 | "sdl" parameter requires "soap_handler" attribute |
ATL2109 | Invalid number of indirections. For default parameter handling, one indirection is required for the replacement method. |
ATL2112 | Using the tag_name attribute with the parse_func parameter requires that the function take the parsed arguments as a parameter |
ATL2200 | Invalid struct field |
ATL2201 | Indirections not supported on soap headers |
ATL2202 | Out parameters must be pointers |
ATL2203 | soap_handler class must expose at least one method using soap_method |
ATL2204 | Parameters with more than one indirection must have a size_is attribute |
ATL2205 | "method" is not an interface method. SOAP methods must be introduced by an interface. |
ATL2206 | "string" is not valid. The string cannot contain '<' or '>' |
ATL2207 | "param" parameter of method "method" has too many indirections. Fixed size arrays cannot have indirections. |
ATL2209 | "param" parameter of method "method" has an illegal size_is attribute. The size_is attribute is only allowed on variable length out arrays. |
ATL2210 | "param" parameter of method "method" has more than size_is parameter. Only one dimensional variable length arrays are supported. |
ATL2211 | "param" parameter of method "method" is missing a size_is attribute. Variable length out arrays require the size_is attribute. |
ATL2212 | The "size" size_is parameter for the "param" parameter of method "method" must be an out parameter. |
ATL2213 | "param" parameter of method "method" has too many indirections. In parameters cannot have more than 1 indirection. |
ATL2214 | "param" parameter of method "method" has too many indirections. Out parameters cannot have more than 2 indirections. |
ATL2215 | "param" parameter of method "method" has an illegal size_is attribute. The size_is attribute is only allowed on variable length arrays. |
ATL2216 | SOAP methods cannot have parameters that are templatized |
ATL2217 | Cannot process "name": SOAP methods that have parameters with base classes are not supported in this version. |
ATL2218 | Cannot process "name": SOAP methods cannot have parameters that are templatized |
ATL2219 | Cannot process "struct", failure at field "field": SOAP structs cannot have fields that are templatized |
ATL2220 | Failed processing "string" |
ATL2221 | SOAP headers can only be simple types. |
ATL2222 | Cannot process "field": struct/class fields cannot have indirections. |
ATL2223 | Cannot process: "name": SOAP methods with SAFEARRAY parameters are not supported. |
ATL2225 | Cannot process: "union": unions are not supported. |
ATL2227 | Cannot process: "name" of method "method" : soap_header value does not match any member variable. |
ATL2228 | Cannot process: "name" of method "method" : soap_header values must reference public member variables. |
ATL2229 | Cannot process: "struct" : cannot marshal structs with private members. |
ATL2230 | soap_header attribute requires soap_method attribute. |
ATL2231 | Cannot have multiple soap_headers with the same name: "name". |
ATL2232 | Cannot have multiple "in" soap_headers referencing the same value: "value". |
ATL2235 | Cannot process soap_header "header" of method "method" : fixed-size arrays cannot be used in a SOAP header directly; please wrap the array in a struct. |
ATL2236 | invalid use of retval on method "method" : a retval parameter must be the last parameter on the method. |
ATL2237 | ATL Server does not support style="style" with use="use". |
ATL2238 | Unrecognized style: "style". Legal values are: "document" and "rpc". |
ATL2239 | Unrecognized use: "use". Legal values are: "literal" and "encoded". |
ATL2240 | "field" field of struct "struct" has too many indirections. Fixed size arrays cannot have indirections. |
ATL2241 | Cannot process: "name" : size_is field "size" has invalid type "type". |
ATL2242 | Cannot process: "name" : field "field" has too many indirections. |
ATL2243 | Cannot process: "name" : size_is field "field" does not exist. |
ATL2244 | Cannot process: "name" : field "field" requires size_is attribute. |
ATL2245 | Cannot process: "name" : multidimensional arrays are not supported with style="document" and use="literal", please use style="rpc" and use="encoded". |
ATL2246 | The "size" size_is parameter for the "param" parameter of method "method" must be an in parameter. |
ATL2247 | Cannot process: "name" : size_is parameter "size" does not exist. |
ATL2248 | Cannot process: "name" : SOAP methods cannot have unnamed parameters. |
ATL2249 | "name" is not a valid soap_handler name. The value must be a valid C++ identifier. |