Advertisement
Guest User

Untitled

a guest
Jan 21st, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. //Get the Data from the Clipboard
  2. IDataObject clipBoardDataObject = Clipboard.GetDataObject();
  3.  
  4. //The format of the object data is "ESRI Layers" (this can be checked using clipBoardDataObject.GetFormats();)
  5. MemoryStream geomStream = clipBoardDataObject.GetData("ESRI Layers") as MemoryStream;
  6. byte[] bytes = geomStream.ToArray();
  7.  
  8. IMemoryBlobStreamVariant memoryBlobStreamVariant = new MemoryBlobStreamClass();
  9. memoryBlobStreamVariant.ImportFromVariant(bytes);
  10. IMemoryBlobStream2 memoryBlobStream = memoryBlobStreamVariant as IMemoryBlobStream2;
  11. IStream stream = memoryBlobStream as IStream;
  12. IObjectStream objectStream = new ObjectStreamClass();
  13. objectStream.Stream = stream;
  14.  
  15. byte pv;
  16. uint cb = sizeof(int);
  17. uint pcbRead;
  18.  
  19. objectStream.RemoteRead(out pv, cb, out pcbRead);
  20. int count = Convert.ToInt32(pv);
  21.  
  22. //Guid you find in the ESRI ILayer Interface
  23. Guid iLayerGuid = new Guid("34C20002-4D3C-11D0-92D8-00805F7C28B0");
  24.  
  25. for (int i = 0; i < count; i++)
  26. {
  27. object o = objectStream.LoadObject(ref iLayerGuid, null);
  28. ILayer layer = o as ILayer;
  29. }
  30.  
  31. //Get the Data from the Clipboard
  32. IDataObject clipBoardDataObject = Clipboard.GetDataObject();
  33.  
  34. MemoryStream geomStream = clipBoardDataObject.GetData("ESRI Geometry List") as MemoryStream;
  35. byte[] bytes = geomStream.ToArray();
  36.  
  37. IMemoryBlobStreamVariant memoryBlobStreamVariant = new MemoryBlobStreamClass();
  38. memoryBlobStreamVariant.ImportFromVariant(bytes);
  39. IMemoryBlobStream2 memoryBlobStream = memoryBlobStreamVariant as IMemoryBlobStream2;
  40. IStream stream = memoryBlobStream as IStream;
  41. IObjectStream objectStream = new ObjectStreamClass();
  42. objectStream.Stream = stream;
  43.  
  44. byte pv;
  45. uint cb = sizeof(int);
  46. uint pcbRead;
  47.  
  48. objectStream.RemoteRead(out pv, cb, out pcbRead);
  49. int count = Convert.ToInt32(pv);
  50.  
  51. //What to do next? What object do I need to unpack to?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement