/*** Autogenerated by WIDL 9.0 from include/xpsobjectmodel_1.idl - Do not edit ***/

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

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

#ifndef __xpsobjectmodel_1_h__
#define __xpsobjectmodel_1_h__

#ifndef __WIDL_INLINE
#if defined(__cplusplus) || defined(_MSC_VER)
#define __WIDL_INLINE inline
#elif defined(__GNUC__)
#define __WIDL_INLINE __inline__
#endif
#endif

/* Forward declarations */

#ifndef __IXpsDocumentPackageTarget_FWD_DEFINED__
#define __IXpsDocumentPackageTarget_FWD_DEFINED__
typedef interface IXpsDocumentPackageTarget IXpsDocumentPackageTarget;
#ifdef __cplusplus
interface IXpsDocumentPackageTarget;
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <xpsobjectmodel.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef enum __WIDL_xpsobjectmodel_1_generated_name_0000002D {
    XPS_DOCUMENT_TYPE_UNSPECIFIED = 1,
    XPS_DOCUMENT_TYPE_XPS = 2,
    XPS_DOCUMENT_TYPE_OPENXPS = 3
} XPS_DOCUMENT_TYPE;
/*****************************************************************************
 * IXpsDocumentPackageTarget interface
 */
#ifndef __IXpsDocumentPackageTarget_INTERFACE_DEFINED__
#define __IXpsDocumentPackageTarget_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXpsDocumentPackageTarget, 0x3b0b6d38, 0x53ad, 0x41da, 0xb2,0x12, 0xd3,0x76,0x37,0xa6,0x71,0x4e);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("3b0b6d38-53ad-41da-b212-d37637a6714e")
IXpsDocumentPackageTarget : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetXpsOMPackageWriter(
        IOpcPartUri *documentpart,
        IOpcPartUri *controlpart,
        IXpsOMPackageWriter **writer) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetXpsOMFactory(
        IXpsOMObjectFactory **factory) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetXpsType(
        XPS_DOCUMENT_TYPE *document_type) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXpsDocumentPackageTarget, 0x3b0b6d38, 0x53ad, 0x41da, 0xb2,0x12, 0xd3,0x76,0x37,0xa6,0x71,0x4e)
#endif
#else
typedef struct IXpsDocumentPackageTargetVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IXpsDocumentPackageTarget methods ***/
    HRESULT (STDMETHODCALLTYPE *GetXpsOMPackageWriter)(
        IXpsDocumentPackageTarget *This,
        IOpcPartUri *documentpart,
        IOpcPartUri *controlpart,
        IXpsOMPackageWriter **writer);

    HRESULT (STDMETHODCALLTYPE *GetXpsOMFactory)(
        IXpsDocumentPackageTarget *This,
        IXpsOMObjectFactory **factory);

    HRESULT (STDMETHODCALLTYPE *GetXpsType)(
        IXpsDocumentPackageTarget *This,
        XPS_DOCUMENT_TYPE *document_type);

    END_INTERFACE
} IXpsDocumentPackageTargetVtbl;

interface IXpsDocumentPackageTarget {
    CONST_VTBL IXpsDocumentPackageTargetVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IXpsDocumentPackageTarget_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXpsDocumentPackageTarget_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXpsDocumentPackageTarget_Release(This) (This)->lpVtbl->Release(This)
/*** IXpsDocumentPackageTarget methods ***/
#define IXpsDocumentPackageTarget_GetXpsOMPackageWriter(This,documentpart,controlpart,writer) (This)->lpVtbl->GetXpsOMPackageWriter(This,documentpart,controlpart,writer)
#define IXpsDocumentPackageTarget_GetXpsOMFactory(This,factory) (This)->lpVtbl->GetXpsOMFactory(This,factory)
#define IXpsDocumentPackageTarget_GetXpsType(This,document_type) (This)->lpVtbl->GetXpsType(This,document_type)
#else
/*** IUnknown methods ***/
static __WIDL_INLINE HRESULT IXpsDocumentPackageTarget_QueryInterface(IXpsDocumentPackageTarget* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static __WIDL_INLINE ULONG IXpsDocumentPackageTarget_AddRef(IXpsDocumentPackageTarget* This) {
    return This->lpVtbl->AddRef(This);
}
static __WIDL_INLINE ULONG IXpsDocumentPackageTarget_Release(IXpsDocumentPackageTarget* This) {
    return This->lpVtbl->Release(This);
}
/*** IXpsDocumentPackageTarget methods ***/
static __WIDL_INLINE HRESULT IXpsDocumentPackageTarget_GetXpsOMPackageWriter(IXpsDocumentPackageTarget* This,IOpcPartUri *documentpart,IOpcPartUri *controlpart,IXpsOMPackageWriter **writer) {
    return This->lpVtbl->GetXpsOMPackageWriter(This,documentpart,controlpart,writer);
}
static __WIDL_INLINE HRESULT IXpsDocumentPackageTarget_GetXpsOMFactory(IXpsDocumentPackageTarget* This,IXpsOMObjectFactory **factory) {
    return This->lpVtbl->GetXpsOMFactory(This,factory);
}
static __WIDL_INLINE HRESULT IXpsDocumentPackageTarget_GetXpsType(IXpsDocumentPackageTarget* This,XPS_DOCUMENT_TYPE *document_type) {
    return This->lpVtbl->GetXpsType(This,document_type);
}
#endif
#endif

#endif


#endif  /* __IXpsDocumentPackageTarget_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __xpsobjectmodel_1_h__ */
