7 ///
\83E
\83B
\83\93\83h
\83E
\96¼
9 const static LPCTSTR NLITE_MAINWINDOW = TEXT("nlite");
14 ///
\83\81\83C
\83\93\83t
\83\8c\81[
\83\80\83N
\83\89\83X
16 class CNliteMainFrame : public CFrameWindowImpl<CNliteMainFrame>
17 ,public CUpdateUI<CNliteMainFrame>,public CMessageFilter, public CIdleHandler
26 struct LvnoSearchFunctional;
29 ///
\95ú
\91\97\94Ô
\8d\86\93ü
\97Í
\97p
31 class CSubLiveNoComboBox:public CWindowImpl<CEdit>{
32 friend CNliteMainFrame;
35 //
\8e\8b\92®
\97\9a\97ð
\95\
\8e¦
\97p
\83y
\83A
36 typedef std::pair<CNLiteString,CNLiteString> LiveInfo;
37 typedef std::list<LiveInfo> LiveInfoList;
40 CNliteMainFrame &self; //
\83\81\83C
\83\93\83t
\83\8c\81[
\83\80\83E
\83B
\83\93\83h
\83E
41 CComAutoCriticalSection cs; //
\83N
\83\8a\83e
\83B
\83J
\83\8b\83Z
\83N
\83V
\83\87\83\93\83I
\83u
\83W
\83F
\83N
\83g
42 BOOL untilConnectingFlag; //
\90Ú
\91±
\8f\88\97\9d\92\86\82©
\82Ì
\83t
\83\89\83O
\94»
\92è
43 LiveInfoList liveInfoList; //
\95ú
\91\97\97\9a\97ð
\8fî
\95ñ
47 ///
\83R
\83\93\83X
\83^
\83\89\83N
\83^
49 CSubLiveNoComboBox(CNliteMainFrame &in_self);
52 //
\83\81\83b
\83Z
\81[
\83W
\83\8b\81[
\83v
53 BEGIN_MSG_MAP_EX(CSubLiveNoComboBox)
54 MSG_WM_MOUSEWHEEL(OnMouseWheel)
55 MSG_WM_KEYDOWN(OnKeyDown)
61 ///
\95ú
\91\97\8fî
\95ñ
\92Ç
\89Á
63 VOID AddLiveInfo(CNicoLiveStream &stream,LvnoSearchFunctional &functional);
67 ///
\95ú
\91\97\94Ô
\8d\86\93ü
\97Í
\82ð
\8b\96\89Â
\82·
\82é
69 VOID AgreeInputLvNo();
74 ///
\83L
\81[
\89\9f\89º
\8e\9e\82Ì
\8f\88\97\9d
76 VOID OnKeyDown(TCHAR wParam, UINT upLParam,UINT loLParam);
80 ///
\83}
\83E
\83X
\83z
\83C
\81[
\83\8b\8e\9e\82Ì
\8f\88\97\9d
82 LRESULT OnMouseWheel(UINT loWparam,SHORT hiWparam,CPoint &point);
89 struct LvnoSearchFunctional{
91 CNLiteString dispData;
93 LvnoSearchFunctional(LPCTSTR in_lvNo):lvNo(in_lvNo){}
95 bool operator()(CSubLiveNoComboBox::LiveInfo &listInfo){
96 return listInfo.second == lvNo;
103 ///
\83R
\83\81\83\93\83g
\8eó
\90M
105 class CLiveUserData {
108 friend CNliteMainFrame;
111 CNliteMainFrame &self;
117 ///
\83R
\83\93\83X
\83g
\83\89\83N
\83^
119 CLiveUserData(CNliteMainFrame &self);
123 ///
\90Ú
\91±
\8aJ
\8en
\8e\9e\8f\88\97\9d
128 ///
\83R
\83\81\83\93\83g
\8eó
\90M
\8aJ
\8en
\8e\9e\82Ì
\83R
\81[
\83\8b\83o
\83b
\83N
\8f\88\97\9d
130 VOID OnChatReceveStart(CNicoLiveStream &stream,NicoLiveThreadComment_P threadComment);
134 ///1
\83R
\83\81\83\93\83g
\8eó
\90M
\82µ
\82½
\8e\9e\82Ì
\83R
\81[
\83\8b\83o
\83b
\83N
\8f\88\97\9d
135 ///
\8eó
\90M
\82µ
\82½
\83R
\83\81\83\93\83g
\82ð
\83o
\83b
\83t
\83@
\82É
\8ai
\94[
137 VOID OnChatReceve(NicoLiveChat_P chat,UINT_PTR count);
141 ///
\83`
\83\83\83b
\83g
\8eó
\90M
\8am
\92è
\8e\9e\82Ì
\83R
\81[
\83\8b\83o
\83b
\83N
\8f\88\97\9d
142 ///
\8eå
\82É
\8eó
\90M
\82µ
\82½
\83R
\83\81\83\93\83g
\82Ì
\95`
\89æ
\8f\88\97\9d\82ð
\8ds
\82¤
144 VOID OnChatReceveSettle(UINT_PTR commentCount,UINT_PTR commentCountSum);
147 ///
\83R
\83\81\83\93\83g
\91\97\90M
\8c\8b\89Ê
\8eó
\90M
\8e\9e\82Ì
\83R
\81[
\83\8b\83o
\83b
\83N
\8f\88\97\9d
149 VOID OnChatSendResult(NicoLiveSendResultComment_P sendResult);
153 ///
\83n
\81[
\83g
\83r
\81[
\83g
\91\97\90M
\8e\9e\82Ì
\83R
\81[
\83\8b\83o
\83b
\83N
155 VOID OnHeartBeat(NicoLiveHeartBeat_P heartBeat);
159 ///
\90Ø
\92f
\8e\9e\82Ì
\83R
\81[
\83\8b\83o
\83b
\83N
165 friend CSubLiveNoComboBox;
168 typedef CFrameWindowImpl<CNliteMainFrame> baseWindow;
170 //
\83E
\83B
\83\93\83h
\83E
\83N
\83\89\83X
\96¼
\81A
\8b¤
\92Ê
\83\8a\83\
\81[
\83XID
\81A
\83X
\83^
\83C
\83\8b\81A
\94w
\8ci
\90F
\82ð
\93o
\98^
171 DECLARE_FRAME_WND_CLASS(NLITE_MAINWINDOW, IDC_NLITE)
174 CCommentView commentView; //
\83R
\83\81\83\93\83g
\95\
\8e¦
\83E
\83B
\83\93\83h
\83E
175 CStatusBarCtrl statusBar; //
\83X
\83e
\81[
\83^
\83X
\83o
\81[
176 CLiveUserData userData; //
\83C
\83x
\83\93\83g
\83n
\83\93\83h
\83\89\97p
\83N
\83\89\83X
177 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)
178 CCommentWriteWindow commentWriteWindow; //
\83R
\83\81\83\93\83g
\8f\91\82«
\8d\9e\82Ý
\97p
\83N
\83\89\83X
179 CTabCtrl tabctrl; //
\83^
\83u
\83R
\83\93\83g
\83\8d\81[
\83\8b
180 HFONT hTabFont; //
\83^
\83u
\83E
\83B
\83\93\83h
\83E
\97p
\82Ì
\83t
\83H
\83\93\83g
181 CComboBoxEx lvNoCombo; //
\90¶
\95ú
\91\97\94Ô
\8d\86\93ü
\97Í
\97p
\83R
\83\93\83{
\83{
\83b
\83N
\83X
182 INT_PTR statusBarHeight; //
\83X
\83e
\81[
\83^
\83X
\83o
\81[
\82Ì
\8d\82\82³
183 INT_PTR toolBarHeight; //
\83c
\81[
\83\8b\83o
\81[
\82Ì
\8d\82\82³
184 CNicoVideoAuth nicoVideoAuth; //
\83j
\83R
\83j
\83R
\93®
\89æ
\94F
\8fØ
\97p
\83I
\83u
\83W
\83F
\83N
\83g
185 CNicoLiveStream nicoLiveStream; //
\83j
\83R
\83j
\83R
\90¶
\95ú
\91\97\83I
\83u
\83W
\83F
\83N
\83g
186 CMultiPaneStatusBarCtrl m_hStatusBar; //
\83}
\83\8b\83`
\83y
\83C
\83\93\83X
\83e
\81[
\83^
\83X
\83o
\81[
187 CProgressBarCtrl m_progresBar; //
\83v
\83\8d\83O
\83\8c\83X
\83o
\81[
191 //
\83\81\83b
\83Z
\81[
\83W
\83t
\83B
\83\8b\83^
\8f\88\97\9d
192 virtual BOOL PreTranslateMessage(MSG* pMsg);
194 //
\83A
\83C
\83h
\83\8b\8f\88\97\9d
195 virtual BOOL OnIdle();
203 ///
\83R
\83\93\83X
\83g
\83\89\83N
\83^
209 ///
\83f
\83X
\83g
\83\89\83N
\83^
215 BEGIN_UPDATE_UI_MAP(CNliteMainFrame)
216 //
\83G
\83\93\83g
\83\8a\82È
\82µ
219 //
\83\81\83b
\83Z
\81[
\83W
\83}
\83b
\83v
220 BEGIN_MSG_MAP_EX(CNliteMainFrame)
221 MSG_WM_CREATE(OnCreate)
222 MSG_WM_CLOSE(OnClose)
223 MSG_WM_DESTROY(OnDestroy)
224 MESSAGE_HANDLER(WM_SIZE,OnSize)
225 MSG_WM_SIZING(OnSizing)
226 MESSAGE_HANDLER(WM_SETCURSOR,OnSetCursor)
227 COMMAND_ID_HANDLER_EX(IDM_EXIT, OnMenuExit)
228 COMMAND_ID_HANDLER_EX(IDM_ABOUT,OnMenuAbount)
229 COMMAND_ID_HANDLER_EX(IDM_COOKIE,OnCookie)
230 COMMAND_ID_HANDLER_EX(IDM_VIEW_PREFERENCE,OnViewPreference)
231 COMMAND_CODE_HANDLER_EX(CBN_SELCHANGE,OnCbSelChange)
232 NOTIFY_HANDLER(ATL_IDW_TOOLBAR,RBN_HEIGHTCHANGE,OnRbnHeightChange)
233 // CFrameWindowImpl
\83N
\83\89\83X
\82Ö
\83`
\83F
\81[
\83\93
234 CHAIN_MSG_MAP(CFrameWindowImpl<CNliteMainFrame>)
239 ///
\8f\89\8aú
\89»
\8f\88\97\9d
241 VOID Initialize(LPCTSTR localAppDataPath);
244 ///
\8fI
\97¹
\8f\88\97\9d
250 ///
\97á
\8aO
\94
\90¶
\8e\9e\82Ì
\8f\88\97\9d
257 ///
\83E
\83B
\83\93\83h
\83E
\82ð
\95Â
\82¶
\82é
\82Æ
\82«
\82Ì
\8f\88\97\9d
262 ///
\83E
\83B
\83\93\83h
\83E
\94j
\8aü
\8e\9e\82Ì
\8f\88\97\9d
267 ///
\83c
\81[
\83\8b\83o
\81[
\8d\82\82³
\95Ï
\8dX
269 LRESULT OnRbnHeightChange(INT_PTR wParam,LPNMHDR lParam,BOOL &bHandled);
273 ///
\83T
\83C
\83Y
\95Ï
\8dX
\92\86\8f\88\97\9d
275 VOID OnSizing(UINT wParam,LPRECT lParam);
278 ///
\83T
\83C
\83Y
\95Ï
\8dX
\8cã
280 LRESULT OnSize(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL& bHandled);
284 ///
\8eq
\83E
\83B
\83\93\83h
\83E
\83T
\83C
\83Y
\95Ï
\8dX
\8f\88\97\9d
286 VOID ChangeSize(const SIZE& client);
289 ///
\83R
\83\93\83{
\83{
\83b
\83N
\83X
\82Ì
\91I
\91ð
\8d\80\96Ú
\82ª
\95Ï
\8dX
\82³
\82ê
\82½
291 LRESULT OnCbSelChange(UINT hiWparam,int loWparam,HWND lParam);
294 ///
\83E
\83B
\83\93\83h
\83E
\8dì
\90¬
\8e\9e\82Ì
\8f\88\97\9d
296 LRESULT OnCreate(LPCREATESTRUCT lpcs);
300 ///
\83j
\83R
\90¶
\95ú
\91\97\82É
\90Ú
\91±
302 BOOL ConnectNicoLive(LPCTSTR liveNo);
306 ///
\83}
\83E
\83X
\83J
\81[
\83\
\83\8b\95Ï
\8dX
\8f\88\97\9d
308 LRESULT OnSetCursor(LRESULT msg,WPARAM wParam,LPARAM lParam,BOOL &bHandled);
311 //
\83\81\83j
\83\85\81[
\82©
\82ç
\83t
\83@
\83C
\83\8b\82ð
\8fI
\97¹
\82ð
\91I
\91ð
312 VOID OnMenuExit(UINT uNotifyCode, int nID, HWND hWndCtl);
314 //
\83\81\83j
\83\85\81[
\82Ì
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\83o
\81[
\83W
\83\87\83\93\8fî
\95ñ
\95\
\8e¦
315 VOID OnMenuAbount(UINT uNotifyCode,int nID,HWND hWndCtl);
317 //
\83N
\83b
\83L
\81[
\82Ì
\90Ý
\92è
318 VOID OnCookie(UINT uNotifyCode,int nID,HWND hWndCtl);
320 //
\83r
\83\85\81[
\83A
\90Ý
\92è
321 VOID OnViewPreference(UINT uNotifyCode,int nID,HWND hWndCtl);
324 ///CNicoLiveStream
\82Ì
\83R
\81[
\83\8b\83o
\83b
\83N
\97p
\8aÖ
\90\94
326 static NLIB_RESULT LiveCallBack(NICOLIVE_EVENT eventType,NicoLiveStream_P pNicoLiveStream,LPVOID option,NICOLIVE_PARAM param1,NICOLIVE_PARAM param2);
330 ///
\90Ú
\91±
\83X
\83\8c\83b
\83h
332 static VOID ConnectingThread(LPVOID userData);