type
TTAQEXPProxy
=
record
m_
type
: Integer;
m_host:
array
[
0
..
31
]
of
char;
m_port: Integer;
m_userName:
array
[
0
..
51
]
of
char;
m_password:
array
[
0
..
51
]
of
char;
m_domain:
array
[
0
..
51
]
of
char;
end
;
PTAQEXPProxy
=
^TTAQEXPProxy;
TTAQEXPTASK_NODE
=
record
m_id: integer;
m_url:
array
[
0
..
1023
]
of
char;
m_path:
array
[
0
..
255
]
of
char;
m_isReload: Boolean;
m_fileName:
array
[
0
..
31
]
of
char;
m_comments:
array
[
0
..
1023
]
of
char;
m_startMode: integer;
m_threadCount: integer;
m_failedRetryCount: integer;
m_failedRetryInterval: integer;
end
;
PTAQEXPTask_Node
=
^TTAQEXPTASK_NODE;
TTAQEXPDLLCALLBACK
=
procedure
(ID: integer; Data: PTAQEXPTask_INFO);
stdcall
;
TDownLoadInitial
=
function
(Amaxflow: integer; ACallBack: Pointer;
POwnerName: pchar; AUserProxy: Bool; AProxy: PTAQEXPProxy; LogLevel: integer): Integer;
stdcall
;
procedure
DoCallBack(ID: integer; Data: PTAQEXPTask_INFO);
stdcall
;
begin
TTAQEXPManager.GetInstance.DoUpdatePercent(ID,Data);
end
;
procedure
TTAQEXPDownloader.InitDll;
var
LInit: TDownLoadInitial;
LProxy: PTAQEXPProxy;
LMAX: Integer;
begin
if
not
FstateFlag
then
Exit;
new(LProxy);
fillchar(LProxy^,sizeof(TTAQEXPProxy),
0
);
LInit :
=
TDownLoadInitial(
GetProcAddress(FDllHandle, PChar(
'
DownLoadInitial
'
)));
if
Assigned(LInit)
then
begin
if
TTAQEXPManager.GetInstance.Config.Loaded
then
LMAX :
=
TTAQEXPManager.GetInstance.Config.FlowMax
else
LMax :
=
128
;
if
LMAX
<
1
then
LMAX :
=
128
;
if
CreateConfig.ProxyEnable
then
begin
case
CreateConfig.ProxySocksVersion
of
svSocks4:
LProxy^.m_
type
:
=
1
;
svSocks4A:
LProxy^.m_
type
:
=
2
;
else
LProxy^.m_
type
:
=
0
;
end
;
strpcopy(LProxy^.m_host, CreateConfig.ProxyHost);
LProxy^.m_port :
=
strtointdef(CreateConfig.ProxyPort,
80
);
strpCopy(LProxy^.m_userName, CreateConfig.AuthUsername);
strpCopy(LProxy^.m_password, CreateConfig.AuthPassword);
strpCopy(LProxy^.m_domain, CreateConfig.AuthDomain);
FOwnerId :
=
LInit(LMAX, @DoCallBack,pchar(ConConfigName), True, LProxy,
0
);
end
else
FOwnerId :
=
LInit(LMAX, @DoCallBack,pchar(ConConfigName), false, LProxy,
0
);
if
FOwnerId
=
-
1
then
begin
FstateFlag :
=
False;
DoLog(
'
DownLoadInitial失败
'
);
end
;
end
else
begin
FstateFlag :
=
False;
Dolog(
'
没有函数:DownLoadInitial
'
);
end
;
end
;