55 if (!callconv) callconv =
"__cdecl";
68 int method_count,
unsigned int proc_offset )
70 unsigned char explicit_fc, implicit_fc;
106 if (has_full_pointer)
117 print_client(
"%s_unbind(__frame->%s, __frame->_Handle);\n",
155 if (has_full_pointer)
165 print_client(
"NdrClientInitializeNew(&_RpcMessage, &__frame->_StubMsg, &%s_StubDesc, %d);\n",
166 iface->
name, method_count);
170 print_client(
"_RpcMessage.RpcFlags = ( RPC_NCA_FLAGS_DEFAULT ");
197 print_client(
"__frame->_Handle = NDRCContextBinding(%s%s);\n",
198 is_ch_ptr ?
"*" :
"", handle_var->
name);
204 print_client(
"RpcRaiseException(RPC_X_SS_IN_NULL_CONTEXT);\n");
219 print_client(
"NdrCorrelationInitialize(&__frame->_StubMsg, _NdrCorrCache, sizeof(_NdrCorrCache), 0);\n" );
223 print_client(
"NdrGetBuffer(&__frame->_StubMsg, __frame->_StubMsg.BufferLength, ");
236 print_client(
"NdrSendReceive(&__frame->_StubMsg, __frame->_StubMsg.Buffer);\n\n");
238 print_client(
"__frame->_StubMsg.BufferStart = _RpcMessage.Buffer;\n");
239 print_client(
"__frame->_StubMsg.BufferEnd = __frame->_StubMsg.BufferStart + _RpcMessage.BufferLength;\n");
245 print_client(
"if ((_RpcMessage.DataRepresentation & 0x0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION)\n");
247 print_client(
"NdrConvert(&__frame->_StubMsg, (PFORMAT_STRING)&__MIDL_ProcFormatString.Format[%u]);\n",
290 const char *
func_name,
const char *ret_type)
292 static int emitted_pickling_info;
298 if (ret_type)
warning(
"Serialization of type %s is not supported\n",
type->name);
304 fprintf(
file,
"static const MIDL_TYPE_PICKLING_INFO __MIDL_TypePicklingInfo =\n");
313 emitted_pickling_info = 1;
318 fprintf(
file,
"%s __cdecl %s_%s(handle_t IDL_handle, %s *IDL_type)%s\n",
327 fprintf(
file,
" (MIDL_TYPE_PICKLING_INFO*)&__MIDL_TypePicklingInfo,\n");
329 fprintf(
file,
" (PFORMAT_STRING)&__MIDL_TypeFormatString.Format[%u],\n",
330 type->typestring_offset);
354 int method_count = 0;
357 print_client(
"static RPC_BINDING_HANDLE %s__MIDL_AutoBindHandle;\n\n", iface->
name);
426 print_client(
"0x50200ca, /* MIDL Version 5.2.202 */\n");
429 print_client(
"0, /* notify & notify_flag routine table */\n");
448 print_client(
"static const RPC_CLIENT_INTERFACE %s___RpcClientInterface =\n", iface->
name );
452 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",
456 print_client(
"{{0x8a885d04,0x1ceb,0x11c9,{0x9f,0xe8,0x08,0x00,0x2b,0x10,0x48,0x60}},{2,0}},\n");
461 print_client(
"(PRPC_PROTSEQ_ENDPOINT)%s__RpcProtseqEndpoint,\n", iface->
name);
474 print_client(
"RPC_IF_HANDLE %s_ClientIfHandle = (RPC_IF_HANDLE)& %s___RpcClientInterface;\n",
477 print_client(
"RPC_IF_HANDLE %s%s_v%d_%d_c_ifspec = (RPC_IF_HANDLE)& %s___RpcClientInterface;\n",
522 fprintf(
client,
"/*****************************************************************************\n");
560 print_client(
"#error Invalid build platform for this stub.\n");
575 print_client(
"static const GENERIC_BINDING_ROUTINE_PAIR BindingRoutines[] =\n" );
580 print_client(
"{ (GENERIC_BINDING_ROUTINE)%s_bind, (GENERIC_UNBIND_ROUTINE)%s_unbind },\n",
589 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)
enum storage_class stgclass
typeref_list_t * type_list
union _statement_t::@5358 u
unsigned int typestring_offset
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 const decl_spec_t * type_function_get_ret(const type_t *type)
static var_t * type_function_get_retval(const type_t *type)
static var_list_t * type_function_get_args(const type_t *type)
static statement_list_t * type_iface_get_stmts(const type_t *type)
unsigned int pointer_size
const char * prefix_client
static enum type_type type_get_type_detect_alias(const type_t *type)