void ecom_MS_TaskSched_lib::ITaskScheduler_impl_proxy::ccom_new_work_item(  /* [in] */ EIF_OBJECT pwsz_task_name,  /* [in] */ GUID * rclsid,  /* [in] */ GUID * a_riid,  /* [out] */ EIF_OBJECT pp_unk )

/*-----------------------------------------------------------
	Allocates space for a new task and retrieves its address.
-----------------------------------------------------------*/
{
	HRESULT hr;
	if (p_ITaskScheduler == NULL)
	{
		hr = p_unknown->QueryInterface (IID_ITaskScheduler_, (void **)&p_ITaskScheduler);
		rt.ccom_check_hresult (hr);
	};
	LPWSTR tmp_pwsz_task_name = 0;
	tmp_pwsz_task_name = (LPWSTR)rt_ec.ccom_ec_lpwstr (eif_access (pwsz_task_name), NULL);
	IUnknown * * tmp_pp_unk = 0;
	tmp_pp_unk = (IUnknown * *)grt_ec_mstask_modified_idl_c.ccom_ec_pointed_cell_59 (eif_access (pp_unk), NULL);
	
	EIF_ENTER_C;
	hr = p_ITaskScheduler->NewWorkItem(tmp_pwsz_task_name,rclsid,a_riid,tmp_pp_unk);
	EIF_EXIT_C;
	rt.ccom_check_hresult (hr);
	grt_ce_mstask_modified_idl_c.ccom_ce_pointed_cell_59 ((IUnknown * *)tmp_pp_unk, pp_unk);
	
	grt_ce_mstask_modified_idl_c.ccom_free_memory_pointed_59 (tmp_pp_unk);

};
void ecom_MS_TaskSched_lib::ITaskScheduler_impl_proxy::ccom_activate(  /* [in] */ EIF_OBJECT pwsz_name,  /* [in] */ GUID * a_riid,  /* [out] */ EIF_OBJECT pp_unk )

/*-----------------------------------------------------------
	Returns an active interface to the specified task.
-----------------------------------------------------------*/
{
	HRESULT hr;
	if (p_ITaskScheduler == NULL)
	{
		hr = p_unknown->QueryInterface (IID_ITaskScheduler_, (void **)&p_ITaskScheduler);
		rt.ccom_check_hresult (hr);
	};
	LPWSTR tmp_pwsz_name = 0;
	tmp_pwsz_name = (LPWSTR)rt_ec.ccom_ec_lpwstr (eif_access (pwsz_name), NULL);
	IUnknown * * tmp_pp_unk = 0;
	tmp_pp_unk = (IUnknown * *)grt_ec_mstask_modified_idl_c.ccom_ec_pointed_cell_58 (eif_access (pp_unk), NULL);
	
	EIF_ENTER_C;
	hr = p_ITaskScheduler->Activate(tmp_pwsz_name,a_riid,tmp_pp_unk);
	EIF_EXIT_C;
	rt.ccom_check_hresult (hr);
	grt_ce_mstask_modified_idl_c.ccom_ce_pointed_cell_58 ((IUnknown * *)tmp_pp_unk, pp_unk);
	
	grt_ce_mstask_modified_idl_c.ccom_free_memory_pointed_58 (tmp_pp_unk);

};
Пример #3
0
gint c_gdk_input_add_full (gint s_fd, 
						   GdkInputCondition condition,
						   EIF_OBJ object, 
						   EIF_PROC func, 
						   EIF_PROC destruct,
						   callback_data **p)

{
  callback_data *cbd;


  eif_freeze (object);

  /* Allocate data for two callback blocks */
  cbd = (callback_data *)g_malloc (2 * sizeof (callback_data));
  *p = cbd;
  cbd->rtn = func;
  cbd->obj = eif_access (object);

  /* descriptor destruction callback */
  cbd++;
  cbd->rtn = destruct;
  cbd->obj = eif_access (object);

  return (gdk_input_add_full (s_fd, condition, 
							  c_gdk_input_function,
							  cbd,
							  c_gdk_destroy_notify));

}
void ecom_control_library::IOleUndoUnit_impl_proxy::ccom_get_unit_type(  /* [out] */ GUID * p_clsid,  /* [out] */ EIF_OBJECT pl_id )

