Microsoft.ManagementConsole.View.GetSharedData C# (CSharp) Method

GetSharedData() private method

private GetSharedData ( string clipboardFormatId, int selectionId, IRequestStatus requestStatus ) : void
clipboardFormatId string
selectionId int
requestStatus IRequestStatus
return void
        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);
            }
        }