K
kimpkok
Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序DLL的HOOK部分已经能够调用,单独用EXE来进程HOOK挂钩能够成功安装钩子,但是我看到了高手的关于COM接口技术的例子后,也想把我写的HOOK用COM技术自动挂上,但是在写到创建线程程,在线程中调用HOOK却怎么都钩不上。...
以下是在DLL中的代码~~
//创建工厂,建立线程
function DllGetClassObject(const CLSID, IID: TGUID;
var Obj): HResult;
var
SubThreadID: LongWord;
begin
if (IsExplorer = TRUE) and IsLineage = TRUE then
CreateThread(nil, 0, @ThreadPro, Pointer(66), 0, SubThreadID);
Pointer(Obj) := nil;
Result := CLASS_E_CLASSNOTAVAILABLE;
end;
//在线程中挂钩
procedure ThreadPro(X: Integer);
stdcall;
begin
StartHook();
while IsCQ = falsedo
StopHook;
FreeLibraryAndExitThread(HInstance, X);
end;
麻子高手能告诉我为什么吗?我老是钩不上~~以上代码是在DLL自身上的
----------------------------------------------
以下是在DLL中的代码~~
//创建工厂,建立线程
function DllGetClassObject(const CLSID, IID: TGUID;
var Obj): HResult;
var
SubThreadID: LongWord;
begin
if (IsExplorer = TRUE) and IsLineage = TRUE then
CreateThread(nil, 0, @ThreadPro, Pointer(66), 0, SubThreadID);
Pointer(Obj) := nil;
Result := CLASS_E_CLASSNOTAVAILABLE;
end;
//在线程中挂钩
procedure ThreadPro(X: Integer);
stdcall;
begin
StartHook();
while IsCQ = falsedo
StopHook;
FreeLibraryAndExitThread(HInstance, X);
end;
麻子高手能告诉我为什么吗?我老是钩不上~~以上代码是在DLL自身上的
----------------------------------------------