/*-----------------------------------------------------------
  No description available.
-----------------------------------------------------------*/
{
  HRESULT hr;
  if (p_IOleUndoUnit == NULL)
  {
    hr = p_unknown->QueryInterface (IID_IOleUndoUnit_, (void **)&p_IOleUndoUnit);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  };
  LONG * tmp_pl_id = 0;
  tmp_pl_id = (LONG *)rt_ec.ccom_ec_pointed_long (eif_access (pl_id), NULL);
  
  hr = p_IOleUndoUnit->GetUnitType(p_clsid,tmp_pl_id);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  rt_ce.ccom_ce_pointed_long ((LONG *)tmp_pl_id, pl_id);
  
  grt_ce_control_interfaces2.ccom_free_memory_pointed_168 (tmp_pl_id);

};
void ecom_control_library::IOleCache_impl_proxy::ccom_cache(  /* [in] */ ecom_control_library::tagFORMATETC * p_formatetc,  /* [in] */ EIF_INTEGER advf,  /* [out] */ EIF_OBJECT pdw_connection )

/*-----------------------------------------------------------
  No description available.
-----------------------------------------------------------*/
{
  HRESULT hr;
  if (p_IOleCache == NULL)
  {
    hr = p_unknown->QueryInterface (IID_IOleCache_, (void **)&p_IOleCache);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  };
  ULONG tmp_advf = 0;
  tmp_advf = (ULONG)advf;
  ULONG * tmp_pdw_connection = 0;
  tmp_pdw_connection = (ULONG *)rt_ec.ccom_ec_pointed_unsigned_long (eif_access (pdw_connection), NULL);
  
  hr = p_IOleCache->Cache((struct tagFORMATETC *)p_formatetc, tmp_advf, tmp_pdw_connection);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  rt_ce.ccom_ce_pointed_unsigned_long ((ULONG *)tmp_pdw_connection, pdw_connection);
  
  grt_ce_control_interfaces2.ccom_free_memory_pointed_185 (tmp_pdw_connection);

};
void ecom_control_library::IPersistMemory_impl_proxy::ccom_get_size_max(  /* [out] */ EIF_OBJECT pcb_size )

/*-----------------------------------------------------------
  No description available.
-----------------------------------------------------------*/
{
  HRESULT hr;
  if (p_IPersistMemory == NULL)
  {
    hr = p_unknown->QueryInterface (IID_IPersistMemory_, (void **)&p_IPersistMemory);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  };
  ULONG * tmp_pcb_size = 0;
  tmp_pcb_size = (ULONG *)rt_ec.ccom_ec_pointed_unsigned_long (eif_access (pcb_size), NULL);
  
  hr = p_IPersistMemory->GetSizeMax(tmp_pcb_size);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  rt_ce.ccom_ce_pointed_unsigned_long ((ULONG *)tmp_pcb_size, pcb_size);
  
  grt_ce_control_interfaces2.ccom_free_memory_pointed_263 (tmp_pcb_size);

};
void ecom_control_library::IOleUndoManager_impl_proxy::ccom_get_last_redo_description(  /* [out] */ EIF_OBJECT p_bstr )

/*-----------------------------------------------------------
  No description available.
-----------------------------------------------------------*/
{
  HRESULT hr;
  if (p_IOleUndoManager == NULL)
  {
    hr = p_unknown->QueryInterface (IID_IOleUndoManager_, (void **)&p_IOleUndoManager);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  };
  BSTR * tmp_p_bstr = 0;
  tmp_p_bstr = (BSTR *)grt_ec_control_interfaces2.ccom_ec_pointed_cell_173 (eif_access (p_bstr), NULL);
  
  hr = p_IOleUndoManager->GetLastRedoDescription(tmp_p_bstr);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  grt_ce_control_interfaces2.ccom_ce_pointed_cell_173 ((BSTR *)tmp_p_bstr, p_bstr);
  
  grt_ce_control_interfaces2.ccom_free_memory_pointed_173 (tmp_p_bstr);

};
void ecom_control_library::IOleUndoManager_impl_proxy::ccom_get_open_parent_state(  /* [out] */ EIF_OBJECT pdw_state )

