This commit was manufactured by cvs2svn to create branch 'captive'.
[reactos.git] / subsys / system / explorer / winefile / winefile.h
diff --git a/subsys/system/explorer/winefile/winefile.h b/subsys/system/explorer/winefile/winefile.h
new file mode 100644 (file)
index 0000000..0fa34f8
--- /dev/null
@@ -0,0 +1,165 @@
+/*
+ * Copyright 2000 Martin Fuchs
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#define WIN32_LEAN_AND_MEAN
+#define WIN32_EXTRA_LEAN
+#define NOSERVICE
+#define NOMCX
+#define NOIME
+#define NOCOMM
+#define NOKANJI
+#define NORPC
+#define NOPROXYSTUB
+#define NOIMAGE
+#define NOTAPE
+
+#ifdef UNICODE
+#define        _UNICODE
+#include <wchar.h>
+#endif
+
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <tchar.h>
+#include <ctype.h>
+
+#ifdef _MSC_VER
+#include <malloc.h>    /* for alloca() */
+#endif
+
+#ifndef _NO_EXTENSIONS
+#define        _SHELL_FOLDERS
+
+#include <objbase.h>
+#include <shellapi.h>
+#include <shlobj.h>
+#endif
+
+#ifndef FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
+#define FILE_ATTRIBUTE_ENCRYPTED            0x00000040
+#define FILE_ATTRIBUTE_SPARSE_FILE          0x00000200
+#define FILE_ATTRIBUTE_REPARSE_POINT        0x00000400
+#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED  0x00002000
+#endif
+
+#ifndef BTNS_BUTTON
+#define BTNS_BUTTON TBSTYLE_BUTTON
+#define BTNS_SEP TBSTYLE_SEP
+#endif
+
+
+#ifdef _DEBUG
+#define        ASSERT(x)       {if (!(x)) DebugBreak();}
+#else
+#define        ASSERT(x)       /* nothing */
+#endif
+
+#ifdef _MSC_VER
+#define        LONGLONGARG TEXT("I64")
+#else
+#define        LONGLONGARG TEXT("L")
+#endif
+
+#define        BUFFER_LEN      1024
+
+
+enum IMAGE {
+       IMG_NONE=-1,    IMG_FILE=0,                     IMG_DOCUMENT,   IMG_EXECUTABLE,
+       IMG_FOLDER,             IMG_OPEN_FOLDER,        IMG_FOLDER_PLUS,IMG_OPEN_PLUS,  IMG_OPEN_MINUS,
+       IMG_FOLDER_UP,  IMG_FOLDER_CUR
+};
+
+#define        IMAGE_WIDTH                     16
+#define        IMAGE_HEIGHT            13
+#define        SPLIT_WIDTH                     5
+
+#define IDW_STATUSBAR          0x100
+#define IDW_TOOLBAR                    0x101
+#define IDW_DRIVEBAR           0x102
+#define        IDW_FIRST_CHILD         0xC000  /*0x200*/
+
+#define IDW_TREE_LEFT          3
+#define IDW_TREE_RIGHT         6
+#define IDW_HEADER_LEFT                2
+#define IDW_HEADER_RIGHT       5
+
+#define        WM_DISPATCH_COMMAND     0xBF80
+
+#define        COLOR_COMPRESSED        RGB(0,0,255)
+#define        COLOR_SELECTION         RGB(0,0,128)
+
+#ifdef _NO_EXTENSIONS
+#define        COLOR_SPLITBAR          WHITE_BRUSH
+#else
+#define        COLOR_SPLITBAR          LTGRAY_BRUSH
+#endif
+
+#define        WINEFILEFRAME           TEXT("WFS_Frame")
+#define        WINEFILETREE            TEXT("WFS_Tree")
+#define        WINEFILEDRIVES          TEXT("WFS_Drives")
+#define        WINEFILEMDICLIENT       TEXT("WFS_MdiClient")
+
+#define        FRM_CALC_CLIENT         0xBF83
+#define        Frame_CalcFrameClient(hwnd, prt) ((BOOL)SNDMSG(hwnd, FRM_CALC_CLIENT, 0, (LPARAM)(PRECT)prt))
+
+
+typedef struct
+{
+  HANDLE       hInstance;
+  HACCEL       haccel;
+  ATOM         hframeClass;
+  HWND         hwndParent;
+
+  HWND         hMainWnd;
+  HMENU                hMenuFrame;
+  HMENU                hWindowsMenu;
+  HMENU                hLanguageMenu;
+  HMENU                hMenuView;
+  HMENU                hMenuOptions;
+  HWND         hmdiclient;
+  HWND         hstatusbar;
+  HWND         htoolbar;
+  HWND         hdrivebar;
+  HFONT                hfont;
+
+  TCHAR                num_sep;
+  SIZE         spaceSize;
+  HIMAGELIST himl;
+
+  TCHAR                drives[BUFFER_LEN];
+  BOOL         prescan_node;   /*TODO*/
+
+//UINT         wStringTableOffset;
+
+#ifdef _SHELL_FOLDERS
+  IShellFolder*        iDesktop;
+  IMalloc*             iMalloc;
+  UINT                 cfStrFName;
+#endif
+} WINEFILE_GLOBALS;
+
+extern WINEFILE_GLOBALS Globals;
+
+#ifdef UNICODE
+extern void _wsplitpath(const WCHAR* path, WCHAR* drv, WCHAR* dir, WCHAR* name, WCHAR* ext);
+#else
+extern void _splitpath(const CHAR* path, CHAR* drv, CHAR* dir, CHAR* name, CHAR* ext);
+#endif