Passing IStorage Pointer to Local COM Server and Calling IStorage::CopyTo May Result in "0x80010105 (RPC_E_SERVERFAULT)"

This article was previously published under Q289737
This article has been archived. It is offered "as is" and will no longer be updated.
SYMPTOMS
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").
WORKAROUND
To work around this problem, close and re-open the file before passing it the IStorage pointer to the local COM server.
RESOLUTION
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
STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
MORE INFORMATION
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.
Properties

Article ID: 289737 - Last Review: 10/23/2013 16:34:24 - Revision: 3.2

  • Microsoft Windows 2000 Service Pack 1
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Service Pack 1
  • kbnosurvey kbarchive kberrmsg kbbug kbfix KB289737
Feedback