/******************************************************************************
Copyright (c) Maynard, an Archive Company.  1991
GSH

     Name:          winmang.h

     Description:   This file contains the definitions, macros, and function
                    prototypes for the Maynstream GUI Window Manager (WM).

     $Log:   G:/UI/LOGFILES/WINMANG.H_V  $

   Rev 1.33   23 Sep 1993 15:52:46   GLENN
Added poll drive user message ID.

   Rev 1.32   13 Aug 1993 15:22:20   GLENN
Removed ifdef around sort IDs.

   Rev 1.31   09 Jun 1993 15:09:22   MIKEP
enable c++


   Rev 1.30   07 May 1993 14:23:26   DARRYLP
Added Rob's changes for delete key trappings

   Rev 1.29   26 Apr 1993 08:36:30   MIKEP
Added ID_VIEWFONT to call vlm_changesettings with. This allows
the vlm area to refresh all windows in case the font changed case
for FAT drives.

   Rev 1.28   22 Apr 1993 16:01:10   GLENN
Added file SORT option support.

   Rev 1.27   21 Apr 1993 16:07:06   GLENN
Changed window classes to be unique for Nostradamus and Cayman.

   Rev 1.26   07 Apr 1993 16:28:30   GLENN
Changed APP specific class names to have a prefix of CBE - Conner Backup Exec.

   Rev 1.25   01 Nov 1992 16:33:52   DAVEV
Unicode changes

   Rev 1.24   14 Oct 1992 15:56:44   GLENN
Added Wait Cursor HIDE, SHOW, PAUSE, RESUME, features to guarantee Hourglass when our App is busy.

   Rev 1.23   04 Oct 1992 19:50:04   DAVEV
UNICODE AWK PASS

   Rev 1.22   02 Oct 1992 16:51:32   GLENN
Added WM_SetCursor().

   Rev 1.21   10 Jul 1992 10:14:24   GLENN
In process of adding font selection support.

   Rev 1.20   19 Mar 1992 11:45:12   JOHNWT
added WM_MakeAppActive

   Rev 1.19   16 Mar 1992 15:37:22   JOHNWT
fixed WM_TerminateApp

   Rev 1.18   10 Mar 1992 16:39:50   GLENN
Added WM_MoveWindow().

   Rev 1.17   09 Mar 1992 09:20:52   GLENN
Added logo bitmap support.

   Rev 1.16   03 Mar 1992 17:27:48   GLENN
Added new view window support.

   Rev 1.15   20 Feb 1992 11:21:24   GLENN
Removed WM_IsActiveDocMax... different way of doing it now to support NT.

   Rev 1.14   18 Feb 1992 20:48:40   GLENN
Changed WMSIZE types.

   Rev 1.13   18 Feb 1992 18:48:44   GLENN
Added support routines for auto min/max/restore of MDI docs before/after an operation/

   Rev 1.12   11 Feb 1992 17:32:16   GLENN
Added support for MDI client subclassing.

   Rev 1.11   10 Feb 1992 09:15:10   GLENN
Moved the WM_USER IDs to a common location.

   Rev 1.10   04 Feb 1992 15:01:28   STEVEN
added macro for point conversion

   Rev 1.9   29 Jan 1992 17:57:08   GLENN
DLM command ID.

   Rev 1.8   21 Jan 1992 13:34:02   GLENN
Added WM_AnimateAppIcon() proto.

   Rev 1.7   07 Jan 1992 17:24:02   GLENN
Added MDI split/slider support

   Rev 1.6   10 Dec 1991 13:55:44   GLENN
Added defines for the creation of single column flat list boxes

   Rev 1.5   05 Dec 1991 17:43:54   GLENN
Changed get active doc macro

   Rev 1.4   05 Dec 1991 11:25:18   DAVEV
16/32 bit Windows port changes - 1st pass

   Rev 1.3   04 Dec 1991 18:15:46   GLENN
Added terminate app macro.

   Rev 1.2   03 Dec 1991 16:03:00   GLENN
Added a bunch of IDs for Keyboard character support.

   Rev 1.1   27 Nov 1991 13:36:22   GLENN
Added macros for filling out the window manager data structure.

   Rev 1.0   20 Nov 1991 19:40:16   SYSTEM
Initial revision.

******************************************************************************/



