if(NS_SUCCEEDED(test->MultTwoLLs(2LL,2LL,&out64)))
if(NS_SUCCEEDED(test->MultTwoLLs(2,2,&out64)))
int main(){    InvokeTestTarget *test = new InvokeTestTarget();    PRInt32 out;    PRInt64 out64;    printf("calling direct:\n");    if(NS_SUCCEEDED(test->AddTwoInts(1,1,&out)))        printf("\t1 + 1 = %d\n", out);    else        printf("\tFAILED");    if(NS_SUCCEEDED(test->AddTwoLLs(1LL,1LL,&out64)))        printf("\t1L + 1L = %dL\n", out);    else        printf("\tFAILED");    if(NS_SUCCEEDED(test->MultTwoInts(2,2,&out)))        printf("\t2 * 2 = %d\n", out);    else        printf("\tFAILED");    if(NS_SUCCEEDED(test->MultTwoLLs(2LL,2LL,&out64)))        printf("\t2L * 2L = %dL\n", out);    else        printf("\tFAILED");    nsXPTCVariant var[3];    printf("calling via invoke:\n");    var[0].val.i32 = 1;    var[0].type = nsXPTType::T_I32;    var[0].flags = 0;    var[1].val.i32 = 1;    var[1].type = nsXPTType::T_I32;    var[1].flags = 0;    var[2].val.i32 = 0;    var[2].type = nsXPTType::T_I32;    var[2].flags = nsXPTCVariant::PTR_IS_DATA;    var[2].ptr = &var[2].val.i32;    if(NS_SUCCEEDED(XPTC_InvokeByIndex(test, 3, 3, var)))        printf("\t1 + 1 = %d\n", var[2].val.i32);    else        printf("\tFAILED");    var[0].val.i64 = 1LL;    var[0].type = nsXPTType::T_I64;    var[0].flags = 0;    var[1].val.i64 = 1LL;    var[1].type = nsXPTType::T_I64;    var[1].flags = 0;    var[2].val.i64 = 0;    var[2].type = nsXPTType::T_I64;    var[2].flags = nsXPTCVariant::PTR_IS_DATA;    var[2].ptr = &var[2].val.i64;    if(NS_SUCCEEDED(XPTC_InvokeByIndex(test, 5, 3, var)))        printf("\t1L * 1L = %dL\n", var[2].val.i64);    else        printf("\tFAILED");    var[0].val.i32 = 2;    var[0].type = nsXPTType::T_I32;    var[0].flags = 0;    var[1].val.i32 = 2;    var[1].type = nsXPTType::T_I32;    var[1].flags = 0;    var[2].val.i32 = 0;    var[2].type = nsXPTType::T_I32;    var[2].flags = nsXPTCVariant::PTR_IS_DATA;    var[2].ptr = &var[2].val.i32;    if(NS_SUCCEEDED(XPTC_InvokeByIndex(test, 4, 3, var)))        printf("\t2 * 2 = %d\n", var[2].val.i32);    else        printf("\tFAILED");    var[0].val.i64 = 2LL;    var[0].type = nsXPTType::T_I64;    var[0].flags = 0;    var[1].val.i64 = 2LL;    var[1].type = nsXPTType::T_I64;    var[1].flags = 0;    var[2].val.i64 = 0;    var[2].type = nsXPTType::T_I64;    var[2].flags = nsXPTCVariant::PTR_IS_DATA;    var[2].ptr = &var[2].val.i64;    if(NS_SUCCEEDED(XPTC_InvokeByIndex(test, 6, 3, var)))        printf("\t2L * 2L = %dL\n", var[2].val.i64);    else        printf("\tFAILED");    return 0;}