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



The information in this article applies to:

  • Microsoft Windows 2000 Server SP1
  • Microsoft Windows 2000 Advanced Server SP1
  • Microsoft Windows 2000 Professional SP1

This article was previously published under Q289737

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 the Microsoft 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.

Modification Type:MajorLast Reviewed:11/14/2003
Keywords:kbbug kberrmsg kbfix KB289737