EP_MiscGetWatermark
EP_MiscGetWatermark 函数获取被保护程序水印。点击 水印 查看更多信息。
参数
- ID - 返回水印数;
- WM - 水印内容状态,如果为空则返回水印数;
- WM.WMType - 返回水印形式;
- WM.Name - 水印名;
- WM.NameLen - 水印名长度;
- WM.Text - 水印内容,如果空则返回内容长度;
- WM.TextLen - 水印内容长度;
- WM.FileName - 水印文件名,空则返回内容长度;
- WM.FileNameLen - 水印文件长度;
- WM.AFile - 返回水印文件,为空则返回内容长度;
- WM.AFileLen - 水印文件内容长度;
返回值
如果函数执行成功,返回水印数。否则返回0。
备注
以下情况函数不能成功执行:
定义
Show/Hide C++ function definition
extern "C" __declspec( dllexport ) __stdcall int EP_MiscGetWatermark( int ID, PWMContent WM );
Show/Hide Delphi function definition
function EP_MiscGetWatermark(ID : integer; WM : PWMContent) : integer; stdcall;
Show/Hide Visual Basic function definition
Public Declare Function EP_MiscGetWatermark Lib "enigma_ide.dll" (ByVal ID As Long, ByVal WM As TWMContent) As Long
Show/Hide C# (.NET) function definition
public class Enigma_IDE
{
[DllImport("enigma_ide.dll", CallingConvention = CallingConvention.StdCall)]
public static extern Int32 EP_MiscGetWatermark(Int32 ID, TWMContent WM);
}
实例
Show/Hide Delphi function example
uses
enigma_ide;
procedure TForm1.FormShow(Sender: TObject);
var
i : integer;
wmc : TWMContent;
begin
for i := 0 to EP_MiscGetWatermark(0, nil) - 1 do
begin
ZeroMemory(@wmc, sizeof(wmc));
EP_MiscGetWatermark(i, @wmc);
GetMem(wmc.Name, wmc.NameLen + 1);
ZeroMemory(wmc.Name, wmc.NameLen + 1);
GetMem(wmc.Text, wmc.TextLen + 1);
ZeroMemory(wmc.Text, wmc.TextLen + 1);
GetMem(wmc.FileName, wmc.FileNameLen + 1);
ZeroMemory(wmc.FileName, wmc.FileNameLen + 1);
wmc.AFileLen := 0;
EP_MiscGetWatermark(i, @wmc);
with ListView1.Items.Add do
begin
Indent := i;
Caption := IntToStr(i);
if wmc.WMType = WM_PUBLIC then
SubItems.Add('PUBLIC')
else
SubItems.Add('PRIVATE');
if strlen(wmc.Name) > 0 then
SubItems.Add(wmc.Name)
else
SubItems.Add('');
if strlen(wmc.Text) > 0 then
SubItems.Add(wmc.Text)
else
SubItems.Add('');
if strlen(wmc.FileName) > 0 then
SubItems.Add(wmc.FileName)
else
SubItems.Add('');
end;
FreeMem(wmc.FileName);
FreeMem(wmc.Text);
FreeMem(wmc.Name);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
fs : TFileStream;
wmc : TWMContent;
begin
if ListView1.Selected = nil then Exit;
if ListView1.Selected.Indent >= EP_MiscGetWatermark(0, nil) then Exit;
ZeroMemory(@wmc, sizeof(wmc));
EP_MiscGetWatermark(ListView1.Selected.Indent, @wmc);
wmc.NameLen := 0;
wmc.Text := 0;
GetMem(wmc.FileName, wmc.FileNameLen + 1);
ZeroMemory(wmc.FileName, wmc.FileNameLen + 1);
GetMem(wmc.AFile, wmc.AFileLen);
EP_MiscGetWatermark(ListView1.Selected.Indent, @wmc);
SaveDialog1.FileName := wmc.FileName;
SaveDialog1.DefaultExt := ExtractFileExt(wmc.FileName);
if SaveDialog1.Execute then
begin
try
fs := TFileStream.Create(SaveDialog1.FileName, fmCreate);
fs.Write(wmc.AFile^, wmc.AFileLen);
finally
fs.Free;
end;
end;
FreeMem(wmc.AFile);
FreeMem(wmc.FileName);
end;
可以在安装文件夹下 Examples\Watermarks 子文件夹里查看函数使用实例。