| _aLfa_ Site Admin
 
 
 Joined: 21 Sep 2002
 Posts: 233
 Location: Aveiro, Portugal
 
 | 
				
					| Posted: Tue Aug 31, 2004 10:13 pm
							    Post subject: Method Link |  
					| 
 |  
					| Parents: OptionalObjectInfo.aMethodLinkTable
 
 
  	  | Code: |  	  | Type MethodLinkNative jmpOpCode As Byte '0x0 (0d)
 jmpOffset As Long '0x1 (1d) jmp <address>  ; <address> = <currentoffset> + <jmpOffset> + 5
 '0x5 (5d) <-- Structure Size
 End Type
 | 
 
 
  	  | Code: |  	  | Type MethodLinkPCode xorOpCode   As Integer '0x0 (00d) xor eax, eax
 movOpCode   As Byte    '0x2 (02d)
 movAddress  As Long    '0x3 (03d) mov edx, <movAddress>
 pushOpCode  As Byte    '0x7 (07d)
 pushAddress As Long    '0x8 (08d) push <pushAddress>
 retOpCode   As Byte    '0xC (12d) ret
 '0xD (13d) <-- Structure Size
 End Type
 | 
 
 Notes:
 * Teoricaly MethodLink can't be really treated as a structure, but since the OpCodes are always following same scheme, I choose to post these 'structures', just as guideline.
 * These 2 structures are only valid for Native and PCode respectivaly.
 * These 2 structures are only valid to: Sub, Function, Property Get and Property Let
 * There isn't a structure for an API declaration.
 * There is another 'structure' that can appear, and its related to Event declarations OR WithEvents declarations. (I do appreciate some help to debug this 'structure' more in depth).
 
 Pointers:
 Depending on the 'structure' the pointers could be the address of a native code method, could be the address of methodinfo for the PCode or could be an indirect pointer to VB Runtime.
 |  |