public INBTEntry Decode(BinaryData encodedData) { var parser = BinaryDataParser.OfValue(encodedData); return (INBTEntry.OfValue( NID.OfValue(parser.TakeAndSkip(4)), parser.TakeAtWithoutChangingStreamPosition(8, 16, brefDecoder))); }
private void TrackPreExistingChildren(int tableContextNodeType, ObjectTypes childObjectType) { var childrenTableContextNodePath = new[] { objectPath.LocalNodeId.ChangeType(tableContextNodeType) }; foreach (var rowId in rowIndexReader.GetAllRowIds(childrenTableContextNodePath)) { var childNodePath = objectPath.Add(NID.OfValue(rowId.RowId)); objectTracker.TrackObject(childNodePath, childObjectType, ObjectStates.Loaded); } }
public SIEntry Decode(BinaryData encodedData) { var parser = BinaryDataParser.OfValue(encodedData); var nodeId = parser.TakeAndSkip(8); return new SIEntry( NID.OfValue(nodeId.Take(4)), parser.TakeAndSkip(8, bidDecoder)); }
public static HNID OfValue(BinaryData encodedData) { var hid = HID.OfValue(encodedData); if (hid.Type == Constants.NID_TYPE_HID) { return(new HNID(hid)); } return(new HNID(NID.OfValue(encodedData))); }
public SLEntry Decode(BinaryData encodedData) { var parser = BinaryDataParser.OfValue(encodedData); var localNID = parser.TakeAndSkip(8); var subnodeBID = parser.TakeAndSkip(8); var subnodeNID = parser.TakeAndSkip(8); return (new SLEntry( NID.OfValue(localNID.Take(4)), bidDecoder.Decode(subnodeBID), bidDecoder.Decode(subnodeNID))); }
public LNBTEntry Decode(BinaryData encodedData) { var parser = BinaryDataParser.OfValue(encodedData); var nid = NID.OfValue(parser.TakeAndSkip(4)); parser.TakeAndSkip(4); return (new LNBTEntry( nid, parser.TakeAndSkip(8, bidDecoder), parser.TakeAndSkip(8, bidDecoder), NID.OfValue(parser.TakeAndSkip(4)), parser.TakeAndSkip(4))); }
private void LoadPreExistingAttachments() { var entry = nodeEntryFinder.GetEntry(new[] { objectPath.LocalNodeId }); if (entry.HasNoValue) { return; } var tableContextNodeId = entry.Value.GetChildOfType(Constants.NID_TYPE_ATTACHMENT_TABLE).LocalSubnodeId; foreach (var rowId in rowIndexReader.GetAllRowIds(new[] { objectPath.LocalNodeId, tableContextNodeId })) { objectTracker.TrackObject(objectPath.Add(NID.OfValue(rowId.RowId)), ObjectTypes.Attachment, ObjectStates.Loaded); } }
private Maybe <NID> GetEmbeddedMessageNodeId() { var entry = nodeEntryFinder.GetEntry(new[] { objectPath.ParentObjectPath.LocalNodeId, objectPath.LocalNodeId }); if (entry.HasNoValue) { return(Maybe <NID> .NoValue()); } var attachMethodPropertyValue = GetProperty(MAPIProperties.PidTagAttachMethod); if (!attachMethodPropertyValue.HasValueAnd(v => v.Value.HasFlag(MAPIProperties.afEmbeddedMessage))) { return(Maybe <NID> .NoValue()); } var attachDataObject = GetProperty(MAPIProperties.PidTagAttachDataObject); return(NID.OfValue(attachDataObject.Value.Value.Take(4))); }