Geoff Chappell - Software Analyst
The table below lists the warnings 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.
All these warning numbers are listed among the ATL Provider Errors and Warnings in the product documentation (though ATL2234 is listed as an error). For rather many of the warnings, the product documentation provides no more detail than does this page, i.e., it reproduces the message text, with no additional comment. Even so, the product documentation has a list that actually is complete! One warning (ATL4052) that is listed by the product documentation is omitted here because its occurrence is believed to be impossible.
ATL warnings feed back to the compiler as warning C4199. The message text for the compiler warning then gives the ATL details. The ordinary form cites an attribute as well as showing the ATL warning number and the ATL message text:
position : warning C4199: attribute Atl Attribute Provider : warning ATLnumber: message
However, for a few ATL warning numbers (ATL4001, ATL4002, ATL4003 and ATL4005), the ATL message text becomes the whole of the message text for compiler warning C4199. The programmer who runs into such cases sees just
position : warning C4199: message
with no ATL warning number, no indication that the warning originated with the ATL Attribute Provider, and no help from the product documentation, which omits C4199 from its list of C/C++ Build Errors.
|ATL2234||3||ignoring soap_header "header", with in=false and out=false.|
|ATL4001||3||Cannot inject full attribute code due to duplicate member: member|
|ATL4002||3||Cannot inject full attribute code due to duplicate base class: base|
|ATL4003||3||Cannot inject full attribute code due to duplicate global: global|
|ATL4005||1||Attributes are not supported on nested classes|
|ATL4051||3||class "class" derives from CComObjectRoot(Ex). Not injecting base class. Ignoring threading attribute.|
|ATL4053||3||class "class" derives from CComCoClass. Not injecting base class.|
|ATL4058||4||"interface" is not an interface defined in embedded IDL. It will not be replaced with the corresponding IDispatchImpl|
|ATL4071||3||class "class" derives from "base". Not injecting base class.|
|ATL4101||3||Creating multiple handler entries for request_handler class: class|
|ATL4105||3||class "class" already derives from IRequestHandler. Not injecting base class.|
|ATL4106||3||Duplicate tag name: "tag"|
|ATL4110||3||Creating default handler name "name"|
|ATL4111||3||Using the tag_name attribute on a class that does not have the
attribute or does not derive from CRequestHandlerT will add extra code to your class instance.