summaryrefslogtreecommitdiffabout
path: root/PumpKINDlg.h
Unidiff
Diffstat (limited to 'PumpKINDlg.h') (more/less context) (ignore whitespace changes)
-rw-r--r--PumpKINDlg.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/PumpKINDlg.h b/PumpKINDlg.h
index c5469f1..23c2657 100644
--- a/PumpKINDlg.h
+++ b/PumpKINDlg.h
@@ -123,378 +123,379 @@ struct acl_rule {
123 rrqGrant=0, rrqPrompt, rrqDeny, 123 rrqGrant=0, rrqPrompt, rrqDeny,
124 rrqRules, 124 rrqRules,
125 rrqNone=-1 125 rrqNone=-1
126 }; 126 };
127 enum { 127 enum {
128 wrqGrant=0, wrqPromptIfExists, wrqPrompt, wrqDeny, 128 wrqGrant=0, wrqPromptIfExists, wrqPrompt, wrqDeny,
129 wrqRules, 129 wrqRules,
130 wrqNone=-1 130 wrqNone=-1
131 }; 131 };
132 int target; 132 int target;
133 133
134 acl_rule() 134 acl_rule()
135 : op(-1), addr(0), mask(0), target(-1) { } 135 : op(-1), addr(0), mask(0), target(-1) { }
136 acl_rule(int o,DWORD a,DWORD m,int t) 136 acl_rule(int o,DWORD a,DWORD m,int t)
137 : op(o), addr(a), mask(m), target(t) { } 137 : op(o), addr(a), mask(m), target(t) { }
138 acl_rule(const acl_rule& s) 138 acl_rule(const acl_rule& s)
139 : op(s.op), addr(s.addr), mask(s.mask), target(s.target) { } 139 : op(s.op), addr(s.addr), mask(s.mask), target(s.target) { }
140 140
141 BOOL IsValid() { 141 BOOL IsValid() {
142 if(op==opRRQ) { 142 if(op==opRRQ) {
143 if(target<rrqNone || target>=rrqRules) 143 if(target<rrqNone || target>=rrqRules)
144 return FALSE; 144 return FALSE;
145 }else if(op==opWRQ) { 145 }else if(op==opWRQ) {
146 if(target<wrqNone || target>=wrqRules) 146 if(target<wrqNone || target>=wrqRules)
147 return FALSE; 147 return FALSE;
148 }else 148 }else
149 return FALSE; 149 return FALSE;
150 return TRUE; 150 return TRUE;
151 } 151 }
152 152
153 BOOL IsMatch(int o,DWORD a) { 153 BOOL IsMatch(int o,DWORD a) {
154 if(o!=op) return FALSE; 154 if(o!=op) return FALSE;
155 if( (a&mask) != (addr&mask)) return FALSE; 155 if( (a&mask) != (addr&mask)) return FALSE;
156 return TRUE; 156 return TRUE;
157 } 157 }
158 158
159 CString str_addr() { 159 CString str_addr() {
160 return inet_ntoa(*(struct in_addr*)&addr); 160 return inet_ntoa(*(struct in_addr*)&addr);
161 } 161 }
162 CString str_mask() { 162 CString str_mask() {
163 return inet_ntoa(*(struct in_addr*)&mask); 163 return inet_ntoa(*(struct in_addr*)&mask);
164 } 164 }
165 CString str_target() { 165 CString str_target() {
166 if(op==opRRQ) { 166 if(op==opRRQ) {
167 switch(target) { 167 switch(target) {
168 case rrqNone: return "fallback"; 168 case rrqNone: return "fallback";
169 case rrqGrant: return "grant"; 169 case rrqGrant: return "grant";
170 case rrqPrompt: return "prompt"; 170 case rrqPrompt: return "prompt";
171 case rrqDeny: return "deny"; 171 case rrqDeny: return "deny";
172 default: return "?"; 172 default: return "?";
173 } 173 }
174 }else if(op==opWRQ) { 174 }else if(op==opWRQ) {
175 switch(target) { 175 switch(target) {
176 case wrqNone: return "fallback"; 176 case wrqNone: return "fallback";
177 case wrqGrant: return "grant"; 177 case wrqGrant: return "grant";
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(); 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 void OnHostKnown(); 345 void OnHostKnown();
345 virtual void OnResolved(); 346 virtual void OnResolved();
346 BOOL ConfirmRequest(); 347 BOOL ConfirmRequest();
347 WORD m_LastSlack; 348 WORD m_LastSlack;
348 UINT m_ACK; 349 UINT m_ACK;
349 BOOL OnTFTP(tftp* p); 350 BOOL OnTFTP(tftp* p);
350 ULONG GetACK(void); 351 ULONG GetACK(void);
351 void DoXfer(); 352 void DoXfer();
352 CRRQSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin); 353 CRRQSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin);
353 BOOL Create(LPCTSTR localFile=NULL,LPCTSTR hostName=NULL); 354 BOOL Create(LPCTSTR localFile=NULL,LPCTSTR hostName=NULL);
354 355
355 DECLARE_DYNAMIC(CRRQSocket) 356 DECLARE_DYNAMIC(CRRQSocket)
356}; 357};
357 358
358 typedef CMap<SOCKET,SOCKET,CXferSocket*,CXferSocket*>CTIDMap; 359 typedef CMap<SOCKET,SOCKET,CXferSocket*,CXferSocket*>CTIDMap;
359typedef CMap<CTime*,CTime*,CTime*,CTime*> CTimeMap; 360typedef CMap<CTime*,CTime*,CTime*,CTime*> CTimeMap;
360 361
361///////////////////////////////////////////////////////////////////////////// 362/////////////////////////////////////////////////////////////////////////////
362// CPumpKINDlg dialog 363// CPumpKINDlg dialog
363 364
364class CTrayer; 365class CTrayer;
365class CRetrier; 366class CRetrier;
366class CPumpKINDlg : public CDialog 367class CPumpKINDlg : public CDialog
367{ 368{
368// Construction 369// Construction
369public: 370public:
370 void AdjustButton(CWnd& w,CRect& wrc); 371 void AdjustButton(CWnd& w,CRect& wrc);
371 void RecalcLayout(int,int); 372 void RecalcLayout(int,int);
372 CSize m_MinSize; 373 CSize m_MinSize;
373 UINT m_bottomGapLog; 374 UINT m_bottomGapLog;
374 UINT m_bottomGapListen; 375 UINT m_bottomGapListen;
375 UINT m_rightGapList; 376 UINT m_rightGapList;
376 UINT m_rightGapButtons; 377 UINT m_rightGapButtons;
377 CString m_lastlogerr; 378 CString m_lastlogerr;
378 void LogLine(LPCTSTR str); 379 void LogLine(LPCTSTR str);
379 CString m_LogFile; 380 CString m_LogFile;
380 BOOL m_bListen; 381 BOOL m_bListen;
381 acl_rules_t m_aclRules; 382 acl_rules_t m_aclRules;
382 CString m_bnwRequest; 383 CString m_bnwRequest;
383 CString m_bnwSuccess; 384 CString m_bnwSuccess;
384 CString m_bnwAbort; 385 CString m_bnwAbort;
385 CBellsNWhistles m_bnw; 386 CBellsNWhistles m_bnw;
386 CTrayer *m_Trayer; 387 CTrayer *m_Trayer;
387 CTimeSpan m_RetryTimeOut; 388 CTimeSpan m_RetryTimeOut;
388 virtual ~CPumpKINDlg(); 389 virtual ~CPumpKINDlg();
389 CRetrier* m_Retrier; 390 CRetrier* m_Retrier;
390 virtual BOOL PreTranslateMessage(MSG* pMsg); 391 virtual BOOL PreTranslateMessage(MSG* pMsg);
391 BOOL m_bShown; 392 BOOL m_bShown;
392 BOOL m_bExiting; 393 BOOL m_bExiting;
393 void SaveSettings(); 394 void SaveSettings();
394 void LoadSettings(); 395 void LoadSettings();
395 void SetupButtons(); 396 void SetupButtons();
396 BITMAP m_bitmapBack; 397 BITMAP m_bitmapBack;
397 CBitmap m_bmpBack; 398 CBitmap m_bmpBack;
398 UINT m_PromptTimeOut; 399 UINT m_PromptTimeOut;
399 UINT m_SpeakPort; 400 UINT m_SpeakPort;
400 void LogLine(UINT msgID); 401 void LogLine(UINT msgID);
401 CTimeMap m_LogTimes; 402 CTimeMap m_LogTimes;
402 void LogLineToFile(LPCTSTR str); 403 void LogLineToFile(LPCTSTR str);
403 void LogLineToScreen(LPCTSTR str); 404 void LogLineToScreen(LPCTSTR str);
404 int m_LogLength; 405 int m_LogLength;
405 enum{ 406 enum{
406 subitemFile=0, subitemType, subitemPeer, subitemBytes, subitemTSize 407 subitemFile=0, subitemType, subitemPeer, subitemBytes, subitemTSize
407 }; 408 };
408 int m_iWRQ; 409 int m_iWRQ;
409 int m_iRRQ; 410 int m_iRRQ;
410 CImageList m_Images; 411 CImageList m_Images;
411 CTIDMap m_Xfers; 412 CTIDMap m_Xfers;
412 CTimeSpan m_TFTPTimeOut; 413 CTimeSpan m_TFTPTimeOut;
413 enum{ 414 enum{
414 rrqGiveAll=acl_rule::rrqGrant, 415 rrqGiveAll=acl_rule::rrqGrant,
415 rrqAlwaysConfirm=acl_rule::rrqPrompt, 416 rrqAlwaysConfirm=acl_rule::rrqPrompt,
416 rrqDenyAll=acl_rule::rrqDeny, 417 rrqDenyAll=acl_rule::rrqDeny,
417 rrqFallback=acl_rule::rrqNone, 418 rrqFallback=acl_rule::rrqNone,
418 rrqGrant=rrqGiveAll, rrqDeny=rrqDenyAll, rrqPrompt=rrqAlwaysConfirm 419 rrqGrant=rrqGiveAll, rrqDeny=rrqDenyAll, rrqPrompt=rrqAlwaysConfirm
419 }; 420 };
420 enum{ 421 enum{
421 wrqTakeAll=acl_rule::wrqGrant, 422 wrqTakeAll=acl_rule::wrqGrant,
422 wrqConfirmIfExists=acl_rule::wrqPromptIfExists, 423 wrqConfirmIfExists=acl_rule::wrqPromptIfExists,
423 wrqAlwaysConfirm=acl_rule::wrqPrompt, 424 wrqAlwaysConfirm=acl_rule::wrqPrompt,
424 wrqDenyAll=acl_rule::wrqDeny, 425 wrqDenyAll=acl_rule::wrqDeny,
425 wrqFallback=acl_rule::wrqNone, 426 wrqFallback=acl_rule::wrqNone,
426 wrqGrant=wrqTakeAll,wrqDeny=wrqDenyAll, wrqPrompt=wrqAlwaysConfirm 427 wrqGrant=wrqTakeAll,wrqDeny=wrqDenyAll, wrqPrompt=wrqAlwaysConfirm
427 }; 428 };
428 UINT m_RRQMode; 429 UINT m_RRQMode;
429 UINT m_WRQMode; 430 UINT m_WRQMode;
430 BOOL m_bTFTPSubdirs; 431 BOOL m_bTFTPSubdirs;
431 CString m_TFTPRoot; 432 CString m_TFTPRoot;
432 UINT m_ListenPort; 433 UINT m_ListenPort;
433 UINT m_BlockSize; 434 UINT m_BlockSize;
434 CListenSocket m_Listener; 435 CListenSocket m_Listener;
435 CPumpKINDlg(CWnd* pParent = NULL);// standard constructor 436 CPumpKINDlg(CWnd* pParent = NULL);// standard constructor
436 437
437// Dialog Data 438// Dialog Data
438 //{{AFX_DATA(CPumpKINDlg) 439 //{{AFX_DATA(CPumpKINDlg)
439 enum { IDD = IDD_PUMPKIN_DIALOG }; 440 enum { IDD = IDD_PUMPKIN_DIALOG };
440 CButtonm_HelpCtl; 441 CButtonm_HelpCtl;
441 CButtonm_PutCtl; 442 CButtonm_PutCtl;
442 CButtonm_GetCtl; 443 CButtonm_GetCtl;
443 CButtonm_ExitCtl; 444 CButtonm_ExitCtl;
444 CButtonm_ListenCtl; 445 CButtonm_ListenCtl;
445 CButtonm_AbortCtl; 446 CButtonm_AbortCtl;
446 CButtonm_OptionsCtl; 447 CButtonm_OptionsCtl;
447 CListBoxm_Log; 448 CListBoxm_Log;
448 CListCtrlm_List; 449 CListCtrlm_List;
449 //}}AFX_DATA 450 //}}AFX_DATA
450 451
451 // ClassWizard generated virtual function overrides 452 // ClassWizard generated virtual function overrides
452 //{{AFX_VIRTUAL(CPumpKINDlg) 453 //{{AFX_VIRTUAL(CPumpKINDlg)
453 protected: 454 protected:
454 virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV support 455 virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV support
455 //}}AFX_VIRTUAL 456 //}}AFX_VIRTUAL
456 457
457// Implementation 458// Implementation
458protected: 459protected:
459 CToolTipCtrl m_tooltip; 460 CToolTipCtrl m_tooltip;
460 HICON m_hIcon; 461 HICON m_hIcon;
461 462
462 // Generated message map functions 463 // Generated message map functions
463 //{{AFX_MSG(CPumpKINDlg) 464 //{{AFX_MSG(CPumpKINDlg)
464 virtual BOOL OnInitDialog(); 465 virtual BOOL OnInitDialog();
465 afx_msg void OnSysCommand(UINT nID, LPARAM lParam); 466 afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
466 afx_msg void OnDestroy(); 467 afx_msg void OnDestroy();
467 afx_msg void OnPaint(); 468 afx_msg void OnPaint();
468 afx_msg HCURSOR OnQueryDragIcon(); 469 afx_msg HCURSOR OnQueryDragIcon();
469 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 470 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
470 afx_msg void OnOptions(); 471 afx_msg void OnOptions();
471 afx_msg void OnTimer(UINT nIDEvent); 472 afx_msg void OnTimer(UINT nIDEvent);
472 afx_msg void OnExit(); 473 afx_msg void OnExit();
473 afx_msg void OnPut(); 474 afx_msg void OnPut();
474 afx_msg void OnGet(); 475 afx_msg void OnGet();
475 afx_msg void OnDeleteallitemsConnections(NMHDR* pNMHDR, LRESULT* pResult); 476 afx_msg void OnDeleteallitemsConnections(NMHDR* pNMHDR, LRESULT* pResult);
476 afx_msg void OnDeleteitemConnections(NMHDR* pNMHDR, LRESULT* pResult); 477 afx_msg void OnDeleteitemConnections(NMHDR* pNMHDR, LRESULT* pResult);
477 afx_msg void OnInsertitemConnections(NMHDR* pNMHDR, LRESULT* pResult); 478 afx_msg void OnInsertitemConnections(NMHDR* pNMHDR, LRESULT* pResult);
478 afx_msg void OnItemchangedConnections(NMHDR* pNMHDR, LRESULT* pResult); 479 afx_msg void OnItemchangedConnections(NMHDR* pNMHDR, LRESULT* pResult);
479 afx_msg void OnAbort(); 480 afx_msg void OnAbort();
480 afx_msg void OnClose(); 481 afx_msg void OnClose();
481 afx_msg void OnTrayShowpumpkinwindow(); 482 afx_msg void OnTrayShowpumpkinwindow();
482 afx_msg void OnTrayListen(); 483 afx_msg void OnTrayListen();
483 afx_msg void OnTrayExit(); 484 afx_msg void OnTrayExit();
484 afx_msg void OnTrayAboutpumpkin(); 485 afx_msg void OnTrayAboutpumpkin();
485 afx_msg void OnTrayFetchfile(); 486 afx_msg void OnTrayFetchfile();
486 afx_msg void OnTrayHelp(); 487 afx_msg void OnTrayHelp();
487 afx_msg void OnTrayOptions(); 488 afx_msg void OnTrayOptions();
488 afx_msg void OnTraySendfile(); 489 afx_msg void OnTraySendfile();
489 afx_msg void OnWindowPosChanging(WINDOWPOS FAR* lpwndpos); 490 afx_msg void OnWindowPosChanging(WINDOWPOS FAR* lpwndpos);
490 afx_msg void OnSelchangeLog(); 491 afx_msg void OnSelchangeLog();
491 afx_msg void OnTrayOpenfilesfolder(); 492 afx_msg void OnTrayOpenfilesfolder();
492 afx_msg void OnDropFiles(HDROP hDropInfo); 493 afx_msg void OnDropFiles(HDROP hDropInfo);
493 virtual void OnCancel(); 494 virtual void OnCancel();
494 afx_msg void OnHelp(); 495 afx_msg void OnHelp();
495 afx_msg void OnListening(); 496 afx_msg void OnListening();
496 afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI); 497 afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
497 afx_msg void OnSize(UINT nType, int cx, int cy); 498 afx_msg void OnSize(UINT nType, int cx, int cy);
498 //}}AFX_MSG 499 //}}AFX_MSG
499 DECLARE_MESSAGE_MAP() 500 DECLARE_MESSAGE_MAP()
500}; 501};