File: Windows.Win32.IUIAutomationProxyFactoryEntry.g.cs
Project: src\src\System.Windows.Forms.Primitives\src\System.Windows.Forms.Primitives.csproj (System.Windows.Forms.Primitives)
// ------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------

#pragma warning disable CS1591,CS1573,CS0465,CS0649,CS8019,CS1570,CS1584,CS1658,CS0436,CS8981
using global::System;
using global::System.Diagnostics;
using global::System.Diagnostics.CodeAnalysis;
using global::System.Runtime.CompilerServices;
using global::System.Runtime.InteropServices;
using global::System.Runtime.Versioning;
using winmdroot = global::Windows.Win32;
namespace Windows.Win32
{
	namespace UI.Accessibility
	{
		[Guid("D50E472E-B64B-490C-BCA1-D30696F9F289")]
		[SupportedOSPlatform("windows6.1")]
		[global::System.CodeDom.Compiler.GeneratedCode("Microsoft.Windows.CsWin32", "0.3.151+58e949951d.RR")]
		internal unsafe partial struct IUIAutomationProxyFactoryEntry
			:IVTable<IUIAutomationProxyFactoryEntry,IUIAutomationProxyFactoryEntry.Vtbl>,IComIID		{
			/// <inheritdoc cref="QueryInterface(global::System.Guid*, void**)"/>
			internal unsafe winmdroot.Foundation.HRESULT QueryInterface(in global::System.Guid riid, out void* ppvObject)
			{
				fixed (void** ppvObjectLocal = &ppvObject)
				{
					fixed (global::System.Guid* riidLocal = &riid)
					{
						winmdroot.Foundation.HRESULT __result = this.QueryInterface(riidLocal, ppvObjectLocal);
						return __result;
					}
				}
			}

			public unsafe winmdroot.Foundation.HRESULT QueryInterface(global::System.Guid* riid, void** ppvObject)
			{
				return ((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,global::System.Guid* ,void** ,winmdroot.Foundation.HRESULT>)lpVtbl[0])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this), riid, ppvObject);
			}

