pinvoke
pinvoke copied to clipboard
Change CreatePipe to use SafeFileHandle instead of SafeObjectHandle
The CreatePipe method should output SafeFileHandles intead of SafeObjectHandles. By outputting SafeFileHandle directly it makes it easier to wrap these up in FileReader and FileWriter classes.
There's a lot of Kernel32 which interop with files. Basically every first argument to a Kernel32 method which is named hFile or hDevice should be a SafeFileHandle instead.
It makes a lot of sense to change them all. @AArnott thoughts?
I had similar thoughts to the OP's, only CreateFile was the API I cared about. Help me understand the thinking in returning SafeObjectHandle? None of the .NET FileStream constructors know what to do with that, but maybe you had a different .NET API in mind to interact with SafeObjectHandles?
Probably not enough care in choosing it. I could see us unifying this.