Changeset 24 in chevmsgr
- Timestamp:
- 11/29/15 01:44:22 (8 years ago)
- Location:
- trunk
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/msg.cpp
r20 r24 134 134 } 135 135 136 std::string Request::tell(const std::string & sessid, const std::string & message, const intsensitive) const136 std::string Request::tell(const std::string & sessid, const std::string & message, const bool sensitive) const 137 137 { 138 138 DECLARE_TEMPLATE_OBJECT(obj, ProtocolType::TELL); -
trunk/msg.hpp
r20 r24 121 121 std::string openSession(const std::vector<std::string> & idList) const; 122 122 123 std::string tell(const std::string & sessid, const std::string & message, const intsensitive) const;123 std::string tell(const std::string & sessid, const std::string & message, const bool sensitive) const; 124 124 125 125 std::string getFriendList() const; -
trunk/msgclnt.cpp
r22 r24 72 72 73 73 c.sessid = message.get<std::string>(ProtocolType::SESSION_ID); 74 c.sensitive = message.get< int>(ProtocolType::SENSITIVE);74 c.sensitive = message.get<bool>(ProtocolType::SENSITIVE); 75 75 76 76 c.from = message.get<std::string>(ProtocolType::FROM); -
trunk/msgclnt.h
r18 r24 15 15 std::string sessid; 16 16 std::string message; 17 intsensitive;17 bool sensitive; 18 18 19 19 // only for listen -
trunk/msvc14/ChevMsgrClient_MFC/ChevMsgrClient_MFC.h
r14 r24 10 10 11 11 #include "resource.h" // ÁÖ ±âÈ£ÀÔ´Ï´Ù. 12 13 12 14 13 // CChevMsgrClient_MFCApp: -
trunk/msvc14/ChevMsgrClient_MFC/ChevMsgrClient_MFC.vcxproj
r14 r24 31 31 <PlatformToolset>v140</PlatformToolset> 32 32 <CharacterSet>Unicode</CharacterSet> 33 <UseOfMfc> Static</UseOfMfc>33 <UseOfMfc>Dynamic</UseOfMfc> 34 34 </PropertyGroup> 35 35 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> … … 39 39 <WholeProgramOptimization>true</WholeProgramOptimization> 40 40 <CharacterSet>Unicode</CharacterSet> 41 <UseOfMfc> Static</UseOfMfc>41 <UseOfMfc>Dynamic</UseOfMfc> 42 42 </PropertyGroup> 43 43 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> … … 46 46 <PlatformToolset>v140</PlatformToolset> 47 47 <CharacterSet>Unicode</CharacterSet> 48 <UseOfMfc> Static</UseOfMfc>48 <UseOfMfc>Dynamic</UseOfMfc> 49 49 </PropertyGroup> 50 50 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> … … 54 54 <WholeProgramOptimization>true</WholeProgramOptimization> 55 55 <CharacterSet>Unicode</CharacterSet> 56 <UseOfMfc> Static</UseOfMfc>56 <UseOfMfc>Dynamic</UseOfMfc> 57 57 </PropertyGroup> 58 58 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> … … 92 92 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> 93 93 <ClCompile> 94 <PrecompiledHeader> Use</PrecompiledHeader>94 <PrecompiledHeader>NotUsing</PrecompiledHeader> 95 95 <WarningLevel>Level3</WarningLevel> 96 96 <Optimization>Disabled</Optimization> … … 100 100 <SubSystem>Windows</SubSystem> 101 101 <GenerateDebugInformation>true</GenerateDebugInformation> 102 <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> 103 <IgnoreAllDefaultLibraries /> 104 <IgnoreSpecificDefaultLibraries> 105 </IgnoreSpecificDefaultLibraries> 102 106 </Link> 103 107 <Midl> … … 114 118 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> 115 119 <ClCompile> 116 <PrecompiledHeader> Use</PrecompiledHeader>120 <PrecompiledHeader>NotUsing</PrecompiledHeader> 117 121 <WarningLevel>Level3</WarningLevel> 118 122 <Optimization>Disabled</Optimization> … … 122 126 <SubSystem>Windows</SubSystem> 123 127 <GenerateDebugInformation>true</GenerateDebugInformation> 128 <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> 129 <IgnoreAllDefaultLibraries> 130 </IgnoreAllDefaultLibraries> 131 <IgnoreSpecificDefaultLibraries> 132 </IgnoreSpecificDefaultLibraries> 124 133 </Link> 125 134 <Midl> … … 137 146 <ClCompile> 138 147 <WarningLevel>Level3</WarningLevel> 139 <PrecompiledHeader> Use</PrecompiledHeader>148 <PrecompiledHeader>NotUsing</PrecompiledHeader> 140 149 <Optimization>MaxSpeed</Optimization> 141 150 <FunctionLevelLinking>true</FunctionLevelLinking> … … 148 157 <EnableCOMDATFolding>true</EnableCOMDATFolding> 149 158 <OptimizeReferences>true</OptimizeReferences> 159 <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> 160 <IgnoreAllDefaultLibraries> 161 </IgnoreAllDefaultLibraries> 162 <IgnoreSpecificDefaultLibraries> 163 </IgnoreSpecificDefaultLibraries> 150 164 </Link> 151 165 <Midl> … … 163 177 <ClCompile> 164 178 <WarningLevel>Level3</WarningLevel> 165 <PrecompiledHeader> Use</PrecompiledHeader>179 <PrecompiledHeader>NotUsing</PrecompiledHeader> 166 180 <Optimization>MaxSpeed</Optimization> 167 181 <FunctionLevelLinking>true</FunctionLevelLinking> … … 174 188 <EnableCOMDATFolding>true</EnableCOMDATFolding> 175 189 <OptimizeReferences>true</OptimizeReferences> 190 <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> 191 <IgnoreAllDefaultLibraries> 192 </IgnoreAllDefaultLibraries> 193 <IgnoreSpecificDefaultLibraries> 194 </IgnoreSpecificDefaultLibraries> 176 195 </Link> 177 196 <Midl> … … 190 209 </ItemGroup> 191 210 <ItemGroup> 211 <ClInclude Include="..\..\aria.h" /> 212 <ClInclude Include="..\..\bit.h" /> 213 <ClInclude Include="..\..\cf\dirent.win32.hpp" /> 214 <ClInclude Include="..\..\cf\test.hpp" /> 215 <ClInclude Include="..\..\crypto.h" /> 216 <ClInclude Include="..\..\json.h" /> 217 <ClInclude Include="..\..\KISA_SHA256.h" /> 218 <ClInclude Include="..\..\msg.hpp" /> 219 <ClInclude Include="..\..\msgclnt.h" /> 192 220 <ClInclude Include="ChevMsgrClient_MFC.h" /> 193 221 <ClInclude Include="ChevMsgrClient_MFCDlg.h" /> … … 200 228 </ItemGroup> 201 229 <ItemGroup> 230 <ClCompile Include="..\..\aria.c" /> 231 <ClCompile Include="..\..\bit.c" /> 232 <ClCompile Include="..\..\cf\bin.cpp" /> 233 <ClCompile Include="..\..\cf\codec.cpp" /> 234 <ClCompile Include="..\..\cf\exception.cpp" /> 235 <ClCompile Include="..\..\cf\file.cpp" /> 236 <ClCompile Include="..\..\cf\jni.cpp" /> 237 <ClCompile Include="..\..\cf\logger.cpp" /> 238 <ClCompile Include="..\..\cf\macaddr.cpp" /> 239 <ClCompile Include="..\..\cf\memory.cpp" /> 240 <ClCompile Include="..\..\cf\network.cpp" /> 241 <ClCompile Include="..\..\cf\task.cpp" /> 242 <ClCompile Include="..\..\cf\util.cpp" /> 243 <ClCompile Include="..\..\crypto.cpp" /> 244 <ClCompile Include="..\..\json.cpp" /> 245 <ClCompile Include="..\..\KISA_SHA256.c" /> 246 <ClCompile Include="..\..\msg.cpp" /> 247 <ClCompile Include="..\..\msgclnt.cpp" /> 202 248 <ClCompile Include="ChevMsgrClient_MFC.cpp" /> 203 249 <ClCompile Include="ChevMsgrClient_MFCDlg.cpp" /> -
trunk/msvc14/ChevMsgrClient_MFC/ChevMsgrClient_MFC.vcxproj.filters
r14 r24 13 13 <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> 14 14 <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> 15 </Filter> 16 <Filter Include="crypto"> 17 <UniqueIdentifier>{fb23a611-8de0-4437-9b1a-da9c635afe2a}</UniqueIdentifier> 18 </Filter> 19 <Filter Include="client"> 20 <UniqueIdentifier>{172b45f3-78cf-4f01-ac8f-effbdbb0b9cf}</UniqueIdentifier> 21 </Filter> 22 <Filter Include="cf++"> 23 <UniqueIdentifier>{22e7217c-1e34-4551-8438-9ca7a1f18634}</UniqueIdentifier> 15 24 </Filter> 16 25 </ItemGroup> … … 43 52 <Filter>헤더 파일</Filter> 44 53 </ClInclude> 54 <ClInclude Include="..\..\cf\dirent.win32.hpp"> 55 <Filter>cf++</Filter> 56 </ClInclude> 57 <ClInclude Include="..\..\cf\test.hpp"> 58 <Filter>cf++</Filter> 59 </ClInclude> 60 <ClInclude Include="..\..\json.h"> 61 <Filter>client</Filter> 62 </ClInclude> 63 <ClInclude Include="..\..\msg.hpp"> 64 <Filter>client</Filter> 65 </ClInclude> 66 <ClInclude Include="..\..\msgclnt.h"> 67 <Filter>client</Filter> 68 </ClInclude> 69 <ClInclude Include="..\..\aria.h"> 70 <Filter>crypto</Filter> 71 </ClInclude> 72 <ClInclude Include="..\..\bit.h"> 73 <Filter>crypto</Filter> 74 </ClInclude> 75 <ClInclude Include="..\..\crypto.h"> 76 <Filter>crypto</Filter> 77 </ClInclude> 78 <ClInclude Include="..\..\KISA_SHA256.h"> 79 <Filter>crypto</Filter> 80 </ClInclude> 45 81 </ItemGroup> 46 82 <ItemGroup> … … 63 99 <Filter>소스 파일</Filter> 64 100 </ClCompile> 101 <ClCompile Include="..\..\cf\bin.cpp"> 102 <Filter>cf++</Filter> 103 </ClCompile> 104 <ClCompile Include="..\..\cf\codec.cpp"> 105 <Filter>cf++</Filter> 106 </ClCompile> 107 <ClCompile Include="..\..\cf\exception.cpp"> 108 <Filter>cf++</Filter> 109 </ClCompile> 110 <ClCompile Include="..\..\cf\file.cpp"> 111 <Filter>cf++</Filter> 112 </ClCompile> 113 <ClCompile Include="..\..\cf\jni.cpp"> 114 <Filter>cf++</Filter> 115 </ClCompile> 116 <ClCompile Include="..\..\cf\logger.cpp"> 117 <Filter>cf++</Filter> 118 </ClCompile> 119 <ClCompile Include="..\..\cf\macaddr.cpp"> 120 <Filter>cf++</Filter> 121 </ClCompile> 122 <ClCompile Include="..\..\cf\memory.cpp"> 123 <Filter>cf++</Filter> 124 </ClCompile> 125 <ClCompile Include="..\..\cf\network.cpp"> 126 <Filter>cf++</Filter> 127 </ClCompile> 128 <ClCompile Include="..\..\cf\task.cpp"> 129 <Filter>cf++</Filter> 130 </ClCompile> 131 <ClCompile Include="..\..\cf\util.cpp"> 132 <Filter>cf++</Filter> 133 </ClCompile> 134 <ClCompile Include="..\..\json.cpp"> 135 <Filter>client</Filter> 136 </ClCompile> 137 <ClCompile Include="..\..\msg.cpp"> 138 <Filter>client</Filter> 139 </ClCompile> 140 <ClCompile Include="..\..\msgclnt.cpp"> 141 <Filter>client</Filter> 142 </ClCompile> 143 <ClCompile Include="..\..\aria.c"> 144 <Filter>crypto</Filter> 145 </ClCompile> 146 <ClCompile Include="..\..\bit.c"> 147 <Filter>crypto</Filter> 148 </ClCompile> 149 <ClCompile Include="..\..\crypto.cpp"> 150 <Filter>crypto</Filter> 151 </ClCompile> 152 <ClCompile Include="..\..\KISA_SHA256.c"> 153 <Filter>crypto</Filter> 154 </ClCompile> 65 155 </ItemGroup> 66 156 <ItemGroup> -
trunk/msvc14/ChevMsgrClient_MFC/ChevMsgrClient_MFCDlg.cpp
r14 r24 7 7 #include "ChevMsgrClient_MFCDlg.h" 8 8 #include "afxdialogex.h" 9 #include <fstream> 9 10 10 11 #include "LoginDlg.h" … … 16 17 #endif 17 18 19 int cb_listen(SConversation & chat); 20 int cb_opensession(SOpenSession & opensession); 21 22 CChevMsgrClient_MFCDlg * gDlg = NULL; 18 23 19 24 // ÀÀ¿ë ÇÁ·Î±×·¥ Á¤º¸¿¡ »ç¿ëµÇ´Â CAboutDlg ´ëÈ »óÀÚÀÔ´Ï´Ù. … … 56 61 CChevMsgrClient_MFCDlg::CChevMsgrClient_MFCDlg(CWnd* pParent /*=NULL*/) 57 62 : CDialogEx(IDD_CHEVMSGRCLIENT_MFC_DIALOG, pParent) 63 , mCheckedSensitive(FALSE) 58 64 { 59 65 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); 66 gDlg = this; 60 67 } 61 68 … … 63 70 { 64 71 CDialogEx::DoDataExchange(pDX); 72 DDX_Control(pDX, IDC_LIST_CONVERSATION, mChatListBox); 73 DDX_Control(pDX, IDC_LIST_FRIENDS, mFriendListBox); 74 DDX_Check(pDX, IDC_CHECK_SENSITIVE, mCheckedSensitive); 65 75 } 66 76 … … 69 79 ON_WM_PAINT() 70 80 ON_WM_QUERYDRAGICON() 81 ON_BN_CLICKED(IDC_BTN_SEND, &CChevMsgrClient_MFCDlg::OnBnClickedBtnSend) 71 82 END_MESSAGE_MAP() 72 83 … … 106 117 107 118 CLoginDlg loginDlg; 108 CSMSDlg smsDlg; 109 CRegisterDlg regDlg; 110 119 loginDlg.chev = &this->chev; 111 120 loginDlg.DoModal(); 121 122 std::ifstream f("cnct2srv.ini"); 123 std::string ip; 124 std::string port; 125 126 std::getline(f, ip); 127 std::getline(f, port); 128 129 if (!chev.connect(ip, atoi(port.c_str()))) 130 { 131 AfxMessageBox(_T("connect error")); 132 PostQuitMessage(1); 133 } 134 135 SCallback cb; 136 137 cb.onListen = cb_listen; 138 cb.onOpenSession = cb_opensession; 139 140 chev.listen(cb); 141 142 //this->mFriendListBox.InsertString(this->mFriendListBox.GetCount(), Ä£±¸¾ÆÀ̵𸮽ºÆ®); 112 143 113 144 return TRUE; // Æ÷Ä¿½º¸¦ ÄÁÆ®·Ñ¿¡ ¼³Á¤ÇÏÁö ¾ÊÀ¸¸é TRUE¸¦ ¹ÝȯÇÕ´Ï´Ù. … … 163 194 } 164 195 196 int cb_listen(SConversation & chat) 197 { 198 //gDlg->mChatListBox.InsertString(gDlg->mListBox.GetCount(), ); 199 //gDlg->mChatListBox.InsertString(gDlg->mListBox.GetCount(), ); 200 201 return 0; 202 } 203 204 int cb_opensession(SOpenSession & opensession) 205 { 206 return 0; 207 } 208 209 void CChevMsgrClient_MFCDlg::OnBnClickedBtnSend() 210 { 211 // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. 212 CString chat; 213 CString sender; 214 SConversation conversation; 215 216 mFriendListBox.GetText(mFriendListBox.GetCurSel(), sender); 217 conversation.from = wstr2str((std::wstring)sender); 218 219 GetDlgItemText(IDC_EDIT_INPUT, chat); 220 conversation.message = wstr2str((std::wstring)chat); 221 222 UpdateData(TRUE); 223 conversation.sensitive = mCheckedSensitive ? true : false; 224 225 // Ä£±¸ ¼±ÅÃµÈ ¾Öµé ¸®½ºÆ®·Î ³Ñ°Ü¹ÞÀ» °Í. 226 //conversation.sessid = chev.getSessionID( ´ëȹæ ÃÊ´ëÇÑ ¾ÆÀ̵𸮽ºÆ® ); 227 228 chev.tell(conversation); 229 } -
trunk/msvc14/ChevMsgrClient_MFC/ChevMsgrClient_MFCDlg.h
r4 r24 4 4 5 5 #pragma once 6 6 #include "msgclnt.h" 7 #include "afxwin.h" 7 8 8 9 // CChevMsgrClient_MFCDlg ´ëÈ »óÀÚ … … 12 13 public: 13 14 CChevMsgrClient_MFCDlg(CWnd* pParent = NULL); // Ç¥ÁØ »ý¼ºÀÚÀÔ´Ï´Ù. 15 chev chev; 14 16 15 17 // ´ëÈ »óÀÚ µ¥ÀÌÅÍÀÔ´Ï´Ù. … … 20 22 protected: 21 23 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV Áö¿øÀÔ´Ï´Ù. 22 24 23 25 24 26 // ±¸ÇöÀÔ´Ï´Ù. … … 31 33 afx_msg void OnPaint(); 32 34 afx_msg HCURSOR OnQueryDragIcon(); 33 DECLARE_MESSAGE_MAP() 35 DECLARE_MESSAGE_MAP(); 36 public: 37 CListBox mChatListBox; 38 CListBox mFriendListBox; 39 BOOL mCheckedSensitive; 40 afx_msg void OnBnClickedBtnSend(); 34 41 }; -
trunk/msvc14/ChevMsgrClient_MFC/LoginDlg.cpp
r14 r24 6 6 #include "LoginDlg.h" 7 7 #include "afxdialogex.h" 8 #include "RegisterDlg.h" 8 9 9 10 … … 29 30 30 31 BEGIN_MESSAGE_MAP(CLoginDlg, CDialogEx) 32 ON_BN_CLICKED(IDC_BTN_LOGIN_REGISTER, &CLoginDlg::OnBnClickedBtnLoginRegister) 31 33 END_MESSAGE_MAP() 32 34 33 35 34 36 // CLoginDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. 37 38 39 void CLoginDlg::OnBnClickedBtnLoginRegister() 40 { 41 // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. 42 CRegisterDlg regiDlg; 43 44 regiDlg.DoModal(); 45 } -
trunk/msvc14/ChevMsgrClient_MFC/LoginDlg.h
r14 r24 1 1 #pragma once 2 2 #include "msgclnt.h" 3 3 4 4 // CLoginDlg ´ëÈ »óÀÚÀÔ´Ï´Ù. … … 11 11 CLoginDlg(CWnd* pParent = NULL); // Ç¥ÁØ »ý¼ºÀÚÀÔ´Ï´Ù. 12 12 virtual ~CLoginDlg(); 13 chev *chev; 13 14 14 15 // ´ëÈ »óÀÚ µ¥ÀÌÅÍÀÔ´Ï´Ù. … … 21 22 22 23 DECLARE_MESSAGE_MAP() 24 public: 25 afx_msg void OnBnClickedBtnLoginRegister(); 23 26 }; -
trunk/msvc14/ChevMsgrClient_MFC/RegisterDlg.cpp
r14 r24 6 6 #include "RegisterDlg.h" 7 7 #include "afxdialogex.h" 8 #include "SMSDlg.h" 8 9 9 10 … … 29 30 30 31 BEGIN_MESSAGE_MAP(CRegisterDlg, CDialogEx) 32 ON_BN_CLICKED(IDC_BTN_REGI, &CRegisterDlg::OnBnClickedBtnRegi) 31 33 END_MESSAGE_MAP() 32 34 33 35 34 36 // CRegisterDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. 37 38 void CRegisterDlg::OnBnClickedBtnRegi() 39 { 40 // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. 41 CSMSDlg smsDlg; 42 43 smsDlg.DoModal(); 44 } -
trunk/msvc14/ChevMsgrClient_MFC/RegisterDlg.h
r14 r24 21 21 22 22 DECLARE_MESSAGE_MAP() 23 public: 24 afx_msg void OnBnClickedBtnRegi(); 23 25 }; -
trunk/msvc14/ChevMsgrClient_MFC/SMSDlg.cpp
r14 r24 14 14 CSMSDlg::CSMSDlg(CWnd* pParent /*=NULL*/) 15 15 : CDialogEx(IDD_DIALOG_SMS, pParent) 16 , phone(_T("")) 17 , sms(_T("")) 16 18 { 17 19 … … 25 27 { 26 28 CDialogEx::DoDataExchange(pDX); 29 DDX_Text(pDX, IDC_EDIT_SMS_PHONE, phone); 30 DDX_Text(pDX, IDC_EDIT_SMS_SMS, sms); 27 31 } 28 32 29 33 30 34 BEGIN_MESSAGE_MAP(CSMSDlg, CDialogEx) 35 ON_BN_CLICKED(IDC_BTN_SEND_SMS, &CSMSDlg::OnBnClickedBtnSendSms) 36 ON_BN_CLICKED(IDC_BTN_REGI_SMS, &CSMSDlg::OnBnClickedBtnRegiSms) 31 37 END_MESSAGE_MAP() 32 38 33 39 34 40 // CSMSDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. 41 42 43 void CSMSDlg::OnBnClickedBtnSendSms() 44 { 45 // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. 46 GetDlgItemText(IDC_EDIT_SMS_PHONE, phone); 47 48 49 } 50 51 52 void CSMSDlg::OnBnClickedBtnRegiSms() 53 { 54 // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. 55 GetDlgItemText(IDC_EDIT_SMS_SMS, sms); 56 } -
trunk/msvc14/ChevMsgrClient_MFC/SMSDlg.h
r14 r24 21 21 22 22 DECLARE_MESSAGE_MAP() 23 public: 24 CString phone; 25 afx_msg void OnBnClickedBtnSendSms(); 26 afx_msg void OnBnClickedBtnRegiSms(); 27 CString sms; 23 28 };
Note:
See TracChangeset
for help on using the changeset viewer.