/*
** Copyright @ 2012-2019, Kingsoft office,All rights reserved.
**
** Redistribution and use in source and binary forms ,without modification and
** selling solely, are permitted provided that the following conditions are
** met:
**
** 1.Redistributions of source code must retain the above copyright notice,
**   this list of conditions and the following disclaimer.
** 2.Redistributions in binary form must reproduce the above copyright notice,
**	 this list of conditions and the following disclaimer in the documentation
**	 and/or other materials provided with the distribution.
** 3.Neither the name of the copyright holder nor the names of its contributors
**	 may be used to endorse or promote products derived from this software
**	 without specific prior written permission.
**
** SPECIAL NOTE:THIS SOFTWARE IS NOT PERMITTED TO BE MODIFIED OR SOLD SOLELY AT
** ANY TIME AND UNDER ANY CIRCUMSTANCES, EXCEPT WITH THE WRITTEN PERMISSION OF
** KINGSOFT OFFICE
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
** POSSIBILITY OF SUCH DAMAGE.
**/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#ifndef __wpsapiex_h__
#define __wpsapiex_h__

#define _EXPORT __attribute__ ((visibility("default")))

/* Forward Declarations */ 

#ifndef ___ApplicationEx_FWD_DEFINED__
#define ___ApplicationEx_FWD_DEFINED__
typedef interface _ApplicationEx _ApplicationEx;
#endif 	/* ___ApplicationEx_FWD_DEFINED__ */


#ifndef __KsoDocumentEx_FWD_DEFINED__
#define __KsoDocumentEx_FWD_DEFINED__
typedef interface KsoDocumentEx KsoDocumentEx;
#endif 	/* __KsoDocumentEx_FWD_DEFINED__ */


#ifndef __WpsCloudService_FWD_DEFINED__
#define __WpsCloudService_FWD_DEFINED__
typedef interface WpsCloudService WpsCloudService;
#endif 	/* __WpsCloudService_FWD_DEFINED__ */


#ifndef __ApplicationEventsEx_FWD_DEFINED__
#define __ApplicationEventsEx_FWD_DEFINED__
typedef interface ApplicationEventsEx ApplicationEventsEx;
#endif 	/* __ApplicationEventsEx_FWD_DEFINED__ */


#ifndef ___DocumentEx_FWD_DEFINED__
#define ___DocumentEx_FWD_DEFINED__
typedef interface _DocumentEx _DocumentEx;
#endif 	/* ___DocumentEx_FWD_DEFINED__ */


#ifndef __WpsApplicationEventsEx_FWD_DEFINED__
#define __WpsApplicationEventsEx_FWD_DEFINED__
typedef interface WpsApplicationEventsEx WpsApplicationEventsEx;
#endif 	/* __WpsApplicationEventsEx_FWD_DEFINED__ */


#ifndef __WppApplicationEventsEx_FWD_DEFINED__
#define __WppApplicationEventsEx_FWD_DEFINED__
typedef interface WppApplicationEventsEx WppApplicationEventsEx;
#endif 	/* __WppApplicationEventsEx_FWD_DEFINED__ */


#ifndef __EtApplicationEventsEx_FWD_DEFINED__
#define __EtApplicationEventsEx_FWD_DEFINED__
typedef interface EtApplicationEventsEx EtApplicationEventsEx;
#endif 	/* __EtApplicationEventsEx_FWD_DEFINED__ */


#ifndef __ApplicationEx_FWD_DEFINED__
#define __ApplicationEx_FWD_DEFINED__

#ifdef __cplusplus
typedef class ApplicationEx ApplicationEx;
#else
typedef struct ApplicationEx ApplicationEx;
#endif /* __cplusplus */

#endif 	/* __ApplicationEx_FWD_DEFINED__ */


#ifndef ___WpsApplicationEx_FWD_DEFINED__
#define ___WpsApplicationEx_FWD_DEFINED__
typedef interface _WpsApplicationEx _WpsApplicationEx;
#endif 	/* ___WpsApplicationEx_FWD_DEFINED__ */


#ifndef __WpsApplicationEx_FWD_DEFINED__
#define __WpsApplicationEx_FWD_DEFINED__

#ifdef __cplusplus
typedef class WpsApplicationEx WpsApplicationEx;
#else
typedef struct WpsApplicationEx WpsApplicationEx;
#endif /* __cplusplus */

#endif 	/* __WpsApplicationEx_FWD_DEFINED__ */


#ifndef __DocumentEx_FWD_DEFINED__
#define __DocumentEx_FWD_DEFINED__

#ifdef __cplusplus
typedef class DocumentEx DocumentEx;
#else
typedef struct DocumentEx DocumentEx;
#endif /* __cplusplus */

#endif 	/* __DocumentEx_FWD_DEFINED__ */


#ifndef __DocumentsEx_FWD_DEFINED__
#define __DocumentsEx_FWD_DEFINED__
typedef interface DocumentsEx DocumentsEx;
#endif 	/* __DocumentsEx_FWD_DEFINED__ */


#ifndef __PictureFormatEx_FWD_DEFINED__
#define __PictureFormatEx_FWD_DEFINED__
typedef interface PictureFormatEx PictureFormatEx;
#endif 	/* __PictureFormatEx_FWD_DEFINED__ */


#ifndef __WaterMark_FWD_DEFINED__
#define __WaterMark_FWD_DEFINED__
typedef interface WaterMark WaterMark;
#endif 	/* __WaterMark_FWD_DEFINED__ */


#ifndef __WaterMarks_FWD_DEFINED__
#define __WaterMarks_FWD_DEFINED__
typedef interface WaterMarks WaterMarks;
#endif 	/* __WaterMarks_FWD_DEFINED__ */


#ifndef __Heading_FWD_DEFINED__
#define __Heading_FWD_DEFINED__
typedef interface Heading Heading;
#endif 	/* __Heading_FWD_DEFINED__ */


#ifndef __Headings_FWD_DEFINED__
#define __Headings_FWD_DEFINED__
typedef interface Headings Headings;
#endif 	/* __Headings_FWD_DEFINED__ */


#ifndef __RangeEx_FWD_DEFINED__
#define __RangeEx_FWD_DEFINED__
typedef interface RangeEx RangeEx;
#endif 	/* __RangeEx_FWD_DEFINED__ */


#ifndef __HeaderFooterEx_FWD_DEFINED__
#define __HeaderFooterEx_FWD_DEFINED__
typedef interface HeaderFooterEx HeaderFooterEx;
#endif 	/* __HeaderFooterEx_FWD_DEFINED__ */


#ifndef ___WppApplicationEx_FWD_DEFINED__
#define ___WppApplicationEx_FWD_DEFINED__
typedef interface _WppApplicationEx _WppApplicationEx;
#endif 	/* ___WppApplicationEx_FWD_DEFINED__ */


#ifndef __WppApplicationEx_FWD_DEFINED__
#define __WppApplicationEx_FWD_DEFINED__

#ifdef __cplusplus
typedef class WppApplicationEx WppApplicationEx;
#else
typedef struct WppApplicationEx WppApplicationEx;
#endif /* __cplusplus */

#endif 	/* __WppApplicationEx_FWD_DEFINED__ */


#ifndef ___PresentationEx_FWD_DEFINED__
#define ___PresentationEx_FWD_DEFINED__
typedef interface _PresentationEx _PresentationEx;
#endif 	/* ___PresentationEx_FWD_DEFINED__ */


#ifndef __PresentationEx_FWD_DEFINED__
#define __PresentationEx_FWD_DEFINED__

#ifdef __cplusplus
typedef class PresentationEx PresentationEx;
#else
typedef struct PresentationEx PresentationEx;
#endif /* __cplusplus */

#endif 	/* __PresentationEx_FWD_DEFINED__ */


#ifndef __PresentationsEx_FWD_DEFINED__
#define __PresentationsEx_FWD_DEFINED__
typedef interface PresentationsEx PresentationsEx;
#endif 	/* __PresentationsEx_FWD_DEFINED__ */


#ifndef ___EtApplicationEx_FWD_DEFINED__
#define ___EtApplicationEx_FWD_DEFINED__
typedef interface _EtApplicationEx _EtApplicationEx;
#endif 	/* ___EtApplicationEx_FWD_DEFINED__ */


#ifndef __EtApplicationEx_FWD_DEFINED__
#define __EtApplicationEx_FWD_DEFINED__

#ifdef __cplusplus
typedef class EtApplicationEx EtApplicationEx;
#else
typedef struct EtApplicationEx EtApplicationEx;
#endif /* __cplusplus */

#endif 	/* __EtApplicationEx_FWD_DEFINED__ */


#ifndef ___WorkbookEx_FWD_DEFINED__
#define ___WorkbookEx_FWD_DEFINED__
typedef interface _WorkbookEx _WorkbookEx;
#endif 	/* ___WorkbookEx_FWD_DEFINED__ */


#ifndef __WorkbookEx_FWD_DEFINED__
#define __WorkbookEx_FWD_DEFINED__

#ifdef __cplusplus
typedef class WorkbookEx WorkbookEx;
#else
typedef struct WorkbookEx WorkbookEx;
#endif /* __cplusplus */

#endif 	/* __WorkbookEx_FWD_DEFINED__ */


#ifndef __WorkbooksEx_FWD_DEFINED__
#define __WorkbooksEx_FWD_DEFINED__
typedef interface WorkbooksEx WorkbooksEx;
#endif 	/* __WorkbooksEx_FWD_DEFINED__ */


#ifndef __EtRangeEx_FWD_DEFINED__
#define __EtRangeEx_FWD_DEFINED__
typedef interface EtRangeEx EtRangeEx;
#endif 	/* __EtRangeEx_FWD_DEFINED__ */

#ifndef __PrintoutPageEx_FWD_DEFINED__
#define __PrintoutPageEx_FWD_DEFINED__
typedef interface PrintoutPageEx PrintoutPageEx;
#endif 	/* __PrintoutPageEx_FWD_DEFINED__ */


