home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / cmd / winfe / slavewnd.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  2.1 KB  |  62 lines

  1. /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  * The contents of this file are subject to the Netscape Public License
  4.  * Version 1.0 (the "NPL"); you may not use this file except in
  5.  * compliance with the NPL.  You may obtain a copy of the NPL at
  6.  * http://www.mozilla.org/NPL/
  7.  *
  8.  * Software distributed under the NPL is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
  10.  * for the specific language governing rights and limitations under the
  11.  * NPL.
  12.  *
  13.  * The Initial Developer of this code under the NPL is Netscape
  14.  * Communications Corporation.  Portions created by Netscape are
  15.  * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
  16.  * Reserved.
  17.  */
  18.  
  19. #ifndef __SlaveWindow_H
  20. #define __SlaveWindow_H
  21.  
  22. //  Purpose is to create a hidden window.
  23. //  External code can register to be called when the
  24. //      window receives messages of a particular type.
  25.  
  26. typedef void (*SlaveWindowCallback)(UINT uMessage, WPARAM wParam, LPARAM lParam);
  27.  
  28. class CSlaveWindow  {
  29. public:
  30.     //  How to get the HWND, in case you need to target for
  31.     //      events.
  32.     HWND GetWindow();
  33.  
  34.     //  How to [un]register to handle an event.
  35.     void *Register(UINT uEvent, SlaveWindowCallback swcCallback);
  36.     BOOL UnRegister(void *pCookie);
  37.  
  38.     //  Needs to be called once the hInstance of the applciation
  39.     //      is known.
  40.     void InitInstance(HINSTANCE hApp);
  41.  
  42. //  Details you do not care about.
  43. private:
  44.     HWND m_hWnd;
  45.     XP_List *m_pHandlers;
  46.     HINSTANCE m_hInstance;
  47. public:
  48.     CSlaveWindow();
  49.     ~CSlaveWindow();
  50.     void WindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam);
  51. };
  52.  
  53. extern CSlaveWindow slavewnd;
  54.  
  55. //  Special messages we like to send to our slave window.
  56. //  Must not go over 0x7FFF, WM_USER is 0x0400.
  57. #define SLAVE_BASE (WM_USER + 0x7000)
  58. #define SLAVE_EXITINSTANCE (SLAVE_BASE + 0x0000) //  theApp.ExitInstance entered.
  59. #define SLAVE_INITINSTANCE (SLAVE_BASE + 0x0001) //  theApp.InitInstance entered.
  60.  
  61. #endif // __SlaveWindow_H
  62.