/* Copyright (c) 2011-2012 William Newbery
 * 
 * This software is provided 'as-is', without any express or implied
 * warranty. In no event will the authors be held liable for any damages
 * arising from the use of this software.
 * 
 * Permission is granted to anyone to use this software for any purpose,
 * including commercial applications, and to alter it and redistribute it
 * freely, subject to the following restrictions:
 * 
 * 1. The origin of this software must not be misrepresented; you must not
 * claim that you wrote the original software. If you use this software
 * in a product, an acknowledgment in the product documentation would be
 * appreciated but is not required.
 * 
 * 2. Altered source versions must be plainly marked as such, and must not be
 * misrepresented as being the original software.
 * 
 * 3. This notice may not be removed or altered from any source
 * distribution.
 */
//Auto-Generated File
#ifndef GMAPI_FUNCTIONS_DLL_HPP
#define GMAPI_FUNCTIONS_DLL_HPP
#include "../Function.hpp"
#include "../Types.hpp"
namespace gm
{
    /**@addtogroup gm_functions*/
    ///@{
    inline void external_define(String dll, String name, Real calltype, Real restype, Real argnumb)
    {
        call(functions[191], dll, name, calltype, restype, argnumb);
    }
    inline void external_define(String dll, String name, Real calltype, Real restype, Real argnumb, Value v0)
    {
        call(functions[191], dll, name, calltype, restype, argnumb, v0);
    }
    inline void external_define(String dll, String name, Real calltype, Real restype, Real argnumb, Value v0, Value v1)
    {
        call(functions[191], dll, name, calltype, restype, argnumb, v0, v1);
    }
    inline void external_define(String dll, String name, Real calltype, Real restype, Real argnumb, Value v0, Value v1, Value v2)
    {
        call(functions[191], dll, name, calltype, restype, argnumb, v0, v1, v2);
    }
    inline void external_define(String dll, String name, Real calltype, Real restype, Real argnumb, Value v0, Value v1, Value v2, Value v3)
    {
        call(functions[191], dll, name, calltype, restype, argnumb, v0, v1, v2, v3);
    }
    inline void external_define(String dll, String name, Real calltype, Real restype, Real argnumb, Value v0, Value v1, Value v2, Value v3, Value v4)
    {
        call(functions[191], dll, name, calltype, restype, argnumb, v0, v1, v2, v3, v4);
    }
    inline void external_define(String dll, String name, Real calltype, Real restype, Real argnumb, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5)
    {
        call(functions[191], dll, name, calltype, restype, argnumb, v0, v1, v2, v3, v4, v5);
    }
    inline void external_define(String dll, String name, Real calltype, Real restype, Real argnumb, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5, Value v6)
    {
        call(functions[191], dll, name, calltype, restype, argnumb, v0, v1, v2, v3, v4, v5, v6);
    }
    inline void external_define(String dll, String name, Real calltype, Real restype, Real argnumb, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5, Value v6, Value v7)
    {
        call(functions[191], dll, name, calltype, restype, argnumb, v0, v1, v2, v3, v4, v5, v6, v7);
    }
    inline void external_define(String dll, String name, Real calltype, Real restype, Real argnumb, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5, Value v6, Value v7, Value v8)
    {
        call(functions[191], dll, name, calltype, restype, argnumb, v0, v1, v2, v3, v4, v5, v6, v7, v8);
    }
    inline void external_define(String dll, String name, Real calltype, Real restype, Real argnumb, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5, Value v6, Value v7, Value v8, Value v9)
    {
        call(functions[191], dll, name, calltype, restype, argnumb, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
    }
    inline void external_define(String dll, String name, Real calltype, Real restype, Real argnumb, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5, Value v6, Value v7, Value v8, Value v9, Value v10)
    {
        call(functions[191], dll, name, calltype, restype, argnumb, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10);
    }
    
    inline Value external_call(Real id)
    {
        return call(functions[192], id);
    }
    inline Value external_call(Real id, Value v0)
    {
        return call(functions[192], id, v0);
    }
    inline Value external_call(Real id, Value v0, Value v1)
    {
        return call(functions[192], id, v0, v1);
    }
    inline Value external_call(Real id, Value v0, Value v1, Value v2)
    {
        return call(functions[192], id, v0, v1, v2);
    }
    inline Value external_call(Real id, Value v0, Value v1, Value v2, Value v3)
    {
        return call(functions[192], id, v0, v1, v2, v3);
    }
    inline Value external_call(Real id, Value v0, Value v1, Value v2, Value v3, Value v4)
    {
        return call(functions[192], id, v0, v1, v2, v3, v4);
    }
    inline Value external_call(Real id, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5)
    {
        return call(functions[192], id, v0, v1, v2, v3, v4, v5);
    }
    inline Value external_call(Real id, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5, Value v6)
    {
        return call(functions[192], id, v0, v1, v2, v3, v4, v5, v6);
    }
    inline Value external_call(Real id, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5, Value v6, Value v7)
    {
        return call(functions[192], id, v0, v1, v2, v3, v4, v5, v6, v7);
    }
    inline Value external_call(Real id, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5, Value v6, Value v7, Value v8)
    {
        return call(functions[192], id, v0, v1, v2, v3, v4, v5, v6, v7, v8);
    }
    inline Value external_call(Real id, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5, Value v6, Value v7, Value v8, Value v9)
    {
        return call(functions[192], id, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
    }
    inline Value external_call(Real id, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5, Value v6, Value v7, Value v8, Value v9, Value v10)
    {
        return call(functions[192], id, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10);
    }
    inline Value external_call(Real id, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5, Value v6, Value v7, Value v8, Value v9, Value v10, Value v11)
    {
        return call(functions[192], id, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11);
    }
    inline Value external_call(Real id, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5, Value v6, Value v7, Value v8, Value v9, Value v10, Value v11, Value v12)
    {
        return call(functions[192], id, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12);
    }
    inline Value external_call(Real id, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5, Value v6, Value v7, Value v8, Value v9, Value v10, Value v11, Value v12, Value v13)
    {
        return call(functions[192], id, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13);
    }
    inline Value external_call(Real id, Value v0, Value v1, Value v2, Value v3, Value v4, Value v5, Value v6, Value v7, Value v8, Value v9, Value v10, Value v11, Value v12, Value v13, Value v14)
    {
        return call(functions[192], id, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14);
    }
    
    inline void external_free(Real dll)
    {
        call(functions[193], dll);
    }
    
    inline Real window_handle()
    {
        return call(functions[194]);
    }
    
    inline Real get_function_address(String func_name)
    {
        return call(functions[195], func_name);
    }
    
    ///@}
}
#endif
