SendMessageTimeout (user32)
Last changed: -204.187.150.35

.
Summary

C# Signature:

[DllImport("user32.dll", SetLastError=true, CharSet=CharSet.Auto)]
static extern IntPtr SendMessageTimeout(IntPtr hWnd, uint Msg,
   UIntPtr wParam, IntPtr lParam, SendMessageTimeoutFlags fuFlags,
   uint uTimeout, out UIntPtr lpdwResult);

[DllImport("user32.dll", SetLastError=true, CharSet=CharSet.Auto)]
public static extern IntPtr SendMessageTimeout(IntPtr windowHandle,
    uint Msg,
    IntPtr wParam,
    IntPtr lParam,
    SendMessageTimeoutFlags flags,
    uint timeout,
    out IntPtr result);

User-Defined Types:

SendMessageTimeoutFlags

VB Signature:

<DllImport("user32.dll", SetLastError:=True)> _
Public Sub SendMessageTimeout(ByVal windowHandle As IntPtr,ByVal Msg As Integer,ByVal wParam As IntPtr,ByVal lParam As IntPtr,ByVal flags As SendMessageTimeoutFlags,ByVal timeout As Integer,ByRef result As IntPtr)
End Sub

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

C# Sample Code

//Register the message
lMsg = Win32.RegisterWindowMessage("WM_HTML_GETOBJECT");
//Get the object
Win32.SendMessageTimeout(windowHandle, lMsg, IntPtr.Zero, IntPtr.Zero, SendMessageTimeoutFlags.SMTO_ABORT_IF_HUNG, 1000, out lRes);
if(lRes != IntPtr.Zero)
{
    //Get the object from lRes
    htmlDoc= (mshtml.IHTMLDocument)Win32.ObjectFromLresult(lRes, IID_IHTMLDocument, IntPtr.Zero);
    return htmlDoc;
}

Alternative Managed API:

Do you know one? Please contribute it!

Documentation