对于使用StgCreateStorageEx创建的IStorage,打开的win32 IStream对象是否有数字限制?

时间:2011-04-07 13:02:47

标签: c++ winapi com window ole

我通过StgCreateStorageEx函数创建一个IStorage,类型为:STGFMT_STORAGE

然后我使用CreateStream方法创建IStream个对象(大约60个)。

我没有在所有Release接口上调用IStream,但当我在其中一些接口上调用Seek时,它会返回STG_E_REVERTED

但是,如果我创建它们并逐个使用它们,它就能正常工作。

有谁知道为什么?

有限制吗?

2 个答案:

答案 0 :(得分:0)

我希望这取决于操作系统允许打开的文件句柄的最大数量。对于Windows案例,请参阅此讨论:http://social.msdn.microsoft.com/Forums/en-US/windowssdk/thread/ce6ce7df-b769-41b7-bccf-b75707c0a729/

答案 1 :(得分:0)

MSDN说:

  • 不支持STGM_DELETEONRELEASE标记。
  • 不支持从同一存储中多次打开相同的流。必须在STGM_SHARE_EXCLUSIVE参数中指定grfMode共享模式标志。

你之前发布过这些流吗?