//------------------------------------------------------------------------------
// <copyright file="IWindowTarget.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>                                                                
//------------------------------------------------------------------------------

/*
 */
namespace System.Windows.Forms {
    using System.Runtime.Remoting;

    using System.Diagnostics;

    using System;
    using System.Windows.Forms;
    using Microsoft.Win32;

    /// <include file='doc\IWindowTarget.uex' path='docs/doc[@for="IWindowTarget"]/*' />
    /// <devdoc>
    ///      This interface defines the communication layer between
    ///      a Control object and the Win32 API.  Each Control object
    ///      has an internal implementation this interface that is called
    ///      by the Win32 window.
    /// </devdoc>
    /// <internalonly/>
    public interface IWindowTarget {

        /// <include file='doc\IWindowTarget.uex' path='docs/doc[@for="IWindowTarget.OnHandleChange"]/*' />
        /// <devdoc>
        ///      Called when the window handle of the control has changed.
        /// </devdoc>
        void OnHandleChange(IntPtr newHandle);

        /// <include file='doc\IWindowTarget.uex' path='docs/doc[@for="IWindowTarget.OnMessage"]/*' />
        /// <devdoc>
        ///      Called to do control-specific processing for this window.
        /// </devdoc>
        void OnMessage(ref Message m);
    }

}
