Thanks Trick for the hooking function of these API. I added a few more by guessing.
Is there any way to list the parameters for these procedures, from the vba6 dll module?
For example I guessed that SetModuleName had a param for the name, and it works, but otherwise it crashes with any other params. Thanks again!
Code:pfnTipSetModuleName = GetProcAddress(hVba, "TipSetModuleName") If pfnTipSetModuleName = 0 Then Exit Function If Not HookFunction(pfnTipSetModuleName, AddressOf TipSetModuleName_user) Then Exit Function End If pfnTipDeleteModule = GetProcAddress(hVba, "TipDeleteModule") If pfnTipDeleteModule = 0 Then Exit Function If Not HookFunction(pfnTipDeleteModule, AddressOf TipDeleteModule_user) Then Exit Function End If pfnTipCompileModule = GetProcAddress(hVba, "TipCompileModule") If pfnTipCompileModule = 0 Then Exit Function If Not HookFunction(pfnTipCompileModule, AddressOf TipCompileModule_user) Then Exit Function End IfCode:Public pfnTipCompileModule As Long Public pfnTipSetModuleName As Long Public pfnTipDeleteModule As Long Public Function TipSetModuleName_user(ByVal pVBProjectNative As Long, ByVal lpName As Long) As Long ' On Error GoTo error_handler PauseHook pfnTipSetModuleName TipSetModuleName_user = CallByPointer(pfnTipSetModuleName, vbLong, pVBProjectNative, lpName) ResumeHook pfnTipSetModuleName Exit Function error_handler: ErrorLog "modCallBack::TipSetModuleName_user" End Function Public Function TipDeleteModule_user(ByVal pVBProjectNative As Long) As Long ' On Error GoTo error_handler PauseHook pfnTipDeleteModule MsgBox " deleting module: " & " " & pfnTipDeleteModule TipDeleteModule_user = CallByPointer(pfnTipDeleteModule, vbLong, pVBProjectNative) ResumeHook pfnTipDeleteModule Exit Function error_handler: ErrorLog "modCallBack::TipDeleteModule_user" End Function Public Function TipCompileModule_user(ByVal pVBProjectNative As Long) As Long On Error GoTo error_handler PauseHook pfnTipCompileModule ' MakeEvent pVBProjectNative, "CompBefore" TipCompileModule_user = CallByPointer(pfnTipCompileModule, vbLong, pVBProjectNative) MsgBox " compile Module: " & TipCompileModule_user 'MakeEvent pVBProjectNative, "CompAfter" ResumeHook pfnTipCompileModule Exit Function error_handler: ErrorLog "modCallBack::TipCompileModule_user" End Function


Reply With Quote