#ifdef __cplusplus
extern "C"{
#endif 



#ifndef __WpsApiEx_LIBRARY_DEFINED__
#define __WpsApiEx_LIBRARY_DEFINED__

/* library WpsApiEx */
/* [helpcontext][helpfile][helpstring][version][uuid] */ 

typedef float single;

typedef /* [uuid] */  DECLSPEC_UUID("060FB435-B302-4B18-9E1E-1C4B970F7AA3") 
enum KsoRightsInfo
    {	ksoNoneRight	= 0x0,
	ksoModifyRight	= 0x1,
	ksoCopyRight	= 0x2,
	ksoPrintRight	= 0x4,
	ksoSaveRight	= 0x8,
	ksoBackupRight	= 0x10,
	ksoVbaRight	= 0x20,
	ksoSaveAsRight	= 0x40,
	ksoFullRight	= -1
    } 	KsoRightsInfo;

typedef /* [uuid] */  DECLSPEC_UUID("E8AE6412-70DB-48F3-A585-9B93E7E85219") 
enum KsoWebExtWatchingDataType
    {	ksoInvalidWatchingDataType	= 0x0,
	ksoRangeWatchingDataType	= 0x1
    } 	KsoWebExtWatchingDataType;

typedef /* [uuid] */  DECLSPEC_UUID("CEE7BFC1-E0C7-4F88-91F4-851255281BAB") 
enum KsoWebExtWatchingDataUpdateType
    {	ksoInvalidWatchingDataUpdateType	= 0x0,
	ksoRangeValueChangedUpdateType	= 0x1,
	ksoRangeChangedUpdateType	= 0x2
    } 	KsoWebExtWatchingDataUpdateType;





typedef /* [uuid] */  DECLSPEC_UUID("280D6C34-0CFB-4856-9976-41DBC044A451") 
enum WdWaterMarkType
    {	wdTextWaterMark	= 1,
	wdPictureWaterMark	= 2
    } 	WdWaterMarkType;

typedef /* [uuid] */  DECLSPEC_UUID("A64A77FB-A00C-495A-B202-605CFB51A359") 
enum WdContentChangeType
    {	wdContentInsert	= 0,
	wdContentDelete	= 1,
	wdContentStyle	= 2,
	wdContentHeading	= 3,
	wdContentParaProp	= 4
    } 	WdContentChangeType;

typedef /* [uuid] */  DECLSPEC_UUID("DD27723C-3D19-4F03-A516-A29B34A16DC4") 
enum WdInkDrawPenStyle
    {	wdBallpointPen	= 0,
	wdWatercolorPen	= 1,
	wdHighlighterPen	= 2
    } 	WdInkDrawPenStyle;

typedef /* [uuid] */  DECLSPEC_UUID("4B182AB9-7EF8-4FCE-9534-9E20E6948DAF") 
enum WdInkDrawStyle
    {	WdInkDrawPen	= 0,
	WdInkDrawShape	= 1
    } 	WdInkDrawStyle;

typedef /* [uuid] */  DECLSPEC_UUID("1672C6F9-A2D4-41B8-95B2-307F36CCE358") 
enum WdInkDrawShapeStyle
    {	wdDrawLineShape	= 0,
	wdDrawWaveShape	= 1,
	wdDrawRectShape	= 2
    } 	WdInkDrawShapeStyle;






extern "C++" _EXPORT const IID LIBID_WpsApiEx;

#ifndef ___ApplicationEx_INTERFACE_DEFINED__
#define ___ApplicationEx_INTERFACE_DEFINED__

/* interface _ApplicationEx */
/* [object][oleautomation][nonextensible][dual][hidden][uuid] */ 


extern "C++" _EXPORT const IID IID__ApplicationEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("58C14342-FBE2-42D2-89B2-B8AE8D40AA0F")
    _ApplicationEx : public IDispatch
    {
    public:
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_WpsCloudService( 
            /* [retval][out] */ WpsCloudService **prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SaveRememberStatus( 
            /* [retval][out] */ VARIANT_BOOL *prop) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SaveRememberStatus( 
            /* [in] */ VARIANT_BOOL prop) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateCustomTaskPane( 
            /* [in] */ long wid,
            /* [in] */ BSTR title,
            /* [retval][out] */ IDispatch **prop) = 0;
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ForceBackupEnable(
            /* [in] */ VARIANT_BOOL prop) = 0;

        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ForceBackupEnable(
            /* [retval][out] */ VARIANT_BOOL *prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EmbedWid(
            /* [retval][out] */ unsigned long *wid) = 0;
    };
    
#else 	/* C style interface */

    typedef struct _ApplicationExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            _ApplicationEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            _ApplicationEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            _ApplicationEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            _ApplicationEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            _ApplicationEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            _ApplicationEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            _ApplicationEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WpsCloudService )( 
            _ApplicationEx * This,
            /* [retval][out] */ WpsCloudService **prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SaveRememberStatus )( 
            _ApplicationEx * This,
            /* [retval][out] */ VARIANT_BOOL *prop);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SaveRememberStatus )( 
            _ApplicationEx * This,
            /* [in] */ VARIANT_BOOL prop);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateCustomTaskPane )( 
            _ApplicationEx * This,
            /* [in] */ long wid,
            /* [in] */ BSTR title,
            /* [retval][out] */ IDispatch **prop);
        
        END_INTERFACE
    } _ApplicationExVtbl;

    interface _ApplicationEx
    {
        CONST_VTBL struct _ApplicationExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define _ApplicationEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define _ApplicationEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define _ApplicationEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define _ApplicationEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define _ApplicationEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define _ApplicationEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define _ApplicationEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define _ApplicationEx_get_WpsCloudService(This,prop)	\
    ( (This)->lpVtbl -> get_WpsCloudService(This,prop) ) 

#define _ApplicationEx_get_SaveRememberStatus(This,prop)	\
    ( (This)->lpVtbl -> get_SaveRememberStatus(This,prop) ) 

#define _ApplicationEx_put_SaveRememberStatus(This,prop)	\
    ( (This)->lpVtbl -> put_SaveRememberStatus(This,prop) ) 

#define _ApplicationEx_CreateCustomTaskPane(This,wid,title,prop)	\
    ( (This)->lpVtbl -> CreateCustomTaskPane(This,wid,title,prop) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ___ApplicationEx_INTERFACE_DEFINED__ */


#ifndef __KsoDocumentEx_INTERFACE_DEFINED__
#define __KsoDocumentEx_INTERFACE_DEFINED__

/* interface KsoDocumentEx */
/* [object][oleautomation][nonextensible][dual][hidden][uuid] */ 


extern "C++" _EXPORT const IID IID_KsoDocumentEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2769353F-5DCC-470C-B8DF-D0D9402B6C8A")
    KsoDocumentEx : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE InvalidateRightsInfo( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetSecretLabel( 
            /* [in] */ BSTR param) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct KsoDocumentExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            KsoDocumentEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            KsoDocumentEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            KsoDocumentEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            KsoDocumentEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            KsoDocumentEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            KsoDocumentEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            KsoDocumentEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *InvalidateRightsInfo )( 
            KsoDocumentEx * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetSecretLabel )( 
            KsoDocumentEx * This,
            /* [in] */ BSTR param);
        
        END_INTERFACE
    } KsoDocumentExVtbl;

    interface KsoDocumentEx
    {
        CONST_VTBL struct KsoDocumentExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define KsoDocumentEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define KsoDocumentEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define KsoDocumentEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define KsoDocumentEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define KsoDocumentEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define KsoDocumentEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define KsoDocumentEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define KsoDocumentEx_InvalidateRightsInfo(This)	\
    ( (This)->lpVtbl -> InvalidateRightsInfo(This) ) 

#define KsoDocumentEx_SetSecretLabel(This,param)	\
    ( (This)->lpVtbl -> SetSecretLabel(This,param) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __KsoDocumentEx_INTERFACE_DEFINED__ */


#ifndef __WpsCloudService_INTERFACE_DEFINED__
#define __WpsCloudService_INTERFACE_DEFINED__

/* interface WpsCloudService */
/* [object][oleautomation][nonextensible][dual][hidden][uuid] */ 


extern "C++" _EXPORT const IID IID_WpsCloudService;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3FE948EF-D65D-45EF-A76C-26F7C370F58D")
    WpsCloudService : public IDispatch
    {
    public:
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LoginToken( 
            /* [retval][out] */ BSTR *prop) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE DownloadCloudFile( 
            /* [in] */ BSTR VolumeID,
            /* [in] */ BSTR FileID,
            /* [defaultvalue][optional][in] */ BSTR Path,
            /* [defaultvalue][optional][in] */ VARIANT_BOOL IsAsync,
            /* [retval][out] */ BSTR *OutputPath) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE UploadCloudFile( 
            /* [in] */ BSTR VolumeID,
            /* [in] */ BSTR FileID,
            /* [in] */ BSTR FilePath,
            /* [defaultvalue][optional][in] */ VARIANT_BOOL IsAsync = -1) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct WpsCloudServiceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            WpsCloudService * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            WpsCloudService * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            WpsCloudService * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            WpsCloudService * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            WpsCloudService * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            WpsCloudService * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            WpsCloudService * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoginToken )( 
            WpsCloudService * This,
            /* [retval][out] */ BSTR *prop);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *DownloadCloudFile )( 
            WpsCloudService * This,
            /* [in] */ BSTR VolumeID,
            /* [in] */ BSTR FileID,
            /* [defaultvalue][optional][in] */ BSTR Path,
            /* [defaultvalue][optional][in] */ VARIANT_BOOL IsAsync,
            /* [retval][out] */ BSTR *OutputPath);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *UploadCloudFile )( 
            WpsCloudService * This,
            /* [in] */ BSTR VolumeID,
            /* [in] */ BSTR FileID,
            /* [in] */ BSTR FilePath,
            /* [defaultvalue][optional][in] */ VARIANT_BOOL IsAsync);
        
        END_INTERFACE
    } WpsCloudServiceVtbl;

    interface WpsCloudService
    {
        CONST_VTBL struct WpsCloudServiceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define WpsCloudService_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define WpsCloudService_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define WpsCloudService_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define WpsCloudService_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define WpsCloudService_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define WpsCloudService_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define WpsCloudService_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define WpsCloudService_get_LoginToken(This,prop)	\
    ( (This)->lpVtbl -> get_LoginToken(This,prop) ) 

#define WpsCloudService_DownloadCloudFile(This,VolumeID,FileID,Path,IsAsync,OutputPath)	\
    ( (This)->lpVtbl -> DownloadCloudFile(This,VolumeID,FileID,Path,IsAsync,OutputPath) ) 

#define WpsCloudService_UploadCloudFile(This,VolumeID,FileID,FilePath,IsAsync)	\
    ( (This)->lpVtbl -> UploadCloudFile(This,VolumeID,FileID,FilePath,IsAsync) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __WpsCloudService_INTERFACE_DEFINED__ */


#ifndef __ApplicationEventsEx_DISPINTERFACE_DEFINED__
#define __ApplicationEventsEx_DISPINTERFACE_DEFINED__

/* dispinterface ApplicationEventsEx */
/* [nonextensible][uuid] */ 


extern "C++" _EXPORT const IID DIID_ApplicationEventsEx;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("FB001E43-0460-4D96-9876-75C91CD41B0A")
    ApplicationEventsEx : public IDispatch
    {
    };
    
#else 	/* C style interface */

    typedef struct ApplicationEventsExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ApplicationEventsEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ApplicationEventsEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ApplicationEventsEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ApplicationEventsEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ApplicationEventsEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ApplicationEventsEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ApplicationEventsEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } ApplicationEventsExVtbl;

    interface ApplicationEventsEx
    {
        CONST_VTBL struct ApplicationEventsExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ApplicationEventsEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define ApplicationEventsEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define ApplicationEventsEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define ApplicationEventsEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ApplicationEventsEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ApplicationEventsEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ApplicationEventsEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */


#endif 	/* __ApplicationEventsEx_DISPINTERFACE_DEFINED__ */


#ifndef ___DocumentEx_INTERFACE_DEFINED__
#define ___DocumentEx_INTERFACE_DEFINED__

/* interface _DocumentEx */
/* [object][oleautomation][nonextensible][dual][hidden][uuid] */ 


extern "C++" _EXPORT const IID IID__DocumentEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C8C9D844-72C0-41F5-B6FF-9DA99BE2A812")
    _DocumentEx : public KsoDocumentEx
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SaveAsShm( 
            /* [optional][in] */ VARIANT *FileFormat,
            /* [optional][in] */ VARIANT *LockComments,
            /* [optional][in] */ VARIANT *Password,
            /* [optional][in] */ VARIANT *AddToRecentFiles,
            /* [optional][in] */ VARIANT *WritePassword,
            /* [optional][in] */ VARIANT *ReadOnlyRecommended,
            /* [optional][in] */ VARIANT *EmbedTrueTypeFonts,
            /* [optional][in] */ VARIANT *SaveNativePictureFormat,
            /* [optional][in] */ VARIANT *SaveFormsData,
            /* [optional][in] */ VARIANT *SaveAsAOCELetter,
            /* [optional][in] */ VARIANT *Encoding,
            /* [optional][in] */ VARIANT *InsertLineBreaks,
            /* [optional][in] */ VARIANT *AllowSubstitutions,
            /* [optional][in] */ VARIANT *LineEnding,
            /* [optional][in] */ VARIANT *AddBiDiMarks,
            /* [retval][out] */ BSTR *ShmID) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ShowDocumentFieldTarget( 
            /* [retval][out] */ int *prop) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ShowDocumentFieldTarget( 
            /* [in] */ int prop) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE EnterInkDraw( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE ExitInkDraw( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetInkDrawPenStyle( 
            /* [in] */ long value) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetInkDrawShapeStyle( 
            /* [in] */ long value) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetInkDrawEraser( 
            /* [in] */ VARIANT_BOOL selected) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetInkDrawColor( 
            /* [in] */ BSTR value) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetInkDrawLineStyle( 
            /* [in] */ long value) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetInkDrawStyle( 
            /* [in] */ long value) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE InsertImageFromScanner( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct _DocumentExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            _DocumentEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            _DocumentEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            _DocumentEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            _DocumentEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            _DocumentEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            _DocumentEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            _DocumentEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *InvalidateRightsInfo )( 
            _DocumentEx * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetSecretLabel )( 
            _DocumentEx * This,
            /* [in] */ BSTR param);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SaveAsShm )( 
            _DocumentEx * This,
            /* [optional][in] */ VARIANT *FileFormat,
            /* [optional][in] */ VARIANT *LockComments,
            /* [optional][in] */ VARIANT *Password,
            /* [optional][in] */ VARIANT *AddToRecentFiles,
            /* [optional][in] */ VARIANT *WritePassword,
            /* [optional][in] */ VARIANT *ReadOnlyRecommended,
            /* [optional][in] */ VARIANT *EmbedTrueTypeFonts,
            /* [optional][in] */ VARIANT *SaveNativePictureFormat,
            /* [optional][in] */ VARIANT *SaveFormsData,
            /* [optional][in] */ VARIANT *SaveAsAOCELetter,
            /* [optional][in] */ VARIANT *Encoding,
            /* [optional][in] */ VARIANT *InsertLineBreaks,
            /* [optional][in] */ VARIANT *AllowSubstitutions,
            /* [optional][in] */ VARIANT *LineEnding,
            /* [optional][in] */ VARIANT *AddBiDiMarks,
            /* [retval][out] */ BSTR *ShmID);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowDocumentFieldTarget )( 
            _DocumentEx * This,
            /* [retval][out] */ int *prop);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowDocumentFieldTarget )( 
            _DocumentEx * This,
            /* [in] */ int prop);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *EnterInkDraw )( 
            _DocumentEx * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *ExitInkDraw )( 
            _DocumentEx * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetInkDrawPenStyle )( 
            _DocumentEx * This,
            /* [in] */ long value);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetInkDrawShapeStyle )( 
            _DocumentEx * This,
            /* [in] */ long value);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetInkDrawEraser )( 
            _DocumentEx * This,
            /* [in] */ VARIANT_BOOL selected);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetInkDrawColor )( 
            _DocumentEx * This,
            /* [in] */ BSTR value);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetInkDrawLineStyle )( 
            _DocumentEx * This,
            /* [in] */ long value);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetInkDrawStyle )( 
            _DocumentEx * This,
            /* [in] */ long value);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *InsertImageFromScanner )( 
            _DocumentEx * This);
        
        END_INTERFACE
    } _DocumentExVtbl;

    interface _DocumentEx
    {
        CONST_VTBL struct _DocumentExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define _DocumentEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define _DocumentEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define _DocumentEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define _DocumentEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define _DocumentEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define _DocumentEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define _DocumentEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define _DocumentEx_InvalidateRightsInfo(This)	\
    ( (This)->lpVtbl -> InvalidateRightsInfo(This) ) 

#define _DocumentEx_SetSecretLabel(This,param)	\
    ( (This)->lpVtbl -> SetSecretLabel(This,param) ) 


#define _DocumentEx_SaveAsShm(This,FileFormat,LockComments,Password,AddToRecentFiles,WritePassword,ReadOnlyRecommended,EmbedTrueTypeFonts,SaveNativePictureFormat,SaveFormsData,SaveAsAOCELetter,Encoding,InsertLineBreaks,AllowSubstitutions,LineEnding,AddBiDiMarks,ShmID)	\
    ( (This)->lpVtbl -> SaveAsShm(This,FileFormat,LockComments,Password,AddToRecentFiles,WritePassword,ReadOnlyRecommended,EmbedTrueTypeFonts,SaveNativePictureFormat,SaveFormsData,SaveAsAOCELetter,Encoding,InsertLineBreaks,AllowSubstitutions,LineEnding,AddBiDiMarks,ShmID) ) 

#define _DocumentEx_get_ShowDocumentFieldTarget(This,prop)	\
    ( (This)->lpVtbl -> get_ShowDocumentFieldTarget(This,prop) ) 

#define _DocumentEx_put_ShowDocumentFieldTarget(This,prop)	\
    ( (This)->lpVtbl -> put_ShowDocumentFieldTarget(This,prop) ) 

#define _DocumentEx_EnterInkDraw(This)	\
    ( (This)->lpVtbl -> EnterInkDraw(This) ) 

#define _DocumentEx_ExitInkDraw(This)	\
    ( (This)->lpVtbl -> ExitInkDraw(This) ) 

#define _DocumentEx_SetInkDrawPenStyle(This,value)	\
    ( (This)->lpVtbl -> SetInkDrawPenStyle(This,value) ) 

#define _DocumentEx_SetInkDrawShapeStyle(This,value)	\
    ( (This)->lpVtbl -> SetInkDrawShapeStyle(This,value) ) 

#define _DocumentEx_SetInkDrawEraser(This,selected)	\
    ( (This)->lpVtbl -> SetInkDrawEraser(This,selected) ) 

#define _DocumentEx_SetInkDrawColor(This,value)	\
    ( (This)->lpVtbl -> SetInkDrawColor(This,value) ) 

#define _DocumentEx_SetInkDrawLineStyle(This,value)	\
    ( (This)->lpVtbl -> SetInkDrawLineStyle(This,value) ) 

#define _DocumentEx_SetInkDrawStyle(This,value)	\
    ( (This)->lpVtbl -> SetInkDrawStyle(This,value) ) 

#define _DocumentEx_InsertImageFromScanner(This)	\
    ( (This)->lpVtbl -> InsertImageFromScanner(This) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ___DocumentEx_INTERFACE_DEFINED__ */


#ifndef __WpsApplicationEventsEx_DISPINTERFACE_DEFINED__
#define __WpsApplicationEventsEx_DISPINTERFACE_DEFINED__

/* dispinterface WpsApplicationEventsEx */
/* [nonextensible][uuid] */ 


extern "C++" _EXPORT const IID DIID_WpsApplicationEventsEx;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("699E8713-0458-4E66-8146-087E64D8A482")
    WpsApplicationEventsEx : public IDispatch
    {
    };
    
#else 	/* C style interface */

    typedef struct WpsApplicationEventsExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            WpsApplicationEventsEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            WpsApplicationEventsEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            WpsApplicationEventsEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            WpsApplicationEventsEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            WpsApplicationEventsEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            WpsApplicationEventsEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            WpsApplicationEventsEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } WpsApplicationEventsExVtbl;

    interface WpsApplicationEventsEx
    {
        CONST_VTBL struct WpsApplicationEventsExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define WpsApplicationEventsEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define WpsApplicationEventsEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define WpsApplicationEventsEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define WpsApplicationEventsEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define WpsApplicationEventsEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define WpsApplicationEventsEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define WpsApplicationEventsEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */


#endif 	/* __WpsApplicationEventsEx_DISPINTERFACE_DEFINED__ */


#ifndef __WppApplicationEventsEx_DISPINTERFACE_DEFINED__
#define __WppApplicationEventsEx_DISPINTERFACE_DEFINED__

/* dispinterface WppApplicationEventsEx */
/* [nonextensible][uuid] */ 


extern "C++" _EXPORT const IID DIID_WppApplicationEventsEx;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("BCE49BBA-D8D1-4A2A-910E-99FB75DB2443")
    WppApplicationEventsEx : public IDispatch
    {
    };
    
#else 	/* C style interface */

    typedef struct WppApplicationEventsExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            WppApplicationEventsEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            WppApplicationEventsEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            WppApplicationEventsEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            WppApplicationEventsEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            WppApplicationEventsEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            WppApplicationEventsEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            WppApplicationEventsEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } WppApplicationEventsExVtbl;

    interface WppApplicationEventsEx
    {
        CONST_VTBL struct WppApplicationEventsExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define WppApplicationEventsEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define WppApplicationEventsEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define WppApplicationEventsEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define WppApplicationEventsEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define WppApplicationEventsEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define WppApplicationEventsEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define WppApplicationEventsEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */


#endif 	/* __WppApplicationEventsEx_DISPINTERFACE_DEFINED__ */


#ifndef __EtApplicationEventsEx_DISPINTERFACE_DEFINED__
#define __EtApplicationEventsEx_DISPINTERFACE_DEFINED__

/* dispinterface EtApplicationEventsEx */
/* [nonextensible][uuid] */ 


extern "C++" _EXPORT const IID DIID_EtApplicationEventsEx;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("8BF3A922-7E10-4241-9FD3-654FEDECC52A")
    EtApplicationEventsEx : public IDispatch
    {
    };
    
#else 	/* C style interface */

    typedef struct EtApplicationEventsExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            EtApplicationEventsEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            EtApplicationEventsEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            EtApplicationEventsEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            EtApplicationEventsEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            EtApplicationEventsEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            EtApplicationEventsEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            EtApplicationEventsEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } EtApplicationEventsExVtbl;

    interface EtApplicationEventsEx
    {
        CONST_VTBL struct EtApplicationEventsExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define EtApplicationEventsEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define EtApplicationEventsEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define EtApplicationEventsEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define EtApplicationEventsEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define EtApplicationEventsEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define EtApplicationEventsEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define EtApplicationEventsEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */


#endif 	/* __EtApplicationEventsEx_DISPINTERFACE_DEFINED__ */


extern "C++" _EXPORT const CLSID CLSID_ApplicationEx;

#ifdef __cplusplus

class DECLSPEC_UUID("3298052A-5ED1-4DD2-A82B-BBCF0FB4BCE6")
ApplicationEx;
#endif

#ifndef ___WpsApplicationEx_INTERFACE_DEFINED__
#define ___WpsApplicationEx_INTERFACE_DEFINED__

/* interface _WpsApplicationEx */
/* [object][oleautomation][nonextensible][dual][hidden][uuid] */ 


extern "C++" _EXPORT const IID IID__WpsApplicationEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7CCE8E1F-0043-4118-81EC-66DED46FE832")
    _WpsApplicationEx : public _ApplicationEx
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct _WpsApplicationExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            _WpsApplicationEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            _WpsApplicationEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            _WpsApplicationEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            _WpsApplicationEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            _WpsApplicationEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            _WpsApplicationEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            _WpsApplicationEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WpsCloudService )( 
            _WpsApplicationEx * This,
            /* [retval][out] */ WpsCloudService **prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SaveRememberStatus )( 
            _WpsApplicationEx * This,
            /* [retval][out] */ VARIANT_BOOL *prop);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SaveRememberStatus )( 
            _WpsApplicationEx * This,
            /* [in] */ VARIANT_BOOL prop);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateCustomTaskPane )( 
            _WpsApplicationEx * This,
            /* [in] */ long wid,
            /* [in] */ BSTR title,
            /* [retval][out] */ IDispatch **prop);
        
        END_INTERFACE
    } _WpsApplicationExVtbl;

    interface _WpsApplicationEx
    {
        CONST_VTBL struct _WpsApplicationExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define _WpsApplicationEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define _WpsApplicationEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define _WpsApplicationEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define _WpsApplicationEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define _WpsApplicationEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define _WpsApplicationEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define _WpsApplicationEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define _WpsApplicationEx_get_WpsCloudService(This,prop)	\
    ( (This)->lpVtbl -> get_WpsCloudService(This,prop) ) 

#define _WpsApplicationEx_get_SaveRememberStatus(This,prop)	\
    ( (This)->lpVtbl -> get_SaveRememberStatus(This,prop) ) 

#define _WpsApplicationEx_put_SaveRememberStatus(This,prop)	\
    ( (This)->lpVtbl -> put_SaveRememberStatus(This,prop) ) 

#define _WpsApplicationEx_CreateCustomTaskPane(This,wid,title,prop)	\
    ( (This)->lpVtbl -> CreateCustomTaskPane(This,wid,title,prop) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ___WpsApplicationEx_INTERFACE_DEFINED__ */


extern "C++" _EXPORT const CLSID CLSID_WpsApplicationEx;

#ifdef __cplusplus

class DECLSPEC_UUID("C99FDF97-3CB0-4F44-9F22-F9FA6BD2BB99")
WpsApplicationEx;
#endif

extern "C++" _EXPORT const CLSID CLSID_DocumentEx;

#ifdef __cplusplus

class DECLSPEC_UUID("1593C3FA-A27D-4D3C-8D99-032E2716CC90")
DocumentEx;
#endif

#ifndef __DocumentsEx_INTERFACE_DEFINED__
#define __DocumentsEx_INTERFACE_DEFINED__

/* interface DocumentsEx */
/* [object][oleautomation][nonextensible][dual][hidden][uuid] */ 


extern "C++" _EXPORT const IID IID_DocumentsEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F60F4E79-55EA-4A66-8457-CEBDD47CD221")
    DocumentsEx : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE OpenFromShm( 
            /* [in] */ VARIANT *ShmID,
            /* [optional][in] */ VARIANT *ConfirmConversions,
            /* [optional][in] */ VARIANT *ReadOnly,
            /* [optional][in] */ VARIANT *AddToRecentFiles,
            /* [optional][in] */ VARIANT *PasswordDocument,
            /* [optional][in] */ VARIANT *PasswordTemplate,
            /* [optional][in] */ VARIANT *Revert,
            /* [optional][in] */ VARIANT *WritePasswordDocument,
            /* [optional][in] */ VARIANT *WritePasswordTemplate,
            /* [optional][in] */ VARIANT *Format,
            /* [optional][in] */ VARIANT *Encoding,
            /* [optional][in] */ VARIANT *Visible,
            /* [optional][in] */ VARIANT *OpenAndRepair,
            /* [optional][in] */ VARIANT *DocumentDirection,
            /* [optional][in] */ VARIANT *NoEncodingDialog,
            /* [optional][in] */ VARIANT *XMLTransform,
            /* [retval][out] */ DocumentEx	**prop) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct DocumentsExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            DocumentsEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            DocumentsEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            DocumentsEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            DocumentsEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            DocumentsEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            DocumentsEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            DocumentsEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OpenFromShm )( 
            DocumentsEx * This,
            /* [in] */ VARIANT *ShmID,
            /* [optional][in] */ VARIANT *ConfirmConversions,
            /* [optional][in] */ VARIANT *ReadOnly,
            /* [optional][in] */ VARIANT *AddToRecentFiles,
            /* [optional][in] */ VARIANT *PasswordDocument,
            /* [optional][in] */ VARIANT *PasswordTemplate,
            /* [optional][in] */ VARIANT *Revert,
            /* [optional][in] */ VARIANT *WritePasswordDocument,
            /* [optional][in] */ VARIANT *WritePasswordTemplate,
            /* [optional][in] */ VARIANT *Format,
            /* [optional][in] */ VARIANT *Encoding,
            /* [optional][in] */ VARIANT *Visible,
            /* [optional][in] */ VARIANT *OpenAndRepair,
            /* [optional][in] */ VARIANT *DocumentDirection,
            /* [optional][in] */ VARIANT *NoEncodingDialog,
            /* [optional][in] */ VARIANT *XMLTransform,
            /* [retval][out] */ DocumentEx	**prop);
        
        END_INTERFACE
    } DocumentsExVtbl;

    interface DocumentsEx
    {
        CONST_VTBL struct DocumentsExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define DocumentsEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define DocumentsEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define DocumentsEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define DocumentsEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define DocumentsEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define DocumentsEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define DocumentsEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define DocumentsEx_OpenFromShm(This,ShmID,ConfirmConversions,ReadOnly,AddToRecentFiles,PasswordDocument,PasswordTemplate,Revert,WritePasswordDocument,WritePasswordTemplate,Format,Encoding,Visible,OpenAndRepair,DocumentDirection,NoEncodingDialog,XMLTransform,prop)	\
    ( (This)->lpVtbl -> OpenFromShm(This,ShmID,ConfirmConversions,ReadOnly,AddToRecentFiles,PasswordDocument,PasswordTemplate,Revert,WritePasswordDocument,WritePasswordTemplate,Format,Encoding,Visible,OpenAndRepair,DocumentDirection,NoEncodingDialog,XMLTransform,prop) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __DocumentsEx_INTERFACE_DEFINED__ */


#ifndef __PictureFormatEx_INTERFACE_DEFINED__
#define __PictureFormatEx_INTERFACE_DEFINED__

/* interface PictureFormatEx */
/* [object][oleautomation][nonextensible][dual][version][uuid] */ 


extern "C++" _EXPORT const IID IID_PictureFormatEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9CCCB867-9440-4240-AC05-2F37C6DBA860")
    PictureFormatEx : public IDispatch
    {
    public:
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_PictureID( 
            /* [retval][out] */ BSTR *Md4) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PictureFormatExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PictureFormatEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PictureFormatEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PictureFormatEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PictureFormatEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PictureFormatEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PictureFormatEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PictureFormatEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PictureID )( 
            PictureFormatEx * This,
            /* [retval][out] */ BSTR *Md4);
        
        END_INTERFACE
    } PictureFormatExVtbl;

    interface PictureFormatEx
    {
        CONST_VTBL struct PictureFormatExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define PictureFormatEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define PictureFormatEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define PictureFormatEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define PictureFormatEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define PictureFormatEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define PictureFormatEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define PictureFormatEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define PictureFormatEx_get_PictureID(This,Md4)	\
    ( (This)->lpVtbl -> get_PictureID(This,Md4) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __PictureFormatEx_INTERFACE_DEFINED__ */


#ifndef __WaterMark_INTERFACE_DEFINED__
#define __WaterMark_INTERFACE_DEFINED__

/* interface WaterMark */
/* [object][oleautomation][nonextensible][dual][version][uuid] */ 


extern "C++" _EXPORT const IID IID_WaterMark;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F04B865B-7494-4A32-A23B-D70832B4DE26")
    WaterMark : public IDispatch
    {
    public:
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ WdWaterMarkType *prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Range( 
            /* [retval][out] */ IDispatch **prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Valid( 
            /* [retval][out] */ VARIANT_BOOL *prop) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Delete( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SaveTo( 
            /* [in] */ IDispatch *prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Italic( 
            /* [retval][out] */ VARIANT_BOOL *prop) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Italic( 
            /* [in] */ VARIANT_BOOL prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Left( 
            /* [retval][out] */ single *prop) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Left( 
            /* [in] */ single prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Top( 
            /* [retval][out] */ single *prop) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Top( 
            single prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Text( 
            /* [retval][out] */ BSTR *prop) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Text( 
            /* [in] */ BSTR prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_FontName( 
            /* [retval][out] */ BSTR *prop) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FontName( 
            /* [in] */ BSTR prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_FontColor( 
            /* [retval][out] */ long *prop) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FontColor( 
            /* [in] */ long prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_FontSize( 
            /* [retval][out] */ single *prop) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FontSize( 
            /* [in] */ single prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Transparency( 
            /* [retval][out] */ single *prop) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Transparency( 
            single prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Washout( 
            /* [retval][out] */ VARIANT_BOOL *prop) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Washout( 
            /* [in] */ VARIANT_BOOL prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Zoom( 
            /* [retval][out] */ single *prop) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Zoom( 
            /* [in] */ single prop) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct WaterMarkVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            WaterMark * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            WaterMark * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            WaterMark * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            WaterMark * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            WaterMark * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            WaterMark * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            WaterMark * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            WaterMark * This,
            /* [retval][out] */ WdWaterMarkType *prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Range )( 
            WaterMark * This,
            /* [retval][out] */ IDispatch **prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Valid )( 
            WaterMark * This,
            /* [retval][out] */ VARIANT_BOOL *prop);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( 
            WaterMark * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SaveTo )( 
            WaterMark * This,
            /* [in] */ IDispatch *prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Italic )( 
            WaterMark * This,
            /* [retval][out] */ VARIANT_BOOL *prop);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Italic )( 
            WaterMark * This,
            /* [in] */ VARIANT_BOOL prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Left )( 
            WaterMark * This,
            /* [retval][out] */ single *prop);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Left )( 
            WaterMark * This,
            /* [in] */ single prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Top )( 
            WaterMark * This,
            /* [retval][out] */ single *prop);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Top )( 
            WaterMark * This,
            single prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Text )( 
            WaterMark * This,
            /* [retval][out] */ BSTR *prop);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Text )( 
            WaterMark * This,
            /* [in] */ BSTR prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FontName )( 
            WaterMark * This,
            /* [retval][out] */ BSTR *prop);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FontName )( 
            WaterMark * This,
            /* [in] */ BSTR prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FontColor )( 
            WaterMark * This,
            /* [retval][out] */ long *prop);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FontColor )( 
            WaterMark * This,
            /* [in] */ long prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FontSize )( 
            WaterMark * This,
            /* [retval][out] */ single *prop);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FontSize )( 
            WaterMark * This,
            /* [in] */ single prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Transparency )( 
            WaterMark * This,
            /* [retval][out] */ single *prop);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Transparency )( 
            WaterMark * This,
            single prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Washout )( 
            WaterMark * This,
            /* [retval][out] */ VARIANT_BOOL *prop);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Washout )( 
            WaterMark * This,
            /* [in] */ VARIANT_BOOL prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Zoom )( 
            WaterMark * This,
            /* [retval][out] */ single *prop);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Zoom )( 
            WaterMark * This,
            /* [in] */ single prop);
        
        END_INTERFACE
    } WaterMarkVtbl;

    interface WaterMark
    {
        CONST_VTBL struct WaterMarkVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define WaterMark_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define WaterMark_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define WaterMark_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define WaterMark_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define WaterMark_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define WaterMark_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define WaterMark_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define WaterMark_get_Type(This,prop)	\
    ( (This)->lpVtbl -> get_Type(This,prop) ) 

#define WaterMark_get_Range(This,prop)	\
    ( (This)->lpVtbl -> get_Range(This,prop) ) 

#define WaterMark_get_Valid(This,prop)	\
    ( (This)->lpVtbl -> get_Valid(This,prop) ) 

#define WaterMark_Delete(This)	\
    ( (This)->lpVtbl -> Delete(This) ) 

#define WaterMark_SaveTo(This,prop)	\
    ( (This)->lpVtbl -> SaveTo(This,prop) ) 

#define WaterMark_get_Italic(This,prop)	\
    ( (This)->lpVtbl -> get_Italic(This,prop) ) 

#define WaterMark_put_Italic(This,prop)	\
    ( (This)->lpVtbl -> put_Italic(This,prop) ) 

#define WaterMark_get_Left(This,prop)	\
    ( (This)->lpVtbl -> get_Left(This,prop) ) 

#define WaterMark_put_Left(This,prop)	\
    ( (This)->lpVtbl -> put_Left(This,prop) ) 

#define WaterMark_get_Top(This,prop)	\
    ( (This)->lpVtbl -> get_Top(This,prop) ) 

#define WaterMark_put_Top(This,prop)	\
    ( (This)->lpVtbl -> put_Top(This,prop) ) 

#define WaterMark_get_Text(This,prop)	\
    ( (This)->lpVtbl -> get_Text(This,prop) ) 

#define WaterMark_put_Text(This,prop)	\
    ( (This)->lpVtbl -> put_Text(This,prop) ) 

#define WaterMark_get_FontName(This,prop)	\
    ( (This)->lpVtbl -> get_FontName(This,prop) ) 

#define WaterMark_put_FontName(This,prop)	\
    ( (This)->lpVtbl -> put_FontName(This,prop) ) 

#define WaterMark_get_FontColor(This,prop)	\
    ( (This)->lpVtbl -> get_FontColor(This,prop) ) 

#define WaterMark_put_FontColor(This,prop)	\
    ( (This)->lpVtbl -> put_FontColor(This,prop) ) 

#define WaterMark_get_FontSize(This,prop)	\
    ( (This)->lpVtbl -> get_FontSize(This,prop) ) 

#define WaterMark_put_FontSize(This,prop)	\
    ( (This)->lpVtbl -> put_FontSize(This,prop) ) 

#define WaterMark_get_Transparency(This,prop)	\
    ( (This)->lpVtbl -> get_Transparency(This,prop) ) 

#define WaterMark_put_Transparency(This,prop)	\
    ( (This)->lpVtbl -> put_Transparency(This,prop) ) 

#define WaterMark_get_Washout(This,prop)	\
    ( (This)->lpVtbl -> get_Washout(This,prop) ) 

#define WaterMark_put_Washout(This,prop)	\
    ( (This)->lpVtbl -> put_Washout(This,prop) ) 

#define WaterMark_get_Zoom(This,prop)	\
    ( (This)->lpVtbl -> get_Zoom(This,prop) ) 

#define WaterMark_put_Zoom(This,prop)	\
    ( (This)->lpVtbl -> put_Zoom(This,prop) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __WaterMark_INTERFACE_DEFINED__ */


#ifndef __WaterMarks_INTERFACE_DEFINED__
#define __WaterMarks_INTERFACE_DEFINED__

/* interface WaterMarks */
/* [object][oleautomation][nonextensible][dual][version][uuid] */ 


extern "C++" _EXPORT const IID IID_WaterMarks;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4A0B7C7D-89A2-4203-A9B9-970EEF304106")
    WaterMarks : public IDispatch
    {
    public:
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *prop) = 0;
        
        virtual /* [custom][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ VARIANT *Index,
            /* [retval][out] */ WaterMark **prop) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ WdWaterMarkType Type,
            /* [in] */ IDispatch *HeaderFooter,
            /* [in] */ BSTR Name,
            /* [in] */ VARIANT_BOOL Italic,
            /* [retval][out] */ WaterMark **prop) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddWaterMarks( 
            /* [in] */ WdWaterMarkType Type,
            /* [in] */ VARIANT *Range,
            /* [in] */ BSTR Name,
            /* [in] */ VARIANT_BOOL Italic,
            /* [retval][out] */ WaterMarks **prop) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE DeleteAll( 
            /* [optional][in] */ VARIANT *WaterMarkType) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct WaterMarksVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            WaterMarks * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            WaterMarks * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            WaterMarks * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            WaterMarks * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            WaterMarks * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            WaterMarks * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            WaterMarks * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            WaterMarks * This,
            /* [retval][out] */ IUnknown **prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            WaterMarks * This,
            /* [retval][out] */ long *prop);
        
        /* [custom][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            WaterMarks * This,
            /* [in] */ VARIANT *Index,
            /* [retval][out] */ WaterMark **prop);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            WaterMarks * This,
            /* [in] */ WdWaterMarkType Type,
            /* [in] */ IDispatch *HeaderFooter,
            /* [in] */ BSTR Name,
            /* [in] */ VARIANT_BOOL Italic,
            /* [retval][out] */ WaterMark **prop);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddWaterMarks )( 
            WaterMarks * This,
            /* [in] */ WdWaterMarkType Type,
            /* [in] */ VARIANT *Range,
            /* [in] */ BSTR Name,
            /* [in] */ VARIANT_BOOL Italic,
            /* [retval][out] */ WaterMarks **prop);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *DeleteAll )( 
            WaterMarks * This,
            /* [optional][in] */ VARIANT *WaterMarkType);
        
        END_INTERFACE
    } WaterMarksVtbl;

    interface WaterMarks
    {
        CONST_VTBL struct WaterMarksVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define WaterMarks_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define WaterMarks_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define WaterMarks_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define WaterMarks_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define WaterMarks_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define WaterMarks_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define WaterMarks_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define WaterMarks_get__NewEnum(This,prop)	\
    ( (This)->lpVtbl -> get__NewEnum(This,prop) ) 

#define WaterMarks_get_Count(This,prop)	\
    ( (This)->lpVtbl -> get_Count(This,prop) ) 

#define WaterMarks_Item(This,Index,prop)	\
    ( (This)->lpVtbl -> Item(This,Index,prop) ) 

#define WaterMarks_Add(This,Type,HeaderFooter,Name,Italic,prop)	\
    ( (This)->lpVtbl -> Add(This,Type,HeaderFooter,Name,Italic,prop) ) 

#define WaterMarks_AddWaterMarks(This,Type,Range,Name,Italic,prop)	\
    ( (This)->lpVtbl -> AddWaterMarks(This,Type,Range,Name,Italic,prop) ) 

#define WaterMarks_DeleteAll(This,WaterMarkType)	\
    ( (This)->lpVtbl -> DeleteAll(This,WaterMarkType) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __WaterMarks_INTERFACE_DEFINED__ */


#ifndef __Heading_INTERFACE_DEFINED__
#define __Heading_INTERFACE_DEFINED__

/* interface Heading */
/* [object][oleautomation][nonextensible][dual][version][uuid] */ 


extern "C++" _EXPORT const IID IID_Heading;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("727B38C4-2E61-429C-B535-9C11E24217BA")
    Heading : public IDispatch
    {
    public:
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Level( 
            /* [retval][out] */ long *prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Range( 
            /* [retval][out] */ IDispatch **prop) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct HeadingVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Heading * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Heading * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Heading * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Heading * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Heading * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Heading * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Heading * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Level )( 
            Heading * This,
            /* [retval][out] */ long *prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Range )( 
            Heading * This,
            /* [retval][out] */ IDispatch **prop);
        
        END_INTERFACE
    } HeadingVtbl;

    interface Heading
    {
        CONST_VTBL struct HeadingVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Heading_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define Heading_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define Heading_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define Heading_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define Heading_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define Heading_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define Heading_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define Heading_get_Level(This,prop)	\
    ( (This)->lpVtbl -> get_Level(This,prop) ) 

#define Heading_get_Range(This,prop)	\
    ( (This)->lpVtbl -> get_Range(This,prop) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __Heading_INTERFACE_DEFINED__ */


#ifndef __Headings_INTERFACE_DEFINED__
#define __Headings_INTERFACE_DEFINED__

/* interface Headings */
/* [object][oleautomation][nonextensible][dual][version][uuid] */ 


extern "C++" _EXPORT const IID IID_Headings;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A5F471DB-2318-4F94-97E4-12608CB7A153")
    Headings : public IDispatch
    {
    public:
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ IUnknown **prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *prop) = 0;
        
        virtual /* [custom][id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ long Index,
            /* [retval][out] */ Heading **prop) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct HeadingsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            Headings * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            Headings * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            Headings * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            Headings * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            Headings * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            Headings * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            Headings * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            Headings * This,
            /* [retval][out] */ IUnknown **prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            Headings * This,
            /* [retval][out] */ long *prop);
        
        /* [custom][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            Headings * This,
            /* [in] */ long Index,
            /* [retval][out] */ Heading **prop);
        
        END_INTERFACE
    } HeadingsVtbl;

    interface Headings
    {
        CONST_VTBL struct HeadingsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define Headings_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define Headings_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define Headings_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define Headings_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define Headings_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define Headings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define Headings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define Headings_get__NewEnum(This,prop)	\
    ( (This)->lpVtbl -> get__NewEnum(This,prop) ) 

#define Headings_get_Count(This,prop)	\
    ( (This)->lpVtbl -> get_Count(This,prop) ) 

#define Headings_Item(This,Index,prop)	\
    ( (This)->lpVtbl -> Item(This,Index,prop) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __Headings_INTERFACE_DEFINED__ */


#ifndef __RangeEx_INTERFACE_DEFINED__
#define __RangeEx_INTERFACE_DEFINED__

/* interface RangeEx */
/* [object][oleautomation][nonextensible][dual][version][uuid] */ 


extern "C++" _EXPORT const IID IID_RangeEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D37736A4-33D9-4AEA-8F4F-CFCE1674A3CC")
    RangeEx : public IDispatch
    {
    public:
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_WaterMarks( 
            /* [retval][out] */ WaterMarks **prop) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Headings( 
            /* [retval][out] */ Headings **prop) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct RangeExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            RangeEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            RangeEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            RangeEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            RangeEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            RangeEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            RangeEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            RangeEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WaterMarks )( 
            RangeEx * This,
            /* [retval][out] */ WaterMarks **prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Headings )( 
            RangeEx * This,
            /* [retval][out] */ Headings **prop);
        
        END_INTERFACE
    } RangeExVtbl;

    interface RangeEx
    {
        CONST_VTBL struct RangeExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define RangeEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define RangeEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define RangeEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define RangeEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define RangeEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define RangeEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define RangeEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define RangeEx_get_WaterMarks(This,prop)	\
    ( (This)->lpVtbl -> get_WaterMarks(This,prop) ) 

#define RangeEx_get_Headings(This,prop)	\
    ( (This)->lpVtbl -> get_Headings(This,prop) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __RangeEx_INTERFACE_DEFINED__ */


#ifndef __HeaderFooterEx_INTERFACE_DEFINED__
#define __HeaderFooterEx_INTERFACE_DEFINED__

/* interface HeaderFooterEx */
/* [object][oleautomation][nonextensible][dual][version][uuid] */ 


extern "C++" _EXPORT const IID IID_HeaderFooterEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4A510E15-B583-495E-8646-92478BBB4E95")
    HeaderFooterEx : public IDispatch
    {
    public:
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_WaterMarks( 
            /* [retval][out] */ WaterMarks **prop) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct HeaderFooterExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            HeaderFooterEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            HeaderFooterEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            HeaderFooterEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            HeaderFooterEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            HeaderFooterEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            HeaderFooterEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            HeaderFooterEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WaterMarks )( 
            HeaderFooterEx * This,
            /* [retval][out] */ WaterMarks **prop);
        
        END_INTERFACE
    } HeaderFooterExVtbl;

    interface HeaderFooterEx
    {
        CONST_VTBL struct HeaderFooterExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define HeaderFooterEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define HeaderFooterEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define HeaderFooterEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define HeaderFooterEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define HeaderFooterEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define HeaderFooterEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define HeaderFooterEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define HeaderFooterEx_get_WaterMarks(This,prop)	\
    ( (This)->lpVtbl -> get_WaterMarks(This,prop) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __HeaderFooterEx_INTERFACE_DEFINED__ */


#ifndef ___WppApplicationEx_INTERFACE_DEFINED__
#define ___WppApplicationEx_INTERFACE_DEFINED__

/* interface _WppApplicationEx */
/* [object][oleautomation][nonextensible][dual][hidden][uuid] */ 


extern "C++" _EXPORT const IID IID__WppApplicationEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4632C068-CEAB-4371-A498-06E2437D3589")
    _WppApplicationEx : public _ApplicationEx
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct _WppApplicationExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            _WppApplicationEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            _WppApplicationEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            _WppApplicationEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            _WppApplicationEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            _WppApplicationEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            _WppApplicationEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            _WppApplicationEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WpsCloudService )( 
            _WppApplicationEx * This,
            /* [retval][out] */ WpsCloudService **prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SaveRememberStatus )( 
            _WppApplicationEx * This,
            /* [retval][out] */ VARIANT_BOOL *prop);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SaveRememberStatus )( 
            _WppApplicationEx * This,
            /* [in] */ VARIANT_BOOL prop);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateCustomTaskPane )( 
            _WppApplicationEx * This,
            /* [in] */ long wid,
            /* [in] */ BSTR title,
            /* [retval][out] */ IDispatch **prop);
        
        END_INTERFACE
    } _WppApplicationExVtbl;

    interface _WppApplicationEx
    {
        CONST_VTBL struct _WppApplicationExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define _WppApplicationEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define _WppApplicationEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define _WppApplicationEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define _WppApplicationEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define _WppApplicationEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define _WppApplicationEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define _WppApplicationEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define _WppApplicationEx_get_WpsCloudService(This,prop)	\
    ( (This)->lpVtbl -> get_WpsCloudService(This,prop) ) 

#define _WppApplicationEx_get_SaveRememberStatus(This,prop)	\
    ( (This)->lpVtbl -> get_SaveRememberStatus(This,prop) ) 

#define _WppApplicationEx_put_SaveRememberStatus(This,prop)	\
    ( (This)->lpVtbl -> put_SaveRememberStatus(This,prop) ) 

#define _WppApplicationEx_CreateCustomTaskPane(This,wid,title,prop)	\
    ( (This)->lpVtbl -> CreateCustomTaskPane(This,wid,title,prop) )


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ___WppApplicationEx_INTERFACE_DEFINED__ */


extern "C++" _EXPORT const CLSID CLSID_WppApplicationEx;

#ifdef __cplusplus

class DECLSPEC_UUID("0E8D7132-87CF-45C0-8CAF-6DD3DCE08F23")
WppApplicationEx;
#endif

#ifndef ___PresentationEx_INTERFACE_DEFINED__
#define ___PresentationEx_INTERFACE_DEFINED__

/* interface _PresentationEx */
/* [object][oleautomation][nonextensible][dual][version][uuid] */ 


extern "C++" _EXPORT const IID IID__PresentationEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7759D313-9C91-46E3-BF38-3B6E68E0B1C9")
    _PresentationEx : public KsoDocumentEx
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SaveAsShm( 
            /* [optional][in] */ VARIANT *FileFormat,
            /* [optional][in] */ VARIANT *EmbedTrueTypeFonts,
            /* [retval][out] */ BSTR *ShmID) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct _PresentationExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            _PresentationEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            _PresentationEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            _PresentationEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            _PresentationEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            _PresentationEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            _PresentationEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            _PresentationEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *InvalidateRightsInfo )( 
            _PresentationEx * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetSecretLabel )( 
            _PresentationEx * This,
            /* [in] */ BSTR param);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SaveAsShm )( 
            _PresentationEx * This,
            /* [optional][in] */ VARIANT *FileFormat,
            /* [optional][in] */ VARIANT *EmbedTrueTypeFonts,
            /* [retval][out] */ BSTR *ShmID);
        
        END_INTERFACE
    } _PresentationExVtbl;

    interface _PresentationEx
    {
        CONST_VTBL struct _PresentationExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define _PresentationEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define _PresentationEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define _PresentationEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define _PresentationEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define _PresentationEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define _PresentationEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define _PresentationEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define _PresentationEx_InvalidateRightsInfo(This)	\
    ( (This)->lpVtbl -> InvalidateRightsInfo(This) ) 

#define _PresentationEx_SetSecretLabel(This,param)	\
    ( (This)->lpVtbl -> SetSecretLabel(This,param) ) 


#define _PresentationEx_SaveAsShm(This,FileFormat,EmbedTrueTypeFonts,ShmID)	\
    ( (This)->lpVtbl -> SaveAsShm(This,FileFormat,EmbedTrueTypeFonts,ShmID) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ___PresentationEx_INTERFACE_DEFINED__ */


extern "C++" _EXPORT const CLSID CLSID_PresentationEx;

#ifdef __cplusplus

class DECLSPEC_UUID("0DEC0328-3680-49C8-B148-E194CD1D9F98")
PresentationEx;
#endif

#ifndef __PresentationsEx_INTERFACE_DEFINED__
#define __PresentationsEx_INTERFACE_DEFINED__

/* interface PresentationsEx */
/* [object][oleautomation][nonextensible][dual][hidden][uuid] */ 


extern "C++" _EXPORT const IID IID_PresentationsEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F60F4E79-55EA-4A66-8457-CEBDD47C3143")
    PresentationsEx : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE OpenFromShm( 
            /* [in] */ BSTR ShmID,
            /* [optional][in] */ VARIANT Password,
            /* [optional][in] */ VARIANT ModifyPassword,
            /* [defaultvalue][optional][in] */ int ReadOnly,
            /* [defaultvalue][optional][in] */ int Untitled,
            /* [defaultvalue][optional][in] */ int WithWindow,
            /* [retval][out] */ PresentationEx	**Open) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PresentationsExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PresentationsEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PresentationsEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PresentationsEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PresentationsEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PresentationsEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PresentationsEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PresentationsEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OpenFromShm )( 
            PresentationsEx * This,
            /* [in] */ BSTR ShmID,
            /* [optional][in] */ VARIANT Password,
            /* [optional][in] */ VARIANT ModifyPassword,
            /* [defaultvalue][optional][in] */ int ReadOnly,
            /* [defaultvalue][optional][in] */ int Untitled,
            /* [defaultvalue][optional][in] */ int WithWindow,
            /* [retval][out] */ PresentationEx	**Open);
        
        END_INTERFACE
    } PresentationsExVtbl;

    interface PresentationsEx
    {
        CONST_VTBL struct PresentationsExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define PresentationsEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define PresentationsEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define PresentationsEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define PresentationsEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define PresentationsEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define PresentationsEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define PresentationsEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define PresentationsEx_OpenFromShm(This,ShmID,Password,ModifyPassword,ReadOnly,Untitled,WithWindow,Open)	\
    ( (This)->lpVtbl -> OpenFromShm(This,ShmID,Password,ModifyPassword,ReadOnly,Untitled,WithWindow,Open) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __PresentationsEx_INTERFACE_DEFINED__ */


#ifndef ___EtApplicationEx_INTERFACE_DEFINED__
#define ___EtApplicationEx_INTERFACE_DEFINED__

/* interface _EtApplicationEx */
/* [object][oleautomation][nonextensible][dual][hidden][uuid] */ 


extern "C++" _EXPORT const IID IID__EtApplicationEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8260F274-8256-4707-B65E-7408312ECD81")
    _EtApplicationEx : public _ApplicationEx
    {
    public:
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EmbedTrueTypeFonts( 
            /* [retval][out] */ VARIANT_BOOL *RHS) = 0;
        
        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EmbedTrueTypeFonts( 
            /* [in] */ VARIANT_BOOL RHS) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct _EtApplicationExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            _EtApplicationEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            _EtApplicationEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            _EtApplicationEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            _EtApplicationEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            _EtApplicationEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            _EtApplicationEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            _EtApplicationEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WpsCloudService )( 
            _EtApplicationEx * This,
            /* [retval][out] */ WpsCloudService **prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SaveRememberStatus )( 
            _EtApplicationEx * This,
            /* [retval][out] */ VARIANT_BOOL *prop);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SaveRememberStatus )( 
            _EtApplicationEx * This,
            /* [in] */ VARIANT_BOOL prop);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EmbedTrueTypeFonts )( 
            _EtApplicationEx * This,
            /* [retval][out] */ VARIANT_BOOL *RHS);
        
        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EmbedTrueTypeFonts )( 
            _EtApplicationEx * This,
            /* [in] */ VARIANT_BOOL RHS);

        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateCustomTaskPane )( 
            _EtApplicationEx * This,
            /* [in] */ long wid,
            /* [in] */ BSTR title,
            /* [retval][out] */ IDispatch **prop);
        
        END_INTERFACE
    } _EtApplicationExVtbl;

    interface _EtApplicationEx
    {
        CONST_VTBL struct _EtApplicationExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define _EtApplicationEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define _EtApplicationEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define _EtApplicationEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define _EtApplicationEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define _EtApplicationEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define _EtApplicationEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define _EtApplicationEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define _EtApplicationEx_get_WpsCloudService(This,prop)	\
    ( (This)->lpVtbl -> get_WpsCloudService(This,prop) ) 

#define _EtApplicationEx_get_SaveRememberStatus(This,prop)	\
    ( (This)->lpVtbl -> get_SaveRememberStatus(This,prop) ) 

#define _EtApplicationEx_put_SaveRememberStatus(This,prop)	\
    ( (This)->lpVtbl -> put_SaveRememberStatus(This,prop) ) 


#define _EtApplicationEx_get_EmbedTrueTypeFonts(This,RHS)	\
    ( (This)->lpVtbl -> get_EmbedTrueTypeFonts(This,RHS) ) 

#define _EtApplicationEx_put_EmbedTrueTypeFonts(This,RHS)	\
    ( (This)->lpVtbl -> put_EmbedTrueTypeFonts(This,RHS) ) 

#define _EtApplicationEx_CreateCustomTaskPane(This,wid,title,prop)	\
    ( (This)->lpVtbl -> CreateCustomTaskPane(This,wid,title,prop) ) 


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ___EtApplicationEx_INTERFACE_DEFINED__ */


extern "C++" _EXPORT const CLSID CLSID_EtApplicationEx;

#ifdef __cplusplus

class DECLSPEC_UUID("5A680089-6E41-4372-AC22-98BF670EF45B")
EtApplicationEx;
#endif

#ifndef ___WorkbookEx_INTERFACE_DEFINED__
#define ___WorkbookEx_INTERFACE_DEFINED__

/* interface _WorkbookEx */
/* [object][oleautomation][nonextensible][dual][version][uuid] */ 


extern "C++" _EXPORT const IID IID__WorkbookEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5FBD9F1F-ECAC-4A34-94A3-7E496854DE84")
    _WorkbookEx : public KsoDocumentEx
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SaveAsShm( 
            /* [optional][in] */ VARIANT *FileFormat,
            /* [optional][in] */ VARIANT *Password,
            /* [optional][in] */ VARIANT *WriteResPassword,
            /* [optional][in] */ VARIANT *ReadOnlyRecommended,
            /* [optional][in] */ VARIANT *CreateBackup,
            /* [optional][in] */ VARIANT *AccessMode,
            /* [optional][in] */ VARIANT *ConflictResolution,
            /* [optional][in] */ VARIANT *AddToMru,
            /* [optional][in] */ VARIANT *TextCodepage,
            /* [optional][in] */ VARIANT *TextVisualLayout,
            /* [optional][in] */ VARIANT *Local,
            /* [optional][in] */ VARIANT *lcid,
            /* [retval][out] */ BSTR *ShmID) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE get_CellText(long nIdx, VARIANT* pArrayData) = 0;
    };
    