			public uint AddRef()
			{
				return ((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,uint>)lpVtbl[1])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this));
			}

			public uint Release()
			{
				return ((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,uint>)lpVtbl[2])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this));
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT get_ProxyFactory(IUIAutomationProxyFactoryEntry* pThis, winmdroot.UI.Accessibility.IUIAutomationProxyFactory** factory)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					*factory = __object.ProxyFactory;
					return winmdroot.Foundation.HRESULT.S_OK;
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Retrieves the proxy factory associated with this entry.</summary>
			/// <remarks>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationclient/nf-uiautomationclient-iuiautomationproxyfactoryentry-get_proxyfactory">Learn more about this API from docs.microsoft.com</see>.</para>
			/// </remarks>
			internal unsafe winmdroot.UI.Accessibility.IUIAutomationProxyFactory* ProxyFactory
			{
				get
				{
					winmdroot.UI.Accessibility.IUIAutomationProxyFactory* __result;
					((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.UI.Accessibility.IUIAutomationProxyFactory** ,winmdroot.Foundation.HRESULT>)lpVtbl[3])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this), &__result).ThrowOnFailure();
					return __result;
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT get_ClassName(IUIAutomationProxyFactoryEntry* pThis, winmdroot.Foundation.BSTR* className)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.get_ClassName(className);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Sets or retrieves the name of the window class served by the proxy factory. (Get)</summary>
			/// <remarks>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationclient/nf-uiautomationclient-iuiautomationproxyfactoryentry-get_classname">Learn more about this API from docs.microsoft.com</see>.</para>
			/// </remarks>
			public winmdroot.Foundation.BSTR get_ClassName()
			{
				winmdroot.Foundation.BSTR __retVal = default(winmdroot.Foundation.BSTR);
				((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BSTR* ,winmdroot.Foundation.HRESULT>)lpVtbl[4])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this), &__retVal).ThrowOnFailure();
				return __retVal;
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT get_ImageName(IUIAutomationProxyFactoryEntry* pThis, winmdroot.Foundation.BSTR* imageName)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.get_ImageName(imageName);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Sets or retrieves the name of the image of the proxy factory. (Get)</summary>
			/// <remarks>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationclient/nf-uiautomationclient-iuiautomationproxyfactoryentry-get_imagename">Learn more about this API from docs.microsoft.com</see>.</para>
			/// </remarks>
			public winmdroot.Foundation.BSTR get_ImageName()
			{
				winmdroot.Foundation.BSTR __retVal = default(winmdroot.Foundation.BSTR);
				((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BSTR* ,winmdroot.Foundation.HRESULT>)lpVtbl[5])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this), &__retVal).ThrowOnFailure();
				return __retVal;
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT get_AllowSubstringMatch(IUIAutomationProxyFactoryEntry* pThis, winmdroot.Foundation.BOOL* allowSubstringMatch)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.get_AllowSubstringMatch(allowSubstringMatch);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Sets or retrieves a value that specifies whether the proxy allows substring matching. (Get)</summary>
			/// <remarks>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationclient/nf-uiautomationclient-iuiautomationproxyfactoryentry-get_allowsubstringmatch">Learn more about this API from docs.microsoft.com</see>.</para>
			/// </remarks>
			internal winmdroot.Foundation.BOOL AllowSubstringMatch
			{
				get
				{
					winmdroot.Foundation.BOOL __result;
					((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BOOL* ,winmdroot.Foundation.HRESULT>)lpVtbl[6])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this), &__result).ThrowOnFailure();
					return __result;
				}
				set
				{
					((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BOOL ,winmdroot.Foundation.HRESULT>)lpVtbl[11])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this), value).ThrowOnFailure();
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT get_CanCheckBaseClass(IUIAutomationProxyFactoryEntry* pThis, winmdroot.Foundation.BOOL* canCheckBaseClass)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.get_CanCheckBaseClass(canCheckBaseClass);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Sets or retrieves a value that specifies whether the base class can be checked when searching for a proxy factory. (Get)</summary>
			/// <remarks>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationclient/nf-uiautomationclient-iuiautomationproxyfactoryentry-get_cancheckbaseclass">Learn more about this API from docs.microsoft.com</see>.</para>
			/// </remarks>
			internal winmdroot.Foundation.BOOL CanCheckBaseClass
			{
				get
				{
					winmdroot.Foundation.BOOL __result;
					((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BOOL* ,winmdroot.Foundation.HRESULT>)lpVtbl[7])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this), &__result).ThrowOnFailure();
					return __result;
				}
				set
				{
					((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BOOL ,winmdroot.Foundation.HRESULT>)lpVtbl[12])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this), value).ThrowOnFailure();
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT get_NeedsAdviseEvents(IUIAutomationProxyFactoryEntry* pThis, winmdroot.Foundation.BOOL* adviseEvents)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.get_NeedsAdviseEvents(adviseEvents);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Sets or retrieves a value that specifies whether the proxy must be notified when an application has registered for events. (Get)</summary>
			/// <remarks>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationclient/nf-uiautomationclient-iuiautomationproxyfactoryentry-get_needsadviseevents">Learn more about this API from docs.microsoft.com</see>.</para>
			/// </remarks>
			internal winmdroot.Foundation.BOOL NeedsAdviseEvents
			{
				get
				{
					winmdroot.Foundation.BOOL __result;
					((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BOOL* ,winmdroot.Foundation.HRESULT>)lpVtbl[8])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this), &__result).ThrowOnFailure();
					return __result;
				}
				set
				{
					((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BOOL ,winmdroot.Foundation.HRESULT>)lpVtbl[13])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this), value).ThrowOnFailure();
				}
			}

			/// <inheritdoc cref="put_ClassName(winmdroot.Foundation.PCWSTR)"/>
			internal unsafe void put_ClassName(string className)
			{
				fixed (char* classNameLocal = className)
				{
					this.put_ClassName(classNameLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT put_ClassName(IUIAutomationProxyFactoryEntry* pThis, winmdroot.Foundation.PCWSTR className)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.put_ClassName(className);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Sets or retrieves the name of the window class served by the proxy factory. (Put)</summary>
			/// <remarks>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationclient/nf-uiautomationclient-iuiautomationproxyfactoryentry-put_classname">Learn more about this API from docs.microsoft.com</see>.</para>
			/// </remarks>
			public void put_ClassName(winmdroot.Foundation.PCWSTR className)
			{
				((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.PCWSTR ,winmdroot.Foundation.HRESULT>)lpVtbl[9])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this), className).ThrowOnFailure();
			}

			/// <inheritdoc cref="put_ImageName(winmdroot.Foundation.PCWSTR)"/>
			internal unsafe void put_ImageName(string imageName)
			{
				fixed (char* imageNameLocal = imageName)
				{
					this.put_ImageName(imageNameLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT put_ImageName(IUIAutomationProxyFactoryEntry* pThis, winmdroot.Foundation.PCWSTR imageName)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.put_ImageName(imageName);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Sets or retrieves the name of the image of the proxy factory. (Put)</summary>
			/// <remarks>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationclient/nf-uiautomationclient-iuiautomationproxyfactoryentry-put_imagename">Learn more about this API from docs.microsoft.com</see>.</para>
			/// </remarks>
			public void put_ImageName(winmdroot.Foundation.PCWSTR imageName)
			{
				((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.PCWSTR ,winmdroot.Foundation.HRESULT>)lpVtbl[10])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this), imageName).ThrowOnFailure();
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT put_AllowSubstringMatch(IUIAutomationProxyFactoryEntry* pThis, winmdroot.Foundation.BOOL allowSubstringMatch)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.put_AllowSubstringMatch(allowSubstringMatch);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT put_CanCheckBaseClass(IUIAutomationProxyFactoryEntry* pThis, winmdroot.Foundation.BOOL canCheckBaseClass)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.put_CanCheckBaseClass(canCheckBaseClass);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT put_NeedsAdviseEvents(IUIAutomationProxyFactoryEntry* pThis, winmdroot.Foundation.BOOL adviseEvents)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.put_NeedsAdviseEvents(adviseEvents);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT SetWinEventsForAutomationEvent(IUIAutomationProxyFactoryEntry* pThis, winmdroot.UI.Accessibility.UIA_EVENT_ID eventId, winmdroot.UI.Accessibility.UIA_PROPERTY_ID propertyId, winmdroot.System.Com.SAFEARRAY* winEvents)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.SetWinEventsForAutomationEvent(eventId, propertyId, winEvents);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Maps Microsoft UI Automation events to WinEvents.</summary>
			/// <param name="eventId">
			/// <para>Type: <b>EVENTID</b> The event identifier. For a list of event identifiers, see <a href="https://docs.microsoft.com/windows/desktop/WinAuto/uiauto-event-ids">Event Identifiers</a>.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationclient/nf-uiautomationclient-iuiautomationproxyfactoryentry-setwineventsforautomationevent#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="propertyId">
			/// <para>Type: <b>PROPERTYID</b> The property identifier. For a list of property IDs, see <a href="https://docs.microsoft.com/windows/desktop/WinAuto/uiauto-entry-propids">Property Identifiers</a>.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationclient/nf-uiautomationclient-iuiautomationproxyfactoryentry-setwineventsforautomationevent#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="winEvents">
			/// <para>Type: <b><a href="https://docs.microsoft.com/windows/win32/api/oaidl/ns-oaidl-safearray">SAFEARRAY</a>*</b> The list of WinEvents that map to this event.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationclient/nf-uiautomationclient-iuiautomationproxyfactoryentry-setwineventsforautomationevent#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <returns>
			/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">HRESULT</a></b> If this method succeeds, it returns <b>S_OK</b>. Otherwise, it returns an <b>HRESULT</b> error code.</para>
			/// </returns>
			/// <remarks>When a client application subscribes to a UI Automation event, the UI Automation core also listens for WinEvents that map to this event. For example, suppose that <a href="https://docs.microsoft.com/windows/desktop/WinAuto/uiauto-event-ids">UIA_Invoke_InvokedEventId</a> is mapped to <a href="https://docs.microsoft.com/windows/desktop/WinAuto/event-constants">EVENT_OBJECT_INVOKED</a>. When <b>EVENT_OBJECT_INVOKED</b> is raised, the client instantiates the proxy and calls <a href="https://docs.microsoft.com/windows/desktop/api/uiautomationcore/nf-uiautomationcore-iproxyproviderwineventhandler-respondtowinevent">RespondToWinEvent</a> on that proxy. In the implementation of <b>RespondToWinEvent</b>, the proxy calls <a href="https://docs.microsoft.com/windows/desktop/api/uiautomationcore/nf-uiautomationcore-iproxyproviderwineventsink-addautomationevent">AddAutomationEvent</a>. The core then raises the corresponding UI Automation event.</remarks>
			public unsafe void SetWinEventsForAutomationEvent(winmdroot.UI.Accessibility.UIA_EVENT_ID eventId, winmdroot.UI.Accessibility.UIA_PROPERTY_ID propertyId, winmdroot.System.Com.SAFEARRAY* winEvents)
			{
				((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.UI.Accessibility.UIA_EVENT_ID ,winmdroot.UI.Accessibility.UIA_PROPERTY_ID ,winmdroot.System.Com.SAFEARRAY* ,winmdroot.Foundation.HRESULT>)lpVtbl[14])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this), eventId, propertyId, winEvents).ThrowOnFailure();
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT GetWinEventsForAutomationEvent(IUIAutomationProxyFactoryEntry* pThis, winmdroot.UI.Accessibility.UIA_EVENT_ID eventId, winmdroot.UI.Accessibility.UIA_PROPERTY_ID propertyId, winmdroot.System.Com.SAFEARRAY** winEvents)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.GetWinEventsForAutomationEvent(eventId, propertyId, winEvents);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Retrieves the list of WinEvents that are mapped to a specific Microsoft UI Automation event. If an element represented by this proxy raises one the listed WinEvents, the proxy handles it.</summary>
			/// <param name="eventId">
			/// <para>Type: <b>EVENTID</b> The event identifier. For a list of event identifiers, see <a href="https://docs.microsoft.com/windows/desktop/WinAuto/uiauto-event-ids">Event Identifiers</a>.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationclient/nf-uiautomationclient-iuiautomationproxyfactoryentry-getwineventsforautomationevent#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="propertyId">
			/// <para>Type: <b>PROPERTYID</b> The property identifier. For a list of property IDs, see <a href="https://docs.microsoft.com/windows/desktop/WinAuto/uiauto-entry-propids">Property Identifiers</a>.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationclient/nf-uiautomationclient-iuiautomationproxyfactoryentry-getwineventsforautomationevent#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <returns>
			/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">HRESULT</a></b> If this method succeeds, it returns <b>S_OK</b>. Otherwise, it returns an <b>HRESULT</b> error code.</para>
			/// </returns>
			/// <remarks>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationclient/nf-uiautomationclient-iuiautomationproxyfactoryentry-getwineventsforautomationevent">Learn more about this API from docs.microsoft.com</see>.</para>
			/// </remarks>
			public unsafe winmdroot.System.Com.SAFEARRAY* GetWinEventsForAutomationEvent(winmdroot.UI.Accessibility.UIA_EVENT_ID eventId, winmdroot.UI.Accessibility.UIA_PROPERTY_ID propertyId)
			{
				winmdroot.System.Com.SAFEARRAY* __retVal = default(winmdroot.System.Com.SAFEARRAY*);
				((delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.UI.Accessibility.UIA_EVENT_ID ,winmdroot.UI.Accessibility.UIA_PROPERTY_ID ,winmdroot.System.Com.SAFEARRAY** ,winmdroot.Foundation.HRESULT>)lpVtbl[15])((IUIAutomationProxyFactoryEntry*)Unsafe.AsPointer(ref this), eventId, propertyId, &__retVal).ThrowOnFailure();
				return __retVal;
			}

			internal unsafe global::Windows.Win32.Foundation.HRESULT QueryInterface<T>(out T* ppv)
where T : unmanaged

			{
				var hr = this.QueryInterface(typeof(T).GUID, out void* pv);
				if (hr.Succeeded)

				{
					ppv = (T*)pv;
				}
				else

				{
					ppv = null;
				}

				return hr;
			}

			internal struct Vtbl
			{
				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,global::System.Guid* ,void** ,winmdroot.Foundation.HRESULT> QueryInterface_1;

				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,uint> AddRef_2;

				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,uint> Release_3;

				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.UI.Accessibility.IUIAutomationProxyFactory** ,winmdroot.Foundation.HRESULT> get_ProxyFactory_4;

				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BSTR* ,winmdroot.Foundation.HRESULT> get_ClassName_5;

				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BSTR* ,winmdroot.Foundation.HRESULT> get_ImageName_6;

				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BOOL* ,winmdroot.Foundation.HRESULT> get_AllowSubstringMatch_7;

				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BOOL* ,winmdroot.Foundation.HRESULT> get_CanCheckBaseClass_8;

				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BOOL* ,winmdroot.Foundation.HRESULT> get_NeedsAdviseEvents_9;

				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.PCWSTR ,winmdroot.Foundation.HRESULT> put_ClassName_10;

				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.PCWSTR ,winmdroot.Foundation.HRESULT> put_ImageName_11;

				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BOOL ,winmdroot.Foundation.HRESULT> put_AllowSubstringMatch_12;

				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BOOL ,winmdroot.Foundation.HRESULT> put_CanCheckBaseClass_13;

				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.Foundation.BOOL ,winmdroot.Foundation.HRESULT> put_NeedsAdviseEvents_14;

				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.UI.Accessibility.UIA_EVENT_ID ,winmdroot.UI.Accessibility.UIA_PROPERTY_ID ,winmdroot.System.Com.SAFEARRAY* ,winmdroot.Foundation.HRESULT> SetWinEventsForAutomationEvent_15;

				internal delegate *unmanaged [Stdcall]<IUIAutomationProxyFactoryEntry*,winmdroot.UI.Accessibility.UIA_EVENT_ID ,winmdroot.UI.Accessibility.UIA_PROPERTY_ID ,winmdroot.System.Com.SAFEARRAY** ,winmdroot.Foundation.HRESULT> GetWinEventsForAutomationEvent_16;
			} 
			public static void PopulateVTable(Vtbl* vtable)
			{
				vtable->get_ProxyFactory_4 = &get_ProxyFactory;
				vtable->get_ClassName_5 = &get_ClassName;
				vtable->get_ImageName_6 = &get_ImageName;
				vtable->get_AllowSubstringMatch_7 = &get_AllowSubstringMatch;
				vtable->get_CanCheckBaseClass_8 = &get_CanCheckBaseClass;
				vtable->get_NeedsAdviseEvents_9 = &get_NeedsAdviseEvents;
				vtable->put_ClassName_10 = &put_ClassName;
				vtable->put_ImageName_11 = &put_ImageName;
				vtable->put_AllowSubstringMatch_12 = &put_AllowSubstringMatch;
				vtable->put_CanCheckBaseClass_13 = &put_CanCheckBaseClass;
				vtable->put_NeedsAdviseEvents_14 = &put_NeedsAdviseEvents;
				vtable->SetWinEventsForAutomationEvent_15 = &SetWinEventsForAutomationEvent;
				vtable->GetWinEventsForAutomationEvent_16 = &GetWinEventsForAutomationEvent;
			}

			private void** lpVtbl;

			/// <summary>The IID guid for this interface.</summary>
			/// <value>{d50e472e-b64b-490c-bca1-d30696f9f289}</value>
			internal static readonly Guid IID_Guid = new Guid(0xD50E472E, 0xB64B, 0x490C, 0xBC, 0xA1, 0xD3, 0x06, 0x96, 0xF9, 0xF2, 0x89);

			static ref readonly Guid IComIID.Guid			{
								[MethodImpl(MethodImplOptions.AggressiveInlining)]
get
				{
					ReadOnlySpan<byte> data = new byte[]					{
0x2E,0x47,0x0E,0xD5,0x4B,0xB6,0x0C,0x49,0xBC,0xA1,0xD3,0x06,0x96,0xF9,0xF2,0x89					};
					return ref Unsafe.As<byte,Guid>(ref MemoryMarshal.GetReference(data));
				}
			}
			[Guid("D50E472E-B64B-490C-BCA1-D30696F9F289"),InterfaceType(ComInterfaceType.InterfaceIsIUnknown),ComImport()]
			[SupportedOSPlatform("windows6.1")]
			internal interface Interface
			{
				unsafe winmdroot.UI.Accessibility.IUIAutomationProxyFactory* ProxyFactory
				{
					get;
				}

				[PreserveSig()]
				unsafe winmdroot.Foundation.HRESULT get_ClassName(winmdroot.Foundation.BSTR* className);

				[PreserveSig()]
				unsafe winmdroot.Foundation.HRESULT get_ImageName(winmdroot.Foundation.BSTR* imageName);

				[PreserveSig()]
				unsafe winmdroot.Foundation.HRESULT get_AllowSubstringMatch(winmdroot.Foundation.BOOL* allowSubstringMatch);

				[PreserveSig()]
				unsafe winmdroot.Foundation.HRESULT get_CanCheckBaseClass(winmdroot.Foundation.BOOL* canCheckBaseClass);

				[PreserveSig()]
				unsafe winmdroot.Foundation.HRESULT get_NeedsAdviseEvents(winmdroot.Foundation.BOOL* adviseEvents);

								[PreserveSig()]
winmdroot.Foundation.HRESULT put_ClassName(winmdroot.Foundation.PCWSTR className);

								[PreserveSig()]
winmdroot.Foundation.HRESULT put_ImageName(winmdroot.Foundation.PCWSTR imageName);

								[PreserveSig()]
winmdroot.Foundation.HRESULT put_AllowSubstringMatch(winmdroot.Foundation.BOOL allowSubstringMatch);

								[PreserveSig()]
winmdroot.Foundation.HRESULT put_CanCheckBaseClass(winmdroot.Foundation.BOOL canCheckBaseClass);

								[PreserveSig()]
winmdroot.Foundation.HRESULT put_NeedsAdviseEvents(winmdroot.Foundation.BOOL adviseEvents);

				[PreserveSig()]
				unsafe winmdroot.Foundation.HRESULT SetWinEventsForAutomationEvent(winmdroot.UI.Accessibility.UIA_EVENT_ID eventId, winmdroot.UI.Accessibility.UIA_PROPERTY_ID propertyId, winmdroot.System.Com.SAFEARRAY* winEvents);

				[PreserveSig()]
				unsafe winmdroot.Foundation.HRESULT GetWinEventsForAutomationEvent(winmdroot.UI.Accessibility.UIA_EVENT_ID eventId, winmdroot.UI.Accessibility.UIA_PROPERTY_ID propertyId, winmdroot.System.Com.SAFEARRAY** winEvents);
			}
		}
	}
}