⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dl_call.hpp

📁 用STL的方式封装了WindowsAPI、COM调用、ACE、ATL、MFC、WTL等多种组件
💻 HPP
📖 第 1 页 / 共 5 页
字号:
        ,   ss_typename_param_k A1
        ,   ss_typename_param_k A2
        ,   ss_typename_param_k A3
        ,   ss_typename_param_k A4
        >
inline R dl_call_invoke_cdecl(dl_call_traits::entry_point_type fp, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4)
{
    R (STLSOFT_CDECL *pfn)(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4);

    reinterpret_cast<dl_call_traits::entry_point_type&>(pfn) = fp;

    return pfn(a0, a1, a2, a3, a4);
}

// 6 params

template<   ss_typename_param_k R
        ,   ss_typename_param_k A0
        ,   ss_typename_param_k A1
        ,   ss_typename_param_k A2
        ,   ss_typename_param_k A3
        ,   ss_typename_param_k A4
        ,   ss_typename_param_k A5
        >
inline R dl_call_invoke_cdecl(dl_call_traits::entry_point_type fp, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
{
    R (STLSOFT_CDECL *pfn)(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5);

    reinterpret_cast<dl_call_traits::entry_point_type&>(pfn) = fp;

    return pfn(a0, a1, a2, a3, a4, a5);
}

// 7 params

template<   ss_typename_param_k R
        ,   ss_typename_param_k A0
        ,   ss_typename_param_k A1
        ,   ss_typename_param_k A2
        ,   ss_typename_param_k A3
        ,   ss_typename_param_k A4
        ,   ss_typename_param_k A5
        ,   ss_typename_param_k A6
        >
inline R dl_call_invoke_cdecl(dl_call_traits::entry_point_type fp, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
{
    R (STLSOFT_CDECL *pfn)(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6);

    reinterpret_cast<dl_call_traits::entry_point_type&>(pfn) = fp;

    return pfn(a0, a1, a2, a3, a4, a5, a6);
}

// 8 params

template<   ss_typename_param_k R
        ,   ss_typename_param_k A0
        ,   ss_typename_param_k A1
        ,   ss_typename_param_k A2
        ,   ss_typename_param_k A3
        ,   ss_typename_param_k A4
        ,   ss_typename_param_k A5
        ,   ss_typename_param_k A6
        ,   ss_typename_param_k A7
        >
inline R dl_call_invoke_cdecl(dl_call_traits::entry_point_type fp, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
{
    R (STLSOFT_CDECL *pfn)(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7);

    reinterpret_cast<dl_call_traits::entry_point_type&>(pfn) = fp;

    return pfn(a0, a1, a2, a3, a4, a5, a6, a7);
}

// 9 params

template<   ss_typename_param_k R
        ,   ss_typename_param_k A0
        ,   ss_typename_param_k A1
        ,   ss_typename_param_k A2
        ,   ss_typename_param_k A3
        ,   ss_typename_param_k A4
        ,   ss_typename_param_k A5
        ,   ss_typename_param_k A6
        ,   ss_typename_param_k A7
        ,   ss_typename_param_k A8
        >
inline R dl_call_invoke_cdecl(dl_call_traits::entry_point_type fp, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
{
    R (STLSOFT_CDECL *pfn)(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8);

    reinterpret_cast<dl_call_traits::entry_point_type&>(pfn) = fp;

    return pfn(a0, a1, a2, a3, a4, a5, a6, a7, a8);
}

// 10 params

template<   ss_typename_param_k R
        ,   ss_typename_param_k A0
        ,   ss_typename_param_k A1
        ,   ss_typename_param_k A2
        ,   ss_typename_param_k A3
        ,   ss_typename_param_k A4
        ,   ss_typename_param_k A5
        ,   ss_typename_param_k A6
        ,   ss_typename_param_k A7
        ,   ss_typename_param_k A8
        ,   ss_typename_param_k A9
        >
inline R dl_call_invoke_cdecl(dl_call_traits::entry_point_type fp, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
{
    R (STLSOFT_CDECL *pfn)(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9);

    reinterpret_cast<dl_call_traits::entry_point_type&>(pfn) = fp;

    return pfn(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
}

// 11 params

template<   ss_typename_param_k R
        ,   ss_typename_param_k A0
        ,   ss_typename_param_k A1
        ,   ss_typename_param_k A2
        ,   ss_typename_param_k A3
        ,   ss_typename_param_k A4
        ,   ss_typename_param_k A5
        ,   ss_typename_param_k A6
        ,   ss_typename_param_k A7
        ,   ss_typename_param_k A8
        ,   ss_typename_param_k A9
        ,   ss_typename_param_k A10
        >
inline R dl_call_invoke_cdecl(dl_call_traits::entry_point_type fp, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10)
{
    R (STLSOFT_CDECL *pfn)(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10);

    reinterpret_cast<dl_call_traits::entry_point_type&>(pfn) = fp;

    return pfn(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
}

// 12 params

template<   ss_typename_param_k R
        ,   ss_typename_param_k A0
        ,   ss_typename_param_k A1
        ,   ss_typename_param_k A2
        ,   ss_typename_param_k A3
        ,   ss_typename_param_k A4
        ,   ss_typename_param_k A5
        ,   ss_typename_param_k A6
        ,   ss_typename_param_k A7
        ,   ss_typename_param_k A8
        ,   ss_typename_param_k A9
        ,   ss_typename_param_k A10
        ,   ss_typename_param_k A11
        >
inline R dl_call_invoke_cdecl(dl_call_traits::entry_point_type fp, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11)
{
    R (STLSOFT_CDECL *pfn)(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11);

    reinterpret_cast<dl_call_traits::entry_point_type&>(pfn) = fp;

    return pfn(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
}

// 13 params

template<   ss_typename_param_k R
        ,   ss_typename_param_k A0
        ,   ss_typename_param_k A1
        ,   ss_typename_param_k A2
        ,   ss_typename_param_k A3
        ,   ss_typename_param_k A4
        ,   ss_typename_param_k A5
        ,   ss_typename_param_k A6
        ,   ss_typename_param_k A7
        ,   ss_typename_param_k A8
        ,   ss_typename_param_k A9
        ,   ss_typename_param_k A10
        ,   ss_typename_param_k A11
        ,   ss_typename_param_k A12
        >
inline R dl_call_invoke_cdecl(dl_call_traits::entry_point_type fp, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12)
{
    R (STLSOFT_CDECL *pfn)(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12);

    reinterpret_cast<dl_call_traits::entry_point_type&>(pfn) = fp;

    return pfn(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
}

// 14 params

template<   ss_typename_param_k R
        ,   ss_typename_param_k A0
        ,   ss_typename_param_k A1
        ,   ss_typename_param_k A2
        ,   ss_typename_param_k A3
        ,   ss_typename_param_k A4
        ,   ss_typename_param_k A5
        ,   ss_typename_param_k A6
        ,   ss_typename_param_k A7
        ,   ss_typename_param_k A8
        ,   ss_typename_param_k A9
        ,   ss_typename_param_k A10
        ,   ss_typename_param_k A11
        ,   ss_typename_param_k A12
        ,   ss_typename_param_k A13
        >
inline R dl_call_invoke_cdecl(dl_call_traits::entry_point_type fp, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13)
{
    R (STLSOFT_CDECL *pfn)(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13);

    reinterpret_cast<dl_call_traits::entry_point_type&>(pfn) = fp;

    return pfn(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
}

// 15 params

template<   ss_typename_param_k R
        ,   ss_typename_param_k A0
        ,   ss_typename_param_k A1
        ,   ss_typename_param_k A2
        ,   ss_typename_param_k A3
        ,   ss_typename_param_k A4
        ,   ss_typename_param_k A5
        ,   ss_typename_param_k A6
        ,   ss_typename_param_k A7
        ,   ss_typename_param_k A8
        ,   ss_typename_param_k A9
        ,   ss_typename_param_k A10
        ,   ss_typename_param_k A11
        ,   ss_typename_param_k A12
        ,   ss_typename_param_k A13
        ,   ss_typename_param_k A14
        >
inline R dl_call_invoke_cdecl(dl_call_traits::entry_point_type fp, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14)
{
    R (STLSOFT_CDECL *pfn)(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14);

    reinterpret_cast<dl_call_traits::entry_point_type&>(pfn) = fp;

    return pfn(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
}

// 16 params

template<   ss_typename_param_k R
        ,   ss_typename_param_k A0
        ,   ss_typename_param_k A1
        ,   ss_typename_param_k A2
        ,   ss_typename_param_k A3
        ,   ss_typename_param_k A4
        ,   ss_typename_param_k A5
        ,   ss_typename_param_k A6
        ,   ss_typename_param_k A7
        ,   ss_typename_param_k A8
        ,   ss_typename_param_k A9
        ,   ss_typename_param_k A10
        ,   ss_typename_param_k A11
        ,   ss_typename_param_k A12
        ,   ss_typename_param_k A13
        ,   ss_typename_param_k A14
        ,   ss_typename_param_k A15
        >
inline R dl_call_invoke_cdecl(dl_call_traits::entry_point_type fp, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14, A15 a15)
{
    R (STLSOFT_CDECL *pfn)(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14, A15 a15);

    reinterpret_cast<dl_call_traits::entry_point_type&>(pfn) = fp;

    return pfn(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
}

// 17 params

template<   ss_typename_param_k R
        ,   ss_typename_param_k A0
        ,   ss_typename_param_k A1
        ,   ss_typename_param_k A2
        ,   ss_typename_param_k A3
        ,   ss_typename_param_k A4
        ,   ss_typename_param_k A5
        ,   ss_typename_param_k A6
        ,   ss_typename_param_k A7
        ,   ss_typename_param_k A8
        ,   ss_typename_param_k A9
        ,   ss_typename_param_k A10
        ,   ss_typename_param_k A11
        ,   ss_typename_param_k A12
        ,   ss_typename_param_k A13
        ,   ss_typename_param_k A14
        ,   ss_typename_param_k A15
        ,   ss_typename_param_k A16
        >
inline R dl_call_invoke_cdecl(dl_call_traits::entry_point_type fp, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14, A15 a15, A16 a16)
{
    R (STLSOFT_CDECL *pfn)(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14, A15 a15, A16 a16);

    reinterpret_cast<dl_call_traits::entry_point_type&>(pfn) = fp;

    return pfn(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16);
}

// 18 params

template<   ss_typename_param_k R
        ,   ss_typename_param_k A0
        ,   ss_typename_param_k A1
        ,   ss_typename_param_k A2
        ,   ss_typename_param_k A3
        ,   ss_typename_param_k A4
        ,   ss_typename_param_k A5
        ,   ss_typename_param_k A6
        ,   ss_typename_param_k A7
        ,   ss_typename_param_k A8
        ,   ss_typename_param_k A9
        ,   ss_typename_param_k A10
        ,   ss_typename_param_k A11
        ,   ss_typename_param_k A12
        ,   ss_typename_param_k A13
        ,   ss_typename_param_k A14
        ,   ss_typename_param_k A15
        ,   ss_typename_param_k A16
        ,   ss_typename_param_k A17
        >
inline R dl_call_invoke_cdecl(dl_call_traits::entry_point_type fp, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14, A15 a15, A16 a16, A17 a17)
{
    R (STLSOFT_CDECL *pfn)(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14, A15 a15, A16 a16, A17 a17);

    reinterpret_cast<dl_call_traits::entry_point_type&>(pfn) = fp;

    return pfn(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17);
}

// 19 params

template<   ss_typename_param_k R
        ,   ss_typename_param_k A0
        ,   ss_typename_param_k A1
        ,   ss_typename_param_k A2
        ,   ss_typename_param_k A3
        ,   ss_typename_param_k A4
        ,   ss_typename_param_k A5
        ,   ss_typename_param_k A6
        ,   ss_typename_param_k A7
        ,   ss_typename_param_k A8
        ,   ss_typename_param_k A9
        ,   ss_typename_param_k A10
        ,   ss_typename_param_k A11
        ,   ss_typename_param_k A12
        ,   ss_typename_param_k A13
        ,   ss_typename_param_k A14

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -