当COM对象被删除但是试图被引用时,我应该返回什么错误?

时间:2017-12-14 22:30:33

标签: com

我已经在通过JavaScript / VB使用的遗留框架上扩展了C ++中的API。有一个对象可以从另一个对象创建。但是,编码器可以保持该对象(它已暴露)并对其进行操作。此外,可以删除该对象。由于最后一部分,我需要保留对象,即使在开发人员尝试通过该对象引用时将其删除,如果他们尝试这样做,则返回错误(HRESULT),否则,它可能会导致崩溃。

我应该使用的最佳常见HRESULT是什么?我似乎找不到符合我想要的东西。

我发现winerr.h文件中唯一可能是ERROR_FLT_DELETING_OBJECT的文件是delete,但我并不认为它是为此而存在的。

修改

也许我不应该使用detach这个词,而是将其替换为detached。对象是来自主对象的detached,但仍然存在直到gc清理为止。但是,如果用户试图使用这个var newObj = container.create_newObject(); newObj.doStuff(); container.doStuffWithNewObject(newObject); container.RemoveObject(newObj); newObj.doStuff(); // ERROR - see, still have reference and attempting to do stuff. container.doStuffWithNewObject(newObject); // ERROR 对象,我希望他们醒悟到他们已经分离它并且他们不应该再玩它了。

实施例

<ul>
     <li>
           <a nav-bar-select ui-sref="page1" >Page 1  </a>
     </li>
     <li>
        <a nav-bar-select ui-sref="page2" >Page 2</a>
     </li>
     <li>
            <a nav-bar-select  ui-sref="page3">Page 3</a>
     </li>
</ul>

0 个答案:

没有答案