55 unsigned char explicit_fc, implicit_fc;
120 if (has_full_pointer)
125 print_server(
"if ((_pRpcMessage->DataRepresentation & 0x0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION)\n");
127 print_server(
"NdrConvert(&__frame->_StubMsg, (PFORMAT_STRING)&__MIDL_ProcFormatString.Format[%u]);\n",
136 print_server(
"if (__frame->_StubMsg.Buffer > __frame->_StubMsg.BufferEnd)\n");
139 print_server(
"RpcRaiseException(RPC_X_BAD_STUB_DATA);\n");
144 print_server(
"RpcExcept(RPC_BAD_STUB_DATA_EXCEPTION_FILTER)\n");
147 print_server(
"RpcRaiseException(RPC_X_BAD_STUB_DATA);\n");
203 print_server(
"_pRpcMessage->BufferLength = __frame->_StubMsg.BufferLength;\n");
205 print_server(
"_Status = I_RpcGetBuffer(_pRpcMessage);\n");
211 print_server(
"__frame->_StubMsg.Buffer = _pRpcMessage->Buffer;\n");
234 print_server(
"_pRpcMessage->BufferLength = __frame->_StubMsg.Buffer - (unsigned char *)_pRpcMessage->Buffer;\n");
252 func->procstring_offset = *proc_offset;
261 unsigned int method_count = 0;
295 print_server(
"static const SERVER_ROUTINE %s_ServerRoutineTable[] =\n", iface->
name );
315 print_server(
"static const NDR_RUNDOWN RundownRoutines[] =\n" );
331 print_server(
"static const MIDL_SERVER_INFO %s_ServerInfo =\n", iface->
name );
381 print_server(
"0x50100a4, /* MIDL Version 5.1.164 */\n");
384 print_server(
"0, /* notify & notify_flag routine table */\n");
404 print_server(
"static const MIDL_SERVER_INFO %s_ServerInfo;\n", iface->
name );
406 print_server(
"static const RPC_SERVER_INTERFACE %s___RpcServerInterface =\n", iface->
name );
410 print_server(
"{{0x%08x,0x%04x,0x%04x,{0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x}},{%d,%d}},\n",
414 print_server(
"{{0x8a885d04,0x1ceb,0x11c9,{0x9f,0xe8,0x08,0x00,0x2b,0x10,0x48,0x60}},{2,0}},\n");
419 print_server(
"(PRPC_PROTSEQ_ENDPOINT)%s__RpcProtseqEndpoint,\n", iface->
name);
432 print_server(
"RPC_IF_HANDLE %s_ServerIfHandle DECLSPEC_HIDDEN = (RPC_IF_HANDLE)& %s___RpcServerInterface;\n",
435 print_server(
"RPC_IF_HANDLE %s%s_v%d_%d_s_ifspec DECLSPEC_HIDDEN = (RPC_IF_HANDLE)& %s___RpcServerInterface;\n",
471 fprintf(
server,
"/*****************************************************************************\n");
484 print_server(
"#error Invalid build platform for this stub.\n");
500 unsigned int proc_offset = 0;
513 print_server(
"static int __server_filter( struct __server_frame *__frame )\n");
515 print_server(
" return (__frame->code == STATUS_ACCESS_VIOLATION) ||\n");
516 print_server(
" (__frame->code == STATUS_DATATYPE_MISALIGNMENT) ||\n");
517 print_server(
" (__frame->code == RPC_X_BAD_STUB_DATA) ||\n");
518 print_server(
" (__frame->code == RPC_S_INVALID_BOUND);\n");
static void print(LPPRINTDLGW pd, LPWSTR wszFileName)
static int list_empty(struct list_entry *head)
int get_name(unsigned char **pos, uint32_t *remaining, const char **out_name)
GLuint GLuint GLsizei count
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
_Check_return_ _CRTIMP FILE *__cdecl fopen(_In_z_ const char *_Filename, _In_z_ const char *_Mode)
_Check_return_opt_ _CRTIMP int __cdecl fputc(_In_ int _Ch, _Inout_ FILE *_File)
_Check_return_opt_ _CRTIMP int __cdecl fclose(_Inout_ FILE *_File)
__WINE_SERVER_LIST_INLINE unsigned int list_count(const struct list *list)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
union _statement_t::@5031 u
void declare_stub_args(FILE *file, int indent, const var_t *func)
void write_procformatstring(FILE *file, const statement_list_t *stmts, type_pred_t pred)
void write_parameters_init(FILE *file, int indent, const var_t *func, const char *local_var_prefix)
static struct list expr_eval_routines
void write_endpoints(FILE *f, const char *prefix, const str_list_t *list)
void write_user_quad_list(FILE *file)
void write_full_pointer_init(FILE *file, int indent, const var_t *func, int is_server)
void write_expr_eval_routine_list(FILE *file, const char *iface)
void write_typeformatstring(FILE *file, const statement_list_t *stmts, type_pred_t pred)
void write_exceptions(FILE *file)
void write_remoting_arguments(FILE *file, int indent, const var_t *func, const char *local_var_prefix, enum pass pass, enum remoting_phase phase)
int is_full_pointer_function(const var_t *func)
unsigned int get_size_procformatstring_func(const type_t *iface, const var_t *func)
int is_interpreted_func(const type_t *iface, const var_t *func)
int write_expr_eval_routines(FILE *file, const char *iface)
void write_procformatstring_offsets(FILE *file, const type_t *iface)
void write_full_pointer_free(FILE *file, int indent, const var_t *func)
void write_formatstringsdecl(FILE *f, int indent, const statement_list_t *stmts, type_pred_t pred)
void assign_stub_out_args(FILE *file, int indent, const var_t *func, const char *local_var_prefix)
static int type_array_is_decl_as_ptr(const type_t *type)
static enum type_type type_get_type(const type_t *type)
static type_t * type_function_get_rettype(const type_t *type)
static statement_list_t * type_iface_get_stmts(const type_t *type)
const char * prefix_server
unsigned int pointer_size
enum stub_mode get_stub_mode(void)
static int statements_has_func(const statement_list_t *stmts)
static var_list_t * type_get_function_args(const type_t *func_type)
#define STATEMENTS_FOR_EACH_FUNC(stmt, stmts)