7 const static LPCTSTR NLITE_MAINWINDOW = TEXT("nlite");
14 CCommentView &commentView;
17 CLiveUserData(CCommentView& cv):commentView(cv){}
23 class CNicoLiveStream{
26 NicoLiveStream_P nicoLiveStream;
30 :nicoLiveStream(NicoLiveStream_new())
35 NicoLiveStream_delete(&nicoLiveStream);
41 VOID Connect(CLiveUserData &userData,CNicoVideoAuth &nicoVideoAuth,LPCTSTR url){
45 rslt = NicoLiveStream_connect(nicoLiveStream,nicoVideoAuth.GetAuth(),url,LiveCallBack,&userData);
47 if(rslt != NLIB_ERR_OK){
49 throw NLIBException(rslt);
56 NicoLiveStream_disConnect(nicoLiveStream);
59 VOID SendChat(LPCTSTR chatBuf,std::vector<LPCTSTR> mails,std::vector<LPCTSTR> extends){
61 mails.insert( mails.end(),(LPCTSTR)NULL);
62 extends.insert(extends.end(),(LPCTSTR)NULL);
63 rslt = NicoLiveStream_sendChat(nicoLiveStream,chatBuf,&mails[0],&extends[0]);
65 if(rslt != NLIB_ERR_OK){
66 throw NLIBException(rslt);
70 static NLIB_RESULT LiveCallBack(NICOLIVE_EVENT eventType,NicoLiveStream_P pNicoLiveStream,LPVOID option,NICOLIVE_PARAM param1,NICOLIVE_PARAM param2);
75 class CNliteMainFrame : public CFrameWindowImpl<CNliteMainFrame>,
76 public CUpdateUI<CNliteMainFrame>,public CMessageFilter, public CIdleHandler
80 typedef CFrameWindowImpl<CNliteMainFrame> baseWindow;
82 //
\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^
83 DECLARE_FRAME_WND_CLASS_EX(NLITE_MAINWINDOW, IDC_NLITE,CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS, COLOR_WINDOW)
84 //DECLARE_FRAME_WND_CLASS_EX(NLITE_MAINWINDOW, IDC_NLITE,CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS, COLOR_WINDOW)
85 //DECLARE_FRAME_WND_CLASS(NULL,IDC_NLITE);
87 CCommentView commentView;
88 CNicoLiveStream nicoLiveStream;
89 CNicoVideoAuth nicoVideoAuth;
90 CStatusBarCtrl statusBar;
91 CLiveUserData userData;
93 Property nliteProperty;
96 INT_PTR statusBarHeight;
97 INT_PTR toolBarHeight;
100 //
\83\81\83b
\83Z
\81[
\83W
\83t
\83B
\83\8b\83^
\8f\88\97\9d
101 virtual BOOL PreTranslateMessage(MSG* pMsg){
102 //
\8aî
\92ê
\83N
\83\89\83X
\82ÌPreTranslateMessage
\82ð
\8cÄ
\82Ñ
\8fo
\82·
103 return CFrameWindowImpl<CNliteMainFrame>::PreTranslateMessage(pMsg);
106 //
\83A
\83C
\83h
\83\8b\8f\88\97\9d
107 virtual BOOL OnIdle(){
115 :userData(commentView),
121 lf.lfCharSet = SHIFTJIS_CHARSET;
122 hTabFont = CreateFontIndirect(&lf);
128 DeleteObject(hTabFont);
132 BEGIN_UPDATE_UI_MAP(CNliteMainFrame)
133 //
\83G
\83\93\83g
\83\8a\82È
\82µ
136 //
\83\81\83b
\83Z
\81[
\83W
\83}
\83b
\83v
137 BEGIN_MSG_MAP_EX(CNliteMainFrame)
138 MSG_WM_CREATE(OnCreate)
139 MSG_WM_DESTROY(OnDestroy)
140 MESSAGE_HANDLER(WM_SIZING,OnSizing)
141 MESSAGE_HANDLER(WM_SIZE,OnSize)
142 MESSAGE_HANDLER_EX(WM_ERASEBKGND,OnErasekgnd);
143 COMMAND_ID_HANDLER_EX(IDM_EXIT, OnMenuExit)
144 COMMAND_ID_HANDLER_EX(IDM_ABOUT,OnMenuAbount)
145 NOTIFY_HANDLER(ATL_IDW_TOOLBAR,RBN_HEIGHTCHANGE,OnRbnHeightChange)
146 // CFrameWindowImpl
\83N
\83\89\83X
\82Ö
\83`
\83F
\81[
\83\93
147 // CHAIN_MSG_MAP(CUpdateUI<CNliteMainFrame>)
148 CHAIN_MSG_MAP(CFrameWindowImpl<CNliteMainFrame>)
151 //
\83T
\83C
\83Y
\95Ï
\8dX
\92\86
152 LRESULT OnSizing(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL& bHandled){
156 GetClientRect(&client);
158 ChangeSize( _WTYPES_NS::CSize(client.right - client.left,client.bottom - client.top));
168 //
\83`
\83\89\83c
\83L
\82ð
\82È
\82
\82·
169 LRESULT OnErasekgnd(UINT uMsg,WPARAM wParam,LPARAM lParam){
175 //
\83c
\81[
\83\8b\83o
\81[
\8d\82\82³
\95Ï
\8dX
176 LRESULT OnRbnHeightChange(INT_PTR wParam,LPNMHDR lParam,BOOL &bHandled){
179 ::GetClientRect(m_hWndToolBar,&toolbarRect);
180 toolBarHeight = toolbarRect.bottom - toolbarRect.top;
183 GetClientRect(&client);
185 ChangeSize( _WTYPES_NS::CSize(client.right - client.left,client.bottom - client.top));
193 //
\83T
\83C
\83Y
\95Ï
\8dX
\8cã
194 LRESULT OnSize(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL& bHandled){
198 clientSize.cx = LOWORD(lParam);
199 clientSize.cy = HIWORD(lParam);
200 ChangeSize(clientSize);
209 VOID ChangeSize(const SIZE& client);
212 LRESULT OnCreate(LPCREATESTRUCT lpcs);
218 commentView.DestroyWindow();
223 //
\83\81\83j
\83\85\81[
\82©
\82ç
\83t
\83@
\83C
\83\8b\82ð
\8fI
\97¹
\82ð
\91I
\91ð
224 void OnMenuExit(UINT uNotifyCode, int nID, HWND hWndCtl){
225 PostMessage(WM_CLOSE);
228 //
\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¦
229 void OnMenuAbount(UINT uNotifyCode,int nID,HWND hWndCtl){