#ifndef   WINMANG_H

#define   WINMANG_H


//  Window Creation Types

#define   WM_TYPE_BITS     0x00FF
#define   WM_MINMAX_BITS   0x0300
#define   WM_STYLE_BITS    0x3C00
#define   WM_MENU_BITS     0xC000

#define   WM_FRAME         0
#define   WM_CLIENT        1
#define   WM_RIBBON        2
#define   WM_MDIPRIMARY    3
#define   WM_MDISECONDARY  4
#define   WM_DDECLIENT     5
#define   WM_DDESERVER     6
#define   WM_SERVER        7
#define   WM_DEBUG         8
#define   WM_DUMB          9

#define   WM_MIN           0x0100
#define   WM_MAX           0x0200

#define   WM_VIEWWIN       0x0000
#define   WM_FLATLISTMC    0x1000   // FLAT LIST MULTI-COLUMN
#define   WM_TREELISTSC    0x2000   // TREE LIST SINGLE-COLUMN
#define   WM_FLATLISTSC    0x0400   // FLAT LIST SINGLE-COLUMN  -- ODD TYPES
#define   WM_TREELISTMC    0x0800   // TREE LIST MULTI-COLUMN   -- ODD TYPES
#define   WM_FLATLIST      WM_FLATLISTMC
#define   WM_TREELIST      WM_TREELISTSC
#define   WM_TREEANDFLATMC ( WM_TREELISTSC | WM_FLATLISTMC )
#define   WM_TREEANDFLATSC ( WM_TREELISTSC | WM_FLATLISTSC )

#define   WM_MENUS         0x4000

//  Undocumented Windows Messages

#define   WM_LBTRACKPOINT  0x0131

//  Window Sizes

#define   WMSIZE_NORMAL    0
#define   WMSIZE_MIN       1
#define   WMSIZE_MAX       2
#define   WMSIZE_IGNORE    3
#define   WMSIZE_UNKNOWN   -1

//  Application Window Types

#define   WMTYPE_DISKS     0
#define   WMTYPE_TAPES     1
#define   WMTYPE_MACROS    2
#define   WMTYPE_JOBS      3
#define   WMTYPE_DISKTREE  4
#define   WMTYPE_TAPETREE  5
#define   WMTYPE_DISKFILES 6
#define   WMTYPE_TAPEFILES 7
#define   WMTYPE_SERVERS   8
#define   WMTYPE_LOGFILES  9
#define   WMTYPE_DEBUG     10
#define   WMTYPE_SEARCH    11
#define   WMTYPE_LOGVIEW   12
#ifdef OEM_EMS
#define   WMTYPE_EXCHANGE  13
#endif

//  Application message IDs

#define   ID_FLATONLY         IDM_VIEWDIRONLY
#define   ID_TREEONLY         IDM_VIEWTREEONLY
#define   ID_TREEANDFLAT      IDM_VIEWTREEANDDIR
#define   ID_FILEDETAILS      IDM_VIEWALLFILEDETAILS
#define   ID_EXPANDALL        IDM_TREEEXPANDALL
#define   ID_EXPANDBRANCH     IDM_TREEEXPANDBRANCH
#define   ID_EXPANDONE        IDM_TREEEXPANDONE
#define   ID_COLLAPSEBRANCH   IDM_TREECOLLAPSEBRANCH
#define   ID_INDICATORS       IDM_TREESHOWINDICATORS
#define   ID_SELECT           IDM_SELECTCHECK
#define   ID_DESELECT         IDM_SELECTUNCHECK
#define   ID_MODIFIED         IDM_SELECTMODIFIEDFILES
#define   ID_ADVANCED         IDM_SELECTADVANCED
#define   ID_REFRESH          IDM_WINDOWSREFRESH
#define   ID_CLOSEALL         IDM_WINDOWSCLOSEALL
#define   ID_VIEWFONT         IDM_VIEWFONT
#define   ID_SORTNAME         IDM_VIEWSORTNAME
#define   ID_SORTTYPE         IDM_VIEWSORTTYPE
#define   ID_SORTSIZE         IDM_VIEWSORTSIZE
#define   ID_SORTDATE         IDM_VIEWSORTDATE

