/* * 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 "propsys.idl"; #ifndef __WIDL__ #define threading(model) #endif 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, UI_EXECUTIONVERB_PREVIEW, UI_EXECUTIONVERB_CANCELPREVIEW, } UI_EXECUTIONVERB; typedef enum UI_VIEWTYPE { UI_VIEWTYPE_RIBBON = 1 } UI_VIEWTYPE; typedef enum UI_VIEWVERB { UI_VIEWVERB_CREATE, UI_VIEWVERB_DESTROY, UI_VIEWVERB_SIZE, UI_VIEWVERB_ERROR, } UI_VIEWVERB; typedef enum UI_COMMANDTYPE { UI_COMMANDTYPE_UNKNOWN, UI_COMMANDTYPE_GROUP, UI_COMMANDTYPE_ACTION, UI_COMMANDTYPE_ANCHOR, UI_COMMANDTYPE_CONTEXT, UI_COMMANDTYPE_COLLECTION, UI_COMMANDTYPE_COMMANDCOLLECTION, UI_COMMANDTYPE_DECIMAL, UI_COMMANDTYPE_BOOLEAN, UI_COMMANDTYPE_FONT, UI_COMMANDTYPE_RECENTITEMS, UI_COMMANDTYPE_COLORANCHOR, UI_COMMANDTYPE_COLORCOLLECTION, } UI_COMMANDTYPE; typedef [v1_enum] enum UI_OWNERSHIP { UI_OWNERSHIP_TRANSFER = 0, UI_OWNERSHIP_COPY = 1, } UI_OWNERSHIP; typedef [v1_enum] enum UI_COLLECTIONCHANGE { UI_COLLECTIONCHANGE_INSERT = 0, UI_COLLECTIONCHANGE_REMOVE = 1, UI_COLLECTIONCHANGE_REPLACE = 2, UI_COLLECTIONCHANGE_RESET = 3 } UI_COLLECTIONCHANGE; [ 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 ); } [ object, uuid(23c8c838-4de6-436b-ab01-5554bb7c30dd), local, pointer_default(unique) ] interface IUIImage : IUnknown { HRESULT GetBitmap( [out] HBITMAP *bitmap ); } [ object, uuid(803982ab-370a-4f7e-a9e7-8784036a6e26), local, pointer_default(unique) ] interface IUIRibbon : IUnknown { HRESULT GetHeight( [out] UINT32 *cy ); HRESULT LoadSettingsFromStream( [in] IStream *pStream ); HRESULT SaveSettingsToStream( [in] IStream *pStream ); } [ object, uuid(df4f45bf-6f9d-4dd7-9d68-d8f9cd18c4db), local, pointer_default(unique) ] interface IUICollection : IUnknown { HRESULT GetCount( [out] UINT32 *count ); HRESULT GetItem( [in] UINT32 index, [out] IUnknown **item ); HRESULT Add( [in] IUnknown *item ); HRESULT Insert( [in] UINT32 index, [in] IUnknown *item ); HRESULT RemoveAt( [in] UINT32 index ); HRESULT Replace( [in] UINT32 indexReplaced, [in] IUnknown *itemReplaceWith ); HRESULT Clear(); } [ object, uuid(eea11f37-7c46-437c-8e55-b52122b29293), local, pointer_default(unique) ] interface IUIContextualUI : IUnknown { HRESULT ShowAtLocation( [in] INT32 x, [in] INT32 y ); } [ object, uuid(6502ae91-a14d-44b5-bbd0-62aacc581d52), local, pointer_default(unique) ] interface IUICollectionChangedEvent : IUnknown { HRESULT OnChanged( [in] UI_COLLECTIONCHANGE action, [in] UINT32 oldIndex, [in] IUnknown *oldItem, [in] UINT32 newIndex, [in] IUnknown *newItem ); } [ object, uuid(18aba7f3-4c1c-4ba2-bf6c-f5c3326fa816), local, pointer_default(unique) ] interface IUIImageFromBitmap : IUnknown { HRESULT CreateImage( [in] HBITMAP bitmap, [in] UI_OWNERSHIP options, [out] IUIImage **image ); } [ helpstring("UIRibbonFramework Object"), threading(apartment), uuid(926749fa-2615-4987-8845-c33e65f2b957) ] coclass UIRibbonFramework { interface IUIFramework; } [ threading(apartment), uuid(0f7434b6-59b6-4250-999e-d168d6ae4293) ] coclass UIRibbonImageFromBitmapFactory { interface IUIImageFromBitmap; }