/* This interface file checks how well SWIG handles passing data back through arguments WITHOUT returning it separately; for the cases where maybe multiple values are passed by reference and all want changing */ %module argout %include cpointer.i %pointer_functions(int,intp); %inline %{ // returns old value int incp(int *value) { return (*value)++; } // returns old value int incr(int &value) { return value++; } typedef int & IntRef; // returns old value int inctr(IntRef value) { return value++; } // example of the old DB login type routines where you keep // a void* which it points to its opaque struct when you login // So login function takes a void** void voidhandle(void** handle) { *handle=(void*)"Here it is"; } char * handle(void* handle) { return (char *)handle; } %}