/*-----------------------------------------------------------
  No description available.
-----------------------------------------------------------*/
{
  HRESULT hr;
  if (p_IOleUndoManager == NULL)
  {
    hr = p_unknown->QueryInterface (IID_IOleUndoManager_, (void **)&p_IOleUndoManager);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  };
  ULONG * tmp_pdw_state = 0;
  tmp_pdw_state = (ULONG *)rt_ec.ccom_ec_pointed_unsigned_long (eif_access (pdw_state), NULL);
  
  hr = p_IOleUndoManager->GetOpenParentState(tmp_pdw_state);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  rt_ce.ccom_ce_pointed_unsigned_long ((ULONG *)tmp_pdw_state, pdw_state);
  
  grt_ce_control_interfaces2.ccom_free_memory_pointed_171 (tmp_pdw_state);

};
void ecom_control_library::IEnumOLEVERB_impl_proxy::ccom_next(  /* [in] */ EIF_INTEGER celt,  /* [out] */ ecom_control_library::tagOLEVERB * rgelt,  /* [out] */ EIF_OBJECT pcelt_fetched )

/*-----------------------------------------------------------
  No description available.
-----------------------------------------------------------*/
{
  HRESULT hr;
  if (p_IEnumOLEVERB == NULL)
  {
    hr = p_unknown->QueryInterface (IID_IEnumOLEVERB_, (void **)&p_IEnumOLEVERB);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  };
  ULONG tmp_celt = 0;
  tmp_celt = (ULONG)celt;
  ULONG * tmp_pcelt_fetched = 0;
  tmp_pcelt_fetched = (ULONG *)rt_ec.ccom_ec_pointed_unsigned_long (eif_access (pcelt_fetched), NULL);
  
  hr = p_IEnumOLEVERB->Next(tmp_celt, (struct tagOLEVERB *)rgelt, tmp_pcelt_fetched);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  rt_ce.ccom_ce_pointed_unsigned_long ((ULONG *)tmp_pcelt_fetched, pcelt_fetched);
  
  grt_ce_control_interfaces2.ccom_free_memory_pointed_177 (tmp_pcelt_fetched);

};
void ecom_control_library::IOleCommandTarget_impl_proxy::ccom_query_status(  /* [in] */ GUID * pguid_cmd_group,  /* [in] */ EIF_INTEGER c_cmds,  /* [in, out] */ EIF_OBJECT prg_cmds,  /* [in, out] */ ecom_control_library::_tagOLECMDTEXT * p_cmd_text )

/*-----------------------------------------------------------
  No description available.
-----------------------------------------------------------*/
{
  HRESULT hr;
  if (p_IOleCommandTarget == NULL)
  {
    hr = p_unknown->QueryInterface (IID_IOleCommandTarget_, (void **)&p_IOleCommandTarget);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  };
  ULONG tmp_c_cmds = 0;
  tmp_c_cmds = (ULONG)c_cmds;
  OLECMD * tmp_prg_cmds = (OLECMD *) CoTaskMemAlloc (c_cmds * (sizeof (OLECMD)));
  grt_ec_control_interfaces2.ccom_ec_array_olecmd (eif_access (prg_cmds), tmp_prg_cmds);
  
  hr = p_IOleCommandTarget->QueryStatus(pguid_cmd_group, tmp_c_cmds, tmp_prg_cmds, (OLECMDTEXT *)p_cmd_text);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  
  grt_ce_control_interfaces2.ccom_ce_array_olecmd (tmp_prg_cmds, c_cmds, prg_cmds);
};
Пример #11
0
rt_private EIF_INTEGER private_object_id(EIF_REFERENCE object, struct stack *st, EIF_INTEGER *max_value_ptr)
{
	register unsigned int stack_number = 0;
	register struct stchunk *end;
	register EIF_INTEGER Result;
	char *address;

	if (-1 == epush(st, object)) {	/* Cannot record object */
		eraise("object id", EN_MEM);			/* No more memory */
		return (EIF_INTEGER) 0;					/* They ignored it */
		}
	address = (char *) (st->st_top - 1);	/* Was allocated here */
	eif_access(address) = object;		/* Record object's physical address */

		/* Get the stack number */
	for(end = st->st_hd;
		end != st->st_cur;
		stack_number++)
		end = end->sk_next;

	Result = (EIF_INTEGER) (stack_number*STACK_SIZE+1-(st->st_cur->sk_arena-(char **)address));

	if (Result>*max_value_ptr)
		*max_value_ptr = Result;

#ifdef DEBUG
	dprintf (2) ("eif_object_id %d %lx %lx\n", Result, address, object);
#endif
	return Result;
}
Пример #12
0
void Font21_impl_proxy::ccom_set_name( EIF_OBJECT a_value )

