msxml3: Return E_INVALIDARG when value is NULL.
[wine] / include / iads.idl
1 /*
2  * Copyright 2005 Francois Gouget
3  *
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.
8  *
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.
13  *
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
17  */
18
19 import "oaidl.idl";
20
21 typedef enum
22 {
23     ADS_RIGHT_DS_CREATE_CHILD         = 0x00000001,
24     ADS_RIGHT_DS_DELETE_CHILD         = 0x00000002,
25     ADS_RIGHT_ACTRL_DS_LIST           = 0x00000004,
26     ADS_RIGHT_DS_SELF                 = 0x00000008,
27     ADS_RIGHT_DS_READ_PROP            = 0x00000010,
28     ADS_RIGHT_DS_WRITE_PROP           = 0x00000020,
29     ADS_RIGHT_DS_DELETE_TREE          = 0x00000040,
30     ADS_RIGHT_DS_LIST_OBJECT          = 0x00000080,
31     ADS_RIGHT_DS_CONTROL_ACCESS       = 0x00000100,
32
33     ADS_RIGHT_DELETE                  = 0x00010000,
34     ADS_RIGHT_READ_CONTROL            = 0x00020000,
35     ADS_RIGHT_WRITE_DAC               = 0x00040000,
36     ADS_RIGHT_WRITE_OWNER             = 0x00080000,
37     ADS_RIGHT_SYNCHRONIZE             = 0x00100000,
38     ADS_RIGHT_ACCESS_SYSTEM_SECURITY  = 0x00200000,
39
40     ADS_RIGHT_GENERIC_ALL             = 0x10000000,
41     ADS_RIGHT_GENERIC_EXECUTE         = 0x20000000,
42     ADS_RIGHT_GENERIC_WRITE           = 0x40000000,
43     ADS_RIGHT_GENERIC_READ            = 0x80000000
44 } ADS_RIGHTS_ENUM;
45
46 /*****************************************************************************
47  *    IADsContainer interface
48  */
49 [
50     object,
51     uuid(001677d0-fd16-11ce-abc4-02608c9e7553)
52 ]
53 interface IADsContainer: IDispatch
54 {
55     [propget] HRESULT Count(
56         [out, retval] long *retval);
57     [propget, restricted] HRESULT _NewEnum(
58         [out, retval] IUnknown **retval);
59     [propget] HRESULT Filter(
60         [out, retval] VARIANT *pvFilter);
61     [propput] HRESULT Filter(
62         [in] VARIANT vFilter);
63     [propget] HRESULT Hints(
64         [out, retval] VARIANT *pvHints);
65     [propput] HRESULT Hints(
66         [in] VARIANT vHints);
67     HRESULT GetObject(
68         [in] BSTR bstrClassName,
69         [in] BSTR bstrRelativeName,
70         [out, retval] IDispatch **ppObject);
71     HRESULT Create(
72         [in] BSTR bstrClassName,
73         [in] BSTR bstrRelativeName,
74         [out, retval] IDispatch **ppObject);
75     HRESULT Delete(
76         [in] BSTR bstrClassName,
77         [in] BSTR bstrRelativeName);
78     HRESULT CopyHere(
79         [in] BSTR bstrSourceName,
80         [in] BSTR bstrNewName,
81         [out, retval] IDispatch **ppObject);
82     HRESULT MoveHere(
83         [in] BSTR bstrSourceName,
84         [in] BSTR bstrNewName,
85         [out, retval] IDispatch **ppObject);
86 }