- Timestamp:
- Jan 10, 2014, 2:02:13 AM (10 years ago)
- Location:
- trunk/DirectShowSpy
- Files:
-
- 2 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/DirectShowSpy/AboutDialog.h
r196 r233 1 1 //////////////////////////////////////////////////////////// 2 // Copyright (C) Roman Ryltsov, 2008-201 12 // Copyright (C) Roman Ryltsov, 2008-2014 3 3 // Created by Roman Ryltsov roman@alax.info 4 4 … … 18 18 { 19 19 public: 20 21 20 enum { IDD = IDD_ABOUT }; 22 21 … … 36 35 public: 37 36 // CAboutDialog 37 static CFontHandle CreateTitleFont() throw() 38 { 39 CLogFont LogFont; 40 LogFont.lfHeight = -MulDiv(12, GetDeviceCaps(CClientDC(GetDesktopWindow()), LOGPIXELSY), 72); 41 LogFont.lfWeight = FW_BOLD; 42 LogFont.lfItalic = TRUE; 43 _tcsncpy_s(LogFont.lfFaceName, _countof(LogFont.lfFaceName), _T("Arial"), _TRUNCATE); 44 CFont Font; 45 _W(Font.CreateFontIndirect(&LogFont)); 46 return Font.Detach(); 47 } 48 static CFontHandle CreateDisclaimerFont() throw() 49 { 50 CLogFont LogFont; 51 LogFont.lfHeight = -MulDiv(7, GetDeviceCaps(CClientDC(GetDesktopWindow()), LOGPIXELSY), 72); 52 LogFont.lfWeight = FW_NORMAL; 53 _tcsncpy_s(LogFont.lfFaceName, _countof(LogFont.lfFaceName), _T("Lucida Console"), _TRUNCATE); 54 CFont Font; 55 _W(Font.CreateFontIndirect(&LogFont)); 56 return Font.Detach(); 57 } 38 58 CAboutDialog() throw() 39 59 { … … 49 69 { 50 70 CStatic(GetDlgItem(IDC_ABOUT_ICON)).SetIcon(AtlLoadIconImage(IDI_MODULE, LR_DEFAULTCOLOR, 48, 48)); 51 #pragma region Create and apply title font 71 #pragma region Title Font 72 m_TitleFont = CreateTitleFont(); 73 CStatic(GetDlgItem(IDC_ABOUT_TITLE)).SetFont(m_TitleFont); 74 #pragma endregion 75 #pragma region Disclaimer Font 52 76 { 53 CLogFont LogFont; 54 LogFont.lfHeight = -MulDiv(12, GetDeviceCaps(CClientDC(m_hWnd), LOGPIXELSY), 72); 55 LogFont.lfWeight = FW_BOLD; 56 LogFont.lfItalic = TRUE; 57 _tcsncpy_s(LogFont.lfFaceName, _countof(LogFont.lfFaceName), _T("Arial"), _TRUNCATE); 58 _W(m_TitleFont.CreateFontIndirect(&LogFont)); 59 CStatic(GetDlgItem(IDC_ABOUT_TITLE)).SetFont(m_TitleFont); 60 } 61 #pragma endregion 62 #pragma region Create and apply disclaimer font 63 { 64 CLogFont LogFont; 65 LogFont.lfHeight = -MulDiv(7, GetDeviceCaps(CClientDC(m_hWnd), LOGPIXELSY), 72); 66 LogFont.lfWeight = FW_NORMAL; 67 _tcsncpy_s(LogFont.lfFaceName, _countof(LogFont.lfFaceName), _T("Lucida Console"), _TRUNCATE); 68 _W(m_DisclaimerFont.CreateFontIndirect(&LogFont)); 77 m_DisclaimerFont = CreateDisclaimerFont(); 69 78 CStatic CopyrightWarningText = GetDlgItem(IDC_ABOUT_COPYRIGHTWARNING); 70 79 CopyrightWarningText.SetFont(m_DisclaimerFont); … … 89 98 } 90 99 #pragma endregion 91 #pragma region Update version text100 #pragma region Version Text 92 101 CStatic ProductVersionStatic = GetDlgItem(IDC_ABOUT_PRODUCTVERSION), FileVersionStatic = GetDlgItem(IDC_ABOUT_FILEVERSION); 93 102 CString sProductVersionFormat, sFileVersionFormat; … … 98 107 FileVersionStatic.SetWindowText(_VersionInfoHelper::GetVersionString(_VersionInfoHelper::GetFileVersion(sModulePath), sFileVersionFormat)); 99 108 #pragma endregion 100 #pragma region Update hyperlinks109 #pragma region Hyperlinks 101 110 _W(m_WebsiteHyperStatic.SubclassWindow(GetDlgItem(IDC_ABOUT_WEBSITE))); 102 111 _W(m_EmailHyperStatic.SubclassWindow(GetDlgItem(IDC_ABOUT_EMAIL))); 103 112 #pragma endregion 104 #pragma region Update caption113 #pragma region Caption 105 114 { 106 #if _TRACE 107 CString sCaption; 108 _W(GetWindowText(sCaption)); 109 sCaption.Append(_T(" // ")); 110 #if _DEVELOPMENT 111 sCaption.Append(_T("Dev ")); 112 #endif // _DEVELOPMENT 113 sCaption.Append(_VersionInfoHelper::GetVersionString(_VersionInfoHelper::GetFileVersion(_VersionInfoHelper::GetModulePath()))); 114 _W(SetWindowText(sCaption)); 115 #endif // _TRACE 115 #if _TRACE || defined(_WIN64) 116 CString sCaption; 117 _W(GetWindowText(sCaption)); 118 sCaption.Append(_T(" // ")); 119 #if _DEVELOPMENT 120 sCaption.Append(_T("Dev ")); 121 #endif // _DEVELOPMENT 122 sCaption.Append(_VersionInfoHelper::GetVersionString(_VersionInfoHelper::GetFileVersion(_VersionInfoHelper::GetModulePath()))); 123 #if defined(_WIN64) 124 sCaption.Append(_T(" (x64)")); 125 #endif // defined(_WIN64) 126 _W(SetWindowText(sCaption)); 127 #endif // _TRACE || defined(_WIN64) 116 128 } 117 129 #pragma endregion 118 #pragma region Update window position and focus130 #pragma region Window Position and Focus 119 131 _W(CenterWindow(GetParent())); 120 132 GetDlgItem(IDOK).SetFocus(); -
trunk/DirectShowSpy/DirectShowSpy.rc
r231 r233 59 59 60 60 VS_VERSION_INFO VERSIONINFO 61 FILEVERSION 1, 0, 0, 10 6561 FILEVERSION 1, 0, 0, 1090 62 62 PRODUCTVERSION 1,0,0,1 63 63 FILEFLAGSMASK 0x3fL … … 78 78 VALUE "CompanyName", "Roman Ryltsov" 79 79 VALUE "FileDescription", "Alax.Info DirectShow Spy Module" 80 VALUE "FileVersion", "1, 0, 0, 10 65\0"80 VALUE "FileVersion", "1, 0, 0, 1090\0" 81 81 VALUE "InternalName", "DirectShowSpy.dll" 82 82 VALUE "LegalCopyright", "Copyright © Alax.Info, Roman Ryltsov, 2008-2014" … … 257 257 END 258 258 259 IDD_FILTERGRAPHHELPER_EMAIL DIALOGEX 0, 0, 374, 254 260 STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD 261 EXSTYLE WS_EX_CONTROLPARENT 262 FONT 8, "MS Shell Dlg", 400, 0, 0x0 263 BEGIN 264 LTEXT "Email DirectShow Filter Graph ",IDC_FILTERGRAPHHELPER_EMAIL_TITLE,6,0,294,18 265 LTEXT "&From: ",IDC_STATIC,6,26,22,8 266 EDITTEXT IDC_FILTERGRAPHHELPER_EMAIL_FROM,102,24,180,14,ES_AUTOHSCROLL 267 LTEXT "&To: ",IDC_STATIC,6,44,14,8 268 EDITTEXT IDC_FILTERGRAPHHELPER_EMAIL_TO,102,42,240,14,ES_AUTOHSCROLL 269 LTEXT "&Method/Protocol: ",IDC_STATIC,6,62,58,8 270 COMBOBOX IDC_FILTERGRAPHHELPER_EMAIL_METHOD,102,60,210,90,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP 271 LTEXT "SMTP S&erver Host and Port: ",IDC_STATIC,6,80,92,8 272 EDITTEXT IDC_FILTERGRAPHHELPER_EMAIL_HOST,102,78,150,14,ES_AUTOHSCROLL 273 LTEXT "&Username: ",IDC_STATIC,6,98,38,8 274 EDITTEXT IDC_FILTERGRAPHHELPER_EMAIL_USERNAME,102,96,120,14,ES_AUTOHSCROLL 275 LTEXT "P&assword: ",IDC_STATIC,6,116,36,8 276 EDITTEXT IDC_FILTERGRAPHHELPER_EMAIL_PASSWORD,102,114,120,14,ES_PASSWORD | ES_AUTOHSCROLL 277 EDITTEXT IDC_FILTERGRAPHHELPER_EMAIL_BODY,6,138,360,84,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN | WS_VSCROLL | WS_HSCROLL 278 PUSHBUTTON "&Send",IDC_FILTERGRAPHHELPER_EMAIL_SEND,306,228,50,14 279 END 280 259 281 260 282 ///////////////////////////////////////////////////////////////////////////// … … 266 288 GUIDELINES DESIGNINFO 267 289 BEGIN 268 IDD_ ABOUT, DIALOG290 IDD_FILTERGRAPHHELPER_EMAIL, DIALOG 269 291 BEGIN 292 RIGHTMARGIN, 308 293 BOTTOMMARGIN, 248 270 294 END 271 272 IDD_GRAPHBUILDERCALLBACK_GRAPH_PROPERTYPAGE, DIALOG273 BEGIN274 LEFTMARGIN, 6275 RIGHTMARGIN, 221276 TOPMARGIN, 6277 BOTTOMMARGIN, 193278 END279 280 IDD_REGISTRATION_REGISTRATION_PROPERTYPAGE, DIALOG281 BEGIN282 LEFTMARGIN, 6283 RIGHTMARGIN, 221284 TOPMARGIN, 6285 BOTTOMMARGIN, 193286 END287 288 IDD_FILTERGRAPHLIST_LIST_PROPERTYPAGE, DIALOG289 BEGIN290 LEFTMARGIN, 6291 RIGHTMARGIN, 221292 TOPMARGIN, 6293 BOTTOMMARGIN, 193294 END295 296 IDD_FILTERGRAPHHELPER_PROPERTYFRAME, DIALOG297 BEGIN298 END299 295 END 300 296 #endif // APSTUDIO_INVOKED 301 297 298 299 ///////////////////////////////////////////////////////////////////////////// 300 // 301 // TYPELIB 302 // 303 304 IDR_EMAILTOOLS TYPELIB "..\\..\\Repository-Private\\Utilities\\EmailTools\\_Bin\\Win32\\Release\\EmailTools\\EmailTools.tlb" 302 305 303 306 ///////////////////////////////////////////////////////////////////////////// … … 386 389 END 387 390 391 STRINGTABLE 392 BEGIN 393 IDC_FILTERGRAPHHELPER_EMAIL_METHOD 394 "Google Mail (SMTP, TLS Connection)\nSMTP, TLS Connection, Plain Text Authentication (TLS, PLAIN)\nSMTP, SSL Connection, Plain Text Authentication (SSL, PLAIN)\nSMTP, Digest Authentication (CRAM-MD5)\nSMTP, Plain Text Authentication (PLAIN)\nSMTP, No Authentication\n" 395 END 396 388 397 #endif // English (United States) resources 389 398 ///////////////////////////////////////////////////////////////////////////// -
trunk/DirectShowSpy/DirectShowSpy.vcxproj
r199 r233 440 440 </ItemGroup> 441 441 <ItemGroup> 442 <None Include="..\..\Repository-Private\Utilities\EmailTools\_Bin\Win32\Release\EmailTools\EmailTools.tlb" /> 442 443 <None Include="DirectShowSpy.def" /> 443 444 <None Include="DirectShowSpy.rgs" /> -
trunk/DirectShowSpy/DirectShowSpy.vcxproj.filters
r199 r233 58 58 <Filter>Resource Files</Filter> 59 59 </None> 60 <None Include="..\..\Repository-Private\Utilities\EmailTools\_Bin\Win32\Release\EmailTools\EmailTools.tlb" /> 60 61 </ItemGroup> 61 62 <ItemGroup> -
trunk/DirectShowSpy/DirectShowSpy_i.c
r231 r233 7 7 8 8 /* File created by MIDL compiler version 7.00.0555 */ 9 /* at Fri Jan 10 00:26:3520149 /* at Fri Jan 10 11:37:20 2014 10 10 */ 11 11 /* Compiler settings for DirectShowSpy.idl: -
trunk/DirectShowSpy/DirectShowSpy_i.h
r231 r233 5 5 6 6 /* File created by MIDL compiler version 7.00.0555 */ 7 /* at Fri Jan 10 00:26:3520147 /* at Fri Jan 10 11:37:20 2014 8 8 */ 9 9 /* Compiler settings for DirectShowSpy.idl: -
trunk/DirectShowSpy/DirectShowSpy_p.c
r231 r233 5 5 6 6 /* File created by MIDL compiler version 7.00.0555 */ 7 /* at Fri Jan 10 00:26:3520147 /* at Fri Jan 10 11:37:20 2014 8 8 */ 9 9 /* Compiler settings for DirectShowSpy.idl: -
trunk/DirectShowSpy/FilterGraphHelper.h
r231 r233 10 10 #include "Common.h" 11 11 #include "AboutDialog.h" 12 #include "..\..\Repository-Private\Utilities\EmailTools\Message.h" 12 13 13 14 //////////////////////////////////////////////////////////// … … 172 173 173 174 //////////////////////////////////////////////////// 175 // CEmailDialog 176 177 class CEmailDialog : 178 public CDialogImpl<CEmailDialog>, 179 public CDialogResize<CEmailDialog> 180 { 181 public: 182 enum { IDD = IDD_FILTERGRAPHHELPER_EMAIL }; 183 184 BEGIN_MSG_MAP_EX(CEmailDialog) 185 //CHAIN_MSG_MAP(CDialogImpl<CEmailDialog>) 186 CHAIN_MSG_MAP(CDialogResize<CEmailDialog>) 187 MSG_WM_INITDIALOG(OnInitDialog) 188 MSG_WM_DESTROY(OnDestroy) 189 MSG_WM_SHOWWINDOW(OnShowWindow) 190 COMMAND_HANDLER_EX(IDC_FILTERGRAPHHELPER_EMAIL_FROM, EN_CHANGE, OnChanged) 191 COMMAND_HANDLER_EX(IDC_FILTERGRAPHHELPER_EMAIL_TO, EN_CHANGE, OnChanged) 192 COMMAND_HANDLER_EX(IDC_FILTERGRAPHHELPER_EMAIL_METHOD, CBN_SELENDOK, OnChanged) 193 COMMAND_HANDLER_EX(IDC_FILTERGRAPHHELPER_EMAIL_HOST, EN_CHANGE, OnChanged) 194 COMMAND_HANDLER_EX(IDC_FILTERGRAPHHELPER_EMAIL_USERNAME, EN_CHANGE, OnChanged) 195 COMMAND_HANDLER_EX(IDC_FILTERGRAPHHELPER_EMAIL_PASSWORD, EN_CHANGE, OnChanged) 196 COMMAND_HANDLER_EX(IDC_FILTERGRAPHHELPER_EMAIL_BODY, EN_CHANGE, OnChanged) 197 COMMAND_ID_HANDLER_EX(IDC_FILTERGRAPHHELPER_EMAIL_SEND, OnSend) 198 REFLECT_NOTIFICATIONS() 199 END_MSG_MAP() 200 201 BEGIN_DLGRESIZE_MAP(CEmailDialog) 202 DLGRESIZE_CONTROL(IDC_FILTERGRAPHHELPER_EMAIL_BODY, DLSZ_SIZE_X | DLSZ_SIZE_Y) 203 DLGRESIZE_CONTROL(IDC_FILTERGRAPHHELPER_EMAIL_SEND, DLSZ_MOVE_X | DLSZ_MOVE_Y) 204 END_DLGRESIZE_MAP() 205 206 private: 207 CPropertyFrameDialog* m_pOwner; 208 BOOL m_bActivating; 209 CStatic m_TitleStatic; 210 CFont m_TitleFont; 211 CRoEdit m_FromEdit; 212 CRoEdit m_ToEdit; 213 CRoComboBoxT<> m_MethodComboBox; 214 CRoEdit m_HostEdit; 215 CRoEdit m_UsernameEdit; 216 CRoEdit m_PasswordEdit; 217 CRoEdit m_BodyEdit; 218 CButton m_SendButton; 219 CString m_sFilterGraphText; 220 CRoMapT<INT_PTR, BOOL> m_ChangeMap; 221 222 public: 223 // CEmailDialog 224 VOID InitializeControlsFromRegistry() 225 { 226 CRegKey Key; 227 Key.Open(HKEY_CURRENT_USER, REGISTRY_ROOT, KEY_READ); 228 if(!Key) 229 return; 230 CString sMessageString = _RegKeyHelper::QueryStringValue(Key, _T("Email Message Template")); 231 if(sMessageString.IsEmpty()) 232 return; 233 _ATLTRY 234 { 235 CObjectPtr<CMessage> pMessage; 236 pMessage.Construct(); 237 pMessage->LoadTypeInfo(IDR_EMAILTOOLS); 238 pMessage->SetAsString(CStringA(sMessageString)); 239 #pragma region Sender and Recipients 240 CComBSTR sSender, sToRecipients; 241 __C(pMessage->get_Sender(&sSender)); 242 __C(pMessage->get_ToRecipients(&sToRecipients)); 243 m_FromEdit.SetValue(CString(sSender)); 244 m_ToEdit.SetValue(CString(sToRecipients)); 245 #pragma endregion 246 CComBSTR sAuthMethods; 247 __C(pMessage->get_AuthMethods(&sAuthMethods)); 248 VARIANT_BOOL bSecureSocketsLayer, bTransportLayerSecurity; 249 __C(pMessage->get_SecureSocketsLayer(&bSecureSocketsLayer)); 250 __C(pMessage->get_TransportLayerSecurity(&bTransportLayerSecurity)); 251 #pragma region Host and Port 252 CComBSTR sHost; 253 __C(pMessage->get_ServerHost(&sHost)); 254 LONG nPort = 0; 255 __C(pMessage->get_ServerPort(&nPort)); 256 CString sHostT(sHost); 257 if(nPort) 258 sHostT += AtlFormatString(_T(":%d"), nPort); 259 m_HostEdit.SetValue(sHostT); 260 #pragma endregion 261 #pragma region User Name and Password 262 CComBSTR sAuthName, sAuthPassword; 263 __C(pMessage->get_AuthName(&sAuthName)); 264 __C(pMessage->get_AuthPassword(&sAuthPassword)); 265 m_UsernameEdit.SetValue(CString(sAuthName)); 266 m_PasswordEdit.SetValue(CString(sAuthPassword)); 267 #pragma endregion 268 m_MethodComboBox.SetCurSel(0); 269 if(bTransportLayerSecurity != ATL_VARIANT_FALSE && sHostT.CompareNoCase(_T("smtp.gmail.com")) == 0) 270 { 271 //m_MethodComboBox.SetCurSel(0); 272 } else 273 { 274 if(bTransportLayerSecurity != ATL_VARIANT_FALSE) 275 m_MethodComboBox.SetCurSel(1); 276 else if(bSecureSocketsLayer != ATL_VARIANT_FALSE) 277 m_MethodComboBox.SetCurSel(2); 278 else if(CString(sAuthMethods).CompareNoCase(_T("cram-md5")) == 0) 279 m_MethodComboBox.SetCurSel(3); 280 else if(!CString(sAuthName).IsEmpty()) 281 m_MethodComboBox.SetCurSel(4); 282 else 283 m_MethodComboBox.SetCurSel(5); 284 } 285 } 286 _ATLCATCHALL() 287 { 288 _Z_EXCEPTION(); 289 } 290 } 291 VOID InitializeBody() 292 { 293 CString sText; 294 sText += _T("(add notes here)") _T("\r\n") _T("\r\n"); 295 sText += _T("* * *") _T("\r\n") _T("\r\n"); 296 #define I FormatIdentifier 297 #pragma region System 298 { 299 sText += _T("# System") _T("\r\n") _T("\r\n"); 300 OSVERSIONINFOEX Version; 301 ZeroMemory(&Version, sizeof Version); 302 Version.dwOSVersionInfoSize = sizeof Version; 303 GetVersionEx((OSVERSIONINFO*) &Version); 304 #pragma region Version 305 CRoArrayT<CString> VersionArray; 306 VersionArray.Add(AtlFormatString(_T("%s Build %s"), I(AtlFormatString(_T("%d.%d"), Version.dwMajorVersion, Version.dwMinorVersion)), I(Version.dwBuildNumber))); 307 switch((Version.dwMajorVersion << 16) + Version.dwMinorVersion) 308 { 309 case 0x00050001: 310 VersionArray.Add(_T("Windows XP")); 311 break; 312 case 0x00050002: 313 if(Version.wProductType != VER_NT_WORKSTATION) 314 VersionArray.Add(_T("Windows Server 2003")); 315 break; 316 case 0x00060000: 317 if(Version.wProductType == VER_NT_WORKSTATION) 318 VersionArray.Add(_T("Windows Vista")); 319 else 320 VersionArray.Add(_T("Windows Server 2008")); 321 break; 322 case 0x00060001: 323 if(Version.wProductType == VER_NT_WORKSTATION) 324 VersionArray.Add(_T("Windows 7")); 325 else 326 VersionArray.Add(_T("Windows Server 2008 R2")); 327 break; 328 case 0x00060002: 329 if(Version.wProductType == VER_NT_WORKSTATION) 330 VersionArray.Add(_T("Windows 8")); 331 else 332 VersionArray.Add(_T("Windows Server 2012")); 333 break; 334 } 335 if(_tcslen(Version.szCSDVersion)) 336 VersionArray.Add(Version.szCSDVersion); 337 if(Version.wServicePackMajor) 338 VersionArray.Add(AtlFormatString(_T("Service Pack %s"), I(AtlFormatString(_T("%d.%d"), Version.wServicePackMajor, Version.wServicePackMinor)))); 339 //Version.wSuiteMask, Version.wProductType 340 sText += AtlFormatString(_T(" * ") _T("Version: %s") _T("\r\n"), _StringHelper::Join(VersionArray, _T("; "))); 341 #pragma endregion 342 TCHAR pszComputerName[256] = { 0 }; 343 DWORD nComputerNameLength = DIM(pszComputerName); 344 GetComputerName(pszComputerName, &nComputerNameLength); 345 sText += AtlFormatString(_T(" * ") _T("Computer Name: %s") _T("\r\n"), I(pszComputerName)); 346 TCHAR pszUserName[256] = { 0 }; 347 DWORD nUserNameLength = DIM(pszUserName); 348 GetUserName(pszUserName, &nUserNameLength); 349 CString sUserName(pszUserName); 350 BOOL bAdministrator = FALSE; 351 bool bIsMember = FALSE; 352 if(CAccessToken().CheckTokenMembership(Sids::Admins(), &bIsMember) && bIsMember) 353 bAdministrator = TRUE; 354 sText += AtlFormatString(_T(" * ") _T("User Name: %s %s") _T("\r\n"), I(sUserName), bAdministrator ? _T("(Administrator)") : _T("")); 355 SYSTEM_INFO SystemInformation; 356 GetSystemInfo(&SystemInformation); 357 #pragma region Architecture 358 CString sArchitecture; 359 switch(SystemInformation.wProcessorArchitecture) 360 { 361 case PROCESSOR_ARCHITECTURE_INTEL: 362 sArchitecture = I(_T("x86")); 363 break; 364 case PROCESSOR_ARCHITECTURE_AMD64: 365 sArchitecture = I(_T("AMD/Intel x64")); 366 break; 367 case PROCESSOR_ARCHITECTURE_IA64: 368 sArchitecture = I(_T("Intel Itanium")); 369 break; 370 default: 371 sArchitecture = I(SystemInformation.wProcessorArchitecture, _T("0x%04X")); 372 } 373 #if defined(_WIN64) 374 sText += AtlFormatString(_T(" * ") _T("Architecture: %s (x64 Application)") _T("\r\n"), sArchitecture); 375 #else 376 sText += AtlFormatString(_T(" * ") _T("Architecture: %s") _T("\r\n"), sArchitecture); 377 #endif // defined(_WIN64) 378 #pragma endregion 379 sText += AtlFormatString(_T(" * ") _T("Processors: %s, Active Mask %s") _T("\r\n"), I(SystemInformation.dwNumberOfProcessors), I(SystemInformation.dwActiveProcessorMask, _T("0x%X"))); 380 sText += AtlFormatString(_T(" * ") _T("Page Size: %s") _T("\r\n"), I(SystemInformation.dwPageSize, _T("0x%X"))); 381 sText += AtlFormatString(_T(" * ") _T("Application Address Space: %s..%s") _T("\r\n"), I(SystemInformation.lpMinimumApplicationAddress), I(SystemInformation.lpMaximumApplicationAddress)); 382 #pragma region Memory 383 MEMORYSTATUSEX MemoryStatus = { sizeof MemoryStatus }; 384 _W(GlobalMemoryStatusEx(&MemoryStatus)); 385 sText += AtlFormatString(_T(" * ") _T("Physical Memory: %s MB") _T("\r\n"), I(_StringHelper::FormatNumber((LONG) (MemoryStatus.ullTotalPhys >> 20)))); 386 sText += AtlFormatString(_T(" * ") _T("Committed Memory Limit: %s MB") _T("\r\n"), I(_StringHelper::FormatNumber((LONG) (MemoryStatus.ullTotalPageFile >> 20)))); 387 #pragma endregion 388 } 389 #pragma endregion 390 sText += AtlFormatString(_T(" * ") _T("Module Version: %s") _T("\r\n"), I(_VersionInfoHelper::GetVersionString(_VersionInfoHelper::GetFileVersion(_VersionInfoHelper::GetModulePath())))); 391 SYSTEMTIME LocalTime; 392 GetLocalTime(&LocalTime); 393 sText += AtlFormatString(_T(" * ") _T("Local Time: %s") _T("\r\n"), I(_StringHelper::FormatDateTime(&LocalTime))); 394 sText += _T("\r\n"); 395 #undef I 396 m_BodyEdit.SetValue(sText); 397 } 398 VOID UpdateControls() 399 { 400 BOOL bAllowSend = TRUE; 401 if(m_ToEdit.GetValue().Trim().IsEmpty()) 402 bAllowSend = FALSE; 403 const INT nMethod = m_MethodComboBox.GetCurSel(); 404 m_HostEdit.GetWindow(GW_HWNDPREV).EnableWindow(nMethod != 0); // Google Mail 405 m_HostEdit.EnableWindow(nMethod != 0); // Google Mail 406 m_UsernameEdit.GetWindow(GW_HWNDPREV).EnableWindow(nMethod != 5); // No Authentication 407 m_UsernameEdit.EnableWindow(nMethod != 5); // No Authentication 408 m_PasswordEdit.GetWindow(GW_HWNDPREV).EnableWindow(nMethod != 5); // No Authentication 409 m_PasswordEdit.EnableWindow(nMethod != 5); // No Authentication 410 if(nMethod != 0) // Google Mail 411 if(m_HostEdit.GetValue().Trim().IsEmpty()) 412 bAllowSend = FALSE; 413 if(nMethod != 5) // No Authentication 414 { 415 if(m_UsernameEdit.GetValue().Trim().IsEmpty()) 416 bAllowSend = FALSE; 417 if(m_PasswordEdit.GetValue().Trim().IsEmpty()) 418 bAllowSend = FALSE; 419 } 420 m_SendButton.EnableWindow(bAllowSend); 421 } 422 423 // Window Message Handler 424 LRESULT OnInitDialog(HWND, LPARAM lParam) 425 { 426 m_pOwner = (CPropertyFrameDialog*) lParam; 427 m_bActivating = TRUE; 428 _ATLTRY 429 { 430 CWaitCursor WaitCursor; 431 m_TitleStatic = GetDlgItem(IDC_FILTERGRAPHHELPER_EMAIL_TITLE); 432 CLogFont LogFont; 433 LogFont.SetHeight(12, CClientDC(m_hWnd)); 434 LogFont.lfWeight = FW_BOLD; 435 _tcsncpy_s(LogFont.lfFaceName, _T("Verdana"), _TRUNCATE); 436 _W(m_TitleFont.CreateFontIndirect(&LogFont)); 437 m_TitleStatic.SetFont(m_TitleFont); 438 m_FromEdit = GetDlgItem(IDC_FILTERGRAPHHELPER_EMAIL_FROM); 439 m_ToEdit = GetDlgItem(IDC_FILTERGRAPHHELPER_EMAIL_TO); 440 m_MethodComboBox.Initialize(GetDlgItem(IDC_FILTERGRAPHHELPER_EMAIL_METHOD)); 441 m_MethodComboBox.SetCurSel(0); 442 m_HostEdit = GetDlgItem(IDC_FILTERGRAPHHELPER_EMAIL_HOST); 443 m_UsernameEdit = GetDlgItem(IDC_FILTERGRAPHHELPER_EMAIL_USERNAME); 444 m_PasswordEdit = GetDlgItem(IDC_FILTERGRAPHHELPER_EMAIL_PASSWORD); 445 m_BodyEdit = GetDlgItem(IDC_FILTERGRAPHHELPER_EMAIL_BODY); 446 m_BodyEdit.SetFont(m_pOwner->m_TextFont); 447 m_SendButton = GetDlgItem(IDC_FILTERGRAPHHELPER_EMAIL_SEND); 448 DlgResize_Init(TRUE); 449 InitializeControlsFromRegistry(); 450 InitializeBody(); 451 m_sFilterGraphText = m_pOwner->m_Owner.GetText(); 452 UpdateControls(); 453 m_bActivating = FALSE; 454 } 455 _ATLCATCH(Exception) 456 { 457 for(CWindow Window = GetWindow(GW_CHILD); Window; Window = Window.GetWindow(GW_HWNDNEXT)) 458 Window.EnableWindow(FALSE); 459 AtlExceptionMessageBox(m_hWnd, Exception); 460 } 461 return TRUE; 462 } 463 LRESULT OnDestroy() 464 { 465 return 0; 466 } 467 LRESULT OnShowWindow(BOOL bShowing, INT) 468 { 469 if(bShowing && !m_ChangeMap.Lookup(IDC_FILTERGRAPHHELPER_EMAIL_BODY)) 470 InitializeBody(); 471 return 0; 472 } 473 LRESULT OnChanged(UINT, INT_PTR nIdentifier, HWND) 474 { 475 if(m_bActivating) 476 return 0; 477 m_ChangeMap[nIdentifier] = TRUE; 478 UpdateControls(); 479 return 0; 480 } 481 LRESULT OnChanged(NMHDR* pHeader) 482 { 483 return OnChanged(pHeader->code, pHeader->idFrom, pHeader->hwndFrom); 484 } 485 LRESULT OnSend(UINT, INT, HWND) 486 { 487 CWaitCursor WaitCursor; 488 CObjectPtr<CMessage> pMessage; 489 pMessage.Construct(); 490 #pragma region Setup 491 pMessage->LoadTypeInfo(IDR_EMAILTOOLS); 492 __C(pMessage->put_Sender(CComBSTR(m_FromEdit.GetValue()))); 493 __C(pMessage->put_ToRecipients(CComBSTR(m_ToEdit.GetValue()))); 494 // NOTE: 495 // 0 Google Mail (SMTP, TLS Connection) 496 // 1 SMTP, TLS Connection, Plain Text Authentication (TLS, PLAIN) 497 // 2 SMTP, SSL Connection, Plain Text Authentication (SSL, PLAIN) 498 // 3 SMTP, Digest Authentication (CRAM-MD5) 499 // 4 SMTP, Plain Text Authentication (PLAIN) 500 // 5 SMTP, No Authentication 501 const INT nMethod = m_MethodComboBox.GetCurSel(); 502 __C(pMessage->put_SecureSocketsLayer((nMethod == 2) ? ATL_VARIANT_TRUE : ATL_VARIANT_FALSE)); 503 __C(pMessage->put_TransportLayerSecurity((nMethod < 2) ? ATL_VARIANT_TRUE : ATL_VARIANT_FALSE)); 504 if(nMethod != 5) 505 { 506 __C(pMessage->put_AuthMethods(CComBSTR(_T("plain")))); 507 __C(pMessage->put_AuthName(CComBSTR(m_UsernameEdit.GetValue()))); 508 __C(pMessage->put_AuthPassword(CComBSTR(m_PasswordEdit.GetValue()))); 509 } 510 switch(nMethod) 511 { 512 case 0: 513 __C(pMessage->put_ServerHost(CComBSTR(_T("smtp.gmail.com")))); 514 break; 515 default: 516 CString sHost = m_HostEdit.GetValue(); 517 sHost.Trim(); 518 const INT nPortPosition = sHost.Find(_T(":")); 519 if(nPortPosition >= 0) 520 { 521 INT nPort; 522 __D(AtlStringToInteger(sHost.Mid(nPortPosition + 1), nPort), E_UNNAMED); 523 __C(pMessage->put_ServerPort(nPort)); 524 sHost = sHost.Left(nPortPosition); 525 } 526 __C(pMessage->put_ServerHost(CComBSTR(sHost))); 527 break; 528 } 529 switch(nMethod) 530 { 531 case 3: 532 __C(pMessage->put_AuthMethods(CComBSTR(_T("cram-md5")))); 533 break; 534 } 535 #pragma endregion 536 CStringA sMessageString = pMessage->GetAsString(); 537 CString sText = m_BodyEdit.GetValue(); 538 sText.TrimRight(_T("\t\n\r ")); 539 sText += _T("\r\n") _T("\r\n") _T("* * *") _T("\r\n") _T("\r\n"); 540 sText += m_sFilterGraphText; 541 __C(pMessage->put_Body(CComBSTR(sText))); 542 CString sSubject = AtlFormatString(_T("DirectShow Filter Graph by %s"), AtlLoadString(IDS_PROJNAME)); 543 __C(pMessage->put_Subject(CComBSTR(sSubject))); 544 __C(pMessage->Send()); 545 MessageBeep(MB_OK); 546 _RegKeyHelper::SetStringValue(HKEY_CURRENT_USER, REGISTRY_ROOT, _T("Email Message Template"), CString(sMessageString)); 547 return 0; 548 } 549 }; 550 551 //////////////////////////////////////////////////// 174 552 // CData 175 553 … … 177 555 { 178 556 public: 557 558 ///////////////////////////////////////////////////////// 559 // TYPE 560 561 typedef enum _TYPE 562 { 563 TYPE_UNKNOWN = 0, 564 TYPE_FILTERS, 565 TYPE_FILTER, 566 TYPE_FILTERPROPERTYPAGE, 567 TYPE_EMAIL, 568 } TYPE; 569 570 public: 571 TYPE m_Type; 179 572 CComPtr<IBaseFilter> m_pBaseFilter; 180 573 CLSID m_ClassIdentifier; … … 185 578 public: 186 579 // CData 187 CData() : 580 CData(TYPE Type = TYPE_UNKNOWN) : 581 m_Type(Type), 188 582 m_ClassIdentifier(CLSID_NULL) 189 583 { 190 584 } 191 585 CData(IBaseFilter* pBaseFilter) : 586 m_Type(TYPE_FILTER), 192 587 m_pBaseFilter(pBaseFilter), 193 588 m_ClassIdentifier(CLSID_NULL) … … 195 590 } 196 591 CData(IBaseFilter* pBaseFilter, const CLSID& ClassIdentifier, IPropertyPage* pPropertyPage) : 592 m_Type(TYPE_FILTERPROPERTYPAGE), 197 593 m_pBaseFilter(pBaseFilter), 198 594 m_ClassIdentifier(ClassIdentifier), … … 223 619 CRoTreeViewT<CData, CRoListControlDataTraitsT> m_TreeView; 224 620 CTreeItem m_FiltersItem; 621 CTreeItem m_EmailItem; 225 622 CTabCtrl m_Tab; 226 623 CRoEdit m_TextEdit; … … 231 628 CButton m_ApplyButton; 232 629 CObjectPtr<CPropertyPageSite> m_pCurrentSite; 630 CEmailDialog m_EmailDialog; 233 631 234 632 public: … … 249 647 CWindowRedraw TreeViewRedraw(m_TreeView); 250 648 m_TreeView.DeleteAllItems(); 251 CTreeItem FiltersItem = m_TreeView.InsertItem(NULL, NULL, CData(), _T("Filters")); 649 #pragma region Filter 650 CTreeItem FiltersItem = m_TreeView.InsertItem(NULL, NULL, CData(CData::TYPE_FILTERS), _T("Filters")); 252 651 _FilterGraphHelper::CFilterArray FilterArray; 253 652 _FilterGraphHelper::GetGraphFilters(m_Owner.m_pFilterGraph, FilterArray); … … 258 657 CTreeItem FilterItem = m_TreeView.InsertItem(FiltersItem, PreviousFilterItem, CData(pBaseFilter), CString(_FilterGraphHelper::GetFilterName(pBaseFilter))); 259 658 PreviousFilterItem = FilterItem; 659 #pragma region Property Page 260 660 const CComQIPtr<ISpecifyPropertyPages> pSpecifyPropertyPages = pBaseFilter; 261 661 if(!pSpecifyPropertyPages) … … 294 694 _Z_EXCEPTION(); 295 695 } 696 #pragma endregion 296 697 } 297 698 m_TreeView.Expand(FiltersItem); 298 699 m_FiltersItem.m_hTreeItem = FiltersItem; 299 700 m_FiltersItem.m_pTreeView = &m_TreeView; 300 // TODO: Email Item 701 #pragma endregion 702 CTreeItem EmailItem = m_TreeView.InsertItem(NULL, FiltersItem, CData(CData::TYPE_EMAIL), _T("Email")); 703 m_EmailItem.m_hTreeItem = EmailItem; 704 m_EmailItem.m_pTreeView = &m_TreeView; 301 705 } 302 706 VOID HideCurrentSite() … … 367 771 m_CancelButton = GetDlgItem(IDCANCEL); 368 772 m_ApplyButton = GetDlgItem(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_APPLY); 773 __E(m_EmailDialog.Create(m_hWnd, (LPARAM) this)); 369 774 DlgResize_Init(TRUE); 370 775 UpdateTree(); … … 413 818 { 414 819 CData& Data = m_TreeView.GetItemData(TreeItem); 820 if(Data.m_Type != CData::TYPE_EMAIL) 821 m_EmailDialog.ShowWindow(SW_HIDE); 822 #pragma endregion 415 823 if(Data.m_pBaseFilter) 416 824 { … … 512 920 CWaitCursor WaitCursor; 513 921 HideCurrentSite(); 514 m_TextEdit.ShowWindow(SW_SHOW); 515 m_TextEdit.SetValue(m_Owner.GetText()); 922 switch(Data.m_Type) 923 { 924 #pragma region TYPE_EMAIL 925 case CData::TYPE_EMAIL: 926 m_TextEdit.ShowWindow(SW_HIDE); 927 _W(m_EmailDialog.SetWindowPos(NULL, GetTextEditPosition(), SWP_NOZORDER | SWP_SHOWWINDOW)); 928 break; 929 #pragma endregion 930 default: 931 m_TextEdit.ShowWindow(SW_SHOW); 932 m_TextEdit.SetValue(m_Owner.GetText()); 933 m_EmailDialog.ShowWindow(SW_HIDE); 934 } 516 935 m_ApplyButton.EnableWindow(FALSE); 517 936 } … … 520 939 HideCurrentSite(); 521 940 m_TextEdit.ShowWindow(SW_HIDE); 941 m_EmailDialog.ShowWindow(SW_HIDE); 522 942 m_ApplyButton.EnableWindow(FALSE); 523 943 } … … 678 1098 sText = _T("``"); 679 1099 sText.Insert(1, AtlFormatString(pszFormat, nValue)); 1100 return sText; 1101 } 1102 static CString FormatIdentifier(const VOID* pvValue, LPCTSTR pszFormat = _T("0x%p")) 1103 { 1104 CString sText; 1105 sText = _T("``"); 1106 sText.Insert(1, AtlFormatString(pszFormat, pvValue)); 680 1107 return sText; 681 1108 } … … 1259 1686 m_pFilterGraph = pFilterGraph; 1260 1687 } 1688 BOOL SetFilterGraph(IUnknown* pFilterGraphUnknown) 1689 { 1690 CComQIPtr<IFilterGraph> pFilterGraph; 1691 if(pFilterGraphUnknown) 1692 { 1693 pFilterGraph = pFilterGraphUnknown; 1694 if(!pFilterGraph) 1695 { 1696 const CComQIPtr<IBaseFilter> pBaseFilter = pFilterGraphUnknown; 1697 if(!pBaseFilter) 1698 { 1699 const CComQIPtr<IPin> pPin = pFilterGraphUnknown; 1700 if(pPin) 1701 pFilterGraph = _FilterGraphHelper::GetFilterGraph(_FilterGraphHelper::GetPinFilter(pPin)); 1702 } else 1703 pFilterGraph = _FilterGraphHelper::GetFilterGraph(pBaseFilter); 1704 } 1705 } 1706 CRoCriticalSectionLock DataLock(m_DataCriticalSection); 1707 m_pFilterGraph = pFilterGraph; 1708 return m_pFilterGraph != NULL; 1709 } 1261 1710 CString GetText() const 1262 1711 { … … 1285 1734 _ATLTRY 1286 1735 { 1287 const CComQIPtr<IFilterGraph> pFilterGraph = pFilterGraphUnknown; 1288 __D(!pFilterGraphUnknown || pFilterGraph, E_INVALIDARG); 1289 SetFilterGraph(pFilterGraph); 1736 if(!SetFilterGraph(pFilterGraphUnknown)) 1737 return S_FALSE; 1290 1738 } 1291 1739 _ATLCATCH(Exception) -
trunk/DirectShowSpy/resource.h
r231 r233 5 5 #define IDI_MODULE 10 6 6 #define IDR_MODULE 11 7 #define IDR_EMAILTOOLS 20 7 8 #define IDI_PRIVATE_INFORMATION 70 8 9 #define IDI_PRIVATE_WARNING 71 … … 10 11 #define IDI_LISTVIEW_FAILURE 81 11 12 #define IDS_PROJNAME 100 13 #define IDC_MAIN_EMAIL_METHOD 101 12 14 #define IDR_FILTERGRAPHSPY 200 13 15 #define IDR_NOTHREADFILTERGRAPHSPY 201 14 16 #define IDR_FILTERMAPPERSPY 202 15 17 #define IDR_SYSTEMDEVICEENUMERATORSPY 203 16 #define IDC_BUTTON1 218 17 #define IDR_FILTERGRAPHHELPER 300 18 #define IDR_FILTERGRAPHHELPER 250 18 19 #define IDS_REGISTRATION_PROPERTYSHEETCAPTION 900 19 20 #define IDD_REGISTRATION_REGISTRATION_PROPERTYPAGE 910 … … 70 71 #define IDC_FILTERGRAPHHELPER_PROPERTYFRAME_APPLY 1507 71 72 #define IDC_FILTERGRAPHHELPER_PROPERTYFRAME_TEXT 1508 73 #define IDD_FILTERGRAPHHELPER_EMAIL 1600 74 #define IDC_FILTERGRAPHHELPER_EMAIL_TITLE 1601 75 #define IDC_FILTERGRAPHHELPER_EMAIL_FROM 1602 76 #define IDC_FILTERGRAPHHELPER_EMAIL_TO 1603 77 #define IDC_FILTERGRAPHHELPER_EMAIL_METHOD 1604 78 #define IDC_FILTERGRAPHHELPER_EMAIL_HOST 1605 79 #define IDC_FILTERGRAPHHELPER_EMAIL_USERNAME 1606 80 #define IDC_FILTERGRAPHHELPER_EMAIL_PASSWORD 1607 81 #define IDC_FILTERGRAPHHELPER_EMAIL_BODY 1608 82 #define IDC_FILTERGRAPHHELPER_EMAIL_SEND 1609 72 83 #define IDD_ABOUT 29900 73 84 #define IDC_ABOUT_ICON 29901 … … 88 99 #define _APS_NEXT_RESOURCE_VALUE 209 89 100 #define _APS_NEXT_COMMAND_VALUE 32768 90 #define _APS_NEXT_CONTROL_VALUE 2 19101 #define _APS_NEXT_CONTROL_VALUE 221 91 102 #define _APS_NEXT_SYMED_VALUE 103 92 103 #endif
Note: See TracChangeset
for help on using the changeset viewer.