Commit d8f13932 authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

include: Add some of the XPS OM interfaces.

parent d3f57fab
......@@ -879,4 +879,6 @@ SOURCES = \
xmldso.idl \
xmldsodid.h \
xmllite.idl \
xpsobjectmodel.idl \
xpsobjectmodel_1.idl \
zmouse.h
/*
* Copyright 2021 Nikolay Sivov for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
import "msopc.idl";
interface IXpsOMPrintTicketResource;
interface IXpsOMDocumentStructureResource;
interface IXpsOMSignatureBlockResourceCollection;
interface IXpsOMPartUriCollection;
interface IXpsOMPage;
interface IXpsOMStoryFragmentsResource;
interface IXpsOMImageResource;
interface IXpsOMResource;
interface IXpsOMObjectFactory;
interface IXpsOMSignatureBlockResource;
interface IXpsOMDictionary;
interface IXpsOMRemoteDictionaryResource;
interface IXpsOMPartResources;
interface IXpsOMDocument;
interface IXpsOMPageReference;
interface IXpsOMCanvas;
interface IXpsOMFontResource;
interface IXpsOMGlyphs;
interface IXpsOMPath;
interface IXpsOMGeometry;
interface IXpsOMGeometryFigure;
interface IXpsOMMatrixTransform;
interface IXpsOMColorProfileResource;
interface IXpsOMSolidColorBrush;
interface IXpsOMImageBrush;
interface IXpsOMVisualBrush;
interface IXpsOMGradientStop;
interface IXpsOMLinearGradientBrush;
interface IXpsOMRadialGradientBrush;
interface IXpsOMCoreProperties;
interface IXpsOMPackageWriter;
interface IXpsOMPackage;
typedef [v1_enum] enum
{
XPS_COLOR_TYPE_SRGB = 1,
XPS_COLOR_TYPE_SCRGB,
XPS_COLOR_TYPE_CONTEXT
} XPS_COLOR_TYPE;
typedef [v1_enum] enum
{
XPS_IMAGE_TYPE_JPEG = 1,
XPS_IMAGE_TYPE_PNG,
XPS_IMAGE_TYPE_TIFF,
XPS_IMAGE_TYPE_WDP,
XPS_IMAGE_TYPE_JXR
} XPS_IMAGE_TYPE;
typedef [v1_enum] enum
{
XPS_FONT_EMBEDDING_NORMAL = 1,
XPS_FONT_EMBEDDING_OBFUSCATED,
XPS_FONT_EMBEDDING_RESTRICTED,
XPS_FONT_EMBEDDING_RESTRICTED_UNOBFUSCATED
} XPS_FONT_EMBEDDING;
typedef [v1_enum] enum
{
XPS_INTERLEAVING_OFF = 1,
XPS_INTERLEAVING_ON,
} XPS_INTERLEAVING;
typedef struct
{
FLOAT width;
FLOAT height;
} XPS_SIZE;
typedef struct
{
FLOAT x;
FLOAT y;
} XPS_POINT;
typedef struct
{
FLOAT x;
FLOAT y;
FLOAT width;
FLOAT height;
} XPS_RECT;
typedef struct
{
FLOAT m11;
FLOAT m12;
FLOAT m21;
FLOAT m22;
FLOAT m31;
FLOAT m32;
} XPS_MATRIX;
typedef union switch (XPS_COLOR_TYPE colorType) value
{
case XPS_COLOR_TYPE_SRGB:
struct
{
UINT8 alpha, red, green, blue;
} sRGB;
case XPS_COLOR_TYPE_SCRGB:
struct
{
FLOAT alpha, red, green, blue;
} scRGB;
case XPS_COLOR_TYPE_CONTEXT:
struct
{
UINT8 channelCount;
FLOAT channels[9];
} context;
} XPS_COLOR;
[
object,
uuid(74eb2f0b-a91e-4486-afac-0fabeca3dfc6)
]
interface IXpsOMPart : IUnknown
{
HRESULT GetPartName(
[out, retval] IOpcPartUri **partUri
);
HRESULT SetPartName(
[in] IOpcPartUri *partUri
);
}
[
object,
pointer_default(ref),
uuid(d1c87f0d-e947-4754-8a25-971478f7e83e)
]
interface IXpsOMDocumentCollection : IUnknown
{
HRESULT GetCount(
[out, retval] UINT32 *count
);
HRESULT GetAt(
[in] UINT32 index,
[out, retval] IXpsOMDocument **document
);
HRESULT InsertAt(
[in] UINT32 index,
[in] IXpsOMDocument *document
);
HRESULT RemoveAt(
[in] UINT32 index
);
HRESULT SetAt(
[in] UINT32 index,
[in] IXpsOMDocument *document
);
HRESULT Append(
[in] IXpsOMDocument *document
);
}
[
object,
pointer_default(ref),
uuid(56492eb4-d8d5-425e-8256-4c2b64ad0264)
]
interface IXpsOMDocumentSequence : IXpsOMPart
{
HRESULT GetOwner(
[out, retval] IXpsOMPackage **package
);
HRESULT GetDocuments(
[out, retval] IXpsOMDocumentCollection **documents
);
HRESULT GetPrintTicketResource(
[out, retval] IXpsOMPrintTicketResource **printTicketResource
);
HRESULT SetPrintTicketResource(
[in] IXpsOMPrintTicketResource *printTicketResource
);
}
[
object,
local,
pointer_default(ref),
uuid(18c3df65-81e1-4674-91dc-fc452f5a416f)
]
interface IXpsOMPackage : IUnknown
{
HRESULT GetDocumentSequence(
[out, retval] IXpsOMDocumentSequence **documentSequence
);
HRESULT SetDocumentSequence(
[in] IXpsOMDocumentSequence *documentSequence
);
HRESULT GetCoreProperties(
[out, retval] IXpsOMCoreProperties **coreProperties
);
HRESULT SetCoreProperties(
[in] IXpsOMCoreProperties *coreProperties
);
HRESULT GetDiscardControlPartName(
[out, retval] IOpcPartUri **discardControlPartUri
);
HRESULT SetDiscardControlPartName(
[in] IOpcPartUri *discardControlPartUri
);
HRESULT GetThumbnailResource(
[out, retval] IXpsOMImageResource **imageResource
);
HRESULT SetThumbnailResource(
[in] IXpsOMImageResource *imageResource
);
HRESULT WriteToFile(
[in, string] LPCWSTR fileName,
[in, unique] LPSECURITY_ATTRIBUTES securityAttributes,
[in] DWORD flagsAndAttributes,
[in] BOOL optimizeMarkupSize
);
HRESULT WriteToStream(
[in] ISequentialStream *stream,
[in] BOOL optimizeMarkupSize
);
}
[
object,
local,
pointer_default(ref),
uuid(f9b2a685-a50d-4fc2-b764-b56e093ea0ca),
]
interface IXpsOMObjectFactory : IUnknown
{
HRESULT CreatePackage(
[out, retval] IXpsOMPackage **package
);
HRESULT CreatePackageFromFile(
[in, string] LPCWSTR filename,
[in] BOOL reuseObjects,
[out, retval] IXpsOMPackage **package
);
HRESULT CreatePackageFromStream(
[in] IStream *stream,
[in] BOOL reuseObjects,
[out, retval] IXpsOMPackage **package
);
HRESULT CreateStoryFragmentsResource(
[in] IStream *acquiredStream,
[in] IOpcPartUri *partUri,
[out, retval] IXpsOMStoryFragmentsResource **storyFragmentsResource
);
HRESULT CreateDocumentStructureResource(
[in] IStream *acquiredStream,
[in] IOpcPartUri *partUri,
[out, retval] IXpsOMDocumentStructureResource **documentStructureResource
);
HRESULT CreateSignatureBlockResource(
[in] IStream *acquiredStream,
[in] IOpcPartUri *partUri,
[out, retval] IXpsOMSignatureBlockResource **signatureBlockResource
);
HRESULT CreateRemoteDictionaryResource(
[in] IXpsOMDictionary *dictionary,
[in] IOpcPartUri *partUri,
[out, retval] IXpsOMRemoteDictionaryResource **remoteDictionaryResource
);
HRESULT CreateRemoteDictionaryResourceFromStream(
[in] IStream *dictionaryMarkupStream,
[in] IOpcPartUri *dictionaryPartUri,
[in] IXpsOMPartResources *resources,
[out, retval] IXpsOMRemoteDictionaryResource **dictionaryResource
);
HRESULT CreatePartResources(
[out, retval] IXpsOMPartResources **partResources
);
HRESULT CreateDocumentSequence(
[in] IOpcPartUri *partUri,
[out, retval] IXpsOMDocumentSequence **documentSequence
);
HRESULT CreateDocument(
[in] IOpcPartUri *partUri,
[out, retval] IXpsOMDocument **document
);
HRESULT CreatePageReference(
[in] const XPS_SIZE *advisoryPageDimensions,
[out, retval] IXpsOMPageReference **pageReference
);
HRESULT CreatePage(
[in] const XPS_SIZE *pageDimensions,
[in, string] LPCWSTR language,
[in] IOpcPartUri *partUri,
[out, retval] IXpsOMPage **page
);
HRESULT CreatePageFromStream(
[in] IStream *pageMarkupStream,
[in] IOpcPartUri *partUri,
[in] IXpsOMPartResources *resources,
[in] BOOL reuseObjects,
[out, retval] IXpsOMPage **page
);
HRESULT CreateCanvas(
[out, retval] IXpsOMCanvas **canvas
);
HRESULT CreateGlyphs(
[in] IXpsOMFontResource *fontResource,
[out, retval] IXpsOMGlyphs **glyphs
);
HRESULT CreatePath(
[out, retval] IXpsOMPath **path
);
HRESULT CreateGeometry(
[out, retval] IXpsOMGeometry **geometry
);
HRESULT CreateGeometryFigure(
[in] const XPS_POINT *startPoint,
[out, retval] IXpsOMGeometryFigure **figure
);
HRESULT CreateMatrixTransform(
[in] const XPS_MATRIX *matrix,
[out, retval] IXpsOMMatrixTransform **transform
);
HRESULT CreateSolidColorBrush(
[in] const XPS_COLOR *color,
[in] IXpsOMColorProfileResource *colorProfile,
[out, retval] IXpsOMSolidColorBrush **solidColorBrush
);
HRESULT CreateColorProfileResource(
[in] IStream *acquiredStream,
[in] IOpcPartUri *partUri,
[out, retval] IXpsOMColorProfileResource **colorProfileResource
);
HRESULT CreateImageBrush(
[in] IXpsOMImageResource *image,
[in] const XPS_RECT *viewBox,
[in] const XPS_RECT *viewPort,
[out, retval] IXpsOMImageBrush **imageBrush
);
HRESULT CreateVisualBrush(
[in] const XPS_RECT *viewBox,
[in] const XPS_RECT *viewPort,
[out, retval] IXpsOMVisualBrush **visualBrush
);
HRESULT CreateImageResource(
[in] IStream *acquiredStream,
[in] XPS_IMAGE_TYPE contentType,
[in] IOpcPartUri *partUri,
[out, retval] IXpsOMImageResource **imageResource
);
HRESULT CreatePrintTicketResource(
[in] IStream *acquiredStream,
[in] IOpcPartUri *partUri,
[out, retval] IXpsOMPrintTicketResource **printTicketResource
);
HRESULT CreateFontResource(
[in] IStream *acquiredStream,
[in] XPS_FONT_EMBEDDING fontEmbedding,
[in] IOpcPartUri *partUri,
[in] BOOL isObfSourceStream,
[out, retval] IXpsOMFontResource **fontResource
);
HRESULT CreateGradientStop(
[in] const XPS_COLOR *color,
[in] IXpsOMColorProfileResource *colorProfile,
[in] FLOAT offset,
[out, retval] IXpsOMGradientStop **gradientStop
);
HRESULT CreateLinearGradientBrush(
[in] IXpsOMGradientStop *gradStop1,
[in] IXpsOMGradientStop *gradStop2,
[in] const XPS_POINT *startPoint,
[in] const XPS_POINT *endPoint,
[out, retval] IXpsOMLinearGradientBrush **linearGradientBrush
);
HRESULT CreateRadialGradientBrush
(
[in] IXpsOMGradientStop *gradStop1,
[in] IXpsOMGradientStop *gradStop2,
[in] const XPS_POINT *centerPoint,
[in] const XPS_POINT *gradientOrigin,
[in] const XPS_SIZE *radiiSizes,
[out, retval] IXpsOMRadialGradientBrush **radialGradientBrush
);
HRESULT CreateCoreProperties(
[in] IOpcPartUri *partUri,
[out, retval] IXpsOMCoreProperties **coreProperties
);
HRESULT CreateDictionary(
[out, retval] IXpsOMDictionary **dictionary
);
HRESULT CreatePartUriCollection(
[out, retval] IXpsOMPartUriCollection **partUriCollection
);
HRESULT CreatePackageWriterOnFile(
[in, string] LPCWSTR fileName,
[in, unique] LPSECURITY_ATTRIBUTES securityAttributes,
[in] DWORD flagsAndAttributes,
[in] BOOL optimizeMarkupSize,
[in] XPS_INTERLEAVING interleaving,
[in] IOpcPartUri *documentSequencePartName,
[in] IXpsOMCoreProperties *coreProperties,
[in] IXpsOMImageResource *packageThumbnail,
[in] IXpsOMPrintTicketResource *documentSequencePrintTicket,
[in] IOpcPartUri *discardControlPartName,
[out, retval] IXpsOMPackageWriter **packageWriter
);
HRESULT CreatePackageWriterOnStream
(
[in] ISequentialStream *outputStream,
[in] BOOL optimizeMarkupSize,
[in] XPS_INTERLEAVING interleaving,
[in] IOpcPartUri *documentSequencePartName,
[in] IXpsOMCoreProperties *coreProperties,
[in] IXpsOMImageResource *packageThumbnail,
[in] IXpsOMPrintTicketResource *documentSequencePrintTicket,
[in] IOpcPartUri *discardControlPartName,
[out, retval] IXpsOMPackageWriter **packageWriter
);
HRESULT CreatePartUri(
[in, string] LPCWSTR uri,
[out, retval] IOpcPartUri **partUri
);
HRESULT CreateReadOnlyStreamOnFile(
[in, string] LPCWSTR filename,
[out, retval] IStream **stream
);
}
[
object,
uuid(4e2aa182-a443-42c6-b41b-4f8e9de73ff9)
]
interface IXpsOMPackageWriter : IUnknown
{
HRESULT StartNewDocument(
[in] IOpcPartUri *documentPartName,
[in] IXpsOMPrintTicketResource *documentPrintTicket,
[in] IXpsOMDocumentStructureResource *documentStructure,
[in] IXpsOMSignatureBlockResourceCollection *signatureBlockResources,
[in] IXpsOMPartUriCollection *restrictedFonts
);
HRESULT AddPage(
[in] IXpsOMPage *page,
[in] const XPS_SIZE *advisoryPageDimensions,
[in] IXpsOMPartUriCollection *discardableResourceParts,
[in] IXpsOMStoryFragmentsResource *storyFragments,
[in] IXpsOMPrintTicketResource *pagePrintTicket,
[in] IXpsOMImageResource *pageThumbnail
);
HRESULT AddResource(
[in] IXpsOMResource *resource
);
HRESULT Close();
HRESULT IsClosed(
[out, retval] BOOL *isClosed
);
}
[
uuid(b47491a0-cf33-4fe4-9a48-b0acdae207e8)
]
library MSXPS
{
[
uuid(e974d26d-3d9b-4d47-88cc-3872f2dc3585)
]
coclass XpsOMObjectFactory
{
interface IXpsOMObjectFactory;
}
}
/*
* Copyright 2021 Nikolay Sivov for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
import "xpsobjectmodel.idl";
typedef [v1_enum] enum
{
XPS_DOCUMENT_TYPE_UNSPECIFIED = 1,
XPS_DOCUMENT_TYPE_XPS,
XPS_DOCUMENT_TYPE_OPENXPS
} XPS_DOCUMENT_TYPE;
[
object,
local,
pointer_default(ref),
uuid(3b0b6d38-53ad-41da-b212-d37637a6714e),
]
interface IXpsDocumentPackageTarget : IUnknown
{
HRESULT GetXpsOMPackageWriter(
[in] IOpcPartUri *documentpart,
[in] IOpcPartUri *controlpart,
[out, retval] IXpsOMPackageWriter **writer
);
HRESULT GetXpsOMFactory(
[out, retval] IXpsOMObjectFactory **factory
);
HRESULT GetXpsType(
[out, retval] XPS_DOCUMENT_TYPE *document_type
);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment