Files
jlibwinapi/native/WpfBridge/WpfAutomation.h
Edward Jakubowski bc3c070ea8 WPF and regular Win32 windows are now supported
Added support for dragging target on WPF windows and building simple
xpath statements.  Fixed some null results in native library and
increased performance of enumerating wpf windows.  Still need to tweak
filters for picking up Silverlight handles too.
2014-04-07 22:19:47 -04:00

48 lines
2.3 KiB
C++

/*
* Copyright 2014, Synthuse.org
* Released under the Apache Version 2.0 License.
*
* last modified by ejakubowski7@gmail.com
*/
#pragma once
public ref class WpfAutomation
{
public:
WpfAutomation(void);
void setFrameworkId(System::String ^propertyValue); //default is WPF, but also accepts Silverlight, Win32
void setTouchableOnly(System::Boolean val); //default is true
//Descendants will walk the full tree of windows, NOT just one level of children
System::Int32 countDescendantWindows();
System::Int32 countDescendantWindows(System::String ^runtimeIdValue);
System::Int32 countChildrenWindows();
System::Int32 countChildrenWindows(System::String ^runtimeIdValue);
array<System::String ^> ^ enumChildrenWindowIds(System::String ^runtimeIdValue); //if runtimeIdValue is null will start at desktop
array<System::String ^> ^ enumDescendantWindowIds(System::String ^runtimeIdValue); //if runtimeIdValue is null will start at desktop
array<System::String ^> ^ enumDescendantWindowIds(System::Int32 processId);
//In all the above Enumerate methods will return a list of Runtime Ids for all related windows.
array<System::String ^> ^ enumDescendantWindowInfo(System::String ^runtimeIdValue, System::String ^properties);
System::String ^ getRuntimeIdFromHandle(System::IntPtr windowHandle);
System::String ^ getRuntimeIdFromPoint(System::Int32 x, System::Int32 y);
System::String ^ getParentRuntimeId(System::String ^runtimeIdValue);
System::String ^ getProperty(System::String ^propertyName, System::String ^runtimeIdValue);
array<System::String ^> ^ getProperties(System::String ^runtimeIdValue);
array<System::String ^> ^ getPropertiesAndValues(System::String ^runtimeIdValue);
private:
array<System::Int32> ^ convertRuntimeIdString(System::String ^runtimeIdValue);
System::Windows::Automation::AutomationElement ^ findAutomationElementById(System::String ^runtimeIdValue);
System::String ^ getRuntimeIdFromElement(System::Windows::Automation::AutomationElement ^element);
array<System::String ^> ^ getRuntimeIdsFromCollection(System::Windows::Automation::AutomationElementCollection ^collection);
System::Windows::Automation::Condition ^ getSearchConditions();
static System::String ^DEFAULT_FRAMEWORK = L"WPF";
static System::Boolean ^DEFAULT_TOUCHABLE = true;
System::String ^frameworkId;
System::Boolean ^touchableOnly;
};