' DECLARE FUNCTION CallAsmProc LIB "user32" ALIAS "CallWindowProcA" _ (Proc AS LONG, A1 AS LONG, A2 AS LONG, A3 AS LONG, _ A4 AS LONG) AS LONG ' ' ============================================================ ' ----- START ASM CallAddressManyArgs ----- DefByte CallAddressManyArgsArray (0 To 67) = _ { _ &HC8, &H00, &H00, &H00, &H56, &H53, &H8B, &H75, &H0C, &H81, _ &HFE, &H00, &H00, &H00, &H00, &H74, &H28, &H8B, &H06, &HC1, _ &HE0, &H02, &H3D, &H00, &H00, &H00, &H00, &H74, &H0B, &H8B, _ &H1C, &H06, &H53, &H2D, &H04, &H00, &H00, &H00, &H75, &HF5, _ &H8B, &H45, &H08, &H3D, &H00, &H00, &H00, &H00, &H74, &H07, _ &HFF, &HD0, &HE9, &H05, &H00, &H00, &H00, &HB8, &H00, &H00, _ &H00, &H00, &H5B, &H5E, &HC9, &HC2, &H10, &H00 _ } ' ----- END ASM CallAddressManyArgs ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling CallAddressManyArgs DefInt ptrCallAddressManyArgs ptrCallAddressManyArgs = VarPtr (CallAddressManyArgsArray(0)) ' ' ----- RQ CALL CallAddressManyArgs ----- Function CallAddressManyArgs (address As Long, ptrStructArg As Long) As Long Result = CallAsmProc (ptrCallAddressManyArgs, address, ptrStructArg, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM CallPointerManyArgs ----- DefByte CallPointerManyArgsArray (0 To 76) = _ { _ &HC8, &H00, &H00, &H00, &H56, &H53, &H8B, &H75, &H0C, &H81, _ &HFE, &H00, &H00, &H00, &H00, &H74, &H31, &H8B, &H06, &HC1, _ &HE0, &H02, &H3D, &H00, &H00, &H00, &H00, &H74, &H0B, &H8B, _ &H1C, &H06, &H53, &H2D, &H04, &H00, &H00, &H00, &H75, &HF5, _ &H8B, &H45, &H08, &H3D, &H00, &H00, &H00, &H00, &H74, &H10, _ &H8B, &H00, &H3D, &H00, &H00, &H00, &H00, &H74, &H07, &HFF, _ &HD0, &HE9, &H05, &H00, &H00, &H00, &HB8, &H00, &H00, &H00, _ &H00, &H5B, &H5E, &HC9, &HC2, &H10, &H00 _ } ' ----- END ASM CallPointerManyArgs ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling CallPointerManyArgs DefInt ptrCallPointerManyArgs ptrCallPointerManyArgs = VarPtr (CallPointerManyArgsArray(0)) ' ' ----- RQ CALL CallPointerManyArgs ----- Function CallPointerManyArgs (pointer As Long, ptrStructArg As Long) As Long Result = CallAsmProc (ptrCallPointerManyArgs, pointer, ptrStructArg, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM CallAddressNoArg ----- DefByte CallAddressNoArgArray (0 To 19) = _ { _ &HC8, &H00, &H00, &H00, &H8B, &H45, &H08, &H3D, &H00, &H00, _ &H00, &H00, &H74, &H02, &HFF, &HD0, &HC9, &HC2, &H10, &H00 _ } ' ----- END ASM CallAddressNoArg ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling CallAddressNoArg DefInt ptrCallAddressNoArg ptrCallAddressNoArg = VarPtr (CallAddressNoArgArray(0)) ' ' ----- RQ CALL CallAddressNoArg ----- Function CallAddressNoArg (address As Long) As Long Result = CallAsmProc (ptrCallAddressNoArg, address, 0, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM CallPointerNoArg ----- DefByte CallPointerNoArgArray (0 To 28) = _ { _ &HC8, &H00, &H00, &H00, &H8B, &H45, &H08, &H3D, &H00, &H00, _ &H00, &H00, &H74, &H0B, &H8B, &H00, &H3D, &H00, &H00, &H00, _ &H00, &H74, &H02, &HFF, &HD0, &HC9, &HC2, &H10, &H00 _ } ' ----- END ASM CallPointerNoArg ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling CallPointerNoArg DefInt ptrCallPointerNoArg ptrCallPointerNoArg = VarPtr (CallPointerNoArgArray(0)) ' ' ----- RQ CALL CallPointerNoArg ----- Function CallPointerNoArg (pointer As Long) As Long Result = CallAsmProc (ptrCallPointerNoArg, pointer, 0, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM CallAddressOneArg ----- DefByte CallAddressOneArgArray (0 To 22) = _ { _ &HC8, &H00, &H00, &H00, &H8B, &H45, &H08, &H3D, &H00, &H00, _ &H00, &H00, &H74, &H05, &HFF, &H75, &H0C, &HFF, &HD0, &HC9, _ &HC2, &H10, &H00 _ } ' ----- END ASM CallAddressOneArg ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling CallAddressOneArg DefInt ptrCallAddressOneArg ptrCallAddressOneArg = VarPtr (CallAddressOneArgArray(0)) ' ' ----- RQ CALL CallAddressOneArg ----- Function CallAddressOneArg (address As Long, arg1 As Long) As Long Result = CallAsmProc (ptrCallAddressOneArg, address, arg1, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM CallPointerOneArg ----- DefByte CallPointerOneArgArray (0 To 31) = _ { _ &HC8, &H00, &H00, &H00, &H8B, &H45, &H08, &H3D, &H00, &H00, _ &H00, &H00, &H74, &H0E, &H8B, &H00, &H3D, &H00, &H00, &H00, _ &H00, &H74, &H05, &HFF, &H75, &H0C, &HFF, &HD0, &HC9, &HC2, _ &H10, &H00 _ } ' ----- END ASM CallPointerOneArg ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling CallPointerOneArg DefInt ptrCallPointerOneArg ptrCallPointerOneArg = VarPtr (CallPointerOneArgArray(0)) ' ' ----- RQ CALL CallPointerOneArg ----- Function CallPointerOneArg (pointer As Long, arg1 As Long) As Long Result = CallAsmProc (ptrCallPointerOneArg, pointer, arg1, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM CallAddressTwoArgs ----- DefByte CallAddressTwoArgsArray (0 To 25) = _ { _ &HC8, &H00, &H00, &H00, &H8B, &H45, &H08, &H3D, &H00, &H00, _ &H00, &H00, &H74, &H08, &HFF, &H75, &H10, &HFF, &H75, &H0C, _ &HFF, &HD0, &HC9, &HC2, &H10, &H00 _ } ' ----- END ASM CallAddressTwoArgs ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling CallAddressTwoArgs DefInt ptrCallAddressTwoArgs ptrCallAddressTwoArgs = VarPtr (CallAddressTwoArgsArray(0)) ' ' ----- RQ CALL CallAddressTwoArgs ----- Function CallAddressTwoArgs (address As Long, arg1 As Long, arg2 As Long) As Long Result = CallAsmProc (ptrCallAddressTwoArgs, address, arg1, arg2, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM CallPointerTwoArgs ----- DefByte CallPointerTwoArgsArray (0 To 34) = _ { _ &HC8, &H00, &H00, &H00, &H8B, &H45, &H08, &H3D, &H00, &H00, _ &H00, &H00, &H74, &H11, &H8B, &H00, &H3D, &H00, &H00, &H00, _ &H00, &H74, &H08, &HFF, &H75, &H10, &HFF, &H75, &H0C, &HFF, _ &HD0, &HC9, &HC2, &H10, &H00 _ } ' ----- END ASM CallPointerTwoArgs ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling CallPointerTwoArgs DefInt ptrCallPointerTwoArgs ptrCallPointerTwoArgs = VarPtr (CallPointerTwoArgsArray(0)) ' ' ----- RQ CALL CallPointerTwoArgs ----- Function CallPointerTwoArgs (pointer As Long, arg1 As Long, arg2 As Long) As Long Result = CallAsmProc (ptrCallPointerTwoArgs, pointer, arg1, arg2, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM CallAddressThreeArgs ----- DefByte CallAddressThreeArgsArray (0 To 28) = _ { _ &HC8, &H00, &H00, &H00, &H8B, &H45, &H08, &H3D, &H00, &H00, _ &H00, &H00, &H74, &H0B, &HFF, &H75, &H14, &HFF, &H75, &H10, _ &HFF, &H75, &H0C, &HFF, &HD0, &HC9, &HC2, &H10, &H00 _ } ' ----- END ASM CallAddressThreeArgs ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling CallAddressThreeArgs DefInt ptrCallAddressThreeArgs ptrCallAddressThreeArgs = VarPtr (CallAddressThreeArgsArray(0)) ' ' ----- RQ CALL CallAddressThreeArgs ----- Function CallAddressThreeArgs (address As Long, arg1 As Long, arg2 As Long, arg3 As Long) As Long Result = CallAsmProc (ptrCallAddressThreeArgs, address, arg1, arg2, arg3) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM CallPointerThreeArgs ----- DefByte CallPointerThreeArgsArray (0 To 37) = _ { _ &HC8, &H00, &H00, &H00, &H8B, &H45, &H08, &H3D, &H00, &H00, _ &H00, &H00, &H74, &H14, &H8B, &H00, &H3D, &H00, &H00, &H00, _ &H00, &H74, &H0B, &HFF, &H75, &H14, &HFF, &H75, &H10, &HFF, _ &H75, &H0C, &HFF, &HD0, &HC9, &HC2, &H10, &H00 _ } ' ----- END ASM CallPointerThreeArgs ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling CallPointerThreeArgs DefInt ptrCallPointerThreeArgs ptrCallPointerThreeArgs = VarPtr (CallPointerThreeArgsArray(0)) ' ' ----- RQ CALL CallPointerThreeArgs ----- Function CallPointerThreeArgs (pointer As Long, arg1 As Long, arg2 As Long, arg3 As Long) As Long Result = CallAsmProc (ptrCallPointerThreeArgs, pointer, arg1, arg2, arg3) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM ReadDWordAtAddress ----- DefByte ReadDWordAtAddressArray (0 To 12) = _ { _ &HC8, &H00, &H00, &H00, &H8B, &H45, &H08, &H8B, &H00, &HC9, _ &HC2, &H10, &H00 _ } ' ----- END ASM ReadDWordAtAddress ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling ReadDWordAtAddress DefInt ptrReadDWordAtAddress ptrReadDWordAtAddress = VarPtr (ReadDWordAtAddressArray(0)) ' ' ----- RQ CALL ReadDWordAtAddress ----- Function ReadDWordAtAddress (address As Long) As Long Result = CallAsmProc (ptrReadDWordAtAddress, address, 0, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM ReadWordAtAddress ----- DefByte ReadWordAtAddressArray (0 To 20) = _ { _ &HC8, &H00, &H00, &H00, &H56, &H8B, &H75, &H08, &HB8, &H00, _ &H00, &H00, &H00, &H66, &H8B, &H06, &H5E, &HC9, &HC2, &H10, _ &H00 _ } ' ----- END ASM ReadWordAtAddress ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling ReadWordAtAddress DefInt ptrReadWordAtAddress ptrReadWordAtAddress = VarPtr (ReadWordAtAddressArray(0)) ' ' ----- RQ CALL ReadWordAtAddress ----- Function ReadWordAtAddress (address As Long) As Long Result = CallAsmProc (ptrReadWordAtAddress, address, 0, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM ReadByteAtAddress ----- DefByte ReadByteAtAddressArray (0 To 19) = _ { _ &HC8, &H00, &H00, &H00, &H56, &H8B, &H75, &H08, &HB8, &H00, _ &H00, &H00, &H00, &H8A, &H06, &H5E, &HC9, &HC2, &H10, &H00 _ } ' ----- END ASM ReadByteAtAddress ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling ReadByteAtAddress DefInt ptrReadByteAtAddress ptrReadByteAtAddress = VarPtr (ReadByteAtAddressArray(0)) ' ' ----- RQ CALL ReadByteAtAddress ----- Function ReadByteAtAddress (address As Long) As Long Result = CallAsmProc (ptrReadByteAtAddress, address, 0, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM ReadDWordAtPointer ----- DefByte ReadDWordAtPointerArray (0 To 14) = _ { _ &HC8, &H00, &H00, &H00, &H8B, &H45, &H08, &H8B, &H00, &H8B, _ &H00, &HC9, &HC2, &H10, &H00 _ } ' ----- END ASM ReadDWordAtPointer ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling ReadDWordAtPointer DefInt ptrReadDWordAtPointer ptrReadDWordAtPointer = VarPtr (ReadDWordAtPointerArray(0)) ' ' ----- RQ CALL ReadDWordAtPointer ----- Function ReadDWordAtPointer (pointer As Long) As Long Result = CallAsmProc (ptrReadDWordAtPointer, pointer, 0, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM ReadWordAtPointer ----- DefByte ReadWordAtPointerArray (0 To 22) = _ { _ &HC8, &H00, &H00, &H00, &H56, &H8B, &H75, &H08, &H8B, &H36, _ &HB8, &H00, &H00, &H00, &H00, &H66, &H8B, &H06, &H5E, &HC9, _ &HC2, &H10, &H00 _ } ' ----- END ASM ReadWordAtPointer ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling ReadWordAtPointer DefInt ptrReadWordAtPointer ptrReadWordAtPointer = VarPtr (ReadWordAtPointerArray(0)) ' ' ----- RQ CALL ReadWordAtPointer ----- Function ReadWordAtPointer (pointer As Long) As Long Result = CallAsmProc (ptrReadWordAtPointer, pointer, 0, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM ReadByteAtPointer ----- DefByte ReadByteAtPointerArray (0 To 21) = _ { _ &HC8, &H00, &H00, &H00, &H56, &H8B, &H75, &H08, &H8B, &H36, _ &HB8, &H00, &H00, &H00, &H00, &H8A, &H06, &H5E, &HC9, &HC2, _ &H10, &H00 _ } ' ----- END ASM ReadByteAtPointer ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling ReadByteAtPointer DefInt ptrReadByteAtPointer ptrReadByteAtPointer = VarPtr (ReadByteAtPointerArray(0)) ' ' ----- RQ CALL ReadByteAtPointer ----- Function ReadByteAtPointer (pointer As Long) As Long Result = CallAsmProc (ptrReadByteAtPointer, pointer, 0, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM WriteDWordAtAddress ----- DefByte WriteDWordAtAddressArray (0 To 17) = _ { _ &HC8, &H00, &H00, &H00, &H57, &H8B, &H7D, &H08, &H8B, &H45, _ &H0C, &H89, &H07, &H5F, &HC9, &HC2, &H10, &H00 _ } ' ----- END ASM WriteDWordAtAddress ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling WriteDWordAtAddress DefInt ptrWriteDWordAtAddress ptrWriteDWordAtAddress = VarPtr (WriteDWordAtAddressArray(0)) ' ' ----- RQ CALL WriteDWordAtAddress ----- Function WriteDWordAtAddress (address As Long, dwData As Long) As Long Result = CallAsmProc (ptrWriteDWordAtAddress, address, dwData, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM WriteWordAtAddress ----- DefByte WriteWordAtAddressArray (0 To 23) = _ { _ &HC8, &H00, &H00, &H00, &H57, &H8B, &H7D, &H08, &H8B, &H45, _ &H0C, &H25, &HFF, &HFF, &H00, &H00, &H66, &H89, &H07, &H5F, _ &HC9, &HC2, &H10, &H00 _ } ' ----- END ASM WriteWordAtAddress ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling WriteWordAtAddress DefInt ptrWriteWordAtAddress ptrWriteWordAtAddress = VarPtr (WriteWordAtAddressArray(0)) ' ' ----- RQ CALL WriteWordAtAddress ----- Function WriteWordAtAddress (address As Long, wData As Long) As Long Result = CallAsmProc (ptrWriteWordAtAddress, address, wData, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM WriteByteAtAddress ----- DefByte WriteByteAtAddressArray (0 To 22) = _ { _ &HC8, &H00, &H00, &H00, &H57, &H8B, &H7D, &H08, &H8B, &H45, _ &H0C, &H25, &HFF, &H00, &H00, &H00, &H88, &H07, &H5F, &HC9, _ &HC2, &H10, &H00 _ } ' ----- END ASM WriteByteAtAddress ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling WriteByteAtAddress DefInt ptrWriteByteAtAddress ptrWriteByteAtAddress = VarPtr (WriteByteAtAddressArray(0)) ' ' ----- RQ CALL WriteByteAtAddress ----- Function WriteByteAtAddress (address As Long, bData As Long) As Long Result = CallAsmProc (ptrWriteByteAtAddress, address, bData, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM WriteDWordAtPointer ----- DefByte WriteDWordAtPointerArray (0 To 19) = _ { _ &HC8, &H00, &H00, &H00, &H57, &H8B, &H7D, &H08, &H8B, &H3F, _ &H8B, &H45, &H0C, &H89, &H07, &H5F, &HC9, &HC2, &H10, &H00 _ } ' ----- END ASM WriteDWordAtPointer ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling WriteDWordAtPointer DefInt ptrWriteDWordAtPointer ptrWriteDWordAtPointer = VarPtr (WriteDWordAtPointerArray(0)) ' ' ----- RQ CALL WriteDWordAtPointer ----- Function WriteDWordAtPointer (pointer As Long, dwData As Long) As Long Result = CallAsmProc (ptrWriteDWordAtPointer, pointer, dwData, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM WriteWordAtPointer ----- DefByte WriteWordAtPointerArray (0 To 25) = _ { _ &HC8, &H00, &H00, &H00, &H57, &H8B, &H7D, &H08, &H8B, &H3F, _ &H8B, &H45, &H0C, &H25, &HFF, &HFF, &H00, &H00, &H66, &H89, _ &H07, &H5F, &HC9, &HC2, &H10, &H00 _ } ' ----- END ASM WriteWordAtPointer ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling WriteWordAtPointer DefInt ptrWriteWordAtPointer ptrWriteWordAtPointer = VarPtr (WriteWordAtPointerArray(0)) ' ' ----- RQ CALL WriteWordAtPointer ----- Function WriteWordAtPointer (pointer As Long, wData As Long) As Long Result = CallAsmProc (ptrWriteWordAtPointer, pointer, wData, 0, 0) End Function ' ' ============================================================ ' ' ============================================================ ' ----- START ASM WriteByteAtPointer ----- DefByte WriteByteAtPointerArray (0 To 24) = _ { _ &HC8, &H00, &H00, &H00, &H57, &H8B, &H7D, &H08, &H8B, &H3F, _ &H8B, &H45, &H0C, &H25, &HFF, &H00, &H00, &H00, &H88, &H07, _ &H5F, &HC9, &HC2, &H10, &H00 _ } ' ----- END ASM WriteByteAtPointer ----- ' ' ----- POINTER to use In CallAsmProc ----- ' A Bit Faster than Calling WriteByteAtPointer DefInt ptrWriteByteAtPointer ptrWriteByteAtPointer = VarPtr (WriteByteAtPointerArray(0)) ' ' ----- RQ CALL WriteByteAtPointer ----- Function WriteByteAtPointer (pointer As Long, bData As Long) As Long Result = CallAsmProc (ptrWriteByteAtPointer, pointer, bData, 0, 0) End Function ' ' ============================================================ '