namespace Ultima { public class WindowProcessStream : ProcessStream { private ClientWindowHandle m_Window; private ClientProcessHandle m_ProcessID; public ClientWindowHandle Window { get { return m_Window; } set { m_Window = value; } } public WindowProcessStream(ClientWindowHandle window) { m_Window = window; m_ProcessID = ClientProcessHandle.Invalid; } public override ClientProcessHandle ProcessID { get { if (NativeMethods.IsWindow(m_Window) != 0 && !m_ProcessID.IsInvalid) { return m_ProcessID; } NativeMethods.GetWindowThreadProcessId(m_Window, ref m_ProcessID); return m_ProcessID; } } } }