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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 19#ifndef DO_NO_IMPORTS 20import "wtypes.idl"; 21#endif 22 23/* Interfaces */ 24 25[ 26 local, 27 object, 28 uuid(00000000-0000-0000-C000-000000000046), 29 pointer_default(unique) 30] 31interface IUnknown 32{ 33 typedef [unique] IUnknown *LPUNKNOWN; 34 35 HRESULT QueryInterface( 36 [in] REFIID riid, 37 [out, iid_is(riid)] void **ppvObject); 38 ULONG AddRef(); 39 ULONG Release(); 40} 41 42[ 43 object, 44 uuid(00000001-0000-0000-C000-000000000046), 45 pointer_default(unique) 46] 47interface IClassFactory : IUnknown 48{ 49 typedef [unique] IClassFactory *LPCLASSFACTORY; 50 51 [local] 52 HRESULT CreateInstance( 53 [in, unique] IUnknown *pUnkOuter, 54 [in] REFIID riid, 55 [out, iid_is(riid)] void **ppvObject); 56 57 [call_as(CreateInstance)] 58 HRESULT RemoteCreateInstance( 59 [in] REFIID riid, 60 [out, iid_is(riid)] IUnknown **ppvObject); 61 62 [local] 63 HRESULT LockServer( 64 [in] BOOL fLock); 65 66 [call_as(LockServer)] 67 HRESULT RemoteLockServer( 68 [in] BOOL fLock); 69} 70