blob: 250f472ca817c7b32560c28efa0dfe5dd723bf03 [file] [log] [blame]
// 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
// In the x64 architecture in Windows, __fastcall, __stdcall, etc, are all
// the same as __cdecl which would turn the following specializations into
// multiple definitions.
#if !defined(ARCH_CPU_X86_64)
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;
typedef R Return;
};
// __fastcall Function: Arity 0.
template <typename R>
struct FunctionTraits<R(__fastcall *)()> {
typedef R (*NormalizedSig)();
typedef false_type IsMethod;
typedef R Return;
};
// __stdcall Function: Arity 1.
template <typename R, typename X1>
struct FunctionTraits<R(__stdcall *)(X1)> {
typedef R (*NormalizedSig)(X1);
typedef false_type IsMethod;
typedef R Return;
// 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;
typedef R Return;
// 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;
typedef R Return;
// 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;
typedef R Return;
// 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;
typedef R Return;
// 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;
typedef R Return;
// 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;
typedef R Return;
// 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;
typedef R Return;
// 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;
typedef R Return;
// 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;
typedef R Return;
// 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;
typedef R Return;
// 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;
typedef R Return;
// 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 // !defined(ARCH_CPU_X86_64)
#endif // BASE_BIND_INTERNAL_WIN_H_