Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
Delphi 10 Seattle Enterprise
|
AW: Function (WIMGetMountedImageInfo)
18. Dez 2013, 00:39
@Zacherl
Folgendes würde ich ändern
Delphi-Quellcode:
var
Lwimgapi : HMODULE;
LSuccess : Boolean;
LBuffer : PWIM_MOUNT_INFO_LEVEL0_LIST;
LBufferLength, LReturnLength, LImageCount : DWord;
LIdx : Integer;
LLastError : Cardinal;
begin
Lwimgapi := LoadLibrary( 'wimgapi.dll' );
if Lwimgapi = 0
then
RaiseLastOSError;
try
@WIMGetMountedImageInfo := GetProcAddress( Lwimgapi, 'WIMGetMountedImageInfo' );
LBufferLength := SizeOf( WIM_MOUNT_INFO_LEVEL0 ) * 8;
GetMem( LBuffer, LBufferLength );
try
repeat
LSuccess := WIMGetMountedImageInfo( MountedImageInfoLevel0, LImageCount, LBuffer, LBufferLength, LReturnLength );
if LSuccess
then
begin
for LIdx := 0 to LImageCount - 1 do
begin
ShowMessage( StrPas( PWideChar( @LBuffer^[LIdx].WimPath[0] ) ) );
end;
end
else
begin
LLastError := GetLastError;
case LLastError of
ERROR_INSUFFICIENT_BUFFER :
begin
ReallocMem( LBuffer, LReturnLength );
end;
else
RaiseLastOSError( LLastError );
end;
end;
until LSuccess;
finally
FreeMem( LBuffer );
end;
finally
FreeLibrary( Lwimgapi );
end;
end;
EDIT
GetProcAddress
ist auch noch ein Kandidat zum Prüfen ... aber jetzt nicht mehr
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
Geändert von Sir Rufo (18. Dez 2013 um 00:51 Uhr)
|