1/* 2 * Copyright 2004 Kevin Koltzau 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// HACK 19#define annotation(x) 20 21#ifndef DO_NO_IMPORTS 22import "ocidl.idl"; 23import "oleidl.idl"; 24import "oaidl.idl"; 25import "servprov.idl"; 26#endif 27 28cpp_quote("DEFINE_GUID(SID_VariantConversion, 0x1f101481,0xbccd,0x11d0,0x93,0x36,0x00,0xa0,0xc9,0xd,0xca,0xa9);") 29cpp_quote("DEFINE_GUID(SID_GetCaller, 0x4717cc40,0xbcb9,0x11d0,0x93,0x36,0x00,0xa0,0xc9,0xd,0xca,0xa9);") 30 31cpp_quote("#define fdexNameCaseSensitive 0x00000001L") 32cpp_quote("#define fdexNameEnsure 0x00000002L") 33cpp_quote("#define fdexNameImplicit 0x00000004L") 34cpp_quote("#define fdexNameCaseInsensitive 0x00000008L") 35cpp_quote("#define fdexNameInternal 0x00000010L") 36cpp_quote("#define fdexNameNoDynamicProperties 0x00000020L") 37 38cpp_quote("#define fdexPropCanGet 0x00000001L") 39cpp_quote("#define fdexPropCannotGet 0x00000002L") 40cpp_quote("#define fdexPropCanPut 0x00000004L") 41cpp_quote("#define fdexPropCannotPut 0x00000008L") 42cpp_quote("#define fdexPropCanPutRef 0x00000010L") 43cpp_quote("#define fdexPropCannotPutRef 0x00000020L") 44cpp_quote("#define fdexPropNoSideEffects 0x00000040L") 45cpp_quote("#define fdexPropDynamicType 0x00000080L") 46cpp_quote("#define fdexPropCanCall 0x00000100L") 47cpp_quote("#define fdexPropCannotCall 0x00000200L") 48cpp_quote("#define fdexPropCanConstruct 0x00000400L") 49cpp_quote("#define fdexPropCannotConstruct 0x00000800L") 50cpp_quote("#define fdexPropCanSourceEvents 0x00001000L") 51cpp_quote("#define fdexPropCannotSourceEvents 0x00002000L") 52 53cpp_quote("#define fdexEnumDefault 0x00000001L") 54cpp_quote("#define fdexEnumAll 0x00000002L") 55 56cpp_quote("#define grfdexPropCanAll \\") 57cpp_quote(" (fdexPropCanGet | fdexPropCanPut | fdexPropCanPutRef | \\") 58cpp_quote(" fdexPropCanCall | fdexPropCanConstruct | fdexPropCanSourceEvents)") 59cpp_quote("#define grfdexPropCannotAll \\") 60cpp_quote(" (fdexPropCannotGet | fdexPropCannotPut | fdexPropCannotPutRef | \\") 61cpp_quote(" fdexPropCannotCall | fdexPropCannotConstruct | fdexPropCannotSourceEvents)") 62cpp_quote("#define grfdexPropExtraAll \\") 63cpp_quote(" (fdexPropNoSideEffects | fdexPropDynamicType)") 64cpp_quote("#define grfdexPropAll \\") 65cpp_quote(" (grfdexPropCanAll | grfdexPropCannotAll | grfdexPropExtraAll)") 66 67cpp_quote("#define DISPATCH_CONSTRUCT 0x4000") 68 69cpp_quote("#define DISPID_THIS (-613)") 70cpp_quote("#define DISPID_STARTENUM DISPID_UNKNOWN") 71 72[ 73object, 74uuid(A6EF9860-C720-11d0-9337-00A0C90DCAA9), 75pointer_default(unique) 76] 77interface IDispatchEx : IDispatch 78{ 79 HRESULT GetDispID( 80 [in] BSTR bstrName, 81 [in] DWORD grfdex, 82 [out] DISPID *pid); 83 84 [local] 85 HRESULT InvokeEx( 86 [in, annotation("__in")] DISPID id, 87 [in, annotation("__in")] LCID lcid, 88 [in, annotation("__in")] WORD wFlags, 89 [in, annotation("__in")] DISPPARAMS *pdp, 90 [out, annotation("__out_opt")] VARIANT *pvarRes, 91 [out, annotation("__out_opt")] EXCEPINFO *pei, 92 [in, unique, annotation("__in_opt")] IServiceProvider *pspCaller); 93 94 [call_as(InvokeEx)] 95 HRESULT RemoteInvokeEx( 96 [in] DISPID id, 97 [in] LCID lcid, 98 [in] DWORD dwFlags, 99 [in] DISPPARAMS *pdp, 100 [out] VARIANT *pvarRes, 101 [out] EXCEPINFO *pei, 102 [in, unique] IServiceProvider *pspCaller, 103 [in] UINT cvarRefArg, 104 [in, size_is(cvarRefArg)] UINT *rgiRefArg, 105 [in, out, size_is(cvarRefArg)] VARIANT *rgvarRefArg); 106 107 HRESULT DeleteMemberByName( 108 [in] BSTR bstrName, 109 [in] DWORD grfdex); 110 111 HRESULT DeleteMemberByDispID( 112 [in] DISPID id); 113 114 HRESULT GetMemberProperties( 115 [in] DISPID id, 116 [in] DWORD grfdexFetch, 117 [out] DWORD *pgrfdex); 118 119 HRESULT GetMemberName( 120 [in] DISPID id, 121 [out] BSTR *pbstrName); 122 123 HRESULT GetNextDispID( 124 [in] DWORD grfdex, 125 [in] DISPID id, 126 [out] DISPID *pid); 127 128 HRESULT GetNameSpaceParent([out] IUnknown **ppunk); 129} 130 131[ 132object, 133uuid(A6EF9861-C720-11d0-9337-00A0C90DCAA9), 134pointer_default(unique) 135] 136interface IDispError : IUnknown 137{ 138 HRESULT QueryErrorInfo( 139 [in] GUID guidErrorType, 140 [out] IDispError **ppde); 141 142 HRESULT GetNext( 143 [out] IDispError **ppde); 144 145 HRESULT GetHresult( 146 [out] HRESULT *phr); 147 148 HRESULT GetSource( 149 [out] BSTR *pbstrSource); 150 151 HRESULT GetHelpInfo( 152 [out] BSTR *pbstrFileName, 153 [out] DWORD *pdwContext); 154 155 HRESULT GetDescription( 156 [out] BSTR *pbstrDescription); 157} 158 159[ 160object, 161uuid(A6EF9862-C720-11d0-9337-00A0C90DCAA9), 162pointer_default(unique) 163] 164interface IVariantChangeType : IUnknown 165{ 166 HRESULT ChangeType( 167 [in, out, unique] VARIANT *pvarDst, 168 [in, unique] VARIANT *pvarSrc, 169 [in] LCID lcid, 170 [in] VARTYPE vtNew); 171} 172 173 174[ 175object, 176uuid(CA04B7E6-0D21-11d1-8CC5-00C04FC2B085), 177pointer_default(unique) 178] 179interface IObjectIdentity : IUnknown 180{ 181 HRESULT IsEqualObject( 182 [in] IUnknown *punk); 183} 184 185[ 186 object, 187 uuid(c5598e60-b307-11d1-b27d-006008c3fbfb), 188 pointer_default(unique) 189] 190interface ICanHandleException : IUnknown 191{ 192 HRESULT CanHandleException( 193 [in] EXCEPINFO *pExcepInfo, 194 [in] VARIANT *pvar); 195} 196 197[ 198 object, 199 uuid(10e2414a-ec59-49d2-bc51-5add2c36febc), 200 pointer_default(unique) 201] 202interface IProvideRuntimeContext : IUnknown 203{ 204 HRESULT GetCurrentSourceContext( 205 [out] DWORD_PTR *pdwContext, 206 [out] VARIANT_BOOL *pfExecutingGlobalCode); 207} 208