+ template <typename T>
+ struct CommentInfo{
+ LPCTSTR name;
+ T userData;
+ };
+
+ typedef CommentInfo<COLORREF> CommentColorInfo;
+ typedef CommentInfo<LPCTSTR> CommentSizeInfo;
+ typedef CommentInfo<LPCTSTR> CommentPosInfo;
+
+ class CNicoLiveStream;
+
+ ///
+ ///\88ê\94Ê\89ï\88õ\83R\83}\83\93\83h
+ ///
+ namespace generalUser{
+ ///
+ ///\88ê\94Ê\89ï\88õ\83R\83\81\83\93\83g\90F\83\8a\83X\83g
+ ///
+ extern const CommentColorInfo COMMENT_COLORLIST[];
+
+ ///
+ ///\88ê\94Ê\89ï\88õ\83T\83C\83Y\83R\83}\83\93\83h\83\8a\83X\83g
+ ///
+ extern const CommentSizeInfo COMMENT_SIZELIST[];
+
+ ///
+ ///\88ê\94Ê\89ï\88õ\83R\83\81\83\93\83g\88Ê\92u\83\8a\83X\83g
+ ///
+ extern const CommentPosInfo COMMENT_POSLIST[];
+
+ }
+
+ ///
+ ///\83v\83\8c\83~\83A\83\80\89ï\88õ\83R\83}\83\93\83h
+ ///
+ namespace premiumUser{
+ ///
+ ///\83v\83\8c\83~\83A\83\80\89ï\88õ\83R\83\81\83\93\83g\90F\83\8a\83X\83g
+ ///
+ extern const CommentColorInfo COMMENT_COLORLIST[];
+
+
+ ///
+ ///\83v\83\8c\83~\83A\83\80\89ï\88õ\83T\83C\83Y\83R\83}\83\93\83h\83\8a\83X\83g
+ ///
+ extern const CommentSizeInfo COMMENT_SIZELIST[];
+
+ ///
+ ///\83v\83\8c\83~\83A\83\80\89ï\88õ\83R\83\81\83\93\83g\88Ê\92u\83\8a\83X\83g
+ ///
+ extern const CommentPosInfo COMMENT_POSLIST[];
+
+ }
+
+
+ class CCommentWriteWindow;
+ class CSubChatEdit:public CWindowImpl<CSubChatEdit,CEdit>{
+ friend CCommentWriteWindow;
+
+
+ private:
+ CCommentWriteWindow &self;
+ CComAutoCriticalSection cs;
+ BOOL untilConnectingFlag;
+
+ public:
+ CSubChatEdit(CCommentWriteWindow &in_commentWriteWindow):self(in_commentWriteWindow){}
+
+
+ BEGIN_MSG_MAP_EX(CSubLiveNoComboBox)
+ MSG_WM_KEYDOWN(OnKeyDown)
+ END_MSG_MAP()
+
+ void OnKeyDown(TCHAR wParam, UINT upLParam,UINT loLParam);
+
+
+ VOID AgreeEnter();
+
+ static VOID EnterChatBox(LPVOID userData);
+ };
+