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[
188 CListenerSettingWindow listenerSettingWindow; //
\83\8a\83X
\83i
\81[
\90Ý
\92è
\83E
\83B
\83\93\83h
\83E
190 CComAutoCriticalSection lvNoBufCS; //
\90¶
\95ú
\91\97\94Ô
\8d\86\83N
\83\8a\83e
\83B
\83J
\83\8b\83Z
\83N
\83V
\83\87\83\93
191 CString lvNoBuffer; //
\90¶
\95ú
\91\97\94Ô
\8d\86\83o
\83b
\83t
\83@
193 //
\83\81\83b
\83Z
\81[
\83W
\83t
\83B
\83\8b\83^
\8f\88\97\9d
194 virtual BOOL PreTranslateMessage(MSG* pMsg);
196 //
\83A
\83C
\83h
\83\8b\8f\88\97\9d
197 virtual BOOL OnIdle();
205 ///
\83R
\83\93\83X
\83g
\83\89\83N
\83^
211 ///
\83f
\83X
\83g
\83\89\83N
\83^
217 BEGIN_UPDATE_UI_MAP(CNliteMainFrame)
218 //
\83G
\83\93\83g
\83\8a\82È
\82µ
221 //
\83\81\83b
\83Z
\81[
\83W
\83}
\83b
\83v
222 BEGIN_MSG_MAP_EX(CNliteMainFrame)
223 MSG_WM_CREATE(OnCreate)
224 MSG_WM_CLOSE(OnClose)
225 MSG_WM_DESTROY(OnDestroy)
226 MESSAGE_HANDLER(WM_SIZE,OnSize)
227 MSG_WM_SIZING(OnSizing)
228 MESSAGE_HANDLER(WM_SETCURSOR,OnSetCursor)
229 MESSAGE_HANDLER_EX(UM_CLICK_CHATNO,OnClickChatNo)
230 MESSAGE_HANDLER_EX(UM_UPDATEUI,OnUpDateUI)
231 MESSAGE_HANDLER_EX(UM_UNLOCK_LVNOBUFFER,OnUnlockLvNoBuffer)
232 MESSAGE_HANDLER_EX(UM_CLICK_USERNAME,OnClickUserName)
233 COMMAND_ID_HANDLER_EX(IDM_EXIT, OnMenuExit)
234 COMMAND_ID_HANDLER_EX(IDM_ABOUT,OnMenuAbount)
235 COMMAND_ID_HANDLER_EX(IDM_COOKIE,OnCookie)
236 COMMAND_ID_HANDLER_EX(IDM_VIEW_PREFERENCE,OnViewPreference)
237 COMMAND_CODE_HANDLER_EX(CBN_SELCHANGE,OnCbSelChange)
238 NOTIFY_HANDLER(ATL_IDW_TOOLBAR,RBN_HEIGHTCHANGE,OnRbnHeightChange)
239 // CFrameWindowImpl
\83N
\83\89\83X
\82Ö
\83`
\83F
\81[
\83\93
240 CHAIN_MSG_MAP(CFrameWindowImpl<CNliteMainFrame>)
245 ///
\8f\89\8aú
\89»
\8f\88\97\9d
247 VOID Initialize(LPCTSTR localAppDataPath);
250 ///
\8fI
\97¹
\8f\88\97\9d
256 ///
\97á
\8aO
\94
\90¶
\8e\9e\82Ì
\8f\88\97\9d
263 ///
\83E
\83B
\83\93\83h
\83E
\82ð
\95Â
\82¶
\82é
\82Æ
\82«
\82Ì
\8f\88\97\9d
268 ///
\83E
\83B
\83\93\83h
\83E
\94j
\8aü
\8e\9e\82Ì
\8f\88\97\9d
273 ///
\83c
\81[
\83\8b\83o
\81[
\8d\82\82³
\95Ï
\8dX
275 LRESULT OnRbnHeightChange(INT_PTR wParam,LPNMHDR lParam,BOOL &bHandled);
279 ///
\82±
\82Ì
\83E
\83B
\83\93\83h
\83E
\82ÌUI
\8dX
\90V
281 LRESULT OnUpDateUI(UINT uMsg,WPARAM wParam,LPARAM lParam);
284 ///
\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
286 LRESULT OnClickChatNo(UINT uMsg,WPARAM wParam,LPARAM lParam);
290 ///
\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
292 LRESULT OnClickUserName(UINT uMsg,WPARAM wParam,LPARAM lParam);
296 ///
\83T
\83C
\83Y
\95Ï
\8dX
\92\86\8f\88\97\9d
298 VOID OnSizing(UINT wParam,LPRECT lParam);
301 ///
\83T
\83C
\83Y
\95Ï
\8dX
\8cã
303 LRESULT OnSize(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL& bHandled);
307 ///
\8eq
\83E
\83B
\83\93\83h
\83E
\83T
\83C
\83Y
\95Ï
\8dX
\8f\88\97\9d
309 VOID ChangeSize(const SIZE& client);
312 ///
\83R
\83\93\83{
\83{
\83b
\83N
\83X
\82Ì
\91I
\91ð
\8d\80\96Ú
\82ª
\95Ï
\8dX
\82³
\82ê
\82½
314 LRESULT OnCbSelChange(UINT hiWparam,int loWparam,HWND lParam);
317 ///
\83E
\83B
\83\93\83h
\83E
\8dì
\90¬
\8e\9e\82Ì
\8f\88\97\9d
319 LRESULT OnCreate(LPCREATESTRUCT lpcs);
323 ///
\83j
\83R
\90¶
\95ú
\91\97\82É
\90Ú
\91±
325 BOOL ConnectNicoLive(LPCTSTR liveNo);
329 ///
\83}
\83E
\83X
\83J
\81[
\83\
\83\8b\95Ï
\8dX
\8f\88\97\9d
331 LRESULT OnSetCursor(LRESULT msg,WPARAM wParam,LPARAM lParam,BOOL &bHandled);
334 //
\83\81\83j
\83\85\81[
\82©
\82ç
\83t
\83@
\83C
\83\8b\82ð
\8fI
\97¹
\82ð
\91I
\91ð
335 VOID OnMenuExit(UINT uNotifyCode, int nID, HWND hWndCtl);
337 //
\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¦
338 VOID OnMenuAbount(UINT uNotifyCode,int nID,HWND hWndCtl);
340 //
\83N
\83b
\83L
\81[
\82Ì
\90Ý
\92è
341 VOID OnCookie(UINT uNotifyCode,int nID,HWND hWndCtl);
343 //
\83r
\83\85\81[
\83A
\90Ý
\92è
344 VOID OnViewPreference(UINT uNotifyCode,int nID,HWND hWndCtl);
347 ///
\90¶
\95ú
\91\97\94Ô
\8d\86\83o
\83b
\83t
\83@
\82Ì
\83\8d\83b
\83N
\82ð
\89ð
\8f\9c
349 LRESULT OnUnlockLvNoBuffer(UINT uMsg,WPARAM wParam,LPARAM lParam);
353 ///CNicoLiveStream
\82Ì
\83R
\81[
\83\8b\83o
\83b
\83N
\97p
\8aÖ
\90\94
355 static NLIB_RESULT LiveCallBack(NICOLIVE_EVENT eventType,NicoLiveStream_P pNicoLiveStream,LPVOID option,NICOLIVE_PARAM param1,NICOLIVE_PARAM param2);
359 ///
\90Ú
\91±
\83X
\83\8c\83b
\83h
361 static VOID ConnectingThread(LPVOID userData);