Reactos
at master 143 lines 4.0 kB view raw
1/* 2 * Copyright (C) 2003 Robert Shearman 3 * 2005 Huw Davies 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2.1 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public 16 * License along with this library; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 * 19 */ 20 21#if 0 22#pragma makedep install 23#pragma makedep typelib 24#endif 25 26[ 27 uuid(00020430-0000-0000-C000-000000000046), 28 restricted, 29 version(1.0), 30 helpstring("OLE Automation") 31] 32library stdole 33{ 34 /* typedefs aren't stored in the type library. 35 These type names are known by the type compiler so it 36 doesn't really matter what we define them as. */ 37 38 typedef void *VARIANT; 39 typedef wchar_t *BSTR; 40 typedef unsigned long SCODE; 41 typedef unsigned long HRESULT; 42 43 typedef struct GUID { 44 unsigned long Data1; 45 unsigned short Data2; 46 unsigned short Data3; 47 unsigned char Data4[ 8 ]; 48 } GUID; 49 50 typedef struct DISPPARAMS { 51 VARIANT *rgvarg; 52 long *rgdispidNamedArgs; 53 unsigned int cArgs; 54 unsigned int cNamedArgs; 55 } DISPPARAMS; 56 57 typedef struct EXCEPINFO { 58 unsigned short wCode; 59 unsigned short wReserved; 60 BSTR bstrSource; 61 BSTR bstrDescription; 62 BSTR bstrHelpFile; 63 unsigned long dwHelpContext; 64 void *pvReserved; 65 void *pfnDeferredFillIn; 66 SCODE scode; 67 } EXCEPINFO; 68 69 [ 70 odl, 71 uuid(00000000-0000-0000-C000-000000000046) 72 ] 73 interface IUnknown 74 { 75 [restricted] 76 HRESULT QueryInterface( 77 [in] GUID *riid, 78 [out] void **ppvObj); 79 80 [restricted] 81 unsigned long AddRef(); 82 83 [restricted] 84 unsigned long Release(); 85 } 86 87 [ 88 odl, 89 uuid(00020400-0000-0000-C000-000000000046) 90 ] 91 interface IDispatch : IUnknown 92 { 93 [restricted] 94 HRESULT GetTypeInfoCount( 95 [out] unsigned int *pctinfo); 96 97 [restricted] 98 HRESULT GetTypeInfo( 99 [in] unsigned int itinfo, 100 [in] unsigned long lcid, 101 [out] void **pptinfo); 102 103 [restricted] 104 HRESULT GetIDsOfNames( 105 [in] GUID *riid, 106 [in] char **rgszNames, 107 [in] unsigned int cNames, 108 [in] unsigned long lcid, 109 [out] long *rgdispid); 110 111 [restricted] 112 HRESULT Invoke( 113 [in] long dispidMember, 114 [in] GUID *riid, 115 [in] unsigned long lcid, 116 [in] unsigned short wFlags, 117 [in] DISPPARAMS *pdispparams, 118 [out] VARIANT *pvarResult, 119 [out] EXCEPINFO *pexcepinfo, 120 [out] unsigned int *puArgErr); 121 122 } 123 124 [ 125 odl, 126 uuid(00020404-0000-0000-C000-000000000046) 127 ] 128 interface IEnumVARIANT : IUnknown 129 { 130 HRESULT Next( 131 [in] unsigned long celt, 132 [in] VARIANT *rgvar, 133 [out] unsigned long *pceltFetched); 134 135 HRESULT Skip( 136 [in] unsigned long celt); 137 138 HRESULT Reset(); 139 140 HRESULT Clone( 141 [out] IEnumVARIANT **ppenum); 142 } 143};