IReplStore::FindFirstItem

The IReplStore::FindFirstItem method returns a new handle to the first object in a given folder, if there is any.

Syntax

HRESULT FindFirstItem(
HREPLFLD
hFolder,
HREPLITEM *
phItem,
BOOL *
pfExist
);

At a Glance

Header file: Cesync.h
Platforms: H/PC
Windows CE versions: 2.0 and later

Parameters

hFolder
Handler to a folder.
phItem
Output pointer. Points to a handle of the first object in the folder.
pfExist
Output pointer. Points to a boolean value that will be set to TRUE if there is an object in the folder.

Return Values

E_FAIL
There are problems with the enumeration. Replication should ignore the folder.
NOERROR
A new HREPLITEM was created for the first object in the folder and its pointer has been returned.

Remarks

The IReplStore::FindFirstItem method works together with FindNextItem and FindItemClose to enumerate all items in a given folder. FindFirstItem and FindNextItem are the only methods in IReplStore that can create HREPLITEM for the items. All HREPLITEM structures passed by the ActiveSync service manager are guaranteed to be originally created from these two methods. It's possible that, before FindItemClose is called, a different thread calls methods like DeleteObject that write to the store. Thus, it's important for the ActiveSync service provider to have some sort of thread synchronization between this method and the methods that write to the store. A typical ActiveSync service provider would use critical section to make sure that, during the time between calls to FindFirstItem and FindItemClose, no write to the store is permitted.

See Also

HREPLITEM, IReplStore::FindNextItem, IReplStore::FindItemClose