Upstream version 1.3.40
[profile/ivi/swig.git] / Examples / test-suite / li_windows.i
1 %module li_windows
2
3 %include "windows.i"
4
5 %{
6 #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
7   #include <windows.h>
8 #else
9   // Use equivalent types for non-windows systems
10   #define __int8   char
11   #define __int16  short
12   #define __int32  int
13   #define __int64  long long
14 #endif
15 %}
16
17 %inline %{
18 // Non ISO integral types
19          __int8   int8_val (         __int8  i) { return i; }
20          __int16  int16_val(         __int16 i) { return i; }
21          __int32  int32_val(         __int32 i) { return i; }
22          __int64  int64_val(         __int64 i) { return i; }
23 unsigned __int8  uint8_val (unsigned __int8  i) { return i; }
24 unsigned __int16 uint16_val(unsigned __int16 i) { return i; }
25 unsigned __int32 uint32_val(unsigned __int32 i) { return i; }
26 unsigned __int64 uint64_val(unsigned __int64 i) { return i; }
27
28 const          __int8&   int8_ref (const          __int8&  i) { return i; }
29 const          __int16&  int16_ref(const          __int16& i) { return i; }
30 const          __int32&  int32_ref(const          __int32& i) { return i; }
31 const          __int64&  int64_ref(const          __int64& i) { return i; }
32 const unsigned __int8&  uint8_ref (const unsigned __int8&  i) { return i; }
33 const unsigned __int16& uint16_ref(const unsigned __int16& i) { return i; }
34 const unsigned __int32& uint32_ref(const unsigned __int32& i) { return i; }
35 const unsigned __int64& uint64_ref(const unsigned __int64& i) { return i; }
36
37          __int8   int8_global;
38          __int16  int16_global;
39          __int32  int32_global;
40          __int64  int64_global;
41 unsigned __int8  uint8_global;
42 unsigned __int16 uint16_global;
43 unsigned __int32 uint32_global;
44 unsigned __int64 uint64_global;
45
46 struct WindowsInts {
47            __int8   int8_member;
48            __int16  int16_member;
49            __int32  int32_member;
50            __int64  int64_member;
51   unsigned __int8  uint8_member;
52   unsigned __int16 uint16_member;
53   unsigned __int32 uint32_member;
54   unsigned __int64 uint64_member;
55 };
56
57 // Typedef for non ISO integral types
58 typedef __int8 int8;
59 typedef __int16 int16;
60 typedef __int32 int32;
61 typedef __int64 int64;
62
63 typedef unsigned __int8 uint8;
64 typedef unsigned __int16 uint16;
65 typedef unsigned __int32 uint32;
66 typedef unsigned __int64 uint64;
67
68  int8   int8_td (int8  i) { return i; }
69  int16  int16_td(int16 i) { return i; }
70  int32  int32_td(int32 i) { return i; }
71  int64  int64_td(int64 i) { return i; }
72 uint8  uint8_td (int8  i) { return i; }
73 uint16 uint16_td(int16 i) { return i; }
74 uint32 uint32_td(int32 i) { return i; }
75 uint64 uint64_td(int64 i) { return i; }
76
77 %}
78
79 // Windows calling conventions and some types in windows.h
80 %inline %{
81 #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
82 #else
83
84 #define __stdcall
85 #define __declspec(WINDOWS_EXTENDED_ATTRIBUTE)
86 #define DWORD unsigned int
87 #define PSZ char *
88
89 #endif
90
91 // Windows calling conventions
92 __declspec(dllexport) int __stdcall declspecstdcall(int i) { return i; }
93
94 DWORD mefod(DWORD d) { return d; }
95 PSZ funktion(PSZ d) { return d; }
96 %}
97