mshtml: Add new interfaces into mshtml.idl (try 2)

Konstantin Kondratyuk kondratyuk at etersoft.ru
Mon Nov 24 05:25:08 CST 2008


Hello!

Try 2 changes:
- add missed POINTER_GRAVITY_Max, MARKUP_CONTEXT_TYPE_Max, SELECTION_TYPE_Max 
constants
- correct attributes of interfaces: object, pointer_default(unique), uuid(...)
- correct attributes Right and Left methods in IMarkupPointer interface

-- 
Best regards,
Konstantin Kondratyuk.
-------------- next part --------------
From 2ead25b470fa35d3c1834f5faf2a8598bdeaca76 Mon Sep 17 00:00:00 2001
From: Konstantin Kondratyuk <kondratyuk at etersoft.ru>
Date: Mon, 24 Nov 2008 12:54:23 +0300
Subject: [PATCH] mshtml: Add new interfaces into mshtml.idl

---
 include/mshtml.idl |  290 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 290 insertions(+), 0 deletions(-)

diff --git a/include/mshtml.idl b/include/mshtml.idl
index 680748b..c09c970 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 = 0,
+    POINTER_GRAVITY_Right = 1,
+    POINTER_GRAVITY_Max = 2147483647L
+} POINTER_GRAVITY;
+
+typedef enum {
+    CONTEXT_TYPE_None = 0,
+    CONTEXT_TYPE_Text = 1,
+    CONTEXT_TYPE_EnterScope = 2,
+    CONTEXT_TYPE_ExitScope = 3,
+    CONTEXT_TYPE_NoScope = 4,
+    MARKUP_CONTEXT_TYPE_Max = 2147483647L
+} MARKUP_CONTEXT_TYPE;
+
+typedef enum {
+    ELEM_ADJ_BeforeBegin = 0,
+    ELEM_ADJ_AfterBegin = 1,
+    ELEM_ADJ_BeforeEnd = 2,
+    ELEM_ADJ_AfterEnd = 3,
+    ELEMENT_ADJACENCY_Max = 2147483647L
+} ELEMENT_ADJACENCY;
+
+typedef enum {
+    MOVEUNIT_PREVCHAR = 0,
+    MOVEUNIT_NEXTCHAR = 1,
+    MOVEUNIT_PREVCLUSTERBEG = 2,
+    MOVEUNIT_NEXTCLUSTERBEG = 3,
+    MOVEUNIT_PREVCLUSTEREND = 4,
+    MOVEUNIT_NEXTCLUSTEREND = 5,
+    MOVEUNIT_PREVWORDBEG = 6,
+    MOVEUNIT_NEXTWORDBEG = 7,
+    MOVEUNIT_PREVWORDEND = 8,
+    MOVEUNIT_NEXTWORDEND = 9,
+    MOVEUNIT_PREVPROOFWORD = 10,
+    MOVEUNIT_NEXTPROOFWORD = 11,
+    MOVEUNIT_NEXTURLBEG = 12,
+    MOVEUNIT_PREVURLBEG = 13,
+    MOVEUNIT_NEXTURLEND = 14,
+    MOVEUNIT_PREVURLEND = 15,
+    MOVEUNIT_PREVSENTENCE = 16,
+    MOVEUNIT_NEXTSENTENCE = 17,
+    MOVEUNIT_PREVBLOCK = 18,
+    MOVEUNIT_NEXTBLOCK = 19,
+    MOVEUNIT_ACTION_Max = 2147483647L
+} MOVEUNIT_ACTION;
+
+typedef enum _SELECTION_TYPE {
+    SELECTION_TYPE_None = 0,
+    SELECTION_TYPE_Caret = 1,
+    SELECTION_TYPE_Text = 2,
+    SELECTION_TYPE_Control = 3,
+    SELECTION_TYPE_Max = 2147483647L
+} SELECTION_TYPE;
+
 interface IHTMLDocument2;
 interface IHTMLStyleSheetsCollection;
 interface IHTMLFrameBase;
