ReactOS  0.4.12-dev-75-g00dd17e
MDIMainFrame Struct Reference

#include <mainframe.h>

Inheritance diagram for MDIMainFrame:
Collaboration diagram for MDIMainFrame:

Public Types

typedef MainFrameBase super
 
- Public Types inherited from MainFrameBase
typedef PreTranslateWindow super
 
- Public Types inherited from PreTranslateWindow
typedef Window super
 
- Public Types inherited from Window
typedef map< HWND, Window * > WindowMap
 
typedef Window *(* CREATORFUNC) (HWND)
 
typedef Window *(* CREATORFUNC_INFO) (HWND, const void *)
 

Public Member Functions

 MDIMainFrame (HWND hwnd)
 
ChildWindowCreateChild (LPCTSTR path=NULL, int mode=OWM_EXPLORE|OWM_DETAILS)
 
ChildWindowCreateChild (LPCITEMIDLIST pidl, int mode=OWM_EXPLORE|OWM_DETAILS|OWM_PIDL)
 
- Public Member Functions inherited from MainFrameBase
 MainFrameBase (HWND hwnd)
 
 ~MainFrameBase ()
 
- Public Member Functions inherited from PreTranslateWindow
 PreTranslateWindow (HWND)
 
 ~PreTranslateWindow ()
 
- Public Member Functions inherited from Window
 Window (HWND hwnd)
 
virtual ~Window ()
 
LRESULT SendParent (UINT nmsg, WPARAM wparam=0, LPARAM lparam=0)
 
LRESULT PostParent (UINT nmsg, WPARAM wparam=0, LPARAM lparam=0)
 

Static Public Member Functions

static HWND Create ()
 
static HWND Create (LPCTSTR path, int mode=OWM_EXPLORE|OWM_DETAILS)
 
static HWND Create (LPCITEMIDLIST pidl, int mode=OWM_EXPLORE|OWM_DETAILS|OWM_PIDL)
 
- Static Public Member Functions inherited from MainFrameBase
static HWND Create (const ExplorerCmd &cmd)
 
static int OpenShellFolders (LPIDA pida, HWND hFrameWnd)
 
- Static Public Member Functions inherited from Window
static HWND Create (CREATORFUNC creator, DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int w, int h, HWND hwndParent=0, HMENU hMenu=0)
 
static HWND Create (CREATORFUNC_INFO creator, const void *info, DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int w, int h, HWND hwndParent=0, HMENU hMenu=0)
 
static Windowcreate_mdi_child (const ChildWndInfo &info, const MDICREATESTRUCT &mcs, CREATORFUNC_INFO creator)
 
static LRESULT CALLBACK WindowWndProc (HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam)
 
static INT_PTR CALLBACK DialogProc (HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam)
 
static Windowget_window (HWND hwnd)
 get window controller from window handle More...
 
template<typename CLASS >
static CLASS * get_window (HWND hwnd)
 
static void register_pretranslate (HWND hwnd)
 
static void unregister_pretranslate (HWND hwnd)
 
static BOOL pretranslate_msg (LPMSG pmsg)
 
static void register_dialog (HWND hwnd)
 
static void unregister_dialog (HWND hwnd)
 
static BOOL dispatch_dialog_msg (LPMSG pmsg)
 
static int MessageLoop ()
 
static void CancelModes ()
 

Protected Member Functions

LRESULT WndProc (UINT nmsg, WPARAM wparam, LPARAM lparam)
 
int Command (int id, int code)
 
virtual BOOL TranslateMsg (MSG *pmsg)
 
bool activate_drive_window (LPCTSTR path)
 
bool activate_child_window (LPCTSTR filesys)
 
virtual void resize_frame (int cx, int cy)
 
virtual void frame_get_clientspace (PRECT prect)
 
virtual bool go_to (LPCTSTR url, bool new_window)
 
- Protected Member Functions inherited from MainFrameBase
bool ProcessMessage (UINT nmsg, WPARAM wparam, LPARAM lparam, LRESULT *pres)
 
int Notify (int id, NMHDR *pnmh)
 
void toggle_child (HWND hwnd, UINT cmd, HWND hchild, int band_idx=-1)
 
void resize_frame_client ()
 
BOOL toggle_fullscreen ()
 
void fullscreen_move ()
 
void FillBookmarks ()
 
- Protected Member Functions inherited from Window
virtual LRESULT Init (LPCREATESTRUCT pcs)
 

Protected Attributes

HWND _hmdiclient
 
WindowHandle _hextrabar
 
WindowHandle _hdrivebar
 
TCHAR _drives [BUFFER_LEN]
 
- Protected Attributes inherited from MainFrameBase
FullScreenParameters _fullscreen
 
HACCEL _hAccel
 
HIMAGELIST _himl_old
 

Additional Inherited Members

- Public Attributes inherited from MainFrameBase
WindowHandle _hwndrebar
 
WindowHandle _htoolbar
 
WindowHandle _haddrcombo
 
WindowHandle _hstatusbar
 
WindowHandle _hsidebar
 
HIMAGELIST _himl
 
HMENU _hMenuFrame
 
HMENU _hMenuWindow
 
MenuInfo _menu_info
 
- Public Attributes inherited from Window
IAccessible IAccessible_iface
 
IOleWindow IOleWindow_iface
 
IEnumVARIANT IEnumVARIANT_iface
 
LONG ref
 
- Static Protected Member Functions inherited from Window
static Windowcreate_controller (HWND hwnd)
 create controller for a new window More...
 
static StaticWindowDataGetStaticWindowData ()
 
static LRESULT CALLBACK MDICBTHookProc (int code, WPARAM wparam, LPARAM lparam)
 
static LRESULT CALLBACK PropSheetCBTHookProc (int code, WPARAM wparam, LPARAM lparam)
 
- Static Protected Attributes inherited from Window
static WindowMap s_wnd_map
 
static const voids_new_info = NULL
 
static CREATORFUNC s_window_creator = NULL
 
static HHOOK s_hcbtHook = 0
 
static WindowSet s_pretranslate_windows
 
static WindowSet s_dialogs
 

Detailed Description

Definition at line 94 of file mainframe.h.

Member Typedef Documentation

◆ super

Definition at line 96 of file mainframe.h.

Constructor & Destructor Documentation

◆ MDIMainFrame()

MDIMainFrame::MDIMainFrame ( HWND  hwnd)

Definition at line 691 of file mainframe.cpp.

