## bonobo-app-client bonobo-app-client — client interface to remote BonoboApplication objects |

## Synopsis

                BonoboAppClientMsgDesc;
    BonoboAppClient* bonobo_app_client_new      (Bonobo_Application app_server);
    gint        bonobo_app_client_new_instance  (BonoboAppClient *app_client,
                                                 int argc,
                                                 char *argv[],
                                                 CORBA_Environment *opt_env);
    GValue*     bonobo_app_client_msg_send_valist
                                                (BonoboAppClient *app_client,
                                                 const char *message,
                                                 CORBA_Environment *opt_env,
                                                 GType first_arg_type,
                                                 va_list var_args);
    GValue*     bonobo_app_client_msg_send_argv (BonoboAppClient *app_client,
                                                 const char *message,
                                                 const GValue *argv[],
                                                 CORBA_Environment *opt_env);
    GValue*     bonobo_app_client_msg_send      (BonoboAppClient *app_client,
                                                 const char *message,
                                                 CORBA_Environment *opt_env,
                                                 GType first_arg_type,
                                                 ...);

## Description

## Details

### BonoboAppClientMsgDesc

    typedef struct {
    	gchar *name;
    	GType  return_type;
    	GType *types;		/* G_TYPE_NONE-terminated array */
    	gchar *description;
    } BonoboAppClientMsgDesc;

### bonobo_app_client_new ()

    BonoboAppClient* bonobo_app_client_new      (Bonobo_Application app_server);

`app_server`: object reference to a Bonobo::Application; this function takes ownership of this reference (use `bonobo_object_dup_ref()` if you want to keep your own reference.)

Create an application client object connected to the remote (or local) Bonobo::Application object.

### Warning

Applications should not use this function. See `bonobo_application_register_unique()`.

`app_server` : |
Returns : | a BonoboAppClient object.

### bonobo_app_client_new_instance ()

    gint        bonobo_app_client_new_instance  (BonoboAppClient *app_client,
                                                 int argc,
                                                 char *argv[],
                                                 CORBA_Environment *opt_env);

Ask the application server to emit a "new-instance" signal containing the specified string vector.

`app_client` : | a BonoboAppClient
`argc` : | length of `argv`
`argv` : | array of command-line arguments
`opt_env` : | a CORBA_Environment, or `NULL`.
Returns : | the message return value

### bonobo_app_client_msg_send_valist ()

    GValue*     bonobo_app_client_msg_send_valist
                                                (BonoboAppClient *app_client,
                                                 const char *message,
                                                 CORBA_Environment *opt_env,
                                                 GType first_arg_type,
                                                 va_list var_args);

See `bonobo_app_client_msg_send()`.

`app_client` : | client
`message` : | message name
`opt_env` : | optional corba environment
`first_arg_type` : | first message parameter
`var_args` : | remaining parameters
Returns : | return value

### bonobo_app_client_msg_send_argv ()

    GValue*     bonobo_app_client_msg_send_argv (BonoboAppClient *app_client,
                                                 const char *message,
                                                 const GValue *argv[],
                                                 CORBA_Environment *opt_env);

Like `bonobo_app_client_msg_send()`, except that it receives a single argument vector instead of a variable number of arguments.

`app_client` : | client
`message` : | message name
`argv` : | `NULL`-terminated vector of pointers to GValue, the arguments to pass with the message.
`opt_env` : |
Returns : | the message return value

### bonobo_app_client_msg_send ()

    GValue*     bonobo_app_client_msg_send      (BonoboAppClient *app_client,
                                                 const char *message,
                                                 CORBA_Environment *opt_env,
                                                 GType first_arg_type,
                                                 ...);

Send a message to the application server. Takes a variable length argument list of GType, value pairs, terminated with `G_TYPE_NONE`. Values are direct C values, not GValues! Example:

    GValue *retval;
    retval = bonobo_app_client_msg_send (app_client, "openURL",
                                         G_TYPE_STRING, "http://www.gnome.org",
                                         G_TYPE_BOOLEAN, TRUE,
                                         G_TYPE_NONE);

`app_client` : | the client interface associated with the application to which we wish to send a message
`message` : | message name
`opt_env` : |
`first_arg_type` : |
`...` : | arguments
Returns : | a GValue containing the value returned from the aplication server.