IMAPISession::OpenEntry
The OpenEntry method opens an object and returns an interface pointer for further access.
Syntax
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 lpEntryID. - lpEntryID
[in] Reference to the entry identifier of the object to open; cannot be NULL. - lpInterface
[in] Ignored. - ulFlags
[in] Ignored. - lpulObjType
[out] Reference to the type of the opened object. - lppUnk
[out] Reference to the opened object.
Return Values
This method returns the standard values E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED, and E_FAIL, as well as the following:
- S_OK
Indicates success. - MAPI_E_NO_ACCESS
An attempt was made to modify a read-only object, or an attempt was made to access an object for which the user has insufficient permissions. - MAPI_E_NOT_FOUND
No object associated with the entry identifier passed in lpEntryID. - MAPI_E_UNKNOWN_ENTRYID
The entry identifier passed in the lpEntryID parameter is in an unrecognizable format. This value is typically returned if the service provider that contains the object is not open.
Remarks
OpenEntry opens a message store object, folder object, or message object, and returns a pointer that can be used to access the object, described in the following table:
Opened object | **lppUnk object interface | *lpulObjType |
---|---|---|
message store | IMsgStore | Not defined |
folder | IMAPIFolder | MAPI_FOLDER |
message | IMessage | MAPI_MESSAGE |
All MAPI OpenEntry methods call down to the same underlying helper function, so there's no performance hit in choosing IMAPISession::OpenEntry over IMsgStore::OpenEntry or IMAPIFolder::OpenEntry (which is accessible through IMAPIContainer::OpenEntry).
Calling OpenEntry and setting lpEntryID to point to the entry identifier of a message store is equivalent to calling the IMAPISession::OpenMsgStore method.
Check the value returned in the lpulObjType parameter to determine whether the object type returned is what you expected. If the object type is not the type you expected, 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.
Requirements
Smartphone: Windows Mobile 2002 and later
OS Versions: Windows CE 3.0 and later
Header: mapix.h
Library: cemapi.lib
See Also
Last updated on Friday, April 22, 2005
© 2005 Microsoft Corporation. All rights reserved.
Send feedback on this topic to the authors.