Opc.Ua.Com.ComUtils.GetUnicodeStrings C# (CSharp) Method

GetUnicodeStrings() public static method

Marshals an array of strings into a unmanaged memory buffer
public static GetUnicodeStrings ( string values ) : IntPtr
values string The array of strings to marshal
return System.IntPtr
		public static IntPtr GetUnicodeStrings(string[] values)
		{
			int size = (values != null)?values.Length:0;

			if (size <= 0)
			{
				return IntPtr.Zero;
			}

			IntPtr pValues = IntPtr.Zero;

			int[] pointers = new int[size];
			
			for (int ii = 0; ii < size; ii++)
			{
				pointers[ii] = (int)Marshal.StringToCoTaskMemUni(values[ii]);
			}

			pValues = Marshal.AllocCoTaskMem(values.Length*Marshal.SizeOf(typeof(IntPtr)));
			Marshal.Copy(pointers, 0, pValues, size);

			return pValues;
		}

Same methods

ComUtils::GetUnicodeStrings ( IntPtr &pArray, int size, bool deallocate ) : string[]