//
HRESULT hRes = ::CoInitialize(NULL);
ATLASSERT(SUCCEEDED(hRes));
- //InitCommonControls();
- AtlInitCommonControls(ICC_COOL_CLASSES | ICC_WIN95_CLASSES);
- GUID guid;
+ AtlInitCommonControls(ICC_COOL_CLASSES | ICC_WIN95_CLASSES);
+ GUID guid;
if(_Module.Init(NULL, hInstance,&guid) != S_OK){
throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
}
AtlAxWinInit();
-
+
if(InitializeNlite() != TRUE){
throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
}
-
-
-
-
+
+
+
+
//\83\81\83b\83Z\81[\83W\83\8b\81[\83v\93o\98^
CMessageLoop theLoop;
_Module.AddMessageLoop(&theLoop);
//\83\81\83C\83\93\83E\83B\83\93\83h\83E\95\\8e¦
wnd.ShowWindow(nCmdShow);
wnd.UpdateWindow();
-
+
//\97]\95ª\82É\8am\95Û\82µ\82Ä\82¢\82é\83q\81[\83v\82ð\8aJ\95ú
_heapmin();
-
+
//\83\81\83b\83Z\81[\83W\83\8b\81[\83v\8aJ\8en
nRet = theLoop.Run();
vcassert(_heapchk() == _HEAPOK,TEXT("\83q\81[\83v\83G\83\89\81[\82Å\82·"));
goto nliteend;
-
+
} catch(nlite::Exception &e){
-
+
UnexpectedErrorMessageShow(TEXT("\83n\83\93\83h\83\8b\82³\82ê\82Ä\82¢\82È\82¢\83G\83\89\81["),e.what(),e.getLineNo(),e.getFileName(),e.getFunctionName());
-
+
goto nlitefinally;
} catch(nlib::Exception &e){
-
+
UnexpectedErrorMessageShow(TEXT("nlib\82Å\83n\83\93\83h\83\8b\82³\82ê\82Ä\82¢\82È\82¢\83G\83\89\81["),e.what(),e.getLineNo(),e.getFileName(),e.getFunctionName());
-
+
goto nlitefinally;
}catch(std::exception &e){
UnexpectedErrorMessageShow(TEXT("\83n\83\93\83h\83\8b\82³\82ê\82Ä\82¢\82È\82¢\83G\83\89\81["),CComBSTR(e.what()),-1,TEXT("\94\90¶\83t\83@\83C\83\8b\82ª\93Á\92è\8fo\97\88\82Ü\82¹\82ñ"),TEXT("\94\90¶\8aÖ\90\94\82ª\93Á\92è\82Å\82«\82Ü\82¹\82ñ"));
-
+
goto nlitefinally;
}
BOOL rslt = FALSE;
try{
-
+
nlite::appInfo = &CApplicationInfo::getInstance();
INT_PTR err;
INT_PTR count = 0;
}
-
+
if(err != ERROR_SUCCESS){
throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
}
+ //\83A\83v\83\8a\83P\81[\83V\83\87\83\93\8fî\95ñ\83C\83\93\83X\83^\83\93\83X\90¶\90¬
const CApplicationInfo &appInfo = CApplicationInfo::getInstance();
CNLiteString userAgent;
userAgent = appInfo.getProcuctName();
userAgent += appInfo.getProductVersion();
+
+ //HTTP\83I\83u\83W\83F\83N\83g\90¶\90¬
hInternet = WinHttpOpen(userAgent,WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,(LPCWSTR)WINHTTP_NO_PROXY_NAME,(LPCWSTR)WINHTTP_NO_PROXY_BYPASS,0);
if(hInternet == NULL){
}
+ //nlib\82Ì\8f\89\8aú\89»
InitializeNLIB(hInternet);
+ //\83\8d\81[\83J\83\8b\83A\83v\83\8a\83P\81[\83V\83\87\83\93\83t\83H\83\8b\83_\8c\9f\8dõ
if(SHGetFolderPathW(0,CSIDL_LOCAL_APPDATA,0,SHGFP_TYPE_CURRENT,localAppDataPath) != S_OK){
throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
SystemParametersInfo (SPI_SETLISTBOXSMOOTHSCROLLING,FALSE,FALSE,0);
-
- SHGetFolderPathW(0,CSIDL_APPDATA,0,SHGFP_TYPE_CURRENT,appFolderPath);
+
+ if(SHGetFolderPathW(0,CSIDL_APPDATA,0,SHGFP_TYPE_CURRENT,appFolderPath) != S_OK){
+
+ throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
+ }
ncvAppSettingPath = appFolderPath;
ncvAppSettingPath += TEXT("\\posite-c\\NiconamaCommentViewer\\AppSetting.xml");
+ rslt = TRUE;
}catch (AppInitException e){
- return rslt;
+ rslt = FALSE;
}
+
+ return rslt;
+}
- rslt = TRUE;
-
+VOID FinalizeNlite(){
- return rslt;
-}
+ //\83\81\83C\83\93\83t\83\8c\81[\83\80\83E\83B\83\93\83h\83E\8cã\8f\88\97\9d
+ wnd.Finalaize();
+ //nlib\8cã\8f\88\97\9d
+ FinalizeNLIB();
- VOID FinalizeNlite(){
+ //HTTP\83I\83u\83W\83F\83N\83g\8aJ\95ú
+ WinHttpCloseHandle(hInternet);
- wnd.Finalaize();
- FinalizeNLIB();
- WinHttpCloseHandle(hInternet);
- WSACleanup();
+ //winsock\8aJ\95ú
+ WSACleanup();
- return;
- }
+ return;
+}
//
//\83Q\83b\83^\81[
//
-
LPCTSTR getProductVersion()const;
LPCTSTR getOriginalFileName()const;
CCommentView &m_master;
-
+
BEGIN_MSG_MAP(CChatReadEdit)
END_MSG_MAP()
CChatReadEdit(CCommentView &m_master);
BOOL SetWindowText(const CChatData &str);
+ ///
+ ///\93à\97e\82ð\83\8a\83Z\83b\83g
+ //
VOID Reset();
+
+ ///
+ ///\83\8a\83\93\83N\95\\8e¦\95¶\8e\9a\97ñ\82ð\8c\88\92è
+ ///
VOID linkStringBeside(const tstring &target,const nliteregex::tregex &re);
-
+
+ ///
+ ///\82±\82Ì\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82É\82¨\82¯\82é\94Ä\97p\93I\82È\83E\83B\83\93\83h\83E\8dì\90¬\8aÖ\90\94
+ ///
HWND GeneralCreate(HWND hParent,DWORD eventMask,UINT id);
};
friend CChatChildCtrlsList;
private:
CChatReadEdit chatDispCtrl;
-// CHyperLink noDispCtrl;
-// CHyperLink userNameDispCtrl;
CCommentView &m_master;
-
+
private:
CHAT_DISPCTRL_ID = 30000000
};
-
+
///
///\83R\83\93\83X\83g\83\89\83N\83^
///
CChatChildCtrls(CCommentView &hMaster);
-
+
///
///\8ew\92è\82µ\82½\8d\82\82³\82É\83R\83\93\83g\83\8d\81[\83\8b\82ð\83Z\83b\83g
///
};
-
+ ///
+ ///\83R\83\81\83\93\83g\95\\8e¦\83E\83B\83\93\83h\83E\82Ì\8eq\83E\83B\83\93\83h\83E\83\8a\83X\83g
+ ///
class CChatChildCtrlsList{
friend CCommentView;
friend CCommentListWindow;
friend CChatChildCtrls;
-
+
private:
typedef std::list<CChatChildCtrls> InternalList;
- InternalList m_list;
- CCommentView &m_hMaster;
- RECT rcBuf;
+ InternalList m_list; //\93à\95\94\82Å\8aÇ\97\9d\82·\82é\83\8a\83X\83g
+ CCommentView &m_hMaster; //\82±\82Ì\83E\83B\83\93\83h\83E\82ð\8f\8a\97L\82µ\82Ä\82¢\82é\90e\83E\83B\83\93\83h\83E
private:
typedef InternalList::reference reference;
typedef InternalList::iterator iterator;
-
+
///
///\83R\83\93\83X\83g\83\89\83N\83^
///
CChatChildCtrlsList(CCommentView &hMaster);
-
+
///
///\83R\83\93\83g\83\8d\81[\83\8b\82ð\95\\8e¦
};
-
+
//\83R\83\81\83\93\83g\95\\8e¦\97p\83E\83B\83\93\83h\83E
class CCommentListWindow:public CWindowImpl<CCommentListWindow>{
friend CCommentView;
friend CChatChildCtrls;
friend CChatChildCtrlsList;
-
-
+
+
//\83\81\83\93\83o
private:
CCommentView &self;
UINT_PTR viewSellHeight;
CPen collLinePen; //\8d\80\96Ú\8fc\90ü\95`\89æ\97p\83y\83\93
- CPen normalSellLinePen; //\98g\90ü\95`\89æ\97p\83y\83\93
- CBrush normalBkBrush; //\94w\8ci\95`\89æ\97p\83u\83\89\83V
- CPen selectSellLinePen; //\98g\90ü\95`\89æ\97p\83y\83\93
- CBrush selectBkBrush; //\94w\8ci\95`\89æ\97p\83u\83\89\83V
- CFont linkFont;
-// CAddToMyListWindow addToMyListWindow; //\83}\83C\83\8a\83X\83g\93o\98^\97p\83E\83B\83\93\83h\83E
-
- //\83\8a\83\93\83N\95¶\8e\9a\97ñ\97p\82Ì\83t\83H\83\93\83g
+ CPen normalSellLinePen; //\98g\90ü\95`\89æ\97p\83y\83\93
+ CBrush normalBkBrush; //\94w\8ci\95`\89æ\97p\83u\83\89\83V
+ CPen selectSellLinePen; //\98g\90ü\95`\89æ\97p\83y\83\93
+ CBrush selectBkBrush; //\94w\8ci\95`\89æ\97p\83u\83\89\83V
+ CFont linkFont; //\83\8a\83\93\83N\95¶\8e\9a\97ñ\82Ì\83t\83H\83\93\83g
+
+
enum {
CALCEDIT_ID = 100
public:
-
+
DECLARE_WND_CLASS(commentViewConstant::NLITE_COMMENTLISTWINDOW)
MSG_WM_CREATE(OnCreate)
MSG_WM_ERASEBKGND(OnEraseBkGnd)
MSG_WM_MOUSEWHEEL(OnMouseWheel)
-
-// MSG_WM_DESTROY(OnDestroy)
MSG_WM_PAINT(OnPaint)
MSG_WM_SIZE(OnSize)
MSG_WM_KEYDOWN(OnKeyDown)
~CCommentListWindow();
-
+
///
///\83v\83\8d\83p\83e\83B\90Ý\92è\8e\9e\82Ì\8f\88\97\9d
///
VOID ShowCurSel();
+ ///
+ ///\83`\83\83\83b\83g\95¶\8e\9a\97ñ\95\\8e¦\97Ì\88æ\8cv\8eZ
+ ///
VOID CalcChatRect(const CDC &cdc,RECT &rc,const CNLiteString &str);
-
+
//\83v\83\89\83C\83x\81[\83g\8aÖ\90\94
private:
///\95`\89æ\8d\82\82³\82ð\83\8a\83Z\83b\83g
///
VOID ResetViewSellHeight();
-
-
+
+
///
///\83N\83\8a\83b\83N\82µ\82½\8ds\82ð\8cv\8eZ
//\83\81\83b\83Z\81[\83W\83n\83\93\83h\83\89
private:
-
+
///
///\83E\83B\83\93\83h\83E\8dì\90¬\8e\9e\82Ì\8f\88\97\9d
///
///
LRESULT OnChatControlNortify(LPNMHDR lParam);
-
+ ///
+ ///\83Z\83\8b\82Ì\83T\83C\83Y\82ð\8cv\8eZ
+ ///
LRESULT OnCalcSellSize(LPNMHDR lParam);
-
+
};
-
+
///
///\83R\83\81\83\93\83g\83r\83\85\81[\83N\83\89\83X
///
}HEADERSINFO,*LPHEADERSINFO;
-
-
-
+
+
+
//\83\81\83\93\83o\90é\8c¾
private:
CHeaderCtrl m_header; //\83w\83b\83_\81[\83R\83\93\83g\83\8d\81[\83\8b
CCommentListWindow m_commentListWindow; //\83R\83\81\83\93\83g\83\8a\83X\83g\83E\83B\83\93\83h\83E
- CNicoLiveStream &stream; //\95ú\91\97\83I\83u\83W\83F\83N\83g
+ CNicoLiveStream &stream; //\95ú\91\97\83I\83u\83W\83F\83N\83g
GeneralProperty generalProperty; //\88ê\94Ê\90Ý\92è
CCommentList commentlist; //\83R\83\81\83\93\83g\83\8a\83X\83g
CommentViewProperty viewproperty; //\95\\8e¦\83v\83\8d\83p\83e\83B
HFONT hHeaderFontNew; //\83w\83b\83_\81[\83t\83H\83\93\83g
CNicoVideoAuth &refAuth; //\83j\83R\83j\83R\90¶\95ú\91\97\94F\8fØ\83I\83u\83W\83F\83N\83g\8eQ\8fÆ
- CChatChildCtrlsList chatChildCtrlsList;
+ CChatChildCtrlsList chatChildCtrlsList; //\8eq\83E\83B\83\93\83h\83E\83\8a\83X\83g
+
+
+
+
-
-
-
-
public:
enum{
INFO
};
-
+
///
///\83R\83\93\83X\83g\83\89\83N\83^
///
CCommentView(CNicoLiveStream &stream,CNicoVideoAuth &refAuth);
-
+
///
///\83f\83X\83g\83\89\83N\83^
///
///\83E\83B\83\93\83h\83E\8dX\90V
///
VOID UpDateUI();
-
+
//
//\83E\83B\83\93\83h\83E\83N\83\89\83X\90é\8c¾
//
DECLARE_WND_CLASS_EX(commentViewConstant::NLITE_COMMENTVIEW,0,COLOR_BACKGROUND)
-
+
//
//\83\81\83b\83Z\81[\83W\83}\83b\83v
//
///\83v\83\8d\83p\83e\83B\8eæ\93¾
///
CommentViewProperty &GetProperty();
-
+
///
///\83E\83B\83\93\83h\83E\8dì\90¬
///
///\83`\83\83\83b\83g\83R\83\81\83\93\83g\8eó\90M\8am\92è\8f\88\97\9d
///
VOID OnChatReceveSettle(UINT_PTR commentCount,UINT_PTR commentCountSum);
-
+
//\83v\83\89\83C\83x\81[\83g\8aÖ\90\94
///\83w\83b\83_\92Ç\89Á
///
VOID AddHeader(LPHEADERSINFO infos);
-
+
///
///\83w\83b\83_\82Ì\89¡\95\9d\8c\88\92è
///
//\83E\83B\83\93\83h\83E\83\81\83b\83Z\81[\83W\83n\83\93\83h\83\89
private:
-
+
///
///\83T\83C\83Y\95Ï\8dX\8cã\8f\88\97\9d
///
LRESULT OnSize(UINT wParam,SIZE lParam);
-
-
+
+
///
///\83r\83\85\81[\83A\82É\95\\8e¦\82³\82ê\82Ä\82¢\82é\83R\83\81\94Ô\82ª\83N\83\8a\83b\83N\82³\82ê\82½\8e\9e\82Ì\8f\88\97\9d
///
LRESULT OnClickChatNo(UINT uMsg,WPARAM wParam,LPARAM lParam);
-
+
///
///\83r\83\85\81[\83A\82É\95\\8e¦\82³\82ê\82Ä\82¢\82é\83\86\81[\83U\96¼\82ª\83N\83\8a\83b\83N\82³\82ê\82½\8e\9e\82Ì\8f\88\97\9d
///\94w\8ci\93h\82è\82Â\82Ô\82µ\8f\88\97\9d
///
LRESULT OnEraseBkgnd(HDC wParam);
-
+
///
///\83E\83B\83\93\83h\83E\94j\8aü\8e\9e\82Ì\8f\88\97\9d
///
VOID OnDestroy();
-
+
///
///\83w\83b\83_\83A\83C\83e\83\80\95Ï\8dX\8e\9e\8f\88\97\9d
///
///\89¡\83X\83N\83\8d\81[\83\8b\8e\9e\82Ì\8f\88\97\9d
///
VOID OnHScroll(INT_PTR loWParam,SHORT hiWParam,HWND lParam);
-
+
///
///\8fc\83X\83N\83\8d\81[\83\8b\8e\9e\82Ì\8f\88\97\9d
///
///\8dì\90¬\8e\9e\82Ì\8f\88\97\9d
///
LRESULT OnCreate(LPCREATESTRUCT lpcs);
-
-
-
-
-
-
};
-
+
}
namespace nlite{
-namespace nliteregex{
- namespace text{
- const CString URL_TEXT = TEXT("(https?|ftp)(://[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)");
- const CString TAG_TEXT = TEXT("<[\"_;!?,\\:.'$%&#/a-zA-Z0-9= ]*>");
- const CString VIDEOID_TEXT = TEXT("(sm|nm)([0-9])+");
- const CString LIVEID_TEXT = TEXT("(lv)([0-9])+");
- const CString LINK_TEXT = TEXT("(") + URL_TEXT + TEXT(")|(") + VIDEOID_TEXT + TEXT(")|(") + LIVEID_TEXT + TEXT(")");
- const CString SEARTCH_AT_MARK(TEXT("(.*)(@|\81\97)(^ |^\81@[^@^\81\97]+)"));
- const tstring NUTHINGSTRING(TEXT(""));
+ namespace nliteregex{
+ namespace text{
+ const CString URL_TEXT = TEXT("(https?|ftp)(://[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)");
+ const CString TAG_TEXT = TEXT("<[\"_;!?,\\:.'$%&#/a-zA-Z0-9= ]*>");
+ const CString VIDEOID_TEXT = TEXT("(sm|nm)([0-9])+");
+ const CString LIVEID_TEXT = TEXT("(lv)([0-9])+");
+ const CString LINK_TEXT = TEXT("(") + URL_TEXT + TEXT(")|(") + VIDEOID_TEXT + TEXT(")|(") + LIVEID_TEXT + TEXT(")");
+ const CString SEARTCH_AT_MARK(TEXT("(.*)(@|\81\97)(^ |^\81@[^@^\81\97]+)"));
+ const tstring NUTHINGSTRING(TEXT(""));
+ }
+ const tregex URL(text::URL_TEXT);
+ const tregex TAGSTRING(text::TAG_TEXT);
+ const tregex VIDEOID(text::VIDEOID_TEXT);
+ const tregex LIVEID(text::LIVEID_TEXT);
+ const tregex LILNKREGEX(text::LINK_TEXT);
+ const tregex NAMESERTCHREGEX(text::SEARTCH_AT_MARK);
}
- const tregex URL(text::URL_TEXT);
- const tregex TAGSTRING(text::TAG_TEXT);
- const tregex VIDEOID(text::VIDEOID_TEXT);
- const tregex LIVEID(text::LIVEID_TEXT);
- const tregex LILNKREGEX(text::LINK_TEXT);
- const tregex NAMESERTCHREGEX(text::SEARTCH_AT_MARK);
-}
-Property nliteProperty;
-CListenerList nlite::listenerList;
-TCHAR appFolderPath[_MAX_PATH];
-CString ncvAppSettingPath;
-TCHAR localAppDataPath[_MAX_PATH];
+ 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;
- errMessage = headMessage;
- errMessage += TEXT("\91z\92è\82³\82ê\82Ä\82¢\82È\82¢\83G\83\89\81[\82ª\94\90¶\82µ\82Ü\82µ\82½\81B\83A\83v\83\8a\83P\81[\83V\83\87\83\93\94z\92u\83t\83H\83\8b\83_\82É\8dì\90¬\82³\82ê\82½\83\8d\83O\83t\83@\83C\83\8b\82ð\93n\82µ\82Ä\82à\82ç\82¦\82é\82Æ\8aJ\94\8eÒ\82ª\94ñ\8fí\82É\8aì\82Ñ\82Ü\82·");
- errMessage += TEXT("\r\n\83G\83\89\81[\83\81\83b\83Z\81[\83W:");
- errMessage += summary;
- DebugOutW(fileName,function,line,DUMPING__DEBUGER__ | LINEFEAD__DEBUGER__ ,ERRORMODE__DEBUGER__,TEXT("%s"),summary);
- ::MessageBox(NULL,errMessage.c_str(),TEXT("\91z\92è\82³\82ê\82Ä\82¢\82È\82¢\83G\83\89\81["),MB_ICONERROR | MB_OK);
-
+ VOID nlite::UnexpectedErrorMessageShow(LPCTSTR headMessage,LPCTSTR summary,UINT line,LPCTSTR fileName,LPCTSTR function){
+
+ CString errLogFilePath(nliteProperty.propertySaveFolderPath);
+ CAtlFile errFile;
+ TCHAR errfile[_MAX_PATH];
+
+ time_t nowtime = time(NULL);
+ tm timestruct = *gmtime(&nowtime);
+ _tcsftime(errfile,ARRAY_LENGTH(errfile),TEXT("errorlog\\nlite_errorLog_%Y%m%d%H%M%S.log"),×truct);
+ errLogFilePath += errfile;
+ SurelyCreate(errLogFilePath,TRUE);
+
+ errFile.Create(errLogFilePath,GENERIC_WRITE,0,OPEN_ALWAYS);
+ tstring errMessage;
+ errMessage = headMessage;
+ errMessage += TEXT("\91z\92è\82³\82ê\82Ä\82¢\82È\82¢\83G\83\89\81[\82ª\94\90¶\82µ\82Ü\82µ\82½\81B\88È\89º\82Ì\83t\83@\83C\83\8b\82É\83G\83\89\81[\83t\83@\83C\83\8b\82ª\8fo\97Í\82³\82ê\82½\82Ü\82µ\82½\81B\r\n");
+ errMessage += errLogFilePath;
+ errMessage += TEXT("\r\n\83G\83\89\81[\83\81\83b\83Z\81[\83W:");
+ errMessage += summary;
+ DebugOutW(fileName,function,line,DUMPING__DEBUGER__ | LINEFEAD__DEBUGER__ ,ERRORMODE__DEBUGER__,TEXT("%s"),summary);
+ ::MessageBox(NULL,errMessage.c_str(),TEXT("\91z\92è\82³\82ê\82Ä\82¢\82È\82¢\83G\83\89\81["),MB_ICONERROR | MB_OK);
+ /*
+ CComVariant val;
+ val = TEXT("\8f\91\82«\82±\82Ý\83e\83X\83g");
+ val.WriteToStream(
+ CString outputLogfileString;
+ errFile.Write(TEXT("\8f\91\82«\82±\82Ý\83e\83X\83g\r\n"),_tcslen(TEXT("\8f\91\82«\82±\82Ý\83e\83X\83g\r\n")) * sizeof(TCHAR));
+ errFile.Write(TEXT("\8f\91\82«\82±\82Ý\83e\83X\83g\r\n"),_tcslen(TEXT("\8f\91\82«\82±\82Ý\83e\83X\83g\r\n")) * sizeof(TCHAR));
+ */
+ return;
+ }
+ HINSTANCE OpenURL(HWND hwnd,const GeneralProperty &gp,LPCTSTR url ,INT nShowCommand){
- return;
- }
+ HINSTANCE rslt;
- HINSTANCE OpenURL(HWND hwnd,const GeneralProperty &gp,LPCTSTR url ,INT nShowCommand){
+ if(gp.browserPath.Length() == 0){
- HINSTANCE rslt;
+ rslt = ShellExecute(hwnd, NULL, url, NULL, NULL, nShowCommand);
- if(gp.browserPath.Length() == 0){
+ } else{
- rslt = ShellExecute(hwnd, NULL, url, NULL, NULL, nShowCommand);
+ rslt = ShellExecute(hwnd, NULL, gp.browserPath, url, NULL, nShowCommand);
- } else{
+ }
- rslt = ShellExecute(hwnd, NULL, gp.browserPath, url, NULL, nShowCommand);
+ return rslt;
}
- return rslt;
+ BOOL SurelyCreate(LPCTSTR dir,BOOL bFile){
- }
- BOOL SurelyCreate(LPCTSTR dir,BOOL bFile){
-
+ BOOL rslt = FALSE;
+ std::vector<TCHAR> buf(_tcslen(dir) + 1);
+ _tcscpy(&buf[0],dir);
- BOOL rslt = FALSE;
- std::vector<TCHAR> buf(_tcslen(dir) + 1);
- _tcscpy(&buf[0],dir);
+ if( (PathFileExists(dir) && (!bFile || !::PathIsDirectory( dir )))){
- if( (PathFileExists(dir) && (!bFile || !::PathIsDirectory( dir )))){
+ goto success;
+ }
- goto success;
- }
+ LPTSTR startPtr = &buf[0];
+ LPTSTR indexPtr = startPtr;
+ LPTSTR cmpPtr;
+ do {
- LPTSTR startPtr = &buf[0];
- LPTSTR indexPtr = startPtr;
- LPTSTR cmpPtr;
- do {
+ cmpPtr = _tcsstr(indexPtr,TEXT("\\"));
- cmpPtr = _tcsstr(indexPtr,TEXT("\\"));
+ if(cmpPtr == NULL){
- if(cmpPtr == NULL){
-
- if(bFile == TRUE){
- CAtlFile file;
- if( file.Create(startPtr,0,0,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL) != S_OK){
+ if(bFile == TRUE){
+ CAtlFile file;
+ if( file.Create(startPtr,0,0,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL) != S_OK){
- goto err;
+ goto err;
+ }
+ } else {
+
+ ::CreateDirectory(startPtr,0);
}
- } else {
- ::CreateDirectory(startPtr,0);
- }
+ break;
- break;
+ }else if(indexPtr == cmpPtr){
+ break;
- }else if(indexPtr == cmpPtr){
- break;
+ }
- }
+ cmpPtr[0] = TEXT('\0');
+ ::CreateDirectory(startPtr,0);
+ cmpPtr[0] = TEXT('\\');
+ cmpPtr++;
+ indexPtr = cmpPtr;
- cmpPtr[0] = TEXT('\0');
- ::CreateDirectory(startPtr,0);
- cmpPtr[0] = TEXT('\\');
- cmpPtr++;
- indexPtr = cmpPtr;
-
- }while(indexPtr[0] != TEXT('\0'));
+ }while(indexPtr[0] != TEXT('\0'));
success:
- rslt = TRUE;
+ rslt = TRUE;
end:
- return rslt;
+ return rslt;
err:
- rslt = FALSE;
- goto end;
- }
+ rslt = FALSE;
+ 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{
+ ///
+ ///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;
-private:
-
- BOOL settingDirFlag;
- CString &path;
-
-
-public:
- CReadNCVListenerInfoFile(CString &in_path):settingDirFlag(FALSE),path(in_path){}
+ public:
- void OnStartElement (const XML_Char *pszName, const XML_Char **papszAttrs){
+ CReadNCVListenerInfoFile(CString &in_path):settingDirFlag(FALSE),path(in_path){}
- if(_tcscmp(pszName,TEXT("SettingDir")) == 0){
+ void OnStartElement (const XML_Char *pszName, const XML_Char **papszAttrs){
- settingDirFlag = TRUE;
+ if(_tcscmp(pszName,TEXT("SettingDir")) == 0){
+
+ settingDirFlag = TRUE;
+
+ }
}
- }
+ void OnEndElement (const XML_Char *pszName){
- void OnEndElement (const XML_Char *pszName){
+ if(_tcscmp(pszName,TEXT("SettingDir")) == 0){
- if(_tcscmp(pszName,TEXT("SettingDir")) == 0){
+ settingDirFlag = FALSE;
- settingDirFlag = FALSE;
+ }
}
- }
+ void OnCharacterData (const XML_Char *pszData, int nLength){
- void OnCharacterData (const XML_Char *pszData, int nLength){
+ if(settingDirFlag == TRUE){
- if(settingDirFlag == TRUE){
+ path.Append(pszData,nLength);
- path.Append(pszData,nLength);
+ }
}
+ };
- }
-};
+ CString GetNCVListenerInfoFilePath(){
- CString GetNCVListenerInfoFilePath(){
-
- CString rslt;
-
+ 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){
+ if((PathFileExists(ncvAppSettingPath) && (!::PathIsDirectory( ncvAppSettingPath )))){
- 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");
+ 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;
- }
+ return rslt;
+ }
-const CApplicationInfo * appInfo = NULL;
+ const CApplicationInfo * appInfo = NULL;
}
-
+ //\90³\8bK\95\\8c»\96¼\91O\8bó\8aÔ
namespace nliteregex{
typedef std::tr1::basic_regex<TCHAR> tregex;
namespace text{
- extern const CString URL_TEXT;
- extern const CString TAG_TEXT;
- extern const CString VIDEOID_TEXT;
- extern const CString LIVEID_TEXT;
- extern const CString LINK_TEXT;
- extern const CString SEARTCH_AT_MARK;
- extern const tstring NUTHINGSTRING;
+ extern const CString URL_TEXT; //URL\90³\8bK\95\\8c»\95¶\8e\9a\97ñ
+ extern const CString TAG_TEXT; //\83^\83O\90³\8bK\95\\8c»\95¶\8e\9a\97ñ
+ extern const CString VIDEOID_TEXT; //\93®\89æ\94Ô\8d\86\90³\8bK\95\\8c»\95¶\8e\9a\97ñ
+ extern const CString LIVEID_TEXT; //\90¶\95ú\91\97\94Ô\8d\86\90³\8bK\95\\8c»\95¶\8e\9a\97ñ
+ extern const CString LINK_TEXT; //\83\8a\83\93\83N\95\\8e¦\91Î\8fÛ\82Ì\90³\8bK\95\\8c»\95¶\8e\9a\97ñ
+ extern const CString SEARTCH_AT_MARK; //\83R\83e\83n\83\93\93o\98^\97p\82Ì@\82ð\8c\9f\8dõ\82·\82é\90³\8bK\95\\8c»\95¶\8e\9a\97ñ
+ extern const tstring NUTHINGSTRING; //\8bó\82Ì\95¶\8e\9a\97ñ
}
- extern const tregex URL;
- extern const tregex TAGSTRING;
- extern const tregex VIDEOID;
- extern const tregex LIVEID;
- extern const tregex LILNKREGEX;
- extern const tregex NAMESERTCHREGEX;
+ extern const tregex URL; //URL\90³\8bK\95\\8c»
+ extern const tregex TAGSTRING; //\83^\83O\90³\8bK\95\\8c»
+ extern const tregex VIDEOID; //\93®\89æ\94Ô\8d\86\90³\8bK\95\\8c»
+ extern const tregex LIVEID; //\90¶\95ú\91\97\94Ô\8d\86\90³\8bK\95\\8c»
+ extern const tregex LILNKREGEX; //\83\8a\83\93\83N\95\\8e¦\91Î\8fÛ\8c\9f\8dõ\97p\90³\8bK\95\\8c»
+ extern const tregex NAMESERTCHREGEX; //\83R\83e\83n\83\93\93o\98^\95¶\8e\9a\97ñ\8c\9f\8dõ\97p\90³\8bK\95\\8c»
}
}
\ No newline at end of file
::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);
}
-
+ throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
return;
}
this->ShowWindow(SW_HIDE);
nicoLiveStream.DisConnect();
this->DestroyWindow();
-
+
return;
}
struct LvnoSearchFunctional{
- LPCTSTR lvNo;
- CNLiteString dispData;
+ LPCTSTR lvNo;
+ CNLiteString dispData;
LvnoSearchFunctional(LPCTSTR in_lvNo):lvNo(in_lvNo){}
DECLARE_FRAME_WND_CLASS(NLITE_MAINWINDOW, IDC_NLITE)
private:
- CCommentView commentView; //\83R\83\81\83\93\83g\95\\8e¦\83E\83B\83\93\83h\83E
- CStatusBarCtrl statusBar; //\83X\83e\81[\83^\83X\83o\81[
- CLiveUserData userData; //\83C\83x\83\93\83g\83n\83\93\83h\83\89\97p\83N\83\89\83X
- CSubLiveNoComboBox subLiveNoComboBox; //\90¶\95ú\91\97\94Ô\8d\86\93ü\97Í\97p\83R\83\93\83{\83{\83b\83N\83X(\83T\83u\83N\83\89\83X)
- CCommentWriteWindow commentWriteWindow; //\83R\83\81\83\93\83g\8f\91\82«\8d\9e\82Ý\97p\83N\83\89\83X
- CTabCtrl tabctrl; //\83^\83u\83R\83\93\83g\83\8d\81[\83\8b
- HFONT hTabFont; //\83^\83u\83E\83B\83\93\83h\83E\97p\82Ì\83t\83H\83\93\83g
- CComboBoxEx lvNoCombo; //\90¶\95ú\91\97\94Ô\8d\86\93ü\97Í\97p\83R\83\93\83{\83{\83b\83N\83X
- INT_PTR statusBarHeight; //\83X\83e\81[\83^\83X\83o\81[\82Ì\8d\82\82³
- INT_PTR toolBarHeight; //\83c\81[\83\8b\83o\81[\82Ì\8d\82\82³
- CNicoVideoAuth nicoVideoAuth; //\83j\83R\83j\83R\93®\89æ\94F\8fØ\97p\83I\83u\83W\83F\83N\83g
- CNicoLiveStream nicoLiveStream; //\83j\83R\83j\83R\90¶\95ú\91\97\83I\83u\83W\83F\83N\83g
- CMultiPaneStatusBarCtrl m_hStatusBar; //\83}\83\8b\83`\83y\83C\83\93\83X\83e\81[\83^\83X\83o\81[
- CProgressBarCtrl m_progresBar; //\83v\83\8d\83O\83\8c\83X\83o\81[
- CListenerSettingWindow listenerSettingWindow; //\83\8a\83X\83i\81[\90Ý\92è\83E\83B\83\93\83h\83E
-
- CComAutoCriticalSection lvNoBufCS; //\90¶\95ú\91\97\94Ô\8d\86\83N\83\8a\83e\83B\83J\83\8b\83Z\83N\83V\83\87\83\93
- CString lvNoBuffer; //\90¶\95ú\91\97\94Ô\8d\86\83o\83b\83t\83@
+ CCommentView commentView; //\83R\83\81\83\93\83g\95\\8e¦\83E\83B\83\93\83h\83E
+ CStatusBarCtrl statusBar; //\83X\83e\81[\83^\83X\83o\81[
+ CLiveUserData userData; //\83C\83x\83\93\83g\83n\83\93\83h\83\89\97p\83N\83\89\83X
+ CSubLiveNoComboBox subLiveNoComboBox; //\90¶\95ú\91\97\94Ô\8d\86\93ü\97Í\97p\83R\83\93\83{\83{\83b\83N\83X(\83T\83u\83N\83\89\83X)
+ CCommentWriteWindow commentWriteWindow; //\83R\83\81\83\93\83g\8f\91\82«\8d\9e\82Ý\97p\83N\83\89\83X
+ CTabCtrl tabctrl; //\83^\83u\83R\83\93\83g\83\8d\81[\83\8b
+ HFONT hTabFont; //\83^\83u\83E\83B\83\93\83h\83E\97p\82Ì\83t\83H\83\93\83g
+ CComboBoxEx lvNoCombo; //\90¶\95ú\91\97\94Ô\8d\86\93ü\97Í\97p\83R\83\93\83{\83{\83b\83N\83X
+ INT_PTR statusBarHeight; //\83X\83e\81[\83^\83X\83o\81[\82Ì\8d\82\82³
+ INT_PTR toolBarHeight; //\83c\81[\83\8b\83o\81[\82Ì\8d\82\82³
+ CNicoVideoAuth nicoVideoAuth; //\83j\83R\83j\83R\93®\89æ\94F\8fØ\97p\83I\83u\83W\83F\83N\83g
+ CNicoLiveStream nicoLiveStream; //\83j\83R\83j\83R\90¶\95ú\91\97\83I\83u\83W\83F\83N\83g
+ CMultiPaneStatusBarCtrl m_hStatusBar; //\83}\83\8b\83`\83y\83C\83\93\83X\83e\81[\83^\83X\83o\81[
+ CProgressBarCtrl m_progresBar; //\83v\83\8d\83O\83\8c\83X\83o\81[
+ CListenerSettingWindow listenerSettingWindow; //\83\8a\83X\83i\81[\90Ý\92è\83E\83B\83\93\83h\83E
+ CComAutoCriticalSection lvNoBufCS; //\90¶\95ú\91\97\94Ô\8d\86\83N\83\8a\83e\83B\83J\83\8b\83Z\83N\83V\83\87\83\93
+ CString lvNoBuffer; //\90¶\95ú\91\97\94Ô\8d\86\83o\83b\83t\83@
private:
// \83\81\83b\83Z\81[\83W\83t\83B\83\8b\83^\8f\88\97\9d
virtual BOOL PreTranslateMessage(MSG* pMsg);
CreatePropertyFile();
CComPtr<IXmlWriter> pWriter;
CreateXmlWriter(__uuidof(IXmlWriter), reinterpret_cast<void**>(&pWriter), 0);
-
+
// XML\83t\83@\83C\83\8b\83p\83X\8dì\90¬
TCHAR xml[MAX_PATH];
_tcscpy(xml,this->propertyPath);
SHCreateStreamOnFile(xml, STGM_CREATE | STGM_WRITE, &pStream);
pWriter->SetOutput(pStream);
-
// \83C\83\93\83f\83\93\83g\97L\8cø\89»
pWriter->SetProperty(XmlWriterProperty_Indent, TRUE);
GeneralProperty gp; //\8b¤\97L\83v\83\8d\83p\83e\83B
CommentReadProperty crp; //\83R\83\81\83\93\83g\93Ç\82Ý\8fã\82°\83v\83\8d\83p\83e\83B
CNLiteString appLocalPath; //\83\8d\81[\83J\83\8b\83t\83H\83\8b\83_\83p\83X
- CNLiteString propertyFolderPath; //\83v\83\8d\83p\83e\83B\94z\92u\83t\83H\83\8b\83_
- CNLiteString propertySaveFolderPath; //\83v\83\8d\83p\83e\83B\83t\83H\83\8b\83_
+ CNLiteString propertyFolderPath; //\83v\83\8d\83p\83e\83B\94z\92u\82ª\8bL\8dÚ\82³\82ê\82½\83t\83H\83\8b\83_
+ CNLiteString propertySaveFolderPath; //\83v\83\8d\83p\83e\83B\83f\81[\83^\95Û\91¶\90æ\83t\83H\83\8b\83_
CNLiteString propertyPath; //\83v\83\8d\83p\83e\83B\83t\83@\83C\83\8b\83p\83X
CNLiteString listenerDataPath; //\83\8a\83X\83i\81[\8fî\95ñ\90Ý\92è\83t\83@\83C\83\8b\83p\83X
Property();
};
- Node::type propertyType;
- tstring nodeName;
+ Node::type propertyType; //\83v\83\8d\83p\83e\83B\82Ì\83^\83C\83v
+ tstring nodeName; //\83m\81[\83h\96¼
-
void OnStartElement (const XML_Char *pszName, const XML_Char **papszAttrs);
void OnEndElement (const XML_Char *pszName);
///
class CListenerSettingWindow:public CDialogImpl<CListenerSettingWindow>{
- CEdit nameEdit;
- CColorSettingButton nameColorButton;
- CButton nameColorReturnButton;
- CColorSettingButton backColorButton;
- CButton backColorReturnButton;
- CStatic idField;
- ListenerData *listenerData;
+ CEdit nameEdit; //\83j\83b\83N\83l\81[\83\80\95Ò\8fW\83G\83f\83B\83b\83g
+ CColorSettingButton nameColorButton; //\83j\83b\83N\83l\81[\83\80\90F\95Ò\8fW\83{\83^\83\93
+ CButton nameColorReturnButton; //\83j\83b\83N\83l\81[\83\80\90F\82ð\96ß\82·\83{\83^\83\93
+ CColorSettingButton backColorButton; //\94w\8ci\90F\95Ò\8fW\83{\83^\83\93
+ CButton backColorReturnButton; //\94w\8ci\90F\82ð\96ß\82·\83{\83^\83\93
+ CStatic idField; //ID\95\\8e¦\97Ì\88æ
+ ListenerData *listenerData; //\91Î\8fÛ\82Ì\83\8a\83X\83i\81[\83f\81[\83^
public:
enum { IDD = IDD_LISTENER_SETTING_DIALOG };
COMMAND_CODE_HANDLER_EX(BN_CLICKED,OnButton)
END_MSG_MAP()
+
+ ///
+ ///\90Ý\92è\83E\83B\83\93\83h\83E\95\\8e¦
+ ///
VOID ShowSettingWindow(ListenerData &listenerData);
private:
namespace nlite{
typedef std::basic_string<TCHAR> tstring;
-//\96¼\91O\82â\83N\83\89\83X\82ð\95Ï\82¦\82½\82¢\8fê\8d\87\82Í\82±\82±\82ð\95Ï\82¦\82é
#define CNLITESTRING_THISTYPE CNLiteString //\95¶\8e\9a\97ñ\83N\83\89\83X\96¼
#define CNLITESTRING_INTERNALSTRINGTYPE CComBSTR //\93à\95\94\82Å\8f\88\97\9d\82ð\82·\82é\95¶\8e\9a\97ñ\83N\83\89\83X\96¼