edit: updated the code sample based on the answers from trancexx now better interface definitions * I am definitily missing the logic in how to initialize the interface and object(s). Some advice from the more AIO experts will be helpfull? probably not understanding the difference between the functions to create an object and the wrapper functions. The easy (working) example in VBA (within Excel) under Windows XP with Automation API 3.0 installed (is XP + .NET 4) the UIAutomationCore.DLL is an unmanaged DLL and should be possible to call this with autoitobject Sub test() ' uuid(30CBE57D-D9D0-452A-AB13-7AC5AC4825EE) interface IUIAutomation Dim c As New CUIAutomation 'reference to IUIautomation object Debug.Print c.GetRootElement.CurrentClassName 'Just to see if the basics work End Sub Output of above will be #32768 (the desktop) As there is no classname in the registry creating with functions like createobj will not do the trick to get access Then I try converting this VBA to AutoItObject code making use of generator and the latest AIO library EndGOAL is to have access to this UIAutomationCore.DLL so many more objects/controls can be looked/manipulated on from within AutoIT. Probably helpfull [ uuid(FF48DBA4-60EF-4201-AA87-54103EEF594E), version(1.0), helpstring("The Central Class for UIAutomation") ] coclass CUIAutomation { [default] interface IUIAutomation; }; So I would assume I have to make ** The code I have so far #include <AutoItObject.au3> ;~ Assume to have loaded the DLL first Global Const $hUIAutomation = DllOpen("uiautomationcore.dll") _AutoItObject_StartUp() Global $tagIUnknown = _ "QueryInterface long_ptr(ulong_ptr;int_ptr);" & _ "AddRef wstr();" & _ "Release wstr();" Global $sCLSID_CUIAutomation="{FF48DBA4-60EF-4201-AA87-54103EEF594E}" Global $CLSID_CUIAutomation=_AutoItObject_CLSIDFromString($sCLSID_CUIAutomation) Global $sCLSID_IUIAutomationElement = "{D22108AA-8AC5-49A5-837B-37BBB3D7591E}" Global $CLSID_IUIAutomationElement = _AutoItObject_CLSIDFromString($sCLSID_IUIAutomationElement) Global $tagIUIAutomationElement = $tagIUnknown & _ "SetFocus hresult();" & _ "GetRuntimeId hresult(lparam*);" & _ "FindFirst hresult(ptr;ptr;ptr*);" & _ "FindAll hresult(ptr;ptr;ptr*);" & _ "FindFirstBuildCache hresult(ptr;ptr;ptr;ptr*);" & _ "FindAllBuildCache hresult(ptr;ptr;ptr;ptr*);" & _ "BuildUpdatedCache hresult(ptr;ptr*);" & _ "GetCurrentPropertyValue hresult(int;variant*);" & _ "GetCurrentPropertyValueEx hresult(int;long;variant*);" & _ "GetCachedPropertyValue hresult(int;variant*);" & _ "GetCachedPropertyValueEx hresult(int;long;variant*);" & _ "GetCurrentPatternAs hresult(int;ptr;none*);" & _ "GetCachedPatternAs hresult(int;ptr;none*);" & _ "GetCurrentPattern hresult(int;ptr*);" & _ "GetCachedPattern hresult(int;ptr*);" & _ "GetCachedParent hresult(ptr*);" & _ "GetCachedChildren hresult(ptr*);" & _ "get_CurrentProcessId hresult(int*);" & _ "get_CurrentControlType hresult(int*);" & _ "get_CurrentLocalizedControlType hresult(bstr*);" & _ "get_CurrentName hresult(bstr*);" & _ "get_CurrentAcceleratorKey hresult(bstr*);" & _ "get_CurrentAccessKey hresult(bstr*);" & _ "get_CurrentHasKeyboardFocus hresult(long*);" & _ "get_CurrentIsKeyboardFocusable hresult(long*);" & _ "get_CurrentIsEnabled hresult(long*);" & _ "get_CurrentAutomationId hresult(bstr*);" & _ "get_CurrentClassName hresult(bstr*);" & _ "get_CurrentHelpText hresult(bstr*);" & _ "get_CurrentCulture hresult(int*);" & _ "get_CurrentIsControlElement hresult(long*);" & _ "get_CurrentIsContentElement hresult(long*);" & _ "get_CurrentIsPassword hresult(long*);" & _ "get_CurrentNativeWindowHandle hresult(none*);" & _ "get_CurrentItemType hresult(bstr*);" & _ "get_CurrentIsOffscreen hresult(long*);" & _ "get_CurrentOrientation hresult(ptr*);" & _ "get_CurrentFrameworkId hresult(bstr*);" & _ "get_CurrentIsRequiredForForm hresult(long*);" & _ "get_CurrentItemStatus hresult(bstr*);" & _ "get_CurrentBoundingRectangle hresult(ptr*);" & _ "get_CurrentLabeledBy hresult(ptr*);" & _ "get_CurrentAriaRole hresult(bstr*);" & _ "get_CurrentAriaProperties hresult(bstr*);" & _ "get_CurrentIsDataValidForForm hresult(long*);" & _ "get_CurrentControllerFor hresult(ptr*);" & _ "get_CurrentDescribedBy hresult(ptr*);" & _ "get_CurrentFlowsTo hresult(ptr*);" & _ "get_CurrentProviderDescription hresult(bstr*);" & _ "get_CachedProcessId hresult(int*);" & _ "get_CachedControlType hresult(int*);" & _ "get_CachedLocalizedControlType hresult(bstr*);" & _ "get_CachedName hresult(bstr*);" & _ "get_CachedAcceleratorKey hresult(bstr*);" & _ "get_CachedAccessKey hresult(bstr*);" & _ "get_CachedHasKeyboardFocus hresult(long*);" & _ "get_CachedIsKeyboardFocusable hresult(long*);" & _ "get_CachedIsEnabled hresult(long*);" & _ "get_CachedAutomationId hresult(bstr*);" & _ "get_CachedClassName hresult(bstr*);" & _ "get_CachedHelpText hresult(bstr*);" & _ "get_CachedCulture hresult(int*);" & _ "get_CachedIsControlElement hresult(long*);" & _ "get_CachedIsContentElement hresult(long*);" & _ "get_CachedIsPassword hresult(long*);" & _ "get_CachedNativeWindowHandle hresult(none*);" & _ "get_CachedItemType hresult(bstr*);" & _ "get_CachedIsOffscreen hresult(long*);" & _ "get_CachedOrientation hresult(ptr*);" & _ "get_CachedFrameworkId hresult(bstr*);" & _ "get_CachedIsRequiredForForm hresult(long*);" & _ "get_CachedItemStatus hresult(bstr*);" & _ "get_CachedBoundingRectangle hresult(ptr*);" & _ "get_CachedLabeledBy hresult(ptr*);" & _ "get_CachedAriaRole hresult(bstr*);" & _ "get_CachedAriaProperties hresult(bstr*);" & _ "get_CachedIsDataValidForForm hresult(long*);" & _ "get_CachedControllerFor hresult(ptr*);" & _ "get_CachedDescribedBy hresult(ptr*);" & _ "get_CachedFlowsTo hresult(ptr*);" & _ "get_CachedProviderDescription hresult(bstr*);" & _ "GetClickablePoint hresult(ptr*;long*);" ; ------------------------------- Local $pUIAutomationElement ; Initialize interface pointer $pUIAutomationElement here, for example: ; _AutoItObject_CoCreateInstance(DllStructGetPtr($tCLSID_SomeClass), 0, 1, DllStructGetPtr($tIID_IUIAutomationElement), $pUIAutomationElement) ;Local $objUIAutomationElement = _AutoItObject_WrapperCreate($pUIAutomationElement, $tagIUIAutomationElement) Global $sIID_IUIAutomation = "{30CBE57D-D9D0-452A-AB13-7AC5AC4825EE}" Global $IID_IUIAutomation = _AutoItObject_CLSIDFromString($sIID_IUIAutomation) Global $tagIUIAutomation = $tagIUnknown & _ "CompareElements hresult(ptr;ptr;long*);" & _ "CompareRuntimeIds hresult(lparam;lparam;long*);" & _ "GetRootElement hresult(ptr*);" & _ "ElementFromHandle hresult(none;ptr*);" & _ "ElementFromPoint hresult(ptr;ptr*);" & _ "GetFocusedElement hresult(ptr*);" & _ "GetRootElementBuildCache hresult(ptr;ptr*);" & _ "ElementFromHandleBuildCache hresult(none;ptr;ptr*);" & _ "ElementFromPointBuildCache hresult(ptr;ptr;ptr*);" & _ "GetFocusedElementBuildCache hresult(ptr;ptr*);" & _ "CreateTreeWalker hresult(ptr;ptr*);" & _ "get_ControlViewWalker hresult(ptr*);" & _ "get_ContentViewWalker hresult(ptr*);" & _ "get_RawViewWalker hresult(ptr*);" & _ "get_RawViewCondition hresult(ptr*);" & _ "get_ControlViewCondition hresult(ptr*);" & _ "get_ContentViewCondition hresult(ptr*);" & _ "CreateCacheRequest hresult(ptr*);" & _ "CreateTrueCondition hresult(ptr*);" & _ "CreateFalseCondition hresult(ptr*);" & _ "CreatePropertyCondition hresult(int;variant;ptr*);" & _ "CreatePropertyConditionEx hresult(int;variant;ptr;ptr*);" & _ "CreateAndCondition hresult(ptr;ptr;ptr*);" & _ "CreateAndConditionFromArray hresult(lparam;ptr*);" & _ "CreateAndConditionFromNativeArray hresult(ptr;int;ptr*);" & _ "CreateOrCondition hresult(ptr;ptr;ptr*);" & _ "CreateOrConditionFromArray hresult(lparam;ptr*);" & _ "CreateOrConditionFromNativeArray hresult(ptr;int;ptr*);" & _ "CreateNotCondition hresult(ptr;ptr*);" & _ "AddAutomationEventHandler hresult(int;ptr;ptr;ptr;ptr);" & _ "RemoveAutomationEventHandler hresult(int;ptr;ptr);" & _ "AddPropertyChangedEventHandlerNativeArray hresult(ptr;ptr;ptr;ptr;int;int);" & _ "AddPropertyChangedEventHandler hresult(ptr;ptr;ptr;ptr;lparam);" & _ "RemovePropertyChangedEventHandler hresult(ptr;ptr);" & _ "AddStructureChangedEventHandler hresult(ptr;ptr;ptr;ptr);" & _ "RemoveStructureChangedEventHandler hresult(ptr;ptr);" & _ "AddFocusChangedEventHandler hresult(ptr;ptr);" & _ "RemoveFocusChangedEventHandler hresult(ptr);" & _ "RemoveAllEventHandlers hresult();" & _ "IntNativeArrayToSafeArray hresult(int;int;lparam*);" & _ "IntSafeArrayToNativeArray hresult(lparam;int*;int*);" & _ "RectToVariant hresult(ptr;variant*);" & _ "VariantToRect hresult(variant;ptr*);" & _ "SafeArrayToRectNativeArray hresult(lparam;ptr*;int*);" & _ "CreateProxyFactoryEntry hresult(ptr;ptr*);" & _ "get_ProxyFactoryMapping hresult(ptr*);" & _ "GetPropertyProgrammaticName hresult(int;bstr*);" & _ "GetPatternProgrammaticName hresult(int;bstr*);" & _ "PollForPotentialSupportedPatterns hresult(ptr;lparam*;lparam*);" & _ "PollForPotentialSupportedProperties hresult(ptr;lparam*;lparam*);" & _ "CheckNotSupported hresult(variant;long*);" & _ "get_ReservedNotSupportedValue hresult(ptr*);" & _ "get_ReservedMixedAttributeValue hresult(ptr*);" & _ "ElementFromIAccessible hresult(ptr;int;ptr*);" & _ "ElementFromIAccessibleBuildCache hresult(ptr;int;ptr;ptr*);" ; ------------------------------- Global $tagIUIAutomationCondition = $tagIUnknown Global $oError = ObjEvent("AutoIt.Error", "_ErrFunc") Func _ErrFunc() ConsoleWrite("COM Error, ScriptLine(" & $oError.scriptline & ") : Number 0x" & Hex($oError.number, 8) & " - " & $oError.windescription & @CRLF) EndFunc ;==>_ErrFunc _AutoItObject_StartUp() Global $objUIAutomation = _AutoItObject_ObjCreate($sCLSID_CUIAutomation, $sIID_IUIAutomation, $tagIUIAutomation) If IsObj($objUIAutomation) Then ConsoleWrite("At least it seems I have an object to start with" & @CRLF) EndIf ConsoleWrite("Do we get here?" & @CRLF) Global $aCall = $objUIAutomation.GetRootElement(0) Global $objRoot = _AutoItObject_WrapperCreate($aCall[1], $tagIUIAutomationElement) If IsObj($objRoot) Then ConsoleWrite("At least it seems I have a second object to start with" & @CRLF) EndIf $aCall = $objRoot.get_CurrentClassName(0) ConsoleWrite($aCall[1] & @CRLF) $objRoot = 0 $objUIAutomation = 0