#define   ID_SERVERS          1
#define   ID_RESTORETODRIVE   2
#define   ID_CTRLARROWUP      3
#define   ID_CTRLARROWDOWN    4
#define   ID_ARROWLEFT        5
#define   ID_ARROWRIGHT       6
#define   ID_NAMEONLY         7
#define   ID_FONTCASECHANGE   8
#define   ID_DELETE           9

#define   WM_CLIENT_ID     0xCAC         // The Client Window ID.

#define   WM_DEFAULT       CW_USEDEFAULT // Use default window size.
#define   GWL_PDSWININFO   0             // The offset of the Window Info struct.
#define   GWW_HWNDEDIT     0
#define   GWW_CHANGED      2
#define   GWW_WORDWRAP     4
#define   GWW_UNTITLED     6
#define   DEBUG_EXTRA      8

// APPLICATION DEFINED CLASS NAMES

#ifdef OEM_MSOFT

     #define   WMCLASS_FRAME     TEXT("NTBframe")      // Class name for the frame window.
     #define   WMCLASS_DOC       TEXT("NTBdoc")        // Class name for MDI document windows.
     #define   WMCLASS_RIBBON    TEXT("NTBribbon")     // Class name for the ribbon windows.
     #define   WMCLASS_DDECLIENT TEXT("NTBddeclient")  // Class name for the ddeclient windows.
     #define   WMCLASS_LAUNCHER  TEXT("NTBlauncher")   // Class name for the launcher window.
     #define   WMCLASS_VIEWWIN   TEXT("NTBviewwin")    // Class name for the dumb window.
     #define   WMCLASS_LOGO      TEXT("NTBlogo")       // Class name for the logo window.

#else

     #define   WMCLASS_FRAME     TEXT("CBEframe")      // Class name for the frame window.
     #define   WMCLASS_DOC       TEXT("CBEdoc")        // Class name for MDI document windows.
     #define   WMCLASS_RIBBON    TEXT("CBEribbon")     // Class name for the ribbon windows.
     #define   WMCLASS_DDECLIENT TEXT("CBEddeclient")  // Class name for the ddeclient windows.
     #define   WMCLASS_LAUNCHER  TEXT("CBElauncher")   // Class name for the launcher window.
     #define   WMCLASS_VIEWWIN   TEXT("CBEviewwin")    // Class name for the dumb window.
     #define   WMCLASS_LOGO      TEXT("CBElogo")       // Class name for the logo window.

#endif

// WINDOWS INTERNAL CLASS NAMES

#define   WMCLASS_CLIENT    TEXT("mdiclient")     // Class name for the MDI client window.
#define   WMCLASS_LISTBOX   TEXT("listbox")       // Class name for the list box windows.


#define   WMIDC_TREELISTBOX 1
#define   WMIDC_FLATLISTBOX 2

#define   WM_TREELISTBOX   ( WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_BORDER | \
                             LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_NOINTEGRALHEIGHT | \
                             WS_VSCROLL )
#define   WM_FLATLISTBOXMC ( WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_BORDER | \
                             LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_NOINTEGRALHEIGHT | \
                             LBS_EXTENDEDSEL | LBS_MULTICOLUMN )
#define   WM_FLATLISTBOXSC ( WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | WS_BORDER | \
                             LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_NOINTEGRALHEIGHT | \
                             LBS_EXTENDEDSEL )

