xpmgr/BuildTools/Include/opcobjectmodel.idl

274 lines
6.0 KiB
Plaintext

//+--------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// Abstract:
//
// Contains the definition of IOpcPackage and related interfaces used to
// create and read data that conforms to the Open Packaging Conventions,
// part of the Office Open XML document interchange specification.
//
// Include from msopc.h.
// Import from msopc.idl.
//
//----------------------------------------------------------------------------
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
import "oaidl.idl";
import "ocidl.idl";
import "urlmon.idl";
cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)")
//
// Forward declarations
//
interface IOpcPackage;
interface IOpcPart;
interface IOpcRelationship;
interface IOpcPartSet;
interface IOpcRelationshipSet;
interface IOpcPartEnumerator;
interface IOpcRelationshipEnumerator;
//
// Enumerations
//
typedef [v1_enum] enum
{
OPC_READ_DEFAULT = 0x00000000,
OPC_VALIDATE_ON_LOAD = 0x00000001,
OPC_CACHE_ON_ACCESS = 0x00000002
} OPC_READ_FLAGS;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(OPC_READ_FLAGS);")
typedef [v1_enum] enum
{
OPC_WRITE_DEFAULT = 0x00000000,
OPC_WRITE_FORCE_ZIP32 = 0x00000001
} OPC_WRITE_FLAGS;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(OPC_WRITE_FLAGS);")
[
object,
uuid(42195949-3B79-4fc8-89C6-FC7FB979EE70),
pointer_default(ref)
]
interface IOpcPackage : IUnknown
{
HRESULT
GetPartSet (
[out, retval] IOpcPartSet** partSet
);
HRESULT
GetRelationshipSet (
[out, retval] IOpcRelationshipSet** relationshipSet
);
}
[
object,
uuid(42195949-3B79-4fc8-89C6-FC7FB979EE71),
pointer_default(ref)
]
interface IOpcPart : IUnknown
{
HRESULT
GetRelationshipSet(
[out, retval] IOpcRelationshipSet** relationshipSet
);
HRESULT
GetContentStream(
[out, retval] IStream** stream
);
HRESULT
GetName(
[out, retval] IOpcPartUri** name
);
HRESULT
GetContentType(
[out, string, retval] LPWSTR * contentType
);
HRESULT
GetCompressionOptions(
[out, retval] OPC_COMPRESSION_OPTIONS* compressionOptions
);
}
[
object,
uuid(42195949-3B79-4fc8-89C6-FC7FB979EE72),
pointer_default(ref)
]
interface IOpcRelationship : IUnknown
{
HRESULT
GetId (
[out, string, retval] LPWSTR* relationshipIdentifier
);
HRESULT
GetRelationshipType (
[out, string, retval] LPWSTR* relationshipType
);
HRESULT
GetSourceUri (
[out, retval] IOpcUri** sourceUri
);
HRESULT
GetTargetUri (
[out, retval] IUri** targetUri
);
HRESULT
GetTargetMode (
[out, retval] OPC_URI_TARGET_MODE* targetMode
);
}
[
object,
uuid(42195949-3B79-4fc8-89C6-FC7FB979EE73),
pointer_default(ref)
]
interface IOpcPartSet : IUnknown
{
HRESULT
GetPart (
[in] IOpcPartUri * name,
[out, retval] IOpcPart** part
);
// part - out param not optional
HRESULT
CreatePart (
[in] IOpcPartUri * name,
[in, string] LPCWSTR contentType,
[in] OPC_COMPRESSION_OPTIONS compressionOptions,
[out, retval] IOpcPart** part
);
HRESULT
DeletePart (
[in] IOpcPartUri * name
);
HRESULT
PartExists (
[in] IOpcPartUri * name,
[out, retval] BOOL* partExists
);
HRESULT
GetEnumerator(
[out, retval] IOpcPartEnumerator** partEnumerator
);
}
[
object,
uuid(42195949-3B79-4fc8-89C6-FC7FB979EE74),
pointer_default(ref)
]
interface IOpcRelationshipSet : IUnknown
{
HRESULT
GetRelationship (
[in, string] LPCWSTR relationshipIdentifier,
[out, retval] IOpcRelationship** relationship
);
// relationshipIdentifier - Optional - If passed NULL the method creates and uses a randomly generated unique identifier.
// relationship - out param optional.
HRESULT
CreateRelationship(
[in, string, unique] LPCWSTR relationshipIdentifier,
[in, string] LPCWSTR relationshipType,
[in] IUri *targetUri,
[in] OPC_URI_TARGET_MODE targetMode,
[out, retval] IOpcRelationship** relationship
);
HRESULT
DeleteRelationship (
[in, string] LPCWSTR relationshipIdentifier
);
HRESULT
RelationshipExists (
[in, string] LPCWSTR relationshipIdentifier,
[out, retval] BOOL* relationshipExists
);
HRESULT
GetEnumerator(
[out, retval] IOpcRelationshipEnumerator** relationshipEnumerator
);
HRESULT
GetEnumeratorForType (
[in, string] LPCWSTR relationshipType,
[out, retval] IOpcRelationshipEnumerator** relationshipEnumerator
);
HRESULT
GetRelationshipsContentStream(
[out, retval] IStream** contents
);
}
[
object,
uuid(42195949-3B79-4fc8-89C6-FC7FB979EE75),
pointer_default(ref)
]
interface IOpcPartEnumerator : IUnknown
{
HRESULT MoveNext ([out, retval] BOOL *hasNext);
HRESULT MovePrevious ([out, retval] BOOL *hasPrevious);
HRESULT GetCurrent ([out, retval] IOpcPart** part);
HRESULT Clone([out, retval] IOpcPartEnumerator **copy);
}
[
object,
uuid(42195949-3B79-4fc8-89C6-FC7FB979EE76),
pointer_default(ref)
]
interface IOpcRelationshipEnumerator : IUnknown
{
HRESULT MoveNext ([out, retval] BOOL *hasNext);
HRESULT MovePrevious ([out, retval] BOOL *hasPrevious);
HRESULT GetCurrent ([out, retval] IOpcRelationship** relationship);
HRESULT Clone([out, retval] IOpcRelationshipEnumerator **copy);
}
cpp_quote("#endif // (NTDDI >= NTDDI_WIN7)")