File: Windows.Win32.ITextSelection.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.Controls.RichEdit
	{
		[Guid("8CC497C1-A1DF-11CE-8098-00AA0047BE5D")]
		[SupportedOSPlatform("windows6.0.6000")]
		[global::System.CodeDom.Compiler.GeneratedCode("Microsoft.Windows.CsWin32", "0.3.151+58e949951d.RR")]
		internal unsafe partial struct ITextSelection
			:IVTable<ITextSelection,ITextSelection.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]<ITextSelection*,global::System.Guid* ,void** ,winmdroot.Foundation.HRESULT>)lpVtbl[0])((ITextSelection*)Unsafe.AsPointer(ref this), riid, ppvObject);
			}

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

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

			/// <inheritdoc cref="GetTypeInfoCount(uint*)"/>
			internal unsafe void GetTypeInfoCount(out uint pctinfo)
			{
				fixed (uint* pctinfoLocal = &pctinfo)
				{
					this.GetTypeInfoCount(pctinfoLocal);
				}
			}

			public unsafe void GetTypeInfoCount(uint* pctinfo)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,uint* ,winmdroot.Foundation.HRESULT>)lpVtbl[3])((ITextSelection*)Unsafe.AsPointer(ref this), pctinfo).ThrowOnFailure();
			}

			public unsafe void GetTypeInfo(uint iTInfo, uint lcid, winmdroot.System.Com.ITypeInfo** ppTInfo)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,uint ,uint ,winmdroot.System.Com.ITypeInfo** ,winmdroot.Foundation.HRESULT>)lpVtbl[4])((ITextSelection*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo).ThrowOnFailure();
			}

			/// <inheritdoc cref="GetIDsOfNames(global::System.Guid*, winmdroot.Foundation.PWSTR*, uint, uint, int*)"/>
			internal unsafe void GetIDsOfNames(in global::System.Guid riid, ReadOnlySpan<winmdroot.Foundation.PWSTR> rgszNames, uint lcid, Span<int> rgDispId)
			{
				fixed (int* rgDispIdLocal = rgDispId)
				{
					fixed (winmdroot.Foundation.PWSTR* rgszNamesLocal = rgszNames)
					{
						fixed (global::System.Guid* riidLocal = &riid)
						{
							if (rgszNames.Length != rgDispId.Length)								throw new ArgumentException();
							this.GetIDsOfNames(riidLocal, rgszNamesLocal, (uint )rgDispId.Length, lcid, rgDispIdLocal);
						}
					}
				}
			}

			public unsafe void GetIDsOfNames(global::System.Guid* riid, winmdroot.Foundation.PWSTR* rgszNames, uint cNames, uint lcid, int* rgDispId)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,global::System.Guid* ,winmdroot.Foundation.PWSTR* ,uint ,uint ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[5])((ITextSelection*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId).ThrowOnFailure();
			}

			/// <inheritdoc cref="Invoke(int, global::System.Guid*, uint, winmdroot.System.Com.DISPATCH_FLAGS, winmdroot.System.Com.DISPPARAMS*, winmdroot.System.Variant.VARIANT*, winmdroot.System.Com.EXCEPINFO*, uint*)"/>
			internal unsafe void Invoke(int dispIdMember, in global::System.Guid riid, uint lcid, winmdroot.System.Com.DISPATCH_FLAGS wFlags, in winmdroot.System.Com.DISPPARAMS pDispParams, winmdroot.System.Variant.VARIANT* pVarResult, winmdroot.System.Com.EXCEPINFO* pExcepInfo, uint* puArgErr)
			{
				fixed (winmdroot.System.Com.DISPPARAMS* pDispParamsLocal = &pDispParams)
				{
					fixed (global::System.Guid* riidLocal = &riid)
					{
						this.Invoke(dispIdMember, riidLocal, lcid, wFlags, pDispParamsLocal, pVarResult, pExcepInfo, puArgErr);
					}
				}
			}

			public unsafe void Invoke(int dispIdMember, global::System.Guid* riid, uint lcid, winmdroot.System.Com.DISPATCH_FLAGS wFlags, winmdroot.System.Com.DISPPARAMS* pDispParams, [Optional] winmdroot.System.Variant.VARIANT* pVarResult, [Optional] winmdroot.System.Com.EXCEPINFO* pExcepInfo, [Optional] uint* puArgErr)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,global::System.Guid* ,uint ,winmdroot.System.Com.DISPATCH_FLAGS ,winmdroot.System.Com.DISPPARAMS* ,winmdroot.System.Variant.VARIANT* ,winmdroot.System.Com.EXCEPINFO* ,uint* ,winmdroot.Foundation.HRESULT>)lpVtbl[6])((ITextSelection*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr).ThrowOnFailure();
			}

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

			public unsafe void GetText(winmdroot.Foundation.BSTR* pbstr)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.Foundation.BSTR* ,winmdroot.Foundation.HRESULT>)lpVtbl[7])((ITextSelection*)Unsafe.AsPointer(ref this), pbstr).ThrowOnFailure();
			}

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

			public void SetText(winmdroot.Foundation.BSTR bstr)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.Foundation.BSTR ,winmdroot.Foundation.HRESULT>)lpVtbl[8])((ITextSelection*)Unsafe.AsPointer(ref this), bstr).ThrowOnFailure();
			}

			/// <inheritdoc cref="GetChar(int*)"/>
			internal unsafe void GetChar(out int pChar)
			{
				fixed (int* pCharLocal = &pChar)
				{
					this.GetChar(pCharLocal);
				}
			}

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

			public unsafe void GetChar(int* pChar)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[9])((ITextSelection*)Unsafe.AsPointer(ref this), pChar).ThrowOnFailure();
			}

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

			public void SetChar(int Char)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,winmdroot.Foundation.HRESULT>)lpVtbl[10])((ITextSelection*)Unsafe.AsPointer(ref this), Char).ThrowOnFailure();
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT GetDuplicate(ITextSelection* pThis, winmdroot.UI.Controls.RichEdit.ITextRange** ppRange)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.GetDuplicate(ppRange);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void GetDuplicate(winmdroot.UI.Controls.RichEdit.ITextRange** ppRange)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextRange** ,winmdroot.Foundation.HRESULT>)lpVtbl[11])((ITextSelection*)Unsafe.AsPointer(ref this), ppRange).ThrowOnFailure();
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT GetFormattedText(ITextSelection* pThis, winmdroot.UI.Controls.RichEdit.ITextRange** ppRange)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.GetFormattedText(ppRange);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void GetFormattedText(winmdroot.UI.Controls.RichEdit.ITextRange** ppRange)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextRange** ,winmdroot.Foundation.HRESULT>)lpVtbl[12])((ITextSelection*)Unsafe.AsPointer(ref this), ppRange).ThrowOnFailure();
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT SetFormattedText(ITextSelection* pThis, [Optional] winmdroot.UI.Controls.RichEdit.ITextRange* pRange)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.SetFormattedText(pRange);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void SetFormattedText([Optional] winmdroot.UI.Controls.RichEdit.ITextRange* pRange)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextRange* ,winmdroot.Foundation.HRESULT>)lpVtbl[13])((ITextSelection*)Unsafe.AsPointer(ref this), pRange).ThrowOnFailure();
			}

			/// <inheritdoc cref="GetStart(int*)"/>
			internal unsafe void GetStart(out int pcpFirst)
			{
				fixed (int* pcpFirstLocal = &pcpFirst)
				{
					this.GetStart(pcpFirstLocal);
				}
			}

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

			public unsafe void GetStart(int* pcpFirst)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[14])((ITextSelection*)Unsafe.AsPointer(ref this), pcpFirst).ThrowOnFailure();
			}

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

			public void SetStart(int cpFirst)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,winmdroot.Foundation.HRESULT>)lpVtbl[15])((ITextSelection*)Unsafe.AsPointer(ref this), cpFirst).ThrowOnFailure();
			}

			/// <inheritdoc cref="GetEnd(int*)"/>
			internal unsafe void GetEnd(out int pcpLim)
			{
				fixed (int* pcpLimLocal = &pcpLim)
				{
					this.GetEnd(pcpLimLocal);
				}
			}

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

			public unsafe void GetEnd(int* pcpLim)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[16])((ITextSelection*)Unsafe.AsPointer(ref this), pcpLim).ThrowOnFailure();
			}

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

			public void SetEnd(int cpLim)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,winmdroot.Foundation.HRESULT>)lpVtbl[17])((ITextSelection*)Unsafe.AsPointer(ref this), cpLim).ThrowOnFailure();
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT GetFont(ITextSelection* pThis, winmdroot.UI.Controls.RichEdit.ITextFont** ppFont)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.GetFont(ppFont);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void GetFont(winmdroot.UI.Controls.RichEdit.ITextFont** ppFont)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextFont** ,winmdroot.Foundation.HRESULT>)lpVtbl[18])((ITextSelection*)Unsafe.AsPointer(ref this), ppFont).ThrowOnFailure();
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT SetFont(ITextSelection* pThis, [Optional] winmdroot.UI.Controls.RichEdit.ITextFont* pFont)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.SetFont(pFont);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void SetFont([Optional] winmdroot.UI.Controls.RichEdit.ITextFont* pFont)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextFont* ,winmdroot.Foundation.HRESULT>)lpVtbl[19])((ITextSelection*)Unsafe.AsPointer(ref this), pFont).ThrowOnFailure();
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT GetPara(ITextSelection* pThis, winmdroot.UI.Controls.RichEdit.ITextPara** ppPara)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.GetPara(ppPara);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void GetPara(winmdroot.UI.Controls.RichEdit.ITextPara** ppPara)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextPara** ,winmdroot.Foundation.HRESULT>)lpVtbl[20])((ITextSelection*)Unsafe.AsPointer(ref this), ppPara).ThrowOnFailure();
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT SetPara(ITextSelection* pThis, [Optional] winmdroot.UI.Controls.RichEdit.ITextPara* pPara)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.SetPara(pPara);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void SetPara([Optional] winmdroot.UI.Controls.RichEdit.ITextPara* pPara)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextPara* ,winmdroot.Foundation.HRESULT>)lpVtbl[21])((ITextSelection*)Unsafe.AsPointer(ref this), pPara).ThrowOnFailure();
			}

			/// <inheritdoc cref="GetStoryLength(int*)"/>
			internal unsafe void GetStoryLength(out int pCount)
			{
				fixed (int* pCountLocal = &pCount)
				{
					this.GetStoryLength(pCountLocal);
				}
			}

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

			public unsafe void GetStoryLength(int* pCount)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[22])((ITextSelection*)Unsafe.AsPointer(ref this), pCount).ThrowOnFailure();
			}

			/// <inheritdoc cref="GetStoryType(int*)"/>
			internal unsafe void GetStoryType(out int pValue)
			{
				fixed (int* pValueLocal = &pValue)
				{
					this.GetStoryType(pValueLocal);
				}
			}

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

			public unsafe void GetStoryType(int* pValue)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[23])((ITextSelection*)Unsafe.AsPointer(ref this), pValue).ThrowOnFailure();
			}

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

			public void Collapse(int bStart)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,winmdroot.Foundation.HRESULT>)lpVtbl[24])((ITextSelection*)Unsafe.AsPointer(ref this), bStart).ThrowOnFailure();
			}

			/// <inheritdoc cref="Expand(int, int*)"/>
			internal unsafe void Expand(int Unit, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					this.Expand(Unit, pDeltaLocal);
				}
			}

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

			public unsafe void Expand(int Unit, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[25])((ITextSelection*)Unsafe.AsPointer(ref this), Unit, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="GetIndex(int, int*)"/>
			internal unsafe void GetIndex(int Unit, out int pIndex)
			{
				fixed (int* pIndexLocal = &pIndex)
				{
					this.GetIndex(Unit, pIndexLocal);
				}
			}

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

			public unsafe void GetIndex(int Unit, int* pIndex)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[26])((ITextSelection*)Unsafe.AsPointer(ref this), Unit, pIndex).ThrowOnFailure();
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT SetIndex(ITextSelection* pThis, int Unit, int Index, int Extend)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.SetIndex(Unit, Index, Extend);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public void SetIndex(int Unit, int Index, int Extend)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int ,winmdroot.Foundation.HRESULT>)lpVtbl[27])((ITextSelection*)Unsafe.AsPointer(ref this), Unit, Index, Extend).ThrowOnFailure();
			}

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

			public void SetRange(int cpAnchor, int cpActive)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,winmdroot.Foundation.HRESULT>)lpVtbl[28])((ITextSelection*)Unsafe.AsPointer(ref this), cpAnchor, cpActive).ThrowOnFailure();
			}

			/// <inheritdoc cref="InRange(winmdroot.UI.Controls.RichEdit.ITextRange*, int*)"/>
			internal unsafe void InRange(winmdroot.UI.Controls.RichEdit.ITextRange* pRange, out int pValue)
			{
				fixed (int* pValueLocal = &pValue)
				{
					this.InRange(pRange, pValueLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT InRange(ITextSelection* pThis, [Optional] winmdroot.UI.Controls.RichEdit.ITextRange* pRange, int* pValue)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.InRange(pRange, pValue);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void InRange([Optional] winmdroot.UI.Controls.RichEdit.ITextRange* pRange, int* pValue)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextRange* ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[29])((ITextSelection*)Unsafe.AsPointer(ref this), pRange, pValue).ThrowOnFailure();
			}

			/// <inheritdoc cref="InStory(winmdroot.UI.Controls.RichEdit.ITextRange*, int*)"/>
			internal unsafe void InStory(winmdroot.UI.Controls.RichEdit.ITextRange* pRange, out int pValue)
			{
				fixed (int* pValueLocal = &pValue)
				{
					this.InStory(pRange, pValueLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT InStory(ITextSelection* pThis, [Optional] winmdroot.UI.Controls.RichEdit.ITextRange* pRange, int* pValue)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.InStory(pRange, pValue);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void InStory([Optional] winmdroot.UI.Controls.RichEdit.ITextRange* pRange, int* pValue)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextRange* ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[30])((ITextSelection*)Unsafe.AsPointer(ref this), pRange, pValue).ThrowOnFailure();
			}

			/// <inheritdoc cref="IsEqual(winmdroot.UI.Controls.RichEdit.ITextRange*, int*)"/>
			internal unsafe void IsEqual(winmdroot.UI.Controls.RichEdit.ITextRange* pRange, out int pValue)
			{
				fixed (int* pValueLocal = &pValue)
				{
					this.IsEqual(pRange, pValueLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT IsEqual(ITextSelection* pThis, [Optional] winmdroot.UI.Controls.RichEdit.ITextRange* pRange, int* pValue)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.IsEqual(pRange, pValue);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void IsEqual([Optional] winmdroot.UI.Controls.RichEdit.ITextRange* pRange, int* pValue)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextRange* ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[31])((ITextSelection*)Unsafe.AsPointer(ref this), pRange, pValue).ThrowOnFailure();
			}

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

			public void Select()
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.Foundation.HRESULT>)lpVtbl[32])((ITextSelection*)Unsafe.AsPointer(ref this)).ThrowOnFailure();
			}

			/// <inheritdoc cref="StartOf(int, int, int*)"/>
			internal unsafe void StartOf(int Unit, int Extend, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					this.StartOf(Unit, Extend, pDeltaLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT StartOf(ITextSelection* pThis, int Unit, int Extend, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.StartOf(Unit, Extend, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void StartOf(int Unit, int Extend, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[33])((ITextSelection*)Unsafe.AsPointer(ref this), Unit, Extend, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="EndOf(int, int, int*)"/>
			internal unsafe void EndOf(int Unit, int Extend, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					this.EndOf(Unit, Extend, pDeltaLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT EndOf(ITextSelection* pThis, int Unit, int Extend, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.EndOf(Unit, Extend, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void EndOf(int Unit, int Extend, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[34])((ITextSelection*)Unsafe.AsPointer(ref this), Unit, Extend, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="Move(int, int, int*)"/>
			internal unsafe void Move(int Unit, int Count, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					this.Move(Unit, Count, pDeltaLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT Move(ITextSelection* pThis, int Unit, int Count, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.Move(Unit, Count, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void Move(int Unit, int Count, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[35])((ITextSelection*)Unsafe.AsPointer(ref this), Unit, Count, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="MoveStart(int, int, int*)"/>
			internal unsafe void MoveStart(int Unit, int Count, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					this.MoveStart(Unit, Count, pDeltaLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT MoveStart(ITextSelection* pThis, int Unit, int Count, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.MoveStart(Unit, Count, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void MoveStart(int Unit, int Count, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[36])((ITextSelection*)Unsafe.AsPointer(ref this), Unit, Count, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="MoveEnd(int, int, int*)"/>
			internal unsafe void MoveEnd(int Unit, int Count, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					this.MoveEnd(Unit, Count, pDeltaLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT MoveEnd(ITextSelection* pThis, int Unit, int Count, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.MoveEnd(Unit, Count, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void MoveEnd(int Unit, int Count, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[37])((ITextSelection*)Unsafe.AsPointer(ref this), Unit, Count, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="MoveWhile(winmdroot.System.Variant.VARIANT*, int, int*)"/>
			internal unsafe void MoveWhile(in winmdroot.System.Variant.VARIANT Cset, int Count, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					fixed (winmdroot.System.Variant.VARIANT* CsetLocal = &Cset)
					{
						this.MoveWhile(CsetLocal, Count, pDeltaLocal);
					}
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT MoveWhile(ITextSelection* pThis, winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.MoveWhile(Cset, Count, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void MoveWhile(winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[38])((ITextSelection*)Unsafe.AsPointer(ref this), Cset, Count, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="MoveStartWhile(winmdroot.System.Variant.VARIANT*, int, int*)"/>
			internal unsafe void MoveStartWhile(in winmdroot.System.Variant.VARIANT Cset, int Count, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					fixed (winmdroot.System.Variant.VARIANT* CsetLocal = &Cset)
					{
						this.MoveStartWhile(CsetLocal, Count, pDeltaLocal);
					}
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT MoveStartWhile(ITextSelection* pThis, winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.MoveStartWhile(Cset, Count, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void MoveStartWhile(winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[39])((ITextSelection*)Unsafe.AsPointer(ref this), Cset, Count, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="MoveEndWhile(winmdroot.System.Variant.VARIANT*, int, int*)"/>
			internal unsafe void MoveEndWhile(in winmdroot.System.Variant.VARIANT Cset, int Count, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					fixed (winmdroot.System.Variant.VARIANT* CsetLocal = &Cset)
					{
						this.MoveEndWhile(CsetLocal, Count, pDeltaLocal);
					}
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT MoveEndWhile(ITextSelection* pThis, winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.MoveEndWhile(Cset, Count, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void MoveEndWhile(winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[40])((ITextSelection*)Unsafe.AsPointer(ref this), Cset, Count, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="MoveUntil(winmdroot.System.Variant.VARIANT*, int, int*)"/>
			internal unsafe void MoveUntil(in winmdroot.System.Variant.VARIANT Cset, int Count, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					fixed (winmdroot.System.Variant.VARIANT* CsetLocal = &Cset)
					{
						this.MoveUntil(CsetLocal, Count, pDeltaLocal);
					}
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT MoveUntil(ITextSelection* pThis, winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.MoveUntil(Cset, Count, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void MoveUntil(winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[41])((ITextSelection*)Unsafe.AsPointer(ref this), Cset, Count, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="MoveStartUntil(winmdroot.System.Variant.VARIANT*, int, int*)"/>
			internal unsafe void MoveStartUntil(in winmdroot.System.Variant.VARIANT Cset, int Count, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					fixed (winmdroot.System.Variant.VARIANT* CsetLocal = &Cset)
					{
						this.MoveStartUntil(CsetLocal, Count, pDeltaLocal);
					}
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT MoveStartUntil(ITextSelection* pThis, winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.MoveStartUntil(Cset, Count, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void MoveStartUntil(winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[42])((ITextSelection*)Unsafe.AsPointer(ref this), Cset, Count, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="MoveEndUntil(winmdroot.System.Variant.VARIANT*, int, int*)"/>
			internal unsafe void MoveEndUntil(in winmdroot.System.Variant.VARIANT Cset, int Count, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					fixed (winmdroot.System.Variant.VARIANT* CsetLocal = &Cset)
					{
						this.MoveEndUntil(CsetLocal, Count, pDeltaLocal);
					}
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT MoveEndUntil(ITextSelection* pThis, winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.MoveEndUntil(Cset, Count, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void MoveEndUntil(winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[43])((ITextSelection*)Unsafe.AsPointer(ref this), Cset, Count, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="FindText(winmdroot.Foundation.BSTR, int, winmdroot.UI.Controls.RichEdit.tomConstants, int*)"/>
			internal unsafe void FindText(winmdroot.Foundation.BSTR bstr, int Count, winmdroot.UI.Controls.RichEdit.tomConstants Flags, out int pLength)
			{
				fixed (int* pLengthLocal = &pLength)
				{
					this.FindText(bstr, Count, Flags, pLengthLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT FindText(ITextSelection* pThis, winmdroot.Foundation.BSTR bstr, int Count, winmdroot.UI.Controls.RichEdit.tomConstants Flags, int* pLength)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.FindText(bstr, Count, Flags, pLength);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void FindText(winmdroot.Foundation.BSTR bstr, int Count, winmdroot.UI.Controls.RichEdit.tomConstants Flags, int* pLength)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.Foundation.BSTR ,int ,winmdroot.UI.Controls.RichEdit.tomConstants ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[44])((ITextSelection*)Unsafe.AsPointer(ref this), bstr, Count, Flags, pLength).ThrowOnFailure();
			}

			/// <inheritdoc cref="FindTextStart(winmdroot.Foundation.BSTR, int, winmdroot.UI.Controls.RichEdit.tomConstants, int*)"/>
			internal unsafe void FindTextStart(winmdroot.Foundation.BSTR bstr, int Count, winmdroot.UI.Controls.RichEdit.tomConstants Flags, out int pLength)
			{
				fixed (int* pLengthLocal = &pLength)
				{
					this.FindTextStart(bstr, Count, Flags, pLengthLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT FindTextStart(ITextSelection* pThis, winmdroot.Foundation.BSTR bstr, int Count, winmdroot.UI.Controls.RichEdit.tomConstants Flags, int* pLength)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.FindTextStart(bstr, Count, Flags, pLength);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void FindTextStart(winmdroot.Foundation.BSTR bstr, int Count, winmdroot.UI.Controls.RichEdit.tomConstants Flags, int* pLength)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.Foundation.BSTR ,int ,winmdroot.UI.Controls.RichEdit.tomConstants ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[45])((ITextSelection*)Unsafe.AsPointer(ref this), bstr, Count, Flags, pLength).ThrowOnFailure();
			}

			/// <inheritdoc cref="FindTextEnd(winmdroot.Foundation.BSTR, int, winmdroot.UI.Controls.RichEdit.tomConstants, int*)"/>
			internal unsafe void FindTextEnd(winmdroot.Foundation.BSTR bstr, int Count, winmdroot.UI.Controls.RichEdit.tomConstants Flags, out int pLength)
			{
				fixed (int* pLengthLocal = &pLength)
				{
					this.FindTextEnd(bstr, Count, Flags, pLengthLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT FindTextEnd(ITextSelection* pThis, winmdroot.Foundation.BSTR bstr, int Count, winmdroot.UI.Controls.RichEdit.tomConstants Flags, int* pLength)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.FindTextEnd(bstr, Count, Flags, pLength);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void FindTextEnd(winmdroot.Foundation.BSTR bstr, int Count, winmdroot.UI.Controls.RichEdit.tomConstants Flags, int* pLength)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.Foundation.BSTR ,int ,winmdroot.UI.Controls.RichEdit.tomConstants ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[46])((ITextSelection*)Unsafe.AsPointer(ref this), bstr, Count, Flags, pLength).ThrowOnFailure();
			}

			/// <inheritdoc cref="Delete(int, int, int*)"/>
			internal unsafe void Delete(int Unit, int Count, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					this.Delete(Unit, Count, pDeltaLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT Delete(ITextSelection* pThis, int Unit, int Count, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.Delete(Unit, Count, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void Delete(int Unit, int Count, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[47])((ITextSelection*)Unsafe.AsPointer(ref this), Unit, Count, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="Cut(winmdroot.System.Variant.VARIANT*)"/>
			internal unsafe void Cut(out winmdroot.System.Variant.VARIANT pVar)
			{
				fixed (winmdroot.System.Variant.VARIANT* pVarLocal = &pVar)
				{
					this.Cut(pVarLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT Cut(ITextSelection* pThis, winmdroot.System.Variant.VARIANT* pVar)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.Cut(pVar);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void Cut(winmdroot.System.Variant.VARIANT* pVar)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,winmdroot.Foundation.HRESULT>)lpVtbl[48])((ITextSelection*)Unsafe.AsPointer(ref this), pVar).ThrowOnFailure();
			}

			/// <inheritdoc cref="Copy(winmdroot.System.Variant.VARIANT*)"/>
			internal unsafe void Copy(out winmdroot.System.Variant.VARIANT pVar)
			{
				fixed (winmdroot.System.Variant.VARIANT* pVarLocal = &pVar)
				{
					this.Copy(pVarLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT Copy(ITextSelection* pThis, winmdroot.System.Variant.VARIANT* pVar)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.Copy(pVar);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void Copy(winmdroot.System.Variant.VARIANT* pVar)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,winmdroot.Foundation.HRESULT>)lpVtbl[49])((ITextSelection*)Unsafe.AsPointer(ref this), pVar).ThrowOnFailure();
			}

			/// <inheritdoc cref="Paste(winmdroot.System.Variant.VARIANT*, int)"/>
			internal unsafe void Paste(in winmdroot.System.Variant.VARIANT pVar, int Format)
			{
				fixed (winmdroot.System.Variant.VARIANT* pVarLocal = &pVar)
				{
					this.Paste(pVarLocal, Format);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT Paste(ITextSelection* pThis, winmdroot.System.Variant.VARIANT* pVar, int Format)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.Paste(pVar, Format);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void Paste(winmdroot.System.Variant.VARIANT* pVar, int Format)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,winmdroot.Foundation.HRESULT>)lpVtbl[50])((ITextSelection*)Unsafe.AsPointer(ref this), pVar, Format).ThrowOnFailure();
			}

			/// <inheritdoc cref="CanPaste(winmdroot.System.Variant.VARIANT*, int, int*)"/>
			internal unsafe void CanPaste(in winmdroot.System.Variant.VARIANT pVar, int Format, out int pValue)
			{
				fixed (int* pValueLocal = &pValue)
				{
					fixed (winmdroot.System.Variant.VARIANT* pVarLocal = &pVar)
					{
						this.CanPaste(pVarLocal, Format, pValueLocal);
					}
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT CanPaste(ITextSelection* pThis, winmdroot.System.Variant.VARIANT* pVar, int Format, int* pValue)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.CanPaste(pVar, Format, pValue);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void CanPaste(winmdroot.System.Variant.VARIANT* pVar, int Format, int* pValue)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[51])((ITextSelection*)Unsafe.AsPointer(ref this), pVar, Format, pValue).ThrowOnFailure();
			}

			/// <inheritdoc cref="CanEdit(int*)"/>
			internal unsafe void CanEdit(out int pValue)
			{
				fixed (int* pValueLocal = &pValue)
				{
					this.CanEdit(pValueLocal);
				}
			}

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

			public unsafe void CanEdit(int* pValue)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[52])((ITextSelection*)Unsafe.AsPointer(ref this), pValue).ThrowOnFailure();
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT ChangeCase(ITextSelection* pThis, winmdroot.UI.Controls.RichEdit.tomConstants Type)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.ChangeCase(Type);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public void ChangeCase(winmdroot.UI.Controls.RichEdit.tomConstants Type)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.tomConstants ,winmdroot.Foundation.HRESULT>)lpVtbl[53])((ITextSelection*)Unsafe.AsPointer(ref this), Type).ThrowOnFailure();
			}

			/// <inheritdoc cref="GetPoint(winmdroot.UI.Controls.RichEdit.tomConstants, int*, int*)"/>
			internal unsafe void GetPoint(winmdroot.UI.Controls.RichEdit.tomConstants Type, out int px, out int py)
			{
				fixed (int* pyLocal = &py)
				{
					fixed (int* pxLocal = &px)
					{
						this.GetPoint(Type, pxLocal, pyLocal);
					}
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT GetPoint(ITextSelection* pThis, winmdroot.UI.Controls.RichEdit.tomConstants Type, int* px, int* py)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.GetPoint(Type, px, py);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void GetPoint(winmdroot.UI.Controls.RichEdit.tomConstants Type, int* px, int* py)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.tomConstants ,int* ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[54])((ITextSelection*)Unsafe.AsPointer(ref this), Type, px, py).ThrowOnFailure();
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT SetPoint(ITextSelection* pThis, int x, int y, winmdroot.UI.Controls.RichEdit.tomConstants Type, int Extend)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.SetPoint(x, y, Type, Extend);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public void SetPoint(int x, int y, winmdroot.UI.Controls.RichEdit.tomConstants Type, int Extend)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,winmdroot.UI.Controls.RichEdit.tomConstants ,int ,winmdroot.Foundation.HRESULT>)lpVtbl[55])((ITextSelection*)Unsafe.AsPointer(ref this), x, y, Type, Extend).ThrowOnFailure();
			}

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

			public void ScrollIntoView(int Value)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,winmdroot.Foundation.HRESULT>)lpVtbl[56])((ITextSelection*)Unsafe.AsPointer(ref this), Value).ThrowOnFailure();
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT GetEmbeddedObject(ITextSelection* pThis, winmdroot.System.Com.IUnknown** ppObject)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.GetEmbeddedObject(ppObject);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			public unsafe void GetEmbeddedObject(winmdroot.System.Com.IUnknown** ppObject)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Com.IUnknown** ,winmdroot.Foundation.HRESULT>)lpVtbl[57])((ITextSelection*)Unsafe.AsPointer(ref this), ppObject).ThrowOnFailure();
			}

			/// <inheritdoc cref="GetFlags(int*)"/>
			internal unsafe void GetFlags(out int pFlags)
			{
				fixed (int* pFlagsLocal = &pFlags)
				{
					this.GetFlags(pFlagsLocal);
				}
			}

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

			/// <summary>Gets the text selection flags.</summary>
			/// <param name="pFlags">
			/// <para>Type: <b>long*</b> Any combination of the following selection flags.</para>
			/// <para></para>
			/// <para>This doc was truncated.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-getflags#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <returns>
			/// <para>Type: <b>HRESULT</b> The method returns an <b>HRESULT</b> value. If the method succeeds, it returns <b>S_OK</b>. If <i>pFlags</i> is null, the method fails and it returns E_INVALIDARG.</para>
			/// </returns>
			/// <remarks>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-getflags">Learn more about this API from docs.microsoft.com</see>.</para>
			/// </remarks>
			public unsafe void GetFlags(int* pFlags)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[58])((ITextSelection*)Unsafe.AsPointer(ref this), pFlags).ThrowOnFailure();
			}

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

			/// <summary>Sets the text selection flags.</summary>
			/// <param name="Flags">
			/// <para>Type: <b>long</b> New flag values. It can be any combination of the following.</para>
			/// <para></para>
			/// <para>This doc was truncated.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-setflags#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <returns>
			/// <para>Type: <b>HRESULT</b> The method returns <b>S_OK</b>.</para>
			/// </returns>
			/// <remarks>
			/// <para>To make sure that the start end is active and that the ambiguous character position is displayed at the end of the line, execute the following code:</para>
			/// <para></para>
			/// <para>This doc was truncated.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-setflags#">Read more on docs.microsoft.com</see>.</para>
			/// </remarks>
			public void SetFlags(int Flags)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,winmdroot.Foundation.HRESULT>)lpVtbl[59])((ITextSelection*)Unsafe.AsPointer(ref this), Flags).ThrowOnFailure();
			}

			/// <inheritdoc cref="GetType(int*)"/>
			internal unsafe void GetType(out int pType)
			{
				fixed (int* pTypeLocal = &pType)
				{
					this.GetType(pTypeLocal);
				}
			}

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

			/// <summary>Gets the type of text selection.</summary>
			/// <param name="pType">
			/// <para>Type: <b>long*</b> The selection type. The method returns <i>pType</i> with one of the values in the following table.</para>
			/// <para></para>
			/// <para>This doc was truncated.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-gettype#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <returns>
			/// <para>Type: <b>StdMETHODIMP</b> The method returns an <b>HRESULT</b> value. If the method succeeds, it returns <b>S_OK</b>. If <i>pType</i> is null, the method fails and it returns E_INVALIDARG.</para>
			/// </returns>
			/// <remarks>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-gettype">Learn more about this API from docs.microsoft.com</see>.</para>
			/// </remarks>
			public unsafe void GetType(int* pType)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[60])((ITextSelection*)Unsafe.AsPointer(ref this), pType).ThrowOnFailure();
			}

			/// <inheritdoc cref="MoveLeft(int, int, int, int*)"/>
			internal unsafe void MoveLeft(int Unit, int Count, int Extend, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					this.MoveLeft(Unit, Count, Extend, pDeltaLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT MoveLeft(ITextSelection* pThis, int Unit, int Count, int Extend, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.MoveLeft(Unit, Count, Extend, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Generalizes the functionality of the Left Arrow key.</summary>
			/// <param name="Unit">
			/// <para>Type: <b>long</b> Unit to use. It can be one of the following.</para>
			/// <para></para>
			/// <para>This doc was truncated.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-moveleft#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="Count">
			/// <para>Type: <b>long</b> Number of Units to move past. The default value is 1. If <i>Count</i> is less than zero, movement is to the right.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-moveleft#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="Extend">
			/// <para>Type: <b>long</b> Flag that indicates how to change the selection. If <i>Extend</i> is zero (or <b>tomMove</b>), the method collapses the selection to an insertion point at the active end and then moves it. If <i>Extend</i> is 1 (or <b>tomExtend</b>), the method moves the active end and leaves the other end alone. The default value is zero. A nonzero <i>Extend</i> value corresponds to the Shift key being pressed in addition to the key combination described in <i>Unit</i>.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-moveleft#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="pDelta">
			/// <para>Type: <b>long*</b> The actual count of units the insertion point or active end is moved left. This parameter can be null. Collapsing the selection, when <i>Extend</i> is 0, counts as one unit.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-moveleft#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <returns>
			/// <para>Type: <b>HRESULT</b> The method returns an <b>HRESULT</b> value. If the method succeeds, it returns <b>S_OK</b>. If the method fails, it returns one of the following error codes. For more information about COM error codes, see <a href="https://docs.microsoft.com/windows/desktop/com/error-handling-in-com">Error Handling in COM</a>. </para>
			/// <para>This doc was truncated.</para>
			/// </returns>
			/// <remarks>
			/// <para>The WordBasic move methods like <b>CharRight</b>, <b>CharLeft</b>, <b>WordRight</b>, and <b>WordLeft</b> are hybrids that can do four things that are closely related to the standard arrow-key edit behavior: </para>
			/// <para>This doc was truncated.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-moveleft#">Read more on docs.microsoft.com</see>.</para>
			/// </remarks>
			public unsafe void MoveLeft(int Unit, int Count, int Extend, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[61])((ITextSelection*)Unsafe.AsPointer(ref this), Unit, Count, Extend, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="MoveRight(int, int, int, int*)"/>
			internal unsafe void MoveRight(int Unit, int Count, int Extend, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					this.MoveRight(Unit, Count, Extend, pDeltaLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT MoveRight(ITextSelection* pThis, int Unit, int Count, int Extend, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.MoveRight(Unit, Count, Extend, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Generalizes the functionality of the Right Arrow key.</summary>
			/// <param name="Unit">
			/// <para>Type: <b>long</b> Unit to use. It can be one of the following.</para>
			/// <para></para>
			/// <para>This doc was truncated.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-moveright#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="Count">
			/// <para>Type: <b>long</b> Number of Units to move past. The default value is 1. If <i>Count</i> is less than zero, movement is to the left.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-moveright#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="Extend">
			/// <para>Type: <b>long</b> Flag that indicates how to change the selection. If <i>Extend</i> is zero (or <b>tomMove</b>), the method collapses the selection to an insertion point at the active end and then moves it. If <i>Extend</i> is 1 (or <b>tomExtend</b>), the method moves the active end and leaves the other end alone. The default value is zero. A nonzero <i>Extend</i> value corresponds to the Shift key being pressed in addition to the key combination described in <i>Unit</i>.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-moveright#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="pDelta">
			/// <para>Type: <b>long*</b> The actual count of units the insertion point or active end is moved left. This parameter can be null. Collapsing the selection, when <i>Extend</i> is 0, counts as one unit.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-moveright#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <returns>
			/// <para>Type: <b>HRESULT</b> The method returns an <b>HRESULT</b> value. If the method succeeds, it returns <b>S_OK</b>. If the method fails, it returns one of the following error codes. For more information about COM error codes, see <a href="https://docs.microsoft.com/windows/desktop/com/error-handling-in-com">Error Handling in COM</a>. </para>
			/// <para>This doc was truncated.</para>
			/// </returns>
			/// <remarks>
			/// <para>Microsoft WordBasic move methods like <b>CharRight</b>, <b>CharLeft</b>, <b>WordRight</b>, and <b>WordLeft</b> are hybrids that can do four things that are closely related to the standard arrow-key edit behavior: </para>
			/// <para>This doc was truncated.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-moveright#">Read more on docs.microsoft.com</see>.</para>
			/// </remarks>
			public unsafe void MoveRight(int Unit, int Count, int Extend, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[62])((ITextSelection*)Unsafe.AsPointer(ref this), Unit, Count, Extend, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="MoveUp(int, int, int, int*)"/>
			internal unsafe void MoveUp(int Unit, int Count, int Extend, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					this.MoveUp(Unit, Count, Extend, pDeltaLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT MoveUp(ITextSelection* pThis, int Unit, int Count, int Extend, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.MoveUp(Unit, Count, Extend, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Mimics the functionality of the Up Arrow and Page Up keys.</summary>
			/// <param name="Unit">
			/// <para>Type: <b>long</b> Unit to use in the operation. It can be one of the following.</para>
			/// <para></para>
			/// <para>This doc was truncated.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-moveup#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="Count">
			/// <para>Type: <b>long</b> Number of <i>Units</i> to move past. The default value is 1.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-moveup#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="Extend">
			/// <para>Type: <b>long</b> Flag that indicates how to change the selection. If <i>Extend</i> is zero (or <b>tomMove</b>), the method collapses the selection to an insertion point and then moves. If <i>Extend</i> is 1 (or <b>tomExtend</b>), the method moves the active end and leaves the other end alone. The default value is zero. A nonzero <i>Extend</i> value corresponds to the Shift key being pressed in addition to the key combination described in <i>Unit</i>.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-moveup#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="pDelta">
			/// <para>Type: <b>long*</b> The actual count of units the insertion point or active end is moved down. This parameter can be null. Collapsing the selection counts as one unit.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-moveup#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <returns>
			/// <para>Type: <b>HRESULT</b> The method returns an <b>HRESULT</b> value. If the method succeeds, it returns <b>S_OK</b>. If the method fails, it returns one of the following error codes. For more information about COM error codes, see <a href="https://docs.microsoft.com/windows/desktop/com/error-handling-in-com">Error Handling in COM</a>. </para>
			/// <para>This doc was truncated.</para>
			/// </returns>
			/// <remarks>The <b>MoveUp</b> and <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextselection-movedown">MoveDown</a> methods are similar to the <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextselection-moveleft">MoveLeft</a> and <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextselection-moveright">MoveRight</a> methods, except that they reflect the behavior of the Up Arrow, Down Arrow, Page Up, and Page Down keys on the cursor-keypad.</remarks>
			public unsafe void MoveUp(int Unit, int Count, int Extend, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[63])((ITextSelection*)Unsafe.AsPointer(ref this), Unit, Count, Extend, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="MoveDown(int, int, int, int*)"/>
			internal unsafe void MoveDown(int Unit, int Count, int Extend, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					this.MoveDown(Unit, Count, Extend, pDeltaLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT MoveDown(ITextSelection* pThis, int Unit, int Count, int Extend, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.MoveDown(Unit, Count, Extend, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Mimics the functionality of the Down Arrow and Page Down keys.</summary>
			/// <param name="Unit">
			/// <para>Type: <b>long</b> Unit to use in the operation. It can be one of the following.</para>
			/// <para></para>
			/// <para>This doc was truncated.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-movedown#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="Count">
			/// <para>Type: <b>long</b> Number of Units to move past. The default value is 1.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-movedown#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="Extend">
			/// <para>Type: <b>long</b> Flag that indicates how to change the selection. If <i>Extend</i> is zero (or <b>tomMove</b>), the method collapses the selection to an insertion point and then moves. If <i>Extend</i> is 1 (or <b>tomExtend</b>), the method moves the active end and leaves the other end alone. The default value is zero. A nonzero <i>Extend</i> value corresponds to the Shift key being pressed in addition to the key combination described in <i>Unit</i>.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-movedown#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="pDelta">
			/// <para>Type: <b>long*</b> Pointer to a variable that receives the actual count of units the insertion point or active end is moved down. Collapsing the selection counts as one unit. This parameter can be null.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-movedown#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <returns>
			/// <para>Type: <b>HRESULT</b> The method returns an <b>HRESULT</b> value. If the method succeeds, it returns <b>S_OK</b>. If the method fails, it returns one of the following error codes. For more information about COM error codes, see <a href="https://docs.microsoft.com/windows/desktop/com/error-handling-in-com">Error Handling in COM</a>. </para>
			/// <para>This doc was truncated.</para>
			/// </returns>
			/// <remarks>The <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextselection-moveup">ITextSelection::MoveUp</a> and <b>ITextSelection::MoveDown</b> methods are similar to the <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextselection-moveleft">ITextSelection::MoveLeft</a> and <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextselection-moveright">ITextSelection::MoveRight</a> methods, except that they reflect the behavior of the Up Arrow, Down Arrow, Page Up, and Page Down keys on the cursor-keypad.</remarks>
			public unsafe void MoveDown(int Unit, int Count, int Extend, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[64])((ITextSelection*)Unsafe.AsPointer(ref this), Unit, Count, Extend, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="HomeKey(winmdroot.UI.Controls.RichEdit.tomConstants, int, int*)"/>
			internal unsafe void HomeKey(winmdroot.UI.Controls.RichEdit.tomConstants Unit, int Extend, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					this.HomeKey(Unit, Extend, pDeltaLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT HomeKey(ITextSelection* pThis, winmdroot.UI.Controls.RichEdit.tomConstants Unit, int Extend, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.HomeKey(Unit, Extend, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Generalizes the functionality of the Home key.</summary>
			/// <param name="Unit">Type: <b>long</b></param>
			/// <param name="Extend">
			/// <para>Type: <b>long</b> Flag that indicates how to change the selection. If <i>Extend</i> is zero (or <b>tomMove</b>), the method collapses the selection to an insertion point. If <i>Extend</i> is 1 (or <b>tomExtend</b>), the method moves the active end and leaves the other end alone. The default value is zero.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-homekey#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="pDelta">
			/// <para>Type: <b>long*</b> Pointer to a variable that receives the count of characters that the insertion point or the active end is moved. This parameter can be null.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-homekey#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <returns>
			/// <para>Type: <b>HRESULT</b> The method returns an <b>HRESULT</b> value. If the method succeeds, it returns <b>S_OK</b>. If the method fails, it returns one of the following error codes. For more information about COM error codes, see <a href="https://docs.microsoft.com/windows/desktop/com/error-handling-in-com">Error Handling in COM</a>. </para>
			/// <para>This doc was truncated.</para>
			/// </returns>
			/// <remarks>
			/// <para>The <b>ITextSelection::HomeKey</b> and <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextselection-endkey">ITextSelection::EndKey</a> methods are used to mimic the standard Home/End key behavior. <b>tomLine</b> mimics the Home or End key behavior <i>without</i> the Ctrl key pressed, while <b>tomStory</b> mimics the behavior <i>with</i> the Ctrl key pressed. Similarly, <b>tomMove</b> mimics the Home or End key behavior <i>without</i> the Shift key pressed, while <b>tomExtend</b> mimics the behavior <i>with</i> the Shift key pressed. So <c>HomeKey(tomStory)</c> converts the selection into an insertion point at the beginning of the associated story, while <b>HomeKey</b>(tomStory, tomExtend) moves the active end of the selection to the beginning of the story and leaves the other end where it was. The <b>HomeKey</b> and <b>EndKey</b> methods are logical methods like the <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextrange-move">Move</a> methods, rather than directional methods. Thus, they depend on the language that is involved. For example, in Arabic text, <b>HomeKey</b> moves to the right end of a line, whereas in English text, it moves to the left. Thus, <b>HomeKey</b> and <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextselection-endkey">EndKey</a> methods are different than the <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextselection-moveleft">ITextSelection::MoveLeft</a> and <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextselection-moveright">ITextSelection::MoveRight</a> methods. Also, note that the <b>HomeKey</b> method is quite different from the <b>Start</b> property, which is the cp at the beginning of the selection. <b>HomeKey</b> and <b>EndKey</b> also differ from the <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextrange-startof">StartOf</a> and <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextrange-endof">EndOf</a> methods in that they extend from the active end, whereas <b>StartOf</b> extends from Start and <b>EndOf</b> extends from End.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-homekey#">Read more on docs.microsoft.com</see>.</para>
			/// </remarks>
			public unsafe void HomeKey(winmdroot.UI.Controls.RichEdit.tomConstants Unit, int Extend, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.tomConstants ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[65])((ITextSelection*)Unsafe.AsPointer(ref this), Unit, Extend, pDelta).ThrowOnFailure();
			}

			/// <inheritdoc cref="EndKey(int, int, int*)"/>
			internal unsafe void EndKey(int Unit, int Extend, out int pDelta)
			{
				fixed (int* pDeltaLocal = &pDelta)
				{
					this.EndKey(Unit, Extend, pDeltaLocal);
				}
			}

			[UnmanagedCallersOnly(CallConvs = new []{
typeof(CallConvStdcall)}
)]
			private static winmdroot.Foundation.HRESULT EndKey(ITextSelection* pThis, int Unit, int Extend, int* pDelta)
			{
				try
				{
					winmdroot.Foundation.HRESULT __hr = ComHelpers.UnwrapCCW(pThis, out Interface __object);
					if (__hr.Failed)
					{
						return __hr;
					}
					return __object.EndKey(Unit, Extend, pDelta);
				}
				catch (Exception ex)
				{
					return (winmdroot.Foundation.HRESULT)ex.HResult;
				}
			}

			/// <summary>Mimics the functionality of the End key.</summary>
			/// <param name="Unit">
			/// <para>Type: <b>long</b> Unit to use. It can be one of the following. </para>
			/// <para>This doc was truncated.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-endkey#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="Extend">
			/// <para>Type: <b>long</b> Flag that indicates how to change the selection. If <i>Extend</i> is zero (or <b>tomMove</b>), the method collapses the selection to an insertion point. If <i>Extend</i> is 1 (or <b>tomExtend</b>), the method moves the active end and leaves the other end alone. The default value is zero.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-endkey#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <param name="pDelta">
			/// <para>Type: <b>long*</b> Pointer to a variable that receives the count of characters that the insertion point or the active end is moved. This parameter can be null.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-endkey#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <returns>
			/// <para>Type: <b>HRESULT</b> The method returns an <b>HRESULT</b> value. If the method succeeds, it returns <b>S_OK</b>. If the method fails, it returns one of the following error codes. For more information about COM error codes, see <a href="https://docs.microsoft.com/windows/desktop/com/error-handling-in-com">Error Handling in COM</a>. </para>
			/// <para>This doc was truncated.</para>
			/// </returns>
			/// <remarks>
			/// <para>Setting <i>Extend</i> to <b>tomExtend</b> (or nonzero) corresponds to the Shift key being pressed. Setting <i>Unit</i> to <b>tomLine</b> corresponds to the Ctrl key not being pressed.  Setting <i>Unit</i> to <b>tomStory</b> to Ctrl being pressed. The <i>pDelta</i> parameters receives the number of characters that the insertion point or active end is moved.</para>
			/// <para>The <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextselection-homekey">ITextSelection::HomeKey</a> and <b>ITextSelection::EndKey</b> methods are used to mimic the standard Home/End key behavior. The <b>tomLine</b> value mimics the Home or End key behavior <i>without</i> the Ctrl key pressed, while <b>tomStory</b> mimics the behavior <i>with</i> the Ctrl key pressed. Similarly, <b>tomMove</b> mimics the Home or End key behavior <i>without</i> the Shift key pressed, while <b>tomExtend</b> mimics the behavior <i>with</i> the Shift key pressed. So <c>EndKey(tomStory)</code> converts the selection into an insertion point at the end of the associated story, while <code>EndKey(tomStory, tomExtend)</c> moves the active end of the selection to the end of the story and leaves the other end where it was. The <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextselection-homekey">HomeKey</a> and <b>EndKey</b> methods are logical methods like the <b>Move*</b> methods, rather than directional methods. Thus, they depend on the language that is involved. For example, in Arabic text, <b>HomeKey</b> moves to the right end of a line, whereas in English text, it moves to the left. Thus, <b>HomeKey</b> and <b>EndKey</b> are different than the <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextselection-moveleft">MoveLeft</a> and <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextselection-moveright">MoveRight</a> methods. Also, note that the <b>EndKey</b> method is quite different from the <b>End</b> property, which is the <c>cp</c> at the end of the selection. <b>HomeKey</b> and <b>EndKey</b> also differ from the <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextrange-startof">StartOf</a> and <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextrange-endof">EndOf</a> methods in that they extend from the active end, whereas <b>StartOf</b> extends from Start and <b>EndOf</b> extends from End.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-endkey#">Read more on docs.microsoft.com</see>.</para>
			/// </remarks>
			public unsafe void EndKey(int Unit, int Extend, int* pDelta)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int* ,winmdroot.Foundation.HRESULT>)lpVtbl[66])((ITextSelection*)Unsafe.AsPointer(ref this), Unit, Extend, pDelta).ThrowOnFailure();
			}

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

			/// <summary>Types the string given by bstr at this selection as if someone typed it. This is similar to the underlying SetText method, but is sensitive to the Insert/Overtype key state and UI settings like AutoCorrect and smart quotes.</summary>
			/// <param name="bstr">
			/// <para>Type: <b>BSTR</b> String to type into this selection.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-typetext#parameters">Read more on docs.microsoft.com</see>.</para>
			/// </param>
			/// <returns>
			/// <para>Type: <b>HRESULT</b> The method returns an <b>HRESULT</b> value. If the method succeeds, it returns <b>S_OK</b>. If the method fails, it returns one of the following error codes. For more information about COM error codes, see <a href="https://docs.microsoft.com/windows/desktop/com/error-handling-in-com">Error Handling in COM</a>. </para>
			/// <para>This doc was truncated.</para>
			/// </returns>
			/// <remarks>
			/// <para>This method types the string given by <i>bstr</i> at this selection as if someone typed it. Using <b>TypeText</b> is faster than sending characters through the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-sendmessage">SendMessage</a> function, but it is slower than using <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextrange-settext">SetText</a>. <b>TypeText</b> is similar to the underlying <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextrange-settext">SetText</a> method, however, it is sensitive to the Insert/Overtype key state and UI settings like AutoCorrect and smart quotes. For example, it deletes any nondegenerate selection and then inserts or overtypes (depending on the Insert/Overtype key state—see the <a href="https://docs.microsoft.com/windows/desktop/api/tom/nf-tom-itextselection-setflags">SetFlags</a> method) the string <i>bstr</i> at the insertion point, leaving this selection as an insertion point following the inserted text.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/tom/nf-tom-itextselection-typetext#">Read more on docs.microsoft.com</see>.</para>
			/// </remarks>
			public void TypeText(winmdroot.Foundation.BSTR bstr)
			{
				((delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.Foundation.BSTR ,winmdroot.Foundation.HRESULT>)lpVtbl[67])((ITextSelection*)Unsafe.AsPointer(ref this), bstr).ThrowOnFailure();
			}

			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]<ITextSelection*,global::System.Guid* ,void** ,winmdroot.Foundation.HRESULT> QueryInterface_1;

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

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

				internal delegate *unmanaged [Stdcall]<ITextSelection*,uint* ,winmdroot.Foundation.HRESULT> GetTypeInfoCount_4;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,uint ,uint ,winmdroot.System.Com.ITypeInfo** ,winmdroot.Foundation.HRESULT> GetTypeInfo_5;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,global::System.Guid* ,winmdroot.Foundation.PWSTR* ,uint ,uint ,int* ,winmdroot.Foundation.HRESULT> GetIDsOfNames_6;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,global::System.Guid* ,uint ,winmdroot.System.Com.DISPATCH_FLAGS ,winmdroot.System.Com.DISPPARAMS* ,winmdroot.System.Variant.VARIANT* ,winmdroot.System.Com.EXCEPINFO* ,uint* ,winmdroot.Foundation.HRESULT> Invoke_7;

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

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

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT> GetChar_10;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,winmdroot.Foundation.HRESULT> SetChar_11;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextRange** ,winmdroot.Foundation.HRESULT> GetDuplicate_12;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextRange** ,winmdroot.Foundation.HRESULT> GetFormattedText_13;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextRange* ,winmdroot.Foundation.HRESULT> SetFormattedText_14;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT> GetStart_15;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,winmdroot.Foundation.HRESULT> SetStart_16;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT> GetEnd_17;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,winmdroot.Foundation.HRESULT> SetEnd_18;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextFont** ,winmdroot.Foundation.HRESULT> GetFont_19;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextFont* ,winmdroot.Foundation.HRESULT> SetFont_20;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextPara** ,winmdroot.Foundation.HRESULT> GetPara_21;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextPara* ,winmdroot.Foundation.HRESULT> SetPara_22;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT> GetStoryLength_23;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT> GetStoryType_24;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,winmdroot.Foundation.HRESULT> Collapse_25;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int* ,winmdroot.Foundation.HRESULT> Expand_26;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int* ,winmdroot.Foundation.HRESULT> GetIndex_27;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int ,winmdroot.Foundation.HRESULT> SetIndex_28;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,winmdroot.Foundation.HRESULT> SetRange_29;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextRange* ,int* ,winmdroot.Foundation.HRESULT> InRange_30;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextRange* ,int* ,winmdroot.Foundation.HRESULT> InStory_31;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.ITextRange* ,int* ,winmdroot.Foundation.HRESULT> IsEqual_32;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.Foundation.HRESULT> Select_33;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int* ,winmdroot.Foundation.HRESULT> StartOf_34;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int* ,winmdroot.Foundation.HRESULT> EndOf_35;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int* ,winmdroot.Foundation.HRESULT> Move_36;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int* ,winmdroot.Foundation.HRESULT> MoveStart_37;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int* ,winmdroot.Foundation.HRESULT> MoveEnd_38;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,int* ,winmdroot.Foundation.HRESULT> MoveWhile_39;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,int* ,winmdroot.Foundation.HRESULT> MoveStartWhile_40;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,int* ,winmdroot.Foundation.HRESULT> MoveEndWhile_41;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,int* ,winmdroot.Foundation.HRESULT> MoveUntil_42;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,int* ,winmdroot.Foundation.HRESULT> MoveStartUntil_43;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,int* ,winmdroot.Foundation.HRESULT> MoveEndUntil_44;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.Foundation.BSTR ,int ,winmdroot.UI.Controls.RichEdit.tomConstants ,int* ,winmdroot.Foundation.HRESULT> FindText_45;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.Foundation.BSTR ,int ,winmdroot.UI.Controls.RichEdit.tomConstants ,int* ,winmdroot.Foundation.HRESULT> FindTextStart_46;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.Foundation.BSTR ,int ,winmdroot.UI.Controls.RichEdit.tomConstants ,int* ,winmdroot.Foundation.HRESULT> FindTextEnd_47;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int* ,winmdroot.Foundation.HRESULT> Delete_48;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,winmdroot.Foundation.HRESULT> Cut_49;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,winmdroot.Foundation.HRESULT> Copy_50;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,winmdroot.Foundation.HRESULT> Paste_51;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Variant.VARIANT* ,int ,int* ,winmdroot.Foundation.HRESULT> CanPaste_52;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT> CanEdit_53;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.tomConstants ,winmdroot.Foundation.HRESULT> ChangeCase_54;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.tomConstants ,int* ,int* ,winmdroot.Foundation.HRESULT> GetPoint_55;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,winmdroot.UI.Controls.RichEdit.tomConstants ,int ,winmdroot.Foundation.HRESULT> SetPoint_56;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,winmdroot.Foundation.HRESULT> ScrollIntoView_57;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.System.Com.IUnknown** ,winmdroot.Foundation.HRESULT> GetEmbeddedObject_58;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT> GetFlags_59;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,winmdroot.Foundation.HRESULT> SetFlags_60;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int* ,winmdroot.Foundation.HRESULT> GetType_61;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int ,int* ,winmdroot.Foundation.HRESULT> MoveLeft_62;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int ,int* ,winmdroot.Foundation.HRESULT> MoveRight_63;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int ,int* ,winmdroot.Foundation.HRESULT> MoveUp_64;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int ,int* ,winmdroot.Foundation.HRESULT> MoveDown_65;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.UI.Controls.RichEdit.tomConstants ,int ,int* ,winmdroot.Foundation.HRESULT> HomeKey_66;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,int ,int ,int* ,winmdroot.Foundation.HRESULT> EndKey_67;

				internal delegate *unmanaged [Stdcall]<ITextSelection*,winmdroot.Foundation.BSTR ,winmdroot.Foundation.HRESULT> TypeText_68;
			} 
			public static void PopulateVTable(Vtbl* vtable)
			{
				vtable->GetText_8 = &GetText;
				vtable->SetText_9 = &SetText;
				vtable->GetChar_10 = &GetChar;
				vtable->SetChar_11 = &SetChar;
				vtable->GetDuplicate_12 = &GetDuplicate;
				vtable->GetFormattedText_13 = &GetFormattedText;
				vtable->SetFormattedText_14 = &SetFormattedText;
				vtable->GetStart_15 = &GetStart;
				vtable->SetStart_16 = &SetStart;
				vtable->GetEnd_17 = &GetEnd;
				vtable->SetEnd_18 = &SetEnd;
				vtable->GetFont_19 = &GetFont;
				vtable->SetFont_20 = &SetFont;
				vtable->GetPara_21 = &GetPara;
				vtable->SetPara_22 = &SetPara;
				vtable->GetStoryLength_23 = &GetStoryLength;
				vtable->GetStoryType_24 = &GetStoryType;
				vtable->Collapse_25 = &Collapse;
				vtable->Expand_26 = &Expand;
				vtable->GetIndex_27 = &GetIndex;
				vtable->SetIndex_28 = &SetIndex;
				vtable->SetRange_29 = &SetRange;
				vtable->InRange_30 = &InRange;
				vtable->InStory_31 = &InStory;
				vtable->IsEqual_32 = &IsEqual;
				vtable->Select_33 = &Select;
				vtable->StartOf_34 = &StartOf;
				vtable->EndOf_35 = &EndOf;
				vtable->Move_36 = &Move;
				vtable->MoveStart_37 = &MoveStart;
				vtable->MoveEnd_38 = &MoveEnd;
				vtable->MoveWhile_39 = &MoveWhile;
				vtable->MoveStartWhile_40 = &MoveStartWhile;
				vtable->MoveEndWhile_41 = &MoveEndWhile;
				vtable->MoveUntil_42 = &MoveUntil;
				vtable->MoveStartUntil_43 = &MoveStartUntil;
				vtable->MoveEndUntil_44 = &MoveEndUntil;
				vtable->FindText_45 = &FindText;
				vtable->FindTextStart_46 = &FindTextStart;
				vtable->FindTextEnd_47 = &FindTextEnd;
				vtable->Delete_48 = &Delete;
				vtable->Cut_49 = &Cut;
				vtable->Copy_50 = &Copy;
				vtable->Paste_51 = &Paste;
				vtable->CanPaste_52 = &CanPaste;
				vtable->CanEdit_53 = &CanEdit;
				vtable->ChangeCase_54 = &ChangeCase;
				vtable->GetPoint_55 = &GetPoint;
				vtable->SetPoint_56 = &SetPoint;
				vtable->ScrollIntoView_57 = &ScrollIntoView;
				vtable->GetEmbeddedObject_58 = &GetEmbeddedObject;
				vtable->GetFlags_59 = &GetFlags;
				vtable->SetFlags_60 = &SetFlags;
				vtable->GetType_61 = &GetType;
				vtable->MoveLeft_62 = &MoveLeft;
				vtable->MoveRight_63 = &MoveRight;
				vtable->MoveUp_64 = &MoveUp;
				vtable->MoveDown_65 = &MoveDown;
				vtable->HomeKey_66 = &HomeKey;
				vtable->EndKey_67 = &EndKey;
				vtable->TypeText_68 = &TypeText;
			}

			private void** lpVtbl;

			/// <summary>The IID guid for this interface.</summary>
			/// <value>{8cc497c1-a1df-11ce-8098-00aa0047be5d}</value>
			internal static readonly Guid IID_Guid = new Guid(0x8CC497C1, 0xA1DF, 0x11CE, 0x80, 0x98, 0x00, 0xAA, 0x00, 0x47, 0xBE, 0x5D);

			static ref readonly Guid IComIID.Guid			{
								[MethodImpl(MethodImplOptions.AggressiveInlining)]
get
				{
					ReadOnlySpan<byte> data = new byte[]					{
0xC1,0x97,0xC4,0x8C,0xDF,0xA1,0xCE,0x11,0x80,0x98,0x00,0xAA,0x00,0x47,0xBE,0x5D					};
					return ref Unsafe.As<byte,Guid>(ref MemoryMarshal.GetReference(data));
				}
			}
			[Guid("8CC497C1-A1DF-11CE-8098-00AA0047BE5D"),InterfaceType(ComInterfaceType.InterfaceIsDual),ComImport()]
			[SupportedOSPlatform("windows6.0.6000")]
			internal interface Interface
				:winmdroot.UI.Controls.RichEdit.ITextRange.Interface			{
				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT GetText(winmdroot.Foundation.BSTR* pbstr);

				[PreserveSig()]
				new winmdroot.Foundation.HRESULT SetText(winmdroot.Foundation.BSTR bstr);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT GetChar(int* pChar);

				[PreserveSig()]
				new winmdroot.Foundation.HRESULT SetChar(int Char);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT GetDuplicate(winmdroot.UI.Controls.RichEdit.ITextRange** ppRange);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT GetFormattedText(winmdroot.UI.Controls.RichEdit.ITextRange** ppRange);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT SetFormattedText([Optional] winmdroot.UI.Controls.RichEdit.ITextRange* pRange);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT GetStart(int* pcpFirst);

				[PreserveSig()]
				new winmdroot.Foundation.HRESULT SetStart(int cpFirst);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT GetEnd(int* pcpLim);

				[PreserveSig()]
				new winmdroot.Foundation.HRESULT SetEnd(int cpLim);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT GetFont(winmdroot.UI.Controls.RichEdit.ITextFont** ppFont);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT SetFont([Optional] winmdroot.UI.Controls.RichEdit.ITextFont* pFont);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT GetPara(winmdroot.UI.Controls.RichEdit.ITextPara** ppPara);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT SetPara([Optional] winmdroot.UI.Controls.RichEdit.ITextPara* pPara);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT GetStoryLength(int* pCount);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT GetStoryType(int* pValue);

				[PreserveSig()]
				new winmdroot.Foundation.HRESULT Collapse(int bStart);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT Expand(int Unit, int* pDelta);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT GetIndex(int Unit, int* pIndex);

				[PreserveSig()]
				new winmdroot.Foundation.HRESULT SetIndex(int Unit, int Index, int Extend);

				[PreserveSig()]
				new winmdroot.Foundation.HRESULT SetRange(int cpAnchor, int cpActive);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT InRange([Optional] winmdroot.UI.Controls.RichEdit.ITextRange* pRange, int* pValue);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT InStory([Optional] winmdroot.UI.Controls.RichEdit.ITextRange* pRange, int* pValue);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT IsEqual([Optional] winmdroot.UI.Controls.RichEdit.ITextRange* pRange, int* pValue);

				[PreserveSig()]
				new winmdroot.Foundation.HRESULT Select();

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT StartOf(int Unit, int Extend, int* pDelta);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT EndOf(int Unit, int Extend, int* pDelta);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT Move(int Unit, int Count, int* pDelta);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT MoveStart(int Unit, int Count, int* pDelta);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT MoveEnd(int Unit, int Count, int* pDelta);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT MoveWhile(winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT MoveStartWhile(winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT MoveEndWhile(winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT MoveUntil(winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT MoveStartUntil(winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT MoveEndUntil(winmdroot.System.Variant.VARIANT* Cset, int Count, int* pDelta);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT FindText(winmdroot.Foundation.BSTR bstr, int Count, winmdroot.UI.Controls.RichEdit.tomConstants Flags, int* pLength);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT FindTextStart(winmdroot.Foundation.BSTR bstr, int Count, winmdroot.UI.Controls.RichEdit.tomConstants Flags, int* pLength);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT FindTextEnd(winmdroot.Foundation.BSTR bstr, int Count, winmdroot.UI.Controls.RichEdit.tomConstants Flags, int* pLength);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT Delete(int Unit, int Count, int* pDelta);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT Cut(winmdroot.System.Variant.VARIANT* pVar);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT Copy(winmdroot.System.Variant.VARIANT* pVar);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT Paste(winmdroot.System.Variant.VARIANT* pVar, int Format);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT CanPaste(winmdroot.System.Variant.VARIANT* pVar, int Format, int* pValue);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT CanEdit(int* pValue);

				[PreserveSig()]
				new winmdroot.Foundation.HRESULT ChangeCase(winmdroot.UI.Controls.RichEdit.tomConstants Type);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT GetPoint(winmdroot.UI.Controls.RichEdit.tomConstants Type, int* px, int* py);

				[PreserveSig()]
				new winmdroot.Foundation.HRESULT SetPoint(int x, int y, winmdroot.UI.Controls.RichEdit.tomConstants Type, int Extend);

				[PreserveSig()]
				new winmdroot.Foundation.HRESULT ScrollIntoView(int Value);

				[PreserveSig()]
				unsafe new winmdroot.Foundation.HRESULT GetEmbeddedObject(winmdroot.System.Com.IUnknown** ppObject);

				[PreserveSig()]
				unsafe winmdroot.Foundation.HRESULT GetFlags(int* pFlags);

								[PreserveSig()]
winmdroot.Foundation.HRESULT SetFlags(int Flags);

				[PreserveSig()]
				unsafe winmdroot.Foundation.HRESULT GetType(int* pType);

				[PreserveSig()]
				unsafe winmdroot.Foundation.HRESULT MoveLeft(int Unit, int Count, int Extend, int* pDelta);

				[PreserveSig()]
				unsafe winmdroot.Foundation.HRESULT MoveRight(int Unit, int Count, int Extend, int* pDelta);

				[PreserveSig()]
				unsafe winmdroot.Foundation.HRESULT MoveUp(int Unit, int Count, int Extend, int* pDelta);

				[PreserveSig()]
				unsafe winmdroot.Foundation.HRESULT MoveDown(int Unit, int Count, int Extend, int* pDelta);

				[PreserveSig()]
				unsafe winmdroot.Foundation.HRESULT HomeKey(winmdroot.UI.Controls.RichEdit.tomConstants Unit, int Extend, int* pDelta);

				[PreserveSig()]
				unsafe winmdroot.Foundation.HRESULT EndKey(int Unit, int Extend, int* pDelta);

								[PreserveSig()]
winmdroot.Foundation.HRESULT TypeText(winmdroot.Foundation.BSTR bstr);
			}
		}
	}
}