OSDN Git Service

84710f7429e3aa31ade6aa09ebda3471532e9f44
[nlite/nlite.git] / nlite / nlite_common.cpp
1 #include "stdafx.h"
2 #include "nlite_include.h"
3
4
5
6 namespace nlite{
7
8 namespace nliteregex{
9         namespace text{
10                 const  CString URL_TEXT = TEXT("(https?|ftp)(://[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)");
11                 const  CString TAG_TEXT = TEXT("<[\"_;!?,\\:.'$%&#/a-zA-Z0-9= ]*>");
12                 const  CString VIDEOID_TEXT = TEXT("(sm|nm)([0-9])+");
13                 const  CString LIVEID_TEXT = TEXT("(lv)([0-9])+");
14                 const  CString LINK_TEXT = TEXT("(") + URL_TEXT + TEXT(")|(") + VIDEOID_TEXT + TEXT(")|(") + LIVEID_TEXT + TEXT(")");
15         }
16         const  tregex URL(text::URL_TEXT);
17         const  tregex TAGSTRING(text::TAG_TEXT);
18         const  tregex VIDEOID(text::VIDEOID_TEXT);
19         const  tregex LIVEID(text::LIVEID_TEXT);
20         const  tregex LILNKREGEX(text::LINK_TEXT);
21         const  tstring NUTHINGSTRING(TEXT(""));
22 }
23 Property nliteProperty; 
24
25
26  VOID nlite::UnexpectedErrorMessageShow(LPCTSTR headMessage,LPCTSTR summary,UINT line,LPCTSTR fileName,LPCTSTR function){
27         tstring errMessage;
28         errMessage = headMessage;
29         errMessage += TEXT("\91z\92è\82³\82ê\82Ä\82¢\82È\82¢\83G\83\89\81[\82ª\94­\90\82µ\82Ü\82µ\82½\81B\83A\83v\83\8a\83P\81[\83V\83\87\83\93\94z\92u\83t\83H\83\8b\83_\82É\8dì\90¬\82³\82ê\82½\83\8d\83O\83t\83@\83C\83\8b\82ð\93n\82µ\82Ä\82à\82ç\82¦\82é\82Æ\8aJ\94­\8eÒ\82ª\94ñ\8fí\82É\8aì\82Ñ\82Ü\82·");
30         errMessage += TEXT("\r\n\83G\83\89\81[\83\81\83b\83Z\81[\83W:");
31         errMessage += summary;
32         DebugOutW(fileName,function,line,DUMPING__DEBUGER__ | LINEFEAD__DEBUGER__ ,ERRORMODE__DEBUGER__,TEXT("%s"),summary);
33         ::MessageBox(NULL,errMessage.c_str(),TEXT("\91z\92è\82³\82ê\82Ä\82¢\82È\82¢\83G\83\89\81["),MB_ICONERROR | MB_OK);
34         
35
36
37          return;
38  }
39
40  HINSTANCE OpenURL(HWND hwnd,const GeneralProperty &gp,LPCTSTR url ,INT nShowCommand){
41
42          HINSTANCE rslt;
43
44         if(gp.browserPath.Length() == 0){
45
46                 rslt = ShellExecute(hwnd, NULL, url, NULL, NULL, nShowCommand);
47
48         } else{
49
50                 rslt = ShellExecute(hwnd, NULL, gp.browserPath, url, NULL, nShowCommand);
51
52         }
53
54         return rslt;
55
56  }
57
58  BOOL SurelyCreate(LPCTSTR dir,BOOL bFile){
59
60          
61
62          BOOL rslt = FALSE;
63          std::vector<TCHAR> buf(_tcslen(dir) + 1);
64          _tcscpy(&buf[0],dir);
65
66
67          if( (PathFileExists(dir) && (!bFile || !::PathIsDirectory( dir )))){
68
69                  goto success;
70          }
71
72          LPTSTR startPtr = &buf[0];
73          LPTSTR indexPtr = startPtr;
74          LPTSTR cmpPtr;
75          do {
76
77                  cmpPtr = _tcsstr(indexPtr,TEXT("\\"));
78
79                  if(cmpPtr == NULL){
80                         
81                          if(bFile == TRUE){
82                                 CAtlFile file;
83                                 if( file.Create(startPtr,0,0,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL) != S_OK){
84
85                                         goto err;
86
87                                 }
88                          } else {
89
90                                  ::CreateDirectory(startPtr,0);
91                          }
92
93                          break;
94
95
96                  }else if(indexPtr == cmpPtr){
97                          break;
98
99                  }
100
101                  cmpPtr[0] = TEXT('\0');
102                  ::CreateDirectory(startPtr,0);
103                  cmpPtr[0] = TEXT('\\');
104                  cmpPtr++;
105                  indexPtr = cmpPtr;
106                  
107
108          }while(indexPtr[0] != TEXT('\0'));
109
110 success:
111
112
113          rslt = TRUE;
114
115 end:
116
117          return rslt;
118
119
120 err:
121          rslt = FALSE;
122          goto end;
123  }
124
125 const CApplicationInfo * appInfo = NULL;
126
127 }