장치 독립적 비트 맵을 클립 보드에서 가져 오려고합니다. .NET Framework에서 Clipboard.GetData inbuilt를 통해이 작업을 수행 할 수 있음을 잘 알고 있지만 웹 사이트의 여러 곳에서 문서화 된 것처럼 버그가 많기 때문에 API 만 사용하려고합니다.포인터를 MemoryStream으로 변환 하시겠습니까?
나는 다음과 같은 코드를 작성했다.
//i can correctly cast this to a MemoryStream
MemoryStream ms = Clipboard.GetData("DeviceIndependentBitmap") as MemoryStream;
하지만 API를 사용하여 스트림을 가리키는 포인터 (IntPtr)를 반환하는 방법을 사용하고 싶습니다. UnmanagedMemoryStream을 살펴 보았지만 정확히 IntPtr
으로 변환하는 방법을 이해하지 못했습니다.
다음은 내 API 코드입니다 (형식을 인수로 사용하는 GetClipboardData API 사용).
IntPtr p = GetClipboardData(8);
//what do I do from here to get a MemoryStream from this pointer?
나는 약간 혼란 스럽다. 나는 이미 그것을 직접 연구했지만 유용한 것을 만들 수 없었다.