Oh, I see. Thanks!<br><br> -- Pete<br><br><div class="gmail_quote">On Tue, Jan 11, 2011 at 9:44 AM, Miguel de Icaza <span dir="ltr">&lt;<a href="mailto:miguel@novell.com">miguel@novell.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hello Peter,<br><br><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Your suggestions make sense to me, except one. The MIDIObjectRef values returned by the various functions in the CoreMIDI API are not pointers but rather unsigned 32-bit integers used as unique identifiers for the various &quot;midi objects&quot;. Given that fact, I don&#39;t think it makes sense to use INativeObject, unless I am confused about something.<br>

</blockquote><div><br></div></div><div>The &quot;Handle&quot; is merely that, a token that represents the unmanaged object.   There is no magic associated with the IntPtr, other than the fact that an IntPtr can fit both an &quot;int&quot; and the native platform &quot;void *&quot;, which happens to be two common ways of representing tokens in C APIs.</div>

<div><br></div><font color="#888888"><div>Miguel</div></font></div>
</blockquote></div><br>