IMAPIViewContext::GetViewStatus

The IMAPIViewContext::GetViewStatus method retrieves the current viewer status.

Quick Info

See IMAPIViewContext : IUnknown.

HRESULT GetViewStatus(
  ULONG FAR * lpulStatus  
);
 

Parameter

lpulStatus
[out] Pointer to a bitmask of flags providing the status of the viewer. The following flags can be set:
VCSTATUS_CATEGORY
There is a next or previous message in another category.
VCSTATUS_DELETE
The form allows messages to be removed.
VCSTATUS_INTERACTIVE
The form should display a user interface. If this flag is not set, the form should suppress displaying a user interface even in response to a verb that usually causes a user interface to be displayed.
VCSTATUS_MODAL
The form is modal to the viewer.
VCSTATUS_NEXT
There is a next message in the view.
VCSTATUS_PREV
There is a previous message in the view.
VCSTATUS_READONLY
The message is to be opened in read-only mode. Delete, submit, and move operations should be disabled.
VCSTATUS_UNREAD
There is a next or previous unread message in the view.

Return Value

S_OK
The viewer's status was successfully returned.

Remarks

Form objects call the IMAPIViewContext::GetViewStatus method to determine whether there are more messages to be activated in a form view in either or both directions — that is, in the direction in which a Next command activates messages, in the direction in which a Previous command activates messages, or in both directions. The value pointed to by the lpulStatus parameter is used to determine whether the VCSTATUS_NEXT and VCSTATUS_PREV flags are valid for IMAPIViewContext::ActivateNext. If the VCSTATUS_DELETE flag is set, but not the VCSTATUS_READONLY flag, then the message can be deleted using the IMAPIMessageSite::DeleteMessage method.

Typically, forms disable menu commands and buttons if they are not valid for the viewer's context. A viewer can alert a form to a change in status by calling its IMAPIFormAdviseSink::OnChange method.

The VCSTATUS_MODAL flag is set if the form must be modal to the window whose handle is passed in the earlier IMAPIForm::DoVerb call. If VCSTATUS_MODAL is set, the form can use the thread on which the DoVerb call was made until the form closes. If VCSTATUS_MODAL is not set, the form should not be modal to this window and must not use the thread.

See Also

IMAPIMessageSite::GetSiteStatus