BUG: CDO in C/C++ RawTable->Release() Hangs at Logoff

ID: Q183248

The information in this article applies to:

SYMPTOMS

Calling RawTable->Release() after Logging off the Collaboration Data Objects (CDO) session causes the application to hang.

CAUSE

There is an invalid assumption in the destructor process. Release() is called on the data member for the RawTable without verifying that it is not NULL.

RESOLUTION

Release RawTable before calling Logoff.

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.

MORE INFORMATION

Steps to Reproduce Behavior

1. Logon using the IDispatch Session Object.

2. Access the AddressList object via Session for Personal AddressBook.

3. Access the AddressEntries Collection via the AddressList AddressEntries

   property.

4. Access the RawTable of the AddressEntries object.

5. Logoff from the Session.

6. Call the following:

      RawTable->Release();

   CDO crashes at this point.

Similar behavior may also occur in Microsoft Visual Basic when using the CDO Rendering Library (Cdohtml.dll) if the application logs off and then attempts to release its rendering objects.

The resolution in Visual Basic is basically the same as above, release the objects that use the RawTable (Rendering), then Logoff.

REFERENCES

For information about Collaboration Data Objects versus Active Messaging, please see the following article in the Microsoft Knowledge Base:

   ARTICLE-ID: Q176916
   TITLE     : INFO: Active Messaging and Collaboration Data Objects (CDO)

Additional query words: ActMsg
Keywords          : kbCDO110bug kbCDO120bug kbVC 
Version           : WINDOWS:1.1,1.2
Platform          : WINDOWS
Issue type        : kbbug
Solution Type     : kbnofix

Last Reviewed: April 8, 1999