File: Windows.Win32.PInvoke.OLEACC.dll.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
{

	/// <content>
	/// Contains extern methods from "OLEACC.dll".
	/// </content>
	internal static partial class PInvoke
	{
		/// <inheritdoc cref="CreateStdAccessibleObject(winmdroot.Foundation.HWND, int, global::System.Guid*, void**)"/>
		[SupportedOSPlatform("windows5.0")]
		internal static unsafe winmdroot.Foundation.HRESULT CreateStdAccessibleObject(winmdroot.Foundation.HWND hwnd, int idObject, in global::System.Guid riid, out void* ppvObject)
		{
			fixed (void** ppvObjectLocal = &ppvObject)
			{
				fixed (global::System.Guid* riidLocal = &riid)
				{
					winmdroot.Foundation.HRESULT __result = PInvoke.CreateStdAccessibleObject(hwnd, idObject, riidLocal, ppvObjectLocal);
					return __result;
				}
			}
		}

		/// <summary>Creates an accessible object with the methods and properties of the specified type of system-provided user interface element.</summary>
		/// <param name="hwnd">
		/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">HWND</a></b> Window handle of the system-provided user interface element (a control) for which an accessible object is created.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/oleacc/nf-oleacc-createstdaccessibleobject#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="idObject">
		/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">LONG</a></b> Object ID. This value is usually <a href="https://docs.microsoft.com/windows/desktop/WinAuto/object-identifiers">OBJID_CLIENT</a>, but it may be another object identifier.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/oleacc/nf-oleacc-createstdaccessibleobject#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="riid">
		/// <para>Type: <b>REFIID</b> Reference identifier of the requested interface. This value is one of the following: IID_IAccessible, IID_IDispatch, IID_IEnumVARIANT, or IID_IUnknown.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/oleacc/nf-oleacc-createstdaccessibleobject#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="ppvObject">
		/// <para>Type: <b>void**</b> Address of a pointer variable that receives the address of the specified interface.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/oleacc/nf-oleacc-createstdaccessibleobject#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <returns>
		/// <para>Type: <b>STDAPI</b> If successful, returns S_OK. If not successful, returns a standard <a href="https://docs.microsoft.com/windows/desktop/WinAuto/return-values">COM error code</a>.</para>
		/// </returns>
		/// <remarks>
		/// <para>Server applications call this function when they contain a custom UI object that is similar to a system-provided object. Server developers can call <b>CreateStdAccessibleObject</b> to override the <a href="https://docs.microsoft.com/windows/desktop/api/oleacc/nn-oleacc-iaccessible">IAccessible</a> methods and properties as required to match their custom objects. Alternatively, server developers can use Dynamic Annotation to override specific properties without having to use difficult subclassing techniques that <b>CreateStdAccessibleObject</b> requires. Server developers should still use <b>CreateStdAccessibleObject</b> for structural changes, such as hiding a child element or creating a placeholder child element. This approach saves server developers the work of fully implementing all of the <b>IAccessible</b> properties and methods. This function is similar to <a href="https://docs.microsoft.com/windows/desktop/api/oleacc/nf-oleacc-createstdaccessibleproxya">CreateStdAccessibleProxy</a>, except that <b>CreateStdAccessibleProxy</b> allows you to specify the class name as a parameter whereas <b>CreateStdAccessibleObject</b> uses the class name associated with the <i>hwnd</i> parameter.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/oleacc/nf-oleacc-createstdaccessibleobject#">Read more on docs.microsoft.com</see>.</para>
		/// </remarks>
		[DllImport("OLEACC.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows5.0")]
		internal static extern unsafe winmdroot.Foundation.HRESULT CreateStdAccessibleObject(winmdroot.Foundation.HWND hwnd, int idObject, global::System.Guid* riid, void** ppvObject);

		/// <inheritdoc cref="LresultFromObject(global::System.Guid*, winmdroot.Foundation.WPARAM, winmdroot.System.Com.IUnknown*)"/>
		[SupportedOSPlatform("windows5.0")]
		internal static unsafe winmdroot.Foundation.LRESULT LresultFromObject(in global::System.Guid riid, winmdroot.Foundation.WPARAM wParam, winmdroot.System.Com.IUnknown* punk)
		{
			fixed (global::System.Guid* riidLocal = &riid)
			{
				winmdroot.Foundation.LRESULT __result = PInvoke.LresultFromObject(riidLocal, wParam, punk);
				return __result;
			}
		}

		/// <summary>Returns a reference, similar to a handle, to the specified object. Servers return this reference when handling WM_GETOBJECT.</summary>
		/// <param name="riid">
		/// <para>Type: <b>REFIID</b> Reference identifier of the interface provided to the client. This parameter is IID_IAccessible.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/oleacc/nf-oleacc-lresultfromobject#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="wParam">
		/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">WPARAM</a></b> Value sent by the associated [WM_GETOBJECT](/windows/win32/winauto/wm-getobject) message in its <i>wParam</i> parameter.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/oleacc/nf-oleacc-lresultfromobject#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="punk">
		/// <para>Type: <b>LPUNKNOWN</b> Address of the <a href="https://docs.microsoft.com/windows/desktop/api/oleacc/nn-oleacc-iaccessible">IAccessible</a> interface to the object that corresponds to the [WM_GETOBJECT](/windows/win32/winauto/wm-getobject) message.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/oleacc/nf-oleacc-lresultfromobject#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">LRESULT</a></b> If successful, returns a positive value that is a reference to the object. If not successful, returns one of the values in the table that follows, or another standard <a href="https://docs.microsoft.com/windows/desktop/WinAuto/return-values">COM error code</a>. </para>
		/// <para>This doc was truncated.</para>
		/// </returns>
		/// <remarks>
		/// <para>Servers call this function only when handling the [WM_GETOBJECT](/windows/win32/winauto/wm-getobject) message. For an overview of how <b>LresultFromObject</b> is related to <b>WM_GETOBJECT</b>, see <a href="https://docs.microsoft.com/windows/desktop/WinAuto/how-wm-getobject-works">How WM_GETOBJECT Works</a>. <b>LresultFromObject</b> increments the object's reference count. If you are not storing the interface pointer passed to the function (that is, you create a new interface pointer for the object each time [WM_GETOBJECT](/windows/win32/winauto/wm-getobject) is received), call the object's <a href="https://docs.microsoft.com/windows/desktop/api/unknwn/nf-unknwn-iunknown-release">Release</a> method to decrement the reference count back to one. Then the client calls <b>Release</b> and the object is destroyed. For more information, see <a href="https://docs.microsoft.com/windows/desktop/WinAuto/how-to-handle-wm-getobject">How to Handle WM_GETOBJECT</a>. Each time a server processes [WM_GETOBJECT](/windows/win32/winauto/wm-getobject) for a specific object, it calls <b>LresultFromObject</b> to obtain a new reference to the object. Servers do not save the reference returned from <b>LresultFromObject</b> from one instance of processing <b>WM_GETOBJECT</b> to use as the message's return value when processing subsequent <b>WM_GETOBJECT</b> messages for the same object. This causes the client to receive an error.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/oleacc/nf-oleacc-lresultfromobject#">Read more on docs.microsoft.com</see>.</para>
		/// </remarks>
		[DllImport("OLEACC.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows5.0")]
		internal static extern unsafe winmdroot.Foundation.LRESULT LresultFromObject(global::System.Guid* riid, winmdroot.Foundation.WPARAM wParam, winmdroot.System.Com.IUnknown* punk);
	}
}