windows-nt/Source/XPSP1/NT/public/sdk/inc/wfext.h
2020-09-26 16:20:57 +08:00

190 lines
6.2 KiB
C

/*****************************************************************************\
* *
* 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 */