/*-----------------------------------------------------------
  Set No description available.
-----------------------------------------------------------*/
{
  HRESULT hr;
  if (p_Font21 == NULL)
  {
    hr = p_unknown->QueryInterface (IID_Font21_, (void **)&p_Font21);
	rt.ccom_check_hresult (hr);
  };
  DISPID disp = (DISPID) 0;
  LCID lcid = (LCID) 0;
  DISPPARAMS args;
  VARIANTARG arg;

  BSTR tmp_value;
  tmp_value = rt_ec.ccom_ec_bstr (eif_access (a_value));
  arg.vt = 8;
  arg.bstrVal = tmp_value;
  args.cArgs = 1;
  args.cNamedArgs = 0;

  VARIANT pResult; 
  VariantInit (&pResult);

  excepinfo->wCode = 0;
  excepinfo->wReserved = 0;
  excepinfo->bstrSource = NULL;
  excepinfo->bstrDescription = NULL;
  excepinfo->bstrHelpFile = NULL;
  excepinfo->dwHelpContext = 0;
  excepinfo->pvReserved = NULL;
  excepinfo->pfnDeferredFillIn = NULL;
  excepinfo->scode = 0;
  
  unsigned int nArgErr;

  hr = p_Font21->Invoke (disp, IID_NULL, lcid, DISPATCH_PROPERTYPUT, &args, &pResult, excepinfo, &nArgErr);
  
  if (hr == DISP_E_TYPEMISMATCH || hr == DISP_E_PARAMNOTFOUND)
  {
    char * hresult_error = f.c_format_message (hr);
    char  arg_no[20];
    itoa (nArgErr, arg_no, 10);
    char * arg_name = "Argument No: ";
    int size = strlen (hresult_error) + strlen (arg_no) + strlen (arg_name) + 1;
    char * message;
    message = (char *)calloc (size, sizeof (char));
    strcat (message, hresult_error);
    strcat (message, arg_no);
    strcat (message, arg_name);
    com_eraise (message, HRESULT_CODE(hr));
  }   if (FAILED (hr))
    {
      com_eraise (f.c_format_message (hr), HRESULT_CODE (hr));
    };
  
};
void ecom_control_library::IOleInPlaceFrame_impl_proxy::ccom_set_status_text(  /* [in] */ EIF_OBJECT psz_status_text )

