views:

119

answers:

1

Please forgive my ignorance, I'm completely new when it comes to winforms programming.

I'm using a third-party class that spawns an instance of Internet Explorer. This class has a property, hWnd, that returns the hWnd of the process.

Later on down the line, I may want to reuse the instance of the application if it still exists, so I need to tell my helper class to attach to it. Prior to doing that, I'd like to know if the given hWnd is still valid, otherwise I'll spawn another instance.

How can I do this in C# & .NET 3.5?

Thanks for the help and I apologize if my winforms nomenclature is all wacky.. haha

Ian

+4  A: 

If it is a window handle, you can call isWindow(hWnd);

From msdn:

Return Value

BOOL

If the window handle identifies an existing window, the return value is nonzero.

If the window handle does not identify an existing window, the return value is zero. Remarks

A thread should not use IsWindow for a window that it did not create because the window could be destroyed after this function was called. Further, because window handles are recycled the handle could even point to a different window.

By the way since you are in .NET you'll have to do something like:

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool IsWindow(IntPtr hWnd);
Francisco Soto
Perfect, exactly what I was looking for. Thanks for the help!
Ian P
One point of note, the DllImport attribute is in the System.Runtime.InteropServices namespace.
Ian P