示例#1
0
文件: XMLprefs.cpp 项目: Sp1l/pwsafe
// Delete a key or chain of keys
bool CXMLprefs::DeleteSetting(const stringT &csBaseKeyName, const stringT &csValueName)
{
  // m_pXMLDoc may be NULL if Load() not called before DeleteSetting,
  // or if called & failed

  if (m_pXMLDoc == NULL && !CreateXML(false))
    return false;

  bool bRetVal = false;

  stringT csKeyName(csBaseKeyName);

  if (!csValueName.empty()) {
    csKeyName += _T("\\");
    csKeyName += csValueName;
  }

  pugi::xml_node base_node = m_pXMLDoc->first_element_by_path(csKeyName.c_str(), _T('\\'));
  if (base_node == NULL)
    return false;

  pugi::xml_node node_parent = base_node.parent();
  if (node_parent != NULL) {
    size_t last_slash = csKeyName.find_last_of(_T("\\"));
    stringT sKey = csKeyName.substr(last_slash + 1);
    bRetVal = node_parent.remove_child(sKey.c_str());
  }

  return bRetVal;
}
示例#2
0
QString UPnPFeature::toXML()
{
    QString xml;
    xml = "<Feature name=\"" + m_name + "\" version=\"" + QString::number(m_version) + "\">\r\n";
    xml += CreateXML();
    xml += "</Feature>\r\n";
    return xml;
}
NotificationIntiate::NotificationIntiate( char * msg , char * channelName ,char * serverName, char * serverIP, int portNumber, char * DID , char * CID ){

	char xmlData[SIZEOFCHARARRAYBIGGER];
	commFunc = new CommonClass();
	CreateXML( xmlData, msg , channelName, serverName,DID,CID );
	if ( commFunc->CreateConnectionClient(serverIP, portNumber,xmlData ) ){
		cout<<"\nSuccessFully Send\n";
	}
	Delete();

}
示例#4
0
文件: XMLprefs.cpp 项目: Sp1l/pwsafe
bool CXMLprefs::Load()
{
  // Already loaded?
  if (m_pXMLDoc != NULL)
    return true;

  bool alreadyLocked = m_bIsLocked;
  if (!alreadyLocked) {
    stringT locker;
    if (!Lock(locker)) {
      LoadAString(m_Reason, IDSC_XMLLOCK_CFG_FAILED);
      m_Reason += _T("\n"); m_Reason += locker;
      // Show filename for troubleshooting
      m_Reason += _T("\n"); m_Reason += m_csConfigFile;
      return false;
    }
  }

  if (!CreateXML(true)) {
    LoadAString(m_Reason, IDSC_XMLCREATE_CFG_FAILED);
    return false;
  }

  pugi::xml_parse_result result = m_pXMLDoc->load_file(m_csConfigFile.c_str());

  if (!result) {
    // An XML load error occurred so display the reason
    // Note: "result.description()" returns char* even in Unicode builds.
    stringT sErrorDesc;
    sErrorDesc = pugi::as_wide(result.description());
    Format(m_Reason, IDSC_XMLFILEERROR,
           sErrorDesc.c_str(), m_csConfigFile.c_str(), result.offset);
    delete m_pXMLDoc;
    m_pXMLDoc = NULL;
    return false;
  } // load failed

  // If we locked it, we should unlock it...
  if (!alreadyLocked)
    Unlock();
  
  // If OK - delete any error message
  m_Reason.clear();
  return true;
}
示例#5
0
文件: XMLprefs.cpp 项目: Sp1l/pwsafe
// Set a string value
int CXMLprefs::Set(const stringT &csBaseKeyName, const stringT &csValueName, 
                   const stringT &csValue)
{
  // m_pXMLDoc may be NULL if Load() not called before Set,
  // or if called & failed

  if (m_pXMLDoc == NULL && !CreateXML(false))
    return false;

  int iRetVal = XML_SUCCESS;

  // Add the value to the base key separated by a '\'
  stringT csKeyName(csBaseKeyName);
  csKeyName += _T("\\");
  csKeyName += csValueName;

  iRetVal = SetPreference(csKeyName, csValue);

  return iRetVal;
}
示例#6
0
STDMETHODIMP CCardProcess::iATLPatchCard(BSTR szCardXML, BSTR pszCardCoverDataXml, 
										 BSTR pszPrinterType, BSTR pszCardCoverXml, 
										 LONG* nRet)
{
	// TODO: 在此添加实现代码
	_bstr_t CreateXML(szCardXML);
	_bstr_t Typebstr(pszPrinterType);
	_bstr_t CardDatabstr(pszCardCoverDataXml);
	_bstr_t CardCoverbstr(pszCardCoverXml);
	char *strINXML = (char*)CreateXML;
	char *szType = (char*)Typebstr;
	char *szCardData = (char*)CardDatabstr;
	char *szCover = (char*)CardCoverbstr;
	if (szType != NULL && szCardData != NULL && 
		szCover != NULL && strINXML != NULL){
		int ret = iPatchCard(strINXML, szCardData, szType, szCover);
		GetErrInfo(ret, (*nRet));
	}else{
		*nRet = -7;
	}
	
	return S_OK;
}
示例#7
0
BOOL CPlayerWnd::SaveXML(CXMLElement* pXML)
{
	ASSERT( pXML != NULL );
	
	CFile pFile;
	if ( ! pFile.Open( _T("Xhistory.xml"), CFile::modeWrite|CFile::modeCreate ) ) return FALSE;
	
	CXMLElement* pParent = LoadXML( pXML->GetName() );
	if ( ! pParent ) pParent = CreateXML();
	
	pParent->GetElementByName( pXML->GetName() )->Delete();
	pParent->AddElement( pXML );
	
	CString strXML;
	strXML = pParent->ToString( TRUE, TRUE );
	
	pFile.Write( (LPCSTR)strXML, strXML.GetLength() );
	
	pFile.Close();
	pXML->Detach();
	pParent->Delete();
	
	return TRUE;
}
示例#8
0
文件: XMLprefs.cpp 项目: Sp1l/pwsafe
int CXMLprefs::SetShortcuts(const stringT &csBaseKeyName, 
                            std::vector<st_prefShortcut> v_shortcuts)
{
  // m_pXMLDoc may be NULL if Load() not called before Set,
  // or if called & failed

  if (m_pXMLDoc == NULL && !CreateXML(false))
    return XML_LOAD_FAILED;

  int iRetVal = XML_SUCCESS;

  // csBaseKeyName is "Pwsafe_Settings\host\user\Shortcuts"
  // Even if this does not exist, "Pwsafe_Settings\host\user" must so we can just go
  // up one level to create it (see SetPreference for when we don't know how many levels
  // we have to go up before we find an existing node
  stringT csKeyName(csBaseKeyName);

  // Get all shortcuts
  pugi::xml_node all_shortcuts = m_pXMLDoc->first_element_by_path(csKeyName.c_str(), _T('\\'));

  // Not there - go up one node and try to add it.
  if (all_shortcuts == NULL) {
    // Add node - go up a level in path
    size_t last_slash = csKeyName.find_last_of(_T("\\"));
    stringT sPath = csKeyName.substr(0, last_slash);
    stringT sKey = csKeyName.substr(last_slash + 1);
    all_shortcuts = m_pXMLDoc->first_element_by_path(sPath.c_str(), _T('\\'));
    
    ASSERT(all_shortcuts != NULL);
    if (all_shortcuts != NULL) {
      all_shortcuts = all_shortcuts.append_child(sKey.c_str());
    }
  }

  // If still NULL - give up!!!
  if (all_shortcuts == NULL)
    return XML_PUT_TEXT_FAILED;

  for (size_t i = 0; i < v_shortcuts.size(); i++) { 
    pugi::xml_node shortcut = all_shortcuts.append_child(_T("Shortcut"));
    
    // If we can't add this - give up!
    if (shortcut == NULL)
      return XML_PUT_TEXT_FAILED;
      
    shortcut.set_value(_T(""));
    
    pugi::xml_attribute attrib;

    attrib = shortcut.append_attribute(_T("id"));
    attrib = v_shortcuts[i].id;
    attrib = shortcut.append_attribute(_T("Ctrl"));
    attrib = (v_shortcuts[i].cModifier & PWS_HOTKEYF_CONTROL) ==
                       PWS_HOTKEYF_CONTROL ? 1 : 0;
    attrib = shortcut.append_attribute(_T("Alt"));
    attrib = (v_shortcuts[i].cModifier & PWS_HOTKEYF_ALT) ==
                       PWS_HOTKEYF_ALT ? 1 : 0;
    attrib = shortcut.append_attribute(_T("Shift"));
    attrib = (v_shortcuts[i].cModifier & PWS_HOTKEYF_SHIFT) ==
                       PWS_HOTKEYF_SHIFT ? 1 : 0;
    // wxWidgets only - set values but do not use in Windows MFC
    attrib = shortcut.append_attribute(_T("Meta"));
    attrib = (v_shortcuts[i].cModifier & PWS_HOTKEYF_META) ==
                       PWS_HOTKEYF_META ? 1 : 0;
    attrib = shortcut.append_attribute(_T("Win"));
    attrib = (v_shortcuts[i].cModifier & PWS_HOTKEYF_WIN) ==
                       PWS_HOTKEYF_WIN ? 1 : 0;
    attrib = shortcut.append_attribute(_T("Cmd"));
    attrib = (v_shortcuts[i].cModifier & PWS_HOTKEYF_CMD) ==
                       PWS_HOTKEYF_CMD ? 1 : 0;
    attrib = shortcut.append_attribute(_T("Key"));
    attrib = v_shortcuts[i].siVirtKey;
  }
  return iRetVal;
}
示例#9
0
int main(int argc, char **argv)
{
/*
	int i;
	char *pcDocRoot = NULL;
	int iPort = 0;

	for (i = 1; i < argc; i++)
	{
		if (i + 1 < argc && strcmp(argv[i], "-d") == 0)
			pcDocRoot = argv[++i];
		if (i + 1 < argc && strcmp(argv[i], "-p") == 0)
			iPort = String2Long(argv[++i]);
	}
	if (pcDocRoot == NULL || iPort == 0)
	{
		fprintf(stderr, "Usage:\n	-d HtmlDir -p port\n");
		return 0;
	}

	//RegisterEmbedFun("/Jpeg/*.jpg", tt, NULL);
	//RegisterEmbedFun("*", tt, NULL);
	RegisterEmbedFun("test", t, NULL);
*/
	char *pcDocRoot = "./";
	int aiPort[] = {80, 0};
	int aiSSLPort[] = {443, 0};
	RegisterEmbedFun("/", text, NULL);
	StartThttpdEx3(pcDocRoot, aiPort, aiSSLPort,
					10, 100, 3,
					NULL, NULL, NULL);

#if 0
	XML *pXML = CreateXML("eee");
	XML *pSub;
	XML *pSub1;
	XML *pSub2;
	SetString(pXML->plAttrib, "type", "text");
	SetString(pXML->plAttrib, "value", "mytest");
	SetString(pXML->plAttrib, "name", "test");

	pSub = AppendXML(pXML, NULL);

printf("%d %d %d\n", pXML, pSub,
GetParentXML(pSub)
);
	return 0;

	pSub = CreateXML("sub");
	pSub1 = AppendXML(pXML, pSub);
	SetString(pSub1->plAttrib, "sss", "eeeee");

	pSub = AppendXML(pXML, NULL);
	AppendXML(pSub, NULL);
	AppendXML(pSub, NULL);
	AppendXML(pSub, NULL);
	DumpXML(pXML, NULL, NULL);
	PTI;

	pSub2 = CreateXMLText("how ass s ss s s ");
	pSub2 = AppendXML(pSub1, pSub2);
	DumpXML(pSub1, NULL, NULL);

	PTI;
	pSub1 = DetachXML(pXML, pSub1);
	DumpXML(pXML, NULL, NULL);
	PTI;
	DumpXML(pSub1, NULL, NULL);

	DeleteXML(pXML);
	DeleteXML(pSub1);
	pt_mem_result();
#endif
}
示例#10
0
void Failover::ReplaceDownServerDIDWithBackUPServerDID(const char *DID, int sysDID,DataBaseAccess * dBA, vector<string> DeviceIP ){

	GetInformationAboutFromAllOtherServer(DeviceIP, DID);
	CreateXML(dBA,DID, sysDID );
	bootLoader->StartBoot();
}
示例#11
0
void MainWindow::closeEvent(QCloseEvent *ev)
{
    CreateXML();
}