This article was previously published under Q289737
This article has been archived. It is offered "as is" and will no longer be updated.
Passing an IStorage pointer that references the root storage of a newly created structured storage file to a local COM server and then calling IStorage::CopyTo on this interface pointer results in a 0x80010105 error code ("Server threw an exception").
To work around this problem, close and re-open the file before passing it the IStorage pointer to the local COM server.
To resolve this problem, obtain the latest service pack for Windows 2000. For additional information, click the following article number to view the article in theMicrosoft Knowledge Base:
260910 How to Obtain the Latest Windows 2000 Service Pack
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
This problem occurs only when the COM server is running under a different user account than the COM client. If the COM server identity is configured to run under the same user account as the client, the error does not occur. The error occurs only when the COM server is local to the client. If the COM server is remote, the error does not occur. Also, the error seems to occur only when the document file is created with sub-objects (streams and sub-storages) and then passed to the server. If the file is closed (the root storage is released) and then reopened before passing the IStorage pointer to the COM server, the error does not occur.