Gets the alternate itemID of the current selection when an alternate UIHierarchy is used.
Namespace:  Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop (in Microsoft.VisualStudio.Shell.Interop.dll)
Syntax
'Declaration
Function GetCurrentSelection ( _
    <OutAttribute> ByRef ppHier As IntPtr, _
    <OutAttribute> ByRef pitemid As UInteger, _
    <OutAttribute> ByRef ppMIS As IVsMultiItemSelect _
) As Integer
int GetCurrentSelection(
    out IntPtr ppHier,
    out uint pitemid,
    out IVsMultiItemSelect ppMIS
)
int GetCurrentSelection(
    [OutAttribute] IntPtr% ppHier, 
    [OutAttribute] unsigned int% pitemid, 
    [OutAttribute] IVsMultiItemSelect^% ppMIS
)
abstract GetCurrentSelection : 
        ppHier:IntPtr byref * 
        pitemid:uint32 byref * 
        ppMIS:IVsMultiItemSelect byref -> int
function GetCurrentSelection(
    ppHier : IntPtr, 
    pitemid : uint, 
    ppMIS : IVsMultiItemSelect
) : int
Parameters
- ppHier 
 Type: IntPtr%- [out] Pointer to the IVsHierarchy interface of the current project hierarchy. 
- pitemid 
 Type: UInt32%- [out] Pointer to the identifier for the current project item. If pitemid is set to VSITEMID_SELECTION, the current selection involves multiple items. These items can be accessed using the IVsMultiItemSelect interface pointed to by ppMIS. 
- ppMIS 
 Type: Microsoft.VisualStudio.Shell.Interop.IVsMultiItemSelect%- [out] Pointer to the IVsMultiItemSelect interface to be used to access a multiple selection. 
Return Value
Type: Int32
If the method succeeds, it returns S_OK. If it fails, it returns an error code.
Remarks
COM Signature
From vsshell.idl:
HRESULT IVsUIHierarchyWindow::GetCurrentSelection(
   [out] IVsHierarchy ** ppHier,
   [out] VSITEMID * pitemid,
   [out] IVsMultiItemSelect ** ppMIS
);
When there are no alternate UI hierarchy itemIDs, it is more common to use GetCurrentSelection to get the global currently active hierarchy itemID.
IVsUIHierarchyWindow::GetCurrentSelection is used when the selection within the local UI window has a different hierarchy itemID from the global hierarchy itemID. A UI window pushes a different hierarchy itemID to the global level if grfUIHWF is specified as UIHWF_PropagateAltHierarchyItem in Init.
The Macro Explorer and the Server Explorer are examples of tool windows that use a local UI window hierarchy itemID. In the Macro Explorer and Server Explorer, the IVsTrackSelectionEx implementation specifies the value HIERARCHY_DONTPROPAGATE (defined in vsshell.idl) so the locally selected UI hierarchy itemID does not get propagated to the global level. If HIERARCHY_DONTPROPAGATE is not selected, the local hierarchy itemID can be pushed to the global level.
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.