using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace Foo.ClientServices.ButtonWPForm { /// /// Button Hook uses the IButtonForm Interface to call into ButtonFormCCW. /// This allows ButtonHook to communicate to us the state ButtonFormCCW should take. /// ButtonForm will handle the methods/Events below and respond as needed. /// ~We use the hParentWND to track which ButtonForm Instance we are talking with /// (this is why all calls below have it in the method call ~it works better that way in COM+) /// [Guid("2CF9E641-57B7-436f-80E1-EF3127CB5C0A")] [InterfaceType(ComInterfaceType.InterfaceIsDual)] [ComVisible(true)] public interface IButtonForm { // Custom Events int W32BUTTONCLICKED(); // Called when ButtonHook activates/deactivates the COM Object void WPFThreadProc_ButtonWPForm_Activated(int hParentWND, int hButtonWND); void WPFThreadProc_ButtonWPForm_Deactivated(); // Hooked Window Events void WindowEvent_MaximizeOccured(int nHeight, int nWidth); void WindowEvent_MinimizeOccured(); void WindowEvent_WindowActivated(); void WindowEvent_WindowDeactivated(); } }