/** * stabilize_inspect: Return the value of an option in this instance of * the module. See tcmodule-data.h for function details. */ static int transform_inspect(TCModuleInstance *self, const char *param, const char **value) { FilterData *fd = NULL; TC_MODULE_SELF_CHECK(self, "inspect"); TC_MODULE_SELF_CHECK(param, "inspect"); TC_MODULE_SELF_CHECK(value, "inspect"); fd = self->userdata; if (optstr_lookup(param, "help")) { *value = vs_transform_help; } VSTransformConfig conf; vsTransformGetConfig(&conf,&fd->td); CHECKPARAM("maxshift", "maxshift=%d", conf.maxShift); CHECKPARAM("maxangle", "maxangle=%f", conf.maxAngle); CHECKPARAM("smoothing","smoothing=%d", conf.smoothing); CHECKPARAM("crop", "crop=%d", conf.crop); CHECKPARAM("relative", "relative=%d", conf.relative); CHECKPARAM("invert", "invert=%i", conf.invert); CHECKPARAM("input", "input=%s", fd->input); CHECKPARAM("optzoom", "optzoom=%i", conf.optZoom); CHECKPARAM("zoom", "zoom=%f", conf.zoom); CHECKPARAM("sharpen", "sharpen=%f", fd->sharpen); return TC_OK; };
tLuaCOM * tLuaCOM::CreateLuaCOM(lua_State* L, IDispatch * pdisp, const CLSID& coclass, ITypeInfo* typeinfo, bool untyped ) { HRESULT hr = S_OK; CHECKPARAM(pdisp && L); CHECKPARAM(!untyped || !typeinfo); if(!untyped) { if(!typeinfo) typeinfo = tCOMUtil::GetDispatchTypeInfo(pdisp); else typeinfo->AddRef(); } tLuaCOM *lcom = new tLuaCOM(L, pdisp, typeinfo, coclass); COM_RELEASE(typeinfo); // We have one reference (the pointer), so we lock the object lcom->Lock(); return lcom; }
/*M+M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M Method: tLuaCOMConnPointContainer ::tLuaCOMConnPointContainer Summary: Constructor for the tLuaCOMConnPointContainer interface instantiation. Args: COBall* pBackObj, Back pointer to the parent outer object. IUnknown* pUnkOuter Pointer to the outer Unknown. For delegation. Modifies: pBackObj, pUnkOuter. Returns: void M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M-M*/ tLuaCOMConnPointContainer::tLuaCOMConnPointContainer(lua_State* p_L, IUnknown* p_pUnkOuter) { HRESULT hr = S_OK; ITypeInfo *events_typeinfo = NULL; CHECKPARAM(p_L); CHECKPARAM(p_pUnkOuter); // stores pointers pUnkOuter = p_pUnkOuter; L = p_L; // creates connection point for source interface IProvideClassInfo2 *ci2 = NULL; hr = pUnkOuter->QueryInterface(IID_IProvideClassInfo2, (void **) &ci2); CHK_COM_CODE(hr); IID iid; hr = ci2->GetGUID(GUIDKIND_DEFAULT_SOURCE_DISP_IID, &iid); CHK_COM_CODE(hr); ITypeInfo *coclassinfo = NULL; hr = ci2->GetClassInfo(&coclassinfo); CHK_COM_CODE(hr); events_typeinfo = tCOMUtil::GetDefaultInterfaceTypeInfo(coclassinfo, true); CHK_LCOM_ERR(events_typeinfo, "No default source typeinfo."); COM_RELEASE(ci2); COM_RELEASE(coclassinfo); max_connection_points = 1; connection_points = new tLuaCOMConnPoint*[max_connection_points]; CHKMALLOC(connection_points); connection_points[0] = new tLuaCOMConnPoint(L, p_pUnkOuter); CHKMALLOC(connection_points[0]); connection_points[0]->AddRef(); num_connection_points = 1; hr = connection_points[0]->Init(iid, events_typeinfo); CHK_COM_CODE(hr); default_connection = connection_points[0]; return; }
HRESULT tCOMUtil::ProgID2CLSID(CLSID *pClsid, const char *ProgID) { CHECKPARAM(pClsid); // tests whether we already have a CLSID wchar_t* wcProgId = NULL; HRESULT hr = S_OK; if(ProgID[0] == '{') { wcProgId = (wchar_t*) malloc( (strlen(ProgID) + 1) * sizeof(wchar_t)); mbstowcs(wcProgId, ProgID, strlen(ProgID)+1); hr = CLSIDFromString(wcProgId, pClsid); free(wcProgId); wcProgId = NULL; return hr; } /* converte ProgID para OLESTR */ wcProgId = (wchar_t*) malloc( (strlen(ProgID) + 1) * sizeof(wchar_t)); mbstowcs(wcProgId, ProgID, strlen(ProgID)+1); hr = CLSIDFromProgID(wcProgId, pClsid); free(wcProgId); wcProgId = NULL; return hr; }
ITypeInfo *tCOMUtil::GetCoClassTypeInfo(IDispatch* pdisp, CLSID clsid) { CHECKPARAM(pdisp); HRESULT hr = S_OK; unsigned int typeinfocount = 0; hr = pdisp->GetTypeInfoCount(&typeinfocount); if(FAILED(hr) || typeinfocount == 0) return NULL; tCOMPtr<ITypeInfo> typeinfo; hr = pdisp->GetTypeInfo(0, 0, &typeinfo); if(FAILED(hr)) return NULL; tCOMPtr<ITypeLib> typelib; unsigned int dumb_index = (unsigned int)-1; hr = typeinfo->GetContainingTypeLib(&typelib, &dumb_index); if(FAILED(hr)) return NULL; ITypeInfo* coclasstypeinfo = tCOMUtil::GetCoClassTypeInfo(typelib, clsid); return coclasstypeinfo; }
tLuaCOMClassFactory::tLuaCOMClassFactory(IDispatch* object_arg) { CHECKPARAM(object_arg); m_cRef = 0; L_inproc = NULL; object = object_arg; object->AddRef(); }
void tCOMUtil::DumpTypeInfo(ITypeInfo *typeinfo) { HRESULT hr = S_OK; TYPEATTR* pta = NULL; CHECKPARAM(typeinfo); hr = typeinfo->GetTypeAttr(&pta); CHK_COM_CODE(hr); // prints IID LPOLESTR lpsz = NULL; #ifdef __WINE__ hr = 0; MessageBox(NULL, "FIX - not implemented - StringFromIID", "LuaCOM", MB_ICONEXCLAMATION); #warning FIX - not implemented - StringFromIID #else hr = StringFromIID(pta->guid, &lpsz); #endif if(FAILED(hr)) { hr = StringFromCLSID(pta->guid, &lpsz); } if(SUCCEEDED(hr)) { wprintf(L"\nInterface: %s\n\n", lpsz); CoTaskMemFree(lpsz); } int i = 0; FUNCDESC *pfd = NULL; for(i = 0; i < pta->cFuncs; i++) { typeinfo->GetFuncDesc(i, &pfd); BSTR names[1]; unsigned int dumb; typeinfo->GetNames(pfd->memid, names, 1, &dumb); printf("%.3d: %-30s\tid=0x%d\t%d param(s)\n", i, tUtil::bstr2string(names[0]), pfd->memid, pfd->cParams); typeinfo->ReleaseFuncDesc(pfd); SysFreeString(names[0]); } typeinfo->ReleaseTypeAttr(pta); }
void tCOMUtil::DumpTypeInfo(ITypeInfo *typeinfo) { HRESULT hr = S_OK; TYPEATTR* pta = NULL; CHECKPARAM(typeinfo); hr = typeinfo->GetTypeAttr(&pta); CHK_COM_CODE(hr); // prints IID LPOLESTR lpsz = NULL; hr = StringFromIID(pta->guid, &lpsz); if(FAILED(hr)) { hr = StringFromCLSID(pta->guid, &lpsz); } if(SUCCEEDED(hr)) { wprintf(L"\nInterface: %s\n\n", lpsz); CoTaskMemFree(lpsz); } int i = 0; FUNCDESC *pfd = NULL; for(i = 0; i < pta->cFuncs; i++) { typeinfo->GetFuncDesc(i, &pfd); BSTR names[1]; unsigned int dumb; typeinfo->GetNames(pfd->memid, names, 1, &dumb); printf("%.3d: %-30s\tid=0x%p\t%d param(s)\n", i, tUtil::bstr2string(names[0]), pfd->memid, pfd->cParams); typeinfo->ReleaseFuncDesc(pfd); SysFreeString(names[0]); } typeinfo->ReleaseTypeAttr(pta); }
static int check_param(struct ub_struct *param) { int ret = 0; #define CHECKPARAM(name, str_name) \ if (param->name == NULL) { \ fprintf(stderr, "Error: parameter " #str_name " not found\n"); \ ret = 1; \ } CHECKPARAM(numproc, NUMPROC); CHECKPARAM(vmguarpages, VMGUARPAGES); CHECKPARAM(kmemsize, KMEMSIZE); CHECKPARAM(tcpsndbuf, TCPSNDBUF); CHECKPARAM(tcprcvbuf, TCPRCVBUF); CHECKPARAM(othersockbuf, OTHERSOCKBUF); CHECKPARAM(dgramrcvbuf, DGRAMRCVBUF); CHECKPARAM(privvmpages, PRIVVMPAGES); return ret; }
tLuaCOMClassFactory::tLuaCOMClassFactory(lua_State* L) { CHECKPARAM(L); m_cRef = 0; L_inproc = L; lua_getregistry(L); lua_pushstring(L,"object"); lua_gettable(L,-2); object = (IDispatch*)luaCompat_getPointer(L,-1); object->AddRef(); lua_pop(L,1); lua_pushstring(L,"object"); lua_pushnil(L); lua_settable(L,-3); lua_pop(L,1); }
ITypeInfo *tCOMUtil::GetCoClassTypeInfo(IDispatch* pdisp, CLSID clsid) { CHECKPARAM(pdisp); ITypeInfo* typeinfo = NULL; ITypeLib* typelib = NULL; HRESULT hr = S_OK; { unsigned int typeinfocount = 0; hr = pdisp->GetTypeInfoCount(&typeinfocount); if(FAILED(hr) || typeinfocount == 0) return NULL; } hr = pdisp->GetTypeInfo(0, 0, &typeinfo); if(FAILED(hr)) return NULL; { unsigned int dumb_index = -1; hr = typeinfo->GetContainingTypeLib(&typelib, &dumb_index); COM_RELEASE(typeinfo); } if(FAILED(hr)) return NULL; ITypeInfo* coclasstypeinfo = tCOMUtil::GetCoClassTypeInfo(typelib, clsid); typelib->Release(); return coclasstypeinfo; }
static int deshake_inspect(TCModuleInstance *self, const char *param, const char **value) { DeshakeData *sd = NULL; TC_MODULE_SELF_CHECK(self, "inspect"); TC_MODULE_SELF_CHECK(param, "inspect"); TC_MODULE_SELF_CHECK(value, "inspect"); sd = self->userdata; MotionDetect* md = &(sd->md); if (optstr_lookup(param, "help")) { *value = deshake_help; } CHECKPARAM("shakiness","shakiness=%d", md->shakiness); CHECKPARAM("accuracy", "accuracy=%d", md->accuracy); CHECKPARAM("stepsize", "stepsize=%d", md->stepSize); CHECKPARAM("allowmax", "allowmax=%d", md->allowMax); CHECKPARAM("algo", "algo=%d", md->algo); CHECKPARAM("result", "result=%s", sd->result); CHECKPARAM("maxshift", "maxshift=%d", sd->td.maxShift); CHECKPARAM("maxangle", "maxangle=%f", sd->td.maxAngle); CHECKPARAM("smoothing","smoothing=%d", sd->td.smoothing); CHECKPARAM("crop", "crop=%d", sd->td.crop); CHECKPARAM("optzoom", "optzoom=%i", sd->td.optZoom); CHECKPARAM("zoom", "zoom=%f", sd->td.zoom); CHECKPARAM("sharpen", "sharpen=%f", sd->td.sharpen); return TC_OK; }