{$E wdx}
library Segd1Inf1;
uses
Windows,
SysUtils,
ContPlug,
Usegdread,
Classes;
const
_DetectString: PAnsiChar = 'EXT="segd"';
_FieldsNum = 3;
_Fields: array[0.._FieldsNum-1] of PAnsiChar = (
'prof ',
'piket ',
'data ');
procedure ContentGetDetectString(DetectString: PAnsiChar; maxlen: integer); stdcall;
begin
lstrcpynA(DetectString, _DetectString,maxlen);
end;
function ContentGetSupportedField(FieldIndex: integer; FieldName: PAnsiChar;
Units: PAnsiChar; maxlen: integer): integer; stdcall;
begin
if FieldIndex in [0..High(_Fields)] then
begin
lstrcpynA(FieldName,_Fields[FieldIndex],maxlen);
strcopy(Units,'');
Result := FT_STRING;
end else Result := ft_NoMoreFields;
end;
function ContentGetValueW(fn: PWideChar; FieldIndex, UnitIndex: integer;
FieldValue: PWideChar; MaxLen, Flags: integer): integer; stdcall;
var
s: AnsiString;
ext: string;
begin
if (FieldIndex<0) or (FieldIndex >= _FieldsNum) then
begin Result:= FT_NOSUCHFIELD; Exit end;
ext:= LowerCase(ExtractFileExt(fn));
if (Flags and CONTENT_DELAYIFSLOW)>0 then
if (ext<>'') then begin Result:= FT_DELAYED; Exit end;
s:= segdread(fn, FieldIndex);
if s=''
then
Result:= FT_FIELDEMPTY
else
begin
lstrcpynW(FieldValue, PWideChar(Widestring(s)), MaxLen);
Result:= FT_STRINGW;
end;
end;
function ContentGetValue(fn: PAnsiChar; FieldIndex, UnitIndex: integer;
FieldValue: PWideChar; MaxLen, Flags: integer): integer; stdcall;
begin
//Result := ContentGetValueW(PWideChar(WideString(fn)), FieldIndex, UnitIndex, FieldValue, MaxLen, Flags);
Result:=ft_fieldempty;
end;
exports
ContentGetDetectString,
ContentGetSupportedField,
ContentGetValueW,
ContentGetValue;
end.
{$R *.res}
begin
end.
|