ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg,
canBubble, cancelable, (nsIDOMAbstractView*) jviewArg, (PRUint16)jdetailArg,
JNIEXPORT void JNICALL Java_org_mozilla_dom_events_MouseEventImpl_initMouseEvent  (JNIEnv *env, jobject jthis,    jstring jtypeArg,    jboolean jcanBubbleArg,    jboolean jcancelableArg,    jobject jviewArg,    jint jdetailArg,    jint jscreenXArg,    jint jscreenYArg,    jint jclientXArg,    jint jclientYArg,    jboolean jctrlKeyArg,    jboolean jaltKeyArg,    jboolean jshiftKeyArg,    jboolean jmetaKeyArg,    jshort jbuttonArg,    jobject jrelatedNodeArg){  nsIDOMMouseEvent* event = (nsIDOMMouseEvent*)     env->GetLongField(jthis, JavaDOMEventsGlobals::eventPtrFID);   if (!event) {     JavaDOMGlobals::ThrowException(env,        "MouseEvent.initMouseEvent: NULL pointer");    return;  }  nsString* cvalue = JavaDOMGlobals::GetUnicode(env, jtypeArg);  if (!cvalue)    return;  PRBool canBubble   = jcanBubbleArg  == JNI_TRUE ? PR_TRUE : PR_FALSE;  PRBool cancelable  = jcancelableArg == JNI_TRUE ? PR_TRUE : PR_FALSE;  PRBool ctrlKeyArg  = jctrlKeyArg    == JNI_TRUE ? PR_TRUE : PR_FALSE;  PRBool altKeyArg   = jaltKeyArg     == JNI_TRUE ? PR_TRUE : PR_FALSE;   PRBool shiftKeyArg = jshiftKeyArg   == JNI_TRUE ? PR_TRUE : PR_FALSE;  PRBool metaKeyArg  = jmetaKeyArg    == JNI_TRUE ? PR_TRUE : PR_FALSE;  nsresult rv = event->InitMouseEvent(*cvalue,				      ctrlKeyArg, 				      altKeyArg, 				      shiftKeyArg, 				      metaKeyArg, 				      (PRInt32)jscreenXArg, 				      (PRInt32)jscreenYArg, 				      (PRInt32)jclientXArg, 				      (PRInt32)jclientYArg, 				      (PRUint16)jbuttonArg, 				      (PRUint16)jdetailArg);  nsMemory::Free(cvalue);  if (NS_FAILED(rv)) {    JavaDOMGlobals::ThrowException(env,        "UIEvent.initUIEvent: failed", rv);  }}