DFMICS structure (shlobj_core.h)

Contains additional arguments used by DFM_INVOKECOMMANDEX.

Syntax

typedef struct {
  DWORD                 cbSize;
  DWORD                 fMask;
  LPARAM                lParam;
  UINT                  idCmdFirst;
  UINT                  idDefMax;
  LPCMINVOKECOMMANDINFO pici;
  IUnknown              *punkSite;
} DFMICS, *PDFMICS;

Members

cbSize

Type: DWORD

The size of this structure, in bytes.

fMask

Type: DWORD

Zero, or one or more of the following flags that specify how to handle the data in the CMINVOKECOMMANDINFO or CMINVOKECOMMANDINFOEX structure pointed to by pici.

CMIC_MASK_HOTKEY

The dwHotKey member is valid.

CMIC_MASK_ICON

Not used.

CMIC_MASK_FLAG_NO_UI

The implementation of IContextMenu::InvokeCommand is prevented from displaying user interface elements (for example, error messages) while carrying out a command.

CMIC_MASK_UNICODE

Used only when pici points to a CMINVOKECOMMANDINFOEX structure. Indicates that the shortcut menu handler should use lpVerbW, lpParametersW, lpTitleW, and lpDirectoryW members instead of their ANSI equivalents. Because some shortcut menu handlers may not support Unicode, you should also pass valid ANSI strings in the lpVerb, lpParameters, lpTitleW, and lpDirectory members.

CMIC_MASK_NO_CONSOLE

If a shortcut menu handler needs to create a new process, it normally creates a new console. Setting the CMIC_MASK_NO_CONSOLE flag suppresses the creation of a new console.

CMIC_MASK_FLAG_SEP_VDM

This flag is valid only when referring to a 16-bit Windows-based application. If set, the application that the shortcut points to runs in a private Virtual DOS Machine (VDM). See Remarks.

CMIC_MASK_ASYNCOK

The implementation of IContextMenu::InvokeCommand can spin off a new thread or process to handle the call and does not need to block on completion of the function being invoked. For example, if the verb is "delete" the IContextMenu::InvokeCommand call may return before all of the items have been deleted. Since this is advisory, calling applications that specify this flag cannot guarantee that this request will be honored if they are not familiar with the implementation of the verb that they are invoking.

CMIC_MASK_NOASYNC

Windows Vista and later. The implementation of IContextMenu::InvokeCommand should be synchronous, not returning before it is complete. Since this is recommended, calling applications that specify this flag cannot guarantee that this request will be honored if they are not familiar with the implementation of the verb that they are invoking.

CMIC_MASK_SHIFT_DOWN

The SHIFT key is pressed. Use this instead of polling the current state of the keyboard that may have changed since the verb was invoked.

CMIC_MASK_CONTROL_DOWN

The CTRL key is pressed. Use this instead of polling the current state of the keyboard that may have changed since the verb was invoked.

CMIC_MASK_FLAG_LOG_USAGE

Indicates that the implementation of IContextMenu::InvokeCommand might want to keep track of the item being invoked for features like the "Recent documents" menu.

CMIC_MASK_NOZONECHECKS

Do not perform a zone check. This flag allows ShellExecuteEx to bypass zone checking put into place by IAttachmentExecute.

CMIC_MASK_PTINVOKE

Used only when pici points to a CMINVOKECOMMANDINFOEX structure. The ptInvoke member is valid.

lParam

Type: LPARAM

A pointer to a null-terminated string that contains additional arguments to the selected menu command. This member can be NULL.

idCmdFirst

Type: UINT

The minimum value that the handler can specify for a menu item identifier.

idDefMax

Type: UINT

The maximum value that the handler can specify for a menu item identifier.

pici

Type: LPCMINVOKECOMMANDINFO

A pointer to a CMINVOKECOMMANDINFO or CMINVOKECOMMANDINFO structure.

punkSite

Type: IUnknown*

A pointer to the site of the context menu handler.

Requirements

Requirement Value
Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Header shlobj_core.h (include Shlobj.h)