/*** Autogenerated by WIDL 11.0 from ../wine-11.0/include/uiribbon.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __uiribbon_h__
#define __uiribbon_h__

/* Forward declarations */

#ifndef __IUISimplePropertySet_FWD_DEFINED__
#define __IUISimplePropertySet_FWD_DEFINED__
typedef interface IUISimplePropertySet IUISimplePropertySet;
#ifdef __cplusplus
interface IUISimplePropertySet;
#endif /* __cplusplus */
#endif

#ifndef __IUICommandHandler_FWD_DEFINED__
#define __IUICommandHandler_FWD_DEFINED__
typedef interface IUICommandHandler IUICommandHandler;
#ifdef __cplusplus
interface IUICommandHandler;
#endif /* __cplusplus */
#endif

#ifndef __IUIApplication_FWD_DEFINED__
#define __IUIApplication_FWD_DEFINED__
typedef interface IUIApplication IUIApplication;
#ifdef __cplusplus
interface IUIApplication;
#endif /* __cplusplus */
#endif

#ifndef __IUIFramework_FWD_DEFINED__
#define __IUIFramework_FWD_DEFINED__
typedef interface IUIFramework IUIFramework;
#ifdef __cplusplus
interface IUIFramework;
#endif /* __cplusplus */
#endif

#ifndef __IUIImage_FWD_DEFINED__
#define __IUIImage_FWD_DEFINED__
typedef interface IUIImage IUIImage;
#ifdef __cplusplus
interface IUIImage;
#endif /* __cplusplus */
#endif

#ifndef __IUIRibbon_FWD_DEFINED__
#define __IUIRibbon_FWD_DEFINED__
typedef interface IUIRibbon IUIRibbon;
#ifdef __cplusplus
interface IUIRibbon;
#endif /* __cplusplus */
#endif

#ifndef __IUICollection_FWD_DEFINED__
#define __IUICollection_FWD_DEFINED__
typedef interface IUICollection IUICollection;
#ifdef __cplusplus
interface IUICollection;
#endif /* __cplusplus */
#endif

#ifndef __IUIContextualUI_FWD_DEFINED__
#define __IUIContextualUI_FWD_DEFINED__
typedef interface IUIContextualUI IUIContextualUI;
#ifdef __cplusplus
interface IUIContextualUI;
#endif /* __cplusplus */
#endif

#ifndef __IUICollectionChangedEvent_FWD_DEFINED__
#define __IUICollectionChangedEvent_FWD_DEFINED__
typedef interface IUICollectionChangedEvent IUICollectionChangedEvent;
#ifdef __cplusplus
interface IUICollectionChangedEvent;
#endif /* __cplusplus */
#endif

#ifndef __IUIImageFromBitmap_FWD_DEFINED__
#define __IUIImageFromBitmap_FWD_DEFINED__
typedef interface IUIImageFromBitmap IUIImageFromBitmap;
#ifdef __cplusplus
interface IUIImageFromBitmap;
#endif /* __cplusplus */
#endif

#ifndef __UIRibbonFramework_FWD_DEFINED__
#define __UIRibbonFramework_FWD_DEFINED__
#ifdef __cplusplus
typedef class UIRibbonFramework UIRibbonFramework;
#else
typedef struct UIRibbonFramework UIRibbonFramework;
#endif /* defined __cplusplus */
#endif /* defined __UIRibbonFramework_FWD_DEFINED__ */

#ifndef __UIRibbonImageFromBitmapFactory_FWD_DEFINED__
#define __UIRibbonImageFromBitmapFactory_FWD_DEFINED__
#ifdef __cplusplus
typedef class UIRibbonImageFromBitmapFactory UIRibbonImageFromBitmapFactory;
#else
typedef struct UIRibbonImageFromBitmapFactory UIRibbonImageFromBitmapFactory;
#endif /* defined __cplusplus */
#endif /* defined __UIRibbonImageFromBitmapFactory_FWD_DEFINED__ */

/* Headers for imported files */

#include <propsys.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef enum UI_INVALIDATIONS {
    UI_INVALIDATIONS_STATE = 0x1,
    UI_INVALIDATIONS_VALUE = 0x2,
    UI_INVALIDATIONS_PROPERTY = 0x4,
    UI_INVALIDATIONS_ALLPROPERTIES = 0x8
} 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;
typedef enum UI_OWNERSHIP {
    UI_OWNERSHIP_TRANSFER = 0,
    UI_OWNERSHIP_COPY = 1
} UI_OWNERSHIP;
typedef enum UI_COLLECTIONCHANGE {
    UI_COLLECTIONCHANGE_INSERT = 0,
    UI_COLLECTIONCHANGE_REMOVE = 1,
    UI_COLLECTIONCHANGE_REPLACE = 2,
    UI_COLLECTIONCHANGE_RESET = 3
} UI_COLLECTIONCHANGE;
/*****************************************************************************
 * IUISimplePropertySet interface
 */
#ifndef __IUISimplePropertySet_INTERFACE_DEFINED__
#define __IUISimplePropertySet_INTERFACE_DEFINED__

