SirThornberry hat
hier einen Code gepostet, mit dem es möglich ist zu erkennen, ob eine WMA-Datei mit einem DRM-Schutz versehen ist.
Der Code bedient sich dieser
WinAPI-Funktion:
http://msdn.microsoft.com/library/de...tprotected.asp
Delphi-Quellcode:
function IsFileDRMProtected(AFileName: String): Boolean;
var lCheckProc: function(const AFileName: PWideChar; var AIsProtected: Bool): HRESULT; stdcall;
lLibHandle: Cardinal;
lWideChar : PWideChar;
lSize : Integer;
lRes : HRESULT;
lIsProtected: Bool;
begin
lLibHandle := LoadLibrary('wmvcore.dll');
if (lLibHandle > 0) then
begin
lCheckProc := GetProcAddress(lLibHandle, 'WMIsContentProtected');
if Assigned(lCheckProc) then
begin
GetMem(lWideChar, MAX_PATH * SizeOf(WideChar));
StringToWideChar(AFileName, lWideChar, MAX_PATH);
lRes := lCheckProc(lWideChar, lIsProtected);
case lRes of
S_OK: result := lIsProtected
else result := False;
end;
end
else
result := False;
end
else
result := False;
end;
Oder alternativ mit statisch eingebundener Bibliothek:
Delphi-Quellcode:
type
function WMIsContentProtected(const AFileName: PWideChar; var AIsProtected: Bool): HRESULT; stdcall; external 'wmvcore.dll';
[...]
function IsFileDRMProtected(AFileName: String): Boolean;
var lWideChar : PWideChar;
lSize : Integer;
lRes : HRESULT;
lIsProtected: Bool;
begin
GetMem(lWideChar, MAX_PATH * SizeOf(WideChar));
StringToWideChar(AFileName, lWideChar, MAX_PATH);
lRes := WMIsContentProtected(lWideChar, lIsProtected);
case lRes of
S_OK: result := lIsProtected
else result := False;
end;
end;