Пример на С.
[codebox] OBJECT_DESCRIPTOR objDescr;
unsigned char* pMyValue;
STATUS error;
WORD value_datatype;
BLOCKID value_blockid;
BLOCKID item_blockid;
BLOCKID prev_item_blockid;
DWORD value_len;
unsigned char* pNValue;
unsigned char* pValue = NULL;
error = NSFItemInfo(hNote,ITEM_NAME_ATTACHMENT, strlen(ITEM_NAME_ATTACHMENT),
&(item_blockid), &value_datatype, &value_blockid, &value_len);
while (NOERROR == error)
{
if (TYPE_OBJECT == value_datatype)
{
pMyValue = new unsigned char[value_len];
pNValue = (unsigned char *)OSLockBlock(char,value_blockid);
pNValue += sizeof(WORD);
value_len -= sizeof(WORD);
memcpy(pMyValue, pNValue, value_len);
OSUnlockBlock(value_blockid);
ODSReadMemory( &pMyValue, _OBJECT_DESCRIPTOR, &objDescr, 1 );
if (OBJECT_FILE == objDescr.ObjectType)
{
//Искомый RRV получен в objDescr.RRV
...
}
delete pMyValue;
}
prev_item_blockid = item_blockid;
error = NSFItemInfoNext(hNote,
prev_item_blockid,
ITEM_NAME_ATTACHMENT,
strlen(ITEM_NAME_ATTACHMENT),
&item_blockid,
&value_datatype,
&value_blockid,
&value_len);
}[/codebox]