Release 4.20.
[wine.git] / include / msopc.idl
blob12404e5a12377b458d53be2aa24b4841bd8ff809
1 /*
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
19 import "unknwn.idl";
20 import "ocidl.idl";
22 #include "opcbase.idl"
23 #include "opcobjectmodel.idl"
24 #include "opcparturi.idl"
26 #ifndef __WIDL__
27 #define threading(model)
28 #endif
30 interface IOpcUri;
31 interface IOpcPartUri;
32 interface IOpcPackage;
33 interface IOpcDigitalSignatureManager;
36 object,
37 uuid(6d0b4446-cd73-4ab3-94f4-8ccdf6116154),
38 pointer_default(ref)
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
51 [local]
52 HRESULT CreateStreamOnFile(
53 [in, string] LPCWSTR filename,
54 [in] OPC_STREAM_IO_MODE io_mode,
55 [in, unique] SECURITY_ATTRIBUTES *sa,
56 [in] DWORD flags,
57 [out, retval] IStream **stream
60 HRESULT CreatePackage(
61 [out, retval] IOpcPackage **package
64 HRESULT ReadPackageFromStream(
65 [in] IStream *stream,
66 [in] OPC_READ_FLAGS flags,
67 [out, retval] IOpcPackage **package
70 HRESULT WritePackageToStream(
71 [in] IOpcPackage *package,
72 [in] OPC_WRITE_FLAGS flags,
73 [in] IStream *stream
76 HRESULT CreateDigitalSignatureManager(
77 [in] IOpcPackage *package,
78 [out, retval] IOpcDigitalSignatureManager **signature_manager
83 threading(both),
84 uuid(6b2d6Ba0-9f3e-4f27-920b-313cc426a39e)
86 coclass OpcFactory
88 interface IOpcFactory;