VOID CALLBACK pNdasEventProc( DWORD dwError, PNDAS_EVENT_INFO pEventInfo, LPVOID lpContext) { if (NULL == pEventInfo) { ATLTRACE(_T("Event Error %d (0x%08X)\n"), dwError, dwError); return; } HWND hWnd = reinterpret_cast<HWND>(lpContext); WPARAM wParam(0); LPARAM lParam(0); switch (pEventInfo->EventType) { case NDAS_EVENT_TYPE_DEVICE_ENTRY_CHANGED: ::PostMessage(hWnd, WM_APP_NDAS_DEVICE_ENTRY_CHANGED, wParam, lParam); break; case NDAS_EVENT_TYPE_LOGICALDEVICE_ENTRY_CHANGED: ::PostMessage(hWnd, WM_APP_NDAS_LOGICALDEVICE_ENTRY_CHANGED, wParam, lParam); break; default: ; } }
/* <FIELD NAME='STATUS' VALUE=''> </FIELD>STATUS/LOCK/CLOSE */ int __fastcall ASEditSvr::exeRestfulCommand(WideString asOperation,WideString asParams,WideString &asResult) { PCPtr<PCXML> lParam(new PCXML(asParams)); PCPtr<PCXML> lResult(new PCXML("<DATASETS/>")); String lsID,lsAction,lsField,lsValue; _di_IXMLNode lParentNode; //<ACTION>DEFAULT</ACTION> lParentNode = lParam->SubNode["ACTION"]; if(lParentNode) lsAction = BLNODETEXT(lParentNode).Trim(); if(lsAction.IsEmpty()) lsAction = "DEFAULT"; Action = lsAction; lParentNode = lParam->SubNode["PARAM"]; if(lParentNode) lsID = BLNODETEXT(lParentNode).Trim(); if((!BLSAMESTR(asOperation,"add")) && lsID.IsEmpty()) throw Exception("必须提供ID参数"); if(BLSAMESTR(asOperation,"add")){ Retrieve("-1"); lParentNode = lParam->SubNode["DATASETS"]; fromXML(lParentNode,true); Save(); lParentNode = lResult->SubNode[""]; BLNODEATTSET(lParentNode,"ERI",ERI); toXML(lParentNode); } else if(BLSAMESTR(asOperation,"get")){ Retrieve(lsID); lParentNode = lResult->SubNode[""]; BLNODEATTSET(lParentNode,"ERI",ERI); toXML(lParentNode); } else if(BLSAMESTR(asOperation,"set")){ Retrieve(lsID); lParentNode = lParam->SubNode["DATASETS"]; fromXML(lParentNode,false,true); Save(); lParentNode = lResult->SubNode[""]; BLNODEATTSET(lParentNode,"ERI",ERI); toXML(lParentNode); } else throw Exception("错误操作命令" + asOperation); asResult = lResult->XML->Text; return 1; }