diff --git a/include/mshtml.idl b/include/mshtml.idl index cbef72e3647..e202dfff1ae 100644 --- a/include/mshtml.idl +++ b/include/mshtml.idl @@ -419,6 +419,9 @@ interface IDisplayServices; interface ILineInfo; interface IMarkupPointer; interface IMarkupContainer; +interface ISegmentList; +interface IHTMLChangeLog; +interface IHTMLChangeSink; interface ISVGSVGElement; interface IHTMLDOMRange; @@ -28133,40 +28136,165 @@ interface IDisplayServices : IUnknown interface IMarkupServices : IUnknown { HRESULT CreateMarkupPointer([out] IMarkupPointer **ppPointer); + HRESULT CreateMarkupContainer([out] IMarkupContainer **ppMarkupContainer); - HRESULT CreateElement([in] ELEMENT_TAG_ID tagID,[in] OLECHAR *pchAttributes,[out] IHTMLElement **ppElement); - HRESULT CloneElement([in] IHTMLElement *pElemCloneThis,[out] IHTMLElement **ppElementTheClone); - HRESULT InsertElement([in] IHTMLElement *pElementInsert,[in] IMarkupPointer *pPointerStart,[in] IMarkupPointer *pPointerFinish); + + HRESULT CreateElement( + [in] ELEMENT_TAG_ID tagID, + [in] OLECHAR *pchAttributes, + [out] IHTMLElement **ppElement); + + HRESULT CloneElement( + [in] IHTMLElement *pElemCloneThis, + [out] IHTMLElement **ppElementTheClone); + + HRESULT InsertElement( + [in] IHTMLElement *pElementInsert, + [in] IMarkupPointer *pPointerStart, + [in] IMarkupPointer *pPointerFinish); + HRESULT RemoveElement([in] IHTMLElement *pElementRemove); - HRESULT Remove([in] IMarkupPointer *pPointerStart,[in] IMarkupPointer *pPointerFinish); - HRESULT Copy([in] IMarkupPointer *pPointerSourceStart,[in] IMarkupPointer *pPointerSourceFinish,[in] IMarkupPointer *pPointerTarget); - HRESULT Move([in] IMarkupPointer *pPointerSourceStart,[in] IMarkupPointer *pPointerSourceFinish,[in] IMarkupPointer *pPointerTarget); - HRESULT InsertText([in] OLECHAR *pchText,[in] long cch,[in] IMarkupPointer *pPointerTarget); - HRESULT ParseString([in] OLECHAR *pchHTML,[in] DWORD dwFlags,[out] IMarkupContainer **ppContainerResult,[in] IMarkupPointer *ppPointerStart,[in] IMarkupPointer *ppPointerFinish); - HRESULT ParseGlobal([in] HGLOBAL hglobalHTML,[in] DWORD dwFlags,[out] IMarkupContainer **ppContainerResult,[in] IMarkupPointer *pPointerStart,[in] IMarkupPointer *pPointerFinish); - HRESULT IsScopedElement([in] IHTMLElement *pElement,[out] BOOL *pfScoped); - HRESULT GetElementTagId([in] IHTMLElement *pElement,[out] ELEMENT_TAG_ID *ptagId); - HRESULT GetTagIDForName([in] BSTR bstrName,[out] ELEMENT_TAG_ID *ptagId); - HRESULT GetNameForTagID([in] ELEMENT_TAG_ID tagId,[out] BSTR *pbstrName); - HRESULT MovePointersToRange([in] IHTMLTxtRange *pIRange,[in] IMarkupPointer *pPointerStart,[in] IMarkupPointer *pPointerFinish); - HRESULT MoveRangeToPointers([in] IMarkupPointer *pPointerStart,[in] IMarkupPointer *pPointerFinish,[in] IHTMLTxtRange *pIRange); + + HRESULT Remove( + [in] IMarkupPointer *pPointerStart, + [in] IMarkupPointer *pPointerFinish); + + HRESULT Copy( + [in] IMarkupPointer *pPointerSourceStart, + [in] IMarkupPointer *pPointerSourceFinish, + [in] IMarkupPointer *pPointerTarget); + + HRESULT Move( + [in] IMarkupPointer *pPointerSourceStart, + [in] IMarkupPointer *pPointerSourceFinish, + [in] IMarkupPointer *pPointerTarget); + + HRESULT InsertText( + [in] OLECHAR *pchText, + [in] long cch, + [in] IMarkupPointer *pPointerTarget); + + HRESULT ParseString( + [in] OLECHAR *pchHTML, + [in] DWORD dwFlags, + [out] IMarkupContainer **ppContainerResult, + [in] IMarkupPointer *ppPointerStart, + [in] IMarkupPointer *ppPointerFinish); + + HRESULT ParseGlobal( + [in] HGLOBAL hglobalHTML, + [in] DWORD dwFlags, + [out] IMarkupContainer **ppContainerResult, + [in] IMarkupPointer *pPointerStart, + [in] IMarkupPointer *pPointerFinish); + + HRESULT IsScopedElement( + [in] IHTMLElement *pElement, + [out] BOOL *pfScoped); + + HRESULT GetElementTagId( + [in] IHTMLElement *pElement, + [out] ELEMENT_TAG_ID *ptagId); + + HRESULT GetTagIDForName( + [in] BSTR bstrName, + [out] ELEMENT_TAG_ID *ptagId); + + HRESULT GetNameForTagID( + [in] ELEMENT_TAG_ID tagId, + [out] BSTR *pbstrName); + + HRESULT MovePointersToRange( + [in] IHTMLTxtRange *pIRange, + [in] IMarkupPointer *pPointerStart, + [in] IMarkupPointer *pPointerFinish); + + HRESULT MoveRangeToPointers( + [in] IMarkupPointer *pPointerStart, + [in] IMarkupPointer *pPointerFinish, + [in] IHTMLTxtRange *pIRange); + HRESULT BeginUndoUnit([in] OLECHAR *pchTitle); + HRESULT EndUndoUnit(); }; +/***************************************************************************** + * IMarkupServices2 interface + */ +[ + object, + pointer_default(unique), + uuid(3050f682-98b5-11cf-bb82-00aa00bdce0b) +] +interface IMarkupServices2 : IMarkupServices +{ + HRESULT ParseGlobalEx( + [in] HGLOBAL hglobalHTML, + [in] DWORD dwFlags, + [in] IMarkupContainer *pContext, + [out] IMarkupContainer **ppContainerResult, + [in] IMarkupPointer *pPointerStart, + [in] IMarkupPointer *pPointerFinish); + + HRESULT ValidateElements( + [in] IMarkupPointer *pPointerStart, + [in] IMarkupPointer *pPointerFinish, + [in] IMarkupPointer *pPointerTarget, + [in, out] IMarkupPointer *pPointerStatus, + [out] IHTMLElement **ppElemFailBotton, + [out] IHTMLElement **ppElemFailTop); + + HRESULT SaveSegmentsToClipboard( + [in] ISegmentList *pSegmentList, + [in] DWORD dwFlags); +}; + /***************************************************************************** * IMarkupContainer interface */ [ object, pointer_default(unique), - uuid(3050f5f9-98b5-11cf-bb82-00aa00bdce0B) + uuid(3050f5f9-98b5-11cf-bb82-00aa00bdce0b) ] interface IMarkupContainer : IUnknown { HRESULT OwningDoc([out] IHTMLDocument2 **ppDoc); } +/***************************************************************************** + * IMarkupContainer2 interface + */ +[ + object, + pointer_default(unique), + uuid(3050f648-98b5-11cf-bb82-00aa00bdce0b) +] +interface IMarkupContainer2 : IMarkupContainer +{ + HRESULT CreateChangeLog( + [in] IHTMLChangeSink *pChangeSink, + [out] IHTMLChangeLog **ppChangeLog, + [in] BOOL fforward, + [in] BOOL fBackward); + + HRESULT RegisterForDirtyRange( + [in] IHTMLChangeSink *pChangeSink, + [out] DWORD *pdwCookie); + + HRESULT UnRegisterForDirtyRange([in] DWORD dwCookie); + + HRESULT GetAndClearDirtyRange( + [in] DWORD dwCookie, + [in] IMarkupPointer *pIPointerBegin, + [in] IMarkupPointer *pIPointerEnd); + + long GetVersionNumber(); + + HRESULT GetMasterElement([out] IHTMLElement **ppElementMaster); +} + /***************************************************************************** * IMarkupPointer interface */ @@ -28248,6 +28376,92 @@ interface IMarkupPointer : IUnknown [in] IMarkupPointer *pIEndSearch); } +/***************************************************************************** + * IMarkupPointer2 interface + */ +[ + object, + pointer_default(unique), + uuid(3050f675-98b5-11cf-bb82-00aa00bdce0b) +] +interface IMarkupPointer2 : IMarkupPointer +{ + HRESULT IsAtWordBreak([out] BOOL *pfAtBreak); + + HRESULT GetMarkupPosition([out] long *plMP); + + HRESULT MoveToMarkupPosition( + [in] IMarkupContainer *pContainer, + [in] long lMP); + + HRESULT IsInsideURL( + [in] IMarkupPointer *pRight, + [out] BOOL *pfResult); + + HRESULT MoveToContent( + [in] IHTMLElement *pIElement, + [out] BOOL fAtStart); +} + +/***************************************************************************** + * IMarkupPointer2 interface + */ +[ + object, + pointer_default(unique), + uuid(3050f5fa-98b5-11cf-bb82-00aa00bdce0b) +] +interface IMarkupTextFrags : IUnknown +{ + HRESULT GetTextFragCount([out] long *pcFrags); + + HRESULT GetTextFrag( + [in] long iFrag, + [out] BSTR *pbstrFrag, + [in] IMarkupPointer *pPointerTag); + + HRESULT RemoveTextFrag([in] long iFrag); + + HRESULT InsertTextFrag( + [in] long iFrag, + [in] BSTR bstrInsert, + [in] IMarkupPointer *pPointerInsert); + + HRESULT FindTextFragFromMarkupPointer( + [in] IMarkupPointer *pPointerFind, + [out] long *piFrag, + [out] BOOL *pfFragFound); +} + +/***************************************************************************** + * IHTMLChangeLog interface + */ +[ + object, + pointer_default(unique), + uuid(3050f649-98b5-11cf-bb82-00aa00bdce0b) +] +interface IHTMLChangeLog : IUnknown +{ + HRESULT GetNextChange( + [in] BYTE *pbBuffer, + [in] long nBufferSize, + [out] long *pnRecordLength); +} + +/***************************************************************************** + * IHTMLChangeSink interface + */ +[ + object, + pointer_default(unique), + uuid(3050f64a-98b5-11cf-bb82-00aa00bdce0b) +] +interface IHTMLChangeSink : IUnknown +{ + HRESULT Notify(); +} + /***************************************************************************** * IHTMLDOMConstructorCollection interface */ @@ -28607,6 +28821,42 @@ interface ISegment : IUnknown [in] IMarkupPointer *pIEnd); } +/***************************************************************************** + * ISegmentListIterator interface + */ +[ + object, + pointer_default(unique), + uuid(3050f692-98b5-11cf-bb82-00aa00bdce0b) +] +interface ISegmentListIterator : IUnknown +{ + HRESULT Current([out] ISegment **ppISegment); + + HRESULT First(); + + HRESULT IsDone(); + + HRESULT Advance(); +} + +/***************************************************************************** + * ISegmentList interface + */ +[ + object, + pointer_default(unique), + uuid(3050f605-98b5-11cf-bb82-00aa00bdce0b) +] +interface ISegmentList : IUnknown +{ + HRESULT CreateIterator([out] ISegmentListIterator **ppIIter); + + HRESULT GetType([out] SELECTION_TYPE *peType); + + HRESULT IsEmpty([out] BOOL *peType); +} + /***************************************************************************** * IElementSegment interface */