Jump to content

Recommended Posts

Posted

Not working example for the function _IECreateEmbedded (XP sp3 x86 v3.3.7.14)

--> IE.au3 V2.4-0 Error from function _IENavigate, $_IEStatus_InvalidObjectType
On the version 3.6.6.1 works fine

Posted

Jon, if you can do a beta release this weekend. If you can't let me know and I will (if I can remember all the shit that I never got around to automating).

Posted

Special Note: This is an official beta release but it is not digitally signed. Only Jon has the certificate used for digital signatures and the last time I checked I was not Jon.

3.3.7.15 (11th September, 2011) (Beta)

- Added: DllCallAddress().

- Added: ObjCreateInterface() (By trancexx).

- Fixed #1975: IE object does not recognized as valid object type.

ObjCreateInterface() is undocumented for the moment. Documentation will come in a future release after the syntax is finalized.

Report issues here.

Download here.

Posted (edited)

Special Note: This is an official beta release but it is not digitally signed. Only Jon has the certificate used for digital signatures and the last time I checked I was not Jon.

3.3.7.15 (11th September, 2011) (Beta)

- Added: DllCallAddress().

- Added: ObjCreateInterface() (By trancexx).

- Fixed #1975: IE object does not recognized as valid object type.

ObjCreateInterface() is undocumented for the moment. Documentation will come in a future release after the syntax is finalized.

Report issues here.

Download here.

Some example for DllCallAddress would be good.

Or at least explanation where/when it's good to this.

Thanks for improvements.

Edited by Zedna
Posted (edited)

Some example for DllCallAddress would be good.

Or at least explanation where/when it's good to this.

Thanks for improvements.

DllCallAddress is perfect for calling functions when using inline ASM or inline C (TCC).

Edit: Simply put, use it when you have to call a function by address when you have no DLL-name.#

Edit: It is also essential when loading DLLs from memory to aviod going through the hassle of registering it in the DLL list. I tried it once and it is a real pain in the ass.

Edited by ProgAndy

*GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes

Posted

It appears floating point values are screwed up with DLLCallAddress(). I hope regular DLLCall() isn't affected in this way too?

Example follows:

Func _TestDirectCall($iVar1,$iVar2,$sStr)
    ConsoleWrite("DirectCall function called (by Address).  Var1="&$iVar1&", Var2="&$iVar2&", Str="&$sStr&@CRLF)
    Return $iVar1+$iVar2+1
EndFunc


Local $aRet,$hCallback,$pCallback
$hCallback=DllCallbackRegister("_TestDirectCall","int","float;long;wstr")
$pCallback=DllCallbackGetPtr($hCallback)
ConsoleWrite("Direct Callback address:"&$pCallback&@CRLF)

; This Currently only works on Beta v3.3.7.15+ (and is broken - at least as far as floating point goes)
$aRet=DLLCallAddress('int',$pCallback,'float',1234,'long',5678,'wstr',"STRING!")

It gives me this output:

DirectCall function called (by Address). Var1=7.6147679590182e-039, Var2=5678, Str=STRING!

Btw - ObjCreateInterface() sounds promising, if it has anything to do with trancexx's work with AutoItObject :graduated:

Posted (edited)

Sorry, no problems here.

AutoIt:3.3.7.15 (Os:WIN_7/SP1/X86 OSLang:0407 CPUArch:X64)

Direct Callback address:0x00A20000

DirectCall function called (by Address). Var1=1234, Var2=5678, Str=STRING!

Btw - ObjCreateInterface() sounds promising, if it has anything to do with trancexx's work with AutoItObject :graduated:

That is correct, it has simliar functionality to _AutoItObject_ObjCreate and _AutoItObject_WrapperCreate ;) Edited by ProgAndy

*GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes

Posted

Sorry, no problems here.

Hmm, good thing you quoted your specs. It appears to work fine when I run it in x86 mode. Running in 64-bit mode is where it gives the corrupted floating point issue..

Posted (edited)

Yup, I got the same thing.

Edit:

There's also a problem with Au3Check when trying to call DllCallAddress with more than 2 sets of parameters. I'm getting a wrong number of args error.

Edited by wraithdu
Posted

Oh yeah, DllCallAddress() is one of those icky functions we have to tell Au3Check about manually. It'll be fixed in the next beta.

Posted

My mind is running wild with this new ObjCreateInterface function...Ultimately we'll have to wait for the documentation to be written up though. :graduated:

Posted

Looking forward to using the new release! Thanks for getting it out and posted over last weekend. :graduated:

I'm sure this has been said before, but the new forum site design is cool and much easier on the eyes! (y)

Posted (edited)

Oh yeah, DllCallAddress() is one of those icky functions we have to tell Au3Check about manually. It'll be fixed in the next beta.

Along with the busted float type on x64?

I'd like to say again thanks for this kickass feature. It makes things a lot easier for people like Ward and his Binary UDF (machine code).

Edited by wraithdu
Posted (edited)

The problem posted in post 591 above. Float types are corrupted when passed to callbacks (and I assume any function) when run under AutoIt x64. x86 is unaffected.

Edited by wraithdu
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...