请问谁能帮忙翻译一组Delphi代码为VB代码?

来源:百度知道 编辑:UC知道 时间:2024/05/04 10:36:10
uses ActiveX, ShlObj, ComObj;

function SHMultiFileProperties(pDataObj: IDataObject; Flag: DWORD): HRESULT;
stdcall; external 'shell32.dll';

function GetFileListDataObject(Files: TStrings): IDataObject;
type
PArrayOfPItemIDList = ^TArrayOfPItemIDList;
TArrayOfPItemIDList = array[0..0] of PItemIDList;
var
Malloc: IMalloc;
Root: IShellFolder;
p: PArrayOfPItemIDList;
chEaten, dwAttributes: ULONG;
i, FileCount: Integer;
begin
Result := nil;
FileCount := Files.Count;
if FileCount = 0 then Exit;

OleCheck(SHGetMalloc(Malloc));
OleCheck(SHGetDesktopFolder(Root));
p := AllocMem(SizeOf(PItemIDList) * FileCount);
try
for i := 0 to FileCount - 1 do
try
if not (DirectoryExists(Files[i]) or FileExists(Files[i])) then Continue;
OleCheck(Root.ParseDisplayName(GetActiveWindow,
nil,
PWideChar(WideString(

代码很不完整,只能翻译到这个程度了

'uses ActiveX, ShlObj, ComObj

Public Declare Function SHMultiFileProperties Lib "shell32.dll" (pDataObj As IDataObject, Flag As DWORD) As stdcall

Function GetFileListDataObject(Files As TStrings) As IDataObject
Dim PArrayOfPItemIDList
PArrayOfPItemIDList = TArrayOfPItemIDList
Dim TArrayOfPItemIDList As PItemIDList
TArrayOfPItemIDList = Array(0#)

Dim Malloc As IMalloc
Dim Root As IShellFolder
Dim p As PArrayOfPItemIDList
Dim chEaten, dwAttributes As ULONG
Dim i, FileCount As Integer

Result = Null
FileCount = Files.Count
If FileCount = 0 Then Exit Function

OleCheck (SHGetMalloc(Malloc))
OleCheck (SHGetDesktopFolder(Root))
p = AllocMem(SizeOf(PItemIDList) * FileCount)
try
For i = 0 To FileCount - 1
try
If (DirectoryExists(Files(