IMsgStore::OpenEntry
The IMsgStore::OpenEntry
method opens a folder or message and returns an interface pointer for further
access.
Quick Info
See IMsgStore
: IMAPIProp
HRESULT OpenEntry(
ULONG cbEntryID,
|
|
LPENTRYID lpEntryID, |
|
LPCIID lpInterface, |
|
ULONG ulFlags,
|
|
ULONG FAR * lpulObjType, |
|
LPUNKNOWN FAR * lppUnk |
|
) |
|
Parameters
cbEntryID
[in] Count of
bytes in the entry identifier pointed to by the lpEntryID parameter.
lpEntryID
[in] Pointer
to the entry identifier of the object to open or NULL. If lpEntryID is
set to NULL, OpenEntry opens the root folder for the message store.
lpInterface
[in] Pointer
to the interface identifier (IID) representing the interface to be used to access
the opened object. Passing NULL results in the object s standard interface
being returned which is IMAPIFolder for folders and IMessage for
messages.
ulFlags
[in] Bitmask
of flags that controls how the object is opened. The following flags can be used:
MAPI_BEST_ACCESS
Requests that
the object be opened with the maximum network permissions allowed for the user
and the maximum client application access. For example, if the client has
read/write access, the object should be opened with read/write access; if the
client has read-only access, the object should be opened with read-only access.
MAPI_DEFERRED_ERRORS
Allows OpenEntry
to return successfully, possibly before the object is fully accessible to the
calling client. If the object is not accessible, making a subsequent object
call can result in an error.
MAPI_MODIFY
Requests
read/write access. By default, objects are opened with read-only access, and
clients should not work on the assumption that read/write access has been
granted.
lpulObjType
[out] Pointer
to the type of the opened object.
lppUnk
[out] Pointer
to a pointer to the opened object.
Return Values
S_OK
The call succeeded
and has returned the expected value or values.
MAPI_E_NO_ACCESS
An attempt
was made to modify a read-only object or to access an object for which the user
has insufficient permissions.
Remarks
The IMsgStore::OpenEntry
method opens a folder or message and returns a pointer to an interface that can
be used for further access.
Notes to Callers
Folders and
messages are automatically opened with read-only access, unless you set the
MAPI_MODIFY or MAPI_BEST_ACCESS flag in the ulFlags parameter. Setting
one of these flags does not guarantee a particular type of access; the
permissions that you are granted depends on the message store provider, your
access level, and the object. To determine the access level of the opened object,
retrieve its PR_ACCESS_LEVEL
Although IMsgStore::OpenEntry
can be used to open any folder or message, it is usually faster to use IMAPIContainer::OpenEntry
Check the
value returned in the lpulObjType parameter to determine that the object
type returned is what you expected. If the object type is not the expected
type, cast the pointer from the lppUnk parameter to a pointer of the
appropriate type. For example, if you are opening a folder, cast lppUnk
to a pointer of type LPMAPIFOLDER.
See Also