692  : super(hwnd)
693 {
694  TBBUTTON mdiBtns[] = {
695  {0, 0, 0, BTNS_SEP, {0, 0}, 0, 0},
696  {0, ID_WINDOW_NEW, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0},
697  {1, ID_WINDOW_CASCADE, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0},
698  {2, ID_WINDOW_TILE_HORZ, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0},
699  {3, ID_WINDOW_TILE_VERT, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0}
700  };
701 
702  SendMessage(_htoolbar, TB_ADDBUTTONS, sizeof(mdiBtns)/sizeof(TBBUTTON), (LPARAM)&mdiBtns);
703 
704  CLIENTCREATESTRUCT ccs;
705 
708 
711  0, 0, 0, 0,
712  hwnd, 0, g_Globals._hInstance, &ccs);
713 
714  TBBUTTON extraBtns = {0, 0, TBSTATE_ENABLED, BTNS_SEP, {0, 0}, 0, 0};
715 
716 #ifndef _NO_REBAR
721  16, 16, 16, 16, sizeof(TBBUTTON));
722 #else
725  IDW_EXTRABAR, 2, g_Globals._hInstance, IDB_DRIVEBAR, &extraBtns, 1,
726  16, 13, 16, 13, sizeof(TBBUTTON));
727 #endif
728 
730 
731 
732  extraBtns.fsStyle = BTNS_BUTTON;
733 
734 #ifdef __WINE__
735  // insert unix file system button
736  extraBtns.iString = SendMessage(_hextrabar, TB_ADDSTRING, 0, (LPARAM)TEXT("/\0"));
737  extraBtns.idCommand = ID_DRIVE_UNIX_FS;
739 #endif
740 
741  // insert explorer window button
742  extraBtns.iString = SendMessage(_hextrabar, TB_ADDSTRING, 0, (LPARAM)TEXT("Explore\0"));
743  extraBtns.idCommand = ID_DRIVE_DESKTOP;
745 
746  // insert shell namespace button
747  extraBtns.iString = SendMessage(_hextrabar, TB_ADDSTRING, 0, (LPARAM)TEXT("Shell\0"));
748  extraBtns.idCommand = ID_DRIVE_SHELL_NS;
749  extraBtns.iBitmap = 6;
751 
752  // insert web control button
753  extraBtns.iString = SendMessage(_hextrabar, TB_ADDSTRING, 0, (LPARAM)TEXT("Web\0"));
754  extraBtns.idCommand = ID_WEB_WINDOW;
755  extraBtns.iBitmap = 7;
757 
758  if ((HIWORD(GetVersion())>>14) == W_VER_NT) {
759  // insert NT object namespace button
760  extraBtns.iString = SendMessage(_hextrabar, TB_ADDSTRING, 0, (LPARAM)TEXT("NT Obj\0"));
761  extraBtns.idCommand = ID_DRIVE_NTOBJ_NS;
762  extraBtns.iBitmap = 8;
764  }
765 
766  // insert Registry button
767  extraBtns.iString = SendMessage(_hextrabar, TB_ADDSTRING, 0, (LPARAM)TEXT("Reg.\0"));
768  extraBtns.idCommand = ID_DRIVE_REGISTRY;
769  extraBtns.iBitmap = 9;
771 
772 #ifdef _DEBUG
773  // insert FAT direct file system access button
774  extraBtns.iString = SendMessage(_hextrabar, TB_ADDSTRING, 0, (LPARAM)TEXT("FAT\0"));
775  extraBtns.idCommand = ID_DRIVE_FAT;
776  extraBtns.iBitmap = 10;
778 #endif
779 
780 
781  TBBUTTON drivebarBtn = {0, 0, TBSTATE_ENABLED, BTNS_SEP, {0, 0}, 0, 0};
782 #ifndef _NO_WIN_FS
783  PTSTR p;
784 
785 #ifndef _NO_REBAR
790  16, 16, 16, 16, sizeof(TBBUTTON));
791 #else
794  IDW_DRIVEBAR, 2, g_Globals._hInstance, IDB_DRIVEBAR, &drivebarBtn, 1,
795  16, 13, 16, 13, sizeof(TBBUTTON));
796 #endif
797 #endif
798 
800 
801 
802 #ifndef _NO_WIN_FS
804 
805  // register windows drive root strings
807 
808  drivebarBtn.fsStyle = BTNS_BUTTON;
809  drivebarBtn.idCommand = ID_DRIVE_FIRST;
810 
811  for(p=_drives; *p; ) {
812  switch(GetDriveType(p)) {
813  case DRIVE_REMOVABLE: drivebarBtn.iBitmap = 1; break;
814  case DRIVE_CDROM: drivebarBtn.iBitmap = 3; break;
815  case DRIVE_REMOTE: drivebarBtn.iBitmap = 4; break;
816  case DRIVE_RAMDISK: drivebarBtn.iBitmap = 5; break;
817  default:/*DRIVE_FIXED*/ drivebarBtn.iBitmap = 2;
818  }
819 
821  ++drivebarBtn.idCommand;
822  ++drivebarBtn.iString;
823 
824  while(*p++);
825  }
826 #endif
827 
828 
829 #ifndef _NO_REBAR
830  int btn_hgt = HIWORD(SendMessage(_htoolbar, TB_GETBUTTONSIZE, 0, 0));
831 
832  REBARBANDINFO rbBand;
833 
834  rbBand.cbSize = sizeof(REBARBANDINFO);
836 #ifndef RBBS_HIDETITLE // missing in MinGW headers as of 25.02.2004
837 #define RBBS_HIDETITLE 0x400
838 #endif
840 
841  TCHAR ExtrasBand[] = _T("Extras");
842  rbBand.lpText = ExtrasBand;
843  rbBand.hwndChild = _hextrabar;
844  rbBand.cxMinChild = 0;
845  rbBand.cyMinChild = btn_hgt;
846  rbBand.cx = 284;
848 
849 #ifndef _NO_WIN_FS
850  rbBand.fStyle |= RBBS_BREAK;
851  TCHAR DrivesBand[] = _T("Drives");
852  rbBand.lpText = DrivesBand;
853  rbBand.hwndChild = _hdrivebar;
854  rbBand.cxMinChild = 0;
855  rbBand.cyMinChild = btn_hgt;
856  rbBand.cx = 400;
858 
859  // hide the drivebar by default
861 #endif
862 #endif
863 }
#define RBBIM_CHILD
Definition: commctrl.h:1476
#define MF_BYCOMMAND
Definition: winuser.h:202
WindowHandle _hwndrebar
Definition: mainframe.h:51
#define INT_MAX
Definition: limits.h:40
#define IDW_DRIVEBAR
Definition: explorer.h:55
#define ID_DRIVE_REGISTRY
Definition: resource.h:199
#define GetDriveType
Definition: winbase.h:3626
#define GetLogicalDriveStrings
Definition: winbase.h:3636
WindowHandle _hdrivebar
Definition: mainframe.h:112
#define DRIVE_RAMDISK
Definition: winbase.h:252
#define RBBS_BREAK
Definition: commctrl.h:1459
TCHAR _drives[BUFFER_LEN]
Definition: mainframe.h:130
#define ID_DRIVE_FAT
Definition: resource.h:200
#define RBBS_CHILDEDGE
Definition: commctrl.h:1461
#define ID_DRIVE_SHELL_NS
Definition: resource.h:196
#define ID_WINDOW_TILE_VERT
Definition: resource.h:49
#define WS_CHILD
Definition: pedump.c:617
#define TB_INSERTBUTTON
Definition: commctrl.h:1240
BYTE fsStyle
Definition: commctrl.h:922
#define WS_CLIPCHILDREN
Definition: pedump.c:619
HWND WINAPI CreateToolbarEx(HWND hwnd, DWORD style, UINT wID, INT nBitmaps, HINSTANCE hBMInst, UINT_PTR wBMID, LPCTBBUTTON lpButtons, INT iNumButtons, INT dxButton, INT dyButton, INT dxBitmap, INT dyBitmap, UINT uStructSize)
Definition: commctrl.c:929
DWORD WINAPI GetVersion(VOID)
Definition: version.c:22
#define DRIVE_REMOVABLE
Definition: winbase.h:248
UINT_PTR WPARAM
Definition: windef.h:207
#define RBBIM_STYLE
Definition: commctrl.h:1472
#define RBBIM_SIZE
Definition: commctrl.h:1478
#define ID_VIEW_DRIVE_BAR
Definition: resource.h:137
#define CCS_NODIVIDER
Definition: commctrl.h:2218
#define IDW_FIRST_CHILD
Definition: explorer.h:58
#define ID_DRIVE_UNIX_FS
Definition: resource.h:197
#define BTNS_BUTTON
Definition: commctrl.h:968
#define DRIVE_REMOTE
Definition: winbase.h:250
MainFrameBase super
Definition: mainframe.h:96
LONG_PTR LPARAM
Definition: windef.h:208
#define ID_WEB_WINDOW
Definition: resource.h:190
#define ID_DRIVE_DESKTOP
Definition: resource.h:195
#define CreateWindowEx
Definition: winuser.h:5621
#define RB_INSERTBAND
Definition: commctrl.h:1572
smooth NULL
Definition: ftsmooth.c:416
#define ID_DRIVE_FIRST
Definition: resource.h:201
#define BUFFER_LEN
Definition: utility.h:97
#define CCS_NOPARENTALIGN
Definition: commctrl.h:2216
#define RBBS_HIDETITLE
INT_PTR iString
Definition: commctrl.h:929
HWND _hmdiclient
Definition: mainframe.h:108
CHAR * PTSTR
Definition: xmlstorage.h:191
int iBitmap
Definition: commctrl.h:919
#define ID_WINDOW_CASCADE
Definition: resource.h:78
#define MF_CHECKED
Definition: winuser.h:132
#define TB_GETBUTTONSIZE
Definition: commctrl.h:1130
char TCHAR
Definition: xmlstorage.h:189
#define _T(x)
Definition: vfdio.h:22
#define REBARBANDINFO
Definition: commctrl.h:1539
#define RBBIM_TEXT
Definition: commctrl.h:1474
#define BTNS_SEP
Definition: commctrl.h:969
#define ID_WINDOW_NEW
Definition: resource.h:227
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define RBBIM_CHILDSIZE
Definition: commctrl.h:1477
#define RB_SHOWBAND
Definition: commctrl.h:1588
#define WS_HSCROLL
Definition: pedump.c:628
#define IDB_DRIVEBAR
Definition: resource.h:62
#define CCS_NORESIZE
Definition: commctrl.h:2215
#define ID_WINDOW_TILE_HORZ
Definition: resource.h:48
HINSTANCE _hInstance
Definition: globals.h:270
#define ID_VIEW_EXTRA_BAR
Definition: resource.h:139
int idCommand
Definition: commctrl.h:920
#define TB_ADDBUTTONS
Definition: commctrl.h:1241
ExplorerGlobals g_Globals
Definition: explorer.cpp:52
#define IDW_EXTRABAR
Definition: explorer.h:54
#define MF_UNCHECKED
Definition: winuser.h:204
WindowHandle _htoolbar
Definition: mainframe.h:53
#define TEXT(s)
Definition: k32.h:26
#define WS_BORDER
Definition: pedump.c:625
#define WS_EX_NOPARENTNOTIFY
Definition: pedump.c:646
#define WS_EX_CLIENTEDGE
Definition: winuser.h:384
#define DRIVE_CDROM
Definition: winbase.h:251
HMENU _hMenuWindow
Definition: mainframe.h:61
#define WS_VSCROLL
Definition: pedump.c:627
#define RBBS_GRIPPERALWAYS
Definition: commctrl.h:1466
HMENU _hMenuView
Definition: window.h:277
#define TB_ADDSTRING
Definition: commctrl.h:1137
#define SendMessage
Definition: winuser.h:5709
#define TBSTATE_ENABLED
Definition: commctrl.h:944
#define CCS_NOMOVEY
Definition: commctrl.h:2213
#define HIWORD(l)
Definition: typedefs.h:246
#define W_VER_NT
Definition: utility.h:80
GLfloat GLfloat p
Definition: glext.h:8902
#define WS_VISIBLE
Definition: pedump.c:620
#define ID_DRIVE_NTOBJ_NS
Definition: resource.h:198
#define TBSTYLE_LIST
Definition: commctrl.h:963
MenuInfo _menu_info
Definition: mainframe.h:63
#define TBSTYLE_FLAT
Definition: commctrl.h:962
WindowHandle _hextrabar
Definition: mainframe.h:110

