extern "C" DLL_EXPORT BOOL WINAPI MarshalStructAsParam_AsExpByRefInByteStructPack2Explicit(ByteStructPack2Explicit* str1)
{
	if(!IsCorrectByteStructPack2Explicit(str1))
	{
		printf("\tMarshalStructAsParam_AsExpByRefIn7:ByteStructPack2Explicit param not as expected\n");
		PrintByteStructPack2Explicit(str1, "str1");
		return FALSE;
	}
	ChangeByteStructPack2Explicit(str1);
	return TRUE;
}
extern "C" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsExpByRefByteStructPack2Explicit_Stdcall(ByteStructPack2Explicit* str1)
{
    if(!IsCorrectByteStructPack2Explicit(str1))
    {
        PRINT_ERR_INFO();
        PrintByteStructPack2Explicit(str1, "str1");
        return FALSE;
    }
    ChangeByteStructPack2Explicit(str1);
    return TRUE;
}
extern "C" DLL_EXPORT BOOL __stdcall DoCallBack_MarshalByRefStruct_Stdcall_ByteStructPack2Explicit(ByRefStdcallCaller_ByteStructPack2Explicit caller)
{
    ByteStructPack2Explicit bspe;
    bspe.b1 = 64;
    bspe.b2 = 64;

    if(!caller(&bspe))
    {
        PRINT_ERR_INFO();
        return FALSE;
    }

    if( !IsCorrectByteStructPack2Explicit( &bspe ) )
    {
        PRINT_ERR_INFO();
        return FALSE;
    }

    return TRUE;
}
extern "C" DLL_EXPORT BOOL _cdecl DoCallBack_MarshalByValStruct_Cdecl_ByteStructPack2Explicit(ByValCdeclCaller_ByteStructPack2Explicit caller)
{
    ByteStructPack2Explicit bspe;
    bspe.b1 = 32;
    bspe.b2 = 32;

    if(!caller(bspe))
    {
        PRINT_ERR_INFO();
        return FALSE;
    }

    if( !IsCorrectByteStructPack2Explicit( &bspe ) )
    {
        PRINT_ERR_INFO();
        return FALSE;
    }

    return TRUE;
}