using System;
using System.Runtime.InteropServices;
using Vanara.InteropServices;
namespace Vanara.PInvoke
{
public static partial class Shell32
{
///
/// Exposes methods that allow clients to reset or query the display state of the autocomplete drop-down list, which contains
/// possible completions to a string entered by the user in an edit control.
///
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl/nn-shobjidl-iautocompletedropdown
[PInvokeData("shobjidl.h", MSDNShortId = "NN:shobjidl.IAutoCompleteDropDown")]
[ComImport, Guid("3CD141F4-3C6A-11d2-BCAA-00C04FD929DB"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IAutoCompleteDropDown
{
/// Gets the current display status of the autocomplete drop-down list.
///
/// Type: DWORD*
///
/// A pointer to a value indicating whether the autocomplete drop-down list is currently displayed. This parameter can be
/// NULL on entry if this information is not needed. The following values are recognized as the target of this pointer.
///
/// (0x0000)
/// The list is not visible.
/// ACDD_VISIBLE (0x0001)
/// The list is visible.
///
///
/// Type: LPWSTR*
///
/// A pointer to a buffer containing the first select item in the drop-down list, if the value pointed to by pdwFlags is
/// ACDD_VISIBLE. This value can be NULL on entry if this information is not needed.
///
/// If pdwFlags is zero on exit, then this value will be NULL.
///
/// If this value is not NULL on exit, the buffer it points to must be freed using CoTaskMemFree when it is no longer needed.
///
///
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl/nf-shobjidl-iautocompletedropdown-getdropdownstatus HRESULT
// GetDropDownStatus( DWORD *pdwFlags, LPWSTR *ppwszString );
void GetDropDownStatus(ref uint pdwFlags, out string ppwszString);
/// Forces the autocomplete object to refresh its list of suggestions when the list is visible.
///
/// The drop-down list is always rebuilt before it is displayed, so there is no reason to use this method unless the drop-down
/// list is currently visible.
///
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl/nf-shobjidl-iautocompletedropdown-resetenumerator HRESULT ResetEnumerator();
void ResetEnumerator();
}
}
}