name(TEXT("")),
community(TEXT("")),
bgcolor(INIT_COLOR),
-//originBkFlag(FALSE),
+writePropertyFlag(FALSE),
time(0)
{}
VOID ListenerData::SetBkColor(COLORREF bkColor_in){
bgcolor = bkColor_in;
+ writePropertyFlag = TRUE;
return;
}
iterator rslt = std::find_if(begin,end,listenerPre);
-
+
if(rslt == end){
+
m_listenerList.push_back(listener);
-
return m_listenerList.back();
} else if(bUpdate == TRUE){
*rslt = listener;
+
}
return *rslt;
return rslt;
}
+#define NLITE_ATTRIBUTE_WRITE_STR(s,n) s->WriteAttributeString(NULL, _tcsstr(TEXT(#n),TEXT(".")) != NULL ? _tcsstr(TEXT(#n),TEXT(".")) + 1 : TEXT(#n), NULL, n)
+
+#define NLITE_ATTRIBUTE_WRITE_INT(s,n) \
+ {\
+ TCHAR buffer[sizeof(n) * 8];\
+ _stprintf(buffer,TEXT("%d"),static_cast<INT>(n));\
+ s->WriteAttributeString(NULL, _tcsstr(TEXT(#n),TEXT(".")) + 1, NULL,buffer );\
+}
+BOOL CListenerList::WriteProperty(LPCTSTR fileName){
+ BOOL rslt = FALSE;
+
+
+ CComPtr<IXmlWriter> pWriter;
+ CreateXmlWriter(__uuidof(IXmlWriter), reinterpret_cast<void**>(&pWriter), 0);
+ // \83t\83@\83C\83\8b\83X\83g\83\8a\81[\83\80\8dì\90¬
+ CComPtr<IStream> pStream;
+ SHCreateStreamOnFile(fileName, STGM_CREATE | STGM_WRITE, &pStream);
+
+ pWriter->SetOutput(pStream);
+
+ // \83C\83\93\83f\83\93\83g\97L\8cø\89»
+ pWriter->SetProperty(XmlWriterProperty_Indent, TRUE);
+
+ // <?xml version="1.0" encoding="UTF-8"?>
+ pWriter->WriteStartDocument(XmlStandalone_Omit);
+
+ pWriter->WriteStartElement(NULL,TEXT("listenerData"),NULL);
+
+
+ auto begin = m_listenerList.begin();
+ auto end = m_listenerList.end();
+
+ for(;begin != end;++begin){
+ if(begin->writePropertyFlag == TRUE){
+ pWriter->WriteStartElement(NULL,TEXT("user"),NULL);
+ if(begin->name.Length() > 0) NLITE_ATTRIBUTE_WRITE_STR(pWriter,(*begin).name);
+ if(begin->community.Length()> 0) NLITE_ATTRIBUTE_WRITE_STR(pWriter,(*begin).community);
+ NLITE_ATTRIBUTE_WRITE_INT(pWriter,(*begin).time);
+ if(begin->bgcolor != ListenerData::INIT_COLOR)NLITE_ATTRIBUTE_WRITE_INT(pWriter,(*begin).bgcolor);
+ pWriter->WriteString(begin->user_id);
+ pWriter->WriteEndElement();
+ }
+ }
+ pWriter->WriteEndDocument();
+ rslt = TRUE;
+ return rslt;
+}
ReadUserSettingXML::ReadUserSettingXML(CListenerList &in_listenerList):m_listenerList(in_listenerList),userNodeFlag(FALSE){}
if(this->userNodeFlag == TRUE){
-
- listenerBuff.user_id.Append(pszData,nLength);
-
+
+ if(_tcstol(listenerBuff.user_id,NULL,10) != 0 || ((difftime(time(NULL),604800)) <listenerBuff.time)){
+ listenerBuff.writePropertyFlag = TRUE;
+ listenerBuff.user_id.Append(pszData,nLength);
+ }
#define NLITE_GET_TYPENAME(n) (_tcsstr(CComBSTR(typeid(n).name()),TEXT("::")) + 2)
#define NLITE_XMLELLMENT_WRITE(s,p) s->WriteStartElement(NULL, NLITE_GET_TYPENAME(p), NULL)
-#define NLITE_ATTRIBUTE_WRITE_STR(s,n) s->WriteElementString(NULL, _tcsstr(TEXT(#n),TEXT(".")) != NULL ? _tcsstr(TEXT(#n),TEXT(".")) + 1 : TEXT(#n), NULL, n)
+#define NLITE_ELLEMENT_WRITE_STR(s,n) s->WriteElementString(NULL, _tcsstr(TEXT(#n),TEXT(".")) != NULL ? _tcsstr(TEXT(#n),TEXT(".")) + 1 : TEXT(#n), NULL, n)
-#define NLITE_ATTRIBUTE_WRITE_INT(s,n) \
+#define NLITE_ELLEMENT_WRITE_INT(s,n) \
{\
TCHAR buffer[sizeof(n) * 8];\
_stprintf(buffer,TEXT("%d"),static_cast<INT>(n));\
propertySaveFolderPath += TEXT("nlite\\");
propertyPath = propertySaveFolderPath;
propertyPath += TEXT("property.xml");
- userSettingPath = propertySaveFolderPath;
- userSettingPath += TEXT("listenerData.xml");
+ listenerDataPath = propertySaveFolderPath;
+ listenerDataPath += TEXT("listenerData.xml");
SurelyCreate(propertySaveFolderPath,FALSE);
SurelyCreate(propertyPath,TRUE);
- SurelyCreate(userSettingPath,TRUE);
+ SurelyCreate(listenerDataPath,TRUE);
return;
}
pWriter->WriteStartElement(NULL,TEXT("nliteconfig"),NULL);
//\83R\83\81\83\93\83g\93Ç\82Ý\8fã\82°\90Ý\92è\8f\91\82«\8d\9e\82Ý
NLITE_XMLELLMENT_WRITE(pWriter,crp);
- NLITE_ATTRIBUTE_WRITE_STR(pWriter,crp.outString);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,crp.administratorCommentReadFlag);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,crp.besideLengthFlag);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,crp.bspReadFlag);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,crp.commentReadFlag);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,crp.maxCommentLength);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,crp.newLineReadFlag);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,crp.ngUserReadFlag);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,crp.ngWordReadFlag);
- NLITE_ATTRIBUTE_WRITE_STR(pWriter,crp.shortComment);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,crp.teropReadFlag);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,crp.userCommentReadFlag);
+ NLITE_ELLEMENT_WRITE_STR(pWriter,crp.outString);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,crp.administratorCommentReadFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,crp.besideLengthFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,crp.bspReadFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,crp.commentReadFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,crp.maxCommentLength);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,crp.newLineReadFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,crp.ngUserReadFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,crp.ngWordReadFlag);
+ NLITE_ELLEMENT_WRITE_STR(pWriter,crp.shortComment);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,crp.teropReadFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,crp.userCommentReadFlag);
pWriter->WriteEndElement();
//commentview\90Ý\92è\92l\8f\91\82«\8d\9e\82Ý
NLITE_XMLELLMENT_WRITE(pWriter,cvp);
NLITE_XML_WRITE_FOR_INT(pWriter,cvp.headerholSize);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,cvp.anonymousIDLinkColor);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,cvp.backColor);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,cvp.baseStringColor);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,cvp.commentFoldingFlag);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,cvp.commentTimeType);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,cvp.anonymousIDLinkColor);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,cvp.backColor);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,cvp.baseStringColor);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,cvp.commentFoldingFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,cvp.commentTimeType);
NLITE_XML_WRITE_FOR_INT(pWriter,cvp.headerOrderArray);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,cvp.linkStringColor);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,cvp.selectBackColor);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,cvp.selectSellLineColor);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,cvp.colLineColor);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,cvp.normalSellLineColor);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,cvp.ownerStringColor);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,cvp.linkStringColor);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,cvp.selectBackColor);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,cvp.selectSellLineColor);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,cvp.colLineColor);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,cvp.normalSellLineColor);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,cvp.ownerStringColor);
pWriter->WriteEndElement();
NLITE_XMLELLMENT_WRITE(pWriter,mfp);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,mfp.windowSize.cx);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,mfp.windowSize.cy);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,mfp.windowFrontFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,mfp.windowSize.cx);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,mfp.windowSize.cy);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,mfp.windowFrontFlag);
pWriter->WriteEndElement();
//\8b¤\92Ê\90Ý\92è\8f\91\82«\8d\9e\82Ý
NLITE_XMLELLMENT_WRITE(pWriter,gp);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,gp.activeCountTimeFlag);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,gp.autoColorRegisterFlag);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,gp.autoNameUpdateFlag);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,gp.autoNameRegisterFlag);
- NLITE_ATTRIBUTE_WRITE_STR(pWriter,gp.browserPath);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,gp.browserType);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,gp.commentLogAutoSaveFlag);
- NLITE_ATTRIBUTE_WRITE_STR(pWriter,gp.commentPath);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,gp.defaultBrowserFlag);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,gp.numberNameFlag);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,gp.userCountUpdateFlag);
- NLITE_ATTRIBUTE_WRITE_INT(pWriter,gp.ncvUserSettingReadedFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,gp.activeCountTimeFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,gp.autoColorRegisterFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,gp.autoNameUpdateFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,gp.autoNameRegisterFlag);
+ NLITE_ELLEMENT_WRITE_STR(pWriter,gp.browserPath);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,gp.browserType);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,gp.commentLogAutoSaveFlag);
+ NLITE_ELLEMENT_WRITE_STR(pWriter,gp.commentPath);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,gp.defaultBrowserFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,gp.numberNameFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,gp.userCountUpdateFlag);
+ NLITE_ELLEMENT_WRITE_INT(pWriter,gp.ncvUserSettingReadedFlag);
pWriter->WriteEndElement();
pWriter->WriteEndDocument();