DLL Calling Example

This example writes the text hello world! into a field by calling the SendMessage DLL function from user32.dll.

DLL Declaration:

@Dll("user32.dll")
public interface IUserDll32Functions {
  int SendMessageW(TestObject obj, int message, int wParam, Object lParam);
}
The following code shows how to call the declared DLL function in the AUT:
IUserDll32Functions user32Function = DllCall.createInProcessDllCall(IUserDll32Functions.class, desktop);
TextField textField = desktop.find("//TextField");
user32Function.SendMessageW(textField, WindowsMessages.WM_SETTEXT, 0, "my text");
Note: You can only call DLL functions in the AUT if the first parameter of the DLL function has the C data type HWND.
The following code shows how to call the declared DLL functions in the process of the Open Agent:
IUserDll32Functions user32Function = DllCall.createAgentDllCall(IUserDll32Functions.class, desktop);
TextField textField = desktop.find("//TextField");
user32Function.SendMessageW(textField, WindowsMessages.WM_SETTEXT, 0, "my text");
Note: The example code uses the WindowsMessages class that contains useful constants for usage with DLL functions that relate to Windows messaging.