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 18namespace base { 19namespace internal { 20 21template <typename Sig> 22struct FunctionTraits; 23 24// __stdcall Function: Arity 0. 25template <typename R> 26struct FunctionTraits<R(__stdcall *)()> { 27 typedef R (*NormalizedSig)(); 28 typedef false_type IsMethod; 29}; 30 31// __fastcall Function: Arity 0. 32template <typename R> 33struct FunctionTraits<R(__fastcall *)()> { 34 typedef R (*NormalizedSig)(); 35 typedef false_type IsMethod; 36}; 37 38// __stdcall Function: Arity 1. 39template <typename R, typename X1> 40struct 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. 48template <typename R, typename X1> 49struct 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. 57template <typename R, typename X1, typename X2> 58struct 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. 67template <typename R, typename X1, typename X2> 68struct 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. 77template <typename R, typename X1, typename X2, typename X3> 78struct 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. 88template <typename R, typename X1, typename X2, typename X3> 89struct 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. 99template <typename R, typename X1, typename X2, typename X3, typename X4> 100struct 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. 111template <typename R, typename X1, typename X2, typename X3, typename X4> 112struct 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. 123template <typename R, typename X1, typename X2, typename X3, typename X4, 124 typename X5> 125struct 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. 137template <typename R, typename X1, typename X2, typename X3, typename X4, 138 typename X5> 139struct 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. 151template <typename R, typename X1, typename X2, typename X3, typename X4, 152 typename X5, typename X6> 153struct 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. 166template <typename R, typename X1, typename X2, typename X3, typename X4, 167 typename X5, typename X6> 168struct 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