+ if ((giArch == ARCH_X86) &&
+ pexp->nCallingConvention == CC_STDCALL)
+ {
+ fprintf(file, "__stdcall ");
+ }
+
+ /* Check for C++ */
+ if (pexp->strName.buf[0] == '?')
+ {
+ fprintf(file, "stub_function%d(", pexp->nNumber);
+ }
+ else
+ {
+ if (!bRelay || bInPrototype)
+ fprintf(file, "%.*s(", pexp->strName.len, pexp->strName.buf);
+ else
+ fprintf(file, "$relaytrace$%.*s(", pexp->strName.len, pexp->strName.buf);
+ }
+
+ for (i = 0; i < pexp->nArgCount; i++)
+ {
+ if (i != 0) fprintf(file, ", ");
+ switch (pexp->anArgs[i])
+ {
+ case ARG_LONG: fprintf(file, "long"); break;
+ case ARG_PTR: fprintf(file, "void*"); break;
+ case ARG_STR: fprintf(file, "char*"); break;
+ case ARG_WSTR: fprintf(file, "wchar_t*"); break;
+ case ARG_DBL: fprintf(file, "double"); break;
+ case ARG_INT64 : fprintf(file, "__int64"); break;
+ case ARG_INT128 : fprintf(file, "__int128"); break;
+ case ARG_FLOAT: fprintf(file, "float"); break;
+ }
+ fprintf(file, " a%d", i);
+ }
+
+ if (bInPrototype)
+ {
+ fprintf(file, ");\n\n");
+ }
+ } while (bInPrototype--);
+
+ if (!bRelay)