/*-----------------------------------------------------------
  No description available.
-----------------------------------------------------------*/
{
  HRESULT hr;
  if (p_IOleInPlaceFrame == NULL)
  {
    hr = p_unknown->QueryInterface (IID_IOleInPlaceFrame_, (void **)&p_IOleInPlaceFrame);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  };
  LPWSTR tmp_psz_status_text = 0;
  tmp_psz_status_text = (LPWSTR)rt_ec.ccom_ec_lpwstr (eif_access (psz_status_text), NULL);
  
  hr = p_IOleInPlaceFrame->SetStatusText(tmp_psz_status_text);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  
  
};
Пример #14
0
rt_private void private_object_id_free(EIF_INTEGER id, struct stack *st, EIF_INTEGER max_value)
{
	/* Free the entry in the table */

	register size_t stack_number, i = 0;
	register struct stchunk *end;
	
	if (id==0)							/* No object associated with 0 */
		return;

	if (id>max_value)
		return;

	if ((end = st->st_hd) == (struct stchunk *) 0)	/* No stack */
		return;

	id--;

	stack_number = id / STACK_SIZE;		/* Get the chunk number */

	for (;stack_number != i; i++)
		if ((end = end->sk_next) == (struct stchunk *) 0)
			return;		/* Not that many chunks */

		/* add offset to the end of chunk */
	eif_access((char *)((char **)end->sk_arena + (id % STACK_SIZE))) = (EIF_REFERENCE) 0;

}
void ecom_StringManipulatorLib::StringManipulator::ccom_replace_substring(  /* [in] */ EIF_OBJECT s,  /* [in] */ EIF_INTEGER start_pos,  /* [in] */ EIF_INTEGER end_pos )

/*-----------------------------------------------------------
	Copy the characters of `s' to positions `start_pos' .. `end_pos'.
-----------------------------------------------------------*/
{
	HRESULT hr;
	if (p_IString == NULL)
	{
		hr = p_unknown->QueryInterface (IID_IString_, (void **)&p_IString);
		rt.ccom_check_hresult (hr);
	};
	LPSTR tmp_s = 0;
	tmp_s = (LPSTR)rt_ec.ccom_ec_lpstr (eif_access (s), NULL);
	INT tmp_start_pos = 0;
	tmp_start_pos = (INT)start_pos;
	INT tmp_end_pos = 0;
	tmp_end_pos = (INT)end_pos;
	
	EIF_ENTER_C;
	hr = p_IString->ReplaceSubstring(tmp_s,tmp_start_pos,tmp_end_pos);
	EIF_EXIT_C;
	rt.ccom_check_hresult (hr);
	
	
};
void ecom_control_library::IOleInPlaceFrame_impl_proxy::ccom_get_window(  /* [out] */ EIF_OBJECT phwnd )

/*-----------------------------------------------------------
  No description available.
-----------------------------------------------------------*/
{
  HRESULT hr;
  if (p_IOleInPlaceFrame == NULL)
  {
    hr = p_unknown->QueryInterface (IID_IOleInPlaceFrame_, (void **)&p_IOleInPlaceFrame);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  };
  ecom_control_library::wireHWND * tmp_phwnd = 0;
  tmp_phwnd = (ecom_control_library::wireHWND *)rt_ec.ccom_ec_pointed_pointer (eif_access (phwnd), NULL);
  
  hr = p_IOleInPlaceFrame->GetWindow(tmp_phwnd);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  rt_ce.ccom_ce_pointed_pointer ((void **)tmp_phwnd, phwnd);
  
  grt_ce_control_interfaces2.ccom_free_memory_pointed_208 (tmp_phwnd);

};
void ecom_control_library::IPersistMemory_impl_proxy::ccom_load(  /* [in] */ EIF_OBJECT p_mem,  /* [in] */ EIF_INTEGER cb_size )

/*-----------------------------------------------------------
  No description available.
-----------------------------------------------------------*/
{
  HRESULT hr;
  if (p_IPersistMemory == NULL)
  {
    hr = p_unknown->QueryInterface (IID_IPersistMemory_, (void **)&p_IPersistMemory);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  };
  UCHAR * tmp_p_mem = 0;
  tmp_p_mem = (UCHAR *)rt_ec.ccom_ec_pointed_unsigned_character (eif_access (p_mem), NULL);
  ULONG tmp_cb_size = 0;
  tmp_cb_size = (ULONG)cb_size;
  
  hr = p_IPersistMemory->Load(tmp_p_mem,tmp_cb_size);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  
  grt_ce_control_interfaces2.ccom_free_memory_pointed_261 (tmp_p_mem);

};
Пример #18
0
/* This is the routine that is called upon a signal and switches back
   to Eiffel */
