Commit 8712a065 authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

include: Add IOpcPackage definition.

parent 5acf69ac
...@@ -25,3 +25,18 @@ typedef [v1_enum] enum ...@@ -25,3 +25,18 @@ typedef [v1_enum] enum
OPC_STREAM_IO_READ = 1, OPC_STREAM_IO_READ = 1,
OPC_STREAM_IO_WRITE = 2, OPC_STREAM_IO_WRITE = 2,
} OPC_STREAM_IO_MODE; } OPC_STREAM_IO_MODE;
typedef [v1_enum] enum
{
OPC_COMPRESSION_NONE = -1,
OPC_COMPRESSION_NORMAL = 0,
OPC_COMPRESSION_MAXIMUM = 1,
OPC_COMPRESSION_FAST = 2,
OPC_COMPRESSION_SUPERFAST = 3,
} OPC_COMPRESSION_OPTIONS;
typedef [v1_enum] enum
{
OPC_URI_TARGET_MODE_INTERNAL = 0,
OPC_URI_TARGET_MODE_EXTERNAL = 1,
} OPC_URI_TARGET_MODE;
...@@ -20,6 +20,11 @@ ...@@ -20,6 +20,11 @@
#pragma makedep install #pragma makedep install
#endif #endif
interface IOpcPart;
interface IOpcPartUri;
interface IOpcUri;
interface IOpcRelationship;
typedef [v1_enum] enum typedef [v1_enum] enum
{ {
OPC_READ_DEFAULT = 0, OPC_READ_DEFAULT = 0,
...@@ -32,3 +37,172 @@ typedef [v1_enum] enum ...@@ -32,3 +37,172 @@ typedef [v1_enum] enum
OPC_WRITE_DEFAULT = 0, OPC_WRITE_DEFAULT = 0,
OPC_WRITE_FORCE_ZIP32 = 1, OPC_WRITE_FORCE_ZIP32 = 1,
} OPC_WRITE_FLAGS; } OPC_WRITE_FLAGS;
[
object,
uuid(42195949-3b79-4fc8-89c6-fc7fb979ee75),
pointer_default(ref)
]
interface IOpcPartEnumerator : IUnknown
{
HRESULT MoveNext(
[out, retval] BOOL *has_next
);
HRESULT MovePrevious(
[out, retval] BOOL *has_previous
);
HRESULT GetCurrent(
[out, retval] IOpcPart **part
);
HRESULT Clone(
[out, retval] IOpcPartEnumerator **enumerator
);
}
[
object,
uuid(42195949-3b79-4fc8-89c6-fc7fb979ee76),
pointer_default(ref)
]
interface IOpcRelationshipEnumerator : IUnknown
{
HRESULT MoveNext(
[out, retval] BOOL *has_next
);
HRESULT MovePrevious(
[out, retval] BOOL *has_previous
);
HRESULT GetCurrent(
[out, retval] IOpcRelationship **relationship
);
HRESULT Clone(
[out, retval] IOpcRelationshipEnumerator **enumerator
);
}
[
object,
uuid(42195949-3b79-4fc8-89c6-fc7fb979ee73),
pointer_default(ref)
]
interface IOpcPartSet : IUnknown
{
HRESULT GetPart(
[in] IOpcPartUri *name,
[out, retval] IOpcPart **part
);
HRESULT CreatePart(
[in] IOpcPartUri *name,
[in, string] LPCWSTR content_type,
[in] OPC_COMPRESSION_OPTIONS compression_options,
[out, retval] IOpcPart **part
);
HRESULT DeletePart(
[in] IOpcPartUri *name
);
HRESULT PartExists(
[in] IOpcPartUri *name,
[out, retval] BOOL *exists
);
HRESULT GetEnumerator(
[out, retval] IOpcPartEnumerator **enumerator
);
}
[
object,
uuid(42195949-3b79-4fc8-89c6-fc7fb979ee72),
pointer_default(ref)
]
interface IOpcRelationship : IUnknown
{
HRESULT GetId(
[out, string, retval] LPWSTR *id
);
HRESULT GetRelationshipType(
[out, string, retval] LPWSTR *type
);
HRESULT GetSourceUri(
[out, retval] IOpcUri **uri
);
HRESULT GetTargetUri(
[out, retval] IUri **target
);
HRESULT GetTargetMode(
[out, retval] OPC_URI_TARGET_MODE *target_mode
);
}
[
object,
uuid(42195949-3b79-4fc8-89c6-fc7fb979ee74),
pointer_default(ref)
]
interface IOpcRelationshipSet : IUnknown
{
HRESULT GetRelationship(
[in, string] LPCWSTR id,
[out, retval] IOpcRelationship **relationship
);
HRESULT CreateRelationship(
[in, string, unique] LPCWSTR id,
[in, string] LPCWSTR type,
[in] IUri *target_uri,
[in] OPC_URI_TARGET_MODE target_mode,
[out, retval] IOpcRelationship **relationship
);
HRESULT DeleteRelationship(
[in, string] LPCWSTR id
);
HRESULT RelationshipExists(
[in, string] LPCWSTR id,
[out, retval] BOOL *exists
);
HRESULT GetEnumerator(
[out, retval] IOpcRelationshipEnumerator **enumerator
);
HRESULT GetEnumeratorForType(
[in, string] LPCWSTR type,
[out, retval] IOpcRelationshipEnumerator **enumerator
);
HRESULT GetRelationshipsContentStream(
[out, retval] IStream **stream
);
}
[
object,
uuid(42195949-3b79-4fc8-89c6-fc7fb979ee70),
pointer_default(ref)
]
interface IOpcPackage : IUnknown
{
HRESULT GetPartSet(
[out, retval] IOpcPartSet **part_set
);
HRESULT GetRelationshipSet(
[out, retval] IOpcRelationshipSet **relationship_set
);
}
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