DEFINE_GUID(IID_IUISimplePropertySet, 0xc205bb48, 0x5b1c, 0x4219, 0xa1,0x06, 0x15,0xbd,0x0a,0x5f,0x24,0xe2);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c205bb48-5b1c-4219-a106-15bd0a5f24e2")
IUISimplePropertySet : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetValue(
        REFPROPERTYKEY key,
        PROPVARIANT *value) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IUISimplePropertySet, 0xc205bb48, 0x5b1c, 0x4219, 0xa1,0x06, 0x15,0xbd,0x0a,0x5f,0x24,0xe2)
#endif
#else
typedef struct IUISimplePropertySetVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IUISimplePropertySet *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IUISimplePropertySet *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IUISimplePropertySet *This);

    /*** IUISimplePropertySet methods ***/
    HRESULT (STDMETHODCALLTYPE *GetValue)(
        IUISimplePropertySet *This,
        REFPROPERTYKEY key,
        PROPVARIANT *value);

    END_INTERFACE
} IUISimplePropertySetVtbl;

interface IUISimplePropertySet {
    CONST_VTBL IUISimplePropertySetVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IUISimplePropertySet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IUISimplePropertySet_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IUISimplePropertySet_Release(This) (This)->lpVtbl->Release(This)
/*** IUISimplePropertySet methods ***/
#define IUISimplePropertySet_GetValue(This,key,value) (This)->lpVtbl->GetValue(This,key,value)
#else
/*** IUnknown methods ***/
static inline HRESULT IUISimplePropertySet_QueryInterface(IUISimplePropertySet* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IUISimplePropertySet_AddRef(IUISimplePropertySet* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IUISimplePropertySet_Release(IUISimplePropertySet* This) {
    return This->lpVtbl->Release(This);
}
/*** IUISimplePropertySet methods ***/
static inline HRESULT IUISimplePropertySet_GetValue(IUISimplePropertySet* This,REFPROPERTYKEY key,PROPVARIANT *value) {
    return This->lpVtbl->GetValue(This,key,value);
}
#endif
#endif

#endif


#endif  /* __IUISimplePropertySet_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IUICommandHandler interface
 */
#ifndef __IUICommandHandler_INTERFACE_DEFINED__
#define __IUICommandHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID_IUICommandHandler, 0x75ae0a2d, 0xdc03, 0x4c9f, 0x88,0x83, 0x06,0x96,0x60,0xd0,0xbe,0xb6);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("75ae0a2d-dc03-4c9f-8883-069660d0beb6")
IUICommandHandler : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Execute(
        UINT32 commandId,
        UI_EXECUTIONVERB verb,
        const PROPERTYKEY *key,
        const PROPVARIANT *currentValue,
        IUISimplePropertySet *commandExecutionProperties) = 0;

    virtual HRESULT STDMETHODCALLTYPE UpdateProperty(
        UINT32 commandId,
        REFPROPERTYKEY key,
        const PROPVARIANT *currentValue,
        PROPVARIANT *newValue) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IUICommandHandler, 0x75ae0a2d, 0xdc03, 0x4c9f, 0x88,0x83, 0x06,0x96,0x60,0xd0,0xbe,0xb6)
#endif
#else
typedef struct IUICommandHandlerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IUICommandHandler *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IUICommandHandler *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IUICommandHandler *This);

