Anonymous New User
Joined: 10 Feb 2008 Posts: 0
|
Posted: Tue Nov 19, 2002 7:27 pm
Post subject: 0D VCallHresult
|
|
NumBytes: 5
ArgStr: vw
SrcStr: %p1
Comments:
Runtime engine:
[asm:3re0n41c]- movzx eax, word ptr [esi] ; eax = opcode arg0 (offset to method)
- mov ecx, [ebp-4Ch] ; ecx = current object
- movzx ebx, word ptr [esi+2] ; ebx = opcode arg1
- push ecx
- mov edi, eax ; edi = eax
- cmp _g_EventMonitorsEnabled, 0
- jnz short lblEventMonitorsEnabled ; if event monitors are enabled
- add eax, [ecx] ; eax = offset to current object method
- call dword ptr [eax] ; call this method
-
- lblExitProc:
- mov edx, [ebp-44h]
- test word ptr [edx+76h], 2
- jnz short lblForceReset
- or eax, eax
- js short lblRaiseHresultErr
- fnclex
- xor eax, eax ; get next opcode and parse it
- mov al, [esi+4]
- add esi, 5
- jmp ds:_tblByteDisp[eax*4]
-
- lblEventMonitorsEnabled:
- pusha
- push esp
- push eax
- push ecx
- call _VBAEventVtableCall@12 ; VBAEventVtableCall(x,x,x)
- popa
- add eax, [ecx]
- call dword ptr [eax]
- pusha
- push esp
- call _VBAEventProcExit@4 ; VBAEventProcExit(x)
- popa
- jmp short lblExitProc
-
- lblForceReset:
- mov eax, 9C68h
- jmp ErrorEAX
-
- lblRaiseHresultErr:
- mov edx, [ebp-54h]
- push edi
- cmp ax, 9C68h
- jnz short lblExHandleFailure
- mov ax, 1B8h
-
- lblExHandleFailure:
- push dword ptr [edx+ebx*4]
- push dword ptr [ebp-4Ch]
- push eax
- call _ExHandleFailure@16 ; ExHandleFailure(x,x,x,x)
[/asm:3re0n41c]
|
|