windows-nt/Source/XPSP1/NT/shell/shell32/fsmenu.h
2020-09-26 16:20:57 +08:00

45 lines
1.5 KiB
C

#ifndef _FSMENU_H
#define _FSMENU_H
#include <objbase.h>
// Message values for callback
#define FMM_ADD 0
#define FMM_SETLASTPIDL 1
typedef HRESULT (CALLBACK *PFNFMCALLBACK)(UINT fmm, LPARAM lParam, IShellFolder *psf, LPCITEMIDLIST pidl);
// Structure for composing a filemenu
typedef struct
{
DWORD dwMask; // FMC_ flags
UINT idCmd;
DWORD grfFlags; // SHCONTF_ flags
IShellFolder *psf;
PFNFMCALLBACK pfnCallback; // Callback
LPARAM lParam; // Callback's LPARAM
OUT int cItems; // Returned
} FMCOMPOSE;
// Mask values for FMCOMPOSE.dwMask
#define FMC_NOEXPAND 0x00000001
// Method ordinals for FileMenu_Compose
#define FMCM_INSERT 0
#define FMCM_APPEND 1
#define FMCM_REPLACE 2
STDAPI FileMenu_Compose(HMENU hmenu, UINT nMethod, FMCOMPOSE *pfmc);
STDAPI_(BOOL) FileMenu_HandleNotify(HMENU hmenu, LPCITEMIDLIST * ppidl, LONG lEvent);
STDAPI_(BOOL) FileMenu_IsUnexpanded(HMENU hmenu);
STDAPI_(void) FileMenu_DelayedInvalidate(HMENU hmenu);
STDAPI_(BOOL) FileMenu_IsDelayedInvalid(HMENU hmenu);
STDAPI FileMenu_InitMenuPopup(HMENU hmenu);
STDAPI_(LRESULT) FileMenu_DrawItem(HWND hwnd, DRAWITEMSTRUCT *lpdi);
STDAPI_(LRESULT) FileMenu_MeasureItem(HWND hwnd, MEASUREITEMSTRUCT *lpmi);
STDAPI_(void) FileMenu_DeleteAllItems(HMENU hmenu);
STDAPI_(LRESULT) FileMenu_HandleMenuChar(HMENU hmenu, TCHAR ch);
#endif //_FSMENU_H