mirror of https://github.com/dahall/Vanara.git
303 lines
16 KiB
C#
303 lines
16 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Vanara.PInvoke
|
|
{
|
|
public static partial class Shell32
|
|
{
|
|
/// <summary>
|
|
/// Obtained by calling IShellFolder::BindToObject for an item. If the item represents a snapshot of an item at a previous time,
|
|
/// this interface will obtain the current version of the item.
|
|
/// </summary>
|
|
/// <remarks>This interface provides only the methods of the IRelatedItem interface, from which it inherits.</remarks>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-icurrentitem
|
|
[PInvokeData("shobjidl_core.h", MSDNShortId = "NN:shobjidl_core.ICurrentItem")]
|
|
[ComImport, Guid("240a7174-d653-4a1d-a6d3-d4943cfbfe3d"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface ICurrentItem : IRelatedItem
|
|
{
|
|
/// <summary>Gets the pointer to an item identifier list (PIDL) for the item that is related.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>PIDLIST_ABSOLUTE*</c></para>
|
|
/// <para>When this method returns, contains the PIDL.</para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitemidlist HRESULT
|
|
// GetItemIDList( PIDLIST_ABSOLUTE *ppidl );
|
|
new PIDL GetItemIDList();
|
|
|
|
/// <summary>Gets the IShellItem that is related to this item.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>IShellItem**</c></para>
|
|
/// <para>
|
|
/// When this method returns, contains the address of a pointer to the IShellItem interface for the item that is related to this item.
|
|
/// </para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitem HRESULT GetItem(
|
|
// IShellItem **ppsi );
|
|
new IShellItem GetItem();
|
|
}
|
|
|
|
/// <summary>Used to obtain the immediately underlying representation of an item's path.</summary>
|
|
/// <remarks>
|
|
/// <para>This interface provides only the methods of the IRelatedItem interface, from which it inherits.</para>
|
|
/// <para>When to Implement</para>
|
|
/// <para>
|
|
/// An implementation of this interface for system-provided data objects is provided with Windows. Custom data sources that want to
|
|
/// expose this information must implement the interface as part of their data object.
|
|
/// </para>
|
|
/// <para>When to Use</para>
|
|
/// <para>
|
|
/// Use this interface to uncovers a single level of aliasing. For instance, if you have the path of an item in the Documents
|
|
/// library, this interface reveals the path of the item in the location that was added to the library. Whether this is the file
|
|
/// system path depends on the nature of that original location. For a full recursion to the source item, use IIdentityName.
|
|
/// </para>
|
|
/// </remarks>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-idelegateitem
|
|
[PInvokeData("shobjidl_core.h", MSDNShortId = "NN:shobjidl_core.IDelegateItem")]
|
|
[ComImport, Guid("3c5a1c94-c951-4cb7-bb6d-3b93f30cce93"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface IDelegateItem : IRelatedItem
|
|
{
|
|
/// <summary>Gets the pointer to an item identifier list (PIDL) for the item that is related.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>PIDLIST_ABSOLUTE*</c></para>
|
|
/// <para>When this method returns, contains the PIDL.</para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitemidlist HRESULT
|
|
// GetItemIDList( PIDLIST_ABSOLUTE *ppidl );
|
|
new PIDL GetItemIDList();
|
|
|
|
/// <summary>Gets the IShellItem that is related to this item.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>IShellItem**</c></para>
|
|
/// <para>
|
|
/// When this method returns, contains the address of a pointer to the IShellItem interface for the item that is related to this item.
|
|
/// </para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitem HRESULT GetItem(
|
|
// IShellItem **ppsi );
|
|
new IShellItem GetItem();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Exposes methods that find a version of the current item to be used to get display properties, such as the item name, that will
|
|
/// be displayed in the UI. Used by the copy engine dialogs to provide the UI with an appropriate item to display. If no other
|
|
/// version can be found, the current item is used.
|
|
/// </summary>
|
|
/// <remarks>This interface provides only the methods of the IRelatedItem interface, from which it inherits.</remarks>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-idisplayitem
|
|
[PInvokeData("shobjidl_core.h", MSDNShortId = "NN:shobjidl_core.IDisplayItem")]
|
|
[ComImport, Guid("c6fd5997-9f6b-4888-8703-94e80e8cde3f"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface IDisplayItem : IRelatedItem
|
|
{
|
|
/// <summary>Gets the pointer to an item identifier list (PIDL) for the item that is related.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>PIDLIST_ABSOLUTE*</c></para>
|
|
/// <para>When this method returns, contains the PIDL.</para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitemidlist HRESULT
|
|
// GetItemIDList( PIDLIST_ABSOLUTE *ppidl );
|
|
new PIDL GetItemIDList();
|
|
|
|
/// <summary>Gets the IShellItem that is related to this item.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>IShellItem**</c></para>
|
|
/// <para>
|
|
/// When this method returns, contains the address of a pointer to the IShellItem interface for the item that is related to this item.
|
|
/// </para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitem HRESULT GetItem(
|
|
// IShellItem **ppsi );
|
|
new IShellItem GetItem();
|
|
}
|
|
|
|
/// <summary>Exposes methods to compare two items to see if they are the same.</summary>
|
|
/// <remarks>
|
|
/// <para>This interface provides only the methods of the IRelatedItem interface, from which it inherits.</para>
|
|
/// <para>
|
|
/// Shell data sources that present items in virtual locations, such as search results, typically implement this interface as a
|
|
/// handler to discover the actual location of an item—to find a folder that contains a file. For example, this interface is used to
|
|
/// implement the <c>Open File Location</c> command in Windows Explorer. When the user right-clicks on a file in a set of search
|
|
/// results, for example, and then selects <c>Open File Location</c>, the command uses <c>IIdentityName</c> to get the true item and
|
|
/// opens a browser on its parent (the file folder) instead of opening the parent of the item (which is where the user already is).
|
|
/// </para>
|
|
/// <para>
|
|
/// Several controls (the <c>Start</c> button on the taskbar, and the namespace control) use <c>IIdentityName</c> to get the
|
|
/// original item and thus avoid duplicate items.
|
|
/// </para>
|
|
/// <para>This interface is helpful with aliased ID lists (type ITEMIDLIST), as can be demonstrated using the following two lists.</para>
|
|
/// <list type="number">
|
|
/// <item>
|
|
/// <term>
|
|
/// [computer][c:][users][pat][desktop][myfile.txt]. This is a file in the user's desktop and is handled by the IShellFolder
|
|
/// implementation in Windows Vista that handles file systems.
|
|
/// </term>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>
|
|
/// [desktop][myfile.txt]. The IShellFolder implementation behind the desktop shows files from the user's desktop, all of the user's
|
|
/// desktop, and some special items like the <c>Recycle Bin</c>. When asked to bind through IShellFolder::BindToObject using IID
|
|
/// IID_IIdentityName, this <c>IShellFolder</c> returns the underlying item, which is the file folder item just above.
|
|
/// </term>
|
|
/// </item>
|
|
/// </list>
|
|
/// <note>To get an instance of this handler use IShellFolder::BindToObject with IID_IIdentityItem or use IShellItem::BindToHandler
|
|
/// with BHID_SFObject.</note>
|
|
/// </remarks>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-iidentityname
|
|
[PInvokeData("shobjidl_core.h", MSDNShortId = "NN:shobjidl_core.IIdentityName")]
|
|
[ComImport, Guid("7d903fca-d6f9-4810-8332-946c0177e247"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface IIdentityName : IRelatedItem
|
|
{
|
|
/// <summary>Gets the pointer to an item identifier list (PIDL) for the item that is related.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>PIDLIST_ABSOLUTE*</c></para>
|
|
/// <para>When this method returns, contains the PIDL.</para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitemidlist HRESULT
|
|
// GetItemIDList( PIDLIST_ABSOLUTE *ppidl );
|
|
new PIDL GetItemIDList();
|
|
|
|
/// <summary>Gets the IShellItem that is related to this item.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>IShellItem**</c></para>
|
|
/// <para>
|
|
/// When this method returns, contains the address of a pointer to the IShellItem interface for the item that is related to this item.
|
|
/// </para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitem HRESULT GetItem(
|
|
// IShellItem **ppsi );
|
|
new IShellItem GetItem();
|
|
}
|
|
|
|
/// <summary>Identifies an item that will be shown in the preview pane.</summary>
|
|
/// <remarks>
|
|
/// <para>This interface provides only the methods of the IRelatedItem interface, from which it inherits.</para>
|
|
/// <para>When to Implement</para>
|
|
/// <para>
|
|
/// An implementation of this interface for system-provided data objects is provided with Windows. Custom data sources that want to
|
|
/// expose this information must implement the interface as part of their data object.
|
|
/// </para>
|
|
/// </remarks>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-ipreviewitem
|
|
[PInvokeData("shobjidl_core.h", MSDNShortId = "NN:shobjidl_core.IPreviewItem")]
|
|
[ComImport, Guid("36149969-0A8F-49c8-8B00-4AECB20222FB"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface IPreviewItem : IRelatedItem
|
|
{
|
|
/// <summary>Gets the pointer to an item identifier list (PIDL) for the item that is related.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>PIDLIST_ABSOLUTE*</c></para>
|
|
/// <para>When this method returns, contains the PIDL.</para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitemidlist HRESULT
|
|
// GetItemIDList( PIDLIST_ABSOLUTE *ppidl );
|
|
new PIDL GetItemIDList();
|
|
|
|
/// <summary>Gets the IShellItem that is related to this item.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>IShellItem**</c></para>
|
|
/// <para>
|
|
/// When this method returns, contains the address of a pointer to the IShellItem interface for the item that is related to this item.
|
|
/// </para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitem HRESULT GetItem(
|
|
// IShellItem **ppsi );
|
|
new IShellItem GetItem();
|
|
}
|
|
|
|
/// <summary>Exposes methods that derive related items with specific relationships.</summary>
|
|
/// <remarks>
|
|
/// <para>
|
|
/// Do not implement this interface directly. This is a base interface (other interfaces derive from it) for a set of interfaces
|
|
/// that describes the relationship between two items, (For example IDisplayItem). Do not query for this interface directly, for
|
|
/// example, using QueryInterface or IShellFolder::BindToObject. Instead, use the derived interfaces.
|
|
/// </para>
|
|
/// <para>
|
|
/// An example derivation is the creation of an identity name handler. For more information, see IIdentityName. Other interfaces
|
|
/// that may derive from this interface include ICurrentItem, and ITransferMediumItem.
|
|
/// </para>
|
|
/// </remarks>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-irelateditem
|
|
[PInvokeData("shobjidl_core.h", MSDNShortId = "NN:shobjidl_core.IRelatedItem")]
|
|
[ComImport, Guid("a73ce67a-8ab1-44f1-8d43-d2fcbf6b1cd0"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface IRelatedItem
|
|
{
|
|
/// <summary>Gets the pointer to an item identifier list (PIDL) for the item that is related.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>PIDLIST_ABSOLUTE*</c></para>
|
|
/// <para>When this method returns, contains the PIDL.</para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitemidlist HRESULT
|
|
// GetItemIDList( PIDLIST_ABSOLUTE *ppidl );
|
|
PIDL GetItemIDList();
|
|
|
|
/// <summary>Gets the IShellItem that is related to this item.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>IShellItem**</c></para>
|
|
/// <para>
|
|
/// When this method returns, contains the address of a pointer to the IShellItem interface for the item that is related to this item.
|
|
/// </para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitem HRESULT GetItem(
|
|
// IShellItem **ppsi );
|
|
IShellItem GetItem();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Used by a copy engine to get the item on which to call QueryInterface to return a pointer to interface ITransferDestination or
|
|
/// interface ITransferSource. These interfaces can be queried and enumerated for copy, move, or delete operations.
|
|
/// </summary>
|
|
/// <remarks>This interface provides only the methods of the IRelatedItem interface, from which it inherits.</remarks>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-itransfermediumitem
|
|
[PInvokeData("shobjidl_core.h", MSDNShortId = "NN:shobjidl_core.ITransferMediumItem")]
|
|
[ComImport, Guid("77f295d5-2d6f-4e19-b8ae-322f3e721ab5"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface ITransferMediumItem : IRelatedItem
|
|
{
|
|
/// <summary>Gets the pointer to an item identifier list (PIDL) for the item that is related.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>PIDLIST_ABSOLUTE*</c></para>
|
|
/// <para>When this method returns, contains the PIDL.</para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitemidlist HRESULT
|
|
// GetItemIDList( PIDLIST_ABSOLUTE *ppidl );
|
|
new PIDL GetItemIDList();
|
|
|
|
/// <summary>Gets the IShellItem that is related to this item.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>IShellItem**</c></para>
|
|
/// <para>
|
|
/// When this method returns, contains the address of a pointer to the IShellItem interface for the item that is related to this item.
|
|
/// </para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitem HRESULT GetItem(
|
|
// IShellItem **ppsi );
|
|
new IShellItem GetItem();
|
|
}
|
|
|
|
/// <summary>Provides a canonical persistence item, an item for which view customizations will be remembered.</summary>
|
|
/// <remarks>This interface provides only the methods of the IRelatedItem interface, from which it inherits.</remarks>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-iviewstateidentityitem
|
|
[PInvokeData("shobjidl_core.h", MSDNShortId = "NN:shobjidl_core.IViewStateIdentityItem")]
|
|
[ComImport, Guid("9D264146-A94F-4195-9F9F-3BB12CE0C955"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
|
public interface IViewStateIdentityItem : IRelatedItem
|
|
{
|
|
/// <summary>Gets the pointer to an item identifier list (PIDL) for the item that is related.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>PIDLIST_ABSOLUTE*</c></para>
|
|
/// <para>When this method returns, contains the PIDL.</para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitemidlist HRESULT
|
|
// GetItemIDList( PIDLIST_ABSOLUTE *ppidl );
|
|
new PIDL GetItemIDList();
|
|
|
|
/// <summary>Gets the IShellItem that is related to this item.</summary>
|
|
/// <returns>
|
|
/// <para>Type: <c>IShellItem**</c></para>
|
|
/// <para>
|
|
/// When this method returns, contains the address of a pointer to the IShellItem interface for the item that is related to this item.
|
|
/// </para>
|
|
/// </returns>
|
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-irelateditem-getitem HRESULT GetItem(
|
|
// IShellItem **ppsi );
|
|
new IShellItem GetItem();
|
|
}
|
|
}
|
|
} |