// 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_