📄 appdomain.h
字号:
template <typename ArgType1, typename ArgType2, typename ArgType3, typename ArgType4, typename ArgType5, typename ArgType6, typename ArgType7, typename ArgType8, typename ArgType9>
struct callback_cdecl_void_struct9
{
void (__cdecl * func)(ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7, ArgType8, ArgType9);
ArgType1 arg1;
ArgType2 arg2;
ArgType3 arg3;
ArgType4 arg4;
ArgType5 arg5;
ArgType6 arg6;
ArgType7 arg7;
ArgType8 arg8;
ArgType9 arg9;
static HRESULT __stdcall callback(void *cookie)
{
HRESULT hr = E_FAIL;
if (cookie == NULL)
{
return hr;
}
callback_cdecl_void_struct9 *pcs = (callback_cdecl_void_struct9*)cookie;
pcs->func(pcs->arg1, pcs->arg2, pcs->arg3, pcs->arg4, pcs->arg5, pcs->arg6, pcs->arg7, pcs->arg8, pcs->arg9);
hr = S_OK;
return hr;
}
};
template <typename ArgType1, typename ArgType2, typename ArgType3, typename ArgType4, typename ArgType5, typename ArgType6, typename ArgType7, typename ArgType8, typename ArgType9, typename ArgType10>
struct callback_cdecl_void_struct10
{
void (__cdecl * func)(ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7, ArgType8, ArgType9, ArgType10);
ArgType1 arg1;
ArgType2 arg2;
ArgType3 arg3;
ArgType4 arg4;
ArgType5 arg5;
ArgType6 arg6;
ArgType7 arg7;
ArgType8 arg8;
ArgType9 arg9;
ArgType10 arg10;
static HRESULT __stdcall callback(void *cookie)
{
HRESULT hr = E_FAIL;
if (cookie == NULL)
{
return hr;
}
callback_cdecl_void_struct10 *pcs = (callback_cdecl_void_struct10*)cookie;
pcs->func(pcs->arg1, pcs->arg2, pcs->arg3, pcs->arg4, pcs->arg5, pcs->arg6, pcs->arg7, pcs->arg8, pcs->arg9, pcs->arg10);
hr = S_OK;
return hr;
}
};
template <typename ArgType1, typename ArgType2, typename ArgType3, typename ArgType4, typename ArgType5, typename ArgType6, typename ArgType7, typename ArgType8, typename ArgType9, typename ArgType10, typename ArgType11>
struct callback_cdecl_void_struct11
{
void (__cdecl * func)(ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7, ArgType8, ArgType9, ArgType10, ArgType11);
ArgType1 arg1;
ArgType2 arg2;
ArgType3 arg3;
ArgType4 arg4;
ArgType5 arg5;
ArgType6 arg6;
ArgType7 arg7;
ArgType8 arg8;
ArgType9 arg9;
ArgType10 arg10;
ArgType11 arg11;
static HRESULT __stdcall callback(void *cookie)
{
HRESULT hr = E_FAIL;
if (cookie == NULL)
{
return hr;
}
callback_cdecl_void_struct11 *pcs = (callback_cdecl_void_struct11*)cookie;
pcs->func(pcs->arg1, pcs->arg2, pcs->arg3, pcs->arg4, pcs->arg5, pcs->arg6, pcs->arg7, pcs->arg8, pcs->arg9, pcs->arg10, pcs->arg11);
hr = S_OK;
return hr;
}
};
template <typename ArgType1, typename ArgType2, typename ArgType3, typename ArgType4, typename ArgType5, typename ArgType6, typename ArgType7, typename ArgType8, typename ArgType9, typename ArgType10, typename ArgType11, typename ArgType12>
struct callback_cdecl_void_struct12
{
void (__cdecl * func)(ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7, ArgType8, ArgType9, ArgType10, ArgType11, ArgType12);
ArgType1 arg1;
ArgType2 arg2;
ArgType3 arg3;
ArgType4 arg4;
ArgType5 arg5;
ArgType6 arg6;
ArgType7 arg7;
ArgType8 arg8;
ArgType9 arg9;
ArgType10 arg10;
ArgType11 arg11;
ArgType12 arg12;
static HRESULT __stdcall callback(void *cookie)
{
HRESULT hr = E_FAIL;
if (cookie == NULL)
{
return hr;
}
callback_cdecl_void_struct12 *pcs = (callback_cdecl_void_struct12*)cookie;
pcs->func(pcs->arg1, pcs->arg2, pcs->arg3, pcs->arg4, pcs->arg5, pcs->arg6, pcs->arg7, pcs->arg8, pcs->arg9, pcs->arg10, pcs->arg11, pcs->arg12);
hr = S_OK;
return hr;
}
};
template <typename ArgType1, typename ArgType2, typename ArgType3, typename ArgType4, typename ArgType5, typename ArgType6, typename ArgType7, typename ArgType8, typename ArgType9, typename ArgType10, typename ArgType11, typename ArgType12, typename ArgType13>
struct callback_cdecl_void_struct13
{
void (__cdecl * func)(ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7, ArgType8, ArgType9, ArgType10, ArgType11, ArgType12, ArgType13);
ArgType1 arg1;
ArgType2 arg2;
ArgType3 arg3;
ArgType4 arg4;
ArgType5 arg5;
ArgType6 arg6;
ArgType7 arg7;
ArgType8 arg8;
ArgType9 arg9;
ArgType10 arg10;
ArgType11 arg11;
ArgType12 arg12;
ArgType13 arg13;
static HRESULT __stdcall callback(void *cookie)
{
HRESULT hr = E_FAIL;
if (cookie == NULL)
{
return hr;
}
callback_cdecl_void_struct13 *pcs = (callback_cdecl_void_struct13*)cookie;
pcs->func(pcs->arg1, pcs->arg2, pcs->arg3, pcs->arg4, pcs->arg5, pcs->arg6, pcs->arg7, pcs->arg8, pcs->arg9, pcs->arg10, pcs->arg11, pcs->arg12, pcs->arg13);
hr = S_OK;
return hr;
}
};
template <typename ArgType1, typename ArgType2, typename ArgType3, typename ArgType4, typename ArgType5, typename ArgType6, typename ArgType7, typename ArgType8, typename ArgType9, typename ArgType10, typename ArgType11, typename ArgType12, typename ArgType13, typename ArgType14>
struct callback_cdecl_void_struct14
{
void (__cdecl * func)(ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7, ArgType8, ArgType9, ArgType10, ArgType11, ArgType12, ArgType13, ArgType14);
ArgType1 arg1;
ArgType2 arg2;
ArgType3 arg3;
ArgType4 arg4;
ArgType5 arg5;
ArgType6 arg6;
ArgType7 arg7;
ArgType8 arg8;
ArgType9 arg9;
ArgType10 arg10;
ArgType11 arg11;
ArgType12 arg12;
ArgType13 arg13;
ArgType14 arg14;
static HRESULT __stdcall callback(void *cookie)
{
HRESULT hr = E_FAIL;
if (cookie == NULL)
{
return hr;
}
callback_cdecl_void_struct14 *pcs = (callback_cdecl_void_struct14*)cookie;
pcs->func(pcs->arg1, pcs->arg2, pcs->arg3, pcs->arg4, pcs->arg5, pcs->arg6, pcs->arg7, pcs->arg8, pcs->arg9, pcs->arg10, pcs->arg11, pcs->arg12, pcs->arg13, pcs->arg14);
hr = S_OK;
return hr;
}
};
template <typename ArgType1, typename ArgType2, typename ArgType3, typename ArgType4, typename ArgType5, typename ArgType6, typename ArgType7, typename ArgType8, typename ArgType9, typename ArgType10, typename ArgType11, typename ArgType12, typename ArgType13, typename ArgType14, typename ArgType15>
struct callback_cdecl_void_struct15
{
void (__cdecl * func)(ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7, ArgType8, ArgType9, ArgType10, ArgType11, ArgType12, ArgType13, ArgType14, ArgType15);
ArgType1 arg1;
ArgType2 arg2;
ArgType3 arg3;
ArgType4 arg4;
ArgType5 arg5;
ArgType6 arg6;
ArgType7 arg7;
ArgType8 arg8;
ArgType9 arg9;
ArgType10 arg10;
ArgType11 arg11;
ArgType12 arg12;
ArgType13 arg13;
ArgType14 arg14;
ArgType15 arg15;
static HRESULT __stdcall callback(void *cookie)
{
HRESULT hr = E_FAIL;
if (cookie == NULL)
{
return hr;
}
callback_cdecl_void_struct15 *pcs = (callback_cdecl_void_struct15*)cookie;
pcs->func(pcs->arg1, pcs->arg2, pcs->arg3, pcs->arg4, pcs->arg5, pcs->arg6, pcs->arg7, pcs->arg8, pcs->arg9, pcs->arg10, pcs->arg11, pcs->arg12, pcs->arg13, pcs->arg14, pcs->arg15);
hr = S_OK;
return hr;
}
};
} // namespace _detail
/* __stdcall version */
#if _MSCLR_STDCALL_DISTINCT
template <typename RetType>
RetType inline call_in_appdomain(DWORD dwAppDomainId, RetType (__stdcall * func)())
{
ICLRRuntimeHost *pClrHost = _detail::get_clr_runtime_host();
_detail::callback_stdcall_struct0<RetType> cs;
// fill up the callback_stdcall_struct
cs.func = func;
// call the function
HRESULT hr = pClrHost->ExecuteInAppDomain(dwAppDomainId, &cs.callback, &cs);
pClrHost->Release();
_detail::validate(hr);
return cs.retValue;
}
template <typename RetType, typename ArgType1>
RetType inline call_in_appdomain(DWORD dwAppDomainId, RetType (__stdcall * func)(ArgType1), ArgType1 arg1)
{
ICLRRuntimeHost *pClrHost = _detail::get_clr_runtime_host();
_detail::callback_stdcall_struct1<RetType, ArgType1> cs;
// fill up the callback_stdcall_struct
cs.func = func;
cs.arg1 = arg1;
// call the function
HRESULT hr = pClrHost->ExecuteInAppDomain(dwAppDomainId, &cs.callback, &cs);
pClrHost->Release();
_detail::validate(hr);
return cs.retValue;
}
template <typename RetType, typename ArgType1, typename ArgType2>
RetType inline call_in_appdomain(DWORD dwAppDomainId, RetType (__stdcall * func)(ArgType1, ArgType2), ArgType1 arg1, ArgType2 arg2)
{
ICLRRuntimeHost *pClrHost = _detail::get_clr_runtime_host();
_detail::callback_stdcall_struct2<RetType, ArgType1, ArgType2> cs;
// fill up the callback_stdcall_struct
cs.func = func;
cs.arg1 = arg1;
cs.arg2 = arg2;
// call the function
HRESULT hr = pClrHost->ExecuteInAppDomain(dwAppDomainId, &cs.callback, &cs);
pClrHost->Release();
_detail::validate(hr);
return cs.retValue;
}
template <typename RetType, typename ArgType1, typename ArgType2, typename ArgType3>
RetType inline call_in_appdomain(DWORD dwAppDomainId, RetType (__stdcall * func)(ArgType1, ArgType2, ArgType3), ArgType1 arg1, ArgType2 arg2, ArgType3 arg3)
{
ICLRRuntimeHost *pClrHost = _detail::get_clr_runtime_host();
_detail::callback_stdcall_struct3<RetType, ArgType1, ArgType2, ArgType3> cs;
// fill up the callback_stdcall_struct
cs.func = func;
cs.arg1 = arg1;
cs.arg2 = arg2;
cs.arg3 = arg3;
// call the function
HRESULT hr = pClrHost->ExecuteInAppDomain(dwAppDomainId, &cs.callback, &cs);
pClrHost->Release();
_detail::validate(hr);
return cs.retValue;
}
template <typename RetType, typename ArgType1, typename ArgType2, typename ArgType3, typename ArgType4>
RetType inline call_in_appdomain(DWORD dwAppDomainId, RetType (__stdcall * func)(ArgType1, ArgType2, ArgType3, ArgType4), ArgType1 arg1, ArgType2 arg2, ArgType3 arg3, ArgType4 arg4)
{
ICLRRuntimeHost *pClrHost = _detail::get_clr_runtime_host();
_detail::callback_stdcall_struct4<RetType, ArgType1, ArgType2, ArgType3, ArgType4> cs;
// fill up the callback_stdcall_struct
cs.func = func;
cs.arg1 = arg1;
cs.arg2 = arg2;
cs.arg3 = arg3;
cs.arg4 = arg4;
// call the function
HRESULT hr = pClrHost->ExecuteInAppDomain(dwAppDomainId, &cs.callback, &cs);
pClrHost->Release();
_detail::validate(hr);
return cs.retValue;
}
template <typename RetType, typename ArgType1, typename ArgType2, typename ArgType3, typename ArgType4, typename ArgType5>
RetType inline call_in_appdomain(DWORD dwAppDomainId, RetType (__stdcall * func)(ArgType1, ArgType2, ArgType3, ArgType4, ArgType5), ArgType1 arg1, ArgType2 arg2, ArgType3 arg3, ArgType4 arg4, ArgType5 arg5)
{
ICLRRuntimeHost *pClrHost = _detail::get_clr_runtime_host();
_detail::callback_stdcall_struct5<RetType, ArgType1, ArgType2, ArgType3, ArgType4, ArgType5> cs;
// fill up the callback_stdcall_struct
cs.func = func;
cs.arg1 = arg1;
cs.arg2 = arg2;
cs.arg3 = arg3;
cs.arg4 = arg4;
cs.arg5 = arg5;
// call the function
HRESULT hr = pClrHost->ExecuteInAppDomain(dwAppDomainId, &cs.callback, &cs);
pClrHost->Release();
_detail::validate(hr);
return cs.retValue;
}
template <typename RetType, typename ArgType1, typename ArgType2, typename ArgType3, typename ArgType4, typename ArgType5, typename ArgType6>
RetType inline call_in_appdomain(DWORD dwAppDomainId, RetType (__stdcall * func)(ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6), ArgType1 arg1, ArgType2 arg2, ArgType3 arg3, ArgType4 arg4, ArgType5 arg5, ArgType6 arg6)
{
ICLRRuntimeHost *pClrHost = _detail::get_clr_runtime_host();
_detail::callback_stdcall_struct6<RetType, ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6> cs;
// fill up the callback_stdcall_struct
cs.func = func;
cs.arg1 = arg1;
cs.arg2 = arg2;
cs.arg3 = arg3;
cs.arg4 = arg4;
cs.arg5 = arg5;
cs.arg6 = arg6;
// call the function
HRESULT hr = pClrHost->ExecuteInAppDomain(dwAppDomainId, &cs.callback, &cs);
pClrHost->Release();
_detail::validate(hr);
return cs.retValue;
}
template <typename RetType, typename ArgType1, typename ArgType2, typename ArgType3, typename ArgType4, typename ArgType5, typename ArgType6, typename ArgType7>
RetType inline call_in_appdomain(DWORD dwAppDomainId, RetType (__stdcall * func)(ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7), ArgType1 arg1, ArgType2 arg2, ArgType3 arg3, ArgType4 arg4, ArgType5 arg5, ArgType6 arg6, ArgType7 arg7)
{
ICLRRuntimeHost *pClrHost = _detail::get_clr_runtime_host();
_detail::callback_stdcall_struct7<RetType, ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7> cs;
// fill up the callback_stdcall_struct
cs.func = func;
cs.arg1 = arg1;
cs.arg2 = arg2;
cs.arg3 = arg3;
cs.arg4 = arg4;
cs.arg5 = arg5;
cs.arg6 = arg6;
cs.arg7 = arg7;
// call the function
HRESULT hr = pClrHost->ExecuteInAppDomain(dwAppDomainId, &cs.callback, &cs);
pClrHost->Release();
_detail::validate(hr);
return cs.retValue;
}
template <typename RetType, typename ArgType1, typename ArgType2, typename ArgType3, typename ArgType4, typename ArgType5, typename ArgType6, typename ArgType7, typename ArgType8>
RetType inline call_in_appdomain(DWORD dwAppDomainId, RetType (__stdcall * func)(ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7, ArgType8), ArgType1 arg1, ArgType2 arg2, ArgType3 arg3, ArgType4 arg4, ArgType5 arg5, ArgType6 arg6, ArgType7 arg7, ArgType8 arg8)
{
ICLRRuntimeHost *pClrHost = _detail::get_clr_runtime_host();
_detail::callback_stdcall_struct8<RetType, ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7, ArgType8> cs;
// fill up the callback_stdcall_struct
cs.func = func;
cs.arg1 = arg1;
c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -