xref: /reactos/sdk/include/psdk/bits2_5.idl (revision c2c66aff)
1*c2c66affSColin Finck/*
2*c2c66affSColin Finck * Background Intelligent Transfer Service (BITS) 2.5 interface
3*c2c66affSColin Finck *
4*c2c66affSColin Finck * Copyright 2015 Hans Leidekker for CodeWeavers
5*c2c66affSColin Finck *
6*c2c66affSColin Finck * This library is free software; you can redistribute it and/or
7*c2c66affSColin Finck * modify it under the terms of the GNU Lesser General Public
8*c2c66affSColin Finck * License as published by the Free Software Foundation; either
9*c2c66affSColin Finck * version 2.1 of the License, or (at your option) any later version.
10*c2c66affSColin Finck *
11*c2c66affSColin Finck * This library is distributed in the hope that it will be useful,
12*c2c66affSColin Finck * but WITHOUT ANY WARRANTY; without even the implied warranty of
13*c2c66affSColin Finck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14*c2c66affSColin Finck * Lesser General Public License for more details.
15*c2c66affSColin Finck *
16*c2c66affSColin Finck * You should have received a copy of the GNU Lesser General Public
17*c2c66affSColin Finck * License along with this library; if not, write to the Free Software
18*c2c66affSColin Finck * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19*c2c66affSColin Finck *
20*c2c66affSColin Finck */
21*c2c66affSColin Finck
22*c2c66affSColin Finck#ifndef DO_NO_IMPORTS
23*c2c66affSColin Finckimport "bits.idl";
24*c2c66affSColin Finckimport "bits1_5.idl";
25*c2c66affSColin Finckimport "bits2_0.idl";
26*c2c66affSColin Finck#endif
27*c2c66affSColin Finck
28*c2c66affSColin Finck[
29*c2c66affSColin Finck    uuid(f1bd1079-9f01-4bdc-8036-f09b70095066),
30*c2c66affSColin Finck    odl
31*c2c66affSColin Finck]
32*c2c66affSColin Finckinterface IBackgroundCopyJobHttpOptions : IUnknown
33*c2c66affSColin Finck{
34*c2c66affSColin Finck    typedef enum
35*c2c66affSColin Finck    {
36*c2c66affSColin Finck        BG_CERT_STORE_LOCATION_CURRENT_USER,
37*c2c66affSColin Finck        BG_CERT_STORE_LOCATION_LOCAL_MACHINE,
38*c2c66affSColin Finck        BG_CERT_STORE_LOCATION_CURRENT_SERVICE,
39*c2c66affSColin Finck        BG_CERT_STORE_LOCATION_SERVICES,
40*c2c66affSColin Finck        BG_CERT_STORE_LOCATION_USERS,
41*c2c66affSColin Finck        BG_CERT_STORE_LOCATION_CURRENT_USER_GROUP_POLICY,
42*c2c66affSColin Finck        BG_CERT_STORE_LOCATION_LOCAL_MACHINE_GROUP_POLICY,
43*c2c66affSColin Finck        BG_CERT_STORE_LOCATION_LOCAL_MACHINE_ENTERPRISE
44*c2c66affSColin Finck    } BG_CERT_STORE_LOCATION;
45*c2c66affSColin Finck
46*c2c66affSColin Finck    HRESULT SetClientCertificateByID(
47*c2c66affSColin Finck        [in] BG_CERT_STORE_LOCATION StoreLocation,
48*c2c66affSColin Finck        [in] LPCWSTR StoreName,
49*c2c66affSColin Finck        [in, size_is(20), ref] BYTE *pCertHashBlob
50*c2c66affSColin Finck    );
51*c2c66affSColin Finck
52*c2c66affSColin Finck    HRESULT SetClientCertificateByName(
53*c2c66affSColin Finck        [in] BG_CERT_STORE_LOCATION StoreLocation,
54*c2c66affSColin Finck        [in] LPCWSTR StoreName,
55*c2c66affSColin Finck        [in] LPCWSTR SubjectName
56*c2c66affSColin Finck    );
57*c2c66affSColin Finck
58*c2c66affSColin Finck    HRESULT RemoveClientCertificate();
59*c2c66affSColin Finck
60*c2c66affSColin Finck    HRESULT GetClientCertificate(
61*c2c66affSColin Finck        [out, ref] BG_CERT_STORE_LOCATION *pStoreLocation,
62*c2c66affSColin Finck        [out, ref] LPWSTR *pStoreName,
63*c2c66affSColin Finck        [out, size_is(, 20), ref] BYTE **ppCertHashBlob,
64*c2c66affSColin Finck        [out, ref] LPWSTR *pSubjectName
65*c2c66affSColin Finck    );
66*c2c66affSColin Finck
67*c2c66affSColin Finck    HRESULT SetCustomHeaders(
68*c2c66affSColin Finck        [in, unique] LPCWSTR RequestHeaders
69*c2c66affSColin Finck    );
70*c2c66affSColin Finck
71*c2c66affSColin Finck    HRESULT GetCustomHeaders(
72*c2c66affSColin Finck        [out] LPWSTR *pRequestHeaders
73*c2c66affSColin Finck    );
74*c2c66affSColin Finck
75*c2c66affSColin Finck    HRESULT SetSecurityFlags(
76*c2c66affSColin Finck        [in] ULONG Flags
77*c2c66affSColin Finck    );
78*c2c66affSColin Finck
79*c2c66affSColin Finck    HRESULT GetSecurityFlags(
80*c2c66affSColin Finck        [out, ref] ULONG *pFlags
81*c2c66affSColin Finck    );
82*c2c66affSColin Finck}
83*c2c66affSColin Finck
84*c2c66affSColin Finck[
85*c2c66affSColin Finck    uuid(4974177c-3bb6-4c37-9ff0-6b7426f0aba9),
86*c2c66affSColin Finck    version(1.0)
87*c2c66affSColin Finck]
88*c2c66affSColin Fincklibrary BackgroundCopyManager2_5
89*c2c66affSColin Finck{
90*c2c66affSColin Finck    [
91*c2c66affSColin Finck        uuid(03ca98d6-ff5d-49b8-abc6-03dd84127020)
92*c2c66affSColin Finck    ]
93*c2c66affSColin Finck    coclass BackgroundCopyManager2_5
94*c2c66affSColin Finck    {
95*c2c66affSColin Finck        [default] interface IBackgroundCopyManager;
96*c2c66affSColin Finck    };
97*c2c66affSColin Finck
98*c2c66affSColin Finck    interface IBackgroundCopyCallback;
99*c2c66affSColin Finck    interface IBackgroundCopyJobHttpOptions;
100*c2c66affSColin Finck}
101