#define   WMSTYLE_VIEWWIN  ( WS_CHILD | WS_BORDER | WS_VISIBLE | CS_HREDRAW | CS_VREDRAW )
#define   WMSTYLE_LOGO     ( WS_POPUP | WS_BORDER | WS_VISIBLE )

// DOC WINDOW AND LIST BOX BIT MASKS

#define   WMDOC_VIEWWIN       0x0000
#define   WMDOC_TREEANDFLAT   0x0001
#define   WMDOC_TREESC        0x0002
#define   WMDOC_TREEMC        0x0020
#define   WMDOC_FLATMC        0x0004
#define   WMDOC_FLATSC        0x0040
#define   WMDOC_SLIDER        0x0008
#define   WMDOC_TREE          WMDOC_TREESC
#define   WMDOC_FLAT          WMDOC_FLATMC

#define   WM_SLIDERUNKNOWN    0x7FF0
#define   WM_SLIDERMAX        0x7FF1
#define   WM_SLIDERMIN        0x7FF2

// DOC SLIDER DEFINITIONS

#define   WMDOC_SLIDERON      0x0001
#define   WMDOC_SLIDERMOVE    0x0002
#define   WMDOC_SLIDEROFF     0x0004
#define   WMDOC_SLIDERCANCEL  0x0008

#define   DOC_N_STATUS_HEIGHT (DOC_RIBBON_HEIGHT+STATUS_LINE_HEIGHT)
#define   NONMDICLIENT_HEIGHT (DOC_N_STATUS_HEIGHT+MAIN_RIBBON_HEIGHT)

// SHOW WAIT CURSOR IDs

#define   SWC_HIDE            FALSE
#define   SWC_SHOW            TRUE
#define   SWC_PAUSE           ((BOOL)2)
#define   SWC_RESUME          ((BOOL)3)

// EXTRA WINDOWS FRAME MESSAGE IDs -- WM_USER+200 through WM_USER+209

#define   WM_SETTINGSCHANGED    (WM_USER+201)
#define   WM_INITAPPLICATION    (WM_USER+203)
#define   WM_DEVICEDRIVERMSG    (WM_USER+204)

#define   WM_PUBLISHRUNNINGJOB  (WM_USER+206) // Used by Winter Park to
                                              // tell the launcher which
                                              // job is running.
#define   WM_SCHEDULESUPDATED   (WM_USER+207) // Used by Winter Park to
                                              // tell the launcher to update
                                              // it's list of scheduled jobs.
#define   WM_QUERYRUNNINGJOB    (WM_USER+208) // Used by Launcher only
#define   WM_POLLDRIVEMSG       (WM_USER+209) // Used when poll drive exits
                                              // timer callback.

#define   WM_DLMDBCLK           (WM_USER+300)
#define   WM_DLMDOWN            (WM_USER+301)
#define   WM_DLMCLICK           (WM_USER+302)
#define   WM_DLMUPDATEITEM      (WM_USER+303)
#define   WM_DLMUPDATELIST      (WM_USER+304)
#define   WM_DLMDELETEITEMS     (WM_USER+305)
#define   WM_DLMADDITEMS        (WM_USER+306)
#define   WM_DLMCHAR            (WM_USER+307)

#ifdef NTKLUG
#define   WM_DLMGETTEXT         (WM_USER+399)
#endif

#define   WM_MSGBOXDRAWTXT      (WM_USER+400)


typedef struct DS_WMINFO far *DS_WMINFO_PTR;
typedef struct DS_WMINFO far *PDS_WMINFO;
typedef struct DS_WMINFO {

     WORD           wType;
     HWND           hWnd;
     HWND           hWndTreeList;
     HWND           hWndFlatList;
     HWND           hWndActiveList;
     HRIBBON        hRibbon;
     HCURSOR        hCursor;
     HCURSOR        hDragCursor;
     HICON          hIcon;
     DWORD          dwRibbonState;
     DWORD          dwMenuState;
     DWORD          dwWindowState;
     INT            nSliderPos;
     DLM_HEADER_PTR pTreeDisp;
     DLM_HEADER_PTR pFlatDisp;
     Q_HEADER_PTR   pTreeList;
     Q_HEADER_PTR   pFlatList;
     PVOID          pAppInfo;
     WORD           wClosable;
     BOOL           fChanged;
     WORD           wHelpID;
     WORD           wStatusLineID;
     CHAR_PTR       pTitle;
     CHAR_PTR       pMinTitle;
     INT            nSize;

} DS_WMINFO;

