<!-- ##### SECTION Title ##### -->
bonobo-moniker-util

<!-- ##### SECTION Short_Description ##### -->
Object activation and construction through monikers.

<!-- ##### SECTION Long_Description ##### -->
<para>
The moniker utility functions provide two sets of functions:
  <itemizedlist>
    <listitem>
      <para>
      Helper functions for constructing and resolving monikers,
      and a simple get_object method that constructs and resolves
      against an interface in a single pass. Also, asynchronous
      versions of these methods are provided using the #BonoboAsync
      code. 
      </para>
    </listitem>
    <listitem>
      <para>
      Helper functions for the implementation of new custom
      monikers are also provided here, along with a lot of the
      grunt code neccessary for moniker implementation, particularly
      constructing the chained list of sub-monikers that comprises
      a complex moniker.
      </para>
    </listitem>
  </itemizedlist>
</para>
<para>
The most useful function to get a feel for what monikers can do
is the <function>bonobo_get_object</function> method. This is
used to create a moniker and resolve it against a given interface
like this:
  <example>
     <title>GetObject example</title>
     <programlisting>
GtkWidget *
moniker_resolve_demo (void)
{
	Bonobo_Control control;
	CORBA_Environment ev;

	CORBA_exception_init (&amp;ev);

	control = bonobo_get_object ("file:/demo/a.jpeg",
                                     "Bonobo/Control", NULL);

	if (control == CORBA_OBJECT_NIL)
		g_error ("Failed to get object file:/demo/a.jpeg");

	return bonobo_widget_new_control (control);
}
     </programlisting>
  </example>
  This also makes a control out of the widget.
</para>

<para>
  It is worth noting that when resolving monikers a contracted
version of the interface name may be used, ommitting the 'IDL:'
prefix and / or the ':0' suffix.
</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### FUNCTION bonobo_get_object ##### -->
<para>

</para>

@name: 
@interface_name: 
@opt_ev: 
@Returns: 


<!-- ##### FUNCTION bonobo_moniker_client_new_from_name ##### -->
<para>

</para>

@name: 
@opt_ev: 
@Returns: 


<!-- ##### FUNCTION bonobo_moniker_client_get_name ##### -->
<para>

</para>

@moniker: 
@opt_ev: 
@Returns: 


<!-- ##### FUNCTION bonobo_moniker_client_resolve_default ##### -->
<para>

</para>

@moniker: 
@interface_name: 
@opt_ev: 
@Returns: 


<!-- ##### FUNCTION bonobo_moniker_client_equal ##### -->
<para>

</para>

@moniker: 
@name: 
@opt_ev: 
@Returns: 


<!-- ##### USER_FUNCTION BonoboMonikerAsyncFn ##### -->
<para>
Callback function, invoked when bonobo_get_object_async() completes its work.
</para>

@object: the newly-activated object, or %CORBA_OBJECT_NIL if an exception occurred
@ev: CORBA environment that may contain an exception if an activation error occurred
@user_data: user data


<!-- ##### FUNCTION bonobo_get_object_async ##### -->
<para>

</para>

@name: 
@interface_name: 
@ev: 
@cb: 
@user_data: 


<!-- ##### FUNCTION bonobo_moniker_client_new_from_name_async ##### -->
<para>

</para>

@name: 
@ev: 
@cb: 
@user_data: 


<!-- ##### FUNCTION bonobo_moniker_resolve_async ##### -->
<para>

</para>

@moniker: 
@options: 
@interface_name: 
@ev: 
@cb: 
@user_data: 


<!-- ##### FUNCTION bonobo_moniker_resolve_async_default ##### -->
<para>

</para>

@moniker: 
@interface_name: 
@ev: 
@cb: 
@user_data: 


<!-- ##### FUNCTION bonobo_moniker_util_get_parent_name ##### -->
<para>

</para>

@moniker: 
@opt_ev: 
@Returns: 


<!-- ##### FUNCTION bonobo_moniker_util_qi_return ##### -->
<para>

</para>

@object: 
@requested_interface: 
@ev: 
@Returns: 


<!-- ##### FUNCTION bonobo_moniker_util_parse_name ##### -->
<para>

</para>

@name: 
@plen: 
@Returns: 


<!-- ##### FUNCTION bonobo_moniker_util_seek_std_separator ##### -->
<para>

</para>

@str: 
@min_idx: 
@Returns: 


<!-- ##### FUNCTION bonobo_moniker_util_escape ##### -->
<para>

</para>

@string: 
@offset: 
@Returns: 


<!-- ##### FUNCTION bonobo_moniker_util_unescape ##### -->
<para>

</para>

@string: 
@num_chars: 
@Returns: 


<!-- ##### FUNCTION bonobo_url_register ##### -->
<para>

</para>

@oafiid: 
@url: 
@mime_type: 
@object: 
@ev: 


<!-- ##### FUNCTION bonobo_url_unregister ##### -->
<para>

</para>

@oafiid: 
@url: 
@ev: 


<!-- ##### FUNCTION bonobo_url_lookup ##### -->
<para>

</para>

@oafiid: 
@url: 
@ev: 
@Returns: 