Member Function Documentation

◆ activate_child_window()

bool MDIMainFrame::activate_child_window ( LPCTSTR  filesys)
protected

Definition at line 1277 of file mainframe.cpp.

Referenced by Command().

1278 {
1279  HWND child_wnd;
1280 
1281  // search for a already open window of the given file system name
1282  for(child_wnd=GetNextWindow(_hmdiclient,GW_CHILD); child_wnd; child_wnd=GetNextWindow(child_wnd, GW_HWNDNEXT)) {
1284 
1285  if (child) {
1286  if (!lstrcmpi(child->get_root()._fs, filesys)) {
1287  SendMessage(_hmdiclient, WM_MDIACTIVATE, (WPARAM)child_wnd, 0);
1288 
1289  if (IsMinimized(child_wnd))
1290  ShowWindow(child_wnd, SW_SHOWNORMAL);
1291 
1292  return true;
1293  }
1294  } else {
1295  ShellBrowser* shell_child = (ShellBrowser*) SendMessage(child_wnd, PM_GET_SHELLBROWSER_PTR, 0, 0);
1296 
1297  if (shell_child) {
1298  if (!lstrcmpi(shell_child->get_root()._fs, filesys)) {
1299  SendMessage(_hmdiclient, WM_MDIACTIVATE, (WPARAM)child_wnd, 0);
1300 
1301  if (IsMinimized(child_wnd))
1302  ShowWindow(child_wnd, SW_SHOWNORMAL);
1303 
1304  return true;
1305  }
1306  }
1307  }
1308  }
1309 
1310  return false;
1311 }
#define GW_HWNDNEXT
Definition: winuser.h:756
MDI child window displaying file lists.
Definition: filechild.h:88
#define PM_GET_FILEWND_PTR
Definition: explorer.h:61
#define lstrcmpi
Definition: winbase.h:3687
#define GW_CHILD
Definition: winuser.h:758
#define GetNextWindow(h, c)
Definition: winuser.h:4596
Implementation of IShellBrowserImpl interface in explorer child windows.
Definition: ieframe.h:84
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
static HWND child
Definition: cursoricon.c:298
UINT_PTR WPARAM
Definition: windef.h:207
HWND _hmdiclient
Definition: mainframe.h:108
TCHAR _fs[_MAX_DIR]
Definition: entries.h:155
#define PM_GET_SHELLBROWSER_PTR
Definition: explorer.h:62
#define WM_MDIACTIVATE
Definition: winuser.h:1790
const Root & get_root() const
Definition: shellbrowser.h:117
#define SW_SHOWNORMAL
Definition: winuser.h:764
const Root & get_root() const
Definition: filechild.h:122
#define SendMessage
Definition: winuser.h:5709
#define IsMinimized(hwnd)
Definition: windowsx.h:438

