[ComImport,
InterfaceType(ComInterfaceType.InterfaceIsIUnknown),
Guid("f86ad89f-5fe4-4b8d-bb9f-ef3797a84f1f")
]
public interface ITextStoreACP2
{
/// <summary>
/// ITextStoreACP2::AdviseSink
/// </summary>
/// <param name="i_riid"></param>
/// <param name="i_unknown"></param>
/// <param name="i_mask"></param>
void AdviseSink(
[In] ref Guid i_riid,
[In, MarshalAs(UnmanagedType.Interface)] object i_unknown,
[In] AdviseFlags i_mask
);
/// <summary>
/// ITextStoreACP2::UnadviseSink
/// </summary>
/// <param name="i_unknown"></param>
void UnadviseSink(
[In, MarshalAs(UnmanagedType.Interface)] object i_unknown
);
/// <summary>
/// ITextStoreACP2::RequestLock
/// </summary>
/// <param name="i_lockFlags"></param>
/// <param name="o_sessionResult"></param>
void RequestLock(
[In] LockFlags i_lockFlags,
[Out, MarshalAs(UnmanagedType.Error)] out int o_sessionResult
);
/// <summary>
/// ITextStoreACP2::GetStatus
/// </summary>
/// <param name="o_documentStatus"></param>
void GetStatus(
[Out] out TS_STATUS o_documentStatus
);
/// <summary>
/// ITextStoreACP2::QueryInsert
/// </summary>
/// <param name="i_startIndex"></param>
/// <param name="i_endIndex"></param>
/// <param name="i_length"></param>
/// <param name="o_startIndex"></param>
/// <param name="o_endIndex"></param>
void QueryInsert(
[In] int i_startIndex,
[In] int i_endIndex,
[In] int i_length,
[Out] out int o_startIndex,
[Out] out int o_endIndex
);
/// <summary>
/// ITextStoreACP2::GetSelection
/// </summary>
/// <param name="i_index"></param>
/// <param name="i_selectionBufferLength"></param>
/// <param name="o_selections"></param>
/// <param name="o_fetchedLength"></param>
void GetSelection(
[In] int i_index,
[In] int i_selectionBufferLength,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] TS_SELECTION_ACP[] o_selections,
out int o_fetchedLength
);
/// <summary>
/// ITextStoreACP2::SetSelection
/// </summary>
/// <param name="i_count"></param>
/// <param name="i_selections"></param>
void SetSelection(
[In] int i_count,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] TS_SELECTION_ACP[] i_selections
);
/// <summary>
/// ITextStoreACP2::GetText
/// </summary>
/// <param name="i_startIndex"></param>
/// <param name="i_endIndex"></param>
/// <param name="o_plainText"></param>
/// <param name="i_plainTextLength"></param>
/// <param name="o_plainTextLength"></param>
/// <param name="o_runInfos"></param>
/// <param name="i_runInfoLength"></param>
/// <param name="o_runInfoLength"></param>
/// <param name="o_nextUnreadCharPos"></param>
void GetText(
[In] int i_startIndex,
[In] int i_endIndex,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] char[] o_plainText,
[In] int i_plainTextLength,
[Out] out int o_plainTextLength,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 6)] TS_RUNINFO[] o_runInfos,
[In] int i_runInfoLength,
[Out] out int o_runInfoLength,
[Out] out int o_nextUnreadCharPos
);
/// <summary>
/// ITextStoreACP2::SetText
/// </summary>
/// <param name="i_flags"></param>
/// <param name="i_startIndex"></param>
/// <param name="i_endIndex"></param>
/// <param name="i_text"></param>
/// <param name="i_length"></param>
/// <param name="o_textChange"></param>
void SetText(
[In] SetTextFlags i_flags,
[In] int i_startIndex,
[In] int i_endIndex,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 4)] char[] i_text,
[In] int i_length,
[Out] out TS_TEXTCHANGE o_textChange
);
/// <summary>
/// ITextStoreACP2::GetFormattedText
/// </summary>
/// <param name="i_start"></param>
/// <param name="i_end"></param>
/// <param name="o_obj"></param>
void GetFormattedText(
[In] int i_start,
[In] int i_end,
[Out, MarshalAs(UnmanagedType.Interface)] out object o_obj
);
/// <summary>
/// ITextStoreACP2::GetEmbedded
/// </summary>
/// <param name="i_position"></param>
/// <param name="i_guidService"></param>
/// <param name="i_riid"></param>
/// <param name="o_obj"></param>
void GetEmbedded(
[In] int i_position,
[In] ref Guid i_guidService,
[In] ref Guid i_riid,
[Out, MarshalAs(UnmanagedType.Interface)] out object o_obj
);
/// <summary>
/// ITextStoreACP2::QueryInsertEmbedded
/// </summary>
/// <param name="i_guidService"></param>
/// <param name="i_formatEtc"></param>
/// <param name="o_insertable"></param>
void QueryInsertEmbedded(
[In] ref Guid i_guidService,
[In] int i_formatEtc,
[Out, MarshalAs(UnmanagedType.Bool)] out bool o_insertable
);
/// <summary>
/// ITextStoreACP2::InsertEmbedded
/// </summary>
/// <param name="i_flags"></param>
/// <param name="i_start"></param>
/// <param name="i_end"></param>
/// <param name="i_obj"></param>
/// <param name="o_textChange"></param>
void InsertEmbedded(
[In] InsertEmbeddedFlags i_flags,
[In] int i_start,
[In] int i_end,
[In, MarshalAs(UnmanagedType.Interface)] object i_obj,
[Out] out TS_TEXTCHANGE o_textChange
);
/// <summary>
/// ITextStoreACP2::InsertTextAtSelection
/// </summary>
/// <param name="i_flags"></param>
/// <param name="i_text"></param>
/// <param name="i_length"></param>
/// <param name="o_startIndex"></param>
/// <param name="o_endIndex"></param>
/// <param name="o_textChange"></param>
void InsertTextAtSelection(
[In] InsertAtSelectionFlags i_flags,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] char[] i_text,
[In] int i_length,
[Out] out int o_startIndex,
[Out] out int o_endIndex,
[Out] out TS_TEXTCHANGE o_textChange
);
/// <summary>
/// ITextStoreACP2::InsertEmbeddedAtSelection
/// </summary>
/// <param name="flags"></param>
/// <param name="obj"></param>
/// <param name="start"></param>
/// <param name="end"></param>
/// <param name="change"></param>
void InsertEmbeddedAtSelection(
InsertAtSelectionFlags flags,
[MarshalAs(UnmanagedType.Interface)] object obj,
out int start,
out int end,
out TS_TEXTCHANGE change
);
/// <summary>
/// ITextStoreACP2::RequestSupportedAttrs
/// </summary>
/// <param name="i_flags"></param>
/// <param name="i_length"></param>
/// <param name="i_filterAttributes"></param>
void RequestSupportedAttrs(
[In] AttributeFlags i_flags,
[In] int i_length,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] Guid[] i_filterAttributes
);
/// <summary>
/// ITextStoreACP2::RequestAttrsAtPosition
/// </summary>
/// <param name="i_position"></param>
/// <param name="i_length"></param>
/// <param name="i_filterAttributes"></param>
/// <param name="i_flags"></param>
void RequestAttrsAtPosition(
[In] int i_position,
[In] int i_length,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] Guid[] i_filterAttributes,
[In] AttributeFlags i_flags
);
/// <summary>
/// ITextStoreACP2::RequestAttrsTransitioningAtPosition
/// </summary>
/// <param name="i_position"></param>
/// <param name="i_length"></param>
/// <param name="i_filterAttributes"></param>
/// <param name="i_flags"></param>
void RequestAttrsTransitioningAtPosition(
[In] int i_position,
[In] int i_length,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] Guid[] i_filterAttributes,
[In] AttributeFlags i_flags
);
/// <summary>
/// ITextStoreACP2::FindNextAttrTransition
/// </summary>
/// <param name="i_start"></param>
/// <param name="i_halt"></param>
/// <param name="i_length"></param>
/// <param name="i_filterAttributes"></param>
/// <param name="i_flags"></param>
/// <param name="o_nextIndex"></param>
/// <param name="o_found"></param>
/// <param name="o_foundOffset"></param>
void FindNextAttrTransition(
[In] int i_start,
[In] int i_halt,
[In] int i_length,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] Guid[] i_filterAttributes,
[In] AttributeFlags i_flags,
[Out] out int o_nextIndex,
[Out, MarshalAs(UnmanagedType.Bool)] out bool o_found,
[Out] out int o_foundOffset
);
/// <summary>
/// ITextStoreACP2::RetrieveRequestedAttrs
/// </summary>
/// <param name="i_length"></param>
/// <param name="o_attributeVals"></param>
/// <param name="o_fetchedLength"></param>
void RetrieveRequestedAttrs(
[In] int i_length,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] TS_ATTRVAL[] o_attributeVals,
[Out] out int o_fetchedLength
);
/// <summary>
/// ITextStoreACP2::GetEndACP
/// </summary>
/// <param name="o_length"></param>
void GetEndACP(
[Out] out int o_length
);
/// <summary>
/// ITextStoreACP2::GetActiveView
/// </summary>
/// <param name="o_viewCookie"></param>
void GetActiveView(
[Out] out int o_viewCookie
);
/// <summary>
/// ITextStoreACP2::GetACPFromPoint
/// </summary>
/// <param name="i_viewCookie"></param>
/// <param name="i_point"></param>
/// <param name="i_flags"></param>
/// <param name="o_index"></param>
void GetACPFromPoint(
[In] int i_viewCookie,
[In] ref POINT i_point,
[In] GetPositionFromPointFlags i_flags,
[Out] out int o_index
);
/// <summary>
/// ITextStoreACP2::GetTextExt
/// </summary>
/// <param name="i_viewCookie"></param>
/// <param name="i_startIndex"></param>
/// <param name="i_endIndex"></param>
/// <param name="o_rect"></param>
/// <param name="o_isClipped"></param>
void GetTextExt(
[In] int i_viewCookie,
[In] int i_startIndex,
[In] int i_endIndex,
[Out] out RECT o_rect,
[MarshalAs(UnmanagedType.Bool)] out bool o_isClipped
);
/// <summary>
/// ITextStoreACP2::GetScreenExt
/// </summary>
/// <param name="i_viewCookie"></param>
/// <param name="o_rect"></param>
void GetScreenExt(
[In] int i_viewCookie,
[Out] out RECT o_rect
);
}