// WINDOW MANAGER DATA STRUCTURE GET AND SET MACROS


#define WMDS_GetWinType( x )          ( (x)->wType )
#define WMDS_SetWinType( x, v )       ( (x)->wType = ( v ) )

#define WMDS_GetWin( x )              ( (x)->hWnd )
#define WMDS_SetWin( x, v )           ( (x)->hWnd = ( v ) )

#define WMDS_GetWinTreeList( x )      ( (x)->hWndTreeList )
#define WMDS_SetWinTreeList( x, v )   ( (x)->hWndTreeList = ( v ) )

#define WMDS_GetWinFlatList( x )      ( (x)->hWndFlatList )
#define WMDS_SetWinFlatList( x, v )   ( (x)->hWndFlatList = ( v ) )

#define WMDS_GetWinActiveList( x )    ( (x)->hWndActiveList )
#define WMDS_SetWinActiveList( x, v ) ( (x)->hWndActiveList = ( v ) )

#define WMDS_GetRibbon( x )           ( (x)->hRibbon )
#define WMDS_SetRibbon( x, v )        ( (x)->hRibbon = ( v ) )

#define WMDS_GetCursor( x )           ( (x)->hCursor )
#define WMDS_SetCursor( x, v )        ( (x)->hCursor = ( v ) )

#define WMDS_GetDragCursor( x )       ( (x)->hDragCursor )
#define WMDS_SetDragCursor( x, v )    ( (x)->hDragCursor = ( v ) )

#define WMDS_GetIcon( x )             ( (x)->hIcon )
#define WMDS_SetIcon( x, v )          ( (x)->hIcon = ( v ) )

#define WMDS_GetRibbonState( x )      ( (x)->dwRibbonState )
#define WMDS_SetRibbonState( x, v )   ( (x)->dwRibbonState = ( v ) )

#define WMDS_GetMenuState( x )        ( (x)->dwMenuState )
#define WMDS_SetMenuState( x, v )     ( (x)->dwMenuState = ( v ) )

#define WMDS_GetWindowState( x )      ( (x)->dwWindowState )
#define WMDS_SetWindowState( x, v )   ( (x)->dwWindowState = ( v ) )

#define WMDS_GetSliderPos( x )        ( (x)->nSliderPos )
#define WMDS_SetSliderPos( x, v )     ( (x)->nSliderPos = ( v ) )

#define WMDS_GetTreeDisp( x )         ( (x)->pTreeDisp )
#define WMDS_SetTreeDisp( x, v )      ( (x)->pTreeDisp = ( v ) )

#define WMDS_GetFlatDisp( x )         ( (x)->pFlatDisp )
#define WMDS_SetFlatDisp( x, v )      ( (x)->pFlatDisp = ( v ) )

#define WMDS_GetTreeList( x )         ( (x)->pTreeList )
#define WMDS_SetTreeList( x, v )      ( (x)->pTreeList = ( v ) )

#define WMDS_GetFlatList( x )         ( (x)->pFlatList )
#define WMDS_SetFlatList( x, v )      ( (x)->pFlatList = ( v ) )

#define WMDS_GetAppInfo( x )          ( (x)->pAppInfo )
#define WMDS_SetAppInfo( x, v )       ( (x)->pAppInfo = ( v ) )

#define WMDS_GetWinClosable( x )      ( (x)->wClosable )
#define WMDS_SetWinClosable( x, v )   ( (x)->wClosable = ( v ) )

