-static TCHAR localAppDataPath[_MAX_PATH];
+
static WSAData wsaData; //winsockdata
static HINTERNET hInternet = NULL;
SystemParametersInfo (SPI_SETLISTBOXSMOOTHSCROLLING,FALSE,FALSE,0);
+
+ SHGetFolderPathW(0,CSIDL_APPDATA,0,SHGFP_TYPE_CURRENT,appFolderPath);
+ ncvAppSettingPath = appFolderPath;
+ ncvAppSettingPath += TEXT("\\posite-c\\NiconamaCommentViewer\\AppSetting.xml");
}catch (AppInitException e){
return rslt;
<None Include="nlite.ico" />
<None Include="ReadMe.txt" />
<None Include="small.ico" />
- <None Include="todo.txt" />
<None Include="toolbar1.bmp" />
</ItemGroup>
<ItemGroup>
<None Include="toolbar1.bmp">
<Filter>リソース ファイル</Filter>
</None>
- <None Include="todo.txt" />
<None Include="ReadMe.txt">
<Filter>リソース ファイル</Filter>
</None>
#include "nlite_include.h"
namespace nlite{
-CListenerList nlite::listenerList;
}
+BOOL CListenerList::ReadProperty(LPCTSTR fileName){
+ BOOL rslt = FALSE;
+ CAtlFile userSettingFile;
+ ULONGLONG userSettingFileSize;
+
+
+ if(SUCCEEDED(userSettingFile.Create(fileName,GENERIC_READ,FILE_SHARE_READ,OPEN_ALWAYS)) == FALSE || SUCCEEDED(userSettingFile.GetSize(userSettingFileSize)) == FALSE){
+
+ throw Exception(TEXT("\83\8a\83X\83i\81[\90Ý\92è\83t\83@\83C\83\8b\82ª\8aJ\82¯\82Ü\82¹\82ñ\82Å\82µ\82½\81B\82±\82Ì\83G\83\89\81[\82ª\91±\82\82æ\82¤\82Å\82 \82ê\82Î\81A\88ê\93x\90Ý\92è\83t\83@\83C\83\8b\82ð\8dí\8f\9c\82µ\82Ä\8dÄ\93x\8e\8e\82µ\82Ä\82Ý\82Ä\82\82¾\82³\82¢"),__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
+ }
+ std::vector<char> userSettingBuf(static_cast<UINT_PTR>(userSettingFileSize / sizeof(char) + (1 * sizeof(char))));
+ userSettingFile.Read(&userSettingBuf[0],userSettingBuf.size());
+ LPSTR userSettingStart = strstr(&userSettingBuf[0],"<");
+ if(userSettingStart != NULL){
+ ReadUserSettingXML rusx(nlite::listenerList);
+ rusx.Parse(userSettingStart);
+ }
+
+
+ return rslt;
+}
+
+
+ReadUserSettingXML::ReadUserSettingXML(CListenerList &in_listenerList):m_listenerList(in_listenerList),userNodeFlag(FALSE){}
+
+#define NLITE_READ_USER_STRING(at,l,t) if(_tcscmp(at[0],TEXT(#t)) == 0)l.t = at[1]
+#define NLITE_READ_USER_INT(at,l,t) if(_tcscmp(at[0],TEXT(#t))==0)l.t = _tcstol((const wchar_t*)at[1],NULL,10)
+
+ void ReadUserSettingXML::OnStartElement (const XML_Char *pszName, const XML_Char **papszAttrs){
+
+ if(_tcscmp(pszName,TEXT("user")) == 0){
+
+ this->userNodeFlag = TRUE;
+
+
+ for(;papszAttrs[0] != NULL;papszAttrs += 2){
+
+ NLITE_READ_USER_STRING(papszAttrs,listenerBuff,name);
+ NLITE_READ_USER_STRING(papszAttrs,listenerBuff,community);
+ NLITE_READ_USER_INT(papszAttrs,listenerBuff,bgcolor);
+ NLITE_READ_USER_INT(papszAttrs,listenerBuff,time);
+
+ }
+
+ }
+
+ return;
+ }
+
+ void ReadUserSettingXML::OnEndElement (const XML_Char *pszName){
+
+ if(_tcscmp(pszName,TEXT("user")) == 0){
+
+ listenerList.Register(listenerBuff,TRUE);
+ this->userNodeFlag = FALSE;
+ this->listenerBuff.~ListenerData();
+ new(&listenerBuff) ListenerData();
+
+ }
+
+ return;
+ }
+
+ void ReadUserSettingXML::OnCharacterData (const XML_Char *pszData, int nLength){
+
+ if(this->userNodeFlag == TRUE){
+
+
+ listenerBuff.user_id.Append(pszData,nLength);
+
+
+
+
+ }
+
+
+
+ return;
+ }
}
\ No newline at end of file
reference Register(ListenerData &listener,BOOL bUpdate);
+ ///
+ ///\83\8a\83X\83i\81[\83f\81[\83^\93Ç\82Ý\8d\9e\82Ý
+ ///
+ BOOL ReadProperty(LPCTSTR fileName);
+
+ ///
+ ///
+ ///
+
///
///\94w\8ci\90F\82ð\8eû\8fW\82·\82é
};
+
+
///
///\83R\83\81\83\93\83g\83\8a\83X\83g\83N\83\89\83X
///
};
+
+ ///
+ ///\83\86\81[\83U\90Ý\92è\83t\83@\83C\83\8b\93Ç\8eæ\83N\83\89\83X
+ ///
+ class ReadUserSettingXML:public CXmlParser{
+
+ private:
+ ListenerData listenerBuff;
+ CListenerList &m_listenerList;
+ BOOL userNodeFlag;
+
+
+
+
+
+ public:
+
+ ReadUserSettingXML(CListenerList &in_listenerList);
+
+ void OnStartElement (const XML_Char *pszName, const XML_Char **papszAttrs);
+
+ void OnEndElement (const XML_Char *pszName);
+
+ void OnCharacterData (const XML_Char *pszData, int nLength);
+ };
}
\ No newline at end of file
const tstring NUTHINGSTRING(TEXT(""));
}
Property nliteProperty;
-
+CListenerList nlite::listenerList;
+TCHAR appFolderPath[_MAX_PATH];
+CString ncvAppSettingPath;
+TCHAR localAppDataPath[_MAX_PATH];
VOID nlite::UnexpectedErrorMessageShow(LPCTSTR headMessage,LPCTSTR summary,UINT line,LPCTSTR fileName,LPCTSTR function){
tstring errMessage;
goto end;
}
+
+///
+///NCV\83\86\81[\83U\8fî\95ñ\83t\83@\83C\83\8b\83p\83X\8eæ\93¾XML\83p\81[\83T
+///
+class CReadNCVListenerInfoFile:public CXmlParser{
+
+private:
+
+ BOOL settingDirFlag;
+ CString &path;
+
+
+
+
+public:
+
+ CReadNCVListenerInfoFile(CString &in_path):settingDirFlag(FALSE),path(in_path){}
+
+ void OnStartElement (const XML_Char *pszName, const XML_Char **papszAttrs){
+
+ if(_tcscmp(pszName,TEXT("SettingDir")) == 0){
+
+ settingDirFlag = TRUE;
+
+ }
+
+ }
+
+ void OnEndElement (const XML_Char *pszName){
+
+ if(_tcscmp(pszName,TEXT("SettingDir")) == 0){
+
+ settingDirFlag = FALSE;
+
+ }
+
+ }
+
+ void OnCharacterData (const XML_Char *pszData, int nLength){
+
+ if(settingDirFlag == TRUE){
+
+ path.Append(pszData,nLength);
+
+ }
+
+ }
+};
+
+ CString GetNCVListenerInfoFilePath(){
+
+
+ CString rslt;
+
+
+ if((PathFileExists(ncvAppSettingPath) && (!::PathIsDirectory( ncvAppSettingPath )))){
+
+
+ CAtlFile ncvAppSettingFile;
+ ULONGLONG ncvAppSettingFileSize = 0;
+ if(SUCCEEDED(ncvAppSettingFile.Create(ncvAppSettingPath,GENERIC_READ,FILE_SHARE_READ,OPEN_ALWAYS)) == FALSE ||
+ SUCCEEDED(ncvAppSettingFile.GetSize(ncvAppSettingFileSize)) == FALSE){
+
+ throw Exception(TEXT("NCV\82Ì\90Ý\92è\83t\83@\83C\83\8b\82ª\93Ç\82Ý\8d\9e\82ß\82Ü\82¹\82ñ\82Å\82µ\82½"),__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
+
+ }
+ std::vector<char> fileBuf(static_cast<UINT_PTR>(ncvAppSettingFileSize) / sizeof(char) + (1 * sizeof(char)));
+ ncvAppSettingFile.Read(&fileBuf[0],fileBuf.size());
+ LPSTR startPtr = strstr(&fileBuf[0],"<");
+ if(startPtr != NULL){
+ CReadNCVListenerInfoFile parser(rslt);
+ parser.Parse(startPtr);
+ rslt += TEXT("UserSetting.xml");
+
+ }
+
+ }
+
+
+
+
+ return rslt;
+ }
+
const CApplicationInfo * appInfo = NULL;
}
\ No newline at end of file
//\83O\83\8d\81[\83o\83\8b\95Ï\90\94
extern const CApplicationInfo * appInfo;
extern CListenerList listenerList;
+ extern TCHAR localAppDataPath[];
+ extern TCHAR appFolderPath[];
+ extern CString ncvAppSettingPath;
//\83O\83\8d\81[\83o\83\8b\8aÖ\90\94
extern VOID UnexpectedErrorMessageShow(LPCTSTR headMessage,LPCTSTR summary,UINT line,LPCTSTR fileName,LPCTSTR function);
///
extern BOOL SurelyCreate(LPCTSTR dir,BOOL bFile);
+
+ ///
+ ///ncv\82Ì\83\8a\83X\83i\81[\8fî\95ñ\83t\83@\83C\83\8b\83p\83X\82ð\8eæ\93¾
+ ///
+ extern CString GetNCVListenerInfoFilePath();
+
+
namespace nliteregex{
typedef std::tr1::basic_regex<TCHAR> tregex;
namespace text{
VOID CNliteMainFrame::Initialize(LPCTSTR localAppDataPath){
- nliteProperty.ReadProperty();
+ try{
+ nliteProperty.ReadProperty();
- commentView.SetProperty(nliteProperty.cvp,nliteProperty.gp);
+
+ if((nliteProperty.gp.ncvUserSettingReadedFlag == FALSE) &&
+ ((PathFileExists(ncvAppSettingPath) && (!::PathIsDirectory( ncvAppSettingPath ))))){
+
+ if((::MessageBox(NULL,TEXT("NCV\82Ì\83\8a\83X\83i\81[\8fî\95ñ\82Æ\93¯\8aú\82µ\82Ü\82·\82©\81H"),TEXT("\83\8a\83X\83i\81[\8fî\95ñ\93Ç\82Ý\8d\9e\82Ý"),MB_OK | MB_OKCANCEL) == IDOK)){
+ listenerList.ReadProperty(GetNCVListenerInfoFilePath());
+ }
+ nliteProperty.gp.ncvUserSettingReadedFlag = TRUE;
+
- if(nliteProperty.gp.browserType == BT_NOSETTING){
- nliteProperty.CookieSetting();
- while(nliteProperty.gp.browserType == BT_NOSETTING){
- ::MessageBox(NULL,TEXT("\83u\83\89\83E\83U\83^\83C\83v\82ð\8ew\92è\82µ\82Ä\82\82¾\82³\82¢\81B\82±\82ê\88È\8aO\82Ì\83u\83\89\83E\83U\82Í\8c»\8dÝ\8eg\97p\82·\82é\82±\82Æ\82Í\82Å\82«\82Ü\82¹\82ñ"),TEXT("\83u\83\89\83E\83U\83^\83C\83v\8ew\92è\83G\83\89\81["),MB_OK);
+
+
+ }
+
+ listenerList.ReadProperty(nliteProperty.userSettingPath);
+
+ commentView.SetProperty(nliteProperty.cvp,nliteProperty.gp);
+ if(nliteProperty.gp.browserType == BT_NOSETTING){
nliteProperty.CookieSetting();
+ while(nliteProperty.gp.browserType == BT_NOSETTING){
+ ::MessageBox(NULL,TEXT("\83u\83\89\83E\83U\83^\83C\83v\82ð\8ew\92è\82µ\82Ä\82\82¾\82³\82¢\81B\82±\82ê\88È\8aO\82Ì\83u\83\89\83E\83U\82Í\8c»\8dÝ\8eg\97p\82·\82é\82±\82Æ\82Í\82Å\82«\82Ü\82¹\82ñ"),TEXT("\83u\83\89\83E\83U\83^\83C\83v\8ew\92è\83G\83\89\81["),MB_OK);
+ nliteProperty.CookieSetting();
+ }
}
- }
- nicoVideoAuth.SetBrowserType(nliteProperty.gp.browserType);
- nicoLiveStream.SetResFrom(200);
+ nicoVideoAuth.SetBrowserType(nliteProperty.gp.browserType);
+ nicoLiveStream.SetResFrom(200);
+ }catch(Exception &e){
+
+ ::MessageBox(NULL,e.what(),TEXT("\90Ý\92è\83t\83@\83C\83\8b\93Ç\82Ý\8d\9e\82Ý\83G\83\89\81["),MB_OK | MB_ICONERROR);
+
+ }
return;
CreatePropertyFile();
CAtlFile propertyFile;
- CAtlFile ncvUserSettingFile;
+
ULONGLONG propertyFileSize;
- ULONGLONG ncvUserSettingFileSize;
+
if(SUCCEEDED(propertyFile.Create(propertyPath,GENERIC_READ,FILE_SHARE_READ,OPEN_ALWAYS)) == FALSE || SUCCEEDED(propertyFile.GetSize(propertyFileSize)) == FALSE){
throw Exception(TEXT("\90Ý\92è\83t\83@\83C\83\8b\82ª\8aJ\82¯\82Ü\82¹\82ñ\82Å\82µ\82½\81B\82±\82Ì\83G\83\89\81[\82ª\91±\82\82æ\82¤\82Å\82 \82ê\82Î\81A\88ê\93x\90Ý\92è\83t\83@\83C\83\8b\82ð\8dí\8f\9c\82µ\82Ä\8dÄ\93x\8e\8e\82µ\82Ä\82Ý\82Ä\82\82¾\82³\82¢"),__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
}
- if(this->gp.ncvUserSettingReadedFlag == FALSE){
-
- TCHAR appFolderPath[_MAX_PATH];
- SHGetFolderPathW(0,CSIDL_APPDATA,0,SHGFP_TYPE_CURRENT,appFolderPath);
- CString ncvUserSettingPath = appFolderPath;
- ncvUserSettingPath += TEXT("\\posite-c\\NiconamaCommentViewer\\UserSetting.xml");
- if(SUCCEEDED(ncvUserSettingFile.Create(ncvUserSettingPath,GENERIC_READ,FILE_SHARE_READ,OPEN_ALWAYS)) == FALSE || SUCCEEDED(ncvUserSettingFile.GetSize(ncvUserSettingFileSize)) == FALSE){
-
- throw Exception(TEXT("\83\8a\83X\83i\81[\90Ý\92è\83t\83@\83C\83\8b\82ª\8aJ\82¯\82Ü\82¹\82ñ\82Å\82µ\82½\81B\82±\82Ì\83G\83\89\81[\82ª\91±\82\82æ\82¤\82Å\82 \82ê\82Î\81A\88ê\93x\90Ý\92è\83t\83@\83C\83\8b\82ð\8dí\8f\9c\82µ\82Ä\8dÄ\93x\8e\8e\82µ\82Ä\82Ý\82Ä\82\82¾\82³\82¢"),__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
- }
- std::vector<char> ncvUserSettingBuf(static_cast<UINT_PTR>(ncvUserSettingFileSize / sizeof(char) + (1 * sizeof(char))));
- ncvUserSettingFile.Read(&ncvUserSettingBuf[0],ncvUserSettingBuf.size());
- LPSTR ncvUserSettingStart = strstr(&ncvUserSettingBuf[0],"<");
- if(ncvUserSettingStart != NULL){
- ReadUserSettingXML rusx;
- rusx.Parse(ncvUserSettingStart);
- }
- }
+
return;
}
if((_tcslen(propertyBuf) == 0) || !((PathFileExists(propertyBuf) && !::PathIsDirectory( propertyBuf )))){
propertyFolderPath = appLocalPath;
- propertyFolderPath += TEXT("\\qwerty_nico");
+ propertyFolderPath += TEXT("\\qwerty_nico\\");
::WritePrivateProfileString(sectionName,keyName,propertyFolderPath,iniFile);
}
propertySaveFolderPath = propertyFolderPath;
- propertySaveFolderPath += TEXT("\\nlite");
+ propertySaveFolderPath += TEXT("nlite\\");
propertyPath = propertySaveFolderPath;
- propertyPath += TEXT("\\property.xml");
+ propertyPath += TEXT("property.xml");
userSettingPath = propertySaveFolderPath;
- userSettingPath += TEXT("\\user_setting.xml");
+ userSettingPath += TEXT("listenerData.xml");
SurelyCreate(propertySaveFolderPath,FALSE);
SurelyCreate(propertyPath,TRUE);
SurelyCreate(userSettingPath,TRUE);
-#define NLITE_READ_USER_STRING(at,l,t) if(_tcscmp(at[0],TEXT(#t)) == 0)l.t = at[1]
-#define NLITE_READ_USER_INT(at,l,t) if(_tcscmp(at[0],TEXT(#t))==0)l.t = _tcstol((const wchar_t*)at[1],NULL,10)
-
- void ReadUserSettingXML::OnStartElement (const XML_Char *pszName, const XML_Char **papszAttrs){
-
- if(_tcscmp(pszName,TEXT("user")) == 0){
-
- this->userNodeFlag = TRUE;
-
-
- for(;papszAttrs[0] != NULL;papszAttrs += 2){
-
- NLITE_READ_USER_STRING(papszAttrs,listenerBuff,name);
- NLITE_READ_USER_STRING(papszAttrs,listenerBuff,community);
- NLITE_READ_USER_INT(papszAttrs,listenerBuff,bgcolor);
- NLITE_READ_USER_INT(papszAttrs,listenerBuff,time);
-
- }
-
- }
-
- return;
- }
-
- void ReadUserSettingXML::OnEndElement (const XML_Char *pszName){
- if(_tcscmp(pszName,TEXT("user")) == 0){
-
- listenerList.Register(listenerBuff,TRUE);
- this->userNodeFlag = FALSE;
- this->listenerBuff.~ListenerData();
- new(&listenerBuff) ListenerData();
-
- }
-
- return;
- }
-
- void ReadUserSettingXML::OnCharacterData (const XML_Char *pszData, int nLength){
-
- if(this->userNodeFlag == TRUE){
-
-
- listenerBuff.user_id.Append(pszData,nLength);
-
-
-
-
- }
-
-
-
- return;
- }
}
\ No newline at end of file
};
- ///
- ///\83\86\81[\83U\90Ý\92è\83t\83@\83C\83\8b\93Ç\8eæ\83N\83\89\83X
- ///
- class ReadUserSettingXML:public CXmlParser{
-
- private:
- ListenerData listenerBuff;
- BOOL userNodeFlag;
-
-
-
-
-
- public:
- void OnStartElement (const XML_Char *pszName, const XML_Char **papszAttrs);
-
- void OnEndElement (const XML_Char *pszName);
-
- void OnCharacterData (const XML_Char *pszData, int nLength);
- };
+
}
\ No newline at end of file
\81E\83R\83\81\83\93\83g\8c\9f\8dõ\8b@\94\\8eÀ\91\95
\81EOpenJTalk\82É\82æ\82é\83R\83\81\83\93\83g\93Ç\82Ý\8fã\82°\8b@\94\\8eÀ\91\95
\81E\96_\93Ç\82Ý\82¿\82á\82ñ\82É\82æ\82é\83R\83\81\83\93\83g\93Ç\82Ý\8fã\82°\8b@\94\\8eÀ\91\95
-\81E\83o\81[\83W\83\87\83\930.0.0.4\8cö\8aJ
+\81E\83o\81[\83W\83\87\83\930.0.1.0\8cö\8aJ
+\81E\95]\89¿\94Å\8cö\8aJ
\81E\83R\83\81\83\93\83g\93Ç\82Ý\8fã\82°\8aw\8fK\8b@\94\\8eÀ\91\95
\81E\83c\81[\83\8b\83o\81[\8eÀ\91\95
-\81E\83o\81[\83W\83\87\83\930.0.0.5\8cö\8aJ
+\81E\83o\81[\83W\83\87\83\930.0.1.1\8cö\8aJ
\81Ecom\83X\83N\83\8a\83v\83g\83G\83\93\83W\83\93\82ð\8eg\82Á\82Ä\83v\83\89\83O\83C\83\93\8b@\94\\8eÀ\91\95
\81E\83v\83\8d\83p\83e\83B\90Ý\92è\83E\83B\83\93\83h\83E\82Ì\8dì\90¬
-\81E\83o\81[\83W\83\87\83\930.0.0.6\8cö\8aJ
-\81E\88ê\94Ê\8cö\8aJ\81H
+\81E\83o\81[\83W\83\87\83\930.0.1.2\8cö\8aJ