◆ activate_drive_window()

bool MDIMainFrame::activate_drive_window ( LPCTSTR  path)
protected

Definition at line 1249 of file mainframe.cpp.

Referenced by Command().

1250 {
1251  TCHAR drv1[_MAX_DRIVE], drv2[_MAX_DRIVE];
1252  HWND child_wnd;
1253 
1254  _tsplitpath_s(path, drv1, COUNTOF(drv1), NULL, 0, NULL, 0, NULL, 0);
1255 
1256  // search for a already open window for the same drive
1257  for(child_wnd=GetNextWindow(_hmdiclient,GW_CHILD); child_wnd; child_wnd=GetNextWindow(child_wnd, GW_HWNDNEXT)) {
1259 
1260  if (child) {
1261  _tsplitpath_s(child->get_root()._path, drv2, COUNTOF(drv2), NULL, 0, NULL, 0, NULL, 0);
1262 
1263  if (!lstrcmpi(drv2, drv1)) {
1264  SendMessage(_hmdiclient, WM_MDIACTIVATE, (WPARAM)child_wnd, 0);
1265 
1266  if (IsMinimized(child_wnd))
1267  ShowWindow(child_wnd, SW_SHOWNORMAL);
1268 
1269  return true;
1270  }
1271  }
1272  }
1273 
1274  return false;
1275 }
#define GW_HWNDNEXT
Definition: winuser.h:756
MDI child window displaying file lists.
Definition: filechild.h:88
#define _tsplitpath_s
Definition: tchar.h:687
#define PM_GET_FILEWND_PTR
Definition: explorer.h:61
#define lstrcmpi
Definition: winbase.h:3687
#define GW_CHILD
Definition: winuser.h:758
#define GetNextWindow(h, c)
Definition: winuser.h:4596
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
static HWND child
Definition: cursoricon.c:298
UINT_PTR WPARAM
Definition: windef.h:207
#define _MAX_DRIVE
Definition: utility.h:73
smooth NULL
Definition: ftsmooth.c:416
HWND _hmdiclient
Definition: mainframe.h:108
TCHAR _path[MAX_PATH]
Definition: entries.h:153
char TCHAR
Definition: xmlstorage.h:189
#define WM_MDIACTIVATE
Definition: winuser.h:1790
#define SW_SHOWNORMAL
Definition: winuser.h:764
Definition: services.c:325
const Root & get_root() const
Definition: filechild.h:122
#define SendMessage
Definition: winuser.h:5709
#define IsMinimized(hwnd)
Definition: windowsx.h:438
#define COUNTOF(x)
Definition: utility.h:93

◆ Command()

int MDIMainFrame::Command ( int  id,
int  code 
)
protectedvirtual
Todo:
store last directory per drive
Todo:
prompt for image file
Todo:
There are even more menu items!

Reimplemented from MainFrameBase.

Definition at line 1018 of file mainframe.cpp.