#define WMDS_GetWinChanged( x )       ( (x)->fChanged )
#define WMDS_SetWinChanged( x, v )    ( (x)->fChanged = ( v ) )

#define WMDS_GetWinHelpID( x )        ( (x)->wHelpID )
#define WMDS_SetWinHelpID( x, v )     ( (x)->wHelpID = ( v ) )

#define WMDS_GetStatusLineID( x )     ( (x)->wStatusLineID )
#define WMDS_SetStatusLineID( x, v )  ( (x)->wStatusLineID = ( v ) )

#define WMDS_GetWinTitle( x )         ( (x)->pTitle )

#define WMDS_GetWinMinTitle( x )      ( (x)->pMinTitle )

#define WMDS_GetSize( x )             ( (x)->nSize )
#define WMDS_SetSize( x, v )          ( (x)->nSize = ( v ) )


// MACROS

#define WM_Destroy( x )         (BOOL)SendMessage( ghWndMDIClient, WM_MDIDESTROY, (MP1)x, (MP2)0 )
#define WM_GetActive( )         ( GetActiveWindow( ) )
#define WM_GetActiveDoc( )      ( ( ghWndActiveDoc ) ? ghWndActiveDoc : (HWND)SendMessage( ghWndMDIClient, WM_MDIGETACTIVE, (MP1)0, (MP2)0 ) )
#define WM_GetAppPtr( x )       ( (PDS_WMINFO)GetWindowLong( x, GWL_PDSWININFO ) )->pAppInfo
#define WM_GetDC( x )           GetDC( x )
#define WM_GetInfoPtr( x )      (PDS_WMINFO)GetWindowLong( x, GWL_PDSWININFO )
#define WM_Hide( x )            ShowWindow( x, SW_HIDE )
#define WM_IsActive( x )        ( x == GetActiveWindow () )
#define WM_IsActiveDoc( x )     ( x == WM_GetActiveDoc () )
#define WM_IsChildOf( x, y )    (BOOL)( IsChild( x, y ) )
#define WM_IsFlatActive( x )    ( (x)->hWndFlatList == (x)->hWndActiveList )
#define WM_IsMaximized( x )     (BOOL)( IsZoomed( x ) )
#define WM_IsMinimized( x )     (BOOL)( IsIconic( x ) )
#define WM_IsTreeActive( x )    ( (x)->hWndTreeList == (x)->hWndActiveList )
#define WM_MaximizeDoc( x )     SendMessage( ghWndMDIClient, WM_MDIMAXIMIZE, (MP1)x, (MP2)0 )
#define WM_MinimizeDoc( x )     ShowWindow( x, SW_SHOWMINNOACTIVE )
#define WM_Minimize( x )        ShowWindow( x, SW_SHOWMINNOACTIVE )
#define WM_Notify( x, y )       PostMessage( ghWndFrame, WM_SETTINGSCHANGED, (MP1)x, (MP2)y )
#define WM_Restore( x )         ShowWindow( x, SW_SHOWNORMAL )
#define WM_RestoreDoc( x )      SendMessage( ghWndMDIClient, WM_MDIRESTORE, (MP1)x, (MP2)0 )
#define WM_SetActive( x )       SetActiveWindow( x )
#define WM_SetActiveDoc( x )    SendMessage( ghWndMDIClient, WM_MDIACTIVATE, (MP1)x, (MP2)0 )
#define WM_SetInfoPtr( x, y )   SetWindowLong( x, GWL_PDSWININFO, (DWORD)y )
#define WM_Show( x )            ShowWindow( x, SW_SHOW )
#define WM_TerminateApp( )      DestroyWindow( ghWndFrame )
#define WM_Update( x )          UpdateWindow( x )

#define WM_FromMP2toPOINT( a, b )  \
                    ( (a.y = (int)((b) >> 16)), (a.x = (int)((b) & 0xffff)) )

// MACROS FOR PORTING

