lineNegotiateAPIVersion (coredll)
Last changed: -92.55.88.24

.
Summary
Used to negotiate the TAPI version number to use. It also retrieves the extension identifier supported by the line device.

C# Signature:

[DllImport("coredll")]
public static extern uint lineNegotiateAPIVersion(IntPtr m_hLineApp, int dwDeviceID, int dwAPILowVersion, int dwAPIHighVersion, out int lpdwAPIVersion, out LINEEXTENSIONID lpExtensionID);

User-Defined Types:

[StructLayout(LayoutKind.Sequential)]
struct LINEEXTENSIONID
{
     public IntPtr dwExtensionID0;
     public IntPtr dwExtensionID1;
     public IntPtr dwExtensionID2;
     public IntPtr dwExtensionID3;
}

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

According to MSDN, line methods return LONG, which translates to Int32 in the .NET world. The possible error results, however, go over the capacity of a 32-bit integer. The header files show them as positive, but MSDN pages suggest that they are negative, which further suggests that perhaps they are meant to overflow. Because having variables overflow on purpose isn't very .NET-like, and C++ examples show that the result of this method is often assigned to a DWORD which translates to a UInt32 in .NET, it's safe to assume that we can have uint as the return type for this pinvoke.

Tips & Tricks:

Please add some!

Sample Code:

Please add some!

Documentation