1019 {
1020  CONTEXT("MDIMainFrame::Command()");
1021 
1022  HWND hwndClient = (HWND) SendMessage(_hmdiclient, WM_MDIGETACTIVE, 0, 0);
1023 
1024  if (hwndClient)
1025  if (SendMessage(hwndClient, PM_DISPATCH_COMMAND, MAKELONG(id,code), 0))
1026  return 0;
1027 
1028 #ifndef _NO_WIN_FS
1029  if (id>=ID_DRIVE_FIRST && id<=ID_DRIVE_FIRST+0xFF) {
1030  TCHAR drv[_MAX_DRIVE], path[MAX_PATH];
1031  LPCTSTR root = _drives;
1032 
1033  for(int i=id-ID_DRIVE_FIRST; i--; root++)
1034  while(*root)
1035  ++root;
1036 
1037  if (activate_drive_window(root))
1038  return 0;
1039 
1040  _tsplitpath_s(root, drv, COUNTOF(drv), NULL, 0, NULL, 0, NULL, 0);
1041 
1042  if (!SetCurrentDirectory(drv)) {
1043  display_error(_hwnd, GetLastError());
1044  return 0;
1045  }
1046 
1047  GetCurrentDirectory(MAX_PATH, path);
1048 
1050 
1051  return 1;
1052  }
1053 #endif
1054 
1055  switch(id) {
1056  case ID_WINDOW_NEW: {
1057  TCHAR path[MAX_PATH];
1058 
1060 
1062  break;}
1063 
1064  case ID_WINDOW_CASCADE:
1066  break;
1067 
1068  case ID_WINDOW_TILE_HORZ:
1070  break;
1071 
1072  case ID_WINDOW_TILE_VERT:
1074  break;
1075 
1076  case ID_WINDOW_ARRANGE:
1078  break;
1079 
1080  case ID_VIEW_EXTRA_BAR:
1081  toggle_child(_hwnd, id, _hextrabar, 1);
1082  break;
1083 
1084 #ifndef _NO_WIN_FS
1085  case ID_VIEW_DRIVE_BAR:
1086  toggle_child(_hwnd, id, _hdrivebar, 2);
1087  break;
1088 #endif
1089 
1090 #ifdef __WINE__
1091  case ID_DRIVE_UNIX_FS: {
1092  TCHAR path[MAX_PATH];
1094 
1095  getcwd(path, COUNTOF(path));
1096 
1097  if (activate_child_window(TEXT("unixfs")))
1098  break;
1099 
1101  break;}
1102 #endif
1103 
1104  case ID_DRIVE_DESKTOP: {
1105  TCHAR path[MAX_PATH];
1106 
1107  if (activate_child_window(TEXT("Desktop")))
1108  break;
1109 
1111 
1113  break;}
1114 
1115  case ID_DRIVE_SHELL_NS: {
1116  TCHAR path[MAX_PATH];
1118 
1119  if (activate_child_window(TEXT("Shell")))
1120  break;
1121 
1123  break;}
1124 
1125  case ID_DRIVE_NTOBJ_NS: {
1126  if (activate_child_window(TEXT("NTOBJ")))
1127  break;
1128 
1130  break;}
1131 
1132  case ID_DRIVE_REGISTRY: {
1133  if (activate_child_window(TEXT("Registry")))
1134  break;
1135 
1137  break;}
1138 
1139  case ID_DRIVE_FAT: {
1140 
1142 
1143  if (activate_child_window(TEXT("FAT")))
1144  break;
1145 
1147  break;}
1148 
1149  case ID_WEB_WINDOW:
1150 #ifdef _DEBUG
1151  create_webchildwindow(WebChildWndInfo(_hmdiclient, TEXT("http://localhost")));
1152 #else
1153  create_webchildwindow(WebChildWndInfo(_hmdiclient, TEXT("http://www.reactos.org")));
1154 #endif
1155  break;
1156 
1157  case ID_EXPLORER_FAQ:
1158  create_webchildwindow(WebChildWndInfo(_hmdiclient, TEXT("http://www.sky.franken.de/explorer/")));
1159  break;
1160 
1161  case ID_VIEW_SDI:
1163  break;
1164 
1166 
1167  default:
1168  if (super::Command(id, code) == 0)
1169  return 0;
1170  else
1171  return DefFrameProc(_hwnd, _hmdiclient, WM_COMMAND, MAKELONG(id,code), 0);
1172  }
1173 
1174  return 0;
1175 }
information structure for creation of MDIShellBrowserChild
Definition: filechild.h:44
MDI child window displaying file lists.
Definition: filechild.h:88
bool activate_drive_window(LPCTSTR path)
Definition: mainframe.cpp:1249
struct _CONTEXT CONTEXT
#define _tsplitpath_s
Definition: tchar.h:687
Explorer command line parser.
Definition: explorer.h:89
const CHAR * LPCTSTR
Definition: xmlstorage.h:193
information structure for creation of FileChildWindow for NT object namespace
Definition: filechild.h:55
static MDIShellBrowserChild * create(const ShellChildWndInfo &info)
#define ID_DRIVE_REGISTRY
Definition: resource.h:199
struct _root root
#define WM_MDICASCADE
Definition: winuser.h:1795
WindowHandle _hdrivebar
Definition: mainframe.h:112
TCHAR _drives[BUFFER_LEN]
Definition: mainframe.h:130
HANDLE HWND
Definition: compat.h:13
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define ID_DRIVE_FAT
Definition: resource.h:200
int Command(int id, int code)
Definition: mainframe.cpp:388
#define ID_DRIVE_SHELL_NS
Definition: resource.h:196
#define ID_WINDOW_TILE_VERT
Definition: resource.h:49
static HWND child
Definition: cursoricon.c:298
#define DefFrameProc
Definition: ros2win.h:32
static HWND Create(const ExplorerCmd &cmd)
Definition: mainframe.cpp:40
#define ID_VIEW_DRIVE_BAR
Definition: resource.h:137
#define WM_MDIICONARRANGE
Definition: winuser.h:1796
#define ID_DRIVE_UNIX_FS
Definition: resource.h:197
GLenum GLclampf GLint i
Definition: glfuncs.h:14
information structure for creation of FileChildWindow for the Registry
Definition: filechild.h:63
#define _MAX_DRIVE
Definition: utility.h:73
#define MDITILE_HORIZONTAL
Definition: winuser.h:2142
void toggle_child(HWND hwnd, UINT cmd, HWND hchild, int band_idx=-1)
Definition: mainframe.cpp:634
#define ID_WEB_WINDOW
Definition: resource.h:190
#define GetCurrentDirectory
Definition: winbase.h:3619
#define ID_DRIVE_DESKTOP
Definition: resource.h:195
bool activate_child_window(LPCTSTR filesys)
Definition: mainframe.cpp:1277
#define MAKELONG(a, b)
Definition: typedefs.h:248
smooth NULL
Definition: ftsmooth.c:416
#define ID_DRIVE_FIRST
Definition: resource.h:201
HWND _hmdiclient
Definition: mainframe.h:108
#define ID_VIEW_SDI
Definition: resource.h:221
#define ID_WINDOW_CASCADE
Definition: resource.h:78
char TCHAR
Definition: xmlstorage.h:189
#define ID_WINDOW_NEW
Definition: resource.h:227
#define MDITILE_VERTICAL
Definition: winuser.h:2143
#define MAX_PATH
Definition: compat.h:26
information structure for creation of WebChildWindow
Definition: filechild.h:79
#define WM_MDIGETACTIVE
Definition: winuser.h:1797
void display_error(HWND hwnd, DWORD error)
Definition: utility.cpp:98
#define ID_WINDOW_TILE_HORZ
Definition: resource.h:48
#define ID_EXPLORER_FAQ
Definition: resource.h:189
#define ID_VIEW_EXTRA_BAR
Definition: resource.h:139
#define WM_COMMAND
Definition: winuser.h:1716
#define ID_WINDOW_ARRANGE
Definition: resource.h:52
_Check_return_ _Ret_opt_z_ _CRTIMP char *__cdecl getcwd(_Out_writes_opt_(_SizeInBytes) char *_DstBuf, _In_ int _SizeInBytes)
HWND create_webchildwindow(const WebChildWndInfo &info)
Definition: webchild.cpp:175
#define TEXT(s)
Definition: k32.h:26
Definition: services.c:325
information structure for creation of FileChildWindow
Definition: filechild.h:71
information structure for creation of FileChildWindow
Definition: filechild.h:30
#define SendMessage
Definition: winuser.h:5709
#define COUNTOF(x)
Definition: utility.h:93
static FileChildWindow * create(const FileChildWndInfo &info)
Definition: filechild.cpp:377
#define ID_DRIVE_NTOBJ_NS
Definition: resource.h:198
#define PM_DISPATCH_COMMAND
Definition: window.h:265
#define SetCurrentDirectory
Definition: winbase.h:3717
WindowHandle _hextrabar
Definition: mainframe.h:110
#define WM_MDITILE
Definition: winuser.h:1794
Shell folder path of the desktop.
Definition: shellclasses.h:991

