1 #ifndef _COM_GLUE_H_
2 #define _COM_GLUE_H_
3
4 #ifdef FOR_GLUE
5
6 #include <initguid.h>
7
8 // {A604CB9C-2AB5-11D4-B6D3-0060089002FE}
9 DEFINE_GUID(CLSID_TypeLib, 0xA604CB9C, 0x2ab5, 0x11d4, 0xb6, 0xd3, 0x00, 0x60, 0x08, 0x90, 0x02, 0xfe);
10
11 // {A3B0AF9E-2AB0-11D4-B6D2-0060089002FE}
12 DEFINE_GUID(CLSID_IMzObj, 0xA3B0AF9E, 0x2ab0, 0x11d4, 0xb6, 0xd2, 0x00, 0x60, 0x08, 0x90, 0x02, 0xfe);
13
14 // {A604CBA8-2AB5-11D4-B6D3-0060089002FE}
15 DEFINE_GUID(IID_IMzObj, 0xA604CBA8, 0x2ab5, 0x11d4, 0xb6, 0xd3, 0x00, 0x60, 0x08, 0x90, 0x02, 0xfe);
16
17 #undef INTERFACE
18 #define INTERFACE IMzObj
DECLARE_INTERFACE_(INTERFACE,IDispatch)19 DECLARE_INTERFACE_ (INTERFACE, IDispatch)
20 {
21 // IUnknown functions
22 STDMETHOD (QueryInterface) (THIS_ REFIID, void **) PURE;
23 STDMETHOD_ (ULONG, AddRef) (THIS) PURE;
24 STDMETHOD_ (ULONG, Release) (THIS) PURE;
25 // IDispatch functions
26 STDMETHOD_ (ULONG, GetTypeInfoCount)(THIS_ UINT *) PURE;
27 STDMETHOD_ (ULONG, GetTypeInfo) (THIS_ UINT, LCID, ITypeInfo **) PURE;
28 STDMETHOD_ (ULONG, GetIDsOfNames) (THIS_ REFIID, LPOLESTR *, UINT, LCID, DISPID *) PURE;
29 STDMETHOD_ (ULONG, Invoke) (THIS_ DISPID, REFIID, LCID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT *) PURE;
30 // Extra functions
31 STDMETHOD (Eval) (THIS_ BSTR, BSTR *) PURE;
32 STDMETHOD (About) (THIS) PURE;
33 STDMETHOD (Reset) (THIS) PURE;
34 };
35
36 // {A604CBA9-2AB5-11D4-B6D3-0060089002FE}
37 DEFINE_GUID(DIID_IMzObjEvents, 0xA604CBA9, 0x2ab5, 0x11d4, 0xb6, 0xd3, 0x00, 0x60, 0x08, 0x90, 0x02, 0xfe);
38
39 #undef INTERFACE
40 #define INTERFACE IMzObjEvents
DECLARE_INTERFACE_(INTERFACE,IDispatch)41 DECLARE_INTERFACE_ (INTERFACE, IDispatch)
42 {
43 // IUnknown functions
44 STDMETHOD (QueryInterface) (THIS_ REFIID, void **) PURE;
45 STDMETHOD_ (ULONG, AddRef) (THIS) PURE;
46 STDMETHOD_ (ULONG, Release) (THIS) PURE;
47 // IDispatch functions
48 STDMETHOD_ (ULONG, GetTypeInfoCount)(THIS_ UINT *) PURE;
49 STDMETHOD_ (ULONG, GetTypeInfo) (THIS_ UINT, LCID, ITypeInfo **) PURE;
50 STDMETHOD_ (ULONG, GetIDsOfNames) (THIS_ REFIID, LPOLESTR *, UINT, LCID, DISPID *) PURE;
51 STDMETHOD_ (ULONG, Invoke) (THIS_ DISPID, REFIID, LCID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT *) PURE;
52 // Extra functions
53 STDMETHOD (SchemeError) (THIS_ BSTR *) PURE;
54 };
55
56 #else
57
58 typedef struct IMzObj { int dummy; } IMzObj;
59
60 #endif
61
62 extern HRESULT com_register();
63 extern int com_unregister();
64 extern int com_can_unregister();
65 extern const GUID com_get_class_iid();
66
67 extern void *new_mzobj(IMzObj*);
68 extern void delete_mzobj(void*);
69 extern HRESULT mzobj_about(void*);
70 extern HRESULT mzobj_reset(void*);
71 extern HRESULT mzobj_eval(void*, BSTR, BSTR*);
72
73 extern VOID Fire_SchemeError(IMzObj *com_obj, BSTR description);
74
75 #endif // _COM_GLUE_H_
76