|
|
/*****************************************************************************\
* * * wfext.h - Windows File Manager Extensions definitions (Win32 variant) * * * * Version 3.10 * * * * Copyright (c) 1991-1999, Microsoft Corp. All rights reserved. * * * *******************************************************************************/
#ifndef _INC_WFEXT
#define _INC_WFEXT /* #defined if wfext.h has been included */
#if _MSC_VER > 1000
#pragma once
#endif
#ifdef __cplusplus /* Assume C declaration for C++ */
extern "C" { #endif /* __cplusplus */
#define MENU_TEXT_LEN 40
#define FMMENU_FIRST 1
#define FMMENU_LAST 99
#define FMEVENT_LOAD 100
#define FMEVENT_UNLOAD 101
#define FMEVENT_INITMENU 102
#define FMEVENT_USER_REFRESH 103
#define FMEVENT_SELCHANGE 104
#define FMEVENT_TOOLBARLOAD 105
#define FMEVENT_HELPSTRING 106
#define FMEVENT_HELPMENUITEM 107
#define FMFOCUS_DIR 1
#define FMFOCUS_TREE 2
#define FMFOCUS_DRIVES 3
#define FMFOCUS_SEARCH 4
#define FM_GETFOCUS (WM_USER + 0x0200)
#define FM_GETSELCOUNT (WM_USER + 0x0202)
#define FM_GETSELCOUNTLFN (WM_USER + 0x0203) /* LFN versions are odd */
#define FM_REFRESH_WINDOWS (WM_USER + 0x0206)
#define FM_RELOAD_EXTENSIONS (WM_USER + 0x0207)
#define FM_GETDRIVEINFOA (WM_USER + 0x0201)
#define FM_GETFILESELA (WM_USER + 0x0204)
#define FM_GETFILESELLFNA (WM_USER + 0x0205) /* LFN versions are odd */
#define FM_GETDRIVEINFOW (WM_USER + 0x0211)
#define FM_GETFILESELW (WM_USER + 0x0214)
#define FM_GETFILESELLFNW (WM_USER + 0x0215) /* LFN versions are odd */
#ifdef UNICODE
#define FM_GETDRIVEINFO FM_GETDRIVEINFOW
#define FM_GETFILESEL FM_GETFILESELW
#define FM_GETFILESELLFN FM_GETFILESELLFNW
#else
#define FM_GETDRIVEINFO FM_GETDRIVEINFOA
#define FM_GETFILESEL FM_GETFILESELA
#define FM_GETFILESELLFN FM_GETFILESELLFNA
#endif
typedef struct _FMS_GETFILESELA { FILETIME ftTime; DWORD dwSize; BYTE bAttr; CHAR szName[260]; // always fully qualified
} FMS_GETFILESELA, FAR *LPFMS_GETFILESELA;
typedef struct _FMS_GETFILESELW { FILETIME ftTime ; DWORD dwSize; BYTE bAttr; WCHAR szName[260]; // always fully qualified
} FMS_GETFILESELW, FAR *LPFMS_GETFILESELW;
#ifdef UNICODE
#define FMS_GETFILESEL FMS_GETFILESELW
#define LPFMS_GETFILESEL LPFMS_GETFILESELW
#else
#define FMS_GETFILESEL FMS_GETFILESELA
#define LPFMS_GETFILESEL LPFMS_GETFILESELA
#endif
typedef struct _FMS_GETDRIVEINFOA { // for drive
DWORD dwTotalSpace; DWORD dwFreeSpace; CHAR szPath[260]; // current directory
CHAR szVolume[14]; // volume label
CHAR szShare[128]; // if this is a net drive
} FMS_GETDRIVEINFOA, FAR *LPFMS_GETDRIVEINFOA;
typedef struct _FMS_GETDRIVEINFOW { // for drive
DWORD dwTotalSpace; DWORD dwFreeSpace; WCHAR szPath[260]; // current directory
WCHAR szVolume[14]; // volume label
WCHAR szShare[128]; // if this is a net drive
} FMS_GETDRIVEINFOW, FAR *LPFMS_GETDRIVEINFOW;
#ifdef UNICODE
#define FMS_GETDRIVEINFO FMS_GETDRIVEINFOW
#define LPFMS_GETDRIVEINFO LPFMS_GETDRIVEINFOW
#else
#define FMS_GETDRIVEINFO FMS_GETDRIVEINFOA
#define LPFMS_GETDRIVEINFO LPFMS_GETDRIVEINFOA
#endif
typedef struct _FMS_LOADA { DWORD dwSize; // for version checks
CHAR szMenuName[MENU_TEXT_LEN]; // output
HMENU hMenu; // output
UINT wMenuDelta; // input
} FMS_LOADA, FAR *LPFMS_LOADA;
typedef struct _FMS_LOADW { DWORD dwSize; // for version checks
WCHAR szMenuName[MENU_TEXT_LEN]; // output
HMENU hMenu; // output
UINT wMenuDelta; // input
} FMS_LOADW, FAR *LPFMS_LOADW;
#ifdef UNICODE
#define FMS_LOAD FMS_LOADW
#define LPFMS_LOAD LPFMS_LOADW
#else
#define FMS_LOAD FMS_LOADA
#define LPFMS_LOAD LPFMS_LOADA
#endif
// Toolbar definitions
typedef struct tagEXT_BUTTON { WORD idCommand; /* menu command to trigger */ WORD idsHelp; /* help string ID */ WORD fsStyle; /* button style */ } EXT_BUTTON, FAR *LPEXT_BUTTON;
typedef struct tagFMS_TOOLBARLOAD { DWORD dwSize; /* for version checks */ LPEXT_BUTTON lpButtons; /* output */ WORD cButtons; /* output, 0==>no buttons */ WORD cBitmaps; /* number of non-sep buttons */ WORD idBitmap; /* output */ HBITMAP hBitmap; /* output if idBitmap==0 */ } FMS_TOOLBARLOAD, FAR *LPFMS_TOOLBARLOAD;
typedef struct tagFMS_HELPSTRINGA { INT idCommand; /* input, -1==>the menu was selected */ HMENU hMenu; /* input, the extensions menu */ CHAR szHelp[128]; /* output, the help string */ } FMS_HELPSTRINGA, FAR *LPFMS_HELPSTRINGA;
typedef struct tagFMS_HELPSTRINGW { INT idCommand; /* input, -1==>the menu was selected */ HMENU hMenu; /* input, the extensions menu */ WCHAR szHelp[128]; /* output, the help string */ } FMS_HELPSTRINGW, FAR *LPFMS_HELPSTRINGW;
#ifdef UNICODE
#define FMS_HELPSTRING FMS_HELPSTRINGW
#define LPFMS_HELPSTRING LPFMS_HELPSTRINGW
#else
#define FMS_HELPSTRING FMS_HELPSTRINGA
#define LPFMS_HELPSTRING LPFMS_HELPSTRINGA
#endif
typedef DWORD (APIENTRY *FM_EXT_PROC)(HWND, WORD, LONG); typedef DWORD (APIENTRY *FM_UNDELETE_PROC)(HWND, LPTSTR);
#ifdef UNICODE
LONG WINAPI FMExtensionProcW(HWND hwnd, WORD wEvent, LONG lParam); #else
LONG WINAPI FMExtensionProc(HWND hwnd, WORD wEvent, LONG lParam); #endif
#ifdef __cplusplus
} /* End of extern "C" { */ #endif /* __cplusplus */
#endif /* _INC_WFEXT */
|