From 174cc24fd6a470292fed0d18efd385d80cc1c267 Mon Sep 17 00:00:00 2001 From: Konstantin Kondratyuk Date: Mon, 24 Nov 2008 12:54:23 +0300 Subject: [PATCH] include: Add new interfaces to mshtml.idl. --- include/mshtml.idl | 294 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 294 insertions(+) diff --git a/include/mshtml.idl b/include/mshtml.idl index 680748b84e..8bf3efa2f9 100644 --- a/include/mshtml.idl +++ b/include/mshtml.idl @@ -1,5 +1,6 @@ /* * Copyright 2004-2007 Jacek Caban for CodeWeavers + * Copyright 2008 Konstantin Kondratyuk (Etersoft) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -32,6 +33,61 @@ cpp_quote("DEFINE_GUID(SID_SHTMLEditServices, 0x3050f7f9,0x98b5,0x11cf,0xbb,0x cpp_quote("#define SID_SHTMLWindow IID_IHTMLWindow2") cpp_quote("#define SID_SElementBehaviorFactory IID_IElementBehaviorFactory") +typedef enum { + POINTER_GRAVITY_Left, + POINTER_GRAVITY_Right, + POINTER_GRAVITY_Max = 2147483647 +} POINTER_GRAVITY; + +typedef enum { + CONTEXT_TYPE_None, + CONTEXT_TYPE_Text, + CONTEXT_TYPE_EnterScope, + CONTEXT_TYPE_ExitScope, + CONTEXT_TYPE_NoScope, + MARKUP_CONTEXT_TYPE_Max = 2147483647 +} MARKUP_CONTEXT_TYPE; + +typedef enum { + ELEM_ADJ_BeforeBegin, + ELEM_ADJ_AfterBegin, + ELEM_ADJ_BeforeEnd, + ELEM_ADJ_AfterEnd, + ELEMENT_ADJACENCY_Max = 2147483647 +} ELEMENT_ADJACENCY; + +typedef enum { + MOVEUNIT_PREVCHAR, + MOVEUNIT_NEXTCHAR, + MOVEUNIT_PREVCLUSTERBEG, + MOVEUNIT_NEXTCLUSTERBEG, + MOVEUNIT_PREVCLUSTEREND, + MOVEUNIT_NEXTCLUSTEREND, + MOVEUNIT_PREVWORDBEG, + MOVEUNIT_NEXTWORDBEG, + MOVEUNIT_PREVWORDEND, + MOVEUNIT_NEXTWORDEND, + MOVEUNIT_PREVPROOFWORD, + MOVEUNIT_NEXTPROOFWORD, + MOVEUNIT_NEXTURLBEG, + MOVEUNIT_PREVURLBEG, + MOVEUNIT_NEXTURLEND, + MOVEUNIT_PREVURLEND, + MOVEUNIT_PREVSENTENCE, + MOVEUNIT_NEXTSENTENCE, + MOVEUNIT_PREVBLOCK, + MOVEUNIT_NEXTBLOCK, + MOVEUNIT_ACTION_Max = 2147483647 +} MOVEUNIT_ACTION; + +typedef enum _SELECTION_TYPE { + SELECTION_TYPE_None, + SELECTION_TYPE_Caret, + SELECTION_TYPE_Text, + SELECTION_TYPE_Control, + SELECTION_TYPE_Max = 2147483647 +} SELECTION_TYPE; + interface IHTMLDocument2; interface IHTMLStyleSheetsCollection; interface IHTMLFrameBase; @@ -20032,4 +20088,242 @@ methods: VARIANT width(); } +/***************************************************************************** + * IMarkupContainer interface + */ +[ + object, + pointer_default(unique), + uuid(3050f5f9-98b5-11cf-bb82-00aa00bdce0B) +] +interface IMarkupContainer : IUnknown +{ + HRESULT OwningDoc([out] IHTMLDocument2 **ppDoc); +} + +/***************************************************************************** + * IMarkupPointer interface + */ +[ + object, + pointer_default(unique), + uuid(3050f49f-98b5-11cf-bb82-00aa00bdce0b) +] +interface IMarkupPointer : IUnknown +{ + HRESULT OwningDoc([out] IHTMLDocument2 **ppDoc); + + HRESULT Gravity([out] POINTER_GRAVITY *pGravity); + + HRESULT SetGravity([in] POINTER_GRAVITY Gravity); + + HRESULT Cling([out] BOOL *pfCling); + + HRESULT SetCling([in] BOOL fCLing); + + HRESULT UnPosition(); + + HRESULT IsPositioned([out] BOOL *pfPositioned); + + HRESULT GetContainer([out] IMarkupContainer **ppContainer); + + HRESULT MoveAdjacentToElement( + [in] IHTMLElement *pElement, + [in] ELEMENT_ADJACENCY eAdj); + + HRESULT MoveToPointer([in] IMarkupPointer *pPointer); + + HRESULT MoveToContainer( + [in] IMarkupContainer *pContainer, + [in] BOOL fAtStart); + + HRESULT Left( + [in] BOOL fMove, + [out] MARKUP_CONTEXT_TYPE *pContext, + [out] IHTMLElement **ppElement, + [in, out] long *pcch, + [out, size_is(*pcch)] OLECHAR *pchText); + + HRESULT Right( + [in] BOOL fMove, + [out] MARKUP_CONTEXT_TYPE *pContext, + [out] IHTMLElement **ppElement, + [in, out] long *pcch, + [out, size_is(*pcch)] OLECHAR *pchText); + + HRESULT CurrentScope([out] IHTMLElement **ppElemCurrent); + + HRESULT IsLeftOf( + [in] IMarkupPointer *pPointerThat, + [out] BOOL *pfResult); + + HRESULT IsLeftOfOrEqualTo( + [in] IMarkupPointer *pPointerThat, + [out] BOOL *pfResult); + + HRESULT IsRightOf( + [in] IMarkupPointer *pPointerThat, + [out] BOOL *pfResult); + + HRESULT IsRightOfOrEqualTo( + [in] IMarkupPointer *pPointerThat, + [out] BOOL *pfResult); + + HRESULT IsEqualTo( + [in] IMarkupPointer *pPointerThat, + [out] BOOL *pfAreEqual); + + HRESULT MoveUnit([in] MOVEUNIT_ACTION muAction); + + HRESULT FindText( + [in] OLECHAR *pchFindText, + [in] DWORD dwFlags, + [in] IMarkupPointer *pIEndMatch, + [in] IMarkupPointer *pIEndSearch); +} + +/***************************************************************************** + * ISegment interface + */ +[ + object, + pointer_default(unique), + uuid(83f65030-b598-cf11-bb82-00aa00bdce0b) +] +interface ISegment : IUnknown +{ + HRESULT GetPointers( + [in] IMarkupPointer *pIStart, + [in] IMarkupPointer *pIEnd); +} + +/***************************************************************************** + * IElementSegment interface + */ +[ + object, + pointer_default(unique), + uuid(3050f68f-98b5-11cf-bb82-00aa00bdce0b) +] +interface IElementSegment : ISegment +{ + HRESULT GetElement([out] IHTMLElement **ppIElement); + + HRESULT SetPrimary([in] BOOL fPrimary); + + HRESULT IsPrimary([out] BOOL *pfPrimary); +} + +/***************************************************************************** + * ISelectionServicesListener interface + */ +[ + object, + pointer_default(unique), + uuid(99f65030-b598-cf11-bb82-00aa00bdce0b) +] +interface ISelectionServicesListener : IUnknown +{ + HRESULT BeginSelectionUndo(); + + HRESULT EndSelectionUndo(); + + HRESULT OnSelectedElementExit( + [in] IMarkupPointer *pIElementStart, + [in] IMarkupPointer *pIElementEnd, + [in] IMarkupPointer *pIElementContentStart, + [in] IMarkupPointer *pIElementContentEnd); + + HRESULT OnChangeType( + [in] SELECTION_TYPE eType, + [in] ISelectionServicesListener *pIListener); + + HRESULT GetTypeDetail([out] BSTR *pTypeDetail); +} + +/***************************************************************************** + * ISelectionServices interface + */ +[ + object, + pointer_default(unique), + uuid(3050f684-98b5-11cf-bb82-00aa00bdce0b) +] +interface ISelectionServices : IUnknown +{ + HRESULT SetSelectionType( + [in] SELECTION_TYPE eType, + [in] ISelectionServicesListener *pIListener); + + HRESULT GetMarkupContainer([out] IMarkupContainer **ppIContainer); + + HRESULT AddSegment( + [in] IMarkupPointer *pIStart, + [in] IMarkupPointer *pIEnd, + [out] ISegment **ppISegmentAdded); + + HRESULT AddElementSegment( + [in] IHTMLElement *pIElement, + [out] IElementSegment **ppISegmentAdded); + + HRESULT RemoveSegment([in] ISegment *pISegment); + + HRESULT GetSelectionServicesListener([out] ISelectionServicesListener **ppISelectionServicesListener); +} + +/***************************************************************************** + * IHTMLEditDesigner interface + */ +[ + object, + pointer_default(unique), + uuid(3050f662-98b5-11cf-bb82-00aa00bdce0b) +] +interface IHTMLEditDesigner : IUnknown +{ + HRESULT PreHandleEvent( + [in] DISPID inEvtDispId, + [in] IHTMLEventObj *pIEventObj); + + HRESULT PostHandleEvent( + [in] DISPID inEvtDispId, + [in] IHTMLEventObj *pIEventObj); + + HRESULT TranslateAccelerator( + [in] DISPID inEvtDispId, + [in] IHTMLEventObj *pIEventObj); + + HRESULT PostEditorEventNotify( + [in] DISPID inEvtDispId, + [in] IHTMLEventObj *pIEventObj); +} + +/***************************************************************************** + * IHTMLEditServices interface + */ +[ + object, + pointer_default(unique), + uuid(3050f663-98b5-11cf-bb82-00aa00bdce0b) +] +interface IHTMLEditServices : IUnknown +{ + HRESULT AddDesigner([in] IHTMLEditDesigner *pIDesigner); + + HRESULT RemoveDesigner([in] IHTMLEditDesigner *pIDesigner); + + HRESULT GetSelectionServices( + [in] IMarkupContainer *pIContainer, + [out] ISelectionServices **ppSelSvc); + + HRESULT MoveToSelectionAnchor([in] IMarkupPointer *pIStartAnchor); + + HRESULT MoveToSelectionEnd([in] IMarkupPointer *pIEndAnchor); + + HRESULT SelectRange( + [in] IMarkupPointer* pStart, + [in] IMarkupPointer* pEnd, + [in] SELECTION_TYPE eType); +} + } /* library MSHTML */ -- 2.32.0.93.g670b81a890