// 获取排序的枚举型 IVS_BOOL CDevEnum::GetOrderTypeBool( const IVS_CHAR* pLoginType ) { CHECK_POINTER(pLoginType, IVS_OPERATE_MEMORY_ERROR); if (0 == strcmp(pLoginType, "DOWN")) { return TRUE; } return FALSE; }
CString CWebPage::GetHTMLContent() { CHECK_POINTER(m_spDoc); CComPtr<IHTMLElement> pBody; VERIFY(SUCCEEDED(m_spDoc->get_body(&pBody))); CComBSTR content; VERIFY(SUCCEEDED(pBody->get_innerHTML(&content))); return CString(content); }
// 直接解析NSS头,返回一个结果码 int CNSSOperator::ParseCmd2NSS(CCmd* pCmd) { CHECK_POINTER(pCmd, IVS_FAIL); //add by xiongfeng00192614 CNssMsgBase nssMsg; uint32_t iRet = nssMsg.decode(pCmd->GetMsgBlock()); if(NssRet_Succeed != iRet) { BP_RUN_LOG_ERR(IVS_FAIL,"decode cmd failed", "iRet = %d", iRet); return IVS_FAIL; //modify by xiongfeng00192614 错误返回NULL (0)会被误认为成功 } return nssMsg.GetHeader().uiRspCode; //lint !e10 !e713 无此问题 }//lint !e1762
// 获取Field的枚举型 IVS_BOOL CDevEnum::GetFieldEnum(const IVS_CHAR* pFieldType) { CHECK_POINTER(pFieldType, IVS_OPERATE_MEMORY_ERROR); if (0 == strcmp(pFieldType, "EXACT")) { return TRUE; } return FALSE; }
// 获取告警使能 IVS_BOOL CDevEnum::GetAlamEnableBool(const IVS_CHAR* pAlamEnable) { CHECK_POINTER(pAlamEnable, FALSE); IVS_BOOL bRet = FALSE; if (0 == strcmp(chAlamEnable[1], pAlamEnable)) { bRet = TRUE ; } return bRet; }
// 推送发现到的前端设备 int CSDKMainctrl::OnDisCoveredDevNotify(CCmd* pCmd)const { BP_RUN_LOG_INF("OnDisCoveredDevNotify", "Begin"); CHECK_POINTER(pCmd, IVS_OPERATE_MEMORY_ERROR); IVS_CHAR* pData = CSDKMainService::ProcessDevNotify(pCmd); CHECK_POINTER(pData, IVS_OPERATE_MEMORY_ERROR); int iSessionID = CLinkRouteMgr::instance().FindSessionIDByLinkID(pCmd->GetNetLinkID()); //lint !e1013 !e1055 !e746 !e64 if (SDK_SESSIONID_INIT == iSessionID) { BP_RUN_LOG_ERR(IVS_SDK_RET_INVALID_SESSION_ID, "linkage action", "iSessionID is -1"); IVS_DELETE(pData, MUILI); return IVS_FAIL; } CEventCallBackJob::instance().PostEvent(iSessionID, IVS_EVENT_FIND_DEVICE, pData, static_cast<IVS_INT32>(strlen(pData)) + 1); IVS_DELETE(pData, MUILI); BP_RUN_LOG_INF("OnDisCoveredDevNotify", "End"); return IVS_SUCCEED; }
IVS_ULONG CWindowSkinXML::TitleBarGetBackGround(std::string &strBGPtth) { strBGPtth.clear(); TiXmlElement * pChildElement = nullptr; CHECK_POINTER(m_pTitleBarRootElement,IVS_FAIL); pChildElement = m_pTitleBarRootElement->FirstChildElement("BackGround"); CHECK_POINTER(pChildElement,IVS_FAIL); pChildElement = pChildElement->FirstChildElement("Picture"); CHECK_POINTER(pChildElement,IVS_FAIL); TiXmlNode *pChildNode = nullptr; pChildNode = pChildElement->FirstChild(); CHECK_POINTER(pChildNode,IVS_FAIL); const TCHAR * pc = pChildNode->Value(); (void)strBGPtth.append(pc); return IVS_SUCCEED; }
// 通用请求XML增加QueryField字段 IVS_INT32 CXmlProcess::AddQueryFieldForUnifiedFormatQueryXML(const IVS_CHAR* pField,const IVS_CHAR* pValue, CXml& xmlReq) { CHECK_POINTER(pField, IVS_OPERATE_MEMORY_ERROR); CHECK_POINTER(pValue, IVS_OPERATE_MEMORY_ERROR); std::string sQueryType = "EXACT"; if (xmlReq.FindElemEx("Content/PageInfo/QueryCond/QueryField")) { xmlReq.OutOfElem(); (void)xmlReq.AddElem("QueryField"); (void)xmlReq.AddChildElem("Field"); (void)xmlReq.IntoElem(); (void)xmlReq.SetElemValue(pField); (void)xmlReq.AddElem("Value"); (void)xmlReq.SetElemValue(pValue); (void)xmlReq.AddElem("QueryType"); (void)xmlReq.SetElemValue(sQueryType.c_str()); xmlReq.OutOfElem(); } return IVS_SUCCEED; }
/************************************************************************** * name : Parse * description: 解析一个xml流到xml文件 * input : pszStream xml流 * output : NA * return : true - 成功,false - 失败 * remark : NA **************************************************************************/ bool CXml::Parse(const char *pszStream, TiXmlEncoding encode) { CHECK_POINTER(pszStream, false); //songyiqun SAFE_DELETE(m_pXMlDoc); SAFE_NEW(m_pXMlDoc, TiXmlDocument);//lint !e774 CHECK_POINTER(m_pXMlDoc, false);//lint !e774 //TIXML_ENCODING_LEGACY为Tinyxml使用的编码方式 (void)(m_pXMlDoc->Parse(pszStream, NULL, encode)); if (0 != m_pXMlDoc->Error()) { return false; } GetRootPos(); return true; }
int UCSDK_CALL SearchContact(const char* condition, const char* deptid, int querysubdept, int offset, int count, int ordertype, int* recamount, UCContactList* memberList) { DEBUG_LOG() << "--- ENTER"; CHECK_POINTER(memberList, UC_InvalidParam); CHECK_POINTER(condition, UC_InvalidParam); CHECK_POINTER(deptid, UC_InvalidParam); CHECK_POINTER(recamount, UC_InvalidParam); UCContactMgrAbsProxy* pUCContactMgrAbsProxy = UCContactMgrAbsProxy::GetInstance(); CHECK_POINTER(pUCContactMgrAbsProxy, UC_NullPoint); bool querysub = true; if (0 == querysubdept) { querysub = false; } UCSDKContactList contactlist; int iRet = pUCContactMgrAbsProxy->SearchContact(contactlist, condition, deptid, querysub, offset, count, ordertype, *recamount); CHECK_RETURN(iRet, UC_Succ, "SearchContact"); int iFoundCount = (int)contactlist.size(); int iEnd = iFoundCount; if (iFoundCount > count) { WARN_LOG() << "contactlist's size is large than count."; iEnd = count; } for (int i=0; i<iEnd; i++) { UCStructCopy::Copy_UCContact(memberList->contact[i], contactlist[(unsigned int)i]); } memberList->iFrom = 0; memberList->iTo = iEnd-1; memberList->iTotal = iFoundCount; DEBUG_LOG() << "--- LEAVE"; return UC_Succ; }
// 删除角色 IVS_INT32 CRoleMgr::DeleteRole(const IVS_CHAR* pDomainCode, IVS_UINT32 uiRoleID) { CHECK_POINTER(m_UserMgr, IVS_OPERATE_MEMORY_ERROR); IVS_DEBUG_TRACE(""); std::string strDomainCode; if(NULL == pDomainCode || '\0' == pDomainCode[0]) { m_UserMgr->GetDomainCode(strDomainCode); } else { strDomainCode = pDomainCode; } IVS_ROLE_INFO pRoleInfo; memset(&pRoleInfo, 0, sizeof(IVS_ROLE_INFO)); pRoleInfo.uiRoleID = uiRoleID; //拼接请求信息 IVS_INT32 iRet = IVS_FAIL; CXml xmlReq; CUserInfoMgrXMLProcess::GetRoleXML(strDomainCode.c_str(), &pRoleInfo, xmlReq); unsigned int xmlLen = 0; const IVS_CHAR* pReq = xmlReq.GetXMLStream(xmlLen); CHECK_POINTER(pReq, IVS_OPERATE_MEMORY_ERROR); // 构造带域的请求消息,并发送 CSendNssMsgInfo sendNssMsgInfo; sendNssMsgInfo.SetNeedXml(TYPE_NSS_NOXML); sendNssMsgInfo.SetNetElemType(NET_ELE_SMU_NSS); sendNssMsgInfo.SetReqID(NSS_DEL_ROLE_REQ); sendNssMsgInfo.SetReqData(pReq); sendNssMsgInfo.SetDomainCode(strDomainCode); std::string strpRsp; IVS_INT32 iNeedRedirect = IVS_FAIL; iRet = m_UserMgr->SendCmd(sendNssMsgInfo,strpRsp,iNeedRedirect); return iRet; }
IVS_INT32 CReportMgr::SendQueryCmd(const IVS_CHAR* pReqXml, IVS_CHAR** pRspXml, IVS_INT32 iMsgType, IVS_INT32 iTimeOut) { IVS_DEBUG_TRACE(""); CHECK_POINTER(pReqXml, IVS_OPERATE_MEMORY_ERROR); CHECK_POINTER(m_UserMgr, IVS_OPERATE_MEMORY_ERROR); IVS_INT32 iRet = IVS_FAIL; std::string strLocalDomainLink; iRet = m_UserMgr->GetLocalDomainLinkID(NET_ELE_OMU_NSS, strLocalDomainLink); if (IVS_SUCCEED != iRet) { BP_RUN_LOG_ERR(iRet, "Send Query Cmd", "Get Local Domain OMU Link Failed"); return iRet; } CCmd *pCmd = CNSSOperator::instance().BuildOMUCmd(iMsgType, pReqXml, strLocalDomainLink); CHECK_POINTER(pCmd, IVS_OPERATE_MEMORY_ERROR); CCmd* pRspCmd =NULL; if (0 < iTimeOut) { // 1表示不采用默认的超时时间,即用iTimeOut pRspCmd = CNSSOperator::instance().SendSyncCmd(pCmd, (IVS_UINT32)iTimeOut, 1); } else { pRspCmd = CNSSOperator::instance().SendSyncCmd(pCmd); } if (NULL == pRspCmd) { BP_RUN_LOG_ERR(IVS_NET_RECV_TIMEOUT, "Send Query Cmd", "pRspCmd is NULL"); return IVS_NET_RECV_TIMEOUT; } iRet = IVS_SUCCEED; *pRspXml = CNSSOperator::instance().ParseCmd2XML(pRspCmd, iRet); HW_DELETE(pRspCmd); return iRet; }//lint !e1762
// 解析出内存的XML,需要释放返回的内存 char* CNSSOperator::ParseCmd2XML(CCmd* pCmd, int& iRspCode) const { CHECK_POINTER(pCmd, NULL); // 解码出头部和xml放在m_nssXML对象中 CNssXMLMsg nssXML; uint32_t iRet = nssXML.decode(pCmd->GetMsgBlock()); if(NssRet_Succeed != iRet) { BP_RUN_LOG_ERR(IVS_FAIL,"decode cmd failed", "iDecodeRet = %d", iRet); iRspCode = IVS_FAIL; return NULL; } // 返回错误码 iRspCode = nssXML.GetHeader().uiRspCode; //lint !e10 !e713 无此问题 // 拷贝XML 返回给外部调用 const char* xml = nssXML.GetXML(); //lint !e64 匹配 if (NULL == xml) { BP_RUN_LOG_ERR(iRspCode, "xml is null", "NA"); return NULL; } // 将utf8->ansi char* xml2ANSI = CToolsHelp::UTF8ToANSI(xml); if (NULL == xml2ANSI) { BP_RUN_LOG_ERR(iRspCode, "xml2ANSI is null", "NA"); return NULL; } unsigned int length = strlen(xml2ANSI); char* xmlBuf = IVS_NEW(xmlBuf,length+1); if (NULL == xmlBuf) { BP_RUN_LOG_ERR(IVS_ALLOC_MEMORY_ERROR, "memcpy fail", "NA"); free(xml2ANSI); return NULL; } if (!CToolsHelp::Memcpy(xmlBuf, length+1, xml2ANSI, length+1)) { free(xml2ANSI); xml2ANSI = NULL; free(xmlBuf); xmlBuf = NULL; BP_RUN_LOG_ERR(IVS_ALLOC_MEMORY_ERROR, "memcpy fail", "NA"); return NULL; } free(xml2ANSI); return xmlBuf; }
bool CWindowSkinXML::InitXML( const std::string &strCurrentPath ) { std::string strXMLFilePath = strCurrentPath; strXMLFilePath.append(_T("\\Skin\\Skins.xml")); if (strXMLFilePath.empty()) { return false; } if(!m_XMLdoc.LoadFile(strXMLFilePath.c_str(), TIXML_ENCODING_LEGACY))return false; m_pRootElement = m_XMLdoc.RootElement(); CHECK_POINTER(m_pRootElement,false); return true; }
// 获取设备状态 IVS_UINT32 CDevEnum::GetDevStatusEnum( const IVS_CHAR* pDevStatus ) { CHECK_POINTER(pDevStatus, IVS_OPERATE_MEMORY_ERROR); IVS_INT32 iRet = DEV_STATUS_ONLINE; if (0 == strcmp("OFF", pDevStatus))// 离线 { iRet = DEV_STATUS_OFFLINE; } IVS_UINT32 uiRet = static_cast<IVS_UINT32>(iRet); return uiRet; }
IVS_INT32 CDomainRouteMgr::SendCmdAndGetInfo(CXml& xmlRsp) const { IVS_INT32 iRet = IVS_FAIL; CHECK_POINTER(m_pUserMgr,IVS_OPERATE_MEMORY_ERROR); // 获取本域SMU连接 std::string strSMULinkID; IVS_INT32 iGetLinkRet = m_pUserMgr->GetLocalDomainLinkID(NET_ELE_SMU_NSS, strSMULinkID); if (IVS_SUCCEED != iGetLinkRet) { BP_RUN_LOG_ERR(iGetLinkRet, "Get LocalDomainLinkID failed", "NA"); return iGetLinkRet; } //创建要发送的CMD,拼装了NSS消息头 CCmd* pCmd = CNSSOperator::instance().BuildSMUCmd(NSS_GET_DOMAIN_ROUTE_REQ, NULL, strSMULinkID); CHECK_POINTER(pCmd, IVS_OPERATE_MEMORY_ERROR); //发送消息 CCmd *pCmdRsp = CNSSOperator::instance().SendSyncCmd(pCmd); CHECK_POINTER(pCmdRsp, IVS_NET_RECV_TIMEOUT); const IVS_CHAR* pRsp = CNSSOperator::instance().ParseCmd2XML(pCmdRsp, iRet); HW_DELETE(pCmdRsp); CHECK_POINTER(pRsp, iRet); if (IVS_SUCCEED != iRet) { BP_RUN_LOG_INF("Send Command get return value", " Error"); IVS_DELETE(pRsp, MUILI); //lint !e605 return IVS_FAIL; } iRet = IVS_XML_INVALID; BP_RUN_LOG_INF("Get domain route ", "pRsp:%s", pRsp); if (xmlRsp.Parse(pRsp)) { iRet = IVS_SUCCEED; } IVS_DELETE(pRsp, MUILI); //lint !e605 return iRet; }
// add by zwx211831, Date:20140605 处理客户端关闭视频业务通知 int CSDKMainctrl::OnShutdownStreamNotify(CCmd* pCmd) const { CHECK_POINTER(pCmd, IVS_OPERATE_MEMORY_ERROR); IVS_INT32 iRet = IVS_FAIL; IVS_CHAR *pInfo = CNSSOperator::instance().ParseCmd2XML(pCmd, iRet); CHECK_POINTER(pInfo, IVS_OPERATE_MEMORY_ERROR); IVS_SHUTDOWN_NOTIFY_INFO stShutdownNotifyInfo = {0}; if (IVS_SUCCEED == iRet) { CXml xmlRsp; if (!xmlRsp.Parse(pInfo)) { BP_RUN_LOG_ERR(IVS_XML_INVALID, "OnShutdownStreamNotify", "XML parse failed"); HW_DELETE_A(pInfo); return IVS_XML_INVALID; } iRet = CRealXMLProcess::ParseShutdownNotifyXML(xmlRsp, &stShutdownNotifyInfo); } if (IVS_SUCCEED != iRet) { BP_RUN_LOG_ERR(IVS_XML_INVALID, "OnShutdownStreamNotify", "XML parse failed"); HW_DELETE_A(pInfo); return IVS_XML_INVALID; } IVS_INT32 iSessionID = CLinkRouteMgr::instance().FindSessionIDByLinkID(pCmd->GetNetLinkID()); if (SDK_SESSIONID_INIT == iSessionID) { BP_RUN_LOG_ERR(IVS_SDK_RET_INVALID_SESSION_ID, "OnShutdownStreamNotify", "iSessionID is -1"); HW_DELETE_A(pInfo); return IVS_SDK_RET_INVALID_SESSION_ID; } (void)CEventCallBackJob::instance().PostEvent(iSessionID, IVS_EVENT_SHUTDOWN_STREAM, &stShutdownNotifyInfo, sizeof(stShutdownNotifyInfo)); HW_DELETE_A(pInfo); return IVS_SUCCEED; }
// 修改设备组名称 IVS_INT32 CDeviceGroupMgr::ModifyDeviceGroupName(const IVS_CHAR* pDomainCode, IVS_UINT32 uiDevGroupID, const IVS_CHAR* pNewDevGroupName)const { CHECK_POINTER(pDomainCode, IVS_OPERATE_MEMORY_ERROR); CHECK_POINTER(pNewDevGroupName, IVS_OPERATE_MEMORY_ERROR); IVS_DEBUG_TRACE(""); CXml xmlReq; // 组装xml,准备发送给smu IVS_INT32 iRet = CDeviceMgrXMLProcess::ModifyDeviceGroupGetXML(pDomainCode, uiDevGroupID, pNewDevGroupName, xmlReq); IVS_CHAR cDomainCode[IVS_DOMAIN_CODE_LEN + 1] = {0}; if (!CToolsHelp::Memcpy(cDomainCode, IVS_DOMAIN_CODE_LEN, pDomainCode, IVS_DOMAIN_CODE_LEN)) { BP_RUN_LOG_ERR(IVS_ALLOC_MEMORY_ERROR, "Memcpy(cDomainCode, IVS_DOMAIN_CODE_LEN, pDomainCode, IVS_DOMAIN_CODE_LEN) fail", "NA"); return IVS_ALLOC_MEMORY_ERROR; } iRet = CXmlProcess::GetCommSendMgr(xmlReq, m_pUserMgr, NSS_MOD_DEV_GROUP_REQ, BUILDRET, cDomainCode); return iRet; }
void TextProperty::addElement(IsoString elementName, IsoString value) { IText* tp = ((ITextVectorProperty*) m_property->getProperty())->tp; int ntp = ((ITextVectorProperty*) m_property->getProperty())->ntp; tp = (IText*) realloc(tp, (ntp + 1) * sizeof(IText)); CHECK_POINTER(tp); strcpy(tp->name, elementName.c_str()); //FIXME Leaks memory? tp->text = (char*) malloc(sizeof(value.c_str())); strcpy(tp->text, value.c_str()); tp->tvp = (ITextVectorProperty*) m_property->getProperty(); ((ITextVectorProperty*) m_property->getProperty())->ntp++; ((ITextVectorProperty*) m_property->getProperty())->tp = tp; }
IProperty* PropertyFactory::create(INDI::Property* property,INDI_TYPE type){ property->setType(type); switch(type){ case INDI_NUMBER: { INumberVectorProperty* nProperty = new INumberVectorProperty(); CHECK_POINTER(nProperty); property->setProperty(nProperty); return new NumberProperty(property); break; } case INDI_TEXT: { ITextVectorProperty* tProperty = new ITextVectorProperty(); CHECK_POINTER(tProperty); property->setProperty(tProperty); return new TextProperty(property); break; } case INDI_SWITCH: { ISwitchVectorProperty* sProperty = new ISwitchVectorProperty(); CHECK_POINTER(sProperty); property->setProperty(sProperty); return new SwitchProperty(property); break; } case INDI_LIGHT: { ILightVectorProperty* lProperty = new ILightVectorProperty(); CHECK_POINTER(lProperty); property->setProperty(lProperty); return new LightProperty(property); break; } default: throw FatalError(ERR_MSG("Unknown property.")); } }
/*++ Routine Name: CNUpSaxHandler::CNUpSaxHandler Routine Description: Contructor for the nup filters SAX handler which registers internally the writer for sending new markup out to and a resource copier which copies markup between pages Arguments: pWriter - Pointer to a write stream which receives markup pResCopier - Pointer to a resource markup copier object which copies markup between pages Return Value: None Throws CXDException(HRESULT) on an error --*/ CNUpSaxHandler::CNUpSaxHandler( _In_ IPrintWriteStream* pWriter, _In_ CResourceCopier* pResCopier, _In_ CNUpTransform* pNUpTransform ) : m_pWriter(pWriter), m_bOpenTag(FALSE), m_pResCopier(pResCopier), m_pNUpTransform(pNUpTransform) { ASSERTMSG(m_pWriter != NULL, "NULL writer passed to NUp SAX handler.\n"); ASSERTMSG(m_pResCopier != NULL, "NULL resource copier passed to NUp SAX handler.\n"); ASSERTMSG(m_pNUpTransform != NULL, "NULL NUp Transform object passed to NUp SAX handler.\n"); HRESULT hr = S_OK; if (FAILED(hr = CHECK_POINTER(m_pWriter, E_PENDING)) || FAILED(hr = CHECK_POINTER(m_pResCopier, E_PENDING)) || FAILED(hr = CHECK_POINTER(m_pNUpTransform, E_PENDING))) { throw CXDException(hr); } }
IVS_INT32 CTPPlayChannel::GetRealPlayURL(const std::string& strCamera, const IVS_MEDIA_ADDR& stMediaAddrDst, ST_MEDIA_RSP& stMediaRsp) { CHECK_POINTER(m_pTPMgr, IVS_OPERATE_MEMORY_ERROR); IVS_DEBUG_TRACE(""); //解析摄像头Code std::string strCameraCode; std::string strDomainCode; IVS_INT32 iRet = CToolsHelp::SplitCameraDomainCode(strCamera.c_str(), strCameraCode, strDomainCode); if(IVS_SUCCEED!=iRet) { BP_RUN_LOG_ERR(iRet, "TP Get RealPlay URL", "SplitCameraCode failed, CameraCode=%s", strCamera.c_str()); return iRet; } //TODO : szDstPort无实际作用,传一个固定值;打包协议类型szDstPP入参结构体未定义 ST_URL_MEDIA_INFO stUrlMediaInfo; memset(&stUrlMediaInfo, 0, sizeof(ST_URL_MEDIA_INFO)); bool bSucc = CToolsHelp::Strncpy(stUrlMediaInfo.szSrcCode, sizeof(stUrlMediaInfo.szSrcCode), strCameraCode.c_str(), strCameraCode.length()); CHECK_SUCCESS_RET(bSucc, IVS_ALLOC_MEMORY_ERROR); bSucc = CToolsHelp::Strncpy(stUrlMediaInfo.cDomainCode, sizeof(stUrlMediaInfo.cDomainCode), strDomainCode.c_str(), strDomainCode.length()); CHECK_SUCCESS_RET(bSucc, IVS_ALLOC_MEMORY_ERROR); bSucc = CToolsHelp::Strncpy(stUrlMediaInfo.szDstCode,sizeof(stUrlMediaInfo.szDstCode), "01",strlen("01")); CHECK_SUCCESS_RET(bSucc, IVS_ALLOC_MEMORY_ERROR); stUrlMediaInfo.ServiceType = SERVICE_TYPE_REALVIDEO; stUrlMediaInfo.MediaPara.StreamType = m_stuMediaParam.StreamType; stUrlMediaInfo.MediaPara.ProtocolType = m_stuMediaParam.ProtocolType; stUrlMediaInfo.MediaPara.TransMode = m_stuMediaParam.TransMode; stUrlMediaInfo.MediaPara.BroadCastType = m_stuMediaParam.BroadCastType; stUrlMediaInfo.MediaPara.VideoDecType = m_stuMediaParam.VideoDecType; stUrlMediaInfo.MediaPara.AudioDecType = m_stuMediaParam.AudioDecType; stUrlMediaInfo.PackProtocolType = PACK_PROTOCOL_ES; bSucc = CToolsHelp::Strncpy(stUrlMediaInfo.szDstIP,sizeof(stUrlMediaInfo.szDstIP), stMediaAddrDst.stIP.cIP, strnlen(stMediaAddrDst.stIP.cIP, IVS_IP_LEN)); CHECK_SUCCESS_RET(bSucc, IVS_ALLOC_MEMORY_ERROR); std::string strPort = CToolsHelp::Int2Str(static_cast<int>(stMediaAddrDst.uiVideoPort)); bSucc = CToolsHelp::Strncpy(stUrlMediaInfo.szDstPort,sizeof(stUrlMediaInfo.szDstPort), strPort.c_str() ,strPort.length()); CHECK_SUCCESS_RET(bSucc, IVS_ALLOC_MEMORY_ERROR); stUrlMediaInfo.iClientType = CLIENT_TYPE_PCG; bSucc = CToolsHelp::Strncpy(stUrlMediaInfo.szEncryAlgorithm,sizeof(stUrlMediaInfo.szEncryAlgorithm), "0000000000",strlen("0000000000")); CHECK_SUCCESS_RET(bSucc, IVS_ALLOC_MEMORY_ERROR); iRet = m_pTPMgr->GetURL(CToolsHelp::GetSCCHead().c_str(), stUrlMediaInfo, stMediaRsp); return iRet; }
/*++ Routine Name: CScanIterator::CScanIterator Routine Description: CScanIterator constructor Arguments: bmpConv - Bitmap converter class encapsulating the underlying WIC bitmap pRect - The rectangular area of the bitmap over which we want to iterate scanlines Return Value: None Throws an exception on error. --*/ CScanIterator::CScanIterator( __in CONST CBmpConverter& bmpConv, __in_opt WICRect* pRect ) : CBmpConverter(bmpConv), m_bSrcLine(TRUE), m_cbWICStride(0), m_cWICWidth(0), m_cWICHeight(0), m_cbWICData(0), m_pbWICData(NULL) { HRESULT hr = S_OK; UINT cWidth = 0; UINT cHeight = 0; if (SUCCEEDED(hr = CHECK_POINTER(m_pBitmap, E_POINTER)) && SUCCEEDED(hr = m_pBitmap->GetSize(&cWidth, &cHeight))) { if (pRect == NULL) { // // We want to iterate over the entire surface // m_rectTotal.X = 0; m_rectTotal.Y = 0; m_rectTotal.Width = static_cast<INT>(cWidth); m_rectTotal.Height = static_cast<INT>(cHeight); } else { if (pRect->X >= 0 && pRect->Y >= 0 && pRect->Width <= static_cast<INT>(cWidth) && pRect->Height <= static_cast<INT>(cHeight)) { m_rectTotal = *pRect; } else { hr = E_INVALIDARG; } } } if (FAILED(hr)) { throw CXDException(hr); } }
int UCSDK_CALL GetAllContactlist(int iFrom, int iTo, UCContactList* memberList) { DEBUG_LOG() << "--- ENTER"; CHECK_POINTER(memberList, UC_InvalidParam); if (0 > iFrom || iFrom > iTo) { INFO_PARAM2(iFrom, iTo); ERROR_LOG() << "iFrom or iTo is Invaild praram"; DEBUG_LOG() << "--- LEAVE"; return UC_InvalidParam; } UCContactMgrAbsProxy* pUCContactMgrAbsProxy = UCContactMgrAbsProxy::GetInstance(); CHECK_POINTER(pUCContactMgrAbsProxy, UC_NullPoint); UCSDKContactList contactlist; int iRet = pUCContactMgrAbsProxy->GetAllContactlist(contactlist); CHECK_RETURN(iRet, UC_Succ, "GetAllContactlist"); int iTotalSize = (int)contactlist.size(); if (iTotalSize > 0 && iFrom > iTotalSize - 1) { ERROR_LOG() << "iFrom is greater than the total size."; DEBUG_LOG() << "--- LEAVE"; return UC_InvalidParam; } int iEnd = iTo < (iTotalSize - 1) ? iTo : (iTotalSize - 1); for (int i=iFrom; i<=iEnd; i++) { UCStructCopy::Copy_UCContact(memberList->contact[i-iFrom], contactlist[(unsigned int)i]); } memberList->iFrom = iFrom; memberList->iTo = iEnd; memberList->iTotal = iTotalSize; DEBUG_LOG() << "--- LEAVE"; return UC_Succ; }
int UCSDK_CALL CanStartSession(const UCContact* member, int _type) { DEBUG_LOG() << "--- ENTER"; CHECK_POINTER(member, false); UCContactMgrAbsProxy* pUCContactMgrAbsProxy = UCContactMgrAbsProxy::GetInstance(); CHECK_POINTER(pUCContactMgrAbsProxy, false); UCSDKContact contact; UCStructCopy::Copy_UCSDKContact(contact, *member); bool bRet = pUCContactMgrAbsProxy->CanStartSession(contact, (SESSION_TYPE_E)_type); INFO_PARAM1(bRet); int iRet = UC_Fail; if (bRet) { iRet = UC_Succ; } DEBUG_LOG() << "--- LEAVE"; return iRet; }
HRESULT CDriverExtensionHelper::GetAdapter(IDirect3DDevice9 *pDevice, DispSvr::IDriverExtensionAdapter **ppAdapter) { HRESULT hr = E_FAIL; CHECK_POINTER(pDevice); CHECK_POINTER(ppAdapter); switch (GetRegistry(REG_VENDOR_ID, 0)) { case PCI_VENDOR_ID_NVIDIA: hr = CNvAPIDeviceExtensionAdapter::GetAdapter(pDevice, ppAdapter); break; case PCI_VENDOR_ID_INTEL: hr = CIntelDxva2DriverExtAdapter::GetAdapter(pDevice, ppAdapter); break; default: break; } return hr; }
// 获取正反向控制 IVS_INT32 CDevEnum::GetPosNegDirCtlEnum(const IVS_CHAR* posNegDirectControl) { IVS_INT32 iRet = 1; CHECK_POINTER(posNegDirectControl, iRet); //const std::string strPosNegDirectControl[] = {"BACK", "FORWARD"}; if (0 == strcmp("BACK", posNegDirectControl)) { iRet = 0; } return iRet; }
// 获取通用模式 IVS_INT32 CDevEnum::GetEnableMode(const IVS_CHAR* pEnableMode) { CHECK_POINTER(pEnableMode, IVS_OPERATE_MEMORY_ERROR); IVS_INT32 iLen = sizeof(chEnableMode)/sizeof(chEnableMode[0]); IVS_INT32 i = 0; for (i = 0; i != iLen; i++) { if (0 == strcmp(chEnableMode[i], pEnableMode)) { return i; } } return i; }
int UCSDK_CALL IsFavourite(const UCContact* member) { DEBUG_LOG() << "--- ENTER"; CHECK_POINTER(member, false); UCContactMgrAbsProxy* pUCContactMgrAbsProxy = UCContactMgrAbsProxy::GetInstance(); CHECK_POINTER(pUCContactMgrAbsProxy, false); UCSDKContact contact; UCStructCopy::Copy_UCSDKContact(contact, *member); bool bRet = pUCContactMgrAbsProxy->IsFavourite(contact); INFO_PARAM1(bRet); int iRet = UC_Fail; if (bRet) { iRet = UC_Succ; } DEBUG_LOG() << "--- LEAVE"; return iRet; }
/*++ Routine Name: CXDSmplFilter::InitializePrintTicketManager Routine Description: This routine initializes the PrintTicket manager with the default devmode Arguments: None Return Value: HRESULT S_OK - On success E_* - On error --*/ HRESULT CXDSmplFilter::InitializePrintTicketManager( VOID ) { ASSERTMSG(m_pPrintPropertyBag != NULL, "NULL property bag pointer\n"); HRESULT hr = S_OK; if (SUCCEEDED(hr = CHECK_POINTER(m_pPrintPropertyBag, E_PENDING))) { // // Get the printer name and user PrintTicket from the property bag // CComVariant varName; CComVariant varPTReadStreamFactory; // // Avoid CComVariant if getting the XPS_FP_USER_TOKEN property. // Please refer to http://go.microsoft.com/fwlink/?LinkID=255534 for detailed information. // VARIANT varUserToken; VariantInit(&varUserToken); if (SUCCEEDED(hr = m_pPrintPropertyBag->GetProperty(XPS_FP_USER_PRINT_TICKET, &varPTReadStreamFactory)) && SUCCEEDED(hr = m_pPrintPropertyBag->GetProperty(XPS_FP_PRINTER_NAME, &varName)) && SUCCEEDED(hr = m_pPrintPropertyBag->GetProperty(XPS_FP_USER_TOKEN, &varUserToken))) { // // Retrieve the PrintReadStream for the user PrintTicket // CComPtr<IUnknown> pUnk(varPTReadStreamFactory.punkVal); CComPtr<IPrintReadStreamFactory> pPrintReadStreamFactory(NULL); CComPtr<IPrintReadStream> pPrintReadStream(NULL); if (SUCCEEDED(hr = pUnk.QueryInterface(&pPrintReadStreamFactory)) && SUCCEEDED(hr = pPrintReadStreamFactory->GetStream(&pPrintReadStream))) { // // Initialise the PT manager with the user PrintTicket and device name // hr = m_ptManager.Initialise(pPrintReadStream, varName.bstrVal, varUserToken.byref); } } VariantClear(&varUserToken); } ERR_ON_HR(hr); return hr; }