-rw-r--r-- | install/install.cpp | 9 | ||||
-rw-r--r-- | install/install.rc | 8 |
2 files changed, 12 insertions, 5 deletions
diff --git a/install/install.cpp b/install/install.cpp index 81d5a7e..82811b9 100644 --- a/install/install.cpp +++ b/install/install.cpp | |||
@@ -1,70 +1,77 @@ | |||
1 | #include "resource.h" | 1 | #include "resource.h" |
2 | #include "../shared-code/install.h" | 2 | #include "../shared-code/install.h" |
3 | 3 | ||
4 | #define KINAME"KLog 1.1.1-trunk" | 4 | #define VERSION "1.2" |
5 | #define KINAME"KLog " VERSION | ||
5 | #define SKINAME"KLog" | 6 | #define SKINAME"KLog" |
6 | 7 | ||
7 | BOOL Install(void) | 8 | BOOL Install(void) |
8 | { | 9 | { |
9 | STRING dPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group", SKINAME "Path"); | 10 | STRING dPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group", SKINAME "Path"); |
10 | STRING kPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group","KINPath"); | 11 | STRING kPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group","KINPath"); |
11 | LPCSTR qPath = ((LPCSTR)dPath)?(LPCSTR)dPath:(((LPCSTR)kPath)?(LPSTR)kPath:"C:\\Program Files\\Klever\\Nothings"); | 12 | LPCSTR qPath = ((LPCSTR)dPath)?(LPCSTR)dPath:(((LPCSTR)kPath)?(LPSTR)kPath:"C:\\Program Files\\Klever\\Nothings"); |
12 | STRING path = REQUESTPATH(" " KINAME,"\nEnter destination path:",qPath); | 13 | STRING path = REQUESTPATH(" " KINAME,"\nEnter destination path:",qPath); |
13 | if(!path) | 14 | if(!path) |
14 | return NULL; | 15 | return NULL; |
15 | #ifdefK_ANNED | 16 | #ifdefK_ANNED |
16 | STRING sysDir(_MAX_PATH); | 17 | STRING sysDir(_MAX_PATH); |
17 | GetSystemDirectory(sysDir,_MAX_PATH); | 18 | GetSystemDirectory(sysDir,_MAX_PATH); |
18 | INSTALLFILE("mfc42.dl_",sysDir,"mfc42.dll"); | 19 | INSTALLFILE("mfc42.dl_",sysDir,"mfc42.dll"); |
19 | #endif | 20 | #endif |
20 | 21 | ||
21 | MAKE_PATH(path); | 22 | MAKE_PATH(path); |
22 | STRING shortPath = GET_SHORT_PATH(path); | 23 | STRING shortPath = GET_SHORT_PATH(path); |
23 | if(!shortPath){ | 24 | if(!shortPath){ |
24 | MessageBox(NULL,"Failed to install " KINAME " in specified directory",NULL,MB_ICONERROR|MB_OK); | 25 | MessageBox(NULL,"Failed to install " KINAME " in specified directory",NULL,MB_ICONERROR|MB_OK); |
25 | return FALSE; | 26 | return FALSE; |
26 | } | 27 | } |
27 | 28 | ||
28 | if(!( | 29 | if(!( |
29 | INSTALLFILE(SKINAME ".ex_",path, SKINAME ".exe") && | 30 | INSTALLFILE(SKINAME ".ex_",path, SKINAME ".exe") && |
30 | INSTALLFILE(SKINAME ".hl_",path, SKINAME ".hlp") && | 31 | INSTALLFILE(SKINAME ".hl_",path, SKINAME ".hlp") && |
31 | INSTALLFILE(SKINAME ".cn_",path, SKINAME ".cnt") | 32 | INSTALLFILE(SKINAME ".cn_",path, SKINAME ".cnt") |
32 | )){ | 33 | )){ |
33 | MessageBox(NULL,"Failed to install " KINAME "in specified directory",NULL,MB_ICONERROR|MB_OK); | 34 | MessageBox(NULL,"Failed to install " KINAME "in specified directory",NULL,MB_ICONERROR|MB_OK); |
34 | return FALSE; | 35 | return FALSE; |
35 | } | 36 | } |
36 | 37 | ||
37 | ADDMENU("Klever Group",SKINAME,path,SKINAME ".exe"); | 38 | ADDMENU("Klever Group",SKINAME,path,SKINAME ".exe"); |
38 | strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group",SKINAME "Path",path); | 39 | strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group",SKINAME "Path",path); |
39 | strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group","KINPath",path); | 40 | strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group","KINPath",path); |
40 | 41 | ||
41 | FILE* inf=CREATE_INF_FILE(path,SKINAME ".INF"); | 42 | FILE* inf=CREATE_INF_FILE(path,SKINAME ".INF"); |
42 | if(!inf){ | 43 | if(!inf){ |
43 | MessageBox(NULL,"Failed to install " KINAME,NULL,MB_ICONERROR|MB_OK); | 44 | MessageBox(NULL,"Failed to install " KINAME,NULL,MB_ICONERROR|MB_OK); |
44 | return FALSE; | 45 | return FALSE; |
45 | 46 | ||
46 | } | 47 | } |
47 | 48 | ||
48 | INF_FILE_HEADER(inf); | 49 | INF_FILE_HEADER(inf); |
49 | INF_FILE_SECTION(inf,"Uninstall"); | 50 | INF_FILE_SECTION(inf,"Uninstall"); |
50 | fprintf(inf,"AddReg=kFiles\nDelReg=kReg\nUpdateInis=kMenu\n"); | 51 | fprintf(inf,"AddReg=kFiles\nDelReg=kReg\nUpdateInis=kMenu\n"); |
51 | 52 | ||
52 | INF_FILE_SECTION(inf,"kFiles"); | 53 | INF_FILE_SECTION(inf,"kFiles"); |
53 | INF_REMOVE_ROOT(inf,SKINAME "Files",shortPath); | 54 | INF_REMOVE_ROOT(inf,SKINAME "Files",shortPath); |
54 | INF_REMOVE_FILE(inf,SKINAME "Files",SKINAME ".exe"); | 55 | INF_REMOVE_FILE(inf,SKINAME "Files",SKINAME ".exe"); |
55 | INF_REMOVE_HELP_FILE(inf,SKINAME "Files",SKINAME); | 56 | INF_REMOVE_HELP_FILE(inf,SKINAME "Files",SKINAME); |
56 | INF_REMOVE_FILE(inf,SKINAME "Files",SKINAME ".inf"); | 57 | INF_REMOVE_FILE(inf,SKINAME "Files",SKINAME ".inf"); |
57 | 58 | ||
58 | INF_FILE_SECTION(inf,"kReg"); | 59 | INF_FILE_SECTION(inf,"kReg"); |
59 | INF_UNINSTALL_REG(inf,SKINAME); | 60 | INF_UNINSTALL_REG(inf,SKINAME); |
60 | 61 | ||
61 | INF_FILE_SECTION(inf,"kMenu"); | 62 | INF_FILE_SECTION(inf,"kMenu"); |
62 | INF_MENU_GROUP(inf,1,"Klever Group"); | 63 | INF_MENU_GROUP(inf,1,"Klever Group"); |
63 | INF_MENU_ITEM(inf,1,SKINAME); | 64 | INF_MENU_ITEM(inf,1,SKINAME); |
64 | fclose(inf); | 65 | fclose(inf); |
65 | REG_UNINSTALL_COMMAND(SKINAME,"Klever " KINAME,shortPath,SKINAME ".INF","Uninstall"); | 66 | REG_UNINSTALL_COMMAND(SKINAME,"Klever " KINAME,shortPath,SKINAME ".INF","Uninstall"); |
67 | REG_UNINSTALL_ICON(SKINAME,path,SKINAME ".exe",0); | ||
68 | REG_UNINSTALL_COMMENT(SKINAME,"Klever " KINAME); | ||
69 | REG_UNINSTALL_VERSION(SKINAME,VERSION); | ||
70 | REG_UNINSTALL_LOCATION(SKINAME,path); | ||
71 | REG_UNINSTALL_PUBLISHER(SKINAME,"Klever Group"); | ||
72 | REG_UNINSTALL_URLS(SKINAME,"http://www.klever.net/","http://kin.klever.net/klog/"); | ||
66 | 73 | ||
67 | MessageBox(NULL,KINAME " installed successfully, you may now run it from 'Programs/Klever Group' menu, move it to your Startup group or remove it using Control Panel Add/Remove Programs applet."," Rejoice!",MB_ICONINFORMATION|MB_OK); | 74 | MessageBox(NULL,KINAME " installed successfully, you may now run it from 'Programs/Klever Group' menu, move it to your Startup group or remove it using Control Panel Add/Remove Programs applet."," Rejoice!",MB_ICONINFORMATION|MB_OK); |
68 | 75 | ||
69 | return TRUE; | 76 | return TRUE; |
70 | } | 77 | } |
diff --git a/install/install.rc b/install/install.rc index cee7f66..2de75ab 100644 --- a/install/install.rc +++ b/install/install.rc | |||
@@ -6,177 +6,177 @@ | |||
6 | ///////////////////////////////////////////////////////////////////////////// | 6 | ///////////////////////////////////////////////////////////////////////////// |
7 | // | 7 | // |
8 | // Generated from the TEXTINCLUDE 2 resource. | 8 | // Generated from the TEXTINCLUDE 2 resource. |
9 | // | 9 | // |
10 | #include "afxres.h" | 10 | #include "afxres.h" |
11 | 11 | ||
12 | ///////////////////////////////////////////////////////////////////////////// | 12 | ///////////////////////////////////////////////////////////////////////////// |
13 | #undef APSTUDIO_READONLY_SYMBOLS | 13 | #undef APSTUDIO_READONLY_SYMBOLS |
14 | 14 | ||
15 | ///////////////////////////////////////////////////////////////////////////// | 15 | ///////////////////////////////////////////////////////////////////////////// |
16 | // English (U.S.) resources | 16 | // English (U.S.) resources |
17 | 17 | ||
18 | #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) | 18 | #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) |
19 | #ifdef _WIN32 | 19 | #ifdef _WIN32 |
20 | LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US | 20 | LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US |
21 | #pragma code_page(1252) | 21 | #pragma code_page(1252) |
22 | #endif //_WIN32 | 22 | #endif //_WIN32 |
23 | 23 | ||
24 | ///////////////////////////////////////////////////////////////////////////// | 24 | ///////////////////////////////////////////////////////////////////////////// |
25 | // | 25 | // |
26 | // Dialog | 26 | // Dialog |
27 | // | 27 | // |
28 | 28 | ||
29 | #if defined(APSTUDIO_INVOKED) || defined(FALSE) | 29 | #if defined(APSTUDIO_INVOKED) || defined(FALSE) |
30 | #if defined(APSTUDIO_INVOKED) | 30 | #if defined(APSTUDIO_INVOKED) |
31 | IDD_INSTALLING$(FALSE) DIALOGEX 0, 0, 200, 74 | 31 | IDD_INSTALLING$(FALSE) DIALOGEX 0, 0, 200, 74 |
32 | #else | 32 | #else |
33 | IDD_INSTALLING DIALOGEX 0, 0, 200, 74 | 33 | IDD_INSTALLING DIALOGEX 0, 0, 200, 74 |
34 | #endif | 34 | #endif |
35 | STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | 35 | STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP |
36 | FONT 8, "MS Sans Serif", 0, 0, 0x1 | 36 | FONT 8, "MS Sans Serif", 0, 0, 0x1 |
37 | BEGIN | 37 | BEGIN |
38 | PUSHBUTTON "Cancel",IDCANCEL,143,53,50,14,BS_CENTER | BS_VCENTER | | 38 | PUSHBUTTON "Cancel",IDCANCEL,143,53,50,14,BS_CENTER | BS_VCENTER | |
39 | BS_NOTIFY | BS_FLAT,WS_EX_DLGMODALFRAME | 39 | BS_NOTIFY | BS_FLAT,WS_EX_DLGMODALFRAME |
40 | CONTROL "Animate1",IDC_DISKS,"SysAnimate32",ACS_TRANSPARENT | | 40 | CONTROL "Animate1",IDC_DISKS,"SysAnimate32",ACS_TRANSPARENT | |
41 | ACS_AUTOPLAY | WS_TABSTOP,161,7,32,32 | 41 | ACS_AUTOPLAY | WS_TABSTOP,161,7,32,32 |
42 | LTEXT "",IDC_STATE,7,7,150,32,SS_NOPREFIX | SS_NOTIFY | 42 | LTEXT "",IDC_STATE,7,7,150,32,SS_NOPREFIX | SS_NOTIFY |
43 | CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",0x0,7,45, | 43 | CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",0x0,7,45, |
44 | 186,7,WS_EX_DLGMODALFRAME | 44 | 186,7,WS_EX_DLGMODALFRAME |
45 | END | 45 | END |
46 | #endif | 46 | #endif |
47 | 47 | ||
48 | IDD_PATH DIALOGEX 0, 0, 255, 73 | 48 | IDD_PATH DIALOGEX 0, 0, 255, 73 |
49 | STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | WS_POPUP | | 49 | STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | WS_POPUP | |
50 | WS_VISIBLE | WS_CAPTION | 50 | WS_VISIBLE | WS_CAPTION |
51 | EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE | 51 | EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE |
52 | FONT 8, "MS Sans Serif", 0, 0, 0x1 | 52 | FONT 8, "MS Sans Serif", 0, 0, 0x1 |
53 | BEGIN | 53 | BEGIN |
54 | LTEXT "",IDC_PROMPT,7,7,241,30 | 54 | LTEXT "",IDC_PROMPT,7,7,241,30 |
55 | EDITTEXT IDC_PATH,7,37,195,12,ES_AUTOHSCROLL | 55 | EDITTEXT IDC_PATH,7,37,195,12,ES_AUTOHSCROLL |
56 | PUSHBUTTON "B&rowse..",IDC_BROWSE,208,37,40,12 | 56 | PUSHBUTTON "B&rowse..",IDC_BROWSE,208,37,40,12 |
57 | DEFPUSHBUTTON "OK",IDOK,69,52,50,14 | 57 | DEFPUSHBUTTON "OK",IDOK,69,52,50,14 |
58 | PUSHBUTTON "Cancel",IDCANCEL,135,52,50,14 | 58 | PUSHBUTTON "Cancel",IDCANCEL,135,52,50,14 |
59 | END | 59 | END |
60 | 60 | ||
61 | 61 | ||
62 | ///////////////////////////////////////////////////////////////////////////// | 62 | ///////////////////////////////////////////////////////////////////////////// |
63 | // | 63 | // |
64 | // DESIGNINFO | 64 | // DESIGNINFO |
65 | // | 65 | // |
66 | 66 | ||
67 | #ifdef APSTUDIO_INVOKED | 67 | #ifdef APSTUDIO_INVOKED |
68 | GUIDELINES DESIGNINFO DISCARDABLE | 68 | GUIDELINES DESIGNINFO DISCARDABLE |
69 | BEGIN | 69 | BEGIN |
70 | "IDD_INSTALLING$(FALSE)", DIALOG | 70 | "IDD_INSTALLING$(FALSE)", DIALOG |
71 | BEGIN | 71 | BEGIN |
72 | LEFTMARGIN, 7 | 72 | LEFTMARGIN, 7 |
73 | RIGHTMARGIN, 193 | 73 | RIGHTMARGIN, 193 |
74 | TOPMARGIN, 7 | 74 | TOPMARGIN, 7 |
75 | BOTTOMMARGIN, 67 | 75 | BOTTOMMARGIN, 67 |
76 | HORZGUIDE, 39 | 76 | HORZGUIDE, 39 |
77 | END | 77 | END |
78 | 78 | ||
79 | IDD_PATH, DIALOG | 79 | IDD_PATH, DIALOG |
80 | BEGIN | 80 | BEGIN |
81 | LEFTMARGIN, 7 | 81 | LEFTMARGIN, 7 |
82 | RIGHTMARGIN, 248 | 82 | RIGHTMARGIN, 248 |
83 | VERTGUIDE, 202 | 83 | VERTGUIDE, 202 |
84 | VERTGUIDE, 208 | 84 | VERTGUIDE, 208 |
85 | TOPMARGIN, 7 | 85 | TOPMARGIN, 7 |
86 | BOTTOMMARGIN, 66 | 86 | BOTTOMMARGIN, 66 |
87 | HORZGUIDE, 37 | 87 | HORZGUIDE, 37 |
88 | END | 88 | END |
89 | END | 89 | END |
90 | #endif // APSTUDIO_INVOKED | 90 | #endif // APSTUDIO_INVOKED |
91 | 91 | ||
92 | 92 | ||
93 | #ifdef APSTUDIO_INVOKED | 93 | #ifdef APSTUDIO_INVOKED |
94 | ///////////////////////////////////////////////////////////////////////////// | 94 | ///////////////////////////////////////////////////////////////////////////// |
95 | // | 95 | // |
96 | // TEXTINCLUDE | 96 | // TEXTINCLUDE |
97 | // | 97 | // |
98 | 98 | ||
99 | 1 TEXTINCLUDE DISCARDABLE | 99 | 1 TEXTINCLUDE DISCARDABLE |
100 | BEGIN | 100 | BEGIN |
101 | "resource.h\0" | 101 | "resource.h\0" |
102 | END | 102 | END |
103 | 103 | ||
104 | 2 TEXTINCLUDE DISCARDABLE | 104 | 2 TEXTINCLUDE DISCARDABLE |
105 | BEGIN | 105 | BEGIN |
106 | "#include ""afxres.h""\r\n" | 106 | "#include ""afxres.h""\r\n" |
107 | "\0" | 107 | "\0" |
108 | END | 108 | END |
109 | 109 | ||
110 | 3 TEXTINCLUDE DISCARDABLE | 110 | 3 TEXTINCLUDE DISCARDABLE |
111 | BEGIN | 111 | BEGIN |
112 | "#include ""custom.rch""\0" | 112 | "#include ""custom.rch""\0" |
113 | END | 113 | END |
114 | 114 | ||
115 | #endif // APSTUDIO_INVOKED | 115 | #endif // APSTUDIO_INVOKED |
116 | 116 | ||
117 | 117 | ||
118 | ///////////////////////////////////////////////////////////////////////////// | 118 | ///////////////////////////////////////////////////////////////////////////// |
119 | // | 119 | // |
120 | // Icon | 120 | // Icon |
121 | // | 121 | // |
122 | 122 | ||
123 | // Icon with lowest ID value placed first to ensure application icon | 123 | // Icon with lowest ID value placed first to ensure application icon |
124 | // remains consistent on all systems. | 124 | // remains consistent on all systems. |
125 | IDI_ICON ICON DISCARDABLE "../shared-data/install-icon.ico" | 125 | IDI_ICON ICON DISCARDABLE "../shared-data/install-icon.ico" |
126 | 126 | ||
127 | #ifndef _MAC | 127 | #ifndef _MAC |
128 | ///////////////////////////////////////////////////////////////////////////// | 128 | ///////////////////////////////////////////////////////////////////////////// |
129 | // | 129 | // |
130 | // Version | 130 | // Version |
131 | // | 131 | // |
132 | 132 | ||
133 | VS_VERSION_INFO VERSIONINFO | 133 | VS_VERSION_INFO VERSIONINFO |
134 | FILEVERSION 1,1,1,0 | 134 | FILEVERSION 1,2,0,0 |
135 | PRODUCTVERSION 1,1,1,0 | 135 | PRODUCTVERSION 1,2,0,0 |
136 | FILEFLAGSMASK 0x3fL | 136 | FILEFLAGSMASK 0x3fL |
137 | #ifdef _DEBUG | 137 | #ifdef _DEBUG |
138 | FILEFLAGS 0x1L | 138 | FILEFLAGS 0x1L |
139 | #else | 139 | #else |
140 | FILEFLAGS 0x0L | 140 | FILEFLAGS 0x0L |
141 | #endif | 141 | #endif |
142 | FILEOS 0x40004L | 142 | FILEOS 0x40004L |
143 | FILETYPE 0x1L | 143 | FILETYPE 0x1L |
144 | FILESUBTYPE 0x0L | 144 | FILESUBTYPE 0x0L |
145 | BEGIN | 145 | BEGIN |
146 | BLOCK "StringFileInfo" | 146 | BLOCK "StringFileInfo" |
147 | BEGIN | 147 | BEGIN |
148 | BLOCK "040904b0" | 148 | BLOCK "040904b0" |
149 | BEGIN | 149 | BEGIN |
150 | VALUE "CompanyName", "Klever Group (http://www.klever.net/)\0" | 150 | VALUE "CompanyName", "Klever Group (http://www.klever.net/)\0" |
151 | VALUE "FileDescription", "INSTALL: KLog, logging daemon\0" | 151 | VALUE "FileDescription", "INSTALL: KLog, logging daemon\0" |
152 | VALUE "FileVersion", "1, 1, 1, 0\0" | 152 | VALUE "FileVersion", "1, 2, 0, 0\0" |
153 | VALUE "InternalName", "INSTALL\0" | 153 | VALUE "InternalName", "INSTALL\0" |
154 | VALUE "LegalCopyright", "Copyright © 1998-2005 Klever Group (http://www.klever.net/)\0" | 154 | VALUE "LegalCopyright", "Copyright © 1998-2005 Klever Group (http://www.klever.net/)\0" |
155 | VALUE "LegalTrademarks", "Klever Group (http://www.klever.net/)\0" | 155 | VALUE "LegalTrademarks", "Klever Group (http://www.klever.net/)\0" |
156 | VALUE "OriginalFilename", "INSTALL.EXE\0" | 156 | VALUE "OriginalFilename", "INSTALL.EXE\0" |
157 | VALUE "ProductName", "KLog\0" | 157 | VALUE "ProductName", "KLog\0" |
158 | VALUE "ProductVersion", "1, 1, 1, 0\0" | 158 | VALUE "ProductVersion", "1, 2, 0, 0\0" |
159 | END | 159 | END |
160 | END | 160 | END |
161 | BLOCK "VarFileInfo" | 161 | BLOCK "VarFileInfo" |
162 | BEGIN | 162 | BEGIN |
163 | VALUE "Translation", 0x409, 1200 | 163 | VALUE "Translation", 0x409, 1200 |
164 | END | 164 | END |
165 | END | 165 | END |
166 | 166 | ||
167 | #endif // !_MAC | 167 | #endif // !_MAC |
168 | 168 | ||
169 | #endif // English (U.S.) resources | 169 | #endif // English (U.S.) resources |
170 | ///////////////////////////////////////////////////////////////////////////// | 170 | ///////////////////////////////////////////////////////////////////////////// |
171 | 171 | ||
172 | 172 | ||
173 | 173 | ||
174 | #ifndef APSTUDIO_INVOKED | 174 | #ifndef APSTUDIO_INVOKED |
175 | ///////////////////////////////////////////////////////////////////////////// | 175 | ///////////////////////////////////////////////////////////////////////////// |
176 | // | 176 | // |
177 | // Generated from the TEXTINCLUDE 3 resource. | 177 | // Generated from the TEXTINCLUDE 3 resource. |
178 | // | 178 | // |
179 | #include "custom.rch" | 179 | #include "custom.rch" |
180 | ///////////////////////////////////////////////////////////////////////////// | 180 | ///////////////////////////////////////////////////////////////////////////// |
181 | #endif // not APSTUDIO_INVOKED | 181 | #endif // not APSTUDIO_INVOKED |
182 | 182 | ||