Jump to content

AutoIt Object translate IDL syntax


Recommended Posts

Reading and reusing

http://www.autoitscript.com/forum/index.php?showtopic=110379&st=80

and still trying to get MSAA to work

http://www.autoitscript.com/forum/index.php?showtopic=95176&st=0&p=783234&hl=msaa&fromsearch=1&#entry783234

Sample from the thread

;~     [local]
;~     HRESULT Write(
;~         [in, size_is(cb)] void const *pv,
;~         [in] ULONG cb,
;~         [out] ULONG *pcbWritten);
Local $sString = "Test string" 
Local $aCall = $oStream.Write("long", "wstr", $sString, "dword", StringLen($sString) * 2, "dword*", 0) 
ConsoleWrite("+> to write " & $aCall[3] & " bytes" & @CRLF) 
ConsoleWrite("> written " & $aCall[4] & " bytes" & @CRLF)

Then I would say below translates for MSAA to

Global $tagIAccessible = "QueryInterface;" & _
            "AddRef;" & _
            "Release;" & _ ; IUnknown
            "GetTypeInfoCount;" & _
            "GetTypeInfo;" & _
            "GetIDsOfNames;" & _
            "Invoke;" & _ ; IDispatch
            "get_accParent;" & _
            "get_accChildCount;" & _
            "get_accChild;" & _
            "get_accName;" & _
            "get_accValue;" & _
            "get_accDescription;" & _
            "get_accRole;" & _
            "get_accState;" & _
            "get_accHelp;" & _
            "get_accHelpTopic;" & _
            "get_accKeyboardShortcut;" & _
            "get_accFocus;" & _
            "get_accSelection;" & _
            "get_accDefaultAction;" & _
            "accSelect;" & _
            "accLocation;" & _
            "accNavigate;" & _
            "accHitTest;" & _
            "accDoDefaultAction;" & _
            "put_accName;" & _
            "put_accValue;"

;~         /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )( 
;~             __RPC__in IAccessible * This,
;~             /* [out] */ __RPC__out long *pxLeft,
;~             /* [out] */ __RPC__out long *pyTop,
;~             /* [out] */ __RPC__out long *pcxWidth,
;~             /* [out] */ __RPC__out long *pcyHeight,
;~             /* [optional][in] */ VARIANT varChild);
    $aCall = $oIAccesible.accLocation("long", "long*", 0, "long*", 0, "long*", 0,    "long*", 0) 
    ConsoleWrite("+> to write " & $aCall[2]  & @CRLF) 
    ConsoleWrite("> written " & $aCall[3]  & @CRLF)
    ConsoleWrite("+> to write " & $aCall[4]  & @CRLF) 
    ConsoleWrite("+> to write " & $aCall[5]  & @CRLF)

Or should I declare it in the iTag as

"accLocation long(ptr;ptr;ptr;ptr);" & _

Somehow I don't get the whole point of AutoITObject. It seems to be possible to do above but just when I try it doesn't work (for the moment I blame myself)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

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