void epx_the_signal_handler (int sig) {
  if (signal_switch_object != NULL && signal_switch_address != NULL) {
#ifdef EIFFEL_VENDOR_ISE
    (signal_switch_address) (eif_access(signal_switch_object), sig);
#endif
#ifdef EIFFEL_VENDOR_VE
    (signal_switch_address) (eif_access(signal_switch_object), sig);
#endif
#ifdef EIFFEL_VENDOR_SE
    (signal_switch_address) (signal_switch_object, sig);
#endif
#ifdef EIFFEL_VENDOR_GE
    (signal_switch_address) (eif_adopt(signal_switch_object), sig);
#endif
  }
}
Пример #19
0
rt_public void eif_log_call (int routine_id, EIF_SCP_PID p, call_data * a)
{
	EIF_GET_CONTEXT
	BODY_INDEX body_id;
	EIF_REFERENCE t = eif_access (a -> target);
	EIF_TYPED_VALUE * result = a -> result;
	EIF_REFERENCE result_reference = NULL;
    
	if (result) {
		RT_GC_PROTECT (result_reference);
		a -> result_address = &result_reference;
	}
	CHECK("Target attached", t);
	CBodyId(body_id,routine_id,Dtype(t));
	a -> body_index = body_id;
	RTS_TCB(scoop_task_add_call,p,RTS_PID(t),a);
	if (result) {
		switch (result -> type & SK_HEAD) {
		case SK_REF:
		case SK_EXP:
				/* Retrieve reference from the GC-protected storage. */
			result -> it_ref = result_reference;
		}
		RT_GC_WEAN (result_reference);
	}
}
STDMETHODIMP ecom_control_library::IEnumUnknown_impl_stub::Clone(  /* [out] */ ::IEnumUnknown * * ppenum )

