#include #include #include #include #include #include #include #include // gSOAP headers (must come after vbox includes because it checks for conflicting defs) #include "soapH.h" // standard headers #include #include // shared strings for debug output const char *g_pcszCallingComMethod = " calling COM method %s\n"; const char *g_pcszDoneCallingComMethod = " done calling COM method\n"; const char *g_pcszConvertComOutputBack = " convert COM output \"%s\" back to caller format\n"; const char *g_pcszDoneConvertingComOutputBack = " done converting COM output \"%s\" back to caller format\n"; const char *g_pcszEntering = "-- entering %s\n"; const char *g_pcszLeaving = "-- leaving %s, rc: %#lx (%d)\n"; // generated string constants for all interface names const char *g_pcszIUnknown = "IUnknown"; ]]> /**************************************************************************** * * types: enum converter helper functions * ****************************************************************************/ { switch(e) { break; default: AssertMsgFailed(("e=%d\n", (int)e)); break; } return v; } { switch(v) { break; default: AssertMsgFailed(("v=%d\n", (int)v)); break; } return e; } /**************************************************************************** * * types: struct converter helper functions * ****************************************************************************/ { if (!in) { // @todo ambiguous. Problem is the MOR for the object converted to struct RaiseSoapInvalidObjectFault(soap, ""); break; } struct soap *soap , , WEBDEBUG((g_pcszEntering, __FUNCTION__)); do { } while (0); WEBDEBUG((g_pcszLeaving, __FUNCTION__, rc, rc)); if (FAILED(rc)) return SOAP_FAULT; return SOAP_OK; return resp; } // invoke method on global IVirtualBox instance ComPtr<IVirtualBox> pObj = G_pVirtualBox; // look up managed object reference for method call { RaiseSoapInvalidObjectFault(soap, ""); break; } break; break; break; break break ; // com output arg for .raw() & .asOutParam() , ); if (FAILED(rc)) { break; } WEBDEBUG((g_pcszDoneCallingComMethod)); ) { ) { /**************************************************************************** * * interface * ****************************************************************************/ [] , ) */ ) {