- SharpShell_Source_Code.zip
- Dependencies
- Apex
- Apex.dll
- Apex.WinForms.dll
- SharpShell
- .nuget
- 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
- CopyDirectoryLocationHandler
- CountLinesExtension
- DllContextMenuExtension
- MultipleExtensionsSample
- DataHandler
- CopyPathDataHandler
- DropHandler
- XsdDropHandler
- IconHandler
- DllIconHandler
- IconOverlayHandler
- LockedFileIconOverlayHandler
- ReadOnlyFileIconOverlayHandler
- InfoTipHandler
- FolderInfoTipHandler
- PreviewHandler
- IconPreviewHandler
- PropertySheet
- FileTimesPropertySheet
- ResourcesPropertySheet
- ThumbnailHandler
- TxtThumbnailHandler
- SharedAssemblyInfo.cs
- SharpShell.sln
- SharpShell
- SharpShellNativeBridge
- Tests
- SharpShell.Tests
- Tools
- ExtensionManager
- Properties
- Resources
- xsd.ico
- ServerInspector
- ServerManager
- ShellExtensionManager
- SharpShell_Core_Library.zip
- SharpShell_Tools.zip
- Apex.WinForms.dll
- ServerManager.exe
- SharpShell.dll
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
namespace SharpShell.Interop
{
internal static class User32
{
[DllImport("user32.dll")]
internal static extern bool InsertMenuItem(IntPtr hMenu, uint uItem, bool fByPosition,
[In] ref MENUITEMINFO lpmii);
[DllImport("user32.dll")]
internal static extern IntPtr CreatePopupMenu();
[DllImport("user32.dll", SetLastError = true)] // SETLAST by us
internal static extern int SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
internal static extern bool SetWindowText(IntPtr hwnd, String lpString);
[DllImport("user32.dll")]
internal static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
[DllImport("user32.dll")]
internal static extern int GetWindowLong(IntPtr hWnd, int nIndex);
[DllImport("user32.dll")]
internal static extern int SendMessage(IntPtr hWnd, uint Msg, uint wParam, IntPtr lParam);
[DllImport("user32.dll")]
internal static extern int SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll")]
internal static extern IntPtr GetDC(IntPtr hWnd);
[DllImport("user32.dll")]
internal static extern bool DestroyWindow(IntPtr hostWindowHandle);
/// <summary>
/// Converts an item identifier list to a file system path. (Note: SHGetPathFromIDList calls the ANSI version, must call SHGetPathFromIDListW for .NET)
/// </summary>
/// <param name="pidl">Address of an item identifier list that specifies a file or directory location relative to the root of the namespace (the desktop).</param>
/// <param name="pszPath">Address of a buffer to receive the file system path. This buffer must be at least MAX_PATH characters in size.</param>
/// <returns>Returns TRUE if successful, or FALSE otherwise. </returns>
[DllImport("shell32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SHGetPathFromIDListW(IntPtr pidl, [MarshalAs(UnmanagedType.LPTStr)] StringBuilder pszPath);
/// <summary>
/// Retrieves a handle to the specified window's parent or owner.
/// </summary>
/// <param name="hWnd">A handle to the window whose parent window handle is to be retrieved.</param>
/// <returns>If the window is a child window, the return value is a handle to the parent window. If the window is a top-level window with the WS_POPUP style, the return value is a handle to the owner window. If the function fails, the return value is NULL. To get extended error information, call GetLastError.</returns>
[DllImport("user32.dll", SetLastError = true)]
internal static extern IntPtr GetParent(IntPtr hWnd);
public static int GWL_STYLE = -16;
public static int WS_CHILD = 0x40000000;
public static int HighWord(int number)
{
return ((number & 0x80000000) == 0x80000000) ?
(number >> 16) : ((number >> 16) & 0xffff);
}
public static int LowWord(int number)
{
return number & 0xffff;
}
}
}
|
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.