2 * Copyright 2018 Nikolay Sivov for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #include
"opcbase.idl"
23 #include
"opcobjectmodel.idl"
24 #include
"opcparturi.idl"
27 #define threading
(model
)
31 interface IOpcPartUri
;
32 interface IOpcPackage
;
33 interface IOpcDigitalSignatureManager
;
37 uuid(6d0b4446
-cd73
-4ab3
-94f4
-8ccdf6116154
),
40 interface IOpcFactory
: IUnknown
42 HRESULT CreatePackageRootUri
(
43 [out, retval] IOpcUri
**uri
46 HRESULT CreatePartUri
(
47 [in, string] LPCWSTR uri
,
48 [out, retval] IOpcPartUri
**part_uri
52 HRESULT CreateStreamOnFile
(
53 [in, string] LPCWSTR filename
,
54 [in] OPC_STREAM_IO_MODE io_mode
,
55 [in, unique] SECURITY_ATTRIBUTES
*sa
,
57 [out, retval] IStream
**stream
60 HRESULT CreatePackage
(
61 [out, retval] IOpcPackage
**package
64 HRESULT ReadPackageFromStream
(
66 [in] OPC_READ_FLAGS flags
,
67 [out, retval] IOpcPackage
**package
70 HRESULT WritePackageToStream
(
71 [in] IOpcPackage
*package
,
72 [in] OPC_WRITE_FLAGS flags
,
76 HRESULT CreateDigitalSignatureManager
(
77 [in] IOpcPackage
*package
,
78 [out, retval] IOpcDigitalSignatureManager
**signature_manager
84 uuid(6b2d6Ba0
-9f3e
-4f27
-920b
-313cc426a39e
)
88 interface IOpcFactory
;