This header file does not contain nor is referenced by adequate documentation.
Due to fundamental design errors in the creation of this file and the related is included first.
NOTE: DO NOT CONFUSE THIS WITH Heap Alloc, WHICH IS DIFFERENT!
The Allocate Heap API describing what should be a typedef to a function.
The pe New field is described as Specifies an array of PALETTEENTRY structures, of size b Num Entries.
Does not state if this is done as a spin lock or a thread-blocking lock.
This entry claims it is an alphabetical function reference to the C library, but it is a nearly-completely-empty page, except for stating what it is not. When I moved to VS2008, I find that VS2008 doesn't have this feature, doesn't support it, issues warnings if it is present, has no interface for removing it, does not allow it to be hand-edited from the command line, and I cannot find in the text or .vcproj files anything that says /ANALYZE. The means of removing this option are not documented, but it turns out that you have to look for a line referencing "Pre Fast" and delete it. Note that none of this is helped by the total inconsistency where some values are expressed in decimal and some in hex; EVERY symbol that has a "version" meaning shall have all its version history displayed. Therefore, if the last error value is needed, it must be obtained before the ASSERT macro appears, because otherwise, in debug mode, this critical piece of information will be lost.
For example, note the following two incorrect examples and the correct example which follows them are included in a build, this symbol will produce a "duplicate macro definition" warning because the files are poorly-written, interacting, have an unfortunate sequentiality on their inclusion caused by hopelessly inadequate management of the header files, and just generally represent A Prime Example Of Worst Practice, If both files are included, are included in a build, this symbol will produce a "duplicate macro definition" warning because the files are poorly-written, interacting, have an unfortunate sequentiality on their inclusion caused by hopelessly inadequate management of the header files, and just generally represent A Prime Example Of Worst Practice, If both files are included, , is not documented in the AVI documentation. The description AVIERR_NOCOMPRESSOR might state something about what had gone wrong. "It is not valid to assume that any particular compressor is installed.
Would it be asking too much to have such simple See-Also references?
There is also no hyperlink to Allocate User Physical Pages. It would have been nice to have something meaningful in the description of _ATL_VER, such as the following table. A Tip of the Flounder Fin to David Scambler for this information The ASSERT macro is missing an absolutely critical piece of information in its Remarks section: The ASSERT macro will reset the value found by :: Get Last Error to 0 (ERROR_SUCCESS).