c2ox is an example on calling Ox code from C (or C++).
The Visual C++ project expects that this is a folder
in the Ox tree: ox/dev/windows/c2ox.

To work, the program has to be able to find the Ox DLL
This will probably require that you need to set the path (see
Control Panel\System\Advanced\Environment variables).

Although not necessary for C or C++, the Ox objects are stored
internally, and indexed via a handle. It would be simpler
to just return the OxVALUE which is the object, but the
the current framework can be ported quite easily to other languages.

In this example, the C program is in control, starting Ox, loading
some source code, and stopping Ox when done. Flexibility is achieved
by using Ox classes.

int  C2Ox_Init(const char *sName);
    Starts Ox and loads the named Ox file.
	Returns 0 for failure, > 0 for success.

void C2Ox_AddCommandline(const char *sArg);
    Specify additional arguments for the Ox command line. Must be
	called before C2Ox_Init.

int  C2Ox_NewObject(const char *sName);
    Create an object, normally the first call after C2Ox_Init.
	Returns an object handle: 0 for failure, > 0 for valid handle.
	Use
OxVALUE *C2Ox_GetObject(int iObject);
	to get the OxVALUE corresponding to the handle (if required).
	
BOOL C2Ox_CallMember0(int iObj, const char *sName);
	Call a function in the object (no argument, no return value).
	Returns FALSE for failure, TRUE for success.
BOOL C2Ox_CallMember(int iObj, const char *sName, OxVALUE *rtn, OxVALUE *pv, int cArg);
	Call a function in the object; rtn is the return value, pv
	the cArg arguments.
	Returns FALSE for failure, TRUE for success.

BOOL C2Ox_SetMember(int iObj, char *sName, OxVALUE *pv);
	Get the value of the named member variable.
	Returns FALSE for failure, TRUE for success.
BOOL C2Ox_GetMember(int iObj, char *sName, OxVALUE *rtn);
	Set a named member variable to the specified value.
	Returns FALSE for failure, TRUE for success.

void C2Ox_Exit(void);
    Deletes all the created object and exits Ox. Use
int C2Ox_DeleteObject(int iObject);
    to delete an individual object.
	