59 if (!callconv) callconv =
"__cdecl";
73 int method_count,
unsigned int proc_offset )
75 unsigned char explicit_fc, implicit_fc;
111 if (has_full_pointer)
121 print_client(
"%s_unbind(__frame->%s, __frame->_Handle);\n",
158 if (has_full_pointer)
168 print_client(
"NdrClientInitializeNew(&_RpcMessage, &__frame->_StubMsg, &%s_StubDesc, %d);\n",
169 iface->
name, method_count);
173 print_client(
"_RpcMessage.RpcFlags = ( RPC_NCA_FLAGS_DEFAULT ");
200 print_client(
"__frame->_Handle = NDRCContextBinding(%s%s);\n",
201 is_ch_ptr ?
"*" :
"", handle_var->
name);
207 print_client(
"RpcRaiseException(RPC_X_SS_IN_NULL_CONTEXT);\n");
224 print_client(
"NdrGetBuffer(&__frame->_StubMsg, __frame->_StubMsg.BufferLength, ");
237 print_client(
"NdrSendReceive(&__frame->_StubMsg, __frame->_StubMsg.Buffer);\n\n");
239 print_client(
"__frame->_StubMsg.BufferStart = _RpcMessage.Buffer;\n");
240 print_client(
"__frame->_StubMsg.BufferEnd = __frame->_StubMsg.BufferStart + _RpcMessage.BufferLength;\n");
246 print_client(
"if ((_RpcMessage.DataRepresentation & 0x0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION)\n");
248 print_client(
"NdrConvert(&__frame->_StubMsg, (PFORMAT_STRING)&__MIDL_ProcFormatString.Format[%u]);\n",
291 const char *
func_name,
const char *ret_type)
294 static int emited_pickling_info;
300 if (ret_type)
warning(
"Serialization of type %s is not supported\n",
type->name);
304 if (!emited_pickling_info && iface &&
mode !=
MODE_Os)
306 fprintf(
file,
"static const MIDL_TYPE_PICKLING_INFO __MIDL_TypePicklingInfo =\n");
315 emited_pickling_info = 1;
320 fprintf(
file,
"%s __cdecl %s_%s(handle_t IDL_handle, %s *IDL_type)%s\n",
329 fprintf(
file,
" (MIDL_TYPE_PICKLING_INFO*)&__MIDL_TypePicklingInfo,\n");
331 fprintf(
file,
" (PFORMAT_STRING)&__MIDL_TypeFormatString.Format[%u],\n",
332 type->typestring_offset);
356 int method_count = 0;
359 print_client(
"static RPC_BINDING_HANDLE %s__MIDL_AutoBindHandle;\n\n", iface->
name);
378 for (type_entry = stmt->
u.
type_list; type_entry; type_entry = type_entry->
next)
428 print_client(
"0x50100a4, /* MIDL Version 5.1.164 */\n");
431 print_client(
"0, /* notify & notify_flag routine table */\n");
450 print_client(
"static const RPC_CLIENT_INTERFACE %s___RpcClientInterface =\n", iface->
name );
454 print_client(
"{{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",
458 print_client(
"{{0x8a885d04,0x1ceb,0x11c9,{0x9f,0xe8,0x08,0x00,0x2b,0x10,0x48,0x60}},{2,0}},\n");
463 print_client(
"(PRPC_PROTSEQ_ENDPOINT)%s__RpcProtseqEndpoint,\n", iface->
name);
476 print_client(
"RPC_IF_HANDLE %s_ClientIfHandle DECLSPEC_HIDDEN = (RPC_IF_HANDLE)& %s___RpcClientInterface;\n",
479 print_client(
"RPC_IF_HANDLE %s%s_v%d_%d_c_ifspec DECLSPEC_HIDDEN = (RPC_IF_HANDLE)& %s___RpcClientInterface;\n",
528 fprintf(
client,
"/*****************************************************************************\n");
544 for (type_entry = stmt2->
u.
type_list; type_entry; type_entry = type_entry->
next)
566 print_client(
"#error Invalid build platform for this stub.\n");
581 print_client(
"static const GENERIC_BINDING_ROUTINE_PAIR BindingRoutines[] =\n" );
586 print_client(
"{ (GENERIC_BINDING_ROUTINE)%s_bind, (GENERIC_UNBIND_ROUTINE)%s_unbind },\n",
595 unsigned int proc_offset = 0;
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)
implicit_handle(handle_t browser_hBinding)] interface browser
GLuint GLuint GLsizei GLenum type
_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 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::@5113 u
struct _type_list_t * next
unsigned int typestring_offset
enum storage_class stgclass
void write_pointer_checks(FILE *file, int indent, const var_t *func)
void write_procformatstring(FILE *file, const statement_list_t *stmts, type_pred_t pred)
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)
int decl_indirect(const type_t *t)
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)
void write_client_call_routine(FILE *file, const type_t *iface, const var_t *func, const char *prefix, unsigned int proc_offset)
int is_interpreted_func(const type_t *iface, const var_t *func)
int write_expr_eval_routines(FILE *file, const char *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)
static enum type_type type_get_type(const type_t *type)
static type_t * type_function_get_rettype(const type_t *type)
static var_t * type_function_get_retval(const type_t *type)
static statement_list_t * type_iface_get_stmts(const type_t *type)
unsigned int pointer_size
enum stub_mode get_stub_mode(void)
const char * prefix_client
static enum type_type type_get_type_detect_alias(const type_t *type)
static var_list_t * type_get_function_args(const type_t *func_type)