    /*** IUICommandHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *Execute)(
        IUICommandHandler *This,
        UINT32 commandId,
        UI_EXECUTIONVERB verb,
        const PROPERTYKEY *key,
        const PROPVARIANT *currentValue,
        IUISimplePropertySet *commandExecutionProperties);

    HRESULT (STDMETHODCALLTYPE *UpdateProperty)(
        IUICommandHandler *This,
        UINT32 commandId,
        REFPROPERTYKEY key,
        const PROPVARIANT *currentValue,
        PROPVARIANT *newValue);

    END_INTERFACE
} IUICommandHandlerVtbl;

interface IUICommandHandler {
    CONST_VTBL IUICommandHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IUICommandHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IUICommandHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IUICommandHandler_Release(This) (This)->lpVtbl->Release(This)
/*** IUICommandHandler methods ***/
#define IUICommandHandler_Execute(This,commandId,verb,key,currentValue,commandExecutionProperties) (This)->lpVtbl->Execute(This,commandId,verb,key,currentValue,commandExecutionProperties)
#define IUICommandHandler_UpdateProperty(This,commandId,key,currentValue,newValue) (This)->lpVtbl->UpdateProperty(This,commandId,key,currentValue,newValue)
#else
/*** IUnknown methods ***/
static inline HRESULT IUICommandHandler_QueryInterface(IUICommandHandler* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IUICommandHandler_AddRef(IUICommandHandler* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IUICommandHandler_Release(IUICommandHandler* This) {
    return This->lpVtbl->Release(This);
}
/*** IUICommandHandler methods ***/
static inline HRESULT IUICommandHandler_Execute(IUICommandHandler* This,UINT32 commandId,UI_EXECUTIONVERB verb,const PROPERTYKEY *key,const PROPVARIANT *currentValue,IUISimplePropertySet *commandExecutionProperties) {
    return This->lpVtbl->Execute(This,commandId,verb,key,currentValue,commandExecutionProperties);
}
static inline HRESULT IUICommandHandler_UpdateProperty(IUICommandHandler* This,UINT32 commandId,REFPROPERTYKEY key,const PROPVARIANT *currentValue,PROPVARIANT *newValue) {
    return This->lpVtbl->UpdateProperty(This,commandId,key,currentValue,newValue);
}
#endif
#endif

#endif


#endif  /* __IUICommandHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IUIApplication interface
 */
#ifndef __IUIApplication_INTERFACE_DEFINED__
#define __IUIApplication_INTERFACE_DEFINED__

DEFINE_GUID(IID_IUIApplication, 0xd428903c, 0x729a, 0x491d, 0x91,0x0d, 0x68,0x2a,0x08,0xff,0x25,0x22);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("d428903c-729a-491d-910d-682a08ff2522")
IUIApplication : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE OnViewChanged(
        UINT32 viewId,
        UI_VIEWTYPE typeID,
        IUnknown *view,
        UI_VIEWVERB verb,
        INT32 uReasonCode) = 0;

    virtual HRESULT STDMETHODCALLTYPE OnCreateUICommand(
        UINT32 commandId,
        UI_COMMANDTYPE typeID,
        IUICommandHandler **commandHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE OnDestroyUICommand(
        UINT32 commandId,
        UI_COMMANDTYPE typeID,
        IUICommandHandler *commandHandler) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IUIApplication, 0xd428903c, 0x729a, 0x491d, 0x91,0x0d, 0x68,0x2a,0x08,0xff,0x25,0x22)
#endif
#else
typedef struct IUIApplicationVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IUIApplication *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IUIApplication *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IUIApplication *This);

    /*** IUIApplication methods ***/
    HRESULT (STDMETHODCALLTYPE *OnViewChanged)(
        IUIApplication *This,
        UINT32 viewId,
        UI_VIEWTYPE typeID,
        IUnknown *view,
        UI_VIEWVERB verb,
        INT32 uReasonCode);

    HRESULT (STDMETHODCALLTYPE *OnCreateUICommand)(
        IUIApplication *This,
        UINT32 commandId,
        UI_COMMANDTYPE typeID,
        IUICommandHandler **commandHandler);

    HRESULT (STDMETHODCALLTYPE *OnDestroyUICommand)(
        IUIApplication *This,
        UINT32 commandId,
        UI_COMMANDTYPE typeID,
        IUICommandHandler *commandHandler);

    END_INTERFACE
} IUIApplicationVtbl;

interface IUIApplication {
    CONST_VTBL IUIApplicationVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IUIApplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IUIApplication_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IUIApplication_Release(This) (This)->lpVtbl->Release(This)
/*** IUIApplication methods ***/
#define IUIApplication_OnViewChanged(This,viewId,typeID,view,verb,uReasonCode) (This)->lpVtbl->OnViewChanged(This,viewId,typeID,view,verb,uReasonCode)
#define IUIApplication_OnCreateUICommand(This,commandId,typeID,commandHandler) (This)->lpVtbl->OnCreateUICommand(This,commandId,typeID,commandHandler)
#define IUIApplication_OnDestroyUICommand(This,commandId,typeID,commandHandler) (This)->lpVtbl->OnDestroyUICommand(This,commandId,typeID,commandHandler)
#else
/*** IUnknown methods ***/
static inline HRESULT IUIApplication_QueryInterface(IUIApplication* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IUIApplication_AddRef(IUIApplication* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IUIApplication_Release(IUIApplication* This) {
    return This->lpVtbl->Release(This);
}
/*** IUIApplication methods ***/
static inline HRESULT IUIApplication_OnViewChanged(IUIApplication* This,UINT32 viewId,UI_VIEWTYPE typeID,IUnknown *view,UI_VIEWVERB verb,INT32 uReasonCode) {
    return This->lpVtbl->OnViewChanged(This,viewId,typeID,view,verb,uReasonCode);
}
static inline HRESULT IUIApplication_OnCreateUICommand(IUIApplication* This,UINT32 commandId,UI_COMMANDTYPE typeID,IUICommandHandler **commandHandler) {
    return This->lpVtbl->OnCreateUICommand(This,commandId,typeID,commandHandler);
}
static inline HRESULT IUIApplication_OnDestroyUICommand(IUIApplication* This,UINT32 commandId,UI_COMMANDTYPE typeID,IUICommandHandler *commandHandler) {
    return This->lpVtbl->OnDestroyUICommand(This,commandId,typeID,commandHandler);
}
#endif
#endif

#endif


#endif  /* __IUIApplication_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IUIFramework interface
 */
#ifndef __IUIFramework_INTERFACE_DEFINED__
#define __IUIFramework_INTERFACE_DEFINED__

DEFINE_GUID(IID_IUIFramework, 0xf4f0385d, 0x6872, 0x43a8, 0xad,0x09, 0x4c,0x33,0x9c,0xb3,0xf5,0xc5);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("f4f0385d-6872-43a8-ad09-4c339cb3f5c5")
IUIFramework : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Initialize(
        HWND frameWnd,
        IUIApplication *application) = 0;

    virtual HRESULT STDMETHODCALLTYPE Destroy(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE LoadUI(
        HINSTANCE instance,
        LPCWSTR resourceName) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetView(
        UINT32 viewId,
        REFIID riid,
        void **ppv) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetUICommandProperty(
        UINT32 commandId,
        REFPROPERTYKEY key,
        PROPVARIANT *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetUICommandProperty(
        UINT32 commandId,
        REFPROPERTYKEY key,
        REFPROPVARIANT value) = 0;

    virtual HRESULT STDMETHODCALLTYPE InvalidateUICommand(
        UINT32 commandId,
        UI_INVALIDATIONS flags,
        const PROPERTYKEY *key) = 0;

    virtual HRESULT STDMETHODCALLTYPE FlushPendingInvalidations(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetModes(
        INT32 iModes) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IUIFramework, 0xf4f0385d, 0x6872, 0x43a8, 0xad,0x09, 0x4c,0x33,0x9c,0xb3,0xf5,0xc5)
#endif
#else
typedef struct IUIFrameworkVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IUIFramework *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IUIFramework *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IUIFramework *This);

    /*** IUIFramework methods ***/
    HRESULT (STDMETHODCALLTYPE *Initialize)(
        IUIFramework *This,
        HWND frameWnd,
        IUIApplication *application);

    HRESULT (STDMETHODCALLTYPE *Destroy)(
        IUIFramework *This);

    HRESULT (STDMETHODCALLTYPE *LoadUI)(
        IUIFramework *This,
        HINSTANCE instance,
        LPCWSTR resourceName);

    HRESULT (STDMETHODCALLTYPE *GetView)(
        IUIFramework *This,
        UINT32 viewId,
        REFIID riid,
        void **ppv);

    HRESULT (STDMETHODCALLTYPE *GetUICommandProperty)(
        IUIFramework *This,
        UINT32 commandId,
        REFPROPERTYKEY key,
        PROPVARIANT *value);

    HRESULT (STDMETHODCALLTYPE *SetUICommandProperty)(
        IUIFramework *This,
        UINT32 commandId,
        REFPROPERTYKEY key,
        REFPROPVARIANT value);

    HRESULT (STDMETHODCALLTYPE *InvalidateUICommand)(
        IUIFramework *This,
        UINT32 commandId,
        UI_INVALIDATIONS flags,
        const PROPERTYKEY *key);

    HRESULT (STDMETHODCALLTYPE *FlushPendingInvalidations)(
        IUIFramework *This);

    HRESULT (STDMETHODCALLTYPE *SetModes)(
        IUIFramework *This,
        INT32 iModes);

    END_INTERFACE
} IUIFrameworkVtbl;

interface IUIFramework {
    CONST_VTBL IUIFrameworkVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IUIFramework_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IUIFramework_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IUIFramework_Release(This) (This)->lpVtbl->Release(This)
/*** IUIFramework methods ***/
#define IUIFramework_Initialize(This,frameWnd,application) (This)->lpVtbl->Initialize(This,frameWnd,application)
#define IUIFramework_Destroy(This) (This)->lpVtbl->Destroy(This)
#define IUIFramework_LoadUI(This,instance,resourceName) (This)->lpVtbl->LoadUI(This,instance,resourceName)
#define IUIFramework_GetView(This,viewId,riid,ppv) (This)->lpVtbl->GetView(This,viewId,riid,ppv)
#define IUIFramework_GetUICommandProperty(This,commandId,key,value) (This)->lpVtbl->GetUICommandProperty(This,commandId,key,value)
#define IUIFramework_SetUICommandProperty(This,commandId,key,value) (This)->lpVtbl->SetUICommandProperty(This,commandId,key,value)
#define IUIFramework_InvalidateUICommand(This,commandId,flags,key) (This)->lpVtbl->InvalidateUICommand(This,commandId,flags,key)
#define IUIFramework_FlushPendingInvalidations(This) (This)->lpVtbl->FlushPendingInvalidations(This)
#define IUIFramework_SetModes(This,iModes) (This)->lpVtbl->SetModes(This,iModes)
#else
/*** IUnknown methods ***/
static inline HRESULT IUIFramework_QueryInterface(IUIFramework* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IUIFramework_AddRef(IUIFramework* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IUIFramework_Release(IUIFramework* This) {
    return This->lpVtbl->Release(This);
}
/*** IUIFramework methods ***/
static inline HRESULT IUIFramework_Initialize(IUIFramework* This,HWND frameWnd,IUIApplication *application) {
    return This->lpVtbl->Initialize(This,frameWnd,application);
}
static inline HRESULT IUIFramework_Destroy(IUIFramework* This) {
    return This->lpVtbl->Destroy(This);
}
static inline HRESULT IUIFramework_LoadUI(IUIFramework* This,HINSTANCE instance,LPCWSTR resourceName) {
    return This->lpVtbl->LoadUI(This,instance,resourceName);
}
static inline HRESULT IUIFramework_GetView(IUIFramework* This,UINT32 viewId,REFIID riid,void **ppv) {
    return This->lpVtbl->GetView(This,viewId,riid,ppv);
}
static inline HRESULT IUIFramework_GetUICommandProperty(IUIFramework* This,UINT32 commandId,REFPROPERTYKEY key,PROPVARIANT *value) {
    return This->lpVtbl->GetUICommandProperty(This,commandId,key,value);
}
static inline HRESULT IUIFramework_SetUICommandProperty(IUIFramework* This,UINT32 commandId,REFPROPERTYKEY key,REFPROPVARIANT value) {
    return This->lpVtbl->SetUICommandProperty(This,commandId,key,value);
}
static inline HRESULT IUIFramework_InvalidateUICommand(IUIFramework* This,UINT32 commandId,UI_INVALIDATIONS flags,const PROPERTYKEY *key) {
    return This->lpVtbl->InvalidateUICommand(This,commandId,flags,key);
}
static inline HRESULT IUIFramework_FlushPendingInvalidations(IUIFramework* This) {
    return This->lpVtbl->FlushPendingInvalidations(This);
}
static inline HRESULT IUIFramework_SetModes(IUIFramework* This,INT32 iModes) {
    return This->lpVtbl->SetModes(This,iModes);
}
#endif
#endif

#endif


#endif  /* __IUIFramework_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IUIImage interface
 */
#ifndef __IUIImage_INTERFACE_DEFINED__
#define __IUIImage_INTERFACE_DEFINED__

DEFINE_GUID(IID_IUIImage, 0x23c8c838, 0x4de6, 0x436b, 0xab,0x01, 0x55,0x54,0xbb,0x7c,0x30,0xdd);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("23c8c838-4de6-436b-ab01-5554bb7c30dd")
IUIImage : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetBitmap(
        HBITMAP *bitmap) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IUIImage, 0x23c8c838, 0x4de6, 0x436b, 0xab,0x01, 0x55,0x54,0xbb,0x7c,0x30,0xdd)
#endif
#else
typedef struct IUIImageVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IUIImage *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IUIImage *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IUIImage *This);

    /*** IUIImage methods ***/
    HRESULT (STDMETHODCALLTYPE *GetBitmap)(
        IUIImage *This,
        HBITMAP *bitmap);

    END_INTERFACE
} IUIImageVtbl;

interface IUIImage {
    CONST_VTBL IUIImageVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IUIImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IUIImage_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IUIImage_Release(This) (This)->lpVtbl->Release(This)
/*** IUIImage methods ***/
#define IUIImage_GetBitmap(This,bitmap) (This)->lpVtbl->GetBitmap(This,bitmap)
#else
/*** IUnknown methods ***/
static inline HRESULT IUIImage_QueryInterface(IUIImage* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IUIImage_AddRef(IUIImage* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IUIImage_Release(IUIImage* This) {
    return This->lpVtbl->Release(This);
}
/*** IUIImage methods ***/
static inline HRESULT IUIImage_GetBitmap(IUIImage* This,HBITMAP *bitmap) {
    return This->lpVtbl->GetBitmap(This,bitmap);
}
#endif
#endif

#endif


#endif  /* __IUIImage_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IUIRibbon interface
 */
#ifndef __IUIRibbon_INTERFACE_DEFINED__
#define __IUIRibbon_INTERFACE_DEFINED__

DEFINE_GUID(IID_IUIRibbon, 0x803982ab, 0x370a, 0x4f7e, 0xa9,0xe7, 0x87,0x84,0x03,0x6a,0x6e,0x26);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("803982ab-370a-4f7e-a9e7-8784036a6e26")
IUIRibbon : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetHeight(
        UINT32 *cy) = 0;

    virtual HRESULT STDMETHODCALLTYPE LoadSettingsFromStream(
        IStream *pStream) = 0;

    virtual HRESULT STDMETHODCALLTYPE SaveSettingsToStream(
        IStream *pStream) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IUIRibbon, 0x803982ab, 0x370a, 0x4f7e, 0xa9,0xe7, 0x87,0x84,0x03,0x6a,0x6e,0x26)
#endif
#else
typedef struct IUIRibbonVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IUIRibbon *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IUIRibbon *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IUIRibbon *This);

    /*** IUIRibbon methods ***/
    HRESULT (STDMETHODCALLTYPE *GetHeight)(
        IUIRibbon *This,
        UINT32 *cy);

    HRESULT (STDMETHODCALLTYPE *LoadSettingsFromStream)(
        IUIRibbon *This,
        IStream *pStream);

    HRESULT (STDMETHODCALLTYPE *SaveSettingsToStream)(
        IUIRibbon *This,
        IStream *pStream);

    END_INTERFACE
} IUIRibbonVtbl;

interface IUIRibbon {
    CONST_VTBL IUIRibbonVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IUIRibbon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IUIRibbon_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IUIRibbon_Release(This) (This)->lpVtbl->Release(This)
/*** IUIRibbon methods ***/
#define IUIRibbon_GetHeight(This,cy) (This)->lpVtbl->GetHeight(This,cy)
#define IUIRibbon_LoadSettingsFromStream(This,pStream) (This)->lpVtbl->LoadSettingsFromStream(This,pStream)
#define IUIRibbon_SaveSettingsToStream(This,pStream) (This)->lpVtbl->SaveSettingsToStream(This,pStream)
#else
/*** IUnknown methods ***/
static inline HRESULT IUIRibbon_QueryInterface(IUIRibbon* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IUIRibbon_AddRef(IUIRibbon* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IUIRibbon_Release(IUIRibbon* This) {
    return This->lpVtbl->Release(This);
}
/*** IUIRibbon methods ***/
static inline HRESULT IUIRibbon_GetHeight(IUIRibbon* This,UINT32 *cy) {
    return This->lpVtbl->GetHeight(This,cy);
}
static inline HRESULT IUIRibbon_LoadSettingsFromStream(IUIRibbon* This,IStream *pStream) {
    return This->lpVtbl->LoadSettingsFromStream(This,pStream);
}
static inline HRESULT IUIRibbon_SaveSettingsToStream(IUIRibbon* This,IStream *pStream) {
    return This->lpVtbl->SaveSettingsToStream(This,pStream);
}
#endif
#endif

#endif


#endif  /* __IUIRibbon_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IUICollection interface
 */
#ifndef __IUICollection_INTERFACE_DEFINED__
#define __IUICollection_INTERFACE_DEFINED__

DEFINE_GUID(IID_IUICollection, 0xdf4f45bf, 0x6f9d, 0x4dd7, 0x9d,0x68, 0xd8,0xf9,0xcd,0x18,0xc4,0xdb);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("df4f45bf-6f9d-4dd7-9d68-d8f9cd18c4db")
IUICollection : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetCount(
        UINT32 *count) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetItem(
        UINT32 index,
        IUnknown **item) = 0;

    virtual HRESULT STDMETHODCALLTYPE Add(
        IUnknown *item) = 0;

    virtual HRESULT STDMETHODCALLTYPE Insert(
        UINT32 index,
        IUnknown *item) = 0;

    virtual HRESULT STDMETHODCALLTYPE RemoveAt(
        UINT32 index) = 0;

    virtual HRESULT STDMETHODCALLTYPE Replace(
        UINT32 indexReplaced,
        IUnknown *itemReplaceWith) = 0;

    virtual HRESULT STDMETHODCALLTYPE Clear(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IUICollection, 0xdf4f45bf, 0x6f9d, 0x4dd7, 0x9d,0x68, 0xd8,0xf9,0xcd,0x18,0xc4,0xdb)
#endif
#else
typedef struct IUICollectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IUICollection *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IUICollection *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IUICollection *This);

    /*** IUICollection methods ***/
    HRESULT (STDMETHODCALLTYPE *GetCount)(
        IUICollection *This,
        UINT32 *count);

    HRESULT (STDMETHODCALLTYPE *GetItem)(
        IUICollection *This,
        UINT32 index,
        IUnknown **item);

    HRESULT (STDMETHODCALLTYPE *Add)(
        IUICollection *This,
        IUnknown *item);

    HRESULT (STDMETHODCALLTYPE *Insert)(
        IUICollection *This,
        UINT32 index,
        IUnknown *item);

    HRESULT (STDMETHODCALLTYPE *RemoveAt)(
        IUICollection *This,
        UINT32 index);

    HRESULT (STDMETHODCALLTYPE *Replace)(
        IUICollection *This,
        UINT32 indexReplaced,
        IUnknown *itemReplaceWith);

    HRESULT (STDMETHODCALLTYPE *Clear)(
        IUICollection *This);

    END_INTERFACE
} IUICollectionVtbl;

interface IUICollection {
    CONST_VTBL IUICollectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IUICollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IUICollection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IUICollection_Release(This) (This)->lpVtbl->Release(This)
/*** IUICollection methods ***/
#define IUICollection_GetCount(This,count) (This)->lpVtbl->GetCount(This,count)
#define IUICollection_GetItem(This,index,item) (This)->lpVtbl->GetItem(This,index,item)
#define IUICollection_Add(This,item) (This)->lpVtbl->Add(This,item)
#define IUICollection_Insert(This,index,item) (This)->lpVtbl->Insert(This,index,item)
#define IUICollection_RemoveAt(This,index) (This)->lpVtbl->RemoveAt(This,index)
#define IUICollection_Replace(This,indexReplaced,itemReplaceWith) (This)->lpVtbl->Replace(This,indexReplaced,itemReplaceWith)
#define IUICollection_Clear(This) (This)->lpVtbl->Clear(This)
#else
/*** IUnknown methods ***/
static inline HRESULT IUICollection_QueryInterface(IUICollection* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IUICollection_AddRef(IUICollection* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IUICollection_Release(IUICollection* This) {
    return This->lpVtbl->Release(This);
}
/*** IUICollection methods ***/
static inline HRESULT IUICollection_GetCount(IUICollection* This,UINT32 *count) {
    return This->lpVtbl->GetCount(This,count);
}
static inline HRESULT IUICollection_GetItem(IUICollection* This,UINT32 index,IUnknown **item) {
    return This->lpVtbl->GetItem(This,index,item);
}
static inline HRESULT IUICollection_Add(IUICollection* This,IUnknown *item) {
    return This->lpVtbl->Add(This,item);
}
static inline HRESULT IUICollection_Insert(IUICollection* This,UINT32 index,IUnknown *item) {
    return This->lpVtbl->Insert(This,index,item);
}
static inline HRESULT IUICollection_RemoveAt(IUICollection* This,UINT32 index) {
    return This->lpVtbl->RemoveAt(This,index);
}
static inline HRESULT IUICollection_Replace(IUICollection* This,UINT32 indexReplaced,IUnknown *itemReplaceWith) {
    return This->lpVtbl->Replace(This,indexReplaced,itemReplaceWith);
}
static inline HRESULT IUICollection_Clear(IUICollection* This) {
    return This->lpVtbl->Clear(This);
}
#endif
#endif

#endif


#endif  /* __IUICollection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IUIContextualUI interface
 */
#ifndef __IUIContextualUI_INTERFACE_DEFINED__
#define __IUIContextualUI_INTERFACE_DEFINED__

DEFINE_GUID(IID_IUIContextualUI, 0xeea11f37, 0x7c46, 0x437c, 0x8e,0x55, 0xb5,0x21,0x22,0xb2,0x92,0x93);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("eea11f37-7c46-437c-8e55-b52122b29293")
IUIContextualUI : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE ShowAtLocation(
        INT32 x,
        INT32 y) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IUIContextualUI, 0xeea11f37, 0x7c46, 0x437c, 0x8e,0x55, 0xb5,0x21,0x22,0xb2,0x92,0x93)
#endif
#else
typedef struct IUIContextualUIVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IUIContextualUI *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IUIContextualUI *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IUIContextualUI *This);

    /*** IUIContextualUI methods ***/
    HRESULT (STDMETHODCALLTYPE *ShowAtLocation)(
        IUIContextualUI *This,
        INT32 x,
        INT32 y);

    END_INTERFACE
} IUIContextualUIVtbl;

interface IUIContextualUI {
    CONST_VTBL IUIContextualUIVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IUIContextualUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IUIContextualUI_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IUIContextualUI_Release(This) (This)->lpVtbl->Release(This)
/*** IUIContextualUI methods ***/
#define IUIContextualUI_ShowAtLocation(This,x,y) (This)->lpVtbl->ShowAtLocation(This,x,y)
#else
/*** IUnknown methods ***/
static inline HRESULT IUIContextualUI_QueryInterface(IUIContextualUI* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IUIContextualUI_AddRef(IUIContextualUI* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IUIContextualUI_Release(IUIContextualUI* This) {
    return This->lpVtbl->Release(This);
}
/*** IUIContextualUI methods ***/
static inline HRESULT IUIContextualUI_ShowAtLocation(IUIContextualUI* This,INT32 x,INT32 y) {
    return This->lpVtbl->ShowAtLocation(This,x,y);
}
#endif
#endif

#endif


#endif  /* __IUIContextualUI_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IUICollectionChangedEvent interface
 */
#ifndef __IUICollectionChangedEvent_INTERFACE_DEFINED__
#define __IUICollectionChangedEvent_INTERFACE_DEFINED__

DEFINE_GUID(IID_IUICollectionChangedEvent, 0x6502ae91, 0xa14d, 0x44b5, 0xbb,0xd0, 0x62,0xaa,0xcc,0x58,0x1d,0x52);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("6502ae91-a14d-44b5-bbd0-62aacc581d52")
IUICollectionChangedEvent : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE OnChanged(
        UI_COLLECTIONCHANGE action,
        UINT32 oldIndex,
        IUnknown *oldItem,
        UINT32 newIndex,
        IUnknown *newItem) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IUICollectionChangedEvent, 0x6502ae91, 0xa14d, 0x44b5, 0xbb,0xd0, 0x62,0xaa,0xcc,0x58,0x1d,0x52)
#endif
#else
typedef struct IUICollectionChangedEventVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IUICollectionChangedEvent *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IUICollectionChangedEvent *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IUICollectionChangedEvent *This);

    /*** IUICollectionChangedEvent methods ***/
    HRESULT (STDMETHODCALLTYPE *OnChanged)(
        IUICollectionChangedEvent *This,
        UI_COLLECTIONCHANGE action,
        UINT32 oldIndex,
        IUnknown *oldItem,
        UINT32 newIndex,
        IUnknown *newItem);

    END_INTERFACE
} IUICollectionChangedEventVtbl;

interface IUICollectionChangedEvent {
    CONST_VTBL IUICollectionChangedEventVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IUICollectionChangedEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IUICollectionChangedEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IUICollectionChangedEvent_Release(This) (This)->lpVtbl->Release(This)
/*** IUICollectionChangedEvent methods ***/
#define IUICollectionChangedEvent_OnChanged(This,action,oldIndex,oldItem,newIndex,newItem) (This)->lpVtbl->OnChanged(This,action,oldIndex,oldItem,newIndex,newItem)
#else
/*** IUnknown methods ***/
static inline HRESULT IUICollectionChangedEvent_QueryInterface(IUICollectionChangedEvent* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IUICollectionChangedEvent_AddRef(IUICollectionChangedEvent* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IUICollectionChangedEvent_Release(IUICollectionChangedEvent* This) {
    return This->lpVtbl->Release(This);
}
/*** IUICollectionChangedEvent methods ***/
static inline HRESULT IUICollectionChangedEvent_OnChanged(IUICollectionChangedEvent* This,UI_COLLECTIONCHANGE action,UINT32 oldIndex,IUnknown *oldItem,UINT32 newIndex,IUnknown *newItem) {
    return This->lpVtbl->OnChanged(This,action,oldIndex,oldItem,newIndex,newItem);
}
#endif
#endif

#endif


#endif  /* __IUICollectionChangedEvent_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IUIImageFromBitmap interface
 */
#ifndef __IUIImageFromBitmap_INTERFACE_DEFINED__
#define __IUIImageFromBitmap_INTERFACE_DEFINED__

DEFINE_GUID(IID_IUIImageFromBitmap, 0x18aba7f3, 0x4c1c, 0x4ba2, 0xbf,0x6c, 0xf5,0xc3,0x32,0x6f,0xa8,0x16);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("18aba7f3-4c1c-4ba2-bf6c-f5c3326fa816")
IUIImageFromBitmap : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE CreateImage(
        HBITMAP bitmap,
        UI_OWNERSHIP options,
        IUIImage **image) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IUIImageFromBitmap, 0x18aba7f3, 0x4c1c, 0x4ba2, 0xbf,0x6c, 0xf5,0xc3,0x32,0x6f,0xa8,0x16)
#endif
#else
typedef struct IUIImageFromBitmapVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IUIImageFromBitmap *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IUIImageFromBitmap *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IUIImageFromBitmap *This);

    /*** IUIImageFromBitmap methods ***/
    HRESULT (STDMETHODCALLTYPE *CreateImage)(
        IUIImageFromBitmap *This,
        HBITMAP bitmap,
        UI_OWNERSHIP options,
        IUIImage **image);

    END_INTERFACE
} IUIImageFromBitmapVtbl;

interface IUIImageFromBitmap {
    CONST_VTBL IUIImageFromBitmapVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IUIImageFromBitmap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IUIImageFromBitmap_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IUIImageFromBitmap_Release(This) (This)->lpVtbl->Release(This)
/*** IUIImageFromBitmap methods ***/
#define IUIImageFromBitmap_CreateImage(This,bitmap,options,image) (This)->lpVtbl->CreateImage(This,bitmap,options,image)
#else
/*** IUnknown methods ***/
static inline HRESULT IUIImageFromBitmap_QueryInterface(IUIImageFromBitmap* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IUIImageFromBitmap_AddRef(IUIImageFromBitmap* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IUIImageFromBitmap_Release(IUIImageFromBitmap* This) {
    return This->lpVtbl->Release(This);
}
/*** IUIImageFromBitmap methods ***/
static inline HRESULT IUIImageFromBitmap_CreateImage(IUIImageFromBitmap* This,HBITMAP bitmap,UI_OWNERSHIP options,IUIImage **image) {
    return This->lpVtbl->CreateImage(This,bitmap,options,image);
}
#endif
#endif

#endif


#endif  /* __IUIImageFromBitmap_INTERFACE_DEFINED__ */

/*****************************************************************************
 * UIRibbonFramework coclass
 */

DEFINE_GUID(CLSID_UIRibbonFramework, 0x926749fa, 0x2615, 0x4987, 0x88,0x45, 0xc3,0x3e,0x65,0xf2,0xb9,0x57);

#ifdef __cplusplus
class DECLSPEC_UUID("926749fa-2615-4987-8845-c33e65f2b957") UIRibbonFramework;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(UIRibbonFramework, 0x926749fa, 0x2615, 0x4987, 0x88,0x45, 0xc3,0x3e,0x65,0xf2,0xb9,0x57)
#endif
#endif

/*****************************************************************************
 * UIRibbonImageFromBitmapFactory coclass
 */

DEFINE_GUID(CLSID_UIRibbonImageFromBitmapFactory, 0x0f7434b6, 0x59b6, 0x4250, 0x99,0x9e, 0xd1,0x68,0xd6,0xae,0x42,0x93);

#ifdef __cplusplus
class DECLSPEC_UUID("0f7434b6-59b6-4250-999e-d168d6ae4293") UIRibbonImageFromBitmapFactory;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(UIRibbonImageFromBitmapFactory, 0x0f7434b6, 0x59b6, 0x4250, 0x99,0x9e, 0xd1,0x68,0xd6,0xae,0x42,0x93)
#endif
#endif

/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __uiribbon_h__ */
