1 /*=============================================================================
\r
5 ===============================================================================
\r
6 / Copyright (C) 1997-2007 Sota. All rights reserved.
\r
8 / Redistribution and use in source and binary forms, with or without
\r
9 / modification, are permitted provided that the following conditions
\r
12 / 1. Redistributions of source code must retain the above copyright
\r
13 / notice, this list of conditions and the following disclaimer.
\r
14 / 2. Redistributions in binary form must reproduce the above copyright
\r
15 / notice, this list of conditions and the following disclaimer in the
\r
16 / documentation and/or other materials provided with the distribution.
\r
18 / THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
\r
19 / IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
\r
20 / OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
\r
21 / IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
\r
22 / INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
\r
23 / BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
\r
24 / USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
\r
25 / ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
\r
26 / (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
\r
27 / THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\r
28 /============================================================================*/
\r
32 #include <winsock2.h>
\r
33 #include <windows.h>
\r
37 #include <commctrl.h>
\r
38 #include <windowsx.h>
\r
41 #include "resource.h"
\r
43 #include <htmlhelp.h>
\r
47 #undef __MBSWRAPPER_H__
\r
48 #include "mbswrapper.h"
\r
51 /*===== プロトタイプ =====*/
\r
54 //static BOOL CALLBACK UserSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
55 //static BOOL CALLBACK Trmode1SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
56 //static BOOL CALLBACK Trmode2SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
57 //static BOOL CALLBACK Trmode3SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
58 //static BOOL CALLBACK DefAttrDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
59 static INT_PTR CALLBACK UserSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
60 static INT_PTR CALLBACK Trmode1SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
61 static INT_PTR CALLBACK Trmode2SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
62 static INT_PTR CALLBACK Trmode3SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
64 static INT_PTR CALLBACK Trmode4SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
65 static INT_PTR CALLBACK DefAttrDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
66 static void AddFnameAttrToListView(HWND hDlg, char *Fname, char *Attr);
\r
67 static void GetFnameAttrFromListView(HWND hDlg, char *Buf);
\r
70 //static BOOL CALLBACK MirrorSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
71 //static BOOL CALLBACK NotifySettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
72 //static BOOL CALLBACK DispSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
73 static INT_PTR CALLBACK MirrorSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
74 static INT_PTR CALLBACK NotifySettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
75 static INT_PTR CALLBACK Disp1SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
76 static INT_PTR CALLBACK Disp2SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
77 static int SelectListFont(HWND hWnd, LOGFONT *lFont);
\r
79 //static BOOL CALLBACK ConnectSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
80 //static BOOL CALLBACK FireSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
81 //static BOOL CALLBACK ToolSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
82 //static BOOL CALLBACK SoundSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
83 //static BOOL CALLBACK MiscSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
84 //static BOOL CALLBACK SortSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
85 static INT_PTR CALLBACK ConnectSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
86 static INT_PTR CALLBACK FireSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
87 static INT_PTR CALLBACK ToolSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
88 static INT_PTR CALLBACK SoundSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
89 static INT_PTR CALLBACK MiscSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
90 static INT_PTR CALLBACK SortSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
92 static INT_PTR CALLBACK UpdatesSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
94 //static int GetDecimalText(HWND hDlg, int Ctrl);
\r
95 //static void SetDecimalText(HWND hDlg, int Ctrl, int Num);
\r
96 //static void CheckRange2(int *Cur, int Max, int Min);
\r
97 //static void AddTextToListBox(HWND hDlg, char *Str, int CtrlList, int BufSize);
\r
98 //static void SetMultiTextToList(HWND hDlg, int CtrlList, char *Text);
\r
99 //static void GetMultiTextFromList(HWND hDlg, int CtrlList, char *Buf, int BufSize);
\r
100 int GetDecimalText(HWND hDlg, int Ctrl);
\r
101 void SetDecimalText(HWND hDlg, int Ctrl, int Num);
\r
102 void CheckRange2(int *Cur, int Max, int Min);
\r
103 void AddTextToListBox(HWND hDlg, char *Str, int CtrlList, int BufSize);
\r
104 void SetMultiTextToList(HWND hDlg, int CtrlList, char *Text);
\r
105 void GetMultiTextFromList(HWND hDlg, int CtrlList, char *Buf, int BufSize);
\r
110 char Fname[FMAX_PATH+1];
\r
118 /*===== 外部参照 =====*/
\r
120 extern HWND hHelpWin;
\r
123 extern char UserMailAdrs[USER_MAIL_LEN+1];
\r
124 extern char ViewerName[VIEWERS][FMAX_PATH+1];
\r
125 extern int ConnectOnStart;
\r
126 extern int DebugConsole;
\r
127 extern int SaveWinPos;
\r
128 extern char AsciiExt[ASCII_EXT_LEN+1];
\r
129 extern int RecvMode;
\r
130 extern int SendMode;
\r
131 extern int MoveMode;
\r
132 extern int CacheEntry;
\r
133 extern int CacheSave;
\r
134 extern char FwallHost[HOST_ADRS_LEN+1];
\r
135 extern char FwallUser[USER_NAME_LEN+1];
\r
136 extern char FwallPass[PASSWORD_LEN+1];
\r
137 extern int FwallPort;
\r
138 extern int FwallType;
\r
139 extern int FwallDefault;
\r
140 extern int FwallSecurity;
\r
141 extern int FwallResolve;
\r
142 extern int FwallLower;
\r
143 extern int FwallDelimiter;
\r
144 extern int PasvDefault;
\r
145 extern char DefaultLocalPath[FMAX_PATH+1];
\r
146 extern int SaveTimeStamp;
\r
147 extern int DclickOpen;
\r
148 extern SOUNDFILE Sound[SOUND_TYPES];
\r
149 extern int FnameCnv;
\r
150 extern int ConnectAndSet;
\r
151 extern int TimeOut;
\r
153 extern int RegType;
\r
154 extern char MirrorNoTrn[MIRROR_LEN+1];
\r
155 extern char MirrorNoDel[MIRROR_LEN+1];
\r
156 extern int MirrorFnameCnv;
\r
157 extern int RasClose;
\r
158 extern int RasCloseNotify;
\r
159 extern int FileHist;
\r
160 extern char DefAttrList[DEFATTRLIST_LEN+1];
\r
161 extern char TmpPath[FMAX_PATH+1];
\r
162 extern int QuickAnonymous;
\r
163 extern int PassToHist;
\r
164 extern int VaxSemicolon;
\r
165 extern int SendQuit;
\r
166 extern int NoRasControl;
\r
167 extern int DispIgnoreHide;
\r
168 extern int DispDrives;
\r
169 extern HFONT ListFont;
\r
170 extern LOGFONT ListLogFont;
\r
171 extern int MirUpDelNotify;
\r
172 extern int MirDownDelNotify;
\r
173 extern int FolderAttr;
\r
174 extern int FolderAttrNum;
\r
176 extern int DispFileIcon;
\r
178 extern int DispTimeSeconds;
\r
180 extern int DispPermissionsNumber;
\r
182 extern int MakeAllDir;
\r
184 extern int UPnPEnabled;
\r
186 extern int EncryptAllSettings;
\r
188 extern int AutoRefreshFileList;
\r
190 extern int RemoveOldLog;
\r
192 extern int AutoCheckForUpdates;
\r
193 extern int AutoApplyUpdates;
\r
194 extern int AutoCheckForUptatesInterval;
\r
196 extern int AbortOnListError;
\r
198 extern int MirrorNoTransferContents;
\r
200 extern int FwallNoSaveUser;
\r
203 /*----- オプションのプロパティシート ------------------------------------------
\r
210 *----------------------------------------------------------------------------*/
\r
212 void SetOption(int Start)
\r
215 // PROPSHEETPAGE psp[12];
\r
216 PROPSHEETPAGE psp[15];
\r
217 PROPSHEETHEADER psh;
\r
220 memset(&psp, 0, sizeof(psp));
\r
221 memset(&psh, 0, sizeof(psh));
\r
223 psp[0].dwSize = sizeof(PROPSHEETPAGE);
\r
224 psp[0].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
225 psp[0].hInstance = GetFtpInst();
\r
226 psp[0].pszTemplate = MAKEINTRESOURCE(opt_user_dlg);
\r
227 psp[0].pszIcon = NULL;
\r
228 psp[0].pfnDlgProc = UserSettingProc;
\r
229 psp[0].pszTitle = MSGJPN186;
\r
231 psp[0].pfnCallback = NULL;
\r
233 psp[1].dwSize = sizeof(PROPSHEETPAGE);
\r
234 psp[1].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
235 psp[1].hInstance = GetFtpInst();
\r
236 psp[1].pszTemplate = MAKEINTRESOURCE(opt_trmode1_dlg);
\r
237 psp[1].pszIcon = NULL;
\r
238 psp[1].pfnDlgProc = Trmode1SettingProc;
\r
239 psp[1].pszTitle = MSGJPN187;
\r
241 psp[1].pfnCallback = NULL;
\r
243 psp[2].dwSize = sizeof(PROPSHEETPAGE);
\r
244 psp[2].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
245 psp[2].hInstance = GetFtpInst();
\r
246 psp[2].pszTemplate = MAKEINTRESOURCE(opt_trmode2_dlg);
\r
247 psp[2].pszIcon = NULL;
\r
248 psp[2].pfnDlgProc = Trmode2SettingProc;
\r
249 psp[2].pszTitle = MSGJPN188;
\r
251 psp[2].pfnCallback = NULL;
\r
253 psp[3].dwSize = sizeof(PROPSHEETPAGE);
\r
254 psp[3].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
255 psp[3].hInstance = GetFtpInst();
\r
256 psp[3].pszTemplate = MAKEINTRESOURCE(opt_trmode3_dlg);
\r
257 psp[3].pszIcon = NULL;
\r
258 psp[3].pfnDlgProc = Trmode3SettingProc;
\r
259 psp[3].pszTitle = MSGJPN189;
\r
261 psp[3].pfnCallback = NULL;
\r
264 // psp[4].dwSize = sizeof(PROPSHEETPAGE);
\r
265 // psp[4].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
266 // psp[4].hInstance = GetFtpInst();
\r
267 // psp[4].pszTemplate = MAKEINTRESOURCE(opt_mirror_dlg);
\r
268 // psp[4].pszIcon = NULL;
\r
269 // psp[4].pfnDlgProc = MirrorSettingProc;
\r
270 // psp[4].pszTitle = MSGJPN190;
\r
271 // psp[4].lParam = 0;
\r
272 // psp[4].pfnCallback = NULL;
\r
274 // psp[5].dwSize = sizeof(PROPSHEETPAGE);
\r
275 // psp[5].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
276 // psp[5].hInstance = GetFtpInst();
\r
277 // psp[5].pszTemplate = MAKEINTRESOURCE(opt_notify_dlg);
\r
278 // psp[5].pszIcon = NULL;
\r
279 // psp[5].pfnDlgProc = NotifySettingProc;
\r
280 // psp[5].pszTitle = MSGJPN191;
\r
281 // psp[5].lParam = 0;
\r
282 // psp[5].pfnCallback = NULL;
\r
284 // psp[6].dwSize = sizeof(PROPSHEETPAGE);
\r
285 // psp[6].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
286 // psp[6].hInstance = GetFtpInst();
\r
287 // psp[6].pszTemplate = MAKEINTRESOURCE(opt_disp_dlg);
\r
288 // psp[6].pszIcon = NULL;
\r
289 // psp[6].pfnDlgProc = DispSettingProc;
\r
290 // psp[6].pszTitle = MSGJPN192;
\r
291 // psp[6].lParam = 0;
\r
292 // psp[6].pfnCallback = NULL;
\r
294 // psp[7].dwSize = sizeof(PROPSHEETPAGE);
\r
295 // psp[7].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
296 // psp[7].hInstance = GetFtpInst();
\r
297 // psp[7].pszTemplate = MAKEINTRESOURCE(opt_connect_dlg);
\r
298 // psp[7].pszIcon = NULL;
\r
299 // psp[7].pfnDlgProc = ConnectSettingProc;
\r
300 // psp[7].pszTitle = MSGJPN193;
\r
301 // psp[7].lParam = 0;
\r
302 // psp[7].pfnCallback = NULL;
\r
304 // psp[8].dwSize = sizeof(PROPSHEETPAGE);
\r
305 // psp[8].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
306 // psp[8].hInstance = GetFtpInst();
\r
307 // psp[8].pszTemplate = MAKEINTRESOURCE(opt_fire_dlg);
\r
308 // psp[8].pszIcon = NULL;
\r
309 // psp[8].pfnDlgProc = FireSettingProc;
\r
310 // psp[8].pszTitle = MSGJPN194;
\r
311 // psp[8].lParam = 0;
\r
312 // psp[8].pfnCallback = NULL;
\r
314 // psp[9].dwSize = sizeof(PROPSHEETPAGE);
\r
315 // psp[9].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
316 // psp[9].hInstance = GetFtpInst();
\r
317 // psp[9].pszTemplate = MAKEINTRESOURCE(opt_tool_dlg);
\r
318 // psp[9].pszIcon = NULL;
\r
319 // psp[9].pfnDlgProc = ToolSettingProc;
\r
320 // psp[9].pszTitle = MSGJPN195;
\r
321 // psp[9].lParam = 0;
\r
322 // psp[9].pfnCallback = NULL;
\r
324 // psp[10].dwSize = sizeof(PROPSHEETPAGE);
\r
325 // psp[10].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
326 // psp[10].hInstance = GetFtpInst();
\r
327 // psp[10].pszTemplate = MAKEINTRESOURCE(opt_sound_dlg);
\r
328 // psp[10].pszIcon = NULL;
\r
329 // psp[10].pfnDlgProc = SoundSettingProc;
\r
330 // psp[10].pszTitle = MSGJPN196;
\r
331 // psp[10].lParam = 0;
\r
332 // psp[10].pfnCallback = NULL;
\r
334 // psp[11].dwSize = sizeof(PROPSHEETPAGE);
\r
335 // psp[11].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
336 // psp[11].hInstance = GetFtpInst();
\r
337 // psp[11].pszTemplate = MAKEINTRESOURCE(opt_misc_dlg);
\r
338 // psp[11].pszIcon = NULL;
\r
339 // psp[11].pfnDlgProc = MiscSettingProc;
\r
340 // psp[11].pszTitle = MSGJPN197;
\r
341 // psp[11].lParam = 0;
\r
342 // psp[11].pfnCallback = NULL;
\r
344 psp[4].dwSize = sizeof(PROPSHEETPAGE);
\r
345 psp[4].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
346 psp[4].hInstance = GetFtpInst();
\r
347 psp[4].pszTemplate = MAKEINTRESOURCE(opt_trmode4_dlg);
\r
348 psp[4].pszIcon = NULL;
\r
349 psp[4].pfnDlgProc = Trmode4SettingProc;
\r
350 psp[4].pszTitle = MSGJPN339;
\r
352 psp[4].pfnCallback = NULL;
\r
354 psp[5].dwSize = sizeof(PROPSHEETPAGE);
\r
355 psp[5].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
356 psp[5].hInstance = GetFtpInst();
\r
357 psp[5].pszTemplate = MAKEINTRESOURCE(opt_mirror_dlg);
\r
358 psp[5].pszIcon = NULL;
\r
359 psp[5].pfnDlgProc = MirrorSettingProc;
\r
360 psp[5].pszTitle = MSGJPN190;
\r
362 psp[5].pfnCallback = NULL;
\r
364 psp[6].dwSize = sizeof(PROPSHEETPAGE);
\r
365 psp[6].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
366 psp[6].hInstance = GetFtpInst();
\r
367 psp[6].pszTemplate = MAKEINTRESOURCE(opt_notify_dlg);
\r
368 psp[6].pszIcon = NULL;
\r
369 psp[6].pfnDlgProc = NotifySettingProc;
\r
370 psp[6].pszTitle = MSGJPN191;
\r
372 psp[6].pfnCallback = NULL;
\r
374 psp[7].dwSize = sizeof(PROPSHEETPAGE);
\r
375 psp[7].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
376 psp[7].hInstance = GetFtpInst();
\r
377 psp[7].pszTemplate = MAKEINTRESOURCE(opt_disp1_dlg);
\r
378 psp[7].pszIcon = NULL;
\r
379 psp[7].pfnDlgProc = Disp1SettingProc;
\r
380 psp[7].pszTitle = MSGJPN192;
\r
382 psp[7].pfnCallback = NULL;
\r
384 psp[8].dwSize = sizeof(PROPSHEETPAGE);
\r
385 psp[8].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
386 psp[8].hInstance = GetFtpInst();
\r
387 psp[8].pszTemplate = MAKEINTRESOURCE(opt_disp2_dlg);
\r
388 psp[8].pszIcon = NULL;
\r
389 psp[8].pfnDlgProc = Disp2SettingProc;
\r
390 psp[8].pszTitle = MSGJPN340;
\r
392 psp[8].pfnCallback = NULL;
\r
394 psp[9].dwSize = sizeof(PROPSHEETPAGE);
\r
395 psp[9].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
396 psp[9].hInstance = GetFtpInst();
\r
397 psp[9].pszTemplate = MAKEINTRESOURCE(opt_connect_dlg);
\r
398 psp[9].pszIcon = NULL;
\r
399 psp[9].pfnDlgProc = ConnectSettingProc;
\r
400 psp[9].pszTitle = MSGJPN193;
\r
402 psp[9].pfnCallback = NULL;
\r
404 psp[10].dwSize = sizeof(PROPSHEETPAGE);
\r
405 psp[10].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
406 psp[10].hInstance = GetFtpInst();
\r
407 psp[10].pszTemplate = MAKEINTRESOURCE(opt_fire_dlg);
\r
408 psp[10].pszIcon = NULL;
\r
409 psp[10].pfnDlgProc = FireSettingProc;
\r
410 psp[10].pszTitle = MSGJPN194;
\r
411 psp[10].lParam = 0;
\r
412 psp[10].pfnCallback = NULL;
\r
414 psp[11].dwSize = sizeof(PROPSHEETPAGE);
\r
415 psp[11].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
416 psp[11].hInstance = GetFtpInst();
\r
417 psp[11].pszTemplate = MAKEINTRESOURCE(opt_tool_dlg);
\r
418 psp[11].pszIcon = NULL;
\r
419 psp[11].pfnDlgProc = ToolSettingProc;
\r
420 psp[11].pszTitle = MSGJPN195;
\r
421 psp[11].lParam = 0;
\r
422 psp[11].pfnCallback = NULL;
\r
424 psp[12].dwSize = sizeof(PROPSHEETPAGE);
\r
425 psp[12].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
426 psp[12].hInstance = GetFtpInst();
\r
427 psp[12].pszTemplate = MAKEINTRESOURCE(opt_sound_dlg);
\r
428 psp[12].pszIcon = NULL;
\r
429 psp[12].pfnDlgProc = SoundSettingProc;
\r
430 psp[12].pszTitle = MSGJPN196;
\r
431 psp[12].lParam = 0;
\r
432 psp[12].pfnCallback = NULL;
\r
434 psp[13].dwSize = sizeof(PROPSHEETPAGE);
\r
435 psp[13].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
436 psp[13].hInstance = GetFtpInst();
\r
437 psp[13].pszTemplate = MAKEINTRESOURCE(opt_updates_dlg);
\r
438 psp[13].pszIcon = NULL;
\r
439 psp[13].pfnDlgProc = UpdatesSettingProc;
\r
440 psp[13].pszTitle = MSGJPN360;
\r
441 psp[13].lParam = 0;
\r
442 psp[13].pfnCallback = NULL;
\r
444 psp[14].dwSize = sizeof(PROPSHEETPAGE);
\r
445 psp[14].dwFlags = PSP_USETITLE | PSP_HASHELP;
\r
446 psp[14].hInstance = GetFtpInst();
\r
447 psp[14].pszTemplate = MAKEINTRESOURCE(opt_misc_dlg);
\r
448 psp[14].pszIcon = NULL;
\r
449 psp[14].pfnDlgProc = MiscSettingProc;
\r
450 psp[14].pszTitle = MSGJPN197;
\r
451 psp[14].lParam = 0;
\r
452 psp[14].pfnCallback = NULL;
\r
454 psh.dwSize = sizeof(PROPSHEETHEADER);
\r
455 psh.dwFlags = PSH_HASHELP | PSH_NOAPPLYNOW | PSH_PROPSHEETPAGE;
\r
456 psh.hwndParent = GetMainHwnd();
\r
457 psh.hInstance = GetFtpInst();
\r
458 psh.pszIcon = NULL;
\r
459 psh.pszCaption = MSGJPN198;
\r
460 psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
\r
461 psh.nStartPage = Start;
\r
462 psh.ppsp = (LPCPROPSHEETPAGE)&psp;
\r
463 psh.pfnCallback = NULL;
\r
465 PropertySheet(&psh);
\r
470 /*----- ユーザ設定ウインドウのコールバック ------------------------------------
\r
473 * HWND hDlg : ウインドウハンドル
\r
474 * UINT message : メッセージ番号
\r
475 * WPARAM wParam : メッセージの WPARAM 引数
\r
476 * LPARAM lParam : メッセージの LPARAM 引数
\r
480 *----------------------------------------------------------------------------*/
\r
483 //static BOOL CALLBACK UserSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
484 static INT_PTR CALLBACK UserSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
490 case WM_INITDIALOG :
\r
491 SendDlgItemMessage(hDlg, USER_ADRS, EM_LIMITTEXT, PASSWORD_LEN, 0);
\r
492 SendDlgItemMessage(hDlg, USER_ADRS, WM_SETTEXT, 0, (LPARAM)UserMailAdrs);
\r
496 pnmhdr = (NMHDR FAR *)lParam;
\r
497 switch(pnmhdr->code)
\r
500 SendDlgItemMessage(hDlg, USER_ADRS, WM_GETTEXT, USER_MAIL_LEN+1, (LPARAM)UserMailAdrs);
\r
507 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000041);
\r
516 /*----- 転送設定1ウインドウのコールバック ------------------------------------
\r
519 * HWND hDlg : ウインドウハンドル
\r
520 * UINT message : メッセージ番号
\r
521 * WPARAM wParam : メッセージの WPARAM 引数
\r
522 * LPARAM lParam : メッセージの LPARAM 引数
\r
526 *----------------------------------------------------------------------------*/
\r
529 //static BOOL CALLBACK Trmode1SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
530 static INT_PTR CALLBACK Trmode1SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
534 char Tmp[FMAX_PATH+1];
\r
537 static const RADIOBUTTON ModeButton[] = {
\r
538 { TRMODE_AUTO, TYPE_X },
\r
539 { TRMODE_ASCII, TYPE_A },
\r
540 { TRMODE_BIN, TYPE_I }
\r
542 #define MODEBUTTONS (sizeof(ModeButton)/sizeof(RADIOBUTTON))
\r
546 case WM_INITDIALOG :
\r
547 SetMultiTextToList(hDlg, TRMODE_EXT_LIST, AsciiExt);
\r
548 SetRadioButtonByValue(hDlg, AskTransferType(), ModeButton, MODEBUTTONS);
\r
549 SendDlgItemMessage(hDlg, TRMODE_TIME, BM_SETCHECK, SaveTimeStamp, 0);
\r
550 SendDlgItemMessage(hDlg, TRMODE_EOF, BM_SETCHECK, RmEOF, 0);
\r
551 SendDlgItemMessage(hDlg, TRMODE_SEMICOLON, BM_SETCHECK, VaxSemicolon, 0);
\r
553 SendDlgItemMessage(hDlg, TRMODE_MAKEDIR, BM_SETCHECK, MakeAllDir, 0);
\r
555 SendDlgItemMessage(hDlg, TRMODE_LISTERROR, BM_SETCHECK, AbortOnListError, 0);
\r
557 SendMessage(hDlg, WM_COMMAND, MAKEWPARAM(TRMODE_EXT_LIST, 0), 0);
\r
562 pnmhdr = (NMHDR FAR *)lParam;
\r
563 switch(pnmhdr->code)
\r
566 SetTransferTypeImm(AskRadioButtonValue(hDlg, ModeButton, MODEBUTTONS));
\r
567 SaveTransferType();
\r
568 GetMultiTextFromList(hDlg, TRMODE_EXT_LIST, AsciiExt, ASCII_EXT_LEN+1);
\r
569 SaveTimeStamp = SendDlgItemMessage(hDlg, TRMODE_TIME, BM_GETCHECK, 0, 0);
\r
570 RmEOF = SendDlgItemMessage(hDlg, TRMODE_EOF, BM_GETCHECK, 0, 0);
\r
571 VaxSemicolon = SendDlgItemMessage(hDlg, TRMODE_SEMICOLON, BM_GETCHECK, 0, 0);
\r
573 MakeAllDir = SendDlgItemMessage(hDlg, TRMODE_MAKEDIR, BM_GETCHECK, 0, 0);
\r
575 AbortOnListError = SendDlgItemMessage(hDlg, TRMODE_LISTERROR, BM_GETCHECK, 0, 0);
\r
582 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000042);
\r
588 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
590 case TRMODE_ASCII :
\r
592 EnableWindow(GetDlgItem(hDlg, TRMODE_EXT_LIST), FALSE);
\r
593 EnableWindow(GetDlgItem(hDlg, TRMODE_ADD), FALSE);
\r
594 EnableWindow(GetDlgItem(hDlg, TRMODE_DEL), FALSE);
\r
598 EnableWindow(GetDlgItem(hDlg, TRMODE_EXT_LIST), TRUE);
\r
599 EnableWindow(GetDlgItem(hDlg, TRMODE_ADD), TRUE);
\r
600 EnableWindow(GetDlgItem(hDlg, TRMODE_DEL), TRUE);
\r
605 if(InputDialogBox(fname_in_dlg, hDlg, MSGJPN199, Tmp, FMAX_PATH, &Trash, IDH_HELP_TOPIC_0000001) == YES)
\r
606 AddTextToListBox(hDlg, Tmp, TRMODE_EXT_LIST, ASCII_EXT_LEN+1);
\r
610 if((Num = SendDlgItemMessage(hDlg, TRMODE_EXT_LIST, LB_GETCURSEL, 0, 0)) != LB_ERR)
\r
611 SendDlgItemMessage(hDlg, TRMODE_EXT_LIST, LB_DELETESTRING, Num, 0);
\r
620 /*----- 転送設定2ウインドウのコールバック ------------------------------------
\r
623 * HWND hDlg : ウインドウハンドル
\r
624 * UINT message : メッセージ番号
\r
625 * WPARAM wParam : メッセージの WPARAM 引数
\r
626 * LPARAM lParam : メッセージの LPARAM 引数
\r
630 *----------------------------------------------------------------------------*/
\r
633 //static BOOL CALLBACK Trmode2SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
634 static INT_PTR CALLBACK Trmode2SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
637 char Tmp[FMAX_PATH+1];
\r
639 static const RADIOBUTTON CnvButton[] = {
\r
640 { TRMODE2_NOCNV, FNAME_NOCNV },
\r
641 { TRMODE2_LOWER, FNAME_LOWER },
\r
642 { TRMODE2_UPPER, FNAME_UPPER }
\r
644 #define CNVBUTTONS (sizeof(CnvButton)/sizeof(RADIOBUTTON))
\r
648 case WM_INITDIALOG :
\r
649 SendDlgItemMessage(hDlg, TRMODE2_LOCAL, EM_LIMITTEXT, FMAX_PATH, 0);
\r
650 SendDlgItemMessage(hDlg, TRMODE2_LOCAL, WM_SETTEXT, 0, (LPARAM)DefaultLocalPath);
\r
652 SetRadioButtonByValue(hDlg, FnameCnv, CnvButton, CNVBUTTONS);
\r
654 SendDlgItemMessage(hDlg, TRMODE2_TIMEOUT, EM_LIMITTEXT, (WPARAM)5, 0);
\r
655 sprintf(Tmp, "%d", TimeOut);
\r
656 SendDlgItemMessage(hDlg, TRMODE2_TIMEOUT, WM_SETTEXT, 0, (LPARAM)Tmp);
\r
657 SendDlgItemMessage(hDlg, TRMODE2_TIMEOUT_SPN, UDM_SETRANGE, 0, MAKELONG(300, 0));
\r
661 pnmhdr = (NMHDR FAR *)lParam;
\r
662 switch(pnmhdr->code)
\r
665 SendDlgItemMessage(hDlg, TRMODE2_LOCAL, WM_GETTEXT, FMAX_PATH+1, (LPARAM)DefaultLocalPath);
\r
667 FnameCnv = AskRadioButtonValue(hDlg, CnvButton, CNVBUTTONS);
\r
669 SendDlgItemMessage(hDlg, TRMODE2_TIMEOUT, WM_GETTEXT, 5+1, (LPARAM)Tmp);
\r
670 TimeOut = atoi(Tmp);
\r
671 CheckRange2(&TimeOut, 300, 0);
\r
678 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000043);
\r
684 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
686 case TRMODE2_LOCAL_BR :
\r
687 if(SelectDir(hDlg, Tmp, FMAX_PATH) == TRUE)
\r
688 SendDlgItemMessage(hDlg, TRMODE2_LOCAL, WM_SETTEXT, 0, (LPARAM)Tmp);
\r
697 /*----- 転送設定3ウインドウのコールバック ------------------------------------
\r
700 * HWND hDlg : ウインドウハンドル
\r
701 * UINT message : メッセージ番号
\r
702 * WPARAM wParam : メッセージの WPARAM 引数
\r
703 * LPARAM lParam : メッセージの LPARAM 引数
\r
707 *----------------------------------------------------------------------------*/
\r
710 //static BOOL CALLBACK Trmode3SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
711 static INT_PTR CALLBACK Trmode3SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
724 case WM_INITDIALOG :
\r
725 Tmp = SendDlgItemMessage(hDlg, TRMODE3_LIST, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
\r
726 Tmp |= LVS_EX_FULLROWSELECT;
\r
727 SendDlgItemMessage(hDlg, TRMODE3_LIST, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, (LPARAM)Tmp);
\r
729 GetClientRect(GetDlgItem(hDlg, TRMODE3_LIST), &Rect);
\r
731 LvCol.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
\r
732 LvCol.cx = (Rect.right / 3) * 2;
\r
733 LvCol.pszText = MSGJPN200;
\r
734 LvCol.iSubItem = 0;
\r
735 SendDlgItemMessage(hDlg, TRMODE3_LIST, LVM_INSERTCOLUMN, 0, (LPARAM)&LvCol);
\r
737 LvCol.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
\r
738 LvCol.cx = Rect.right - LvCol.cx;
\r
739 LvCol.pszText = MSGJPN201;
\r
740 LvCol.iSubItem = 1;
\r
741 SendDlgItemMessage(hDlg, TRMODE3_LIST, LVM_INSERTCOLUMN, 1, (LPARAM)&LvCol);
\r
743 Fname = DefAttrList;
\r
744 while(*Fname != NUL)
\r
746 Attr = strchr(Fname, NUL) + 1;
\r
748 AddFnameAttrToListView(hDlg, Fname, Attr);
\r
749 Fname = strchr(Attr, NUL) + 1;
\r
752 SendDlgItemMessage(hDlg, TRMODE3_FOLDER, BM_SETCHECK, FolderAttr, 0);
\r
753 if(FolderAttr == NO)
\r
754 EnableWindow(GetDlgItem(hDlg, TRMODE3_FOLDER_ATTR), FALSE);
\r
756 SendDlgItemMessage(hDlg, TRMODE3_FOLDER_ATTR, EM_LIMITTEXT, (WPARAM)5, 0);
\r
757 sprintf(TmpStr, "%03d", FolderAttrNum);
\r
758 SendDlgItemMessage(hDlg, TRMODE3_FOLDER_ATTR, WM_SETTEXT, 0, (LPARAM)TmpStr);
\r
762 pnmhdr = (NMHDR FAR *)lParam;
\r
763 switch(pnmhdr->code)
\r
766 GetFnameAttrFromListView(hDlg, DefAttrList);
\r
767 SendDlgItemMessage(hDlg, TRMODE3_FOLDER_ATTR, WM_GETTEXT, 5+1, (LPARAM)TmpStr);
\r
768 FolderAttrNum = atoi(TmpStr);
\r
769 FolderAttr = SendDlgItemMessage(hDlg, TRMODE3_FOLDER, BM_GETCHECK, 0, 0);
\r
776 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000044);
\r
782 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
785 if(DialogBoxParam(GetFtpInst(), MAKEINTRESOURCE(def_attr_dlg), hDlg, DefAttrDlgProc, (LPARAM)&AttrSet) == YES)
\r
787 if((strlen(AttrSet.Fname) > 0) && (strlen(AttrSet.Attr) > 0))
\r
788 AddFnameAttrToListView(hDlg, AttrSet.Fname, AttrSet.Attr);
\r
793 if((Tmp = SendDlgItemMessage(hDlg, TRMODE3_LIST, LVM_GETNEXTITEM, -1, MAKELPARAM(LVNI_ALL | LVNI_SELECTED, 0))) != -1)
\r
794 SendDlgItemMessage(hDlg, TRMODE3_LIST, LVM_DELETEITEM, Tmp, 0);
\r
797 case TRMODE3_FOLDER :
\r
798 if(SendDlgItemMessage(hDlg, TRMODE3_FOLDER, BM_GETCHECK, 0, 0) == 1)
\r
799 EnableWindow(GetDlgItem(hDlg, TRMODE3_FOLDER_ATTR), TRUE);
\r
801 EnableWindow(GetDlgItem(hDlg, TRMODE3_FOLDER_ATTR), FALSE);
\r
811 static INT_PTR CALLBACK Trmode4SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
815 static const RADIOBUTTON KanjiButton[] = {
\r
816 { TRMODE4_SJIS_CNV, KANJI_SJIS },
\r
817 { TRMODE4_JIS_CNV, KANJI_JIS },
\r
818 { TRMODE4_EUC_CNV, KANJI_EUC },
\r
819 { TRMODE4_UTF8N_CNV, KANJI_UTF8N },
\r
820 { TRMODE4_UTF8BOM_CNV, KANJI_UTF8BOM }
\r
822 #define KANJIBUTTONS (sizeof(KanjiButton)/sizeof(RADIOBUTTON))
\r
826 case WM_INITDIALOG :
\r
827 SetRadioButtonByValue(hDlg, AskLocalKanjiCode(), KanjiButton, KANJIBUTTONS);
\r
832 pnmhdr = (NMHDR FAR *)lParam;
\r
833 switch(pnmhdr->code)
\r
836 SetLocalKanjiCodeImm(AskRadioButtonValue(hDlg, KanjiButton, KANJIBUTTONS));
\r
837 SaveLocalKanjiCode();
\r
844 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000067);
\r
853 /*----- ファイル属性設定ウインドウのコールバック ------------------------------
\r
856 * HWND hDlg : ウインドウハンドル
\r
857 * UINT message : メッセージ番号
\r
858 * WPARAM wParam : メッセージの WPARAM 引数
\r
859 * LPARAM lParam : メッセージの LPARAM 引数
\r
863 *----------------------------------------------------------------------------*/
\r
866 //static BOOL CALLBACK DefAttrDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
867 static INT_PTR CALLBACK DefAttrDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
869 static ATTRSET *AttrSet;
\r
874 case WM_INITDIALOG :
\r
875 AttrSet = (ATTRSET *)lParam;
\r
876 SendDlgItemMessage(hDlg, DEFATTR_FNAME, EM_LIMITTEXT, (WPARAM)FMAX_PATH, 0);
\r
877 SendDlgItemMessage(hDlg, DEFATTR_ATTR, EM_LIMITTEXT, (WPARAM)4, 0);
\r
881 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
884 SendDlgItemMessage(hDlg, DEFATTR_FNAME, WM_GETTEXT, (WPARAM)FMAX_PATH+1, (LPARAM)AttrSet->Fname);
\r
885 SendDlgItemMessage(hDlg, DEFATTR_ATTR, WM_GETTEXT, (WPARAM)4+1, (LPARAM)AttrSet->Attr);
\r
886 EndDialog(hDlg, YES);
\r
890 EndDialog(hDlg, NO);
\r
893 case DEFATTR_ATTR_BR :
\r
894 SendDlgItemMessage(hDlg, DEFATTR_ATTR, WM_GETTEXT, (WPARAM)4+1, (LPARAM)Tmp);
\r
895 if(DialogBoxParam(GetFtpInst(), MAKEINTRESOURCE(chmod_dlg), GetMainHwnd(), ChmodDialogCallBack, (LPARAM)Tmp) == YES)
\r
896 SendDlgItemMessage(hDlg, DEFATTR_ATTR, WM_SETTEXT, 0, (LPARAM)Tmp);
\r
905 /*----- ファイル名と属性をリストビューに追加 ----------------------------------
\r
908 * HWND hDlg : ウインドウハンドル
\r
909 * char *Fname : ファイル名
\r
914 *----------------------------------------------------------------------------*/
\r
916 static void AddFnameAttrToListView(HWND hDlg, char *Fname, char *Attr)
\r
920 char Buf[DEFATTRLIST_LEN+1];
\r
922 GetFnameAttrFromListView(hDlg, Buf);
\r
923 if(StrMultiLen(Buf) + strlen(Fname) + strlen(Attr) + 2 <= DEFATTRLIST_LEN)
\r
925 Num = SendDlgItemMessage(hDlg, TRMODE3_LIST, LVM_GETITEMCOUNT, 0, 0);
\r
927 LvItem.mask = LVIF_TEXT;
\r
928 LvItem.iItem = Num;
\r
929 LvItem.iSubItem = 0;
\r
930 LvItem.pszText = Fname;
\r
931 SendDlgItemMessage(hDlg, TRMODE3_LIST, LVM_INSERTITEM, 0, (LPARAM)&LvItem);
\r
933 LvItem.mask = LVIF_TEXT;
\r
934 LvItem.iItem = Num;
\r
935 LvItem.iSubItem = 1;
\r
936 LvItem.pszText = Attr;
\r
937 SendDlgItemMessage(hDlg, TRMODE3_LIST, LVM_SETITEM, 0, (LPARAM)&LvItem);
\r
946 /*----- リストビューの内容をマルチ文字列にする --------------------------------
\r
949 * HWND hDlg : ダイアログボックスのウインドウハンドル
\r
950 * int CtrlList : リストボックスのID
\r
951 * char *Buf : 文字列をセットするバッファ
\r
952 * int BufSize : バッファのサイズ
\r
956 *----------------------------------------------------------------------------*/
\r
958 static void GetFnameAttrFromListView(HWND hDlg, char *Buf)
\r
964 Num = SendDlgItemMessage(hDlg, TRMODE3_LIST, LVM_GETITEMCOUNT, 0, 0);
\r
965 for(i = 0; i < Num; i++)
\r
967 LvItem.mask = LVIF_TEXT;
\r
969 LvItem.iSubItem = 0;
\r
970 LvItem.pszText = Buf;
\r
971 LvItem.cchTextMax = FMAX_PATH;
\r
972 SendDlgItemMessage(hDlg, TRMODE3_LIST, LVM_GETITEM, 0, (LPARAM)&LvItem);
\r
973 Buf = strchr(Buf, NUL) + 1;
\r
975 LvItem.mask = LVIF_TEXT;
\r
977 LvItem.iSubItem = 1;
\r
978 LvItem.pszText = Buf;
\r
979 LvItem.cchTextMax = FMAX_PATH;
\r
980 SendDlgItemMessage(hDlg, TRMODE3_LIST, LVM_GETITEM, 0, (LPARAM)&LvItem);
\r
981 Buf = strchr(Buf, NUL) + 1;
\r
989 /*----- ミラーリングウインドウのコールバック ----------------------------------
\r
992 * HWND hDlg : ウインドウハンドル
\r
993 * UINT message : メッセージ番号
\r
994 * WPARAM wParam : メッセージの WPARAM 引数
\r
995 * LPARAM lParam : メッセージの LPARAM 引数
\r
999 *----------------------------------------------------------------------------*/
\r
1002 //static BOOL CALLBACK MirrorSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1003 static INT_PTR CALLBACK MirrorSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1007 char Tmp[FMAX_PATH+1];
\r
1012 case WM_INITDIALOG :
\r
1013 SetMultiTextToList(hDlg, MIRROR_NOTRN_LIST, MirrorNoTrn);
\r
1014 SetMultiTextToList(hDlg, MIRROR_NODEL_LIST, MirrorNoDel);
\r
1015 SendDlgItemMessage(hDlg, MIRROR_LOW, BM_SETCHECK, MirrorFnameCnv, 0);
\r
1016 SendDlgItemMessage(hDlg, MIRROR_UPDEL_NOTIFY, BM_SETCHECK, MirUpDelNotify, 0);
\r
1017 SendDlgItemMessage(hDlg, MIRROR_DOWNDEL_NOTIFY, BM_SETCHECK, MirDownDelNotify, 0);
\r
1019 SendDlgItemMessage(hDlg, MIRROR_NO_TRANSFER, BM_SETCHECK, MirrorNoTransferContents, 0);
\r
1023 pnmhdr = (NMHDR FAR *)lParam;
\r
1024 switch(pnmhdr->code)
\r
1027 GetMultiTextFromList(hDlg, MIRROR_NOTRN_LIST, MirrorNoTrn, MIRROR_LEN+1);
\r
1028 GetMultiTextFromList(hDlg, MIRROR_NODEL_LIST, MirrorNoDel, MIRROR_LEN+1);
\r
1029 MirrorFnameCnv = SendDlgItemMessage(hDlg, MIRROR_LOW, BM_GETCHECK, 0, 0);
\r
1030 MirUpDelNotify = SendDlgItemMessage(hDlg, MIRROR_UPDEL_NOTIFY, BM_GETCHECK, 0, 0);
\r
1031 MirDownDelNotify = SendDlgItemMessage(hDlg, MIRROR_DOWNDEL_NOTIFY, BM_GETCHECK, 0, 0);
\r
1033 MirrorNoTransferContents = SendDlgItemMessage(hDlg, MIRROR_NO_TRANSFER, BM_GETCHECK, 0, 0);
\r
1040 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000045);
\r
1046 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
1048 case MIRROR_NOTRN_ADD :
\r
1050 if(InputDialogBox(fname_in_dlg, hDlg, MSGJPN202, Tmp, FMAX_PATH, &Trash, IDH_HELP_TOPIC_0000001) == YES)
\r
1051 AddTextToListBox(hDlg, Tmp, MIRROR_NOTRN_LIST, MIRROR_LEN+1);
\r
1054 case MIRROR_NODEL_ADD :
\r
1056 if(InputDialogBox(fname_in_dlg, hDlg, MSGJPN203, Tmp, FMAX_PATH, &Trash, IDH_HELP_TOPIC_0000001) == YES)
\r
1057 AddTextToListBox(hDlg, Tmp, MIRROR_NODEL_LIST, MIRROR_LEN+1);
\r
1060 case MIRROR_NOTRN_DEL :
\r
1061 if((Num = SendDlgItemMessage(hDlg, MIRROR_NOTRN_LIST, LB_GETCURSEL, 0, 0)) != LB_ERR)
\r
1062 SendDlgItemMessage(hDlg, MIRROR_NOTRN_LIST, LB_DELETESTRING, Num, 0);
\r
1065 case MIRROR_NODEL_DEL :
\r
1066 if((Num = SendDlgItemMessage(hDlg, MIRROR_NODEL_LIST, LB_GETCURSEL, 0, 0)) != LB_ERR)
\r
1067 SendDlgItemMessage(hDlg, MIRROR_NODEL_LIST, LB_DELETESTRING, Num, 0);
\r
1076 /*----- 操作設定ウインドウのコールバック --------------------------------------
\r
1079 * HWND hDlg : ウインドウハンドル
\r
1080 * UINT message : メッセージ番号
\r
1081 * WPARAM wParam : メッセージの WPARAM 引数
\r
1082 * LPARAM lParam : メッセージの LPARAM 引数
\r
1086 *----------------------------------------------------------------------------*/
\r
1089 //static BOOL CALLBACK NotifySettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1090 static INT_PTR CALLBACK NotifySettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1094 static const RADIOBUTTON DownButton[] = {
\r
1095 { NOTIFY_D_DLG, TRANS_DLG },
\r
1096 { NOTIFY_D_OVW, TRANS_OVW }
\r
1098 #define DOWNBUTTONS (sizeof(DownButton)/sizeof(RADIOBUTTON))
\r
1100 static const RADIOBUTTON UpButton[] = {
\r
1101 { NOTIFY_U_DLG, TRANS_DLG },
\r
1102 { NOTIFY_U_OVW, TRANS_OVW }
\r
1104 #define UPBUTTONS (sizeof(UpButton)/sizeof(RADIOBUTTON))
\r
1106 static const RADIOBUTTON DclickButton[] = {
\r
1107 { NOTIFY_OPEN, YES },
\r
1108 { NOTIFY_DOWNLOAD, NO }
\r
1110 #define DCLICKBUTTONS (sizeof(DclickButton)/sizeof(RADIOBUTTON))
\r
1112 static const RADIOBUTTON MoveButton[] = {
\r
1113 { NOTIFY_M_NODLG, MOVE_NODLG },
\r
1114 { NOTIFY_M_DLG, MOVE_DLG },
\r
1115 { NOTIFY_M_DISABLE, MOVE_DISABLE }
\r
1117 #define MOVEBUTTONS (sizeof(MoveButton)/sizeof(RADIOBUTTON))
\r
1121 case WM_INITDIALOG :
\r
1122 SetRadioButtonByValue(hDlg, RecvMode, DownButton, DOWNBUTTONS);
\r
1123 SetRadioButtonByValue(hDlg, SendMode, UpButton, UPBUTTONS);
\r
1124 SetRadioButtonByValue(hDlg, DclickOpen, DclickButton, DCLICKBUTTONS);
\r
1125 SetRadioButtonByValue(hDlg, MoveMode, MoveButton, MOVEBUTTONS);
\r
1129 pnmhdr = (NMHDR FAR *)lParam;
\r
1130 switch(pnmhdr->code)
\r
1133 RecvMode = AskRadioButtonValue(hDlg, DownButton, DOWNBUTTONS);
\r
1134 SendMode = AskRadioButtonValue(hDlg, UpButton, UPBUTTONS);
\r
1135 DclickOpen = AskRadioButtonValue(hDlg, DclickButton, DCLICKBUTTONS);
\r
1136 MoveMode = AskRadioButtonValue(hDlg, MoveButton, MOVEBUTTONS);
\r
1143 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000046);
\r
1152 /*----- 表示設定ウインドウのコールバック --------------------------------------
\r
1155 * HWND hDlg : ウインドウハンドル
\r
1156 * UINT message : メッセージ番号
\r
1157 * WPARAM wParam : メッセージの WPARAM 引数
\r
1158 * LPARAM lParam : メッセージの LPARAM 引数
\r
1162 *----------------------------------------------------------------------------*/
\r
1166 //static BOOL CALLBACK DispSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1167 static INT_PTR CALLBACK Disp1SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1170 static LOGFONT TmpFont;
\r
1174 case WM_INITDIALOG :
\r
1175 memcpy(&TmpFont, &ListLogFont, sizeof(LOGFONT));
\r
1176 if(ListFont != NULL)
\r
1177 SendDlgItemMessage(hDlg, DISP_FONT, WM_SETTEXT, 0, (LPARAM)TmpFont.lfFaceName);
\r
1178 SendDlgItemMessage(hDlg, DISP_HIDE, BM_SETCHECK, DispIgnoreHide, 0);
\r
1179 SendDlgItemMessage(hDlg, DISP_DRIVE, BM_SETCHECK, DispDrives, 0);
\r
1181 SendDlgItemMessage(hDlg, DISP_ICON, BM_SETCHECK, DispFileIcon, 0);
\r
1183 SendDlgItemMessage(hDlg, DISP_SECOND, BM_SETCHECK, DispTimeSeconds, 0);
\r
1187 pnmhdr = (NMHDR FAR *)lParam;
\r
1188 switch(pnmhdr->code)
\r
1191 DispIgnoreHide = SendDlgItemMessage(hDlg, DISP_HIDE, BM_GETCHECK, 0, 0);
\r
1192 DispDrives = SendDlgItemMessage(hDlg, DISP_DRIVE, BM_GETCHECK, 0, 0);
\r
1194 DispFileIcon = SendDlgItemMessage(hDlg, DISP_ICON, BM_GETCHECK, 0, 0);
\r
1196 DispTimeSeconds = SendDlgItemMessage(hDlg, DISP_SECOND, BM_GETCHECK, 0, 0);
\r
1197 if(strlen(TmpFont.lfFaceName) > 0)
\r
1199 memcpy(&ListLogFont, &TmpFont, sizeof(LOGFONT));
\r
1200 ListFont = CreateFontIndirect(&ListLogFont);
\r
1208 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000047);
\r
1214 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
1216 case DISP_FONT_BR :
\r
1217 if(SelectListFont(hDlg, &TmpFont) == YES)
\r
1218 SendDlgItemMessage(hDlg, DISP_FONT, WM_SETTEXT, 0, (LPARAM)TmpFont.lfFaceName);
\r
1229 static INT_PTR CALLBACK Disp2SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1232 static LOGFONT TmpFont;
\r
1236 case WM_INITDIALOG :
\r
1237 SendDlgItemMessage(hDlg, DISP2_PERMIT_NUM, BM_SETCHECK, DispPermissionsNumber, 0);
\r
1238 SendDlgItemMessage(hDlg, DISP2_AUTO_REFRESH, BM_SETCHECK, AutoRefreshFileList, 0);
\r
1239 SendDlgItemMessage(hDlg, DISP2_REMOVE_OLD_LOG, BM_SETCHECK, RemoveOldLog, 0);
\r
1243 pnmhdr = (NMHDR FAR *)lParam;
\r
1244 switch(pnmhdr->code)
\r
1247 DispPermissionsNumber = SendDlgItemMessage(hDlg, DISP2_PERMIT_NUM, BM_GETCHECK, 0, 0);
\r
1248 AutoRefreshFileList = SendDlgItemMessage(hDlg, DISP2_AUTO_REFRESH, BM_GETCHECK, 0, 0);
\r
1249 RemoveOldLog = SendDlgItemMessage(hDlg, DISP2_REMOVE_OLD_LOG, BM_GETCHECK, 0, 0);
\r
1256 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000068);
\r
1265 /*----- フォントを選ぶ --------------------------------------------------------
\r
1268 * HWND hWnd : ウインドウハンドル
\r
1269 * LOGFONT *lFont : フォント情報
\r
1274 * Parameter change
\r
1275 * HFONT *hFont : フォントのハンドル
\r
1276 * LOGFONT *lFont : フォント情報
\r
1277 *----------------------------------------------------------------------------*/
\r
1279 static int SelectListFont(HWND hWnd, LOGFONT *lFont)
\r
1281 static CHOOSEFONT cFont;
\r
1284 cFont.lStructSize = sizeof(CHOOSEFONT);
\r
1285 cFont.hwndOwner = hWnd;
\r
1287 cFont.lpLogFont = lFont;
\r
1288 cFont.Flags = CF_FORCEFONTEXIST | CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT;
\r
1289 cFont.nFontType = SCREEN_FONTTYPE;
\r
1292 if(ChooseFont(&cFont) == TRUE)
\r
1299 /*----- 接続/切断設定ウインドウのコールバック --------------------------------
\r
1302 * HWND hDlg : ウインドウハンドル
\r
1303 * UINT message : メッセージ番号
\r
1304 * WPARAM wParam : メッセージの WPARAM 引数
\r
1305 * LPARAM lParam : メッセージの LPARAM 引数
\r
1309 *----------------------------------------------------------------------------*/
\r
1312 //static BOOL CALLBACK ConnectSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1313 static INT_PTR CALLBACK ConnectSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1319 case WM_INITDIALOG :
\r
1320 SendDlgItemMessage(hDlg, CONNECT_CONNECT, BM_SETCHECK, ConnectOnStart, 0);
\r
1321 SendDlgItemMessage(hDlg, CONNECT_OLDDLG, BM_SETCHECK, ConnectAndSet, 0);
\r
1322 SendDlgItemMessage(hDlg, CONNECT_RASCLOSE, BM_SETCHECK, RasClose, 0);
\r
1323 if(AskRasUsable() == NO)
\r
1324 EnableWindow(GetDlgItem(hDlg, CONNECT_RASCLOSE), FALSE);
\r
1325 SendDlgItemMessage(hDlg, CONNECT_CLOSE_NOTIFY, BM_SETCHECK, RasCloseNotify, 0);
\r
1326 if((RasClose == NO) || (AskRasUsable() == NO))
\r
1327 EnableWindow(GetDlgItem(hDlg, CONNECT_CLOSE_NOTIFY), FALSE);
\r
1328 SendDlgItemMessage(hDlg, CONNECT_HIST, EM_LIMITTEXT, (WPARAM)2, 0);
\r
1329 SetDecimalText(hDlg, CONNECT_HIST, FileHist);
\r
1330 SendDlgItemMessage(hDlg, CONNECT_HIST_SPN, UDM_SETRANGE, 0, (LPARAM)MAKELONG(HISTORY_MAX, 0));
\r
1331 SendDlgItemMessage(hDlg, CONNECT_QUICK_ANONY, BM_SETCHECK, QuickAnonymous, 0);
\r
1332 SendDlgItemMessage(hDlg, CONNECT_HIST_PASS, BM_SETCHECK, PassToHist, 0);
\r
1333 SendDlgItemMessage(hDlg, CONNECT_SENDQUIT, BM_SETCHECK, SendQuit, 0);
\r
1334 SendDlgItemMessage(hDlg, CONNECT_NORAS, BM_SETCHECK, NoRasControl, 0);
\r
1336 SendDlgItemMessage(hDlg, CONNECT_UPNP, BM_SETCHECK, UPnPEnabled, 0);
\r
1340 pnmhdr = (NMHDR FAR *)lParam;
\r
1341 switch(pnmhdr->code)
\r
1344 ConnectOnStart = SendDlgItemMessage(hDlg, MISC_CONNECT, BM_GETCHECK, 0, 0);
\r
1345 ConnectAndSet = SendDlgItemMessage(hDlg, MISC_OLDDLG, BM_GETCHECK, 0, 0);
\r
1346 RasClose = SendDlgItemMessage(hDlg, CONNECT_RASCLOSE, BM_GETCHECK, 0, 0);
\r
1347 RasCloseNotify = SendDlgItemMessage(hDlg, CONNECT_CLOSE_NOTIFY, BM_GETCHECK, 0, 0);
\r
1348 FileHist = GetDecimalText(hDlg, CONNECT_HIST);
\r
1349 CheckRange2(&FileHist, HISTORY_MAX, 0);
\r
1350 QuickAnonymous = SendDlgItemMessage(hDlg, CONNECT_QUICK_ANONY, BM_GETCHECK, 0, 0);
\r
1351 PassToHist = SendDlgItemMessage(hDlg, CONNECT_HIST_PASS, BM_GETCHECK, 0, 0);
\r
1352 SendQuit = SendDlgItemMessage(hDlg, CONNECT_SENDQUIT, BM_GETCHECK, 0, 0);
\r
1353 NoRasControl = SendDlgItemMessage(hDlg, CONNECT_NORAS, BM_GETCHECK, 0, 0);
\r
1355 UPnPEnabled = SendDlgItemMessage(hDlg, CONNECT_UPNP, BM_GETCHECK, 0, 0);
\r
1362 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000048);
\r
1368 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
1370 case CONNECT_RASCLOSE :
\r
1371 if(SendDlgItemMessage(hDlg, CONNECT_RASCLOSE, BM_GETCHECK, 0, 0) == 1)
\r
1372 EnableWindow(GetDlgItem(hDlg, CONNECT_CLOSE_NOTIFY), TRUE);
\r
1374 EnableWindow(GetDlgItem(hDlg, CONNECT_CLOSE_NOTIFY), FALSE);
\r
1383 /*----- FireWall設定ウインドウのコールバック ----------------------------------
\r
1386 * HWND hDlg : ウインドウハンドル
\r
1387 * UINT message : メッセージ番号
\r
1388 * WPARAM wParam : メッセージの WPARAM 引数
\r
1389 * LPARAM lParam : メッセージの LPARAM 引数
\r
1393 *----------------------------------------------------------------------------*/
\r
1396 //static BOOL CALLBACK FireSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1397 static INT_PTR CALLBACK FireSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1403 static const INTCONVTBL TypeTbl[] = {
\r
1404 { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 8 },
\r
1405 { 4, 3 }, { 5, 4 }, { 6, 5 }, { 7, 6 },
\r
1406 { 8, 7 }, { 9, 9 }
\r
1409 static const int HideTbl[9][6] = {
\r
1410 { TRUE, TRUE, TRUE, FALSE, TRUE, FALSE },
\r
1411 { TRUE, TRUE, TRUE, FALSE, FALSE, TRUE },
\r
1412 { TRUE, TRUE, TRUE, FALSE, FALSE, FALSE },
\r
1413 { FALSE, FALSE, FALSE, FALSE, FALSE, TRUE },
\r
1414 { FALSE, FALSE, FALSE, FALSE, TRUE, FALSE },
\r
1415 { TRUE, FALSE, FALSE, FALSE, FALSE, FALSE },
\r
1416 { FALSE, FALSE, FALSE, TRUE, FALSE, FALSE },
\r
1417 { TRUE, TRUE, FALSE, TRUE, FALSE, FALSE },
\r
1418 { TRUE, TRUE, FALSE, FALSE, TRUE, TRUE }
\r
1423 case WM_INITDIALOG :
\r
1425 ProtectAllEditControls(hDlg);
\r
1426 Type = ConvertNum(FwallType, 1, TypeTbl, sizeof(TypeTbl)/sizeof(INTCONVTBL));
\r
1427 SendDlgItemMessage(hDlg, FIRE_TYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN204);
\r
1428 SendDlgItemMessage(hDlg, FIRE_TYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN205);
\r
1429 SendDlgItemMessage(hDlg, FIRE_TYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN206);
\r
1430 SendDlgItemMessage(hDlg, FIRE_TYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN207);
\r
1431 SendDlgItemMessage(hDlg, FIRE_TYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN208);
\r
1432 SendDlgItemMessage(hDlg, FIRE_TYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN209);
\r
1433 SendDlgItemMessage(hDlg, FIRE_TYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN210);
\r
1434 SendDlgItemMessage(hDlg, FIRE_TYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN211);
\r
1435 SendDlgItemMessage(hDlg, FIRE_TYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN294);
\r
1436 SendDlgItemMessage(hDlg, FIRE_TYPE, CB_SETCURSEL, Type-1, 0);
\r
1438 SendDlgItemMessage(hDlg, FIRE_HOST, EM_LIMITTEXT, HOST_ADRS_LEN, 0);
\r
1439 SendDlgItemMessage(hDlg, FIRE_USER, EM_LIMITTEXT, USER_NAME_LEN, 0);
\r
1440 SendDlgItemMessage(hDlg, FIRE_PASS, EM_LIMITTEXT, PASSWORD_LEN, 0);
\r
1441 SendDlgItemMessage(hDlg, FIRE_PORT, EM_LIMITTEXT, 5, 0);
\r
1442 SendDlgItemMessage(hDlg, FIRE_DELIMIT, EM_LIMITTEXT, 1, 0);
\r
1444 SendDlgItemMessage(hDlg, FIRE_HOST, WM_SETTEXT, 0, (LPARAM)FwallHost);
\r
1445 SendDlgItemMessage(hDlg, FIRE_USER, WM_SETTEXT, 0, (LPARAM)FwallUser);
\r
1446 SendDlgItemMessage(hDlg, FIRE_PASS, WM_SETTEXT, 0, (LPARAM)FwallPass);
\r
1447 sprintf(Tmp, "%d", FwallPort);
\r
1448 SendDlgItemMessage(hDlg, FIRE_PORT, WM_SETTEXT, 0, (LPARAM)Tmp);
\r
1449 sprintf(Tmp, "%c", FwallDelimiter);
\r
1450 SendDlgItemMessage(hDlg, FIRE_DELIMIT, WM_SETTEXT, 0, (LPARAM)Tmp);
\r
1452 SendDlgItemMessage(hDlg, FIRE_USEIT, BM_SETCHECK, FwallDefault, 0);
\r
1453 SendDlgItemMessage(hDlg, FIRE_PASV, BM_SETCHECK, PasvDefault, 0);
\r
1454 SendDlgItemMessage(hDlg, FIRE_RESOLV, BM_SETCHECK, FwallResolve, 0);
\r
1455 SendDlgItemMessage(hDlg, FIRE_LOWER, BM_SETCHECK, FwallLower, 0);
\r
1457 SendDlgItemMessage(hDlg, FIRE_SECURITY, CB_ADDSTRING, 0, (LPARAM)MSGJPN212);
\r
1458 SendDlgItemMessage(hDlg, FIRE_SECURITY, CB_ADDSTRING, 0, (LPARAM)MSGJPN213);
\r
1459 SendDlgItemMessage(hDlg, FIRE_SECURITY, CB_ADDSTRING, 0, (LPARAM)MSGJPN214);
\r
1460 SendDlgItemMessage(hDlg, FIRE_SECURITY, CB_ADDSTRING, 0, (LPARAM)MSGJPN215);
\r
1461 SendDlgItemMessage(hDlg, FIRE_SECURITY, CB_ADDSTRING, 0, (LPARAM)MSGJPN216);
\r
1462 SendDlgItemMessage(hDlg, FIRE_SECURITY, CB_SETCURSEL, FwallSecurity, 0);
\r
1465 SendDlgItemMessage(hDlg, FIRE_SHARED, BM_SETCHECK, FwallNoSaveUser, 0);
\r
1470 pnmhdr = (NMHDR FAR *)lParam;
\r
1471 switch(pnmhdr->code)
\r
1474 Type = SendDlgItemMessage(hDlg, FIRE_TYPE, CB_GETCURSEL, 0, 0) + 1;
\r
1475 FwallType = ConvertNum(Type, 0, TypeTbl, sizeof(TypeTbl)/sizeof(INTCONVTBL));
\r
1476 SendDlgItemMessage(hDlg, FIRE_HOST, WM_GETTEXT, HOST_ADRS_LEN+1, (LPARAM)FwallHost);
\r
1477 SendDlgItemMessage(hDlg, FIRE_USER, WM_GETTEXT, USER_NAME_LEN+1, (LPARAM)FwallUser);
\r
1478 SendDlgItemMessage(hDlg, FIRE_PASS, WM_GETTEXT, PASSWORD_LEN, (LPARAM)FwallPass);
\r
1479 SendDlgItemMessage(hDlg, FIRE_PORT, WM_GETTEXT, 5+1, (LPARAM)Tmp);
\r
1480 FwallPort = atoi(Tmp);
\r
1481 SendDlgItemMessage(hDlg, FIRE_DELIMIT, WM_GETTEXT, 5, (LPARAM)Tmp);
\r
1482 FwallDelimiter = Tmp[0];
\r
1483 FwallDefault = SendDlgItemMessage(hDlg, FIRE_USEIT, BM_GETCHECK, 0, 0);
\r
1484 PasvDefault = SendDlgItemMessage(hDlg, FIRE_PASV, BM_GETCHECK, 0, 0);
\r
1485 FwallResolve = SendDlgItemMessage(hDlg, FIRE_RESOLV, BM_GETCHECK, 0, 0);
\r
1486 FwallLower = SendDlgItemMessage(hDlg, FIRE_LOWER, BM_GETCHECK, 0, 0);
\r
1487 FwallSecurity = SendDlgItemMessage(hDlg, FIRE_SECURITY, CB_GETCURSEL, 0, 0);
\r
1489 FwallNoSaveUser = SendDlgItemMessage(hDlg, FIRE_SHARED, BM_GETCHECK, 0, 0);
\r
1496 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000049);
\r
1502 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
1505 Num = SendDlgItemMessage(hDlg, FIRE_TYPE, CB_GETCURSEL, 0, 0);
\r
1506 EnableWindow(GetDlgItem(hDlg, FIRE_USER), HideTbl[Num][0]);
\r
1507 EnableWindow(GetDlgItem(hDlg, FIRE_PASS), HideTbl[Num][1]);
\r
1508 EnableWindow(GetDlgItem(hDlg, FIRE_SECURITY), HideTbl[Num][2]);
\r
1509 EnableWindow(GetDlgItem(hDlg, FIRE_RESOLV), HideTbl[Num][3]);
\r
1510 EnableWindow(GetDlgItem(hDlg, FIRE_LOWER), HideTbl[Num][4]);
\r
1511 EnableWindow(GetDlgItem(hDlg, FIRE_DELIMIT), HideTbl[Num][5]);
\r
1520 /*----- ツール設定ウインドウのコールバック ------------------------------------
\r
1523 * HWND hDlg : ウインドウハンドル
\r
1524 * UINT message : メッセージ番号
\r
1525 * WPARAM wParam : メッセージの WPARAM 引数
\r
1526 * LPARAM lParam : メッセージの LPARAM 引数
\r
1530 *----------------------------------------------------------------------------*/
\r
1533 //static BOOL CALLBACK ToolSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1534 static INT_PTR CALLBACK ToolSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1537 char Tmp[FMAX_PATH+1];
\r
1541 case WM_INITDIALOG :
\r
1542 SendDlgItemMessage(hDlg, TOOL_EDITOR1, EM_LIMITTEXT, FMAX_PATH, 0);
\r
1543 SendDlgItemMessage(hDlg, TOOL_EDITOR2, EM_LIMITTEXT, FMAX_PATH, 0);
\r
1544 SendDlgItemMessage(hDlg, TOOL_EDITOR3, EM_LIMITTEXT, FMAX_PATH, 0);
\r
1545 SendDlgItemMessage(hDlg, TOOL_EDITOR1, WM_SETTEXT, 0, (LPARAM)ViewerName[0]);
\r
1546 SendDlgItemMessage(hDlg, TOOL_EDITOR2, WM_SETTEXT, 0, (LPARAM)ViewerName[1]);
\r
1547 SendDlgItemMessage(hDlg, TOOL_EDITOR3, WM_SETTEXT, 0, (LPARAM)ViewerName[2]);
\r
1551 pnmhdr = (NMHDR FAR *)lParam;
\r
1552 switch(pnmhdr->code)
\r
1555 SendDlgItemMessage(hDlg, TOOL_EDITOR1, WM_GETTEXT, FMAX_PATH+1, (LPARAM)ViewerName[0]);
\r
1556 SendDlgItemMessage(hDlg, TOOL_EDITOR2, WM_GETTEXT, FMAX_PATH+1, (LPARAM)ViewerName[1]);
\r
1557 SendDlgItemMessage(hDlg, TOOL_EDITOR3, WM_GETTEXT, FMAX_PATH+1, (LPARAM)ViewerName[2]);
\r
1564 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000050);
\r
1570 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
1572 case TOOL_EDITOR1_BR :
\r
1573 case TOOL_EDITOR2_BR :
\r
1574 case TOOL_EDITOR3_BR :
\r
1576 if(SelectFile(hDlg, Tmp, MSGJPN217, MSGJPN218, NULL, OFN_FILEMUSTEXIST, 0) == TRUE)
\r
1578 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
1580 case TOOL_EDITOR1_BR :
\r
1581 SendDlgItemMessage(hDlg, TOOL_EDITOR1, WM_SETTEXT, 0, (LPARAM)Tmp);
\r
1584 case TOOL_EDITOR2_BR :
\r
1585 SendDlgItemMessage(hDlg, TOOL_EDITOR2, WM_SETTEXT, 0, (LPARAM)Tmp);
\r
1588 case TOOL_EDITOR3_BR :
\r
1589 SendDlgItemMessage(hDlg, TOOL_EDITOR3, WM_SETTEXT, 0, (LPARAM)Tmp);
\r
1601 /*----- サウンド設定ウインドウのコールバック ----------------------------------
\r
1604 * HWND hDlg : ウインドウハンドル
\r
1605 * UINT message : メッセージ番号
\r
1606 * WPARAM wParam : メッセージの WPARAM 引数
\r
1607 * LPARAM lParam : メッセージの LPARAM 引数
\r
1611 *----------------------------------------------------------------------------*/
\r
1614 //static BOOL CALLBACK SoundSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1615 static INT_PTR CALLBACK SoundSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1618 char Tmp[FMAX_PATH+1];
\r
1622 case WM_INITDIALOG :
\r
1623 SendDlgItemMessage(hDlg, SOUND_CONNECT, BM_SETCHECK, Sound[SND_CONNECT].On, 0);
\r
1624 SendDlgItemMessage(hDlg, SOUND_TRANS, BM_SETCHECK, Sound[SND_TRANS].On, 0);
\r
1625 SendDlgItemMessage(hDlg, SOUND_ERROR, BM_SETCHECK, Sound[SND_ERROR].On, 0);
\r
1627 SendDlgItemMessage(hDlg, SOUND_CONNECT_WAV, EM_LIMITTEXT, (WPARAM)FMAX_PATH, 0);
\r
1628 SendDlgItemMessage(hDlg, SOUND_TRANS_WAV, EM_LIMITTEXT, (WPARAM)FMAX_PATH, 0);
\r
1629 SendDlgItemMessage(hDlg, SOUND_ERROR_WAV, EM_LIMITTEXT, (WPARAM)FMAX_PATH, 0);
\r
1630 SendDlgItemMessage(hDlg, SOUND_CONNECT_WAV, WM_SETTEXT, 0, (LPARAM)Sound[SND_CONNECT].Fname);
\r
1631 SendDlgItemMessage(hDlg, SOUND_TRANS_WAV, WM_SETTEXT, 0, (LPARAM)Sound[SND_TRANS].Fname);
\r
1632 SendDlgItemMessage(hDlg, SOUND_ERROR_WAV, WM_SETTEXT, 0, (LPARAM)Sound[SND_ERROR].Fname);
\r
1636 pnmhdr = (NMHDR FAR *)lParam;
\r
1637 switch(pnmhdr->code)
\r
1640 Sound[SND_CONNECT].On = SendDlgItemMessage(hDlg, SOUND_CONNECT, BM_GETCHECK, 0, 0);
\r
1641 Sound[SND_TRANS].On = SendDlgItemMessage(hDlg, SOUND_TRANS, BM_GETCHECK, 0, 0);
\r
1642 Sound[SND_ERROR].On = SendDlgItemMessage(hDlg, SOUND_ERROR, BM_GETCHECK, 0, 0);
\r
1643 SendDlgItemMessage(hDlg, SOUND_CONNECT_WAV, WM_GETTEXT, FMAX_PATH+1, (LPARAM)Sound[SND_CONNECT].Fname);
\r
1644 SendDlgItemMessage(hDlg, SOUND_TRANS_WAV, WM_GETTEXT, FMAX_PATH+1, (LPARAM)Sound[SND_TRANS].Fname);
\r
1645 SendDlgItemMessage(hDlg, SOUND_ERROR_WAV, WM_GETTEXT, FMAX_PATH+1, (LPARAM)Sound[SND_ERROR].Fname);
\r
1652 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000051);
\r
1658 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
1660 case SOUND_CONNECT_BR :
\r
1661 case SOUND_TRANS_BR :
\r
1662 case SOUND_ERROR_BR :
\r
1664 if(SelectFile(hDlg, Tmp, MSGJPN219, MSGJPN277, NULL, OFN_FILEMUSTEXIST, 0) == TRUE)
\r
1666 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
1668 case SOUND_CONNECT_BR :
\r
1669 SendDlgItemMessage(hDlg, SOUND_CONNECT_WAV, WM_SETTEXT, 0, (LPARAM)Tmp);
\r
1672 case SOUND_TRANS_BR :
\r
1673 SendDlgItemMessage(hDlg, SOUND_TRANS_WAV, WM_SETTEXT, 0, (LPARAM)Tmp);
\r
1676 case SOUND_ERROR_BR :
\r
1677 SendDlgItemMessage(hDlg, SOUND_ERROR_WAV, WM_SETTEXT, 0, (LPARAM)Tmp);
\r
1683 case SOUND_CONNECT_TEST :
\r
1684 SendDlgItemMessage(hDlg, SOUND_CONNECT_WAV, WM_GETTEXT, FMAX_PATH+1, (LPARAM)Tmp);
\r
1685 sndPlaySound(Tmp, SND_ASYNC | SND_NODEFAULT);
\r
1688 case SOUND_TRANS_TEST :
\r
1689 SendDlgItemMessage(hDlg, SOUND_TRANS_WAV, WM_GETTEXT, FMAX_PATH+1, (LPARAM)Tmp);
\r
1690 sndPlaySound(Tmp, SND_ASYNC | SND_NODEFAULT);
\r
1693 case SOUND_ERROR_TEST :
\r
1694 SendDlgItemMessage(hDlg, SOUND_ERROR_WAV, WM_GETTEXT, FMAX_PATH+1, (LPARAM)Tmp);
\r
1695 sndPlaySound(Tmp, SND_ASYNC | SND_NODEFAULT);
\r
1704 /*----- その他の設定ウインドウのコールバック ----------------------------------
\r
1707 * HWND hDlg : ウインドウハンドル
\r
1708 * UINT message : メッセージ番号
\r
1709 * WPARAM wParam : メッセージの WPARAM 引数
\r
1710 * LPARAM lParam : メッセージの LPARAM 引数
\r
1714 *----------------------------------------------------------------------------*/
\r
1717 //static BOOL CALLBACK MiscSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1718 static INT_PTR CALLBACK MiscSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1721 char Tmp[FMAX_PATH+1];
\r
1725 case WM_INITDIALOG :
\r
1726 SendDlgItemMessage(hDlg, MISC_WINPOS, BM_SETCHECK, SaveWinPos, 0);
\r
1727 SendDlgItemMessage(hDlg, MISC_DEBUG, BM_SETCHECK, DebugConsole, 0);
\r
1728 SendDlgItemMessage(hDlg, MISC_REGTYPE, BM_SETCHECK, RegType, 0);
\r
1730 if(AskForceIni() == YES)
\r
1731 EnableWindow(GetDlgItem(hDlg, MISC_REGTYPE), FALSE);
\r
1733 SendDlgItemMessage(hDlg, MISC_ENCRYPT_SETTINGS, BM_SETCHECK, EncryptAllSettings, 0);
\r
1735 SendDlgItemMessage(hDlg, MISC_CACHE_SAVE, BM_SETCHECK, CacheSave, 0);
\r
1736 SendDlgItemMessage(hDlg, MISC_BUFNUM, EM_LIMITTEXT, (WPARAM)2, 0);
\r
1737 SetDecimalText(hDlg, MISC_BUFNUM, abs(CacheEntry));
\r
1738 SendDlgItemMessage(hDlg, MISC_BUFNUM_SPIN, UDM_SETRANGE, 0, (LPARAM)MAKELONG(99, 1));
\r
1739 if(CacheEntry > 0)
\r
1741 SendDlgItemMessage(hDlg, MISC_CACHE, BM_SETCHECK, 1, 0);
\r
1742 EnableWindow(GetDlgItem(hDlg, MISC_BUFNUM), TRUE);
\r
1743 EnableWindow(GetDlgItem(hDlg, MISC_CACHE_SAVE), TRUE);
\r
1747 SendDlgItemMessage(hDlg, MISC_CACHE, BM_SETCHECK, 0, 0);
\r
1748 EnableWindow(GetDlgItem(hDlg, MISC_BUFNUM), FALSE);
\r
1749 EnableWindow(GetDlgItem(hDlg, MISC_CACHE_SAVE), FALSE);
\r
1752 SendDlgItemMessage(hDlg, MISC_CACHEDIR, EM_LIMITTEXT, (WPARAM)FMAX_PATH, 0);
\r
1753 SendDlgItemMessage(hDlg, MISC_CACHEDIR, WM_SETTEXT, 0, (LPARAM)TmpPath);
\r
1757 pnmhdr = (NMHDR FAR *)lParam;
\r
1758 switch(pnmhdr->code)
\r
1761 SaveWinPos = SendDlgItemMessage(hDlg, MISC_WINPOS, BM_GETCHECK, 0, 0);
\r
1762 DebugConsole = SendDlgItemMessage(hDlg, MISC_DEBUG, BM_GETCHECK, 0, 0);
\r
1764 // RegType = SendDlgItemMessage(hDlg, MISC_REGTYPE, BM_GETCHECK, 0, 0);
\r
1765 if(AskForceIni() == NO)
\r
1766 RegType = SendDlgItemMessage(hDlg, MISC_REGTYPE, BM_GETCHECK, 0, 0);
\r
1768 EncryptAllSettings = SendDlgItemMessage(hDlg, MISC_ENCRYPT_SETTINGS, BM_GETCHECK, 0, 0);
\r
1770 CacheSave = SendDlgItemMessage(hDlg, MISC_CACHE_SAVE, BM_GETCHECK, 0, 0);
\r
1771 CacheEntry = GetDecimalText(hDlg, MISC_BUFNUM);
\r
1772 if(SendDlgItemMessage(hDlg, MISC_CACHE, BM_GETCHECK, 0, 0) == 0)
\r
1773 CacheEntry = -CacheEntry;
\r
1775 SendDlgItemMessage(hDlg, MISC_CACHEDIR, WM_GETTEXT, FMAX_PATH+1, (LPARAM)TmpPath);
\r
1782 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000052);
\r
1788 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
1791 if(SendDlgItemMessage(hDlg, MISC_CACHE, BM_GETCHECK, 0, 0) == 1)
\r
1793 EnableWindow(GetDlgItem(hDlg, TRMODE_EXT), TRUE);
\r
1794 EnableWindow(GetDlgItem(hDlg, MISC_CACHE_SAVE), TRUE);
\r
1798 EnableWindow(GetDlgItem(hDlg, TRMODE_EXT), FALSE);
\r
1799 EnableWindow(GetDlgItem(hDlg, MISC_CACHE_SAVE), FALSE);
\r
1803 case MISC_CACHEDIR_BR :
\r
1804 if(SelectDir(hDlg, Tmp, FMAX_PATH) == TRUE)
\r
1805 SendDlgItemMessage(hDlg, MISC_CACHEDIR, WM_SETTEXT, 0, (LPARAM)Tmp);
\r
1808 case MISC_CACHEDIR_DEF :
\r
1810 // GetTempPath(FMAX_PATH, Tmp);
\r
1811 GetAppTempPath(Tmp);
\r
1813 SendDlgItemMessage(hDlg, MISC_CACHEDIR, WM_SETTEXT, 0, (LPARAM)Tmp);
\r
1822 /*----- ソート設定ウインドウ --------------------------------------------------
\r
1828 * int ステータス (YES=実行/NO=取消)
\r
1829 *----------------------------------------------------------------------------*/
\r
1831 int SortSetting(void)
\r
1835 Sts = DialogBox(GetFtpInst(), MAKEINTRESOURCE(sort_dlg), GetMainHwnd(), SortSettingProc);
\r
1840 /*----- ソート設定ウインドウのコールバック ------------------------------------
\r
1843 * HWND hDlg : ウインドウハンドル
\r
1844 * UINT message : メッセージ番号
\r
1845 * WPARAM wParam : メッセージの WPARAM 引数
\r
1846 * LPARAM lParam : メッセージの LPARAM 引数
\r
1850 *----------------------------------------------------------------------------*/
\r
1853 //static BOOL CALLBACK SortSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1854 static INT_PTR CALLBACK SortSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1861 static const RADIOBUTTON LsortOrdButton[] = {
\r
1862 { SORT_LFILE_NAME, SORT_NAME },
\r
1863 { SORT_LFILE_EXT, SORT_EXT },
\r
1864 { SORT_LFILE_SIZE, SORT_SIZE },
\r
1865 { SORT_LFILE_DATE, SORT_DATE }
\r
1867 #define LSORTORDBUTTONS (sizeof(LsortOrdButton)/sizeof(RADIOBUTTON))
\r
1869 static const RADIOBUTTON LDirsortOrdButton[] = {
\r
1870 { SORT_LDIR_NAME, SORT_NAME },
\r
1871 { SORT_LDIR_DATE, SORT_DATE }
\r
1873 #define LDIRSORTORDBUTTONS (sizeof(LDirsortOrdButton)/sizeof(RADIOBUTTON))
\r
1875 static const RADIOBUTTON RsortOrdButton[] = {
\r
1876 { SORT_RFILE_NAME, SORT_NAME },
\r
1877 { SORT_RFILE_EXT, SORT_EXT },
\r
1878 { SORT_RFILE_SIZE, SORT_SIZE },
\r
1879 { SORT_RFILE_DATE, SORT_DATE }
\r
1881 #define RSORTORDBUTTONS (sizeof(RsortOrdButton)/sizeof(RADIOBUTTON))
\r
1883 static const RADIOBUTTON RDirsortOrdButton[] = {
\r
1884 { SORT_RDIR_NAME, SORT_NAME },
\r
1885 { SORT_RDIR_DATE, SORT_DATE }
\r
1887 #define RDIRSORTORDBUTTONS (sizeof(RDirsortOrdButton)/sizeof(RADIOBUTTON))
\r
1891 case WM_INITDIALOG :
\r
1893 SetRadioButtonByValue(hDlg, AskSortType(ITEM_LFILE) & SORT_MASK_ORD, LsortOrdButton, LSORTORDBUTTONS);
\r
1895 if((AskSortType(ITEM_LFILE) & SORT_GET_ORD) == SORT_ASCENT)
\r
1896 SendDlgItemMessage(hDlg, SORT_LFILE_REV, BM_SETCHECK, 0, 0);
\r
1898 SendDlgItemMessage(hDlg, SORT_LFILE_REV, BM_SETCHECK, 1, 0);
\r
1900 SetRadioButtonByValue(hDlg, AskSortType(ITEM_LDIR) & SORT_MASK_ORD, LDirsortOrdButton, LDIRSORTORDBUTTONS);
\r
1902 if((AskSortType(ITEM_LDIR) & SORT_GET_ORD) == SORT_ASCENT)
\r
1903 SendDlgItemMessage(hDlg, SORT_LDIR_REV, BM_SETCHECK, 0, 0);
\r
1905 SendDlgItemMessage(hDlg, SORT_LDIR_REV, BM_SETCHECK, 1, 0);
\r
1907 SetRadioButtonByValue(hDlg, AskSortType(ITEM_RFILE) & SORT_MASK_ORD, RsortOrdButton, RSORTORDBUTTONS);
\r
1909 if((AskSortType(ITEM_RFILE) & SORT_GET_ORD) == SORT_ASCENT)
\r
1910 SendDlgItemMessage(hDlg, SORT_RFILE_REV, BM_SETCHECK, 0, 0);
\r
1912 SendDlgItemMessage(hDlg, SORT_RFILE_REV, BM_SETCHECK, 1, 0);
\r
1914 SetRadioButtonByValue(hDlg, AskSortType(ITEM_RDIR) & SORT_MASK_ORD, RDirsortOrdButton, RDIRSORTORDBUTTONS);
\r
1916 if((AskSortType(ITEM_RDIR) & SORT_GET_ORD) == SORT_ASCENT)
\r
1917 SendDlgItemMessage(hDlg, SORT_RDIR_REV, BM_SETCHECK, 0, 0);
\r
1919 SendDlgItemMessage(hDlg, SORT_RDIR_REV, BM_SETCHECK, 1, 0);
\r
1921 SendDlgItemMessage(hDlg, SORT_SAVEHOST, BM_SETCHECK, AskSaveSortToHost(), 0);
\r
1926 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
1929 LFsort = AskRadioButtonValue(hDlg, LsortOrdButton, LSORTORDBUTTONS);
\r
1931 if(SendDlgItemMessage(hDlg, SORT_LFILE_REV, BM_GETCHECK, 0, 0) == 1)
\r
1932 LFsort |= SORT_DESCENT;
\r
1934 LDsort = AskRadioButtonValue(hDlg, LDirsortOrdButton, LDIRSORTORDBUTTONS);
\r
1936 if(SendDlgItemMessage(hDlg, SORT_LDIR_REV, BM_GETCHECK, 0, 0) == 1)
\r
1937 LDsort |= SORT_DESCENT;
\r
1939 RFsort = AskRadioButtonValue(hDlg, RsortOrdButton, RSORTORDBUTTONS);
\r
1941 if(SendDlgItemMessage(hDlg, SORT_RFILE_REV, BM_GETCHECK, 0, 0) == 1)
\r
1942 RFsort |= SORT_DESCENT;
\r
1944 RDsort = AskRadioButtonValue(hDlg, RDirsortOrdButton, RDIRSORTORDBUTTONS);
\r
1946 if(SendDlgItemMessage(hDlg, SORT_RDIR_REV, BM_GETCHECK, 0, 0) == 1)
\r
1947 RDsort |= SORT_DESCENT;
\r
1949 SetSortTypeImm(LFsort, LDsort, RFsort, RDsort);
\r
1951 SetSaveSortToHost(SendDlgItemMessage(hDlg, SORT_SAVEHOST, BM_GETCHECK, 0, 0));
\r
1953 EndDialog(hDlg, YES);
\r
1957 EndDialog(hDlg, NO);
\r
1961 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000001);
\r
1971 static INT_PTR CALLBACK UpdatesSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
1977 case WM_INITDIALOG :
\r
1978 SendDlgItemMessage(hDlg, UPDATES_AUTO_CHECK, BM_SETCHECK, AutoCheckForUpdates, 0);
\r
1979 SendDlgItemMessage(hDlg, UPDATES_AUTO_APPLY, BM_SETCHECK, AutoApplyUpdates, 0);
\r
1980 SendDlgItemMessage(hDlg, UPDATES_INTERVAL, EM_LIMITTEXT, (WPARAM)3, 0);
\r
1981 SetDecimalText(hDlg, UPDATES_INTERVAL, AutoCheckForUptatesInterval);
\r
1982 SendDlgItemMessage(hDlg, UPDATES_INTERVAL_SPN, UDM_SETRANGE, 0, (LPARAM)MAKELONG(999, 0));
\r
1983 if(AutoCheckForUpdates == YES)
\r
1985 EnableWindow(GetDlgItem(hDlg, UPDATES_AUTO_APPLY), TRUE);
\r
1986 EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL), TRUE);
\r
1987 EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL_SPN), TRUE);
\r
1991 EnableWindow(GetDlgItem(hDlg, UPDATES_AUTO_APPLY), FALSE);
\r
1992 EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL), FALSE);
\r
1993 EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL_SPN), FALSE);
\r
1998 pnmhdr = (NMHDR FAR *)lParam;
\r
1999 switch(pnmhdr->code)
\r
2002 AutoCheckForUpdates = SendDlgItemMessage(hDlg, UPDATES_AUTO_CHECK, BM_GETCHECK, 0, 0);
\r
2003 AutoApplyUpdates = SendDlgItemMessage(hDlg, UPDATES_AUTO_APPLY, BM_GETCHECK, 0, 0);
\r
2004 AutoCheckForUptatesInterval = GetDecimalText(hDlg, UPDATES_INTERVAL);
\r
2005 CheckRange2(&AutoCheckForUptatesInterval, 999, 0);
\r
2012 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000069);
\r
2018 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
2020 case UPDATES_AUTO_CHECK :
\r
2021 if(SendDlgItemMessage(hDlg, UPDATES_AUTO_CHECK, BM_GETCHECK, 0, 0) == 1)
\r
2023 EnableWindow(GetDlgItem(hDlg, UPDATES_AUTO_APPLY), TRUE);
\r
2024 EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL), TRUE);
\r
2025 EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL_SPN), TRUE);
\r
2029 EnableWindow(GetDlgItem(hDlg, UPDATES_AUTO_APPLY), FALSE);
\r
2030 EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL), FALSE);
\r
2031 EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL_SPN), FALSE);
\r
2040 /*----- ダイアログのコントロールから10進数を取得 ----------------------------
\r
2043 * HWND hDlg : ウインドウハンドル
\r
2044 * int Ctrl : コントロールのID
\r
2048 *----------------------------------------------------------------------------*/
\r
2051 //static int GetDecimalText(HWND hDlg, int Ctrl)
\r
2052 int GetDecimalText(HWND hDlg, int Ctrl)
\r
2056 SendDlgItemMessage(hDlg, Ctrl, WM_GETTEXT, (WPARAM)39, (LPARAM)Tmp);
\r
2057 return(atoi(Tmp));
\r
2061 /*----- ダイアログのコントロールに10進数をセット ----------------------------
\r
2064 * HWND hDlg : ウインドウハンドル
\r
2065 * int Ctrl : コントロールのID
\r
2070 *----------------------------------------------------------------------------*/
\r
2073 //static void SetDecimalText(HWND hDlg, int Ctrl, int Num)
\r
2074 void SetDecimalText(HWND hDlg, int Ctrl, int Num)
\r
2078 sprintf(Tmp, "%d", Num);
\r
2079 SendDlgItemMessage(hDlg, Ctrl, WM_SETTEXT, 0, (LPARAM)Tmp);
\r
2084 /*----- 設定値の範囲チェック --------------------------------------------------
\r
2094 * Parameter change
\r
2096 *----------------------------------------------------------------------------*/
\r
2099 //static void CheckRange2(int *Cur, int Max, int Min)
\r
2100 void CheckRange2(int *Cur, int Max, int Min)
\r
2110 /*----- 文字列をリストボックスに追加 ------------------------------------------
\r
2113 * HWND hDlg : ダイアログボックスのウインドウハンドル
\r
2115 * int CtrlList : リストボックスのID
\r
2116 * int BufSize : バッファサイズ
\r
2120 *----------------------------------------------------------------------------*/
\r
2123 //static void AddTextToListBox(HWND hDlg, char *Str, int CtrlList, int BufSize)
\r
2124 void AddTextToListBox(HWND hDlg, char *Str, int CtrlList, int BufSize)
\r
2126 char Tmp[FMAX_PATH+1];
\r
2131 Len = strlen(Str);
\r
2135 Num = SendDlgItemMessage(hDlg, CtrlList, LB_GETCOUNT, 0, 0);
\r
2136 for(i = 0; i < Num; i++)
\r
2138 SendDlgItemMessage(hDlg, CtrlList, LB_GETTEXT, i, (LPARAM)Tmp);
\r
2139 Len += strlen(Tmp) + 1;
\r
2142 if(Len > (BufSize-1))
\r
2145 SendDlgItemMessage(hDlg, CtrlList, LB_ADDSTRING, 0, (LPARAM)Str);
\r
2151 /*----- マルチ文字列をリストボックスにセット ----------------------------------
\r
2154 * HWND hDlg : ダイアログボックスのウインドウハンドル
\r
2155 * int CtrlList : リストボックスのID
\r
2156 * char *Text : 文字列
\r
2160 *----------------------------------------------------------------------------*/
\r
2163 //static void SetMultiTextToList(HWND hDlg, int CtrlList, char *Text)
\r
2164 void SetMultiTextToList(HWND hDlg, int CtrlList, char *Text)
\r
2169 while(*Pos != NUL)
\r
2171 SendDlgItemMessage(hDlg, CtrlList, LB_ADDSTRING, 0, (LPARAM)Pos);
\r
2172 Pos += strlen(Pos) + 1;
\r
2178 /*----- リストボックスの内容をマルチ文字列にする ------------------------------
\r
2181 * HWND hDlg : ダイアログボックスのウインドウハンドル
\r
2182 * int CtrlList : リストボックスのID
\r
2183 * char *Buf : 文字列をセットするバッファ
\r
2184 * int BufSize : バッファのサイズ
\r
2188 *----------------------------------------------------------------------------*/
\r
2191 //static void GetMultiTextFromList(HWND hDlg, int CtrlList, char *Buf, int BufSize)
\r
2192 void GetMultiTextFromList(HWND hDlg, int CtrlList, char *Buf, int BufSize)
\r
2194 char Tmp[FMAX_PATH+1];
\r
2198 memset(Buf, NUL, BufSize);
\r
2199 Num = SendDlgItemMessage(hDlg, CtrlList, LB_GETCOUNT, 0, 0);
\r
2200 for(i = 0; i < Num; i++)
\r
2202 SendDlgItemMessage(hDlg, CtrlList, LB_GETTEXT, i, (LPARAM)Tmp);
\r
2203 strcpy(Buf + StrMultiLen(Buf), Tmp);
\r