/*-----------------------------------------------------------
  No description available.
-----------------------------------------------------------*/
{
  ECATCH;

  EIF_OBJECT tmp_ppenum = NULL;
  if (ppenum != NULL)
  {
    *ppenum = NULL;
    tmp_ppenum = eif_protect (grt_ce_control_interfaces2.ccom_ce_pointed_cell_191 (ppenum, NULL));
  }
  
  EIF_PROCEDURE eiffel_procedure = 0;
  eiffel_procedure = eif_procedure ("clone1", type_id);

  (FUNCTION_CAST (void, (EIF_REFERENCE, EIF_REFERENCE))eiffel_procedure) (eif_access (eiffel_object), ((tmp_ppenum != NULL) ? eif_access (tmp_ppenum) : NULL));
  
 grt_ec_control_interfaces2.ccom_ec_pointed_cell_191 (((tmp_ppenum != NULL) ? eif_wean (tmp_ppenum) : NULL), ppenum);
  if (*ppenum != NULL)
    (*ppenum)->AddRef ();
  
  END_ECATCH;
  return S_OK;
};
ecom_control_library::IEnumUnknown_impl_stub::~IEnumUnknown_impl_stub()
{
  EIF_PROCEDURE eiffel_procedure;
  eiffel_procedure = eif_procedure ("set_item", type_id);

  (FUNCTION_CAST (void, (EIF_REFERENCE, EIF_POINTER))eiffel_procedure) (eif_access (eiffel_object), NULL);
  eif_wean (eiffel_object);
};
Пример #22
0
rt_public void eif_try_call (call_data * a)
{
	uint32            pid = 0; /* Pattern id of the frozen feature */
	EIF_NATURAL_32    i;
	EIF_NATURAL_32    n;
	BODY_INDEX        body_id = a -> body_index;
	EIF_TYPED_VALUE * v;

		/* Push arguments to the evaluation stack */
	for (n = a -> count, i = 0; i < n; i++) {
		v = iget ();
		* v = a -> argument [i];
		if ((v -> it_r) && (v -> type & SK_HEAD) == SK_REF) {
			v -> it_r = eif_access (v -> it_r);
		}
	}
		/* Push current to the evaluation stack */
	v = iget ();
	v -> it_r = eif_access (a -> target);
	v -> type = SK_REF;
		/* Make a call */
	if (egc_frozen [body_id]) {		/* We are below zero Celsius, i.e. ice */
		pid = (uint32) FPatId(body_id);
		(pattern[pid].toc)(egc_frozen[body_id]); /* Call pattern */
	} else {
		/* The proper way to start the interpretation of a melted feature is to call `xinterp'
		 * in order to initialize the calling context (which is not done by `interpret').
		 * `tagval' will therefore be set, but we have to resynchronize the registers anyway.
		 */
		xinterp(MTC melt[body_id], 0);
	}
		/* Save result of a call */
	v = a -> result;
	if (v) {
		* v = * opop ();
		switch (v -> type & SK_HEAD) {
		case SK_REF:
		case SK_EXP:
				/* Avoid reference result to be GC'ed by storing it in the protected location, pointed by `a -> result_address. */
			* (a -> result_address) = v -> it_r;
		}
	}
}
ecom_control_library::ui_window::~ui_window()
{
  EIF_PROCEDURE eiffel_procedure;
  eiffel_procedure = eif_procedure ("set_item", type_id);

  (FUNCTION_CAST (void, (EIF_REFERENCE, EIF_POINTER))eiffel_procedure) (eif_access (eiffel_object), NULL);
  eif_wean (eiffel_object);
  
  ::OleUninitialize ();
};
ecom_control_library::ui_window::ui_window( EIF_TYPE_ID tid )
{
  ::OleInitialize (NULL);
  type_id = tid;
  ref_count = 0;
  eiffel_object = eif_create (type_id);
  EIF_PROCEDURE eiffel_procedure;
  eiffel_procedure = eif_procedure ("make_from_pointer", type_id);

  (FUNCTION_CAST (void, (EIF_REFERENCE, EIF_POINTER))eiffel_procedure) (eif_access (eiffel_object), (EIF_POINTER)this);
};
Пример #25
0
rt_public EIF_INTEGER eif_general_object_id(EIF_OBJECT object)
{
#ifdef ISE_GC
	EIF_INTEGER id;
	EIF_OBJECT_ID_LOCK;
	id = private_general_object_id(eif_access(object), &object_id_stack, &max_object_id, EIF_FALSE);
	EIF_OBJECT_ID_UNLOCK;
	return id;
#else
	return (EIF_INTEGER) object;
#endif
}
void ecom_control_library::IViewObject2_impl_proxy::ccom_get_advise(  /* [out] */ EIF_OBJECT p_aspects,  /* [out] */ EIF_OBJECT p_advf,  /* [out] */ EIF_OBJECT pp_adv_sink )

