<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue-Light, Helvetica Neue Light, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:13px"><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr"><span style="font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, 'Lucida Grande', sans-serif;" id="yui_3_16_0_1_1437392762549_265731" class="">>how do I cast a win32 file handle to an </span><span style="font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, 'Lucida Grande', sans-serif;" id="yui_3_16_0_1_1437392762549_265735" class="">IntPtr?</span><br></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr"><span style="font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, 'Lucida Grande', sans-serif;" class=""><br></span></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr"><span style="font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, 'Lucida Grande', sans-serif;" class="" id="yui_3_16_0_1_1437392762549_269359">i ran into this in the past as well; specifically when i started using FTDI USB devices on DLPdesign development kits.  the library is written in c++ MFC code.  After providing data marshal/platform invoke i applied the intptr in c#.   The USB device that I am accessing, passes a file handle to indicate specific pass / fail condition.  i.e. the first command opens a connection to the device, the expected handle is 'OK'.  if not one of many different possible error messages is passed in the file handle.  </span></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr"><br></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr"><span style="font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, 'Lucida Grande', sans-serif;" class=""><br></span></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><font face="Helvetica Neue, Segoe UI, Helvetica, Arial, Lucida Grande, sans-serif" id="yui_3_16_0_1_1437392762549_284500" class="">Summary</font></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><font face="Helvetica Neue, Segoe UI, Helvetica, Arial, Lucida Grande, sans-serif" id="yui_3_16_0_1_1437392762549_284503" class="">Open the device and return a handle which will be used for subsequent accesses.</font></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><font face="Helvetica Neue, Segoe UI, Helvetica, Arial, Lucida Grande, sans-serif" id="yui_3_16_0_1_1437392762549_284506" class="">Definition</font></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><font face="Helvetica Neue, Segoe UI, Helvetica, Arial, Lucida Grande, sans-serif" id="yui_3_16_0_1_1437392762549_284509" class="">FT_STATUS FT_Open (int iDevice, FT_HANDLE *ftHandle)</font></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><font face="Helvetica Neue, Segoe UI, Helvetica, Arial, Lucida Grande, sans-serif" id="yui_3_16_0_1_1437392762549_284512" class="">Parameters</font></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><font face="Helvetica Neue, Segoe UI, Helvetica, Arial, Lucida Grande, sans-serif" id="yui_3_16_0_1_1437392762549_284515" class="">iDevice Index of the device to open. Indices are 0 based.</font></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><font face="Helvetica Neue, Segoe UI, Helvetica, Arial, Lucida Grande, sans-serif" id="yui_3_16_0_1_1437392762549_284518" class="">ftHandle Pointer to a variable of type FT_HANDLE where the handle will be</font></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><font face="Helvetica Neue, Segoe UI, Helvetica, Arial, Lucida Grande, sans-serif" id="yui_3_16_0_1_1437392762549_284521" class="">stored. This handle must be used to access the device.</font></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><font face="Helvetica Neue, Segoe UI, Helvetica, Arial, Lucida Grande, sans-serif" id="yui_3_16_0_1_1437392762549_284524" class="">Return Value</font></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr"><font face="Helvetica Neue, Segoe UI, Helvetica, Arial, Lucida Grande, sans-serif" id="yui_3_16_0_1_1437392762549_284526" class=""><span class=""></span></font></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><font face="Helvetica Neue, Segoe UI, Helvetica, Arial, Lucida Grande, sans-serif" id="yui_3_16_0_1_1437392762549_284529" class="">FT_OK if successful, otherwise the return value is an FT error code.</font></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><br></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">public class Wrapper</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">{</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">private static IntPtr m_USBhandler;</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><br id="yui_3_16_0_1_1437392762549_288025" class=""></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">[DllImport("FTD2XX.dll", EntryPoint="FT_Open")]</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">public static extern uint FT_Open(int iDevice, ref IntPtr ftHandle);</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><br id="yui_3_16_0_1_1437392762549_288030" class=""></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">[DllImport("FTD2XX.dll", EntryPoint="FT_Close")]</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">public static extern uint FT_Close(IntPtr ftHandle);</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><br id="yui_3_16_0_1_1437392762549_288035" class=""></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">[DllImport("FTD2XX.dll", EntryPoint="FT_Read")]</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">public static extern uint FT_Read(IntPtr ftHandle, byte[] lpBuffer,</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">uint dwBytesToRead, ref uint</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">lpdwBytesReturned);</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><br id="yui_3_16_0_1_1437392762549_288042" class=""></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">[DllImport("FTD2XX.dll", EntryPoint="FT_Write")]</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">public static extern uint FT_Write(IntPtr ftHandle, byte[] lpBuffer,</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">uint dwBytesToWrite, ref uint</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">lpdwBytesWritten);</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><br id="yui_3_16_0_1_1437392762549_288049" class=""></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">[DllImport("FTD2XX.dll", EntryPoint="FT_Purge")]</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">public static extern uint FT_Purge(IntPtr ftHandle, uint dwMask);</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class=""><br id="yui_3_16_0_1_1437392762549_288054" class=""></div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">public static bool OpenDevice()</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">{</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">if (((FT_Status)Wrapper.FT_Open(1, ref m_USBhandler)) ==</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">FT_Status.Ok)</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">{</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">return true;</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">}</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">else</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">{</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">return false;</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">}</div><div id="yui_3_16_0_1_1437392762549_265724" dir="ltr" class="">}</div><div dir="ltr" id="yui_3_16_0_1_1437392762549_288067" class=""><br id="yui_3_16_0_1_1437392762549_288069" class=""></div><div dir="ltr" id="yui_3_16_0_1_1437392762549_288067" class=""><br></div><div dir="ltr" id="yui_3_16_0_1_1437392762549_288067" class="">i hope this helps you by seeing one way of applying file handles in c#. </div><div dir="ltr" id="yui_3_16_0_1_1437392762549_288067" class=""><br></div><div dir="ltr" id="yui_3_16_0_1_1437392762549_288067" class="">Ron </div><div></div><div id="yui_3_16_0_1_1437392762549_283504"> </div><div id="yui_3_16_0_1_1437392762549_283323"><div id="yui_3_16_0_1_1437392762549_283502">“The desire that guides me in all I do is the desire to harness the forces of nature to the service of mankind.</div><div id="yui_3_16_0_1_1437392762549_284006">”Nikola Tesla“Radio Power Will Revolutionize the World” (Modern Mechanix & Inventions, July, 1934)</div></div>  <br><div class="qtdSeparateBR"><br><br></div><div class="yahoo_quoted" style="display: block;"> <div style="font-family: HelveticaNeue-Light, Helvetica Neue Light, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 13px;"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div dir="ltr"> <font size="2" face="Arial"> On Tuesday, July 21, 2015 11:12 AM, Dan Lenski <dlenski@gmail.com> wrote:<br> </font> </div>  <br><br> <div class="y_msg_container">Ron Harding via PythonDotNet <<a ymailto="mailto:pythondotnet@..." href="mailto:pythondotnet@...">pythondotnet@...</a>> writes:<br><br>> perhaps re-directed command line calls for stdin, stdout, stderr in c# <br>interacting with python i/o command line calls(although in python it is <br>common practice to daisy chain commands).<br><br>Unfortunately, I cannot redirect the output of the C# library to a <br>convenient filehandle like stdout/stderr; I need to be specify a <br>FileStream object.<br><br>It pretty much comes down to this: how do I cast a win32 file handle to an <br>IntPtr?<br><br>Thanks,<br>Dan<br><br>_________________________________________________<br>Python.NET mailing list - <a ymailto="mailto:PythonDotNet@python.org" href="mailto:PythonDotNet@python.org">PythonDotNet@python.org</a><br><a href="https://mail.python.org/mailman/listinfo/pythondotnet" target="_blank">https://mail.python.org/mailman/listinfo/pythondotnet</a><br><br><br></div>  </div> </div>  </div></div></body></html>