◆ Create() [1/3]

HWND MDIMainFrame::Create ( )
static

Definition at line 866 of file mainframe.cpp.

Referenced by StartMenuHandler::Command(), MainFrameBase::Create(), Create(), and MainFrameBase::OpenShellFolders().

867 {
869 
873  0/*hwndDesktop*/, hMenuFrame);
874 }
#define WINDOW_CREATOR(WND_CLASS)
Definition: window.h:202
#define MAKEINTRESOURCE
Definition: winuser.h:591
ATOM _hframeClass
Definition: globals.h:274
const CHAR * LPCTSTR
Definition: xmlstorage.h:193
#define IDM_MDIFRAME
Definition: resource.h:67
#define WS_CLIPCHILDREN
Definition: pedump.c:619
#define CW_USEDEFAULT
Definition: winuser.h:225
static HWND Create(CREATORFUNC creator, DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int w, int h, HWND hwndParent=0, HMENU hMenu=0)
Definition: window.cpp:87
#define IDS_TITLE
Definition: resource.h:30
HINSTANCE _hInstance
Definition: globals.h:270
ExplorerGlobals g_Globals
Definition: explorer.cpp:52
HMENU hMenuFrame
Definition: main.c:32
#define LoadMenu
Definition: winuser.h:5683
#define WS_OVERLAPPEDWINDOW
Definition: pedump.c:637
convenient loading of string resources
Definition: globals.h:303
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60

◆ Create() [2/3]

HWND MDIMainFrame::Create ( LPCTSTR  path,
int  mode = OWM_EXPLORE|OWM_DETAILS 
)
static

Definition at line 876 of file mainframe.cpp.

877 {
878  HWND hFrame = Create();
879  if (!hFrame)
880  return 0;
881 
882  ShowWindow(hFrame, SW_SHOW);
883 
884  MDIMainFrame* pMainFrame = GET_WINDOW(MDIMainFrame, hFrame);
885 
886  if (pMainFrame)
887  pMainFrame->CreateChild(path, mode);
888 
889  return hFrame;
890 }
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define SW_SHOW
Definition: winuser.h:769
ChildWindow * CreateChild(LPCTSTR path=NULL, int mode=OWM_EXPLORE|OWM_DETAILS)
Definition: mainframe.cpp:909
static HWND Create()
Definition: mainframe.cpp:866
#define GET_WINDOW(CLASS, hwnd)
Definition: window.h:88
Definition: services.c:325

◆ Create() [3/3]

HWND MDIMainFrame::Create ( LPCITEMIDLIST  pidl,
int  mode = OWM_EXPLORE|OWM_DETAILS|OWM_PIDL 
)
static

Definition at line 892 of file mainframe.cpp.

893 {
894  HWND hFrame = Create();
895  if (!hFrame)
896  return 0;
897 
898  ShowWindow(hFrame, SW_SHOW);
899 
900  MDIMainFrame* pMainFrame = GET_WINDOW(MDIMainFrame, hFrame);
901 
902  if (pMainFrame)
903  pMainFrame->CreateChild(pidl, mode);
904 
905  return hFrame;
906 }
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define SW_SHOW
Definition: winuser.h:769
ChildWindow * CreateChild(LPCTSTR path=NULL, int mode=OWM_EXPLORE|OWM_DETAILS)
Definition: mainframe.cpp:909
static HWND Create()
Definition: mainframe.cpp:866
#define GET_WINDOW(CLASS, hwnd)
Definition: window.h:88

◆ CreateChild() [1/2]

ChildWindow * MDIMainFrame::CreateChild ( LPCTSTR  path = NULL,
int  mode = OWM_EXPLORE|OWM_DETAILS 
)

Definition at line 909 of file mainframe.cpp.

Referenced by Create(), SDIMainFrame::Create(), and go_to().

910 {
911  return reinterpret_cast<ChildWindow*>(SendMessage(_hwnd, PM_OPEN_WINDOW, mode, (LPARAM)path));
912 }
LONG_PTR LPARAM
Definition: windef.h:208
#define PM_OPEN_WINDOW
Definition: mainframe.h:29
Definition: services.c:325
#define SendMessage
Definition: winuser.h:5709

◆ CreateChild() [2/2]

ChildWindow * MDIMainFrame::CreateChild ( LPCITEMIDLIST  pidl,
int  mode = OWM_EXPLORE|OWM_DETAILS|OWM_PIDL 
)

Definition at line 914 of file mainframe.cpp.

915 {
916  return reinterpret_cast<ChildWindow*>(SendMessage(_hwnd, PM_OPEN_WINDOW, mode|OWM_PIDL, (LPARAM)pidl));
917 }
LONG_PTR LPARAM
Definition: windef.h:208
#define PM_OPEN_WINDOW
Definition: mainframe.h:29
#define SendMessage
Definition: winuser.h:5709
view files in detail mode
Definition: mainframe.h:35

◆ frame_get_clientspace()

void MDIMainFrame::frame_get_clientspace ( PRECT  prect)
protectedvirtual

Reimplemented from MainFrameBase.

Definition at line 1178 of file mainframe.cpp.

1179 {
1181 
1182 #ifndef _NO_WIN_FS
1183  if (IsWindowVisible(_hdrivebar)) {
1184  ClientRect rt(_hdrivebar);
1185  prect->top += rt.bottom+2;
1186  }
1187 #endif
1188 }
WindowHandle _hdrivebar
Definition: mainframe.h:112
LONG top
Definition: windef.h:297
virtual void frame_get_clientspace(PRECT prect)
Definition: mainframe.cpp:558
BOOL WINAPI IsWindowVisible(_In_ HWND)

◆ go_to()

bool MDIMainFrame::go_to ( LPCTSTR  url,
bool  new_window 
)
protectedvirtual

Reimplemented from MainFrameBase.

Definition at line 1313 of file mainframe.cpp.

