1 // This file was GENERATED by command: 2 // pump.py bind_internal_win.h.pump 3 // DO NOT EDIT BY HAND!!! 4 5 6 7 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 8 // Use of this source code is governed by a BSD-style license that can be 9 // found in the LICENSE file. 10 11 // Specializations of FunctionTraits<> for Windows specific calling 12 // conventions. Please see base/bind_internal.h for more info. 13 14 #ifndef BASE_BIND_INTERNAL_WIN_H_ 15 #define BASE_BIND_INTERNAL_WIN_H_ 16 #pragma once 17 18 namespace base { 19 namespace internal { 20 21 template <typename Sig> 22 struct FunctionTraits; 23 24 // __stdcall Function: Arity 0. 25 template <typename R> 26 struct FunctionTraits<R(__stdcall *)()> { 27 typedef R (*NormalizedSig)(); 28 typedef false_type IsMethod; 29 }; 30 31 // __fastcall Function: Arity 0. 32 template <typename R> 33 struct FunctionTraits<R(__fastcall *)()> { 34 typedef R (*NormalizedSig)(); 35 typedef false_type IsMethod; 36 }; 37 38 // __stdcall Function: Arity 1. 39 template <typename R, typename X1> 40 struct FunctionTraits<R(__stdcall *)(X1)> { 41 typedef R (*NormalizedSig)(X1); 42 typedef false_type IsMethod; 43 // Target type for each bound parameter. 44 typedef X1 B1; 45 }; 46 47 // __fastcall Function: Arity 1. 48 template <typename R, typename X1> 49 struct FunctionTraits<R(__fastcall *)(X1)> { 50 typedef R (*NormalizedSig)(X1); 51 typedef false_type IsMethod; 52 // Target type for each bound parameter. 53 typedef X1 B1; 54 }; 55 56 // __stdcall Function: Arity 2. 57 template <typename R, typename X1, typename X2> 58 struct FunctionTraits<R(__stdcall *)(X1, X2)> { 59 typedef R (*NormalizedSig)(X1, X2); 60 typedef false_type IsMethod; 61 // Target type for each bound parameter. 62 typedef X1 B1; 63 typedef X2 B2; 64 }; 65 66 // __fastcall Function: Arity 2. 67 template <typename R, typename X1, typename X2> 68 struct FunctionTraits<R(__fastcall *)(X1, X2)> { 69 typedef R (*NormalizedSig)(X1, X2); 70 typedef false_type IsMethod; 71 // Target type for each bound parameter. 72 typedef X1 B1; 73 typedef X2 B2; 74 }; 75 76 // __stdcall Function: Arity 3. 77 template <typename R, typename X1, typename X2, typename X3> 78 struct FunctionTraits<R(__stdcall *)(X1, X2, X3)> { 79 typedef R (*NormalizedSig)(X1, X2, X3); 80 typedef false_type IsMethod; 81 // Target type for each bound parameter. 82 typedef X1 B1; 83 typedef X2 B2; 84 typedef X3 B3; 85 }; 86 87 // __fastcall Function: Arity 3. 88 template <typename R, typename X1, typename X2, typename X3> 89 struct FunctionTraits<R(__fastcall *)(X1, X2, X3)> { 90 typedef R (*NormalizedSig)(X1, X2, X3); 91 typedef false_type IsMethod; 92 // Target type for each bound parameter. 93 typedef X1 B1; 94 typedef X2 B2; 95 typedef X3 B3; 96 }; 97 98 // __stdcall Function: Arity 4. 99 template <typename R, typename X1, typename X2, typename X3, typename X4> 100 struct FunctionTraits<R(__stdcall *)(X1, X2, X3, X4)> { 101 typedef R (*NormalizedSig)(X1, X2, X3, X4); 102 typedef false_type IsMethod; 103 // Target type for each bound parameter. 104 typedef X1 B1; 105 typedef X2 B2; 106 typedef X3 B3; 107 typedef X4 B4; 108 }; 109 110 // __fastcall Function: Arity 4. 111 template <typename R, typename X1, typename X2, typename X3, typename X4> 112 struct FunctionTraits<R(__fastcall *)(X1, X2, X3, X4)> { 113 typedef R (*NormalizedSig)(X1, X2, X3, X4); 114 typedef false_type IsMethod; 115 // Target type for each bound parameter. 116 typedef X1 B1; 117 typedef X2 B2; 118 typedef X3 B3; 119 typedef X4 B4; 120 }; 121 122 // __stdcall Function: Arity 5. 123 template <typename R, typename X1, typename X2, typename X3, typename X4, 124 typename X5> 125 struct FunctionTraits<R(__stdcall *)(X1, X2, X3, X4, X5)> { 126 typedef R (*NormalizedSig)(X1, X2, X3, X4, X5); 127 typedef false_type IsMethod; 128 // Target type for each bound parameter. 129 typedef X1 B1; 130 typedef X2 B2; 131 typedef X3 B3; 132 typedef X4 B4; 133 typedef X5 B5; 134 }; 135 136 // __fastcall Function: Arity 5. 137 template <typename R, typename X1, typename X2, typename X3, typename X4, 138 typename X5> 139 struct FunctionTraits<R(__fastcall *)(X1, X2, X3, X4, X5)> { 140 typedef R (*NormalizedSig)(X1, X2, X3, X4, X5); 141 typedef false_type IsMethod; 142 // Target type for each bound parameter. 143 typedef X1 B1; 144 typedef X2 B2; 145 typedef X3 B3; 146 typedef X4 B4; 147 typedef X5 B5; 148 }; 149 150 // __stdcall Function: Arity 6. 151 template <typename R, typename X1, typename X2, typename X3, typename X4, 152 typename X5, typename X6> 153 struct FunctionTraits<R(__stdcall *)(X1, X2, X3, X4, X5, X6)> { 154 typedef R (*NormalizedSig)(X1, X2, X3, X4, X5, X6); 155 typedef false_type IsMethod; 156 // Target type for each bound parameter. 157 typedef X1 B1; 158 typedef X2 B2; 159 typedef X3 B3; 160 typedef X4 B4; 161 typedef X5 B5; 162 typedef X6 B6; 163 }; 164 165 // __fastcall Function: Arity 6. 166 template <typename R, typename X1, typename X2, typename X3, typename X4, 167 typename X5, typename X6> 168 struct FunctionTraits<R(__fastcall *)(X1, X2, X3, X4, X5, X6)> { 169 typedef R (*NormalizedSig)(X1, X2, X3, X4, X5, X6); 170 typedef false_type IsMethod; 171 // Target type for each bound parameter. 172 typedef X1 B1; 173 typedef X2 B2; 174 typedef X3 B3; 175 typedef X4 B4; 176 typedef X5 B5; 177 typedef X6 B6; 178 }; 179 180 } // namespace internal 181 } // namespace base 182 183 #endif // BASE_BIND_INTERNAL_WIN_H_ 184