Article ID: 218829 - View products that this article applies to.
This article was previously published under Q218829
This article has been archived. It is offered "as is" and will no longer be updated.
If an argument passed into CComEnumImpl<>::Skip() is a negative number, then the pointer to the current enumeration may not be set correctly.
Following is the implementation of CComEnumImpl<>::Skip():
M_iter points to the current enumeration. If celt is a negative number, Skip() is supposed to set m_iter back "celt" items. If "m_iter + celt" results in a value that is less than m_begin, then this case is not handled and m_iter is set to an invalid pointer.
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.
This bug was corrected in Visual Studio 6.0 Service Pack 3. For more information about Visual Studio service packs, please see the following articles in the Microsoft Knowledge Base:
(https://support.microsoft.com/kb/194022/EN-US/ )INFO: Visual Studio 6.0 Service Packs, What, Where, Why
(https://support.microsoft.com/kb/194295/EN-US/ )HOWTO: Tell That Visual Studio 6.0 Service Packs Are Installed
Article ID: 218829 - Last Review: January 5, 2015 - Revision: 3.0