1/** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6#ifndef _INC_WFEXT 7#define _INC_WFEXT 8 9#include <_mingw_unicode.h> 10 11#ifdef __cplusplus 12extern "C" { 13#endif 14 15#define MENU_TEXT_LEN 40 16 17#define FMMENU_FIRST 1 18#define FMMENU_LAST 99 19 20#define FMEVENT_LOAD 100 21#define FMEVENT_UNLOAD 101 22#define FMEVENT_INITMENU 102 23#define FMEVENT_USER_REFRESH 103 24#define FMEVENT_SELCHANGE 104 25#define FMEVENT_TOOLBARLOAD 105 26#define FMEVENT_HELPSTRING 106 27#define FMEVENT_HELPMENUITEM 107 28 29#define FMFOCUS_DIR 1 30#define FMFOCUS_TREE 2 31#define FMFOCUS_DRIVES 3 32#define FMFOCUS_SEARCH 4 33 34#define FM_GETFOCUS (WM_USER + 0x0200) 35#define FM_GETSELCOUNT (WM_USER + 0x0202) 36#define FM_GETSELCOUNTLFN (WM_USER + 0x0203) 37#define FM_REFRESH_WINDOWS (WM_USER + 0x0206) 38#define FM_RELOAD_EXTENSIONS (WM_USER + 0x0207) 39 40#define FM_GETDRIVEINFOA (WM_USER + 0x0201) 41#define FM_GETFILESELA (WM_USER + 0x0204) 42#define FM_GETFILESELLFNA (WM_USER + 0x0205) 43 44#define FM_GETDRIVEINFOW (WM_USER + 0x0211) 45#define FM_GETFILESELW (WM_USER + 0x0214) 46#define FM_GETFILESELLFNW (WM_USER + 0x0215) 47 48#define FM_GETDRIVEINFO __MINGW_NAME_AW(FM_GETDRIVEINFO) 49#define FM_GETFILESEL __MINGW_NAME_AW(FM_GETFILESEL) 50#define FM_GETFILESELLFN __MINGW_NAME_AW(FM_GETFILESELLFN) 51 52 typedef struct _FMS_GETFILESELA { 53 FILETIME ftTime; 54 DWORD dwSize; 55 BYTE bAttr; 56 CHAR szName[260]; 57 } FMS_GETFILESELA,*LPFMS_GETFILESELA; 58 59 typedef struct _FMS_GETFILESELW { 60 FILETIME ftTime; 61 DWORD dwSize; 62 BYTE bAttr; 63 WCHAR szName[260]; 64 } FMS_GETFILESELW,*LPFMS_GETFILESELW; 65 66#define FMS_GETFILESEL __MINGW_NAME_AW(FMS_GETFILESEL) 67#define LPFMS_GETFILESEL __MINGW_NAME_AW(LPFMS_GETFILESEL) 68 69 typedef struct _FMS_GETDRIVEINFOA { 70 DWORD dwTotalSpace; 71 DWORD dwFreeSpace; 72 CHAR szPath[260]; 73 CHAR szVolume[14]; 74 CHAR szShare[128]; 75 } FMS_GETDRIVEINFOA,*LPFMS_GETDRIVEINFOA; 76 77 typedef struct _FMS_GETDRIVEINFOW { 78 DWORD dwTotalSpace; 79 DWORD dwFreeSpace; 80 WCHAR szPath[260]; 81 WCHAR szVolume[14]; 82 WCHAR szShare[128]; 83 } FMS_GETDRIVEINFOW,*LPFMS_GETDRIVEINFOW; 84 85#define FMS_GETDRIVEINFO __MINGW_NAME_AW(FMS_GETDRIVEINFO) 86#define LPFMS_GETDRIVEINFO __MINGW_NAME_AW(LPFMS_GETDRIVEINFO) 87 88 typedef struct _FMS_LOADA { 89 DWORD dwSize; 90 CHAR szMenuName[MENU_TEXT_LEN]; 91 HMENU hMenu; 92 UINT wMenuDelta; 93 } FMS_LOADA,*LPFMS_LOADA; 94 95 typedef struct _FMS_LOADW { 96 DWORD dwSize; 97 WCHAR szMenuName[MENU_TEXT_LEN]; 98 HMENU hMenu; 99 UINT wMenuDelta; 100 } FMS_LOADW,*LPFMS_LOADW; 101 102#define FMS_LOAD __MINGW_NAME_AW(FMS_LOAD) 103#define LPFMS_LOAD __MINGW_NAME_AW(LPFMS_LOAD) 104 105 typedef struct tagEXT_BUTTON { 106 WORD idCommand; 107 WORD idsHelp; 108 WORD fsStyle; 109 } EXT_BUTTON,*LPEXT_BUTTON; 110 111 typedef struct tagFMS_TOOLBARLOAD { 112 DWORD dwSize; 113 LPEXT_BUTTON lpButtons; 114 WORD cButtons; 115 WORD cBitmaps; 116 WORD idBitmap; 117 HBITMAP hBitmap; 118 } FMS_TOOLBARLOAD,*LPFMS_TOOLBARLOAD; 119 120 typedef struct tagFMS_HELPSTRINGA { 121 INT idCommand; 122 HMENU hMenu; 123 CHAR szHelp[128]; 124 } FMS_HELPSTRINGA,*LPFMS_HELPSTRINGA; 125 126 typedef struct tagFMS_HELPSTRINGW { 127 INT idCommand; 128 HMENU hMenu; 129 WCHAR szHelp[128]; 130 } FMS_HELPSTRINGW,*LPFMS_HELPSTRINGW; 131 132#define FMS_HELPSTRING __MINGW_NAME_AW(FMS_HELPSTRING) 133#define LPFMS_HELPSTRING __MINGW_NAME_AW(LPFMS_HELPSTRING) 134 135 typedef DWORD (WINAPI *FM_EXT_PROC)(HWND,WORD,LONG); 136 typedef DWORD (WINAPI *FM_UNDELETE_PROC)(HWND,LPTSTR); 137 138 LONG WINAPI FMExtensionProcW(HWND hwnd,WORD wEvent,LONG lParam); 139 LONG WINAPI FMExtensionProc(HWND hwnd,WORD wEvent,LONG lParam); 140 141#ifdef __cplusplus 142} 143#endif 144#endif 145