[PATCH v4 2/3] uiribbon: Add interface definitions

Fabian Maurer dark.shadow4 at web.de
Sat Jul 29 18:29:24 CDT 2017


Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
---
 include/Makefile.in  |   1 +
 include/uiribbon.idl | 179 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 180 insertions(+)
 create mode 100644 include/uiribbon.idl

diff --git a/include/Makefile.in b/include/Makefile.in
index 1dd6aafa32..063c4ecd3d 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -161,6 +161,7 @@ IDL_SRCS = \
 	txdtc.idl \
 	uiautomationclient.idl \
 	uiautomationcore.idl \
+	uiribbon.idl \
 	unknwn.idl \
 	urlhist.idl \
 	urlmon.idl \
diff --git a/include/uiribbon.idl b/include/uiribbon.idl
new file mode 100644
index 0000000000..0d4a4b5dca
--- /dev/null
+++ b/include/uiribbon.idl
@@ -0,0 +1,179 @@
+/*
+ * COM Classes for uiribbon
+ *
+ * Copyright 2017 Fabian Maurer
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "unknwn.idl";
+import "propsys.idl";
+
+typedef enum UI_INVALIDATIONS {
+    UI_INVALIDATIONS_STATE         = 0x00000001,
+    UI_INVALIDATIONS_VALUE         = 0x00000002,
+    UI_INVALIDATIONS_PROPERTY      = 0x00000004,
+    UI_INVALIDATIONS_ALLPROPERTIES = 0x00000008,
+} UI_INVALIDATIONS;
+
+typedef enum UI_EXECUTIONVERB {
+    UI_EXECUTIONVERB_EXECUTE = 0,
+    UI_EXECUTIONVERB_PREVIEW = 1,
+    UI_EXECUTIONVERB_CANCELPREVIEW = 2,
+} UI_EXECUTIONVERB;
+
+typedef enum UI_VIEWTYPE {
+    UI_VIEWTYPE_RIBBON = 1
+} UI_VIEWTYPE;
+
+typedef enum UI_VIEWVERB {
+    UI_VIEWVERB_CREATE = 0,
+    UI_VIEWVERB_DESTROY = 1,
+    UI_VIEWVERB_SIZE = 2,
+    UI_VIEWVERB_ERROR = 3,
+} UI_VIEWVERB;
+
+typedef enum UI_COMMANDTYPE {
+    UI_COMMANDTYPE_UNKNOWN = 0,
+    UI_COMMANDTYPE_GROUP = 1,
+    UI_COMMANDTYPE_ACTION = 2,
+    UI_COMMANDTYPE_ANCHOR = 3,
+    UI_COMMANDTYPE_CONTEXT = 4,
+    UI_COMMANDTYPE_COLLECTION = 5,
+    UI_COMMANDTYPE_COMMANDCOLLECTION = 6,
+    UI_COMMANDTYPE_DECIMAL = 7,
+    UI_COMMANDTYPE_BOOLEAN = 8,
+    UI_COMMANDTYPE_FONT = 9,
+    UI_COMMANDTYPE_RECENTITEMS = 10,
+    UI_COMMANDTYPE_COLORANCHOR = 11,
+    UI_COMMANDTYPE_COLORCOLLECTION = 12,
+} UI_COMMANDTYPE;
+
+
+[
+    object,
+    uuid(c205bb48-5b1c-4219-a106-15bd0a5f24e2),
+    local,
+    pointer_default(unique)
+]
+interface IUISimplePropertySet : IUnknown
+{
+    HRESULT GetValue(
+        [in]  REFPROPERTYKEY key,
+        [out] PROPVARIANT *value
+    );
+}
+
+[
+    object,
+    uuid(75ae0a2d-dc03-4c9f-8883-069660d0beb6),
+    local,
+    pointer_default(unique)
+]
+interface IUICommandHandler : IUnknown
+{
+    HRESULT Execute(
+        [in] UINT32 commandId,
+        [in] UI_EXECUTIONVERB verb,
+        [in] const PROPERTYKEY *key,
+        [in] const PROPVARIANT *currentValue,
+        [in] IUISimplePropertySet *commandExecutionProperties
+    );
+    HRESULT UpdateProperty(
+        [in] UINT32 commandId,
+        [in] REFPROPERTYKEY key,
+        [in] const PROPVARIANT *currentValue,
+        [out] PROPVARIANT *newValue
+    );
+}
+
+[
+    object,
+    uuid(D428903C-729A-491d-910D-682A08FF2522),
+    local,
+    pointer_default(unique)
+]
+interface IUIApplication : IUnknown
+{
+    HRESULT OnViewChanged(
+        [in] UINT32      viewId,
+        [in] UI_VIEWTYPE typeID,
+        [in] IUnknown    *view,
+        [in] UI_VIEWVERB verb,
+        [in] INT32       uReasonCode
+    );
+    HRESULT OnCreateUICommand(
+        [in] UINT32 commandId,
+        [in] UI_COMMANDTYPE typeID,
+        [out] IUICommandHandler **commandHandler
+    );
+    HRESULT OnDestroyUICommand(
+        [in] UINT32 commandId,
+        [in] UI_COMMANDTYPE typeID,
+        [in] IUICommandHandler *commandHandler
+    );
+}
+
+[
+    object,
+    uuid(F4F0385D-6872-43a8-AD09-4C339CB3F5C5),
+    local,
+    pointer_default(unique)
+]
+interface IUIFramework : IUnknown
+{
+    HRESULT Initialize(
+        [in] HWND frameWnd,
+        [in] IUIApplication *application
+    );
+    HRESULT Destroy(
+    );
+    HRESULT LoadUI(
+        [in] HINSTANCE instance,
+        [in] LPCWSTR resourceName
+    );
+    HRESULT GetView(
+        [in] UINT32 viewId,
+        [in] REFIID riid,
+        [out] void **ppv
+    );
+    HRESULT GetUICommandProperty(
+        [in] UINT32 commandId,
+        [in] REFPROPERTYKEY key,
+        [out] PROPVARIANT *value
+    );
+    HRESULT SetUICommandProperty(
+        [in] UINT32 commandId,
+        [in] REFPROPERTYKEY key,
+        [in] PROPVARIANT value
+    );
+    HRESULT InvalidateUICommand(
+        [in] UINT32 commandId,
+        [in] UI_INVALIDATIONS flags,
+        [in] const PROPERTYKEY *key
+    );
+    HRESULT FlushPendingInvalidations(
+    );
+    HRESULT SetModes(
+        INT32 iModes
+    );
+}
+
+[
+    helpstring("UIRibbonFramework Object"),
+    threading(both),
+    uuid(926749fa-2615-4987-8845-c33e65f2b957)
+]
+coclass UIRibbonFramework { interface IUIFramework; }
-- 
2.13.3




More information about the wine-patches mailing list