我需要在Delphi 7中使用IStorage
和IStream
接口。我需要IStorage实例中的存储和流的名称列表。如果我试着像这样收集它们:
procedure TStorageUtility.collectElementNamesByType( iStg_ : IStorage; names_ : TStringList; type_ : byte );
var
enum : IEnumSTATSTG;
rec : StatStg;
num : integer;
begin
if ( iStg_.enumElements( 0, NIL, 0, enum ) = S_OK ) then
while ( enum.next( 1, rec, @num ) = S_OK ) do
begin
if ( rec.type = type_ ) then
names_.add( wideString( rec.pwcsName ) );
end;
end;
我收到编译错误:
Identifier expected but 'TYPE' found
在
行if ( rec.type = type_ ) then
以下是STATSTG记录定义:https://msdn.microsoft.com/en-us/library/windows/desktop/aa380319(v=vs.85).aspx
如何在没有任何编译器错误消息的情况下检查记录类型?
答案 0 :(得分:1)
行。 MSDN文档(对于Delphi用户)具有误导性。 STATSTG
的此字段在ActiveX单元中按名称dwType
定义。当我使用它时,它当然会编译。