1314 {
1315  if (!new_window) {
1316  HWND hwndClient = (HWND) SendMessage(_hmdiclient, WM_MDIGETACTIVE, 0, 0);
1317 
1318  if (hwndClient)
1319  if (SendMessage(hwndClient, PM_JUMP_TO_URL, 0, (LPARAM)url))
1320  return true;
1321  }
1322 
1323  if (CreateChild(url))
1324  return true;
1325 
1326  return super::go_to(url, new_window);
1327 }
HANDLE HWND
Definition: compat.h:13
LONG_PTR LPARAM
Definition: windef.h:208
ChildWindow * CreateChild(LPCTSTR path=NULL, int mode=OWM_EXPLORE|OWM_DETAILS)
Definition: mainframe.cpp:909
HWND _hmdiclient
Definition: mainframe.h:108
virtual bool go_to(LPCTSTR url, bool new_window)
Definition: mainframe.cpp:681
static HWND new_window(LPCSTR lpClassName, DWORD dwStyle, HWND parent)
Definition: editor.c:54
static const WCHAR url[]
Definition: encode.c:1432
#define WM_MDIGETACTIVE
Definition: winuser.h:1797
#define SendMessage
Definition: winuser.h:5709
#define PM_JUMP_TO_URL
Definition: window.h:390

◆ resize_frame()

void MDIMainFrame::resize_frame ( int  cx,
int  cy 
)
protectedvirtual

Reimplemented from MainFrameBase.

Definition at line 1190 of file mainframe.cpp.

1191 {
1192  if (cy <= 0)
1193  return; // avoid resizing children when receiving RBN_AUTOSIZE while getting minimized
1194 
1195  RECT rect = {0, 0, cx, cy};
1196 
1197  if (_hwndrebar) {
1199  rect.top += height;
1200  rect.top += 5;
1201  } else {
1202  if (IsWindowVisible(_htoolbar)) {
1203  SendMessage(_htoolbar, WM_SIZE, 0, 0);
1204  WindowRect rt(_htoolbar);
1205  rect.top = rt.bottom;
1206  // rect.bottom -= rt.bottom;
1207  }
1208 
1209  if (IsWindowVisible(_hextrabar)) {
1210  SendMessage(_hextrabar, WM_SIZE, 0, 0);
1211  WindowRect rt(_hextrabar);
1212  int new_top = --rect.top + rt.bottom;
1213  MoveWindow(_hextrabar, 0, rect.top, rt.right, new_top, TRUE);
1214  rect.top = new_top;
1215  // rect.bottom -= rt.bottom;
1216  }
1217 
1218 #ifndef _NO_WIN_FS
1219  if (IsWindowVisible(_hdrivebar)) {
1220  SendMessage(_hdrivebar, WM_SIZE, 0, 0);
1221  WindowRect rt(_hdrivebar);
1222  int new_top = --rect.top + rt.bottom;
1223  MoveWindow(_hdrivebar, 0, rect.top, rt.right, new_top, TRUE);
1224  rect.top = new_top;
1225  // rect.bottom -= rt.bottom;
1226  }
1227 #endif
1228  }
1229 
1231  int parts[] = {300, 500};
1232 
1234  SendMessage(_hstatusbar, SB_SETPARTS, 2, (LPARAM)&parts);
1235  ClientRect rt(_hstatusbar);
1236  rect.bottom -= rt.bottom;
1237  }
1238 
1239  if (IsWindowVisible(_hsidebar)) {
1240  WindowRect rt(_hsidebar);
1241  rect.left += rt.right-rt.left;
1242 
1243  SetWindowPos(_hsidebar, 0, -1, rect.top-1, rt.right-rt.left, rect.bottom-rect.top+1, SWP_NOACTIVATE|SWP_NOZORDER);
1244  }
1245 
1246  MoveWindow(_hmdiclient, rect.left-1, rect.top-1, rect.right-rect.left+1, rect.bottom-rect.top+1, TRUE);
1247 }
#define TRUE
Definition: types.h:120
WindowHandle _hwndrebar
Definition: mainframe.h:51
#define RB_GETBARHEIGHT
Definition: commctrl.h:1578
WindowHandle _hdrivebar
Definition: mainframe.h:112
LONG top
Definition: windef.h:297
LONG left
Definition: windef.h:296
#define SWP_NOZORDER
Definition: winuser.h:1232
LONG right
Definition: windef.h:298
& rect
Definition: startmenu.cpp:1413
LONG_PTR LPARAM
Definition: windef.h:208
_Out_opt_ int _Out_opt_ int * cy
Definition: commctrl.h:570
HWND _hmdiclient
Definition: mainframe.h:108
#define WM_SIZE
Definition: winuser.h:1593
#define SWP_NOACTIVATE
Definition: winuser.h:1227
WindowHandle _hsidebar
Definition: mainframe.h:57
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
WindowHandle _htoolbar
Definition: mainframe.h:53
#define SB_SETPARTS
Definition: commctrl.h:1924
_Out_opt_ int * cx
Definition: commctrl.h:570
#define SendMessage
Definition: winuser.h:5709
BOOL WINAPI IsWindowVisible(_In_ HWND)
LONG bottom
Definition: windef.h:299
WindowHandle _hstatusbar
Definition: mainframe.h:55
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
WindowHandle _hextrabar
Definition: mainframe.h:110

◆ TranslateMsg()

BOOL MDIMainFrame::TranslateMsg ( MSG pmsg)
protectedvirtual

Reimplemented from MainFrameBase.

Definition at line 920 of file mainframe.cpp.

921 {
923  return TRUE;
924 
925  return super::TranslateMsg(pmsg);
926 }
#define TRUE
Definition: types.h:120
HWND _hmdiclient
Definition: mainframe.h:108
virtual BOOL TranslateMsg(MSG *pmsg)
Definition: mainframe.cpp:379
BOOL WINAPI TranslateMDISysAccel(_In_ HWND, _In_ LPMSG)

◆ WndProc()

LRESULT MDIMainFrame::WndProc ( UINT  nmsg,
WPARAM  wparam,
LPARAM  lparam 
)
protectedvirtual
Todo:
read paths and window placements from registry

Reimplemented from MainFrameBase.

Definition at line 928 of file mainframe.cpp.

