代码之家  ›  专栏  ›  技术社区  ›  Joril

使用StgOpenStorage以只读方式打开OLE复合文档

  •  1
  • Joril  · 技术社区  · 16 年前

    我在XP下使用StgOpenStorage API来读取OLE复合文档,但是我找不到正确的标志组合来告诉Windows我只需要这样做 阅读
    现在我正在使用 STGM_READ | STGM_EXCLUSIVE 但是很明显,如果我同时尝试从另一个应用程序打开文件,它会抱怨访问被拒绝。。所以我试过了 STGM_READ | STGM_SHARE_DENY_NONE 但它抱怨无效的标志。。

    提前谢谢!

    (如果相关的话,我将通过pythoncom从Python调用API)

    1 回复  |  直到 16 年前
        1
  •  2
  •   Twenty Oded    5 年前

    当指定STGM_直接标志时,只有以下组合之一 可以从访问和共享组中指定标志的个数

    STGM_READ | STGM_SHARE_DENY_WRITE
    STGM_READWRITE | STGM_SHARE_EXCLUSIVE
    STGM_READ | STGM_PRIORITY
    

    请注意,没有交易的STGM_意味着直接模式。 也就是说,如果未指定STGM_DIRECT或交易的STGM_,则STGM_DIRECT

    这表明将标志更改为

    STGM_READ | STGM_SHARE_DENY_NONE | STGM_TRANSACTED