@@ -20032,4 +20088,238 @@ methods:
     VARIANT width();
 }
 
+/*****************************************************************************
+ *    IHTMLEditDesigner interface
+ */
+[
+    object,
+    pointer_default(unique),
+    uuid(3050f662-98b5-11cf-bb82-00aa00bdce0b)
+]
+interface IHTMLEditDesigner : IUnknown
+{
+    HRESULT PostEditorEventNotify(
+        [in] DISPID inEvtDispId,
+        [in] IHTMLEventObj *pIEventObj);
+
+    HRESULT PostHandleEvent(
+        [in] DISPID inEvtDispId,
+        [in] IHTMLEventObj *pIEventObj);
+
+    HRESULT PreHandleEvent(
+        [in] DISPID inEvtDispId,
+        [in] IHTMLEventObj *pIEventObj);
+
+    HRESULT TranslateAccelerator(
+        [in] DISPID inEvtDispId,
+        [in] IHTMLEventObj *pIEventObj);
+}
+
+/*****************************************************************************
+ *    IMarkupContainer interface
+ */
+[
+    object,
+    pointer_default(unique),
+    uuid(3050f5f9-98b5-11cf-bb82-00aa00bdce0B)
+]
+interface IMarkupContainer : IUnknown
+{
+    HRESULT OwningDoc([retval, out] IHTMLDocument2 **ppDoc);
+}
+
+/*****************************************************************************
+ *    IMarkupPointer interface
+ */
+[
+    object,
+    pointer_default(unique),
+    uuid(3050f49f-98b5-11cf-bb82-00aa00bdce0b)
+]
+interface IMarkupPointer : IUnknown
+{
+    HRESULT Cling([retval, out] BOOL *pfCling);
+
+    HRESULT CurrentScope([retval, out] IHTMLElement **ppElemCurrent);
+
+    HRESULT FindText(
+        [in] OLECHAR *pchFindText,
+        [in] DWORD dwFlags,
+        [in] IMarkupPointer *pIEndMatch,
+        [in] IMarkupPointer *pIEndSearch);
+
+    HRESULT GetContainer([retval, out] IMarkupContainer **ppContainer);
+
+    HRESULT Gravity([retval, out] POINTER_GRAVITY *pGravity);
+
+    HRESULT IsEqualTo(
+        [in] IMarkupPointer *pPointerThat,
+        [retval, out] BOOL *pfAreEqual);
+
+    HRESULT IsLeftOf(
+        [in] IMarkupPointer *pPointerThat,
+        [retval, out] BOOL *pfResult);
+
+    HRESULT IsLeftOfOrEqualTo(
+        [in] IMarkupPointer *pPointerThat,
+        [retval, out] BOOL *pfResult);
+
+    HRESULT IsPositioned([retval, out] BOOL *pfPositioned);
+
+    HRESULT IsRightOf(
+        [in] IMarkupPointer *pPointerThat,
+        [retval, out] BOOL *pfResult);
+
+    HRESULT IsRightOfOrEqualTo(
+        [in] IMarkupPointer *pPointerThat,
+        [retval, out] BOOL *pfResult);
+
+    HRESULT Left(
+        [in] BOOL fMove,
+        [out] MARKUP_CONTEXT_TYPE *pContext,
+        [out] IHTMLElement **ppElement,
+        [in, out] long *pcch,
+        [out, size_is(*pcch)] OLECHAR *pchText);
+
+    HRESULT MoveAdjacentToElement(
+        [in] IHTMLElement *pElement,
+        [in] ELEMENT_ADJACENCY eAdj);
+
+    HRESULT MoveToContainer(
+        [in] IMarkupContainer *pContainer,
+        [in] BOOL fAtStart);
+
+    HRESULT MoveToPointer([in] IMarkupPointer *pPointer);
+
+    HRESULT MoveUnit([in] MOVEUNIT_ACTION muAction);
+
+    HRESULT OwningDoc([retval, out] IHTMLDocument2 **ppDoc);
+
+    HRESULT Right(
+        [in] BOOL fMove,
+        [out] MARKUP_CONTEXT_TYPE *pContext,
+        [out] IHTMLElement **ppElement,
+        [in, out] long *pcch,
+        [out, size_is(*pcch)] OLECHAR *pchText);
+
+    HRESULT SetCling([in] BOOL fCLing);
+
+    HRESULT SetGravity([in] POINTER_GRAVITY Gravity);
+
+    HRESULT UnPosition();
+}
+
+/*****************************************************************************
+ *    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([retval, out] IHTMLElement **ppIElement);
+
+    HRESULT IsPrimary([retval, out] BOOL *pfPrimary);
+
+    HRESULT SetPrimary([in] BOOL fPrimary);
+}
+
+/*****************************************************************************
+ *    ISelectionServicesListener interface
+ */
+[
+    object,
+    pointer_default(unique),
+    uuid(99f65030-b598-cf11-bb82-00aa00bdce0b)
+]
+interface ISelectionServicesListener : IUnknown
+{
+    HRESULT BeginSelectionUndo();
+
+    HRESULT EndSelectionUndo();
+
+    HRESULT GetTypeDetail([retval, out] BSTR *pTypeDetail);
+
+    HRESULT OnChangeType(
+        [in] SELECTION_TYPE eType,
+        [in] ISelectionServicesListener *pIListener);
+
+    HRESULT OnSelectedElementExit(
+        [in] IMarkupPointer *pIElementStart,
+        [in] IMarkupPointer *pIElementEnd,
+        [in] IMarkupPointer *pIElementContentStart,
+        [in] IMarkupPointer *pIElementContentEnd);
+}
+
+/*****************************************************************************
+ *    ISelectionServices interface
+ */
+[
+    object,
+    pointer_default(unique),
+    uuid(3050f684-98b5-11cf-bb82-00aa00bdce0b)
+]
+interface ISelectionServices : IUnknown
+{
+    HRESULT AddElementSegment(
+        [in] IHTMLElement *pIElement,
+        [retval, out] IElementSegment **ppISegmentAdded);
+
+    HRESULT AddSegment(
+        [in] IMarkupPointer *pIStart,
+        [in] IMarkupPointer *pIEnd,
+        [retval, out] ISegment **ppISegmentAdded);
+
+    HRESULT GetMarkupContainer([retval, out] IMarkupContainer **ppIContainer);
+
+    HRESULT GetSelectionServicesListener(
+        [retval, out] ISelectionServicesListener **ppISelectionServicesListener);
+
+    HRESULT RemoveSegment([in] ISegment *pISegment);
+
+    HRESULT SetSelectionType(
+        [in] SELECTION_TYPE eType,
+        [in] ISelectionServicesListener *pIListener);
+}
+
+/*****************************************************************************
+ *    IHTMLEditServices interface
+ */
+[
+    object,
+    pointer_default(unique),
+    uuid(3050f663-98b5-11cf-bb82-00aa00bdce0b)
+]
+interface IHTMLEditServices : IUnknown
+{
+    HRESULT AddDesigner([in] IHTMLEditDesigner *pIDesigner);
+
+    HRESULT GetSelectionServices(
+        [in] IMarkupContainer *pIContainer,
+        [retval, out] ISelectionServices **ppSelSvc);
+
+    HRESULT MoveToSelectionAnchor([in] IMarkupPointer *pIStartAnchor);
+
+    HRESULT MoveToSelectionEnd([in] IMarkupPointer *pIEndAnchor);
+
+    HRESULT RemoveDesigner([in] IHTMLEditDesigner *pIDesigner);
+}
+
 } /* library MSHTML */
-- 
1.6.0.2.GIT



More information about the wine-patches mailing list