/*-----------------------------------------------------------
  No description available.
-----------------------------------------------------------*/
{
  HRESULT hr;
  if (p_IViewObject2 == NULL)
  {
    hr = p_unknown->QueryInterface (IID_IViewObject2_, (void **)&p_IViewObject2);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  };
  ULONG * tmp_p_aspects = 0;
  tmp_p_aspects = (ULONG *)rt_ec.ccom_ec_pointed_unsigned_long (eif_access (p_aspects), NULL);
  ULONG * tmp_p_advf = 0;
  tmp_p_advf = (ULONG *)rt_ec.ccom_ec_pointed_unsigned_long (eif_access (p_advf), NULL);
  ::IAdviseSink * * tmp_pp_adv_sink = 0;
  tmp_pp_adv_sink = (::IAdviseSink * *)grt_ec_control_interfaces2.ccom_ec_pointed_cell_388 (eif_access (pp_adv_sink), NULL);
  
  hr = p_IViewObject2->GetAdvise(tmp_p_aspects,tmp_p_advf,tmp_pp_adv_sink);
  if (FAILED (hr))
  {
    if ((HRESULT_FACILITY (hr)  ==  FACILITY_ITF) && (HRESULT_CODE (hr) > 1024) && (HRESULT_CODE (hr) < 1053))
      com_eraise (rt_ec.ccom_ec_lpstr (eename(HRESULT_CODE (hr) - 1024), NULL),HRESULT_CODE (hr) - 1024);
    com_eraise (f.c_format_message (hr), EN_PROG);
  };
  rt_ce.ccom_ce_pointed_unsigned_long ((ULONG *)tmp_p_aspects, p_aspects);
  rt_ce.ccom_ce_pointed_unsigned_long ((ULONG *)tmp_p_advf, p_advf);
  grt_ce_control_interfaces2.ccom_ce_pointed_cell_388 ((::IAdviseSink * *)tmp_pp_adv_sink, pp_adv_sink);
  
  grt_ce_control_interfaces2.ccom_free_memory_pointed_386 (tmp_p_aspects);
grt_ce_control_interfaces2.ccom_free_memory_pointed_387 (tmp_p_advf);
grt_ce_control_interfaces2.ccom_free_memory_pointed_388 (tmp_pp_adv_sink);

};
Пример #27
0
void set_fallback_res (EIF_POINTER w, EIF_OBJ res, EIF_INTEGER count)
{
	int counter = 0;

	if (fallback_list != (String *) 0) {
		String * temp = fallback_list;
		while (temp) eif_rt_xfree (*(temp++));
		eif_rt_xfree (fallback_list);
		fallback_list = (String *) 0;
	}
	if (res != (EIF_OBJ) 0) {
		fallback_list = (String *) cmalloc (count * sizeof (String) + 1);
		while (count > counter) {
			*(fallback_list + counter) = (String) cmalloc (strlen (*((char **)eif_access(res) + counter)) + 1);
			strcpy (*(fallback_list + counter), *((char **)(eif_access (res)) + counter));
			counter++;
		}
		*(fallback_list + counter) = (String) 0;
	}
		
	XtAppSetFallbackResources ((XtAppContext) w, fallback_list);
}
Пример #28
0
rt_private EIF_REFERENCE private_id_object(EIF_INTEGER id, struct stack *st, EIF_INTEGER max_value)
{
	register size_t stack_number, i = 0;
	register struct stchunk *end;

	register char *address;

	if (id<=0)							/* No object associated with 0 or a negative value. */
		return (EIF_REFERENCE) 0;

	if (id>max_value)
		return (EIF_REFERENCE) 0;

	if ((end = st->st_hd) == (struct stchunk *) 0)	/* No stack */
		return (EIF_REFERENCE) 0;

	id --;

	stack_number = id / STACK_SIZE;		/* Get the chunk number */

	for (;stack_number != i; i++)
		if ((end = end->sk_next) == (struct stchunk *) 0)
			return (EIF_REFERENCE) 0;		/* Not that many chunks */

		/* add offset to the end of chunk */
	address = (char *) (end->sk_arena + (id % STACK_SIZE));

#ifdef DEBUG
	if (address)
		dprintf (2) ("id_object %d %lx %lx\n", id+1, address, eif_access(address));
	else
		dprintf (2) ("id_object %d No object\n", id+1);
#endif
	if (address)
			/* Use eif_access to return the "real" object */
		return (eif_access(address));

	return (EIF_REFERENCE) 0;
}
Пример #29
0
/* Register an idle function. */
gint c_gtk_idle_add (EIF_PROC func, EIF_OBJ object, callback_data **p) {

  callback_data *cbd;
  
  eif_freeze (object);
  cbd = (callback_data *)g_malloc (sizeof (callback_data));
  /* Return the pointer of the allocated block to Eiffel, so it
	 can be deallocated later
  */
  *p = cbd;
  cbd->rtn = func;
  cbd->obj = eif_access (object);
  return (gtk_idle_add (c_gtk_function, cbd));
}
STDMETHODIMP ecom_control_library::IEnumUnknown_impl_stub::Reset( void )

/*-----------------------------------------------------------
  No description available.
-----------------------------------------------------------*/
{
  ECATCH;
EIF_PROCEDURE eiffel_procedure;
  eiffel_procedure = eif_procedure ("reset", type_id);

  (FUNCTION_CAST ( void, (EIF_REFERENCE))eiffel_procedure) (eif_access (eiffel_object));
  
  END_ECATCH;
  return S_OK;
};