summaryrefslogtreecommitdiffabout
path: root/PumpKINDlg.h
authorMichael Krelin <hacker@klever.net>2011-04-27 14:18:48 (UTC)
committer Michael Krelin <hacker@klever.net>2011-04-27 14:18:48 (UTC)
commitc3b240e06bae3b663505e2b1c52eb67c34ddd3ea (patch) (unidiff)
tree06793f5d56a8129bfdaaee441fc34fbb361ddb13 /PumpKINDlg.h
parentd097b824b7fcad001c9581fb2e322bf3e3e5961d (diff)
downloadpumpkin-c3b240e06bae3b663505e2b1c52eb67c34ddd3ea.zip
pumpkin-c3b240e06bae3b663505e2b1c52eb67c34ddd3ea.tar.gz
pumpkin-c3b240e06bae3b663505e2b1c52eb67c34ddd3ea.tar.bz2
network settings: bind to specific ip address
Signed-off-by: Michael Krelin <hacker@klever.net>
Diffstat (limited to 'PumpKINDlg.h') (more/less context) (ignore whitespace changes)
-rwxr-xr-x[-rw-r--r--]PumpKINDlg.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/PumpKINDlg.h b/PumpKINDlg.h
index 23c2657..9077292 100644..100755
--- a/PumpKINDlg.h
+++ b/PumpKINDlg.h
@@ -178,324 +178,325 @@ struct acl_rule {
178 case wrqPromptIfExists: return "prompt if exists"; 178 case wrqPromptIfExists: return "prompt if exists";
179 case wrqPrompt: return "prompt"; 179 case wrqPrompt: return "prompt";
180 case wrqDeny: return "deny"; 180 case wrqDeny: return "deny";
181 default: return "?"; 181 default: return "?";
182 } 182 }
183 }else 183 }else
184 return "?"; 184 return "?";
185 } 185 }
186 186
187 void SaveProfile(CWinApp* app,int i) { 187 void SaveProfile(CWinApp* app,int i) {
188 CString n; n.Format("%d",i); 188 CString n; n.Format("%d",i);
189 app->WriteProfileInt("ACL","op_"+n,op); 189 app->WriteProfileInt("ACL","op_"+n,op);
190 app->WriteProfileString("ACL","addr_"+n,str_addr()); 190 app->WriteProfileString("ACL","addr_"+n,str_addr());
191 app->WriteProfileString("ACL","mask_"+n,str_mask()); 191 app->WriteProfileString("ACL","mask_"+n,str_mask());
192 app->WriteProfileInt("ACL","target_"+n,target); 192 app->WriteProfileInt("ACL","target_"+n,target);
193 } 193 }
194 194
195 void LoadProfile(CWinApp* app,int i) { 195 void LoadProfile(CWinApp* app,int i) {
196 CString n; n.Format("%d",i); 196 CString n; n.Format("%d",i);
197 op=app->GetProfileInt("ACL","op_"+n,-1); 197 op=app->GetProfileInt("ACL","op_"+n,-1);
198 addr=inet_addr(app->GetProfileString("ACL","addr_"+n)); 198 addr=inet_addr(app->GetProfileString("ACL","addr_"+n));
199 mask=inet_addr(app->GetProfileString("ACL","mask_"+n)); 199 mask=inet_addr(app->GetProfileString("ACL","mask_"+n));
200 target=app->GetProfileInt("ACL","target_"+n,-1); 200 target=app->GetProfileInt("ACL","target_"+n,-1);
201 } 201 }
202 202
203}; 203};
204 204
205class acl_rules_t : public CArray<acl_rule,acl_rule&> { 205class acl_rules_t : public CArray<acl_rule,acl_rule&> {
206public: 206public:
207 207
208 acl_rules_t& operator=(const acl_rules_t& s) { 208 acl_rules_t& operator=(const acl_rules_t& s) {
209 // Copy(s); XXX: unsuprisingly, there's a bug in MFC Copy, *pDst++=*pSrc (no ++ for Src) 209 // Copy(s); XXX: unsuprisingly, there's a bug in MFC Copy, *pDst++=*pSrc (no ++ for Src)
210 RemoveAll(); 210 RemoveAll();
211 int ns = s.GetSize(); 211 int ns = s.GetSize();
212 SetSize(ns); 212 SetSize(ns);
213 for(int i=0;i<ns;++i) 213 for(int i=0;i<ns;++i)
214 m_pData[i]=s.m_pData[i]; 214 m_pData[i]=s.m_pData[i];
215 return *this; 215 return *this;
216 } 216 }
217 217
218 int AppendRule(acl_rule& r) { 218 int AppendRule(acl_rule& r) {
219 return Add(r); 219 return Add(r);
220 } 220 }
221 221
222 void DeleteRule(int r) { 222 void DeleteRule(int r) {
223 RemoveAt(r); 223 RemoveAt(r);
224 } 224 }
225 225
226 int FindRule(int op,DWORD ip) { 226 int FindRule(int op,DWORD ip) {
227 for(int i=0;i<GetSize();++i) 227 for(int i=0;i<GetSize();++i)
228 if(m_pData[i].IsMatch(op,ip)) 228 if(m_pData[i].IsMatch(op,ip))
229 return i; 229 return i;
230 return -1; 230 return -1;
231 } 231 }
232 232
233 int FindTarget(int op,DWORD ip) { 233 int FindTarget(int op,DWORD ip) {
234 int r=FindRule(op,ip); 234 int r=FindRule(op,ip);
235 if(r<0) return -1; 235 if(r<0) return -1;
236 return m_pData[r].target; 236 return m_pData[r].target;
237 } 237 }
238 238
239 void SaveProfile(CWinApp* app) { 239 void SaveProfile(CWinApp* app) {
240 int s=GetSize(); 240 int s=GetSize();
241 for(int i=0;i<s;++i) 241 for(int i=0;i<s;++i)
242 m_pData[i].SaveProfile(app,i); 242 m_pData[i].SaveProfile(app,i);
243 app->WriteProfileInt("ACL","rules",s); 243 app->WriteProfileInt("ACL","rules",s);
244 } 244 }
245 void LoadProfile(CWinApp* app) { 245 void LoadProfile(CWinApp* app) {
246 RemoveAll(); 246 RemoveAll();
247 int s=app->GetProfileInt("ACL","rules",0); 247 int s=app->GetProfileInt("ACL","rules",0);
248 for(int i=0;i<s;++i) { 248 for(int i=0;i<s;++i) {
249 acl_rule r; 249 acl_rule r;
250 r.LoadProfile(app,i); 250 r.LoadProfile(app,i);
251 if(r.IsValid()) 251 if(r.IsValid())
252 Add(r); 252 Add(r);
253 } 253 }
254 } 254 }
255}; 255};
256 256
257class CPumpKINDlg; 257class CPumpKINDlg;
258 class CListenSocket : public CAsyncSocket{ 258 class CListenSocket : public CAsyncSocket{
259public: 259public:
260 CPumpKINDlg* m_Daddy; 260 CPumpKINDlg* m_Daddy;
261 BOOL m_bListen; 261 BOOL m_bListen;
262 262
263 CListenSocket() 263 CListenSocket()
264 : m_bListen(FALSE), m_Daddy(0) { } 264 : m_bListen(FALSE), m_Daddy(0) { }
265 265
266 BOOL SetListen(BOOL b); 266 BOOL SetListen(BOOL b);
267 virtual void OnReceive(int nErrorCode); 267 virtual void OnReceive(int nErrorCode);
268}; 268};
269 269
270 typedef CList<tftp*,tftp*>CTFTPList; 270 typedef CList<tftp*,tftp*>CTFTPList;
271class CResolver; 271class CResolver;
272 class CXferSocket : public CAsyncSocket{ 272 class CXferSocket : public CAsyncSocket{
273public: 273public:
274 UINT m__timeOut; 274 UINT m__timeOut;
275 UINT m__blkSize; 275 UINT m__blkSize;
276 tftp::tftpOptions m_Options; 276 tftp::tftpOptions m_Options;
277 LONG m_xferSize; 277 LONG m_xferSize;
278 UINT m_timeOut; 278 UINT m_timeOut;
279 UINT m_blkSize; 279 UINT m_blkSize;
280 BOOL m_bRetry; 280 BOOL m_bRetry;
281 void SetTry(tftp *p=NULL); 281 void SetTry(tftp *p=NULL);
282 tftp* m_Retry; 282 tftp* m_Retry;
283 void OnRetry(); 283 void OnRetry();
284 BOOL CheckBadRelativeness(LPCTSTR file); 284 BOOL CheckBadRelativeness(LPCTSTR file);
285 CString ApplyRootGently(LPCTSTR fn); 285 CString ApplyRootGently(LPCTSTR fn);
286 CString m_HostName; 286 CString m_HostName;
287 virtual void OnResolved(); 287 virtual void OnResolved();
288 virtual void OnFailedToResolve(); 288 virtual void OnFailedToResolve();
289 CResolver *m_wndResolver; 289 CResolver *m_wndResolver;
290 BYTE m_ResolveBuff[MAXGETHOSTSTRUCT]; 290 BYTE m_ResolveBuff[MAXGETHOSTSTRUCT];
291 virtual void Abort(); 291 virtual void Abort();
292 void ResetTimeout(); 292 void ResetTimeout();
293 enum{ 293 enum{
294 stateNone, stateDeny, stateInit, stateOACK, stateXfer, stateFinish, stateClosing 294 stateNone, stateDeny, stateInit, stateOACK, stateXfer, stateFinish, stateClosing
295 }; 295 };
296 int state; 296 int state;
297 void Deny(UINT errCode,UINT errID); 297 void Deny(UINT errCode,UINT errID);
298 void Deny(CFileException* e); 298 void Deny(CFileException* e);
299 CString ApplyRoot(LPCTSTR fileName); 299 CString ApplyRoot(LPCTSTR fileName);
300 void TurnSlashes(CString& fn,BOOL bBack=TRUE); 300 void TurnSlashes(CString& fn,BOOL bBack=TRUE);
301 virtual void Destroy(BOOL success=TRUE); 301 virtual void Destroy(BOOL success=TRUE);
302 void PostError(CFileException* e); 302 void PostError(CFileException* e);
303 void PostError(UINT errCode,UINT errID); 303 void PostError(UINT errCode,UINT errID);
304 void PostTFTP(tftp* p,BOOL retryable=FALSE); 304 void PostTFTP(tftp* p,BOOL retryable=FALSE);
305 CXferSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN* sin); 305 CXferSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN* sin);
306 CFile m_File; 306 CFile m_File;
307 virtual ULONG GetACK(); 307 virtual ULONG GetACK();
308 CString m_Type; 308 CString m_Type;
309 CString m_FileName; 309 CString m_FileName;
310 CXferSocket(); 310 CXferSocket();
311 void UpdateList(); 311 void UpdateList();
312 void SetPeer(SOCKADDR_IN *sin); 312 void SetPeer(SOCKADDR_IN *sin);
313 virtual BOOL OnTFTP(tftp* p) = 0; 313 virtual BOOL OnTFTP(tftp* p) = 0;
314 virtual void OnReceive(int nErrorCode); 314 virtual void OnReceive(int nErrorCode);
315 void DoSelect(BOOL do_select=FALSE); 315 void DoSelect(BOOL do_select=FALSE);
316 SOCKADDR_IN m_Peer; 316 SOCKADDR_IN m_Peer;
317 virtual void OnSend(int nErrorCode); 317 virtual void OnSend(int nErrorCode);
318 CPumpKINDlg* m_Daddy; 318 CPumpKINDlg* m_Daddy;
319 CTFTPList m_Queue; 319 CTFTPList m_Queue;
320 320
321 DECLARE_DYNAMIC(CXferSocket) 321 DECLARE_DYNAMIC(CXferSocket)
322}; 322};
323class CWRQSocket : public CXferSocket { 323class CWRQSocket : public CXferSocket {
324public: 324public:
325 BOOL m_bResume; 325 BOOL m_bResume;
326 void OnHostKnown(); 326 void OnHostKnown();
327 virtual void OnResolved(); 327 virtual void OnResolved();
328 UINT m_LastSlack; 328 UINT m_LastSlack;
329 ULONG GetACK(); 329 ULONG GetACK();
330 void DoXfer(); 330 void DoXfer();
331 UINT m_ACK; 331 UINT m_ACK;
332 BOOL SaveAs(CString& fn); 332 BOOL SaveAs(CString& fn);
333 BOOL RenameFile(CString& fn); 333 BOOL RenameFile(CString& fn);
334 BOOL m_Rename; 334 BOOL m_Rename;
335 BOOL ConfirmRequest(); 335 BOOL ConfirmRequest();
336 BOOL Create(LPCTSTR localFile=NULL,LPCTSTR hostName=NULL); 336 BOOL Create(LPCTSTR localFile=NULL,LPCTSTR hostName=NULL);
337 CWRQSocket(CPumpKINDlg* daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin); 337 CWRQSocket(CPumpKINDlg* daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin);
338 BOOL OnTFTP(tftp* p); 338 BOOL OnTFTP(tftp* p);
339 339
340 DECLARE_DYNAMIC(CWRQSocket) 340 DECLARE_DYNAMIC(CWRQSocket)
341}; 341};
342class CRRQSocket : public CXferSocket { 342class CRRQSocket : public CXferSocket {
343public: 343public:
344 UINT m_ACKtoClose; 344 UINT m_ACKtoClose;
345 void OnHostKnown(); 345 void OnHostKnown();
346 virtual void OnResolved(); 346 virtual void OnResolved();
347 BOOL ConfirmRequest(); 347 BOOL ConfirmRequest();
348 WORD m_LastSlack; 348 WORD m_LastSlack;
349 UINT m_ACK; 349 UINT m_ACK;
350 BOOL OnTFTP(tftp* p); 350 BOOL OnTFTP(tftp* p);
351 ULONG GetACK(void); 351 ULONG GetACK(void);
352 void DoXfer(); 352 void DoXfer();
353 CRRQSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin); 353 CRRQSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin);
354 BOOL Create(LPCTSTR localFile=NULL,LPCTSTR hostName=NULL); 354 BOOL Create(LPCTSTR localFile=NULL,LPCTSTR hostName=NULL);
355 355
356 DECLARE_DYNAMIC(CRRQSocket) 356 DECLARE_DYNAMIC(CRRQSocket)
357}; 357};
358 358
359 typedef CMap<SOCKET,SOCKET,CXferSocket*,CXferSocket*>CTIDMap; 359 typedef CMap<SOCKET,SOCKET,CXferSocket*,CXferSocket*>CTIDMap;
360typedef CMap<CTime*,CTime*,CTime*,CTime*> CTimeMap; 360typedef CMap<CTime*,CTime*,CTime*,CTime*> CTimeMap;
361 361
362///////////////////////////////////////////////////////////////////////////// 362/////////////////////////////////////////////////////////////////////////////
363// CPumpKINDlg dialog 363// CPumpKINDlg dialog
364 364
365class CTrayer; 365class CTrayer;
366class CRetrier; 366class CRetrier;
367class CPumpKINDlg : public CDialog 367class CPumpKINDlg : public CDialog
368{ 368{
369// Construction 369// Construction
370public: 370public:
371 void AdjustButton(CWnd& w,CRect& wrc); 371 void AdjustButton(CWnd& w,CRect& wrc);
372 void RecalcLayout(int,int); 372 void RecalcLayout(int,int);
373 CSize m_MinSize; 373 CSize m_MinSize;
374 UINT m_bottomGapLog; 374 UINT m_bottomGapLog;
375 UINT m_bottomGapListen; 375 UINT m_bottomGapListen;
376 UINT m_rightGapList; 376 UINT m_rightGapList;
377 UINT m_rightGapButtons; 377 UINT m_rightGapButtons;
378 CString m_lastlogerr; 378 CString m_lastlogerr;
379 void LogLine(LPCTSTR str); 379 void LogLine(LPCTSTR str);
380 CString m_LogFile; 380 CString m_LogFile;
381 BOOL m_bListen; 381 BOOL m_bListen;
382 acl_rules_t m_aclRules; 382 acl_rules_t m_aclRules;
383 CString m_bnwRequest; 383 CString m_bnwRequest;
384 CString m_bnwSuccess; 384 CString m_bnwSuccess;
385 CString m_bnwAbort; 385 CString m_bnwAbort;
386 CBellsNWhistles m_bnw; 386 CBellsNWhistles m_bnw;
387 CTrayer *m_Trayer; 387 CTrayer *m_Trayer;
388 CTimeSpan m_RetryTimeOut; 388 CTimeSpan m_RetryTimeOut;
389 virtual ~CPumpKINDlg(); 389 virtual ~CPumpKINDlg();
390 CRetrier* m_Retrier; 390 CRetrier* m_Retrier;
391 virtual BOOL PreTranslateMessage(MSG* pMsg); 391 virtual BOOL PreTranslateMessage(MSG* pMsg);
392 BOOL m_bShown; 392 BOOL m_bShown;
393 BOOL m_bExiting; 393 BOOL m_bExiting;
394 void SaveSettings(); 394 void SaveSettings();
395 void LoadSettings(); 395 void LoadSettings();
396 void SetupButtons(); 396 void SetupButtons();
397 BITMAP m_bitmapBack; 397 BITMAP m_bitmapBack;
398 CBitmap m_bmpBack; 398 CBitmap m_bmpBack;
399 UINT m_PromptTimeOut; 399 UINT m_PromptTimeOut;
400 UINT m_SpeakPort; 400 UINT m_SpeakPort;
401 void LogLine(UINT msgID); 401 void LogLine(UINT msgID);
402 CTimeMap m_LogTimes; 402 CTimeMap m_LogTimes;
403 void LogLineToFile(LPCTSTR str); 403 void LogLineToFile(LPCTSTR str);
404 void LogLineToScreen(LPCTSTR str); 404 void LogLineToScreen(LPCTSTR str);
405 int m_LogLength; 405 int m_LogLength;
406 enum{ 406 enum{
407 subitemFile=0, subitemType, subitemPeer, subitemBytes, subitemTSize 407 subitemFile=0, subitemType, subitemPeer, subitemBytes, subitemTSize
408 }; 408 };
409 int m_iWRQ; 409 int m_iWRQ;
410 int m_iRRQ; 410 int m_iRRQ;
411 CImageList m_Images; 411 CImageList m_Images;
412 CTIDMap m_Xfers; 412 CTIDMap m_Xfers;
413 CTimeSpan m_TFTPTimeOut; 413 CTimeSpan m_TFTPTimeOut;
414 enum{ 414 enum{
415 rrqGiveAll=acl_rule::rrqGrant, 415 rrqGiveAll=acl_rule::rrqGrant,
416 rrqAlwaysConfirm=acl_rule::rrqPrompt, 416 rrqAlwaysConfirm=acl_rule::rrqPrompt,
417 rrqDenyAll=acl_rule::rrqDeny, 417 rrqDenyAll=acl_rule::rrqDeny,
418 rrqFallback=acl_rule::rrqNone, 418 rrqFallback=acl_rule::rrqNone,
419 rrqGrant=rrqGiveAll, rrqDeny=rrqDenyAll, rrqPrompt=rrqAlwaysConfirm 419 rrqGrant=rrqGiveAll, rrqDeny=rrqDenyAll, rrqPrompt=rrqAlwaysConfirm
420 }; 420 };
421 enum{ 421 enum{
422 wrqTakeAll=acl_rule::wrqGrant, 422 wrqTakeAll=acl_rule::wrqGrant,
423 wrqConfirmIfExists=acl_rule::wrqPromptIfExists, 423 wrqConfirmIfExists=acl_rule::wrqPromptIfExists,
424 wrqAlwaysConfirm=acl_rule::wrqPrompt, 424 wrqAlwaysConfirm=acl_rule::wrqPrompt,
425 wrqDenyAll=acl_rule::wrqDeny, 425 wrqDenyAll=acl_rule::wrqDeny,
426 wrqFallback=acl_rule::wrqNone, 426 wrqFallback=acl_rule::wrqNone,
427 wrqGrant=wrqTakeAll,wrqDeny=wrqDenyAll, wrqPrompt=wrqAlwaysConfirm 427 wrqGrant=wrqTakeAll,wrqDeny=wrqDenyAll, wrqPrompt=wrqAlwaysConfirm
428 }; 428 };
429 UINT m_RRQMode; 429 UINT m_RRQMode;
430 UINT m_WRQMode; 430 UINT m_WRQMode;
431 BOOL m_bTFTPSubdirs; 431 BOOL m_bTFTPSubdirs;
432 CString m_TFTPRoot; 432 CString m_TFTPRoot;
433 UINT m_ListenPort; 433 UINT m_ListenPort;
434 CString m_ListenAddress;
434 UINT m_BlockSize; 435 UINT m_BlockSize;
435 CListenSocket m_Listener; 436 CListenSocket m_Listener;
436 CPumpKINDlg(CWnd* pParent = NULL);// standard constructor 437 CPumpKINDlg(CWnd* pParent = NULL);// standard constructor
437 438
438// Dialog Data 439// Dialog Data
439 //{{AFX_DATA(CPumpKINDlg) 440 //{{AFX_DATA(CPumpKINDlg)
440 enum { IDD = IDD_PUMPKIN_DIALOG }; 441 enum { IDD = IDD_PUMPKIN_DIALOG };
441 CButtonm_HelpCtl; 442 CButtonm_HelpCtl;
442 CButtonm_PutCtl; 443 CButtonm_PutCtl;
443 CButtonm_GetCtl; 444 CButtonm_GetCtl;
444 CButtonm_ExitCtl; 445 CButtonm_ExitCtl;
445 CButtonm_ListenCtl; 446 CButtonm_ListenCtl;
446 CButtonm_AbortCtl; 447 CButtonm_AbortCtl;
447 CButtonm_OptionsCtl; 448 CButtonm_OptionsCtl;
448 CListBoxm_Log; 449 CListBoxm_Log;
449 CListCtrlm_List; 450 CListCtrlm_List;
450 //}}AFX_DATA 451 //}}AFX_DATA
451 452
452 // ClassWizard generated virtual function overrides 453 // ClassWizard generated virtual function overrides
453 //{{AFX_VIRTUAL(CPumpKINDlg) 454 //{{AFX_VIRTUAL(CPumpKINDlg)
454 protected: 455 protected:
455 virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV support 456 virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV support
456 //}}AFX_VIRTUAL 457 //}}AFX_VIRTUAL
457 458
458// Implementation 459// Implementation
459protected: 460protected:
460 CToolTipCtrl m_tooltip; 461 CToolTipCtrl m_tooltip;
461 HICON m_hIcon; 462 HICON m_hIcon;
462 463
463 // Generated message map functions 464 // Generated message map functions
464 //{{AFX_MSG(CPumpKINDlg) 465 //{{AFX_MSG(CPumpKINDlg)
465 virtual BOOL OnInitDialog(); 466 virtual BOOL OnInitDialog();
466 afx_msg void OnSysCommand(UINT nID, LPARAM lParam); 467 afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
467 afx_msg void OnDestroy(); 468 afx_msg void OnDestroy();
468 afx_msg void OnPaint(); 469 afx_msg void OnPaint();
469 afx_msg HCURSOR OnQueryDragIcon(); 470 afx_msg HCURSOR OnQueryDragIcon();
470 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 471 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
471 afx_msg void OnOptions(); 472 afx_msg void OnOptions();
472 afx_msg void OnTimer(UINT nIDEvent); 473 afx_msg void OnTimer(UINT nIDEvent);
473 afx_msg void OnExit(); 474 afx_msg void OnExit();
474 afx_msg void OnPut(); 475 afx_msg void OnPut();
475 afx_msg void OnGet(); 476 afx_msg void OnGet();
476 afx_msg void OnDeleteallitemsConnections(NMHDR* pNMHDR, LRESULT* pResult); 477 afx_msg void OnDeleteallitemsConnections(NMHDR* pNMHDR, LRESULT* pResult);
477 afx_msg void OnDeleteitemConnections(NMHDR* pNMHDR, LRESULT* pResult); 478 afx_msg void OnDeleteitemConnections(NMHDR* pNMHDR, LRESULT* pResult);
478 afx_msg void OnInsertitemConnections(NMHDR* pNMHDR, LRESULT* pResult); 479 afx_msg void OnInsertitemConnections(NMHDR* pNMHDR, LRESULT* pResult);
479 afx_msg void OnItemchangedConnections(NMHDR* pNMHDR, LRESULT* pResult); 480 afx_msg void OnItemchangedConnections(NMHDR* pNMHDR, LRESULT* pResult);
480 afx_msg void OnAbort(); 481 afx_msg void OnAbort();
481 afx_msg void OnClose(); 482 afx_msg void OnClose();
482 afx_msg void OnTrayShowpumpkinwindow(); 483 afx_msg void OnTrayShowpumpkinwindow();
483 afx_msg void OnTrayListen(); 484 afx_msg void OnTrayListen();
484 afx_msg void OnTrayExit(); 485 afx_msg void OnTrayExit();
485 afx_msg void OnTrayAboutpumpkin(); 486 afx_msg void OnTrayAboutpumpkin();
486 afx_msg void OnTrayFetchfile(); 487 afx_msg void OnTrayFetchfile();
487 afx_msg void OnTrayHelp(); 488 afx_msg void OnTrayHelp();
488 afx_msg void OnTrayOptions(); 489 afx_msg void OnTrayOptions();
489 afx_msg void OnTraySendfile(); 490 afx_msg void OnTraySendfile();
490 afx_msg void OnWindowPosChanging(WINDOWPOS FAR* lpwndpos); 491 afx_msg void OnWindowPosChanging(WINDOWPOS FAR* lpwndpos);
491 afx_msg void OnSelchangeLog(); 492 afx_msg void OnSelchangeLog();
492 afx_msg void OnTrayOpenfilesfolder(); 493 afx_msg void OnTrayOpenfilesfolder();
493 afx_msg void OnDropFiles(HDROP hDropInfo); 494 afx_msg void OnDropFiles(HDROP hDropInfo);
494 virtual void OnCancel(); 495 virtual void OnCancel();
495 afx_msg void OnHelp(); 496 afx_msg void OnHelp();
496 afx_msg void OnListening(); 497 afx_msg void OnListening();
497 afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI); 498 afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
498 afx_msg void OnSize(UINT nType, int cx, int cy); 499 afx_msg void OnSize(UINT nType, int cx, int cy);
499 //}}AFX_MSG 500 //}}AFX_MSG
500 DECLARE_MESSAGE_MAP() 501 DECLARE_MESSAGE_MAP()
501}; 502};