mirror of https://github.com/dahall/Vanara.git
BREAKING CHANGE: Modified interfaces IOleWindow and IShellBrowser and all derived interfaces so they use PreserveSigAttribute. All these interfaces can be client implemented and needed that capability.
parent
7f2c2a6df3
commit
52ac177f8e
|
@ -1649,12 +1649,141 @@ namespace Vanara.PInvoke
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>A pointer to a variable that receives the window handle.</returns>
|
/// <param name="phwnd">A pointer to a variable that receives the window handle.</param>
|
||||||
new HWND GetWindow();
|
/// <returns>
|
||||||
|
/// This method returns S_OK on success. Other possible return values include the following.
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_FAIL</description>
|
||||||
|
/// <description>The object is windowless.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>
|
||||||
|
/// Five types of windows comprise the windows hierarchy. When a object is active in place, it has access to some or all of
|
||||||
|
/// these windows.
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Window</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Frame</description>
|
||||||
|
/// <description>The outermost main window where the container application's main menu resides.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Document</description>
|
||||||
|
/// <description>The window that displays the compound document containing the embedded object to the user.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Pane</description>
|
||||||
|
/// <description>
|
||||||
|
/// The subwindow of the document window that contains the object's view. Applicable only for applications with split-pane windows.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Parent</description>
|
||||||
|
/// <description>
|
||||||
|
/// The container window that contains that object's view. The object application installs its window as a child of this window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>In-place</description>
|
||||||
|
/// <description>
|
||||||
|
/// The window containing the active in-place object. The object application creates this window and installs it as a child of
|
||||||
|
/// its hatch window, which is a child of the container's parent window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// Each type of window has a different role in the in-place activation architecture. However, it is not necessary to employ a
|
||||||
|
/// separate physical window for each type. Many container applications use the same window for their frame, document, pane, and
|
||||||
|
/// parent windows.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT GetWindow(out HWND phwnd);
|
||||||
|
|
||||||
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
||||||
/// <param name="fEnterMode"><c>true</c> if help mode should be entered; <c>false</c> if it should be exited.</param>
|
/// <param name="fEnterMode">
|
||||||
new void ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
/// <see langword="true"/> if help mode should be entered; <see langword="false"/> if it should be exited.
|
||||||
|
/// </param>
|
||||||
|
/// <returns>
|
||||||
|
/// <para>
|
||||||
|
/// This method returns S_OK if the help mode was entered or exited successfully, depending on the value passed in <paramref
|
||||||
|
/// name="fEnterMode"/>. Other possible return values include the following. <br/>
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_INVALIDARG</description>
|
||||||
|
/// <description>The specified <paramref name="fEnterMode"/> value is not valid.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>Applications can invoke context-sensitive help when the user:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>presses SHIFT+F1, then clicks a topic</item>
|
||||||
|
/// <item>presses F1 when a menu item is selected</item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// When SHIFT+F1 is pressed, either the frame or active object can receive the keystrokes. If the container's frame receives
|
||||||
|
/// the keystrokes, it calls its containing document's IOleWindow::ContextSensitiveHelp method with <paramref
|
||||||
|
/// name="fEnterMode"/> set to <see langword="true"/>. This propagates the help state to all of its in-place objects so they can
|
||||||
|
/// correctly handle the mouse click or WM_COMMAND.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If an active object receives the SHIFT+F1 keystrokes, it calls the container's IOleWindow::ContextSensitiveHelp method with
|
||||||
|
/// <paramref name="fEnterMode"/> set to <see langword="true"/>, which then recursively calls each of its in-place sites until
|
||||||
|
/// there are no more to be notified. The container then calls its document's or frame's IOleWindow::ContextSensitiveHelp method
|
||||||
|
/// with <paramref name="fEnterMode"/> set to <see langword="true"/>.
|
||||||
|
/// </para>
|
||||||
|
/// <para>When in context-sensitive help mode, an object that receives the mouse click can either:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>Ignore the click if it does not support context-sensitive help.</item>
|
||||||
|
/// <item>
|
||||||
|
/// Tell all the other objects to exit context-sensitive help mode with ContextSensitiveHelp set to FALSE and then provide help
|
||||||
|
/// for that context.
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// An object in context-sensitive help mode that receives a WM_COMMAND should tell all the other in-place objects to exit
|
||||||
|
/// context-sensitive help mode and then provide help for the command.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If a container application is to support context-sensitive help on menu items, it must either provide its own message filter
|
||||||
|
/// so that it can intercept the F1 key or ask the OLE library to add a message filter by calling OleSetMenuDescriptor, passing
|
||||||
|
/// valid, non-NULL values for the lpFrame and lpActiveObj parameters.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
||||||
|
|
||||||
/// <summary>Processes menu accelerator-key messages from the container's message queue. This method should only be used for objects created by a DLL object application.</summary>
|
/// <summary>Processes menu accelerator-key messages from the container's message queue. This method should only be used for objects created by a DLL object application.</summary>
|
||||||
/// <param name="lpmsg">A pointer to an MSG structure for the message that might need to be translated.</param>
|
/// <param name="lpmsg">A pointer to an MSG structure for the message that might need to be translated.</param>
|
||||||
|
@ -1755,12 +1884,142 @@ namespace Vanara.PInvoke
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>A pointer to a variable that receives the window handle.</returns>
|
/// <param name="phwnd">A pointer to a variable that receives the window handle.</param>
|
||||||
new HWND GetWindow();
|
/// <returns>
|
||||||
|
/// This method returns S_OK on success. Other possible return values include the following.
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_FAIL</description>
|
||||||
|
/// <description>The object is windowless.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>
|
||||||
|
/// Five types of windows comprise the windows hierarchy. When a object is active in place, it has access to some or all of
|
||||||
|
/// these windows.
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Window</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Frame</description>
|
||||||
|
/// <description>The outermost main window where the container application's main menu resides.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Document</description>
|
||||||
|
/// <description>The window that displays the compound document containing the embedded object to the user.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Pane</description>
|
||||||
|
/// <description>
|
||||||
|
/// The subwindow of the document window that contains the object's view. Applicable only for applications with split-pane windows.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Parent</description>
|
||||||
|
/// <description>
|
||||||
|
/// The container window that contains that object's view. The object application installs its window as a child of this window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>In-place</description>
|
||||||
|
/// <description>
|
||||||
|
/// The window containing the active in-place object. The object application creates this window and installs it as a child of
|
||||||
|
/// its hatch window, which is a child of the container's parent window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// Each type of window has a different role in the in-place activation architecture. However, it is not necessary to employ a
|
||||||
|
/// separate physical window for each type. Many container applications use the same window for their frame, document, pane, and
|
||||||
|
/// parent windows.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT GetWindow(out HWND phwnd);
|
||||||
|
|
||||||
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
||||||
/// <param name="fEnterMode"><c>true</c> if help mode should be entered; <c>false</c> if it should be exited.</param>
|
/// <param name="fEnterMode">
|
||||||
new void ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
/// <see langword="true"/> if help mode should be entered; <see langword="false"/> if it should be exited.
|
||||||
|
/// </param>
|
||||||
|
/// <returns>
|
||||||
|
/// <para>
|
||||||
|
/// This method returns S_OK if the help mode was entered or exited successfully, depending on the value passed in <paramref
|
||||||
|
/// name="fEnterMode"/>. Other possible return values include the following. <br/>
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_INVALIDARG</description>
|
||||||
|
/// <description>The specified <paramref name="fEnterMode"/> value is not valid.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>Applications can invoke context-sensitive help when the user:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>presses SHIFT+F1, then clicks a topic</item>
|
||||||
|
/// <item>presses F1 when a menu item is selected</item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// When SHIFT+F1 is pressed, either the frame or active object can receive the keystrokes. If the container's frame receives
|
||||||
|
/// the keystrokes, it calls its containing document's IOleWindow::ContextSensitiveHelp method with <paramref
|
||||||
|
/// name="fEnterMode"/> set to <see langword="true"/>. This propagates the help state to all of its in-place objects so they can
|
||||||
|
/// correctly handle the mouse click or WM_COMMAND.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If an active object receives the SHIFT+F1 keystrokes, it calls the container's IOleWindow::ContextSensitiveHelp method with
|
||||||
|
/// <paramref name="fEnterMode"/> set to <see langword="true"/>, which then recursively calls each of its in-place sites until
|
||||||
|
/// there are no more to be notified. The container then calls its document's or frame's IOleWindow::ContextSensitiveHelp method
|
||||||
|
/// with <paramref name="fEnterMode"/> set to <see langword="true"/>.
|
||||||
|
/// </para>
|
||||||
|
/// <para>When in context-sensitive help mode, an object that receives the mouse click can either:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>Ignore the click if it does not support context-sensitive help.</item>
|
||||||
|
/// <item>
|
||||||
|
/// Tell all the other objects to exit context-sensitive help mode with ContextSensitiveHelp set to FALSE and then provide help
|
||||||
|
/// for that context.
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// An object in context-sensitive help mode that receives a WM_COMMAND should tell all the other in-place objects to exit
|
||||||
|
/// context-sensitive help mode and then provide help for the command.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If a container application is to support context-sensitive help on menu items, it must either provide its own message filter
|
||||||
|
/// so that it can intercept the F1 key or ask the OLE library to add a message filter by calling OleSetMenuDescriptor, passing
|
||||||
|
/// valid, non-NULL values for the lpFrame and lpActiveObj parameters.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
||||||
|
|
||||||
|
|
||||||
/// <summary>Retrieves the outer rectange for toolbars and controls while the object is active in place.</summary>
|
/// <summary>Retrieves the outer rectange for toolbars and controls while the object is active in place.</summary>
|
||||||
/// <param name="lprectBorder">
|
/// <param name="lprectBorder">
|
||||||
|
@ -2079,12 +2338,142 @@ namespace Vanara.PInvoke
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>A pointer to a variable that receives the window handle.</returns>
|
/// <param name="phwnd">A pointer to a variable that receives the window handle.</param>
|
||||||
new HWND GetWindow();
|
/// <returns>
|
||||||
|
/// This method returns S_OK on success. Other possible return values include the following.
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_FAIL</description>
|
||||||
|
/// <description>The object is windowless.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>
|
||||||
|
/// Five types of windows comprise the windows hierarchy. When a object is active in place, it has access to some or all of
|
||||||
|
/// these windows.
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Window</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Frame</description>
|
||||||
|
/// <description>The outermost main window where the container application's main menu resides.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Document</description>
|
||||||
|
/// <description>The window that displays the compound document containing the embedded object to the user.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Pane</description>
|
||||||
|
/// <description>
|
||||||
|
/// The subwindow of the document window that contains the object's view. Applicable only for applications with split-pane windows.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Parent</description>
|
||||||
|
/// <description>
|
||||||
|
/// The container window that contains that object's view. The object application installs its window as a child of this window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>In-place</description>
|
||||||
|
/// <description>
|
||||||
|
/// The window containing the active in-place object. The object application creates this window and installs it as a child of
|
||||||
|
/// its hatch window, which is a child of the container's parent window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// Each type of window has a different role in the in-place activation architecture. However, it is not necessary to employ a
|
||||||
|
/// separate physical window for each type. Many container applications use the same window for their frame, document, pane, and
|
||||||
|
/// parent windows.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT GetWindow(out HWND phwnd);
|
||||||
|
|
||||||
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
||||||
/// <param name="fEnterMode"><c>true</c> if help mode should be entered; <c>false</c> if it should be exited.</param>
|
/// <param name="fEnterMode">
|
||||||
new void ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
/// <see langword="true"/> if help mode should be entered; <see langword="false"/> if it should be exited.
|
||||||
|
/// </param>
|
||||||
|
/// <returns>
|
||||||
|
/// <para>
|
||||||
|
/// This method returns S_OK if the help mode was entered or exited successfully, depending on the value passed in <paramref
|
||||||
|
/// name="fEnterMode"/>. Other possible return values include the following. <br/>
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_INVALIDARG</description>
|
||||||
|
/// <description>The specified <paramref name="fEnterMode"/> value is not valid.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>Applications can invoke context-sensitive help when the user:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>presses SHIFT+F1, then clicks a topic</item>
|
||||||
|
/// <item>presses F1 when a menu item is selected</item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// When SHIFT+F1 is pressed, either the frame or active object can receive the keystrokes. If the container's frame receives
|
||||||
|
/// the keystrokes, it calls its containing document's IOleWindow::ContextSensitiveHelp method with <paramref
|
||||||
|
/// name="fEnterMode"/> set to <see langword="true"/>. This propagates the help state to all of its in-place objects so they can
|
||||||
|
/// correctly handle the mouse click or WM_COMMAND.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If an active object receives the SHIFT+F1 keystrokes, it calls the container's IOleWindow::ContextSensitiveHelp method with
|
||||||
|
/// <paramref name="fEnterMode"/> set to <see langword="true"/>, which then recursively calls each of its in-place sites until
|
||||||
|
/// there are no more to be notified. The container then calls its document's or frame's IOleWindow::ContextSensitiveHelp method
|
||||||
|
/// with <paramref name="fEnterMode"/> set to <see langword="true"/>.
|
||||||
|
/// </para>
|
||||||
|
/// <para>When in context-sensitive help mode, an object that receives the mouse click can either:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>Ignore the click if it does not support context-sensitive help.</item>
|
||||||
|
/// <item>
|
||||||
|
/// Tell all the other objects to exit context-sensitive help mode with ContextSensitiveHelp set to FALSE and then provide help
|
||||||
|
/// for that context.
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// An object in context-sensitive help mode that receives a WM_COMMAND should tell all the other in-place objects to exit
|
||||||
|
/// context-sensitive help mode and then provide help for the command.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If a container application is to support context-sensitive help on menu items, it must either provide its own message filter
|
||||||
|
/// so that it can intercept the F1 key or ask the OLE library to add a message filter by calling OleSetMenuDescriptor, passing
|
||||||
|
/// valid, non-NULL values for the lpFrame and lpActiveObj parameters.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
||||||
|
|
||||||
|
|
||||||
/// <summary>Retrieves the outer rectange for toolbars and controls while the object is active in place.</summary>
|
/// <summary>Retrieves the outer rectange for toolbars and controls while the object is active in place.</summary>
|
||||||
/// <param name="lprectBorder">
|
/// <param name="lprectBorder">
|
||||||
|
@ -3404,12 +3793,141 @@ namespace Vanara.PInvoke
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>A pointer to a variable that receives the window handle.</returns>
|
/// <param name="phwnd">A pointer to a variable that receives the window handle.</param>
|
||||||
HWND GetWindow();
|
/// <returns>
|
||||||
|
/// This method returns S_OK on success. Other possible return values include the following.
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_FAIL</description>
|
||||||
|
/// <description>The object is windowless.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>
|
||||||
|
/// Five types of windows comprise the windows hierarchy. When a object is active in place, it has access to some or all of
|
||||||
|
/// these windows.
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Window</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Frame</description>
|
||||||
|
/// <description>The outermost main window where the container application's main menu resides.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Document</description>
|
||||||
|
/// <description>The window that displays the compound document containing the embedded object to the user.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Pane</description>
|
||||||
|
/// <description>
|
||||||
|
/// The subwindow of the document window that contains the object's view. Applicable only for applications with split-pane windows.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Parent</description>
|
||||||
|
/// <description>
|
||||||
|
/// The container window that contains that object's view. The object application installs its window as a child of this window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>In-place</description>
|
||||||
|
/// <description>
|
||||||
|
/// The window containing the active in-place object. The object application creates this window and installs it as a child of
|
||||||
|
/// its hatch window, which is a child of the container's parent window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// Each type of window has a different role in the in-place activation architecture. However, it is not necessary to employ a
|
||||||
|
/// separate physical window for each type. Many container applications use the same window for their frame, document, pane, and
|
||||||
|
/// parent windows.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
HRESULT GetWindow(out HWND phwnd);
|
||||||
|
|
||||||
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
||||||
/// <param name="fEnterMode"><c>true</c> if help mode should be entered; <c>false</c> if it should be exited.</param>
|
/// <param name="fEnterMode">
|
||||||
void ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
/// <see langword="true"/> if help mode should be entered; <see langword="false"/> if it should be exited.
|
||||||
|
/// </param>
|
||||||
|
/// <returns>
|
||||||
|
/// <para>
|
||||||
|
/// This method returns S_OK if the help mode was entered or exited successfully, depending on the value passed in <paramref
|
||||||
|
/// name="fEnterMode"/>. Other possible return values include the following. <br/>
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_INVALIDARG</description>
|
||||||
|
/// <description>The specified <paramref name="fEnterMode"/> value is not valid.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>Applications can invoke context-sensitive help when the user:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>presses SHIFT+F1, then clicks a topic</item>
|
||||||
|
/// <item>presses F1 when a menu item is selected</item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// When SHIFT+F1 is pressed, either the frame or active object can receive the keystrokes. If the container's frame receives
|
||||||
|
/// the keystrokes, it calls its containing document's IOleWindow::ContextSensitiveHelp method with <paramref
|
||||||
|
/// name="fEnterMode"/> set to <see langword="true"/>. This propagates the help state to all of its in-place objects so they can
|
||||||
|
/// correctly handle the mouse click or WM_COMMAND.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If an active object receives the SHIFT+F1 keystrokes, it calls the container's IOleWindow::ContextSensitiveHelp method with
|
||||||
|
/// <paramref name="fEnterMode"/> set to <see langword="true"/>, which then recursively calls each of its in-place sites until
|
||||||
|
/// there are no more to be notified. The container then calls its document's or frame's IOleWindow::ContextSensitiveHelp method
|
||||||
|
/// with <paramref name="fEnterMode"/> set to <see langword="true"/>.
|
||||||
|
/// </para>
|
||||||
|
/// <para>When in context-sensitive help mode, an object that receives the mouse click can either:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>Ignore the click if it does not support context-sensitive help.</item>
|
||||||
|
/// <item>
|
||||||
|
/// Tell all the other objects to exit context-sensitive help mode with ContextSensitiveHelp set to FALSE and then provide help
|
||||||
|
/// for that context.
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// An object in context-sensitive help mode that receives a WM_COMMAND should tell all the other in-place objects to exit
|
||||||
|
/// context-sensitive help mode and then provide help for the command.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If a container application is to support context-sensitive help on menu items, it must either provide its own message filter
|
||||||
|
/// so that it can intercept the F1 key or ask the OLE library to add a message filter by calling OleSetMenuDescriptor, passing
|
||||||
|
/// valid, non-NULL values for the lpFrame and lpActiveObj parameters.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
HRESULT ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -43,12 +43,141 @@ namespace Vanara.PInvoke
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>A pointer to a variable that receives the window handle.</returns>
|
/// <param name="phwnd">A pointer to a variable that receives the window handle.</param>
|
||||||
new HWND GetWindow();
|
/// <returns>
|
||||||
|
/// This method returns S_OK on success. Other possible return values include the following.
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_FAIL</description>
|
||||||
|
/// <description>The object is windowless.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>
|
||||||
|
/// Five types of windows comprise the windows hierarchy. When a object is active in place, it has access to some or all of
|
||||||
|
/// these windows.
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Window</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Frame</description>
|
||||||
|
/// <description>The outermost main window where the container application's main menu resides.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Document</description>
|
||||||
|
/// <description>The window that displays the compound document containing the embedded object to the user.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Pane</description>
|
||||||
|
/// <description>
|
||||||
|
/// The subwindow of the document window that contains the object's view. Applicable only for applications with split-pane windows.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Parent</description>
|
||||||
|
/// <description>
|
||||||
|
/// The container window that contains that object's view. The object application installs its window as a child of this window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>In-place</description>
|
||||||
|
/// <description>
|
||||||
|
/// The window containing the active in-place object. The object application creates this window and installs it as a child of
|
||||||
|
/// its hatch window, which is a child of the container's parent window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// Each type of window has a different role in the in-place activation architecture. However, it is not necessary to employ a
|
||||||
|
/// separate physical window for each type. Many container applications use the same window for their frame, document, pane, and
|
||||||
|
/// parent windows.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT GetWindow(out HWND phwnd);
|
||||||
|
|
||||||
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
||||||
/// <param name="fEnterMode"><c>true</c> if help mode should be entered; <c>false</c> if it should be exited.</param>
|
/// <param name="fEnterMode">
|
||||||
new void ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
/// <see langword="true"/> if help mode should be entered; <see langword="false"/> if it should be exited.
|
||||||
|
/// </param>
|
||||||
|
/// <returns>
|
||||||
|
/// <para>
|
||||||
|
/// This method returns S_OK if the help mode was entered or exited successfully, depending on the value passed in <paramref
|
||||||
|
/// name="fEnterMode"/>. Other possible return values include the following. <br/>
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_INVALIDARG</description>
|
||||||
|
/// <description>The specified <paramref name="fEnterMode"/> value is not valid.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>Applications can invoke context-sensitive help when the user:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>presses SHIFT+F1, then clicks a topic</item>
|
||||||
|
/// <item>presses F1 when a menu item is selected</item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// When SHIFT+F1 is pressed, either the frame or active object can receive the keystrokes. If the container's frame receives
|
||||||
|
/// the keystrokes, it calls its containing document's IOleWindow::ContextSensitiveHelp method with <paramref
|
||||||
|
/// name="fEnterMode"/> set to <see langword="true"/>. This propagates the help state to all of its in-place objects so they can
|
||||||
|
/// correctly handle the mouse click or WM_COMMAND.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If an active object receives the SHIFT+F1 keystrokes, it calls the container's IOleWindow::ContextSensitiveHelp method with
|
||||||
|
/// <paramref name="fEnterMode"/> set to <see langword="true"/>, which then recursively calls each of its in-place sites until
|
||||||
|
/// there are no more to be notified. The container then calls its document's or frame's IOleWindow::ContextSensitiveHelp method
|
||||||
|
/// with <paramref name="fEnterMode"/> set to <see langword="true"/>.
|
||||||
|
/// </para>
|
||||||
|
/// <para>When in context-sensitive help mode, an object that receives the mouse click can either:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>Ignore the click if it does not support context-sensitive help.</item>
|
||||||
|
/// <item>
|
||||||
|
/// Tell all the other objects to exit context-sensitive help mode with ContextSensitiveHelp set to FALSE and then provide help
|
||||||
|
/// for that context.
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// An object in context-sensitive help mode that receives a WM_COMMAND should tell all the other in-place objects to exit
|
||||||
|
/// context-sensitive help mode and then provide help for the command.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If a container application is to support context-sensitive help on menu items, it must either provide its own message filter
|
||||||
|
/// so that it can intercept the F1 key or ask the OLE library to add a message filter by calling OleSetMenuDescriptor, passing
|
||||||
|
/// valid, non-NULL values for the lpFrame and lpActiveObj parameters.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
||||||
|
|
||||||
/// <summary>Instructs the docking window object to show or hide itself.</summary>
|
/// <summary>Instructs the docking window object to show or hide itself.</summary>
|
||||||
/// <param name="fShow">
|
/// <param name="fShow">
|
||||||
|
|
|
@ -751,12 +751,141 @@ namespace Vanara.PInvoke
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>A pointer to a variable that receives the window handle.</returns>
|
/// <param name="phwnd">A pointer to a variable that receives the window handle.</param>
|
||||||
new HWND GetWindow();
|
/// <returns>
|
||||||
|
/// This method returns S_OK on success. Other possible return values include the following.
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_FAIL</description>
|
||||||
|
/// <description>The object is windowless.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>
|
||||||
|
/// Five types of windows comprise the windows hierarchy. When a object is active in place, it has access to some or all of
|
||||||
|
/// these windows.
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Window</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Frame</description>
|
||||||
|
/// <description>The outermost main window where the container application's main menu resides.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Document</description>
|
||||||
|
/// <description>The window that displays the compound document containing the embedded object to the user.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Pane</description>
|
||||||
|
/// <description>
|
||||||
|
/// The subwindow of the document window that contains the object's view. Applicable only for applications with split-pane windows.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Parent</description>
|
||||||
|
/// <description>
|
||||||
|
/// The container window that contains that object's view. The object application installs its window as a child of this window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>In-place</description>
|
||||||
|
/// <description>
|
||||||
|
/// The window containing the active in-place object. The object application creates this window and installs it as a child of
|
||||||
|
/// its hatch window, which is a child of the container's parent window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// Each type of window has a different role in the in-place activation architecture. However, it is not necessary to employ a
|
||||||
|
/// separate physical window for each type. Many container applications use the same window for their frame, document, pane, and
|
||||||
|
/// parent windows.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT GetWindow(out HWND phwnd);
|
||||||
|
|
||||||
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
||||||
/// <param name="fEnterMode"><c>true</c> if help mode should be entered; <c>false</c> if it should be exited.</param>
|
/// <param name="fEnterMode">
|
||||||
new void ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
/// <see langword="true"/> if help mode should be entered; <see langword="false"/> if it should be exited.
|
||||||
|
/// </param>
|
||||||
|
/// <returns>
|
||||||
|
/// <para>
|
||||||
|
/// This method returns S_OK if the help mode was entered or exited successfully, depending on the value passed in <paramref
|
||||||
|
/// name="fEnterMode"/>. Other possible return values include the following. <br/>
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_INVALIDARG</description>
|
||||||
|
/// <description>The specified <paramref name="fEnterMode"/> value is not valid.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>Applications can invoke context-sensitive help when the user:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>presses SHIFT+F1, then clicks a topic</item>
|
||||||
|
/// <item>presses F1 when a menu item is selected</item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// When SHIFT+F1 is pressed, either the frame or active object can receive the keystrokes. If the container's frame receives
|
||||||
|
/// the keystrokes, it calls its containing document's IOleWindow::ContextSensitiveHelp method with <paramref
|
||||||
|
/// name="fEnterMode"/> set to <see langword="true"/>. This propagates the help state to all of its in-place objects so they can
|
||||||
|
/// correctly handle the mouse click or WM_COMMAND.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If an active object receives the SHIFT+F1 keystrokes, it calls the container's IOleWindow::ContextSensitiveHelp method with
|
||||||
|
/// <paramref name="fEnterMode"/> set to <see langword="true"/>, which then recursively calls each of its in-place sites until
|
||||||
|
/// there are no more to be notified. The container then calls its document's or frame's IOleWindow::ContextSensitiveHelp method
|
||||||
|
/// with <paramref name="fEnterMode"/> set to <see langword="true"/>.
|
||||||
|
/// </para>
|
||||||
|
/// <para>When in context-sensitive help mode, an object that receives the mouse click can either:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>Ignore the click if it does not support context-sensitive help.</item>
|
||||||
|
/// <item>
|
||||||
|
/// Tell all the other objects to exit context-sensitive help mode with ContextSensitiveHelp set to FALSE and then provide help
|
||||||
|
/// for that context.
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// An object in context-sensitive help mode that receives a WM_COMMAND should tell all the other in-place objects to exit
|
||||||
|
/// context-sensitive help mode and then provide help for the command.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If a container application is to support context-sensitive help on menu items, it must either provide its own message filter
|
||||||
|
/// so that it can intercept the F1 key or ask the OLE library to add a message filter by calling OleSetMenuDescriptor, passing
|
||||||
|
/// valid, non-NULL values for the lpFrame and lpActiveObj parameters.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Allows the container to insert its menu groups into the composite menu that is displayed when an extended namespace is being
|
/// Allows the container to insert its menu groups into the composite menu that is displayed when an extended namespace is being
|
||||||
|
@ -767,7 +896,8 @@ namespace Vanara.PInvoke
|
||||||
/// The address of an OLEMENUGROUPWIDTHS array of six LONG values. The container fills in elements 0, 2, and 4 to reflect the
|
/// The address of an OLEMENUGROUPWIDTHS array of six LONG values. The container fills in elements 0, 2, and 4 to reflect the
|
||||||
/// number of menu elements it provided in the File, View, and Window menu groups.
|
/// number of menu elements it provided in the File, View, and Window menu groups.
|
||||||
/// </param>
|
/// </param>
|
||||||
void InsertMenusSB(HMENU hmenuShared, ref OLEMENUGROUPWIDTHS lpMenuWidths);
|
[PreserveSig]
|
||||||
|
HRESULT InsertMenusSB(HMENU hmenuShared, ref OLEMENUGROUPWIDTHS lpMenuWidths);
|
||||||
|
|
||||||
/// <summary>Installs the composite menu in the view window.</summary>
|
/// <summary>Installs the composite menu in the view window.</summary>
|
||||||
/// <param name="hmenuShared">
|
/// <param name="hmenuShared">
|
||||||
|
@ -775,7 +905,8 @@ namespace Vanara.PInvoke
|
||||||
/// </param>
|
/// </param>
|
||||||
/// <param name="holemenuRes"></param>
|
/// <param name="holemenuRes"></param>
|
||||||
/// <param name="hwndActiveObject">The view's window handle.</param>
|
/// <param name="hwndActiveObject">The view's window handle.</param>
|
||||||
void SetMenuSB(HMENU hmenuShared, IntPtr holemenuRes, HWND hwndActiveObject);
|
[PreserveSig]
|
||||||
|
HRESULT SetMenuSB(HMENU hmenuShared, IntPtr holemenuRes, HWND hwndActiveObject);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Permits the container to remove any of its menu elements from the in-place composite menu and to free all associated resources.
|
/// Permits the container to remove any of its menu elements from the in-place composite menu and to free all associated resources.
|
||||||
|
@ -783,18 +914,21 @@ namespace Vanara.PInvoke
|
||||||
/// <param name="hmenuShared">
|
/// <param name="hmenuShared">
|
||||||
/// A handle to the in-place composite menu that was constructed by calls to IShellBrowser::InsertMenusSB and the InsertMenu function.
|
/// A handle to the in-place composite menu that was constructed by calls to IShellBrowser::InsertMenusSB and the InsertMenu function.
|
||||||
/// </param>
|
/// </param>
|
||||||
void RemoveMenusSB(HMENU hmenuShared);
|
[PreserveSig]
|
||||||
|
HRESULT RemoveMenusSB(HMENU hmenuShared);
|
||||||
|
|
||||||
/// <summary>Sets and displays status text about the in-place object in the container's frame-window status bar.</summary>
|
/// <summary>Sets and displays status text about the in-place object in the container's frame-window status bar.</summary>
|
||||||
/// <param name="pszStatusText">A pointer to a null-terminated character string that contains the message to display.</param>
|
/// <param name="pszStatusText">A pointer to a null-terminated character string that contains the message to display.</param>
|
||||||
void SetStatusTextSB([MarshalAs(UnmanagedType.LPWStr)] string pszStatusText);
|
[PreserveSig]
|
||||||
|
HRESULT SetStatusTextSB([MarshalAs(UnmanagedType.LPWStr)] string pszStatusText);
|
||||||
|
|
||||||
/// <summary>Tells Windows Explorer to enable or disable its modeless dialog boxes.</summary>
|
/// <summary>Tells Windows Explorer to enable or disable its modeless dialog boxes.</summary>
|
||||||
/// <param name="fEnable">
|
/// <param name="fEnable">
|
||||||
/// Specifies whether the modeless dialog boxes are to be enabled or disabled. If this parameter is nonzero, modeless dialog
|
/// Specifies whether the modeless dialog boxes are to be enabled or disabled. If this parameter is nonzero, modeless dialog
|
||||||
/// boxes are enabled. If this parameter is zero, modeless dialog boxes are disabled.
|
/// boxes are enabled. If this parameter is zero, modeless dialog boxes are disabled.
|
||||||
/// </param>
|
/// </param>
|
||||||
void EnableModelessSB([MarshalAs(UnmanagedType.Bool)] bool fEnable);
|
[PreserveSig]
|
||||||
|
HRESULT EnableModelessSB([MarshalAs(UnmanagedType.Bool)] bool fEnable);
|
||||||
|
|
||||||
/// <summary>Translates accelerator keystrokes intended for the browser's frame while the view is active.</summary>
|
/// <summary>Translates accelerator keystrokes intended for the browser's frame while the view is active.</summary>
|
||||||
/// <param name="pmsg">The address of an MSG structure containing the keystroke message.</param>
|
/// <param name="pmsg">The address of an MSG structure containing the keystroke message.</param>
|
||||||
|
@ -802,7 +936,8 @@ namespace Vanara.PInvoke
|
||||||
/// The command identifier value corresponding to the keystroke in the container-provided accelerator table. Containers should
|
/// The command identifier value corresponding to the keystroke in the container-provided accelerator table. Containers should
|
||||||
/// use this value instead of translating again.
|
/// use this value instead of translating again.
|
||||||
/// </param>
|
/// </param>
|
||||||
void TranslateAcceleratorSB(ref MSG pmsg, ushort wID);
|
[PreserveSig]
|
||||||
|
HRESULT TranslateAcceleratorSB(ref MSG pmsg, ushort wID);
|
||||||
|
|
||||||
/// <summary>Informs Windows Explorer to browse to another folder.</summary>
|
/// <summary>Informs Windows Explorer to browse to another folder.</summary>
|
||||||
/// <param name="pidl">
|
/// <param name="pidl">
|
||||||
|
@ -810,35 +945,105 @@ namespace Vanara.PInvoke
|
||||||
/// on the flag or flags set in the wFlags parameter.
|
/// on the flag or flags set in the wFlags parameter.
|
||||||
/// </param>
|
/// </param>
|
||||||
/// <param name="wFlags">Flags specifying the folder to be browsed.</param>
|
/// <param name="wFlags">Flags specifying the folder to be browsed.</param>
|
||||||
void BrowseObject(IntPtr pidl, SBSP wFlags);
|
[PreserveSig]
|
||||||
|
HRESULT BrowseObject(IntPtr pidl, SBSP wFlags);
|
||||||
|
|
||||||
/// <summary>Gets an IStream interface that can be used for storage of view-specific state information.</summary>
|
/// <summary>Gets an IStream interface that can be used for storage of view-specific state information.</summary>
|
||||||
/// <param name="grfMode">Read/write access of the IStream interface.</param>
|
/// <param name="grfMode">Read/write access of the IStream interface.</param>
|
||||||
/// <returns>The address that receives the IStream interface pointer.</returns>
|
/// <param name="ppStrm">The address that receives the IStream interface pointer.</param>
|
||||||
[return: MarshalAs(UnmanagedType.Interface)]
|
[PreserveSig]
|
||||||
IStream GetViewStateStream(STGM grfMode);
|
HRESULT GetViewStateStream(STGM grfMode, [MarshalAs(UnmanagedType.Interface)] out IStream ppStrm);
|
||||||
|
|
||||||
/// <summary>Gets the window handle to a browser control.</summary>
|
/// <summary>Gets the window handle to a browser control.</summary>
|
||||||
/// <param name="id">The control handle that is being requested.</param>
|
/// <param name="id">
|
||||||
/// <returns>The address of the window handle to the Windows Explorer control.</returns>
|
/// <para>Type: <c>UINT</c></para>
|
||||||
IntPtr GetControlWindow(FCW id);
|
/// <para>The control handle that is being requested. This parameter can be one of the following values:</para>
|
||||||
|
/// <para>FCW_TOOLBAR</para>
|
||||||
|
/// <para>Retrieves the window handle to the browser's toolbar.</para>
|
||||||
|
/// <para>FCW_STATUS</para>
|
||||||
|
/// <para>Retrieves the window handle to the browser's status bar.</para>
|
||||||
|
/// <para>FCW_TREE</para>
|
||||||
|
/// <para>Retrieves the window handle to the browser's tree view.</para>
|
||||||
|
/// <para>FCW_PROGRESS</para>
|
||||||
|
/// <para>Retrieves the window handle to the browser's progress bar.</para>
|
||||||
|
/// </param>
|
||||||
|
/// <param name="phwnd">
|
||||||
|
/// <para>Type: <c>HWND*</c></para>
|
||||||
|
/// <para>The address of the window handle to the Windows Explorer control.</para>
|
||||||
|
/// </param>
|
||||||
|
/// <returns>
|
||||||
|
/// <para>Type: <c>HRESULT</c></para>
|
||||||
|
/// <para>Returns S_OK if successful, or a COM-defined error value otherwise.</para>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para><c>GetControlWindow</c> is used so views can directly manipulate the browser's controls. <c>FCW_TREE</c> should be used only to determine if the tree is present.</para>
|
||||||
|
/// <para>Notes to Calling Applications</para>
|
||||||
|
/// <para><c>GetControlWindow</c> is used to manipulate and test the state of the control windows. Do not send messages directly to these controls; instead, use IShellBrowser::SendControlMsg. Be prepared for this method to return <c>NULL</c>. Later versions of Windows Explorer may not include a toolbar, status bar, or tree window.</para>
|
||||||
|
/// <para>Notes to Implementers</para>
|
||||||
|
/// <para><c>GetControlWindow</c> returns the window handle to these controls if they exist in your implementation.</para>
|
||||||
|
/// <para>See also IShellBrowser</para>
|
||||||
|
/// </remarks>
|
||||||
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishellbrowser-getcontrolwindow
|
||||||
|
[PreserveSig]
|
||||||
|
HRESULT GetControlWindow(FCW id, out HWND phwnd );
|
||||||
|
|
||||||
/// <summary>Sends control messages to either the toolbar or the status bar in a Windows Explorer window.</summary>
|
/// <summary>Sends control messages to either the toolbar or the status bar in a Windows Explorer window.</summary>
|
||||||
/// <param name="id">An identifier for either a toolbar (FCW_TOOLBAR) or for a status bar window (FCW_STATUS).</param>
|
/// <param name="id">
|
||||||
/// <param name="uMsg">The message to be sent to the control.</param>
|
/// <para>Type: <c>UINT</c></para>
|
||||||
/// <param name="wParam">The value depends on the message specified in the uMsg parameter.</param>
|
/// <para>An identifier for either a toolbar (<c>FCW_TOOLBAR</c>) or for a status bar window (<c>FCW_STATUS</c>).</para>
|
||||||
/// <param name="lParam">The value depends on the message specified in the uMsg parameter.</param>
|
/// </param>
|
||||||
/// <returns>The address of the return value of the SendMessage function.</returns>
|
/// <param name="uMsg">
|
||||||
IntPtr SendControlMsg(FCW id, uint uMsg, IntPtr wParam, IntPtr lParam);
|
/// <para>Type: <c>UINT</c></para>
|
||||||
|
/// <para>The message to be sent to the control.</para>
|
||||||
|
/// </param>
|
||||||
|
/// <param name="wParam">
|
||||||
|
/// <para>Type: <c>WPARAM</c></para>
|
||||||
|
/// <para>The value depends on the message specified in the uMsg parameter.</para>
|
||||||
|
/// </param>
|
||||||
|
/// <param name="lParam">
|
||||||
|
/// <para>Type: <c>LPARAM</c></para>
|
||||||
|
/// <para>The value depends on the message specified in the uMsg parameter.</para>
|
||||||
|
/// </param>
|
||||||
|
/// <param name="pret">
|
||||||
|
/// <para>Type: <c>LRESULT*</c></para>
|
||||||
|
/// <para>The address of the return value of the SendMessage function.</para>
|
||||||
|
/// </param>
|
||||||
|
/// <returns>
|
||||||
|
/// <para>Type: <c>HRESULT</c></para>
|
||||||
|
/// <para>Returns <c>S_OK</c> if successful, or a COM-defined error value otherwise.</para>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>Refer to the Common Controls documentation for more information on the messages that can be sent to the toolbar or status bar control.</para>
|
||||||
|
/// <para>Notes to Calling Applications</para>
|
||||||
|
/// <para>Use of this call requires diligent attention, because leaving either the status bar or toolbar in an inappropriate state will affect the performance of Windows Explorer.</para>
|
||||||
|
/// <para>Notes to Implementers</para>
|
||||||
|
/// <para>If your Windows Explorer does not have these controls, you can return <c>E_NOTIMPL</c>.</para>
|
||||||
|
/// </remarks>
|
||||||
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishellbrowser-sendcontrolmsg
|
||||||
|
[PreserveSig]
|
||||||
|
HRESULT SendControlMsg(FCW id, uint uMsg, IntPtr wParam, IntPtr lParam, out IntPtr pret );
|
||||||
|
|
||||||
/// <summary>Retrieves the currently active (displayed) Shell view object.</summary>
|
/// <summary>Retrieves the currently active (displayed) Shell view object.</summary>
|
||||||
/// <returns>The address of the pointer to the currently active Shell view object.</returns>
|
/// <param name="ppshv">
|
||||||
[return: MarshalAs(UnmanagedType.Interface)]
|
/// <para>Type: <c>IShellView**</c></para>
|
||||||
IShellView QueryActiveShellView();
|
/// <para>The address of the pointer to the currently active Shell view object.</para>
|
||||||
|
/// </param>
|
||||||
|
/// <returns>
|
||||||
|
/// <para>Type: <c>HRESULT</c></para>
|
||||||
|
/// <para>Returns S_OK if successful, or a COM-defined error value otherwise.</para>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>Notes to Calling Applications</para>
|
||||||
|
/// <para>Because the IShellBrowser interface can host several Shell views simultaneously, this method provides an easy way to determine the active Shell view object.</para>
|
||||||
|
/// </remarks>
|
||||||
|
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishellbrowser-queryactiveshellview
|
||||||
|
[PreserveSig]
|
||||||
|
HRESULT QueryActiveShellView(out IShellView ppshv);
|
||||||
|
|
||||||
/// <summary>Called by the Shell view when the view window or one of its child windows gets the focus or becomes active.</summary>
|
/// <summary>Called by the Shell view when the view window or one of its child windows gets the focus or becomes active.</summary>
|
||||||
/// <param name="ppshv">Address of the view object's IShellView pointer.</param>
|
/// <param name="ppshv">Address of the view object's IShellView pointer.</param>
|
||||||
void OnViewWindowActive(IShellView ppshv);
|
[PreserveSig]
|
||||||
|
HRESULT OnViewWindowActive(IShellView ppshv);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// <note type="note">This method has no effect on Windows Vista or later operating systems.</note> Adds toolbar items to
|
/// <note type="note">This method has no effect on Windows Vista or later operating systems.</note> Adds toolbar items to
|
||||||
|
@ -847,7 +1052,8 @@ namespace Vanara.PInvoke
|
||||||
/// <param name="lpButtons">The address of an array of TBBUTTON structures.</param>
|
/// <param name="lpButtons">The address of an array of TBBUTTON structures.</param>
|
||||||
/// <param name="nButtons">The number of TBBUTTON structures in the lpButtons array.</param>
|
/// <param name="nButtons">The number of TBBUTTON structures in the lpButtons array.</param>
|
||||||
/// <param name="uFlags">Flags specifying where the toolbar buttons should go.</param>
|
/// <param name="uFlags">Flags specifying where the toolbar buttons should go.</param>
|
||||||
void SetToolbarItems([Optional, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] TBBUTTON[] lpButtons, uint nButtons, FCT uFlags);
|
[PreserveSig]
|
||||||
|
HRESULT SetToolbarItems([Optional, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] TBBUTTON[] lpButtons, uint nButtons, FCT uFlags);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -901,12 +1107,141 @@ namespace Vanara.PInvoke
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>A pointer to a variable that receives the window handle.</returns>
|
/// <param name="phwnd">A pointer to a variable that receives the window handle.</param>
|
||||||
new HWND GetWindow();
|
/// <returns>
|
||||||
|
/// This method returns S_OK on success. Other possible return values include the following.
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_FAIL</description>
|
||||||
|
/// <description>The object is windowless.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>
|
||||||
|
/// Five types of windows comprise the windows hierarchy. When a object is active in place, it has access to some or all of
|
||||||
|
/// these windows.
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Window</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Frame</description>
|
||||||
|
/// <description>The outermost main window where the container application's main menu resides.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Document</description>
|
||||||
|
/// <description>The window that displays the compound document containing the embedded object to the user.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Pane</description>
|
||||||
|
/// <description>
|
||||||
|
/// The subwindow of the document window that contains the object's view. Applicable only for applications with split-pane windows.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Parent</description>
|
||||||
|
/// <description>
|
||||||
|
/// The container window that contains that object's view. The object application installs its window as a child of this window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>In-place</description>
|
||||||
|
/// <description>
|
||||||
|
/// The window containing the active in-place object. The object application creates this window and installs it as a child of
|
||||||
|
/// its hatch window, which is a child of the container's parent window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// Each type of window has a different role in the in-place activation architecture. However, it is not necessary to employ a
|
||||||
|
/// separate physical window for each type. Many container applications use the same window for their frame, document, pane, and
|
||||||
|
/// parent windows.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT GetWindow(out HWND phwnd);
|
||||||
|
|
||||||
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
||||||
/// <param name="fEnterMode"><c>true</c> if help mode should be entered; <c>false</c> if it should be exited.</param>
|
/// <param name="fEnterMode">
|
||||||
new void ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
/// <see langword="true"/> if help mode should be entered; <see langword="false"/> if it should be exited.
|
||||||
|
/// </param>
|
||||||
|
/// <returns>
|
||||||
|
/// <para>
|
||||||
|
/// This method returns S_OK if the help mode was entered or exited successfully, depending on the value passed in <paramref
|
||||||
|
/// name="fEnterMode"/>. Other possible return values include the following. <br/>
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_INVALIDARG</description>
|
||||||
|
/// <description>The specified <paramref name="fEnterMode"/> value is not valid.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>Applications can invoke context-sensitive help when the user:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>presses SHIFT+F1, then clicks a topic</item>
|
||||||
|
/// <item>presses F1 when a menu item is selected</item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// When SHIFT+F1 is pressed, either the frame or active object can receive the keystrokes. If the container's frame receives
|
||||||
|
/// the keystrokes, it calls its containing document's IOleWindow::ContextSensitiveHelp method with <paramref
|
||||||
|
/// name="fEnterMode"/> set to <see langword="true"/>. This propagates the help state to all of its in-place objects so they can
|
||||||
|
/// correctly handle the mouse click or WM_COMMAND.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If an active object receives the SHIFT+F1 keystrokes, it calls the container's IOleWindow::ContextSensitiveHelp method with
|
||||||
|
/// <paramref name="fEnterMode"/> set to <see langword="true"/>, which then recursively calls each of its in-place sites until
|
||||||
|
/// there are no more to be notified. The container then calls its document's or frame's IOleWindow::ContextSensitiveHelp method
|
||||||
|
/// with <paramref name="fEnterMode"/> set to <see langword="true"/>.
|
||||||
|
/// </para>
|
||||||
|
/// <para>When in context-sensitive help mode, an object that receives the mouse click can either:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>Ignore the click if it does not support context-sensitive help.</item>
|
||||||
|
/// <item>
|
||||||
|
/// Tell all the other objects to exit context-sensitive help mode with ContextSensitiveHelp set to FALSE and then provide help
|
||||||
|
/// for that context.
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// An object in context-sensitive help mode that receives a WM_COMMAND should tell all the other in-place objects to exit
|
||||||
|
/// context-sensitive help mode and then provide help for the command.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If a container application is to support context-sensitive help on menu items, it must either provide its own message filter
|
||||||
|
/// so that it can intercept the F1 key or ask the OLE library to add a message filter by calling OleSetMenuDescriptor, passing
|
||||||
|
/// valid, non-NULL values for the lpFrame and lpActiveObj parameters.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
||||||
|
|
||||||
/// <summary>Translates keyboard shortcut (accelerator) key strokes when a namespace extension's view has the focus.</summary>
|
/// <summary>Translates keyboard shortcut (accelerator) key strokes when a namespace extension's view has the focus.</summary>
|
||||||
/// <param name="lpmsg">The address of the message to be translated.</param>
|
/// <param name="lpmsg">The address of the message to be translated.</param>
|
||||||
|
@ -941,7 +1276,7 @@ namespace Vanara.PInvoke
|
||||||
/// </param>
|
/// </param>
|
||||||
/// <param name="prcView">The dimensions of the new view, in client coordinates.</param>
|
/// <param name="prcView">The dimensions of the new view, in client coordinates.</param>
|
||||||
/// <returns>The address of the window handle being created.</returns>
|
/// <returns>The address of the window handle being created.</returns>
|
||||||
HWND CreateViewWindow([In] IShellView psvPrevious, in FOLDERSETTINGS pfs, [In] IShellBrowser psb, in RECT prcView);
|
HWND CreateViewWindow([In, Optional] IShellView psvPrevious, in FOLDERSETTINGS pfs, [In] IShellBrowser psb, in RECT prcView);
|
||||||
|
|
||||||
/// <summary>Destroys the view window.</summary>
|
/// <summary>Destroys the view window.</summary>
|
||||||
void DestroyViewWindow();
|
void DestroyViewWindow();
|
||||||
|
@ -993,12 +1328,141 @@ namespace Vanara.PInvoke
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>A pointer to a variable that receives the window handle.</returns>
|
/// <param name="phwnd">A pointer to a variable that receives the window handle.</param>
|
||||||
new HWND GetWindow();
|
/// <returns>
|
||||||
|
/// This method returns S_OK on success. Other possible return values include the following.
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_FAIL</description>
|
||||||
|
/// <description>The object is windowless.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>
|
||||||
|
/// Five types of windows comprise the windows hierarchy. When a object is active in place, it has access to some or all of
|
||||||
|
/// these windows.
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Window</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Frame</description>
|
||||||
|
/// <description>The outermost main window where the container application's main menu resides.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Document</description>
|
||||||
|
/// <description>The window that displays the compound document containing the embedded object to the user.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Pane</description>
|
||||||
|
/// <description>
|
||||||
|
/// The subwindow of the document window that contains the object's view. Applicable only for applications with split-pane windows.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Parent</description>
|
||||||
|
/// <description>
|
||||||
|
/// The container window that contains that object's view. The object application installs its window as a child of this window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>In-place</description>
|
||||||
|
/// <description>
|
||||||
|
/// The window containing the active in-place object. The object application creates this window and installs it as a child of
|
||||||
|
/// its hatch window, which is a child of the container's parent window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// Each type of window has a different role in the in-place activation architecture. However, it is not necessary to employ a
|
||||||
|
/// separate physical window for each type. Many container applications use the same window for their frame, document, pane, and
|
||||||
|
/// parent windows.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT GetWindow(out HWND phwnd);
|
||||||
|
|
||||||
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
||||||
/// <param name="fEnterMode"><c>true</c> if help mode should be entered; <c>false</c> if it should be exited.</param>
|
/// <param name="fEnterMode">
|
||||||
new void ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
/// <see langword="true"/> if help mode should be entered; <see langword="false"/> if it should be exited.
|
||||||
|
/// </param>
|
||||||
|
/// <returns>
|
||||||
|
/// <para>
|
||||||
|
/// This method returns S_OK if the help mode was entered or exited successfully, depending on the value passed in <paramref
|
||||||
|
/// name="fEnterMode"/>. Other possible return values include the following. <br/>
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_INVALIDARG</description>
|
||||||
|
/// <description>The specified <paramref name="fEnterMode"/> value is not valid.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>Applications can invoke context-sensitive help when the user:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>presses SHIFT+F1, then clicks a topic</item>
|
||||||
|
/// <item>presses F1 when a menu item is selected</item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// When SHIFT+F1 is pressed, either the frame or active object can receive the keystrokes. If the container's frame receives
|
||||||
|
/// the keystrokes, it calls its containing document's IOleWindow::ContextSensitiveHelp method with <paramref
|
||||||
|
/// name="fEnterMode"/> set to <see langword="true"/>. This propagates the help state to all of its in-place objects so they can
|
||||||
|
/// correctly handle the mouse click or WM_COMMAND.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If an active object receives the SHIFT+F1 keystrokes, it calls the container's IOleWindow::ContextSensitiveHelp method with
|
||||||
|
/// <paramref name="fEnterMode"/> set to <see langword="true"/>, which then recursively calls each of its in-place sites until
|
||||||
|
/// there are no more to be notified. The container then calls its document's or frame's IOleWindow::ContextSensitiveHelp method
|
||||||
|
/// with <paramref name="fEnterMode"/> set to <see langword="true"/>.
|
||||||
|
/// </para>
|
||||||
|
/// <para>When in context-sensitive help mode, an object that receives the mouse click can either:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>Ignore the click if it does not support context-sensitive help.</item>
|
||||||
|
/// <item>
|
||||||
|
/// Tell all the other objects to exit context-sensitive help mode with ContextSensitiveHelp set to FALSE and then provide help
|
||||||
|
/// for that context.
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// An object in context-sensitive help mode that receives a WM_COMMAND should tell all the other in-place objects to exit
|
||||||
|
/// context-sensitive help mode and then provide help for the command.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If a container application is to support context-sensitive help on menu items, it must either provide its own message filter
|
||||||
|
/// so that it can intercept the F1 key or ask the OLE library to add a message filter by calling OleSetMenuDescriptor, passing
|
||||||
|
/// valid, non-NULL values for the lpFrame and lpActiveObj parameters.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
||||||
|
|
||||||
/// <summary>Translates keyboard shortcut (accelerator) key strokes when a namespace extension's view has the focus.</summary>
|
/// <summary>Translates keyboard shortcut (accelerator) key strokes when a namespace extension's view has the focus.</summary>
|
||||||
/// <param name="lpmsg">The address of the message to be translated.</param>
|
/// <param name="lpmsg">The address of the message to be translated.</param>
|
||||||
|
@ -1105,12 +1569,141 @@ namespace Vanara.PInvoke
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
/// Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>A pointer to a variable that receives the window handle.</returns>
|
/// <param name="phwnd">A pointer to a variable that receives the window handle.</param>
|
||||||
new HWND GetWindow();
|
/// <returns>
|
||||||
|
/// This method returns S_OK on success. Other possible return values include the following.
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_FAIL</description>
|
||||||
|
/// <description>The object is windowless.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>
|
||||||
|
/// Five types of windows comprise the windows hierarchy. When a object is active in place, it has access to some or all of
|
||||||
|
/// these windows.
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Window</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Frame</description>
|
||||||
|
/// <description>The outermost main window where the container application's main menu resides.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Document</description>
|
||||||
|
/// <description>The window that displays the compound document containing the embedded object to the user.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Pane</description>
|
||||||
|
/// <description>
|
||||||
|
/// The subwindow of the document window that contains the object's view. Applicable only for applications with split-pane windows.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>Parent</description>
|
||||||
|
/// <description>
|
||||||
|
/// The container window that contains that object's view. The object application installs its window as a child of this window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>In-place</description>
|
||||||
|
/// <description>
|
||||||
|
/// The window containing the active in-place object. The object application creates this window and installs it as a child of
|
||||||
|
/// its hatch window, which is a child of the container's parent window.
|
||||||
|
/// </description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// Each type of window has a different role in the in-place activation architecture. However, it is not necessary to employ a
|
||||||
|
/// separate physical window for each type. Many container applications use the same window for their frame, document, pane, and
|
||||||
|
/// parent windows.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT GetWindow(out HWND phwnd);
|
||||||
|
|
||||||
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
|
||||||
/// <param name="fEnterMode"><c>true</c> if help mode should be entered; <c>false</c> if it should be exited.</param>
|
/// <param name="fEnterMode">
|
||||||
new void ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
/// <see langword="true"/> if help mode should be entered; <see langword="false"/> if it should be exited.
|
||||||
|
/// </param>
|
||||||
|
/// <returns>
|
||||||
|
/// <para>
|
||||||
|
/// This method returns S_OK if the help mode was entered or exited successfully, depending on the value passed in <paramref
|
||||||
|
/// name="fEnterMode"/>. Other possible return values include the following. <br/>
|
||||||
|
/// </para>
|
||||||
|
/// <list type="table">
|
||||||
|
/// <listheader>
|
||||||
|
/// <term>Return code</term>
|
||||||
|
/// <term>Description</term>
|
||||||
|
/// </listheader>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_INVALIDARG</description>
|
||||||
|
/// <description>The specified <paramref name="fEnterMode"/> value is not valid.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_OUTOFMEMORY</description>
|
||||||
|
/// <description>There is insufficient memory available for this operation.</description>
|
||||||
|
/// </item>
|
||||||
|
/// <item>
|
||||||
|
/// <description>E_UNEXPECTED</description>
|
||||||
|
/// <description>An unexpected error has occurred.</description>
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// </returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>Applications can invoke context-sensitive help when the user:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>presses SHIFT+F1, then clicks a topic</item>
|
||||||
|
/// <item>presses F1 when a menu item is selected</item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// When SHIFT+F1 is pressed, either the frame or active object can receive the keystrokes. If the container's frame receives
|
||||||
|
/// the keystrokes, it calls its containing document's IOleWindow::ContextSensitiveHelp method with <paramref
|
||||||
|
/// name="fEnterMode"/> set to <see langword="true"/>. This propagates the help state to all of its in-place objects so they can
|
||||||
|
/// correctly handle the mouse click or WM_COMMAND.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If an active object receives the SHIFT+F1 keystrokes, it calls the container's IOleWindow::ContextSensitiveHelp method with
|
||||||
|
/// <paramref name="fEnterMode"/> set to <see langword="true"/>, which then recursively calls each of its in-place sites until
|
||||||
|
/// there are no more to be notified. The container then calls its document's or frame's IOleWindow::ContextSensitiveHelp method
|
||||||
|
/// with <paramref name="fEnterMode"/> set to <see langword="true"/>.
|
||||||
|
/// </para>
|
||||||
|
/// <para>When in context-sensitive help mode, an object that receives the mouse click can either:</para>
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>Ignore the click if it does not support context-sensitive help.</item>
|
||||||
|
/// <item>
|
||||||
|
/// Tell all the other objects to exit context-sensitive help mode with ContextSensitiveHelp set to FALSE and then provide help
|
||||||
|
/// for that context.
|
||||||
|
/// </item>
|
||||||
|
/// </list>
|
||||||
|
/// <para>
|
||||||
|
/// An object in context-sensitive help mode that receives a WM_COMMAND should tell all the other in-place objects to exit
|
||||||
|
/// context-sensitive help mode and then provide help for the command.
|
||||||
|
/// </para>
|
||||||
|
/// <para>
|
||||||
|
/// If a container application is to support context-sensitive help on menu items, it must either provide its own message filter
|
||||||
|
/// so that it can intercept the F1 key or ask the OLE library to add a message filter by calling OleSetMenuDescriptor, passing
|
||||||
|
/// valid, non-NULL values for the lpFrame and lpActiveObj parameters.
|
||||||
|
/// </para>
|
||||||
|
/// </remarks>
|
||||||
|
[PreserveSig]
|
||||||
|
new HRESULT ContextSensitiveHelp([MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
|
||||||
|
|
||||||
/// <summary>Translates keyboard shortcut (accelerator) key strokes when a namespace extension's view has the focus.</summary>
|
/// <summary>Translates keyboard shortcut (accelerator) key strokes when a namespace extension's view has the focus.</summary>
|
||||||
/// <param name="lpmsg">The address of the message to be translated.</param>
|
/// <param name="lpmsg">The address of the message to be translated.</param>
|
||||||
|
|
Loading…
Reference in New Issue