protected bool GetBool(GetComposedInt32EntryPointDelegate entryPoint)
        {
            int ret = entryPoint(Handle, composedHandle);

            CheckResult(ret);

            return(ret == 1 ? true : false);
        }
        protected char GetChar(GetComposedInt32EntryPointDelegate entryPoint)
        {
            int ret = entryPoint(Handle, composedHandle);

            CheckResult(ret);

            return((char)ret);
        }
        protected int GetInt32(GetComposedInt32EntryPointDelegate entryPoint)
        {
            int ret = entryPoint(Handle, composedHandle);

            CheckResult(ret);

            return(ret);
        }
		protected bool GetBool(GetComposedInt32EntryPointDelegate entryPoint)
		{
			int ret = entryPoint(Handle, composedHandle);
			CheckResult(ret);

			return ret == 1 ? true : false;
		}
		protected char GetChar(GetComposedInt32EntryPointDelegate entryPoint)
		{
			int ret = entryPoint(Handle, composedHandle);
			CheckResult(ret);

			return (char)ret;
		}
		protected int GetInt32(GetComposedInt32EntryPointDelegate entryPoint)
		{
			int ret = entryPoint(Handle, composedHandle);
			CheckResult(ret);

			return ret;
		}
		protected string[] GetStringArray(GetComposedArrayStringEntryPointDelegate entryPoint, GetComposedInt32EntryPointDelegate GetCount, int bufferLen)
		{
			int count = GetCount(Handle, composedHandle);
			CheckResult(count);

			string[] Retorno = new string[count];

			for (int i = 0; i < count; i++)
			{
				StringBuilder buffer = new StringBuilder(bufferLen);
				int ret = entryPoint(Handle, composedHandle, buffer, bufferLen, i);
				CheckResult(ret);
				Retorno[i] = FromUTF8(buffer);
			}

			return Retorno;
		}
		protected string[] GetStringArray(GetComposedArrayStringEntryPointDelegate entryPoint, GetComposedInt32EntryPointDelegate GetCount)
		{
			const int BUFFER_LEN = 256;
			return GetStringArray(entryPoint, GetCount, BUFFER_LEN);
		}
        protected string[] GetStringArray(GetComposedArrayStringEntryPointDelegate entryPoint, GetComposedInt32EntryPointDelegate GetCount, int bufferLen)
        {
            int count = GetCount(Handle, composedHandle);

            CheckResult(count);

            string[] Retorno = new string[count];

            for (int i = 0; i < count; i++)
            {
                StringBuilder buffer = new StringBuilder(bufferLen);
                int           ret    = entryPoint(Handle, composedHandle, buffer, bufferLen, i);
                CheckResult(ret);
                Retorno[i] = FromUTF8(buffer);
            }

            return(Retorno);
        }
        protected string[] GetStringArray(GetComposedArrayStringEntryPointDelegate entryPoint, GetComposedInt32EntryPointDelegate GetCount)
        {
            const int BUFFER_LEN = 256;

            return(GetStringArray(entryPoint, GetCount, BUFFER_LEN));
        }