public HTTPRequestHandle CreateHTTPRequest(HTTPMethod HTTPRequestMethod, string absoluteURL)
        {
            CheckIfUsable();

            using (NativeString nativeString = new NativeString(absoluteURL))
            {
                return new HTTPRequestHandle(NativeMethods.HTTP_CreateHTTPRequest((int)HTTPRequestMethod, nativeString.ToNativeAsUtf8()));
            }
        }
        public bool SetHTTPRequestHeaderValue(HTTPRequestHandle request, string headerName, string headerValue)
        {
            CheckIfUsable();

            using (NativeString nativeHeaderName = new NativeString(headerName))
            {
                using (NativeString nativeHeaderValue = new NativeString(headerValue))
                {
                    return NativeMethods.HTTP_SetHTTPRequestHeaderValue(request.AsUInt32, nativeHeaderName.ToNativeAsUtf8(), nativeHeaderValue.ToNativeAsUtf8());
                }
            }
        }
        public bool SetHTTPRequestGetOrPostParameter(HTTPRequestHandle request, string paramName, string paramValue)
        {
            CheckIfUsable();

            using (NativeString nativeParamName = new NativeString(paramName))
            {
                using (NativeString nativeParamValue = new NativeString(paramValue))
                {
                    return NativeMethods.HTTP_SetHTTPRequestGetOrPostParameter(request.AsUInt32, nativeParamName.ToNativeAsUtf8(), nativeParamValue.ToNativeAsUtf8());
                }
            }
        }
        public bool GetHTTPResponseHeaderValue(HTTPRequestHandle request, string headerName, System.IntPtr headerValueBuffer, uint bufferSize)
        {
            CheckIfUsable();

            using (NativeString nativeHeaderName = new NativeString(headerName))
            {
                return NativeMethods.HTTP_GetHTTPResponseHeaderValue(request.AsUInt32, nativeHeaderName.ToNativeAsUtf8(), headerValueBuffer, bufferSize);
            }
        }
        public bool SetHTTPRequestRawPostBody(HTTPRequestHandle request, string contentType, System.IntPtr body, uint bodyLength)
        {
            CheckIfUsable();

            using (NativeString nativeContentType = new NativeString(contentType))
            {
                return NativeMethods.HTTP_SetHTTPRequestRawPostBody(request.AsUInt32, nativeContentType.ToNativeAsUtf8(), body, bodyLength);
            }
        }
        public bool GetHTTPResponseHeaderSize(HTTPRequestHandle request, string headerName, out uint responseHeaderSize)
        {
            CheckIfUsable();

            responseHeaderSize = 0;

            using (NativeString nativeHeaderName = new NativeString(headerName))
            {
                return NativeMethods.HTTP_GetHTTPResponseHeaderSize(request.AsUInt32, nativeHeaderName.ToNativeAsUtf8(), ref responseHeaderSize);
            }
        }
 public bool ReplyToFriendMessage(SteamID steamIDFriend, string message)
 {
     CheckIfUsable();
     using (NativeString rawMessage = new NativeString(message))
     {
         return NativeMethods.Friends_ReplyToFriendMessage(steamIDFriend.AsUInt64, rawMessage.ToNativeAsUtf8());
     }
 }
 public bool SendClanChatMessage(SteamID steamIDClanChat, string text)
 {
     CheckIfUsable();
     using (NativeString rawText = new NativeString(text))
     {
         return NativeMethods.Friends_SendClanChatMessage(steamIDClanChat.AsUInt64, rawText.ToNativeAsUtf8());
     }
 }
 public bool SetRichPresence(string key, string value)
 {
     CheckIfUsable();
     using (NativeString rawString = new NativeString(value))
     {
         return NativeMethods.Friends_SetRichPresence(key, rawString.ToNativeAsUtf8());
     }
 }
        public void SetPersonaName(string personaName)
        {
            CheckIfUsable();

            using (NativeString nativeString = new NativeString(personaName))
            {
                NativeMethods.Friends_SetPersonaName(nativeString.ToNativeAsUtf8());
            }
        }