Reorganisation of the source tree
[ghc-hetmet.git] / rts / dotnet / InvokerClient.h
1 /*
2  * InvokerClient interface defns for use with gcc.
3  *
4  * Note: These declarations mirror those of the InvokeBridge
5  *       class declaration. 
6  *
7  */
8
9 #include <windows.h>
10 #include <wtypes.h>
11 #include <oaidl.h>
12
13 #ifdef __cplusplus
14 extern "C"{
15 #endif
16
17 #ifndef STDCALL
18 #define STDCALL __stdcall
19 #endif
20
21 extern const CLSID CLSID_InvokeBridge;
22 extern const IID   IID_IUnknown;
23 extern const IID   IID_NULL;
24 extern const IID   IID_InvokeBridge;
25
26 #ifdef WANT_UUID_DECLS
27 const CLSID CLSID_InvokeBridge = { 0x39D497D9,0x60E0,0x3525,{0xB7,0xF2,0x7B,0xC0,0x96,0xD3,0xA2,0xA3}};
28 //const IID IID_NULL = {0x00000000L, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
29 //const IID IID_IUnknown = {0x00000000L, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
30 const IID IID_InvokeBridge = { 0xAFF5FFCA, 0xC5C2, 0x3D5B, {0xAF, 0xD5, 0xED, 0x8E, 0x4B, 0x38, 0xDB, 0x7B}};
31   //0x3A85D703, 0xFAE4,0x3C5E, {0x9F,0x7E,0x20,0x98,0x31,0xCD,0x61,0x7A}};
32 #endif
33
34 #ifndef __InvokeBridge_INTERFACE_DEFINED__
35 #define __InvokeBridge_INTERFACE_DEFINED__
36 #undef INTERFACE
37 #define INTERFACE InvokeBridge
38 DECLARE_INTERFACE(InvokeBridge)
39 {
40     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
41     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
42     STDMETHOD_(ULONG,Release)(THIS) PURE;
43     STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
44     STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
45     STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
46     STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
47
48     STDMETHOD(ToString)(THIS_ BSTR*) PURE;
49     STDMETHOD(Equals)(THIS_ BSTR*) PURE;
50     STDMETHOD(GetHashCode)(THIS_ long*) PURE;
51     STDMETHOD(GetType)(THIS_ IUnknown**);
52     STDMETHOD(CreateObject)(THIS_ BSTR,BSTR,SAFEARRAY*, VARIANT*) PURE;
53     STDMETHOD(InvokeMethod)(THIS_ VARIANT,BSTR,SAFEARRAY*,VARIANT*) PURE;
54     STDMETHOD(InvokeStaticMethod)(THIS_ BSTR,BSTR,SAFEARRAY*,VARIANT*) PURE;
55
56     HRESULT ( STDCALL *GetField )( 
57             InvokeBridge * This,
58             /* [in] */ VARIANT obj,
59             /* [in] */ BSTR fieldSpec,
60             /* [retval][out] */ VARIANT *pRetVal);
61         
62         HRESULT ( STDCALL *GetStaticField )( 
63             InvokeBridge * This,
64             /* [in] */ BSTR clsName,
65             /* [in] */ BSTR fieldSpec,
66             /* [retval][out] */ VARIANT *pRetVal);
67         
68         HRESULT ( STDCALL *SetField )( 
69             InvokeBridge * This,
70             /* [in] */ VARIANT obj,
71             /* [in] */ BSTR fieldSpec,
72             /* [in] */ VARIANT val);
73         
74         HRESULT ( STDCALL *SetStaticField )( 
75             InvokeBridge * This,
76             /* [in] */ BSTR clsName,
77             /* [in] */ BSTR fieldSpec,
78             /* [in] */ VARIANT val);
79         
80         HRESULT ( STDCALL *NewString )( 
81             InvokeBridge * This,
82             /* [in] */ BSTR s,
83             /* [retval][out] */VARIANT* pRetVal);
84         
85         HRESULT ( STDCALL *NewArgArray )( 
86             InvokeBridge * This,
87             /* [in] */ long sz,
88             /* [retval][out] */IUnknown **pRetVal);
89         
90         HRESULT ( STDCALL *SetArg )( 
91             InvokeBridge * This,
92             /* [in] */ SAFEARRAY * arr,
93             /* [in] */ VARIANT val,
94             /* [in] */ long idx);
95         
96         HRESULT ( STDCALL *GetArg )( 
97             InvokeBridge * This,
98             /* [in] */ SAFEARRAY * arr,
99             /* [in] */ long idx,
100             /* [retval][out] */ VARIANT *pRetVal);
101         
102         HRESULT ( STDCALL *GetType_2 )( 
103             InvokeBridge * This,
104             /* [in] */ BSTR typeName,
105             /* [retval][out] */ IUnknown **pRetVal);
106 };
107 #endif
108
109 #define InvokeBridge_QueryInterface(This,riid,ppvObject)        \
110     (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
111
112 #define InvokeBridge_AddRef(This)       \
113     (This)->lpVtbl->AddRef(This)
114
115 #define InvokeBridge_Release(This)      \
116     (This)->lpVtbl->Release(This)
117
118 #define InvokeBridge_GetTypeInfoCount(This,pctinfo)     \
119     (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
120
121 #define InvokeBridge_GetTypeInfo(This,iTInfo,lcid,ppTInfo)      \
122     (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
123
124 #define InvokeBridge_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)    \
125     (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
126
127 #define InvokeBridge_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)      \
128     (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
129
130 #define InvokeBridge_get_ToString(This,pRetVal) \
131     (This)->lpVtbl->get_ToString(This,pRetVal)
132
133 #define InvokeBridge_Equals(This,obj,pRetVal)   \
134     (This)->lpVtbl->Equals(This,obj,pRetVal)
135
136 #define InvokeBridge_GetHashCode(This,pRetVal)  \
137     (This)->lpVtbl->GetHashCode(This,pRetVal)
138
139 #define InvokeBridge_GetType(This,pRetVal)      \
140     (This)->lpVtbl->GetType(This,pRetVal)
141
142 #define InvokeBridge_CreateObject(This,assemName,objSpec,args,pRetVal)  \
143     (This)->lpVtbl->CreateObject(This,assemName,objSpec,args,pRetVal)
144
145 #define InvokeBridge_InvokeMethod(This,obj,methSpec,args,pRetVal)       \
146     (This)->lpVtbl->InvokeMethod(This,obj,methSpec,args,pRetVal)
147
148 #define InvokeBridge_InvokeStaticMethod(This,assemName,methSpec,args,pRetVal)   \
149     (This)->lpVtbl->InvokeStaticMethod(This,assemName,methSpec,args,pRetVal)
150
151 #define InvokeBridge_GetField(This,obj,fieldSpec,pRetVal)       \
152     (This)->lpVtbl->GetField(This,obj,fieldSpec,pRetVal)
153
154 #define InvokeBridge_GetStaticField(This,clsName,fieldSpec,pRetVal)     \
155     (This)->lpVtbl->GetStaticField(This,clsName,fieldSpec,pRetVal)
156
157 #define InvokeBridge_SetField(This,obj,fieldSpec,val)   \
158     (This)->lpVtbl->SetField(This,obj,fieldSpec,val)
159
160 #define InvokeBridge_SetStaticField(This,clsName,fieldSpec,val) \
161     (This)->lpVtbl->SetStaticField(This,clsName,fieldSpec,val)
162
163 #define InvokeBridge_NewString(This,s,pRetVal)  \
164     (This)->lpVtbl->NewString(This,s,pRetVal)
165
166 #define InvokeBridge_NewArgArray(This,sz,pRetVal)       \
167     (This)->lpVtbl->NewArgArray(This,sz,pRetVal)
168
169 #define InvokeBridge_SetArg(This,arr,val,idx)   \
170     (This)->lpVtbl->SetArg(This,arr,val,idx)
171
172 #define InvokeBridge_GetArg(This,arr,idx,pRetVal)       \
173     (This)->lpVtbl->GetArg(This,arr,idx,pRetVal)
174
175 #define InvokeBridge_GetType_2(This,typeName,pRetVal)   \
176     (This)->lpVtbl->GetType_2(This,typeName,pRetVal)
177
178 #ifdef __cplusplus
179 }
180 #endif