internal void GetSharedData(string clipboardFormatId, int selectionId, IRequestStatus requestStatus)
{
WritableSharedData sharedData = null;
object selectionObject = null;
if ((this.SelectionData.SelectionCardinality == SelectionCardinality.None) || (selectionId != this.SelectionData.Id))
{
AuxiliarySelectionData data2 = this.ClipboardSelectionDatas[selectionId];
if (data2 == null)
{
data2 = this.SnapIn.SheetManager.ActiveViewPropertySheetSelectionDatas[selectionId];
}
if (data2 == null)
{
TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Warning, 12, "Request for getting data format {0} in view {1} selection id {2} could not be handled.", new object[] { clipboardFormatId, this._viewInstanceId, selectionId });
return;
}
sharedData = data2.SharedData;
selectionObject = data2.SelectionObject;
}
else
{
sharedData = this.SelectionData.SharedData;
selectionObject = this.SelectionData.SelectionObject;
}
WritableSharedDataItem item = sharedData.GetItem(clipboardFormatId);
if (item == null)
{
TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Warning, 12, "The requested data format {0} is no longer available on the current selection in view {1}.", new object[] { clipboardFormatId, this._viewInstanceId });
}
else
{
SyncStatus status = new SyncStatus(requestStatus);
byte[] buffer = this.OnGetSharedData(selectionObject, item, status);
ClipboardData data3 = new ClipboardData();
data3.ClipboardFormatId = item.ClipboardFormatId;
data3.SetValue(buffer);
ReadSharedDataResponse response = new ReadSharedDataResponse();
response.RequestedClipboardData = data3;
requestStatus.ProcessResponse(response);
}
}