ATL Attribute Provider Warnings

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.

Warning Level Message
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 request_handler
attribute or does not derive from CRequestHandlerT will add extra code to your class instance.