1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27// XCallback_Impl.idl : IDL source for XCallback_Impl.dll
28//
29
30// This file will be processed by the MIDL tool to
31// produce the type library (XCallback_Impl.tlb) and marshalling code.
32
33import "oaidl.idl";
34import "ocidl.idl";
35	[
36		object,
37		uuid(180FF55F-6F5C-11D4-8330-005004526AB4),
38		dual,
39		helpstring("ICallback Interface"),
40		pointer_default(unique)
41	]
42	interface ICallback : IDispatch
43	{
44		[id(1), helpstring("method func1")] HRESULT func1();
45		[id(2), helpstring("method returnInterface")] HRESULT returnInterface([out, retval] IDispatch** ppdisp);
46		[id(3), helpstring("method outInterface")] HRESULT outInterface([out] IDispatch** ppdisp);
47		[id(4), helpstring("method outValuesMixed")] HRESULT outValuesMixed([in] long val, [out] long* pval, [in] BSTR string);
48		[id(5), helpstring("method outValuesAll")] HRESULT outValuesAll([out] IDispatch** ppdisp, [out] IDispatch** ppSimpleStruct, [out] long* aSimpleEnum,
49		[out] SAFEARRAY( VARIANT)* outSeq,
50		[out] VARIANT* varAny,
51		[out] VARIANT_BOOL * aBool,
52		   [out] short* aChar,
53		    [out] BSTR* aString ,
54			[out] float* aFloat,
55			[out] double* aDouble,
56			[out] unsigned char*  aByte,
57			[out] short* aShort,
58			[out]long* aLong);
59//		);
60		[id(6), helpstring("method outStruct")] HRESULT outStruct([out] IDispatch** outStruct);
61		[id(7), helpstring("method outEnum")] HRESULT outEnum([out] long* outEnum);
62		[id(8), helpstring("method outSeqAny")] HRESULT outSeqAny([out] SAFEARRAY( VARIANT)* outSeq);
63		[id(9), helpstring("method outAny")] HRESULT outAny([out] VARIANT* outAny);
64		[id(10), helpstring("method outBool")] HRESULT outBool([out]VARIANT_BOOL* outBool);
65		[id(11), helpstring("method outChar")] HRESULT outChar([out] short* outChar);
66		[id(12), helpstring("method outString")] HRESULT outString([out] BSTR * outString);
67		[id(13), helpstring("method outFloat")] HRESULT outFloat([out] float* outFloat);
68		[id(14), helpstring("method outDouble")] HRESULT outDouble([out] double* outDouble);
69		[id(16), helpstring("method outShort")] HRESULT outShort([out] short *outShort);
70		[id(17), helpstring("method outLong")] HRESULT outLong([out] long* outLong);
71		[id(20), helpstring("method outByte")] HRESULT outByte([out] unsigned char* outByte);
72		[id(21), helpstring("method inoutInterface")] HRESULT inoutInterface([in,out] IDispatch** ppdisp);
73		[id(22), helpstring("method inoutStruct")] HRESULT inoutStruct([in,out] IDispatch** inoutVal);
74		[id(23), helpstring("method inoutEnum")] HRESULT inoutEnum([in,out] long * inoutVal);
75		[id(24), helpstring("method inoutSeqAny")] HRESULT inoutSeqAny([in,out] SAFEARRAY(VARIANT)* pArray);
76		[id(25), helpstring("method inoutAny")] HRESULT inoutAny([in,out] VARIANT* inoutVal);
77		[id(26), helpstring("method inoutBool")] HRESULT inoutBool([in,out] VARIANT_BOOL * inoutVal);
78		[id(27), helpstring("method inoutChar")] HRESULT inoutChar([in,out] short* inoutVal);
79		[id(28), helpstring("method inoutString")] HRESULT inoutString([in,out] BSTR *inoutVal);
80		[id(29), helpstring("method inoutFloat")] HRESULT inoutFloat([in,out] float* inoutVal);
81		[id(30), helpstring("method inoutDouble")] HRESULT inoutDouble([in,out] double* inoutVal);
82		[id(31), helpstring("method inoutByte")] HRESULT inoutByte([in,out] unsigned char* inoutVal);
83		[id(32), helpstring("method inoutShort")] HRESULT inoutShort([in,out] short* inoutVal);
84		[id(33), helpstring("method inoutLong")] HRESULT inoutLong([in,out] long* inoutVal);
85		[id(34), helpstring("method inoutValueAll")] HRESULT inoutValuesAll(
86						 [in,out] IDispatch** aXSimple,
87						 [in,out] IDispatch** aStruct,
88						 [in,out] long* aEnum,
89						 [in,out]  SAFEARRAY( VARIANT)* aSeq,
90						 [in,out] VARIANT* aAny,
91						 [in,out] VARIANT_BOOL* aBool,
92						 [in,out] short* aChar,
93						 [in,out] BSTR* aString,
94						 [in,out] float* aFloat,
95						 [in,out] double* aDouble,
96						 [in,out] unsigned char* aByte,
97						 [in,out] short* aShort,
98						 [in,out] long* aLong);
99		[id(35), helpstring("method inValues")] HRESULT inValues([in]short aChar, [in] long aLong, [in] BSTR aString);
100		[id(36), helpstring("method outSeqByte")] HRESULT outSeqByte([out] SAFEARRAY(unsigned char)* outVal);
101		[id(37), helpstring("method inSeqByte")] HRESULT inSeqByte([in] SAFEARRAY(VARIANT) val);
102		[id(38), helpstring("method inSeqXEventListener")] HRESULT inSeqXEventListener([in] SAFEARRAY(VARIANT) listener,
103																		[in] SAFEARRAY(VARIANT) event);
104
105	};
106	[
107		object,
108		uuid(180FF564-6F5C-11D4-8330-005004526AB4),
109		dual,
110		helpstring("ISimple Interface"),
111		pointer_default(unique)
112	]
113	interface ISimple : IDispatch
114	{
115		[id(1), helpstring("method func")] HRESULT func( [in] BSTR message);
116		[id(2), helpstring("method func2")] HRESULT func2([in] BSTR message);
117		[id(3), helpstring("method func3")] HRESULT func3([in] BSTR message);
118		[propget, id(4), helpstring("property _implementedInterfaces")] HRESULT _implementedInterfaces([out, retval] SAFEARRAY(BSTR) *pVal);
119	};
120
121
122
123[
124	uuid(180FF553-6F5C-11D4-8330-005004526AB4),
125	version(1.0),
126	helpstring("XCallback_Impl 1.0 Type Library")
127]
128library XCALLBACK_IMPLLib
129{
130	importlib("stdole32.tlb");
131	importlib("stdole2.tlb");
132
133	[
134		uuid(180FF560-6F5C-11D4-8330-005004526AB4),
135		helpstring("Callback Class")
136	]
137	coclass Callback
138	{
139		[default] interface ICallback;
140	};
141	[
142		uuid(180FF565-6F5C-11D4-8330-005004526AB4),
143		helpstring("Simple Class")
144	]
145	coclass Simple
146	{
147		[default] interface ISimple;
148	};
149};
150
151
152