summaryrefslogtreecommitdiffstats
path: root/base/bind_internal_win.h
blob: 976a4d7a0aff6a6b6dc02ab8eb250170b5b0490c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
// This file was GENERATED by command:
//     pump.py bind_internal_win.h.pump
// DO NOT EDIT BY HAND!!!



// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Specializations of FunctionTraits<> for Windows specific calling
// conventions.  Please see base/bind_internal.h for more info.

#ifndef BASE_BIND_INTERNAL_WIN_H_
#define BASE_BIND_INTERNAL_WIN_H_
#pragma once

namespace base {
namespace internal {

template <typename Sig>
struct FunctionTraits;

// __stdcall Function: Arity 0.
template <typename R>
struct FunctionTraits<R(__stdcall *)()> {
  typedef R (*NormalizedSig)();
  typedef false_type IsMethod;
};

// __fastcall Function: Arity 0.
template <typename R>
struct FunctionTraits<R(__fastcall *)()> {
  typedef R (*NormalizedSig)();
  typedef false_type IsMethod;
};

// __stdcall Function: Arity 1.
template <typename R, typename X1>
struct FunctionTraits<R(__stdcall *)(X1)> {
  typedef R (*NormalizedSig)(X1);
  typedef false_type IsMethod;
  // Target type for each bound parameter.
  typedef X1 B1;
};

// __fastcall Function: Arity 1.
template <typename R, typename X1>
struct FunctionTraits<R(__fastcall *)(X1)> {
  typedef R (*NormalizedSig)(X1);
  typedef false_type IsMethod;
  // Target type for each bound parameter.
  typedef X1 B1;
};

// __stdcall Function: Arity 2.
template <typename R, typename X1, typename X2>
struct FunctionTraits<R(__stdcall *)(X1, X2)> {
  typedef R (*NormalizedSig)(X1, X2);
  typedef false_type IsMethod;
  // Target type for each bound parameter.
  typedef X1 B1;
  typedef X2 B2;
};

// __fastcall Function: Arity 2.
template <typename R, typename X1, typename X2>
struct FunctionTraits<R(__fastcall *)(X1, X2)> {
  typedef R (*NormalizedSig)(X1, X2);
  typedef false_type IsMethod;
  // Target type for each bound parameter.
  typedef X1 B1;
  typedef X2 B2;
};

// __stdcall Function: Arity 3.
template <typename R, typename X1, typename X2, typename X3>
struct FunctionTraits<R(__stdcall *)(X1, X2, X3)> {
  typedef R (*NormalizedSig)(X1, X2, X3);
  typedef false_type IsMethod;
  // Target type for each bound parameter.
  typedef X1 B1;
  typedef X2 B2;
  typedef X3 B3;
};

// __fastcall Function: Arity 3.
template <typename R, typename X1, typename X2, typename X3>
struct FunctionTraits<R(__fastcall *)(X1, X2, X3)> {
  typedef R (*NormalizedSig)(X1, X2, X3);
  typedef false_type IsMethod;
  // Target type for each bound parameter.
  typedef X1 B1;
  typedef X2 B2;
  typedef X3 B3;
};

// __stdcall Function: Arity 4.
template <typename R, typename X1, typename X2, typename X3, typename X4>
struct FunctionTraits<R(__stdcall *)(X1, X2, X3, X4)> {
  typedef R (*NormalizedSig)(X1, X2, X3, X4);
  typedef false_type IsMethod;
  // Target type for each bound parameter.
  typedef X1 B1;
  typedef X2 B2;
  typedef X3 B3;
  typedef X4 B4;
};

// __fastcall Function: Arity 4.
template <typename R, typename X1, typename X2, typename X3, typename X4>
struct FunctionTraits<R(__fastcall *)(X1, X2, X3, X4)> {
  typedef R (*NormalizedSig)(X1, X2, X3, X4);
  typedef false_type IsMethod;
  // Target type for each bound parameter.
  typedef X1 B1;
  typedef X2 B2;
  typedef X3 B3;
  typedef X4 B4;
};

// __stdcall Function: Arity 5.
template <typename R, typename X1, typename X2, typename X3, typename X4,
    typename X5>
struct FunctionTraits<R(__stdcall *)(X1, X2, X3, X4, X5)> {
  typedef R (*NormalizedSig)(X1, X2, X3, X4, X5);
  typedef false_type IsMethod;
  // Target type for each bound parameter.
  typedef X1 B1;
  typedef X2 B2;
  typedef X3 B3;
  typedef X4 B4;
  typedef X5 B5;
};

// __fastcall Function: Arity 5.
template <typename R, typename X1, typename X2, typename X3, typename X4,
    typename X5>
struct FunctionTraits<R(__fastcall *)(X1, X2, X3, X4, X5)> {
  typedef R (*NormalizedSig)(X1, X2, X3, X4, X5);
  typedef false_type IsMethod;
  // Target type for each bound parameter.
  typedef X1 B1;
  typedef X2 B2;
  typedef X3 B3;
  typedef X4 B4;
  typedef X5 B5;
};

// __stdcall Function: Arity 6.
template <typename R, typename X1, typename X2, typename X3, typename X4,
    typename X5, typename X6>
struct FunctionTraits<R(__stdcall *)(X1, X2, X3, X4, X5, X6)> {
  typedef R (*NormalizedSig)(X1, X2, X3, X4, X5, X6);
  typedef false_type IsMethod;
  // Target type for each bound parameter.
  typedef X1 B1;
  typedef X2 B2;
  typedef X3 B3;
  typedef X4 B4;
  typedef X5 B5;
  typedef X6 B6;
};

// __fastcall Function: Arity 6.
template <typename R, typename X1, typename X2, typename X3, typename X4,
    typename X5, typename X6>
struct FunctionTraits<R(__fastcall *)(X1, X2, X3, X4, X5, X6)> {
  typedef R (*NormalizedSig)(X1, X2, X3, X4, X5, X6);
  typedef false_type IsMethod;
  // Target type for each bound parameter.
  typedef X1 B1;
  typedef X2 B2;
  typedef X3 B3;
  typedef X4 B4;
  typedef X5 B5;
  typedef X6 B6;
};

}  // namespace internal
}  // namespace base

#endif  // BASE_BIND_INTERNAL_WIN_H_