929 {
930  switch(nmsg) {
931  case PM_OPEN_WINDOW: {
932  CONTEXT("MDIMainFrame PM_OPEN_WINDOW");
933 
935  LPCTSTR path;
936  ShellPath shell_path = DesktopFolderPath();
937 
938  if (lparam) {
939  if (wparam & OWM_PIDL) {
940  // take over PIDL from lparam
941  shell_path.assign((LPCITEMIDLIST)lparam); // create as "rooted" window
942  FileSysShellPath fsp(shell_path);
943  path = fsp;
944 
945  if (path) {
946  LOG(FmtString(TEXT("MDIMainFrame PM_OPEN_WINDOW: path=%s"), path));
947  lstrcpy(buffer, path);
948  path = buffer;
949  }
950  } else {
951  // take over path from lparam
952  path = (LPCTSTR)lparam;
953  shell_path = path; // create as "rooted" window
954  }
955  } else {
957  if (!GetCurrentDirectory(MAX_PATH, buffer))
958  *buffer = '\0';
959 
960  path = buffer;
961  }
962 
963  if (path && _tcsstr(path, TEXT("://"))) { // "http://...", "ftp://", ...
964  OBJ_CONTEXT("create WebChild window", path);
965 
967  } else {
968  OBJ_CONTEXT("create ShellChildWndInfo", path);
969 
970  // Shell Namespace as default view
971  ShellChildWndInfo create_info(_hmdiclient, path, shell_path);
972 
973  if (wparam & OWM_ROOTED)
974  create_info._root_shell_path = shell_path;
975  else
976  create_info._root_shell_path = DesktopFolderPath(); //SpecialFolderPath(CSIDL_DRIVES, _hwnd);
977 
978  create_info._pos.showCmd = wparam&OWM_SEPARATE? SW_SHOWNORMAL: SW_SHOWMAXIMIZED;
979  create_info._pos.rcNormalPosition.left = CW_USEDEFAULT;
980  create_info._pos.rcNormalPosition.top = CW_USEDEFAULT;
981  create_info._pos.rcNormalPosition.right = CW_USEDEFAULT;
982  create_info._pos.rcNormalPosition.bottom = CW_USEDEFAULT;
983 
984  create_info._open_mode = wparam;
985 
986  // FileChildWindow::create(_hmdiclient, create_info);
987  return (LRESULT)MDIShellBrowserChild::create(create_info);
988  }
989  return TRUE;} // success
990 
991  case WM_SYSCOLORCHANGE: {
992  LRESULT res;
993  HWND hChild;
994 
995  /* Forward WM_SYSCOLORCHANGE to common controls */
998 
999  for(hChild = GetNextWindow(_hmdiclient,GW_CHILD); hChild; hChild = GetNextWindow(hChild, GW_HWNDNEXT))
1000  SendMessage(hChild, WM_SYSCOLORCHANGE, 0, 0);
1001 
1002  super::ProcessMessage(nmsg, wparam, lparam, &res);
1003  break; }
1004 
1005  default: {
1006  LRESULT res;
1007 
1008  if (super::ProcessMessage(nmsg, wparam, lparam, &res))
1009  return res;
1010  else
1011  return DefFrameProc(_hwnd, _hmdiclient, nmsg, wparam, lparam);
1012  }
1013  }
1014 
1015  return 0;
1016 }
information structure for creation of MDIShellBrowserChild
Definition: filechild.h:44
#define GW_HWNDNEXT
Definition: winuser.h:756
#define WM_SYSCOLORCHANGE
Definition: winuser.h:1608
struct _CONTEXT CONTEXT
#define TRUE
Definition: types.h:120
const CHAR * LPCTSTR
Definition: xmlstorage.h:193
#define GW_CHILD
Definition: winuser.h:758
static MDIShellBrowserChild * create(const ShellChildWndInfo &info)
#define GetNextWindow(h, c)
Definition: winuser.h:4596
Retrieval of file system paths of ShellPath objects.
Definition: shellclasses.h:932
static HTREEITEM hChild
Definition: treeview.c:381
GLsizei const GLchar ** path
Definition: glext.h:7234
#define SW_SHOWMAXIMIZED
Definition: winuser.h:767
WindowHandle _hdrivebar
Definition: mainframe.h:112
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42
GLuint buffer
Definition: glext.h:5915
#define DefFrameProc
Definition: ros2win.h:32
#define GetCurrentDirectory
Definition: winbase.h:3619
#define CW_USEDEFAULT
Definition: winuser.h:225
HWND _hmdiclient
Definition: mainframe.h:108
#define _tcsstr
Definition: xmlstorage.h:199
char TCHAR
Definition: xmlstorage.h:189
#define PM_OPEN_WINDOW
Definition: mainframe.h:29
#define MAX_PATH
Definition: compat.h:26
information structure for creation of WebChildWindow
Definition: filechild.h:79
bool ProcessMessage(UINT nmsg, WPARAM wparam, LPARAM lparam, LRESULT *pres)
Definition: mainframe.cpp:311
UINT WPARAM LPARAM lparam
Definition: msvc.h:92
#define LOG(txt)
Definition: utility.h:102
#define SW_SHOWNORMAL
Definition: winuser.h:764
HWND create_webchildwindow(const WebChildWndInfo &info)
Definition: webchild.cpp:175
#define TEXT(s)
Definition: k32.h:26
#define GET_WINDOW(CLASS, hwnd)
Definition: window.h:88
void assign(LPCITEMIDLIST pidl, size_t size)
Definition: shellclasses.h:806
#define lstrcpy
Definition: winbase.h:3688
window in explore mode
Definition: mainframe.h:33
#define SendMessage
Definition: winuser.h:5709
GLuint res
Definition: glext.h:9613
view files in detail mode
Definition: mainframe.h:35
LONG_PTR LRESULT
Definition: windef.h:209
wrapper class for item ID lists
Definition: shellclasses.h:651
WindowHandle _hextrabar
Definition: mainframe.h:110
path is given as PIDL, otherwise as LPCTSTR
Definition: mainframe.h:36
UINT WPARAM wparam
Definition: msvc.h:92
Shell folder path of the desktop.
Definition: shellclasses.h:991

Member Data Documentation

◆ _drives

TCHAR MDIMainFrame::_drives[BUFFER_LEN]
protected

Definition at line 130 of file mainframe.h.

Referenced by Command(), and MDIMainFrame().

◆ _hdrivebar

WindowHandle MDIMainFrame::_hdrivebar
protected

Definition at line 112 of file mainframe.h.

Referenced by Command(), frame_get_clientspace(), MDIMainFrame(), resize_frame(), and WndProc().

◆ _hextrabar

WindowHandle MDIMainFrame::_hextrabar
protected

Definition at line 110 of file mainframe.h.

Referenced by Command(), MDIMainFrame(), resize_frame(), and WndProc().

◆ _hmdiclient

HWND MDIMainFrame::_hmdiclient
protected

The documentation for this struct was generated from the following files: