- SharpShell_Tools.zip
- Apex.dll
- Apex.WinForms.dll
- ServerInspector.exe
- ServerManager.exe
- SharpShell.dll
- SharpShell_Core_Library.zip
- SharpShell_Source_Code.zip
- SharpShell Source Code
- Dependencies
- Apex
- Apex.WinForms.dll
- SharpShell
- Info.txt
- packages
- Apex.1.5.0
- Apex.1.5.0.nupkg
- lib
- net35
- Apex.dll
- net40
- Apex.dll
- sl30
- Apex.Silverlight.dll
- sl3-wp
- Apex.WP7.dll
- sl40
- Apex.Silverlight4.dll
- sl4-wp71
- Apex.WP7.dll
- sl50
- Apex.Silverlight.dll
- ILMerge.2.12.0803
- ILMerge.2.12.0803.nupkg
- ILMerge.doc
- ILMerge.exe
- NUnit.2.6.2
- repositories.config
- Samples
- ContextMenu
- ContextMenuComponent
- Properties
- ContextMenuSample
- Properties
- CountLinesExtension
- DllContextMenuExtension
- IsolatedContextMenuComponent
- Diagnostics
- Interop
- Properties
- ServerRegistration
- SharpContextMenu
- DropHandler
- XsdDropHandler
- IconHandler
- DllIconHandler
- IconOverlayHandler
- ReadOnlyFileIconOverlayHandler
- InfoTipHandler
- FolderInfoTipHandler
- PreviewHandler
- IconPreviewHandler
- PropertySheet
- DrivePropertySheet
- ResourcesPropertySheet
- TextFilePropertySheet
- SharedAssemblyInfo.cs
- SharpShell.sln
- SharpShell
- SharpShellNativeBridge
- Todo.txt
- Tools
- ExtensionManager
- Properties
- Resources
- xsd.ico
- ServerInspector
- ServerManager
- ShellExtensionManager
|
using System;
using System.Reflection;
using System.Windows.Forms;
using SharpShell.Diagnostics;
namespace SharpShell.Extensions
{
/// <summary>
/// Extensions for cotrols.
/// </summary>
public static class ControlExtensions
{
/// <summary>
/// Calls the window proc.
/// </summary>
/// <param name="me">Me.</param>
/// <param name="hWnd">The window handle.</param>
/// <param name="uMessage">The message.</param>
/// <param name="wParam">The w param.</param>
/// <param name="lParam">The l param.</param>
/// <returns>True if the message was handled.</returns>
public static bool WindowProc(this Control me, IntPtr hWnd, uint uMessage, IntPtr wParam, IntPtr lParam)
{
// Get the wndproc function.
try
{
var methodInfo = me.GetType().GetMethod("WndProc", BindingFlags.Instance | BindingFlags.NonPublic);
return (bool)methodInfo.Invoke(me, new object[] { new Message { HWnd = hWnd, WParam = wParam, LParam = lParam, Msg = (int)uMessage } });
}
catch (Exception exception)
{
Logging.Error("Failed to pass to wnproc", exception);
return false;
}
}
public static Control FindFocusedControl(this Control @this)
{
var container = @this as ContainerControl;
while (container != null)
{
@this = container.ActiveControl;
container = @this as ContainerControl;
}
return @this;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.