#else 	/* C style interface */

    typedef struct _WorkbookExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            _WorkbookEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            _WorkbookEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            _WorkbookEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            _WorkbookEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            _WorkbookEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            _WorkbookEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            _WorkbookEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *InvalidateRightsInfo )( 
            _WorkbookEx * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetSecretLabel )( 
            _WorkbookEx * This,
            /* [in] */ BSTR param);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SaveAsShm )( 
            _WorkbookEx * This,
            /* [optional][in] */ VARIANT *FileFormat,
            /* [optional][in] */ VARIANT *Password,
            /* [optional][in] */ VARIANT *WriteResPassword,
            /* [optional][in] */ VARIANT *ReadOnlyRecommended,
            /* [optional][in] */ VARIANT *CreateBackup,
            /* [optional][in] */ VARIANT *AccessMode,
            /* [optional][in] */ VARIANT *ConflictResolution,
            /* [optional][in] */ VARIANT *AddToMru,
            /* [optional][in] */ VARIANT *TextCodepage,
            /* [optional][in] */ VARIANT *TextVisualLayout,
            /* [optional][in] */ VARIANT *Local,
            /* [optional][in] */ VARIANT *lcid,
            /* [retval][out] */ BSTR *ShmID);
        
        END_INTERFACE
    } _WorkbookExVtbl;

    interface _WorkbookEx
    {
        CONST_VTBL struct _WorkbookExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define _WorkbookEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define _WorkbookEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define _WorkbookEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define _WorkbookEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define _WorkbookEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define _WorkbookEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define _WorkbookEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define _WorkbookEx_InvalidateRightsInfo(This)	\
    ( (This)->lpVtbl -> InvalidateRightsInfo(This) ) 

#define _WorkbookEx_SetSecretLabel(This,param)	\
    ( (This)->lpVtbl -> SetSecretLabel(This,param) ) 


#define _WorkbookEx_SaveAsShm(This,FileFormat,Password,WriteResPassword,ReadOnlyRecommended,CreateBackup,AccessMode,ConflictResolution,AddToMru,TextCodepage,TextVisualLayout,Local,lcid,ShmID)	\
    ( (This)->lpVtbl -> SaveAsShm(This,FileFormat,Password,WriteResPassword,ReadOnlyRecommended,CreateBackup,AccessMode,ConflictResolution,AddToMru,TextCodepage,TextVisualLayout,Local,lcid,ShmID) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ___WorkbookEx_INTERFACE_DEFINED__ */


extern "C++" _EXPORT const CLSID CLSID_WorkbookEx;

#ifdef __cplusplus

class DECLSPEC_UUID("2E114779-C99C-416E-9D4D-ECD8BAAC51B2")
WorkbookEx;
#endif

#ifndef __WorkbooksEx_INTERFACE_DEFINED__
#define __WorkbooksEx_INTERFACE_DEFINED__

/* interface WorkbooksEx */
/* [object][oleautomation][nonextensible][dual][hidden][uuid] */ 


extern "C++" _EXPORT const IID IID_WorkbooksEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F60F4E79-55EA-4A66-8457-CEBDD47C9793")
    WorkbooksEx : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE OpenFromShm( 
            /* [in] */ BSTR ShmID,
            /* [optional][in] */ VARIANT UpdateLinks,
            /* [optional][in] */ VARIANT ReadOnly,
            /* [optional][in] */ VARIANT Format,
            /* [optional][in] */ VARIANT Password,
            /* [optional][in] */ VARIANT WriteResPassword,
            /* [optional][in] */ VARIANT IgnoreReadOnlyRecommended,
            /* [optional][in] */ VARIANT Origin,
            /* [optional][in] */ VARIANT Delimiter,
            /* [optional][in] */ VARIANT Editable,
            /* [optional][in] */ VARIANT Notify,
            /* [optional][in] */ VARIANT Converter,
            /* [optional][in] */ VARIANT AddToMru,
            /* [optional][in] */ VARIANT Local,
            /* [optional][in] */ VARIANT CorruptLoad,
            /* [lcid][in] */ long lcid,
            /* [retval][out] */ WorkbookEx	**RHS) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Open( 
            /* [in] */ BSTR Filename,
            /* [optional][in] */ VARIANT UpdateLinks,
            /* [optional][in] */ VARIANT ReadOnly,
            /* [optional][in] */ VARIANT Format,
            /* [optional][in] */ VARIANT Password,
            /* [optional][in] */ VARIANT WriteResPassword,
            /* [optional][in] */ VARIANT IgnoreReadOnlyRecommended,
            /* [optional][in] */ VARIANT Origin,
            /* [optional][in] */ VARIANT Delimiter,
            /* [optional][in] */ VARIANT Editable,
            /* [optional][in] */ VARIANT Notify,
            /* [optional][in] */ VARIANT Converter,
            /* [optional][in] */ VARIANT AddToMru,
            /* [optional][in] */ VARIANT Local,
            /* [optional][in] */ VARIANT CorruptLoad,
            /* [optional][in] */ long lcid,
            /* [optional][in] */ VARIANT Visible,
            /* [retval][out] */ WorkbookEx	**RHS) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct WorkbooksExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            WorkbooksEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            WorkbooksEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            WorkbooksEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            WorkbooksEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            WorkbooksEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            WorkbooksEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            WorkbooksEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OpenFromShm )( 
            WorkbooksEx * This,
            /* [in] */ BSTR ShmID,
            /* [optional][in] */ VARIANT UpdateLinks,
            /* [optional][in] */ VARIANT ReadOnly,
            /* [optional][in] */ VARIANT Format,
            /* [optional][in] */ VARIANT Password,
            /* [optional][in] */ VARIANT WriteResPassword,
            /* [optional][in] */ VARIANT IgnoreReadOnlyRecommended,
            /* [optional][in] */ VARIANT Origin,
            /* [optional][in] */ VARIANT Delimiter,
            /* [optional][in] */ VARIANT Editable,
            /* [optional][in] */ VARIANT Notify,
            /* [optional][in] */ VARIANT Converter,
            /* [optional][in] */ VARIANT AddToMru,
            /* [optional][in] */ VARIANT Local,
            /* [optional][in] */ VARIANT CorruptLoad,
            /* [lcid][in] */ long lcid,
            /* [retval][out] */ WorkbookEx	**RHS);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Open )( 
            WorkbooksEx * This,
            /* [in] */ BSTR Filename,
            /* [optional][in] */ VARIANT UpdateLinks,
            /* [optional][in] */ VARIANT ReadOnly,
            /* [optional][in] */ VARIANT Format,
            /* [optional][in] */ VARIANT Password,
            /* [optional][in] */ VARIANT WriteResPassword,
            /* [optional][in] */ VARIANT IgnoreReadOnlyRecommended,
            /* [optional][in] */ VARIANT Origin,
            /* [optional][in] */ VARIANT Delimiter,
            /* [optional][in] */ VARIANT Editable,
            /* [optional][in] */ VARIANT Notify,
            /* [optional][in] */ VARIANT Converter,
            /* [optional][in] */ VARIANT AddToMru,
            /* [optional][in] */ VARIANT Local,
            /* [optional][in] */ VARIANT CorruptLoad,
            /* [optional][in] */ long lcid,
            /* [optional][in] */ VARIANT Visible,
            /* [retval][out] */ WorkbookEx	**RHS);
        
        END_INTERFACE
    } WorkbooksExVtbl;

    interface WorkbooksEx
    {
        CONST_VTBL struct WorkbooksExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define WorkbooksEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define WorkbooksEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define WorkbooksEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define WorkbooksEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define WorkbooksEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define WorkbooksEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define WorkbooksEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define WorkbooksEx_OpenFromShm(This,ShmID,UpdateLinks,ReadOnly,Format,Password,WriteResPassword,IgnoreReadOnlyRecommended,Origin,Delimiter,Editable,Notify,Converter,AddToMru,Local,CorruptLoad,lcid,RHS)	\
    ( (This)->lpVtbl -> OpenFromShm(This,ShmID,UpdateLinks,ReadOnly,Format,Password,WriteResPassword,IgnoreReadOnlyRecommended,Origin,Delimiter,Editable,Notify,Converter,AddToMru,Local,CorruptLoad,lcid,RHS) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __WorkbooksEx_INTERFACE_DEFINED__ */


#ifndef __EtRangeEx_INTERFACE_DEFINED__
#define __EtRangeEx_INTERFACE_DEFINED__

/* interface EtRangeEx */
/* [object][oleautomation][nonextensible][dual][version][uuid] */ 


extern "C++" _EXPORT const IID IID_EtRangeEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("766FBB6D-7576-4C00-8CE7-C548751812B3")
    EtRangeEx : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE MinimumDataRange( 
            /* [retval][out] */ VARIANT *pRange) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE TextInJSON( 
            /* [retval][out] */ BSTR *pTextInJSON) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct EtRangeExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            EtRangeEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            EtRangeEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            EtRangeEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            EtRangeEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            EtRangeEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            EtRangeEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            EtRangeEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *MinimumDataRange )( 
            EtRangeEx * This,
            /* [retval][out] */ VARIANT *pRange);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *TextInJSON )( 
            EtRangeEx * This,
            /* [retval][out] */ BSTR *pTextInJSON);
        
        END_INTERFACE
    } EtRangeExVtbl;

    interface EtRangeEx
    {
        CONST_VTBL struct EtRangeExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define EtRangeEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define EtRangeEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define EtRangeEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define EtRangeEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define EtRangeEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define EtRangeEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define EtRangeEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define EtRangeEx_MinimumDataRange(This,pRange)	\
    ( (This)->lpVtbl -> MinimumDataRange(This,pRange) ) 

#define EtRangeEx_TextInJSON(This,pTextInJSON)	\
    ( (This)->lpVtbl -> TextInJSON(This,pTextInJSON) ) 

#define WorkbooksEx_Open(This,Filename,UpdateLinks,ReadOnly,Format,Password,WriteResPassword,IgnoreReadOnlyRecommended,Origin,Delimiter,Editable,Notify,Converter,AddToMru,Local,CorruptLoad,lcid,Visible,RHS)	\
    ( (This)->lpVtbl -> Open(This,Filename,UpdateLinks,ReadOnly,Format,Password,WriteResPassword,IgnoreReadOnlyRecommended,Origin,Delimiter,Editable,Notify,Converter,AddToMru,Local,CorruptLoad,lcid,Visible,RHS) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __EtRangeEx_INTERFACE_DEFINED__ */


#ifndef __PrintoutPageEx_INTERFACE_DEFINED__
#define __PrintoutPageEx_INTERFACE_DEFINED__

/* interface PrintoutPageEx */
/* [object][oleautomation][nonextensible][dual][hidden][uuid] */ 


extern "C++" _EXPORT const IID IID_PrintoutPageEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7B648A37-4035-427E-B764-0D8B0F683F9C")
    PrintoutPageEx : public IDispatch
    {
    public:
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_PrintOutRange( 
            /* [retval][out] */ int *printOutRange) = 0;
        
        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_PrintOutPages( 
            /* [retval][out] */ BSTR *pages) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct PrintoutPageExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            PrintoutPageEx * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            PrintoutPageEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            PrintoutPageEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            PrintoutPageEx * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            PrintoutPageEx * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            PrintoutPageEx * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            PrintoutPageEx * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PrintOutRange )( 
            PrintoutPageEx * This,
            /* [retval][out] */ int *printOutRange);
        
        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PrintOutPages )( 
            PrintoutPageEx * This,
            /* [retval][out] */ BSTR *pages);
        
        END_INTERFACE
    } PrintoutPageExVtbl;

    interface PrintoutPageEx
    {
        CONST_VTBL struct PrintoutPageExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define PrintoutPageEx_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define PrintoutPageEx_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define PrintoutPageEx_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define PrintoutPageEx_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define PrintoutPageEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define PrintoutPageEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define PrintoutPageEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define PrintoutPageEx_get_PrintOutRange(This,printOutRange)	\
    ( (This)->lpVtbl -> get_PrintOutRange(This,printOutRange) ) 

#define PrintoutPageEx_get_PrintOutPages(This,pages)	\
    ( (This)->lpVtbl -> get_PrintOutPages(This,pages) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __PrintoutPageEx_INTERFACE_DEFINED__ */

#endif /* __WpsApiEx_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

}


#ifdef __cplusplus
template<> inline const GUID& non_native_uuidof<wpsapiex::_ApplicationEx>() { return wpsapiex::IID__ApplicationEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::KsoDocumentEx>() { return wpsapiex::IID_KsoDocumentEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::WpsCloudService>() { return wpsapiex::IID_WpsCloudService; }
template<> inline const GUID& non_native_uuidof<wpsapiex::ApplicationEventsEx>() { return wpsapiex::DIID_ApplicationEventsEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::_DocumentEx>() { return wpsapiex::IID__DocumentEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::WpsApplicationEventsEx>() { return wpsapiex::DIID_WpsApplicationEventsEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::WppApplicationEventsEx>() { return wpsapiex::DIID_WppApplicationEventsEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::EtApplicationEventsEx>() { return wpsapiex::DIID_EtApplicationEventsEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::ApplicationEx>() { return wpsapiex::CLSID_ApplicationEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::_WpsApplicationEx>() { return wpsapiex::IID__WpsApplicationEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::WpsApplicationEx>() { return wpsapiex::CLSID_WpsApplicationEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::DocumentEx>() { return wpsapiex::CLSID_DocumentEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::DocumentsEx>() { return wpsapiex::IID_DocumentsEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::PictureFormatEx>() { return wpsapiex::IID_PictureFormatEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::WaterMark>() { return wpsapiex::IID_WaterMark; }
template<> inline const GUID& non_native_uuidof<wpsapiex::WaterMarks>() { return wpsapiex::IID_WaterMarks; }
template<> inline const GUID& non_native_uuidof<wpsapiex::Heading>() { return wpsapiex::IID_Heading; }
template<> inline const GUID& non_native_uuidof<wpsapiex::Headings>() { return wpsapiex::IID_Headings; }
template<> inline const GUID& non_native_uuidof<wpsapiex::RangeEx>() { return wpsapiex::IID_RangeEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::HeaderFooterEx>() { return wpsapiex::IID_HeaderFooterEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::_WppApplicationEx>() { return wpsapiex::IID__WppApplicationEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::WppApplicationEx>() { return wpsapiex::CLSID_WppApplicationEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::_PresentationEx>() { return wpsapiex::IID__PresentationEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::PresentationEx>() { return wpsapiex::CLSID_PresentationEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::PresentationsEx>() { return wpsapiex::IID_PresentationsEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::_EtApplicationEx>() { return wpsapiex::IID__EtApplicationEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::EtApplicationEx>() { return wpsapiex::CLSID_EtApplicationEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::_WorkbookEx>() { return wpsapiex::IID__WorkbookEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::WorkbookEx>() { return wpsapiex::CLSID_WorkbookEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::WorkbooksEx>() { return wpsapiex::IID_WorkbooksEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::EtRangeEx>() { return wpsapiex::IID_EtRangeEx; }
template<> inline const GUID& non_native_uuidof<wpsapiex::PrintoutPageEx>() { return wpsapiex::IID_PrintoutPageEx; }

#endif

namespace wpsapiex{
#endif
