Removed last dependencies on 16-bit headers from ntdll.
[wine] / include / unknwn.idl
1 /*
2  * Copyright 2002 Ove Kaaven
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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 import "wtypes.idl";
20
21 /* Interfaces */
22
23 [
24   local,
25   object,
26   uuid(00000000-0000-0000-C000-000000000046),
27   pointer_default(unique)
28 ]
29 interface IUnknown
30 {
31   typedef [unique] IUnknown *LPUNKNOWN;
32
33   HRESULT QueryInterface(
34     [in] REFIID riid,
35     [out, iid_is(riid)] void **ppvObject);
36   ULONG AddRef();
37   ULONG Release();
38 }
39
40 [
41   object,
42   uuid(00000001-0000-0000-C000-000000000046),
43   pointer_default(unique)
44 ]
45 interface IClassFactory : IUnknown
46 {
47   typedef [unique] IClassFactory *LPCLASSFACTORY;
48
49   [local]
50   HRESULT CreateInstance(
51     [in, unique] IUnknown *pUnkOuter,
52     [in] REFIID riid,
53     [out, iid_is(riid)] void **ppvObject);
54
55   [call_as(CreateInstance)]
56   HRESULT RemoteCreateInstance(
57     [in] REFIID riid,
58     [out, iid_is(riid)] IUnknown **ppvObject);
59
60   [local]
61   HRESULT LockServer(
62     [in] BOOL fLock);
63
64   [call_as(LockServer)]
65   HRESULT RemoteLockServer(
66     [in] BOOL fLock);
67 }