546 lines
14 KiB
Text
546 lines
14 KiB
Text
/*
|
|
* 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;
|
|
}
|
|
|
|
}
|