T XmlHelper::GetAttributeValueInType(QXmlQuery* query, QString xmlPath, T value) { T *result=NULL; QStringList dataList; if(GetNodeValues(query, xmlPath, &dataList)) { qDebug()<<"your data is=" + dataList[0]; //*value=stdout::dataList[0]; result=true; } return *result; }
VOID InOrderTraversal(ULONG_PTR pNode) { HRESULT hRes=S_OK; PULONG pOffset=NULL; BYTE* pBuffer=NULL; ULONG ulData=0; ULONG ulLeft=0; ULONG ulRight=0; if(CheckControlC()==TRUE) { dprintf ("Control C hit, canceling command\n" ); return; } if(!pNode) { return; } if(FAILED(hRes=GetNodeValues(pNode, &ulData, &ulLeft, &ulRight))) { return; } if(ulLeft) { InOrderTraversal(ulLeft); delete[] pBuffer; } PrintNode(ulLeft, ulData, ulRight); if(ulRight) { InOrderTraversal(ulRight); delete[] pBuffer; } }
HRESULT CALLBACK KnownStructOutput ( IN ULONG Flag, IN ULONG64 Address, IN PSTR StructName, OUT PSTR Buffer, IN OUT PULONG BufferSize ) { HRESULT hRes=E_FAIL; if(Flag==DEBUG_KNOWN_STRUCT_GET_NAMES) { if ((*BufferSize)<strlen(SYSEXTS_KNOWNSTRUCT_1)+2) { // Not enough buffer available, return S_FALSE (*BufferSize)=strlen(SYSEXTS_KNOWNSTRUCT_1)+2; hRes=S_FALSE; } else { hRes=StringCchPrintfA(Buffer,(*BufferSize)-2,"%s\0",SYSEXTS_KNOWNSTRUCT_1 ); if (FAILED(hRes)) { dprintf ("Failed to copy the data type name into buffer\n"); } } } else if(Flag==DEBUG_KNOWN_STRUCT_GET_SINGLE_LINE_OUTPUT) { ULONG ulData=0; ULONG ulLeft=0; ULONG ulRight=0; if(FAILED(hRes=GetNodeValues(Address, &ulData, &ulLeft, &ulRight))) { return hRes; } DWORD dwLen=_scprintf(SYSEXTS_KNOWNSTRUCT_OUT, ulData, ulLeft, ulRight)+1; if(dwLen>(*BufferSize)) { dprintf("KnownStructOutput unable to fit return data into buffer\n"); hRes=E_FAIL; return hRes; } hRes=StringCchPrintfA(Buffer, dwLen, SYSEXTS_KNOWNSTRUCT_OUT, ulData, ulLeft, ulRight); if(FAILED(hRes)) { dprintf ("KnownStructOutput unable to write data into buffer\n"); } } else if(Flag==DEBUG_KNOWN_STRUCT_SUPPRESS_TYPE_NAME) { return S_OK; } else { dprintf("KnownStructOutput called with invalid flags\n"); } return hRes; }