#ifndef OS_WIN32
#define EXTRACT_RIBBON_PARENT_HWND( x )  (LOWORD((DWORD)(x)))
#define WM_GetClassCursor( x )           (HCURSOR)GetClassWord( x, GCW_HCURSOR )
#define WM_GetClassIcon( x )             (HICON)GetClassWord( x, GCW_HICON )
#define WM_SetClassCursor( x, y )        (HCURSOR)SetClassWord( x, GCW_HCURSOR, (WORD) y )
#define WM_SetClassIcon( x, y )          (HICON)SetClassWord( x, GCW_HICON, (WORD) y )
#else
#define EXTRACT_RIBBON_PARENT_HWND( x )  ((HWND)(x))
#define WM_GetClassCursor( x )           (HCURSOR)GetClassLong( x, GCL_HCURSOR )
#define WM_GetClassIcon( x )             (HICON)GetClassLong( x, GCL_HICON )
#define WM_SetClassCursor( x, y )        (HCURSOR)SetClassLong( x, GCL_HCURSOR,(LONG) y )
#define WM_SetClassIcon( x, y )          (HICON)SetClassLong( x, GCL_HICON, (LONG) y )
#endif



// FUNCTION PROTOTYPES

BOOL  WM_AnimateAppIcon ( WORD, BOOL );
VOID  WM_CloseAllDocs ( VOID );
BOOL  WM_ChangeFont ( VOID );
HWND  WM_Create ( WORD, LPSTR, LPSTR, INT, INT, INT, INT, PDS_WMINFO );
BOOL  WM_CreateObjects ( VOID );
VOID  WM_CreatePrimDocs ( VOID );
VOID  WM_Deinit ( VOID );
VOID  WM_DeleteObjects ( VOID );
VOID  WM_DocActivate ( HWND );
WORD  WM_DocIsMenuChange ( HWND, WORD );
BOOL  WM_DocKeyDown ( HWND hWnd, WORD wKey );
VOID  WM_DocSetSliderMode ( HWND, WORD );
VOID  WM_FrameUpdate ( VOID );
HICON WM_GetAppIcon ( VOID );
HWND  WM_GetNext ( HWND );
BOOL  WM_GetRect ( HWND );
INT   WM_GetTitle ( HWND, LPSTR, INT );
BOOL  WM_Init ( LPSTR, INT );
VOID  WM_LogoShow ( VOID );
VOID  WM_LogoDestroy ( VOID );
VOID  WM_MinimizeDocs ( VOID );
VOID  WM_MoveWindow ( HWND, INT, INT, INT, INT, BOOL );
BOOL  WM_QueryCloseAllDocs ( VOID );
VOID  WM_RestoreDocs ( VOID );
HICON WM_SetAppIcon ( HICON );
BOOL  WM_SetCursor ( HWND );
VOID  WM_SetDocSizes ( VOID );
VOID  WM_SetMinTitle ( HWND, LPSTR );
VOID  WM_SetTitle ( HWND, LPSTR );
VOID  WM_SubClassListBox ( HWND );
VOID  WM_SubClassMDIClient ( HWND );
VOID  WM_ShowWaitCursor ( BOOL );
VOID  WM_MakeAppActive( VOID );

// EXPORTED FUNCTIONS

WINRESULT APIENTRY WM_FrameWndProc ( HWND, MSGID, MP1, MP2 );
WINRESULT APIENTRY WM_MDIDocWndProc ( HWND, MSGID, MP1, MP2 );
WINRESULT APIENTRY WM_RibbonWndProc ( HWND, MSGID, MP1, MP2 );
WINRESULT APIENTRY WM_MDIClientWndProc ( HWND, MSGID, MP1, MP2 );
WINRESULT APIENTRY WM_DocListWndProc ( HWND, MSGID, MP1, MP2 );
WINRESULT APIENTRY WM_DDEClientWndProc ( HWND, MSGID, MP1, MP2 );
WINRESULT APIENTRY WM_ViewWndProc ( HWND, MSGID, MP1, MP2 );

#endif