Z
Zephyr
Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序中用到了 ActiveX 单元中的 IStorage 和 IStream,但最后我不
知该如何释放它们。IStorage 和 IStream都有一个继承自IUnknown的
_Release方法,但Delphi帮助文档中说:
Do not call the protected _Release method directly. _Release is
called through the IUnknown interface to indicate that another
object is through with the interfaced object抯 interface
pointer. This allows the interfaced object to free itself when
it is no longer used (when the reference count goes to zero).
如果我在一个过程中使用如下代码打开一个结构化文件(Structured
Storage File):
var
Stg: IStorage;
Stm: IStream;
Hr: HResult;
begin
Hr := StgCreateDocFile(..., ..., 0, Stg); // 打开文件
// 在此处对已打开的结构化文件进行操作
...
// 当我不再需要它时,该如何释放它?
end;
我曾试过不去做任何释放的工作,一样可以正常使用,但我总觉得该做点
什么。
各位大侠对此有何见解,请多多赐教。
知该如何释放它们。IStorage 和 IStream都有一个继承自IUnknown的
_Release方法,但Delphi帮助文档中说:
Do not call the protected _Release method directly. _Release is
called through the IUnknown interface to indicate that another
object is through with the interfaced object抯 interface
pointer. This allows the interfaced object to free itself when
it is no longer used (when the reference count goes to zero).
如果我在一个过程中使用如下代码打开一个结构化文件(Structured
Storage File):
var
Stg: IStorage;
Stm: IStream;
Hr: HResult;
begin
Hr := StgCreateDocFile(..., ..., 0, Stg); // 打开文件
// 在此处对已打开的结构化文件进行操作
...
// 当我不再需要它时,该如何释放它?
end;
我曾试过不去做任何释放的工作,一样可以正常使用,但我总觉得该做点
什么。
各位大侠对此有何见解,请多多赐教。