Merge pull request #45 from vitalyster/master

libpurple backend: update purple_defs.h
This commit is contained in:
vitalyster 2013-10-14 03:43:25 -07:00
commit 51746c5af7
3 changed files with 714 additions and 668 deletions

View file

@ -299,15 +299,15 @@ class SpectrumNetworkPlugin : public NetworkPlugin {
}
if (!CONFIG_STRING_DEFAULTED(config, "proxy.type", "").empty()) {
PurpleProxyInfo *info = purple_proxy_info_new();
PurpleProxyInfo *info = purple_proxy_info_new_wrapped();
if (CONFIG_STRING_DEFAULTED(config, "proxy.type", "") == "http") {
purple_proxy_info_set_type(info, PURPLE_PROXY_HTTP);
purple_proxy_info_set_type_wrapped(info, PURPLE_PROXY_HTTP);
}
else if (CONFIG_STRING_DEFAULTED(config, "proxy.type", "") == "socks4") {
purple_proxy_info_set_type(info, PURPLE_PROXY_SOCKS4);
purple_proxy_info_set_type_wrapped(info, PURPLE_PROXY_SOCKS4);
}
else if (CONFIG_STRING_DEFAULTED(config, "proxy.type", "") == "socks5") {
purple_proxy_info_set_type(info, PURPLE_PROXY_SOCKS5);
purple_proxy_info_set_type_wrapped(info, PURPLE_PROXY_SOCKS5);
}
else {
LOG4CXX_ERROR(logger, "Unknown proxy.type " << CONFIG_STRING_DEFAULTED(config, "proxy.type", ""));
@ -316,20 +316,20 @@ class SpectrumNetworkPlugin : public NetworkPlugin {
info->username = NULL;
info->password = NULL;
purple_proxy_info_set_type(info, PURPLE_PROXY_SOCKS5);
purple_proxy_info_set_host(info, CONFIG_STRING_DEFAULTED(config, "proxy.host", "").c_str());
purple_proxy_info_set_type_wrapped(info, PURPLE_PROXY_SOCKS5);
purple_proxy_info_set_host_wrapped(info, CONFIG_STRING_DEFAULTED(config, "proxy.host", "").c_str());
if (CONFIG_INT_DEFAULTED(config, "proxy.port", 0)) {
purple_proxy_info_set_port(info, CONFIG_INT_DEFAULTED(config, "proxy.port", 0));
purple_proxy_info_set_port_wrapped(info, CONFIG_INT_DEFAULTED(config, "proxy.port", 0));
}
if (!CONFIG_STRING_DEFAULTED(config, "proxy.username", "").empty()) {
purple_proxy_info_set_username(info, CONFIG_STRING_DEFAULTED(config, "proxy.username", "").c_str());
purple_proxy_info_set_username_wrapped(info, CONFIG_STRING_DEFAULTED(config, "proxy.username", "").c_str());
}
if (!CONFIG_STRING_DEFAULTED(config, "proxy.password", "").empty()) {
purple_proxy_info_set_password(info, CONFIG_STRING_DEFAULTED(config, "proxy.password", "").c_str());
purple_proxy_info_set_password_wrapped(info, CONFIG_STRING_DEFAULTED(config, "proxy.password", "").c_str());
}
purple_account_set_proxy_info(account, info);
purple_account_set_proxy_info_wrapped(account, info);
}
}
@ -1657,7 +1657,7 @@ static bool initPurple() {
std::string libPurpleDllPath = CONFIG_STRING_DEFAULTED(config, "purple.libpurple_dll_path", "");
if (!resolvePurpleFunctions(libPurpleDllPath)) {
if (!resolvePurpleFunctions()) {
LOG4CXX_ERROR(logger, "Unable to load libpurple.dll or some of the needed methods");
return false;
}

View file

@ -1,25 +1,34 @@
#include "purple_defs.h"
#include "utils.h"
#if PURPLE_RUNTIME
using std::string;
using std::wstring;
static HMODULE f_hPurple = NULL;
purple_debug_set_ui_ops_wrapped_fnc purple_debug_set_ui_ops_wrapped = NULL;
purple_debug_set_verbose_wrapped_fnc purple_debug_set_verbose_wrapped = NULL;
purple_request_set_ui_ops_wrapped_fnc purple_request_set_ui_ops_wrapped = NULL;
purple_imgstore_get_data_wrapped_fnc purple_imgstore_get_data_wrapped = NULL;
purple_imgstore_get_size_wrapped_fnc purple_imgstore_get_size_wrapped = NULL;
purple_imgstore_unref_wrapped_fnc purple_imgstore_unref_wrapped = NULL;
purple_markup_escape_text_wrapped_fnc purple_markup_escape_text_wrapped = NULL;
purple_markup_strip_html_wrapped_fnc purple_markup_strip_html_wrapped = NULL;
purple_normalize_wrapped_fnc purple_normalize_wrapped = NULL;
purple_strdup_withhtml_wrapped_fnc purple_strdup_withhtml_wrapped = NULL;
purple_markup_html_to_xhtml_wrapped_fnc purple_markup_html_to_xhtml_wrapped = NULL;
purple_utf8_try_convert_wrapped_fnc purple_utf8_try_convert_wrapped = NULL;
purple_util_set_user_dir_wrapped_fnc purple_util_set_user_dir_wrapped = NULL;
purple_account_set_bool_wrapped_fnc purple_account_set_bool_wrapped = NULL;
purple_account_get_protocol_id_wrapped_fnc purple_account_get_protocol_id_wrapped = NULL;
purple_account_set_int_wrapped_fnc purple_account_set_int_wrapped = NULL;
purple_account_set_string_wrapped_fnc purple_account_set_string_wrapped = NULL;
purple_account_get_username_wrapped_fnc purple_account_get_username_wrapped = NULL;
purple_account_set_username_wrapped_fnc purple_account_set_username_wrapped = NULL;
purple_account_set_proxy_info_wrapped_fnc purple_account_set_proxy_info_wrapped = NULL;
purple_accounts_find_wrapped_fnc purple_accounts_find_wrapped = NULL;
purple_account_new_wrapped_fnc purple_account_new_wrapped = NULL;
purple_accounts_add_wrapped_fnc purple_accounts_add_wrapped = NULL;
purple_account_set_password_wrapped_fnc purple_account_set_password_wrapped = NULL;
purple_account_set_enabled_wrapped_fnc purple_account_set_enabled_wrapped = NULL;
purple_account_set_privacy_type_wrapped_fnc purple_account_set_privacy_type_wrapped = NULL;
purple_account_get_status_type_with_primitive_wrapped_fnc purple_account_get_status_type_with_primitive_wrapped = NULL;
purple_account_set_status_wrapped_fnc purple_account_set_status_wrapped = NULL;
purple_account_get_int_wrapped_fnc purple_account_get_int_wrapped = NULL;
purple_account_disconnect_wrapped_fnc purple_account_disconnect_wrapped = NULL;
purple_accounts_delete_wrapped_fnc purple_accounts_delete_wrapped = NULL;
purple_account_get_connection_wrapped_fnc purple_account_get_connection_wrapped = NULL;
purple_account_set_alias_wrapped_fnc purple_account_set_alias_wrapped = NULL;
purple_account_set_public_alias_wrapped_fnc purple_account_set_public_alias_wrapped = NULL;
purple_account_remove_buddy_wrapped_fnc purple_account_remove_buddy_wrapped = NULL;
purple_account_add_buddy_wrapped_fnc purple_account_add_buddy_wrapped = NULL;
purple_account_get_name_for_display_wrapped_fnc purple_account_get_name_for_display_wrapped = NULL;
purple_accounts_set_ui_ops_wrapped_fnc purple_accounts_set_ui_ops_wrapped = NULL;
purple_account_option_get_type_wrapped_fnc purple_account_option_get_type_wrapped = NULL;
purple_account_option_get_setting_wrapped_fnc purple_account_option_get_setting_wrapped = NULL;
purple_blist_node_get_type_wrapped_fnc purple_blist_node_get_type_wrapped = NULL;
purple_buddy_get_alias_wrapped_fnc purple_buddy_get_alias_wrapped = NULL;
purple_buddy_get_server_alias_wrapped_fnc purple_buddy_get_server_alias_wrapped = NULL;
@ -46,67 +55,18 @@ purple_set_blist_wrapped_fnc purple_set_blist_wrapped = NULL;
purple_blist_new_wrapped_fnc purple_blist_new_wrapped = NULL;
purple_blist_load_wrapped_fnc purple_blist_load_wrapped = NULL;
purple_blist_get_handle_wrapped_fnc purple_blist_get_handle_wrapped = NULL;
purple_xfer_ui_ready_wrapped_fnc purple_xfer_ui_ready_wrapped = NULL;
purple_xfer_request_accepted_wrapped_fnc purple_xfer_request_accepted_wrapped = NULL;
purple_xfer_request_denied_wrapped_fnc purple_xfer_request_denied_wrapped = NULL;
purple_certificate_add_ca_search_path_wrapped_fnc purple_certificate_add_ca_search_path_wrapped = NULL;
purple_xfer_get_account_wrapped_fnc purple_xfer_get_account_wrapped = NULL;
purple_xfer_get_filename_wrapped_fnc purple_xfer_get_filename_wrapped = NULL;
purple_xfer_get_size_wrapped_fnc purple_xfer_get_size_wrapped = NULL;
purple_xfer_unref_wrapped_fnc purple_xfer_unref_wrapped = NULL;
purple_xfer_ref_wrapped_fnc purple_xfer_ref_wrapped = NULL;
purple_xfers_set_ui_ops_wrapped_fnc purple_xfers_set_ui_ops_wrapped = NULL;
purple_xfers_get_handle_wrapped_fnc purple_xfers_get_handle_wrapped = NULL;
purple_signal_connect_wrapped_fnc purple_signal_connect_wrapped = NULL;
purple_prefs_load_wrapped_fnc purple_prefs_load_wrapped = NULL;
purple_prefs_set_bool_wrapped_fnc purple_prefs_set_bool_wrapped = NULL;
purple_prefs_set_string_wrapped_fnc purple_prefs_set_string_wrapped = NULL;
purple_notify_user_info_new_wrapped_fnc purple_notify_user_info_new_wrapped = NULL;
purple_notify_user_info_destroy_wrapped_fnc purple_notify_user_info_destroy_wrapped = NULL;
purple_notify_user_info_get_entries_wrapped_fnc purple_notify_user_info_get_entries_wrapped = NULL;
purple_notify_user_info_entry_get_label_wrapped_fnc purple_notify_user_info_entry_get_label_wrapped = NULL;
purple_notify_user_info_entry_get_value_wrapped_fnc purple_notify_user_info_entry_get_value_wrapped = NULL;
purple_notify_set_ui_ops_wrapped_fnc purple_notify_set_ui_ops_wrapped = NULL;
purple_buddy_icons_set_account_icon_wrapped_fnc purple_buddy_icons_set_account_icon_wrapped = NULL;
purple_buddy_icons_find_wrapped_fnc purple_buddy_icons_find_wrapped = NULL;
purple_buddy_icon_get_full_path_wrapped_fnc purple_buddy_icon_get_full_path_wrapped = NULL;
purple_buddy_icon_unref_wrapped_fnc purple_buddy_icon_unref_wrapped = NULL;
purple_buddy_icons_find_account_icon_wrapped_fnc purple_buddy_icons_find_account_icon_wrapped = NULL;
purple_buddy_icon_get_data_wrapped_fnc purple_buddy_icon_get_data_wrapped = NULL;
purple_account_set_bool_wrapped_fnc purple_account_set_bool_wrapped = NULL;
purple_account_get_protocol_id_wrapped_fnc purple_account_get_protocol_id_wrapped = NULL;
purple_account_set_int_wrapped_fnc purple_account_set_int_wrapped = NULL;
purple_account_set_string_wrapped_fnc purple_account_set_string_wrapped = NULL;
purple_account_get_username_wrapped_fnc purple_account_get_username_wrapped = NULL;
purple_account_set_username_wrapped_fnc purple_account_set_username_wrapped = NULL;
purple_accounts_find_wrapped_fnc purple_accounts_find_wrapped = NULL;
purple_account_new_wrapped_fnc purple_account_new_wrapped = NULL;
purple_accounts_add_wrapped_fnc purple_accounts_add_wrapped = NULL;
purple_account_set_password_wrapped_fnc purple_account_set_password_wrapped = NULL;
purple_account_set_enabled_wrapped_fnc purple_account_set_enabled_wrapped = NULL;
purple_account_set_privacy_type_wrapped_fnc purple_account_set_privacy_type_wrapped = NULL;
purple_account_get_status_type_with_primitive_wrapped_fnc purple_account_get_status_type_with_primitive_wrapped = NULL;
purple_account_set_status_wrapped_fnc purple_account_set_status_wrapped = NULL;
purple_account_get_int_wrapped_fnc purple_account_get_int_wrapped = NULL;
purple_account_disconnect_wrapped_fnc purple_account_disconnect_wrapped = NULL;
purple_accounts_delete_wrapped_fnc purple_accounts_delete_wrapped = NULL;
purple_account_get_connection_wrapped_fnc purple_account_get_connection_wrapped = NULL;
purple_account_set_alias_wrapped_fnc purple_account_set_alias_wrapped = NULL;
purple_account_set_public_alias_wrapped_fnc purple_account_set_public_alias_wrapped = NULL;
purple_account_remove_buddy_wrapped_fnc purple_account_remove_buddy_wrapped = NULL;
purple_account_add_buddy_wrapped_fnc purple_account_add_buddy_wrapped = NULL;
purple_account_get_name_for_display_wrapped_fnc purple_account_get_name_for_display_wrapped = NULL;
purple_accounts_set_ui_ops_wrapped_fnc purple_accounts_set_ui_ops_wrapped = NULL;
purple_status_type_get_id_wrapped_fnc purple_status_type_get_id_wrapped = NULL;
purple_presence_get_active_status_wrapped_fnc purple_presence_get_active_status_wrapped = NULL;
purple_status_type_get_primitive_wrapped_fnc purple_status_type_get_primitive_wrapped = NULL;
purple_status_get_type_wrapped_fnc purple_status_get_type_wrapped = NULL;
purple_status_get_attr_string_wrapped_fnc purple_status_get_attr_string_wrapped = NULL;
serv_get_info_wrapped_fnc serv_get_info_wrapped = NULL;
serv_alias_buddy_wrapped_fnc serv_alias_buddy_wrapped = NULL;
serv_send_typing_wrapped_fnc serv_send_typing_wrapped = NULL;
serv_join_chat_wrapped_fnc serv_join_chat_wrapped = NULL;
purple_dnsquery_set_ui_ops_wrapped_fnc purple_dnsquery_set_ui_ops_wrapped = NULL;
purple_certificate_add_ca_search_path_wrapped_fnc purple_certificate_add_ca_search_path_wrapped = NULL;
purple_connection_get_state_wrapped_fnc purple_connection_get_state_wrapped = NULL;
purple_connection_get_account_wrapped_fnc purple_connection_get_account_wrapped = NULL;
purple_connection_get_display_name_wrapped_fnc purple_connection_get_display_name_wrapped = NULL;
purple_connections_set_ui_ops_wrapped_fnc purple_connections_set_ui_ops_wrapped = NULL;
purple_connections_get_handle_wrapped_fnc purple_connections_get_handle_wrapped = NULL;
purple_conversation_get_im_data_wrapped_fnc purple_conversation_get_im_data_wrapped = NULL;
purple_conversation_get_chat_data_wrapped_fnc purple_conversation_get_chat_data_wrapped = NULL;
purple_find_conversation_with_account_wrapped_fnc purple_find_conversation_with_account_wrapped = NULL;
@ -119,99 +79,183 @@ purple_conversation_get_account_wrapped_fnc purple_conversation_get_account_wrap
purple_conversation_get_name_wrapped_fnc purple_conversation_get_name_wrapped = NULL;
purple_conversations_set_ui_ops_wrapped_fnc purple_conversations_set_ui_ops_wrapped = NULL;
purple_conversations_get_handle_wrapped_fnc purple_conversations_get_handle_wrapped = NULL;
purple_plugin_action_free_wrapped_fnc purple_plugin_action_free_wrapped = NULL;
purple_plugins_add_search_path_wrapped_fnc purple_plugins_add_search_path_wrapped = NULL;
purple_connection_get_state_wrapped_fnc purple_connection_get_state_wrapped = NULL;
purple_connection_get_account_wrapped_fnc purple_connection_get_account_wrapped = NULL;
purple_connection_get_display_name_wrapped_fnc purple_connection_get_display_name_wrapped = NULL;
purple_connections_set_ui_ops_wrapped_fnc purple_connections_set_ui_ops_wrapped = NULL;
purple_connections_get_handle_wrapped_fnc purple_connections_get_handle_wrapped = NULL;
purple_core_set_ui_ops_wrapped_fnc purple_core_set_ui_ops_wrapped = NULL;
purple_core_init_wrapped_fnc purple_core_init_wrapped = NULL;
purple_debug_set_ui_ops_wrapped_fnc purple_debug_set_ui_ops_wrapped = NULL;
purple_debug_set_verbose_wrapped_fnc purple_debug_set_verbose_wrapped = NULL;
purple_dnsquery_set_ui_ops_wrapped_fnc purple_dnsquery_set_ui_ops_wrapped = NULL;
purple_timeout_remove_wrapped_fnc purple_timeout_remove_wrapped = NULL;
purple_input_add_wrapped_fnc purple_input_add_wrapped = NULL;
purple_timeout_add_wrapped_fnc purple_timeout_add_wrapped = NULL;
purple_timeout_add_seconds_wrapped_fnc purple_timeout_add_seconds_wrapped = NULL;
purple_timeout_remove_wrapped_fnc purple_timeout_remove_wrapped = NULL;
purple_eventloop_set_ui_ops_wrapped_fnc purple_eventloop_set_ui_ops_wrapped = NULL;
purple_input_remove_wrapped_fnc purple_input_remove_wrapped = NULL;
purple_xfer_ui_ready_wrapped_fnc purple_xfer_ui_ready_wrapped = NULL;
purple_xfer_request_accepted_wrapped_fnc purple_xfer_request_accepted_wrapped = NULL;
purple_xfer_request_denied_wrapped_fnc purple_xfer_request_denied_wrapped = NULL;
purple_xfer_get_account_wrapped_fnc purple_xfer_get_account_wrapped = NULL;
purple_xfer_get_filename_wrapped_fnc purple_xfer_get_filename_wrapped = NULL;
purple_xfer_get_size_wrapped_fnc purple_xfer_get_size_wrapped = NULL;
purple_xfer_unref_wrapped_fnc purple_xfer_unref_wrapped = NULL;
purple_xfer_ref_wrapped_fnc purple_xfer_ref_wrapped = NULL;
purple_xfers_set_ui_ops_wrapped_fnc purple_xfers_set_ui_ops_wrapped = NULL;
purple_xfers_get_handle_wrapped_fnc purple_xfers_get_handle_wrapped = NULL;
purple_imgstore_get_data_wrapped_fnc purple_imgstore_get_data_wrapped = NULL;
purple_imgstore_get_size_wrapped_fnc purple_imgstore_get_size_wrapped = NULL;
purple_imgstore_unref_wrapped_fnc purple_imgstore_unref_wrapped = NULL;
purple_notify_user_info_new_wrapped_fnc purple_notify_user_info_new_wrapped = NULL;
purple_notify_user_info_destroy_wrapped_fnc purple_notify_user_info_destroy_wrapped = NULL;
purple_notify_user_info_get_entries_wrapped_fnc purple_notify_user_info_get_entries_wrapped = NULL;
purple_notify_user_info_entry_get_label_wrapped_fnc purple_notify_user_info_entry_get_label_wrapped = NULL;
purple_notify_user_info_entry_get_value_wrapped_fnc purple_notify_user_info_entry_get_value_wrapped = NULL;
purple_notify_set_ui_ops_wrapped_fnc purple_notify_set_ui_ops_wrapped = NULL;
purple_plugins_add_search_path_wrapped_fnc purple_plugins_add_search_path_wrapped = NULL;
purple_plugin_action_free_wrapped_fnc purple_plugin_action_free_wrapped = NULL;
purple_prefs_load_wrapped_fnc purple_prefs_load_wrapped = NULL;
purple_prefs_set_bool_wrapped_fnc purple_prefs_set_bool_wrapped = NULL;
purple_prefs_set_string_wrapped_fnc purple_prefs_set_string_wrapped = NULL;
purple_privacy_deny_wrapped_fnc purple_privacy_deny_wrapped = NULL;
purple_privacy_allow_wrapped_fnc purple_privacy_allow_wrapped = NULL;
purple_privacy_check_wrapped_fnc purple_privacy_check_wrapped = NULL;
purple_proxy_info_new_wrapped_fnc purple_proxy_info_new_wrapped = NULL;
purple_proxy_info_set_type_wrapped_fnc purple_proxy_info_set_type_wrapped = NULL;
purple_proxy_info_set_host_wrapped_fnc purple_proxy_info_set_host_wrapped = NULL;
purple_proxy_info_set_port_wrapped_fnc purple_proxy_info_set_port_wrapped = NULL;
purple_proxy_info_set_username_wrapped_fnc purple_proxy_info_set_username_wrapped = NULL;
purple_proxy_info_set_password_wrapped_fnc purple_proxy_info_set_password_wrapped = NULL;
purple_find_prpl_wrapped_fnc purple_find_prpl_wrapped = NULL;
purple_prpl_send_attention_wrapped_fnc purple_prpl_send_attention_wrapped = NULL;
purple_account_option_get_type_wrapped_fnc purple_account_option_get_type_wrapped = NULL;
purple_account_option_get_setting_wrapped_fnc purple_account_option_get_setting_wrapped = NULL;
purple_request_set_ui_ops_wrapped_fnc purple_request_set_ui_ops_wrapped = NULL;
serv_get_info_wrapped_fnc serv_get_info_wrapped = NULL;
serv_alias_buddy_wrapped_fnc serv_alias_buddy_wrapped = NULL;
serv_send_typing_wrapped_fnc serv_send_typing_wrapped = NULL;
serv_join_chat_wrapped_fnc serv_join_chat_wrapped = NULL;
purple_signal_connect_wrapped_fnc purple_signal_connect_wrapped = NULL;
purple_status_type_get_id_wrapped_fnc purple_status_type_get_id_wrapped = NULL;
purple_presence_get_active_status_wrapped_fnc purple_presence_get_active_status_wrapped = NULL;
purple_status_type_get_primitive_wrapped_fnc purple_status_type_get_primitive_wrapped = NULL;
purple_status_get_type_wrapped_fnc purple_status_get_type_wrapped = NULL;
purple_status_get_attr_string_wrapped_fnc purple_status_get_attr_string_wrapped = NULL;
purple_markup_escape_text_wrapped_fnc purple_markup_escape_text_wrapped = NULL;
purple_markup_strip_html_wrapped_fnc purple_markup_strip_html_wrapped = NULL;
purple_strdup_withhtml_wrapped_fnc purple_strdup_withhtml_wrapped = NULL;
purple_markup_html_to_xhtml_wrapped_fnc purple_markup_html_to_xhtml_wrapped = NULL;
purple_normalize_wrapped_fnc purple_normalize_wrapped = NULL;
purple_utf8_try_convert_wrapped_fnc purple_utf8_try_convert_wrapped = NULL;
purple_util_set_user_dir_wrapped_fnc purple_util_set_user_dir_wrapped = NULL;
wpurple_g_io_channel_win32_new_socket_wrapped_fnc wpurple_g_io_channel_win32_new_socket_wrapped = NULL;
#endif
bool resolvePurpleFunctions(const std::string& libPurpleDllPath) {
bool resolvePurpleFunctions() {
#if PURPLE_RUNTIME
std::wstring dllPath;
if (!libPurpleDllPath.empty())
{
dllPath = utf8ToUtf16(libPurpleDllPath);
}
else
{
// No path was specified, so try loading libpurple from the current working directory
dllPath = L"libpurple.dll";
}
f_hPurple = LoadLibrary(dllPath.c_str());
f_hPurple = LoadLibrary(L"libpurple.dll");
if (!f_hPurple)
return false;
purple_debug_set_ui_ops_wrapped = (purple_debug_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_debug_set_ui_ops");
if (!purple_debug_set_ui_ops_wrapped)
purple_account_set_bool_wrapped = (purple_account_set_bool_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_bool");
if (!purple_account_set_bool_wrapped)
return false;
purple_debug_set_verbose_wrapped = (purple_debug_set_verbose_wrapped_fnc)GetProcAddress(f_hPurple, "purple_debug_set_verbose");
if (!purple_debug_set_verbose_wrapped)
purple_account_get_protocol_id_wrapped = (purple_account_get_protocol_id_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_get_protocol_id");
if (!purple_account_get_protocol_id_wrapped)
return false;
purple_request_set_ui_ops_wrapped = (purple_request_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_request_set_ui_ops");
if (!purple_request_set_ui_ops_wrapped)
purple_account_set_int_wrapped = (purple_account_set_int_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_int");
if (!purple_account_set_int_wrapped)
return false;
purple_imgstore_get_data_wrapped = (purple_imgstore_get_data_wrapped_fnc)GetProcAddress(f_hPurple, "purple_imgstore_get_data");
if (!purple_imgstore_get_data_wrapped)
purple_account_set_string_wrapped = (purple_account_set_string_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_string");
if (!purple_account_set_string_wrapped)
return false;
purple_imgstore_get_size_wrapped = (purple_imgstore_get_size_wrapped_fnc)GetProcAddress(f_hPurple, "purple_imgstore_get_size");
if (!purple_imgstore_get_size_wrapped)
purple_account_get_username_wrapped = (purple_account_get_username_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_get_username");
if (!purple_account_get_username_wrapped)
return false;
purple_imgstore_unref_wrapped = (purple_imgstore_unref_wrapped_fnc)GetProcAddress(f_hPurple, "purple_imgstore_unref");
if (!purple_imgstore_unref_wrapped)
purple_account_set_username_wrapped = (purple_account_set_username_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_username");
if (!purple_account_set_username_wrapped)
return false;
purple_markup_escape_text_wrapped = (purple_markup_escape_text_wrapped_fnc)GetProcAddress(f_hPurple, "purple_markup_escape_text");
if (!purple_markup_escape_text_wrapped)
purple_account_set_proxy_info_wrapped = (purple_account_set_proxy_info_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_proxy_info");
if (!purple_account_set_proxy_info_wrapped)
return false;
purple_markup_strip_html_wrapped = (purple_markup_strip_html_wrapped_fnc)GetProcAddress(f_hPurple, "purple_markup_strip_html");
if (!purple_markup_strip_html_wrapped)
purple_accounts_find_wrapped = (purple_accounts_find_wrapped_fnc)GetProcAddress(f_hPurple, "purple_accounts_find");
if (!purple_accounts_find_wrapped)
return false;
purple_normalize_wrapped = (purple_normalize_wrapped_fnc)GetProcAddress(f_hPurple, "purple_normalize");
if (!purple_normalize_wrapped)
purple_account_new_wrapped = (purple_account_new_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_new");
if (!purple_account_new_wrapped)
return false;
purple_strdup_withhtml_wrapped = (purple_strdup_withhtml_wrapped_fnc)GetProcAddress(f_hPurple, "purple_strdup_withhtml");
if (!purple_strdup_withhtml_wrapped)
purple_accounts_add_wrapped = (purple_accounts_add_wrapped_fnc)GetProcAddress(f_hPurple, "purple_accounts_add");
if (!purple_accounts_add_wrapped)
return false;
purple_markup_html_to_xhtml_wrapped = (purple_markup_html_to_xhtml_wrapped_fnc)GetProcAddress(f_hPurple, "purple_markup_html_to_xhtml");
if (!purple_markup_html_to_xhtml_wrapped)
purple_account_set_password_wrapped = (purple_account_set_password_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_password");
if (!purple_account_set_password_wrapped)
return false;
purple_utf8_try_convert_wrapped = (purple_utf8_try_convert_wrapped_fnc)GetProcAddress(f_hPurple, "purple_utf8_try_convert");
if (!purple_utf8_try_convert_wrapped)
purple_account_set_enabled_wrapped = (purple_account_set_enabled_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_enabled");
if (!purple_account_set_enabled_wrapped)
return false;
purple_util_set_user_dir_wrapped = (purple_util_set_user_dir_wrapped_fnc)GetProcAddress(f_hPurple, "purple_util_set_user_dir");
if (!purple_util_set_user_dir_wrapped)
purple_account_set_privacy_type_wrapped = (purple_account_set_privacy_type_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_privacy_type");
if (!purple_account_set_privacy_type_wrapped)
return false;
purple_certificate_add_ca_search_path_wrapped = (purple_util_set_user_dir_wrapped_fnc)GetProcAddress(f_hPurple, "purple_certificate_add_ca_search_path");
if (!purple_certificate_add_ca_search_path_wrapped)
purple_account_get_status_type_with_primitive_wrapped = (purple_account_get_status_type_with_primitive_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_get_status_type_with_primitive");
if (!purple_account_get_status_type_with_primitive_wrapped)
return false;
purple_account_set_status_wrapped = (purple_account_set_status_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_status");
if (!purple_account_set_status_wrapped)
return false;
purple_account_get_int_wrapped = (purple_account_get_int_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_get_int");
if (!purple_account_get_int_wrapped)
return false;
purple_account_disconnect_wrapped = (purple_account_disconnect_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_disconnect");
if (!purple_account_disconnect_wrapped)
return false;
purple_accounts_delete_wrapped = (purple_accounts_delete_wrapped_fnc)GetProcAddress(f_hPurple, "purple_accounts_delete");
if (!purple_accounts_delete_wrapped)
return false;
purple_account_get_connection_wrapped = (purple_account_get_connection_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_get_connection");
if (!purple_account_get_connection_wrapped)
return false;
purple_account_set_alias_wrapped = (purple_account_set_alias_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_alias");
if (!purple_account_set_alias_wrapped)
return false;
purple_account_set_public_alias_wrapped = (purple_account_set_public_alias_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_public_alias");
if (!purple_account_set_public_alias_wrapped)
return false;
purple_account_remove_buddy_wrapped = (purple_account_remove_buddy_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_remove_buddy");
if (!purple_account_remove_buddy_wrapped)
return false;
purple_account_add_buddy_wrapped = (purple_account_add_buddy_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_add_buddy");
if (!purple_account_add_buddy_wrapped)
return false;
purple_account_get_name_for_display_wrapped = (purple_account_get_name_for_display_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_get_name_for_display");
if (!purple_account_get_name_for_display_wrapped)
return false;
purple_accounts_set_ui_ops_wrapped = (purple_accounts_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_accounts_set_ui_ops");
if (!purple_accounts_set_ui_ops_wrapped)
return false;
purple_account_option_get_type_wrapped = (purple_account_option_get_type_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_option_get_type");
if (!purple_account_option_get_type_wrapped)
return false;
purple_account_option_get_setting_wrapped = (purple_account_option_get_setting_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_option_get_setting");
if (!purple_account_option_get_setting_wrapped)
return false;
purple_blist_node_get_type_wrapped = (purple_blist_node_get_type_wrapped_fnc)GetProcAddress(f_hPurple, "purple_blist_node_get_type");
@ -318,86 +362,6 @@ bool resolvePurpleFunctions(const std::string& libPurpleDllPath) {
if (!purple_blist_get_handle_wrapped)
return false;
purple_xfer_ui_ready_wrapped = (purple_xfer_ui_ready_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_ui_ready");
if (!purple_xfer_ui_ready_wrapped)
return false;
purple_xfer_request_accepted_wrapped = (purple_xfer_request_accepted_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_request_accepted");
if (!purple_xfer_request_accepted_wrapped)
return false;
purple_xfer_request_denied_wrapped = (purple_xfer_request_denied_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_request_denied");
if (!purple_xfer_request_denied_wrapped)
return false;
purple_xfer_get_account_wrapped = (purple_xfer_get_account_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_get_account");
if (!purple_xfer_get_account_wrapped)
return false;
purple_xfer_get_filename_wrapped = (purple_xfer_get_filename_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_get_filename");
if (!purple_xfer_get_filename_wrapped)
return false;
purple_xfer_get_size_wrapped = (purple_xfer_get_size_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_get_size");
if (!purple_xfer_get_size_wrapped)
return false;
purple_xfer_unref_wrapped = (purple_xfer_unref_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_unref");
if (!purple_xfer_unref_wrapped)
return false;
purple_xfer_ref_wrapped = (purple_xfer_ref_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_ref");
if (!purple_xfer_ref_wrapped)
return false;
purple_xfers_set_ui_ops_wrapped = (purple_xfers_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfers_set_ui_ops");
if (!purple_xfers_set_ui_ops_wrapped)
return false;
purple_xfers_get_handle_wrapped = (purple_xfers_get_handle_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfers_get_handle");
if (!purple_xfers_get_handle_wrapped)
return false;
purple_signal_connect_wrapped = (purple_signal_connect_wrapped_fnc)GetProcAddress(f_hPurple, "purple_signal_connect");
if (!purple_signal_connect_wrapped)
return false;
purple_prefs_load_wrapped = (purple_prefs_load_wrapped_fnc)GetProcAddress(f_hPurple, "purple_prefs_load");
if (!purple_prefs_load_wrapped)
return false;
purple_prefs_set_bool_wrapped = (purple_prefs_set_bool_wrapped_fnc)GetProcAddress(f_hPurple, "purple_prefs_set_bool");
if (!purple_prefs_set_bool_wrapped)
return false;
purple_prefs_set_string_wrapped = (purple_prefs_set_string_wrapped_fnc)GetProcAddress(f_hPurple, "purple_prefs_set_string");
if (!purple_prefs_set_string_wrapped)
return false;
purple_notify_user_info_new_wrapped = (purple_notify_user_info_new_wrapped_fnc)GetProcAddress(f_hPurple, "purple_notify_user_info_new");
if (!purple_notify_user_info_new_wrapped)
return false;
purple_notify_user_info_destroy_wrapped = (purple_notify_user_info_destroy_wrapped_fnc)GetProcAddress(f_hPurple, "purple_notify_user_info_destroy");
if (!purple_notify_user_info_destroy_wrapped)
return false;
purple_notify_user_info_get_entries_wrapped = (purple_notify_user_info_get_entries_wrapped_fnc)GetProcAddress(f_hPurple, "purple_notify_user_info_get_entries");
if (!purple_notify_user_info_get_entries_wrapped)
return false;
purple_notify_user_info_entry_get_label_wrapped = (purple_notify_user_info_entry_get_label_wrapped_fnc)GetProcAddress(f_hPurple, "purple_notify_user_info_entry_get_label");
if (!purple_notify_user_info_entry_get_label_wrapped)
return false;
purple_notify_user_info_entry_get_value_wrapped = (purple_notify_user_info_entry_get_value_wrapped_fnc)GetProcAddress(f_hPurple, "purple_notify_user_info_entry_get_value");
if (!purple_notify_user_info_entry_get_value_wrapped)
return false;
purple_notify_set_ui_ops_wrapped = (purple_notify_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_notify_set_ui_ops");
if (!purple_notify_set_ui_ops_wrapped)
return false;
purple_buddy_icons_set_account_icon_wrapped = (purple_buddy_icons_set_account_icon_wrapped_fnc)GetProcAddress(f_hPurple, "purple_buddy_icons_set_account_icon");
if (!purple_buddy_icons_set_account_icon_wrapped)
return false;
@ -422,140 +386,28 @@ bool resolvePurpleFunctions(const std::string& libPurpleDllPath) {
if (!purple_buddy_icon_get_data_wrapped)
return false;
purple_account_set_bool_wrapped = (purple_account_set_bool_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_bool");
if (!purple_account_set_bool_wrapped)
purple_certificate_add_ca_search_path_wrapped = (purple_certificate_add_ca_search_path_wrapped_fnc)GetProcAddress(f_hPurple, "purple_certificate_add_ca_search_path");
if (!purple_certificate_add_ca_search_path_wrapped)
return false;
purple_account_get_protocol_id_wrapped = (purple_account_get_protocol_id_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_get_protocol_id");
if (!purple_account_get_protocol_id_wrapped)
purple_connection_get_state_wrapped = (purple_connection_get_state_wrapped_fnc)GetProcAddress(f_hPurple, "purple_connection_get_state");
if (!purple_connection_get_state_wrapped)
return false;
purple_account_set_int_wrapped = (purple_account_set_int_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_int");
if (!purple_account_set_int_wrapped)
purple_connection_get_account_wrapped = (purple_connection_get_account_wrapped_fnc)GetProcAddress(f_hPurple, "purple_connection_get_account");
if (!purple_connection_get_account_wrapped)
return false;
purple_account_set_string_wrapped = (purple_account_set_string_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_string");
if (!purple_account_set_string_wrapped)
purple_connection_get_display_name_wrapped = (purple_connection_get_display_name_wrapped_fnc)GetProcAddress(f_hPurple, "purple_connection_get_display_name");
if (!purple_connection_get_display_name_wrapped)
return false;
purple_account_get_username_wrapped = (purple_account_get_username_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_get_username");
if (!purple_account_get_username_wrapped)
purple_connections_set_ui_ops_wrapped = (purple_connections_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_connections_set_ui_ops");
if (!purple_connections_set_ui_ops_wrapped)
return false;
purple_account_set_username_wrapped = (purple_account_set_username_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_username");
if (!purple_account_set_username_wrapped)
return false;
purple_accounts_find_wrapped = (purple_accounts_find_wrapped_fnc)GetProcAddress(f_hPurple, "purple_accounts_find");
if (!purple_accounts_find_wrapped)
return false;
purple_account_new_wrapped = (purple_account_new_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_new");
if (!purple_account_new_wrapped)
return false;
purple_accounts_add_wrapped = (purple_accounts_add_wrapped_fnc)GetProcAddress(f_hPurple, "purple_accounts_add");
if (!purple_accounts_add_wrapped)
return false;
purple_account_set_password_wrapped = (purple_account_set_password_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_password");
if (!purple_account_set_password_wrapped)
return false;
purple_account_set_enabled_wrapped = (purple_account_set_enabled_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_enabled");
if (!purple_account_set_enabled_wrapped)
return false;
purple_account_set_privacy_type_wrapped = (purple_account_set_privacy_type_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_privacy_type");
if (!purple_account_set_privacy_type_wrapped)
return false;
purple_account_get_status_type_with_primitive_wrapped = (purple_account_get_status_type_with_primitive_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_get_status_type_with_primitive");
if (!purple_account_get_status_type_with_primitive_wrapped)
return false;
purple_account_set_status_wrapped = (purple_account_set_status_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_status");
if (!purple_account_set_status_wrapped)
return false;
purple_account_get_int_wrapped = (purple_account_get_int_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_get_int");
if (!purple_account_get_int_wrapped)
return false;
purple_account_disconnect_wrapped = (purple_account_disconnect_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_disconnect");
if (!purple_account_disconnect_wrapped)
return false;
purple_accounts_delete_wrapped = (purple_accounts_delete_wrapped_fnc)GetProcAddress(f_hPurple, "purple_accounts_delete");
if (!purple_accounts_delete_wrapped)
return false;
purple_account_get_connection_wrapped = (purple_account_get_connection_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_get_connection");
if (!purple_account_get_connection_wrapped)
return false;
purple_account_set_alias_wrapped = (purple_account_set_alias_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_alias");
if (!purple_account_set_alias_wrapped)
return false;
purple_account_set_public_alias_wrapped = (purple_account_set_public_alias_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_set_public_alias");
if (!purple_account_set_public_alias_wrapped)
return false;
purple_account_remove_buddy_wrapped = (purple_account_remove_buddy_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_remove_buddy");
if (!purple_account_remove_buddy_wrapped)
return false;
purple_account_add_buddy_wrapped = (purple_account_add_buddy_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_add_buddy");
if (!purple_account_add_buddy_wrapped)
return false;
purple_account_get_name_for_display_wrapped = (purple_account_get_name_for_display_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_get_name_for_display");
if (!purple_account_get_name_for_display_wrapped)
return false;
purple_accounts_set_ui_ops_wrapped = (purple_accounts_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_accounts_set_ui_ops");
if (!purple_accounts_set_ui_ops_wrapped)
return false;
purple_status_type_get_id_wrapped = (purple_status_type_get_id_wrapped_fnc)GetProcAddress(f_hPurple, "purple_status_type_get_id");
if (!purple_status_type_get_id_wrapped)
return false;
purple_presence_get_active_status_wrapped = (purple_presence_get_active_status_wrapped_fnc)GetProcAddress(f_hPurple, "purple_presence_get_active_status");
if (!purple_presence_get_active_status_wrapped)
return false;
purple_status_type_get_primitive_wrapped = (purple_status_type_get_primitive_wrapped_fnc)GetProcAddress(f_hPurple, "purple_status_type_get_primitive");
if (!purple_status_type_get_primitive_wrapped)
return false;
purple_status_get_type_wrapped = (purple_status_get_type_wrapped_fnc)GetProcAddress(f_hPurple, "purple_status_get_type");
if (!purple_status_get_type_wrapped)
return false;
purple_status_get_attr_string_wrapped = (purple_status_get_attr_string_wrapped_fnc)GetProcAddress(f_hPurple, "purple_status_get_attr_string");
if (!purple_status_get_attr_string_wrapped)
return false;
serv_get_info_wrapped = (serv_get_info_wrapped_fnc)GetProcAddress(f_hPurple, "serv_get_info");
if (!serv_get_info_wrapped)
return false;
serv_alias_buddy_wrapped = (serv_alias_buddy_wrapped_fnc)GetProcAddress(f_hPurple, "serv_alias_buddy");
if (!serv_alias_buddy_wrapped)
return false;
serv_send_typing_wrapped = (serv_send_typing_wrapped_fnc)GetProcAddress(f_hPurple, "serv_send_typing");
if (!serv_send_typing_wrapped)
return false;
serv_join_chat_wrapped = (serv_join_chat_wrapped_fnc)GetProcAddress(f_hPurple, "serv_join_chat");
if (!serv_join_chat_wrapped)
return false;
purple_dnsquery_set_ui_ops_wrapped = (purple_dnsquery_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_dnsquery_set_ui_ops");
if (!purple_dnsquery_set_ui_ops_wrapped)
purple_connections_get_handle_wrapped = (purple_connections_get_handle_wrapped_fnc)GetProcAddress(f_hPurple, "purple_connections_get_handle");
if (!purple_connections_get_handle_wrapped)
return false;
purple_conversation_get_im_data_wrapped = (purple_conversation_get_im_data_wrapped_fnc)GetProcAddress(f_hPurple, "purple_conversation_get_im_data");
@ -606,34 +458,6 @@ bool resolvePurpleFunctions(const std::string& libPurpleDllPath) {
if (!purple_conversations_get_handle_wrapped)
return false;
purple_plugin_action_free_wrapped = (purple_plugin_action_free_wrapped_fnc)GetProcAddress(f_hPurple, "purple_plugin_action_free");
if (!purple_plugin_action_free_wrapped)
return false;
purple_plugins_add_search_path_wrapped = (purple_plugins_add_search_path_wrapped_fnc)GetProcAddress(f_hPurple, "purple_plugins_add_search_path");
if (!purple_plugins_add_search_path_wrapped)
return false;
purple_connection_get_state_wrapped = (purple_connection_get_state_wrapped_fnc)GetProcAddress(f_hPurple, "purple_connection_get_state");
if (!purple_connection_get_state_wrapped)
return false;
purple_connection_get_account_wrapped = (purple_connection_get_account_wrapped_fnc)GetProcAddress(f_hPurple, "purple_connection_get_account");
if (!purple_connection_get_account_wrapped)
return false;
purple_connection_get_display_name_wrapped = (purple_connection_get_display_name_wrapped_fnc)GetProcAddress(f_hPurple, "purple_connection_get_display_name");
if (!purple_connection_get_display_name_wrapped)
return false;
purple_connections_set_ui_ops_wrapped = (purple_connections_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_connections_set_ui_ops");
if (!purple_connections_set_ui_ops_wrapped)
return false;
purple_connections_get_handle_wrapped = (purple_connections_get_handle_wrapped_fnc)GetProcAddress(f_hPurple, "purple_connections_get_handle");
if (!purple_connections_get_handle_wrapped)
return false;
purple_core_set_ui_ops_wrapped = (purple_core_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_core_set_ui_ops");
if (!purple_core_set_ui_ops_wrapped)
return false;
@ -642,6 +466,22 @@ bool resolvePurpleFunctions(const std::string& libPurpleDllPath) {
if (!purple_core_init_wrapped)
return false;
purple_debug_set_ui_ops_wrapped = (purple_debug_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_debug_set_ui_ops");
if (!purple_debug_set_ui_ops_wrapped)
return false;
purple_debug_set_verbose_wrapped = (purple_debug_set_verbose_wrapped_fnc)GetProcAddress(f_hPurple, "purple_debug_set_verbose");
if (!purple_debug_set_verbose_wrapped)
return false;
purple_dnsquery_set_ui_ops_wrapped = (purple_dnsquery_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_dnsquery_set_ui_ops");
if (!purple_dnsquery_set_ui_ops_wrapped)
return false;
purple_timeout_remove_wrapped = (purple_timeout_remove_wrapped_fnc)GetProcAddress(f_hPurple, "purple_timeout_remove");
if (!purple_timeout_remove_wrapped)
return false;
purple_input_add_wrapped = (purple_input_add_wrapped_fnc)GetProcAddress(f_hPurple, "purple_input_add");
if (!purple_input_add_wrapped)
return false;
@ -654,10 +494,6 @@ bool resolvePurpleFunctions(const std::string& libPurpleDllPath) {
if (!purple_timeout_add_seconds_wrapped)
return false;
purple_timeout_remove_wrapped = (purple_timeout_remove_wrapped_fnc)GetProcAddress(f_hPurple, "purple_timeout_remove");
if (!purple_timeout_remove_wrapped)
return false;
purple_eventloop_set_ui_ops_wrapped = (purple_eventloop_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_eventloop_set_ui_ops");
if (!purple_eventloop_set_ui_ops_wrapped)
return false;
@ -666,6 +502,102 @@ bool resolvePurpleFunctions(const std::string& libPurpleDllPath) {
if (!purple_input_remove_wrapped)
return false;
purple_xfer_ui_ready_wrapped = (purple_xfer_ui_ready_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_ui_ready");
if (!purple_xfer_ui_ready_wrapped)
return false;
purple_xfer_request_accepted_wrapped = (purple_xfer_request_accepted_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_request_accepted");
if (!purple_xfer_request_accepted_wrapped)
return false;
purple_xfer_request_denied_wrapped = (purple_xfer_request_denied_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_request_denied");
if (!purple_xfer_request_denied_wrapped)
return false;
purple_xfer_get_account_wrapped = (purple_xfer_get_account_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_get_account");
if (!purple_xfer_get_account_wrapped)
return false;
purple_xfer_get_filename_wrapped = (purple_xfer_get_filename_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_get_filename");
if (!purple_xfer_get_filename_wrapped)
return false;
purple_xfer_get_size_wrapped = (purple_xfer_get_size_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_get_size");
if (!purple_xfer_get_size_wrapped)
return false;
purple_xfer_unref_wrapped = (purple_xfer_unref_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_unref");
if (!purple_xfer_unref_wrapped)
return false;
purple_xfer_ref_wrapped = (purple_xfer_ref_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfer_ref");
if (!purple_xfer_ref_wrapped)
return false;
purple_xfers_set_ui_ops_wrapped = (purple_xfers_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfers_set_ui_ops");
if (!purple_xfers_set_ui_ops_wrapped)
return false;
purple_xfers_get_handle_wrapped = (purple_xfers_get_handle_wrapped_fnc)GetProcAddress(f_hPurple, "purple_xfers_get_handle");
if (!purple_xfers_get_handle_wrapped)
return false;
purple_imgstore_get_data_wrapped = (purple_imgstore_get_data_wrapped_fnc)GetProcAddress(f_hPurple, "purple_imgstore_get_data");
if (!purple_imgstore_get_data_wrapped)
return false;
purple_imgstore_get_size_wrapped = (purple_imgstore_get_size_wrapped_fnc)GetProcAddress(f_hPurple, "purple_imgstore_get_size");
if (!purple_imgstore_get_size_wrapped)
return false;
purple_imgstore_unref_wrapped = (purple_imgstore_unref_wrapped_fnc)GetProcAddress(f_hPurple, "purple_imgstore_unref");
if (!purple_imgstore_unref_wrapped)
return false;
purple_notify_user_info_new_wrapped = (purple_notify_user_info_new_wrapped_fnc)GetProcAddress(f_hPurple, "purple_notify_user_info_new");
if (!purple_notify_user_info_new_wrapped)
return false;
purple_notify_user_info_destroy_wrapped = (purple_notify_user_info_destroy_wrapped_fnc)GetProcAddress(f_hPurple, "purple_notify_user_info_destroy");
if (!purple_notify_user_info_destroy_wrapped)
return false;
purple_notify_user_info_get_entries_wrapped = (purple_notify_user_info_get_entries_wrapped_fnc)GetProcAddress(f_hPurple, "purple_notify_user_info_get_entries");
if (!purple_notify_user_info_get_entries_wrapped)
return false;
purple_notify_user_info_entry_get_label_wrapped = (purple_notify_user_info_entry_get_label_wrapped_fnc)GetProcAddress(f_hPurple, "purple_notify_user_info_entry_get_label");
if (!purple_notify_user_info_entry_get_label_wrapped)
return false;
purple_notify_user_info_entry_get_value_wrapped = (purple_notify_user_info_entry_get_value_wrapped_fnc)GetProcAddress(f_hPurple, "purple_notify_user_info_entry_get_value");
if (!purple_notify_user_info_entry_get_value_wrapped)
return false;
purple_notify_set_ui_ops_wrapped = (purple_notify_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_notify_set_ui_ops");
if (!purple_notify_set_ui_ops_wrapped)
return false;
purple_plugins_add_search_path_wrapped = (purple_plugins_add_search_path_wrapped_fnc)GetProcAddress(f_hPurple, "purple_plugins_add_search_path");
if (!purple_plugins_add_search_path_wrapped)
return false;
purple_plugin_action_free_wrapped = (purple_plugin_action_free_wrapped_fnc)GetProcAddress(f_hPurple, "purple_plugin_action_free");
if (!purple_plugin_action_free_wrapped)
return false;
purple_prefs_load_wrapped = (purple_prefs_load_wrapped_fnc)GetProcAddress(f_hPurple, "purple_prefs_load");
if (!purple_prefs_load_wrapped)
return false;
purple_prefs_set_bool_wrapped = (purple_prefs_set_bool_wrapped_fnc)GetProcAddress(f_hPurple, "purple_prefs_set_bool");
if (!purple_prefs_set_bool_wrapped)
return false;
purple_prefs_set_string_wrapped = (purple_prefs_set_string_wrapped_fnc)GetProcAddress(f_hPurple, "purple_prefs_set_string");
if (!purple_prefs_set_string_wrapped)
return false;
purple_privacy_deny_wrapped = (purple_privacy_deny_wrapped_fnc)GetProcAddress(f_hPurple, "purple_privacy_deny");
if (!purple_privacy_deny_wrapped)
return false;
@ -678,6 +610,30 @@ bool resolvePurpleFunctions(const std::string& libPurpleDllPath) {
if (!purple_privacy_check_wrapped)
return false;
purple_proxy_info_new_wrapped = (purple_proxy_info_new_wrapped_fnc)GetProcAddress(f_hPurple, "purple_proxy_info_new");
if (!purple_proxy_info_new_wrapped)
return false;
purple_proxy_info_set_type_wrapped = (purple_proxy_info_set_type_wrapped_fnc)GetProcAddress(f_hPurple, "purple_proxy_info_set_type");
if (!purple_proxy_info_set_type_wrapped)
return false;
purple_proxy_info_set_host_wrapped = (purple_proxy_info_set_host_wrapped_fnc)GetProcAddress(f_hPurple, "purple_proxy_info_set_host");
if (!purple_proxy_info_set_host_wrapped)
return false;
purple_proxy_info_set_port_wrapped = (purple_proxy_info_set_port_wrapped_fnc)GetProcAddress(f_hPurple, "purple_proxy_info_set_port");
if (!purple_proxy_info_set_port_wrapped)
return false;
purple_proxy_info_set_username_wrapped = (purple_proxy_info_set_username_wrapped_fnc)GetProcAddress(f_hPurple, "purple_proxy_info_set_username");
if (!purple_proxy_info_set_username_wrapped)
return false;
purple_proxy_info_set_password_wrapped = (purple_proxy_info_set_password_wrapped_fnc)GetProcAddress(f_hPurple, "purple_proxy_info_set_password");
if (!purple_proxy_info_set_password_wrapped)
return false;
purple_find_prpl_wrapped = (purple_find_prpl_wrapped_fnc)GetProcAddress(f_hPurple, "purple_find_prpl");
if (!purple_find_prpl_wrapped)
return false;
@ -686,12 +642,76 @@ bool resolvePurpleFunctions(const std::string& libPurpleDllPath) {
if (!purple_prpl_send_attention_wrapped)
return false;
purple_account_option_get_type_wrapped = (purple_account_option_get_type_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_option_get_type");
if (!purple_account_option_get_type_wrapped)
purple_request_set_ui_ops_wrapped = (purple_request_set_ui_ops_wrapped_fnc)GetProcAddress(f_hPurple, "purple_request_set_ui_ops");
if (!purple_request_set_ui_ops_wrapped)
return false;
purple_account_option_get_setting_wrapped = (purple_account_option_get_setting_wrapped_fnc)GetProcAddress(f_hPurple, "purple_account_option_get_setting");
if (!purple_account_option_get_setting_wrapped)
serv_get_info_wrapped = (serv_get_info_wrapped_fnc)GetProcAddress(f_hPurple, "serv_get_info");
if (!serv_get_info_wrapped)
return false;
serv_alias_buddy_wrapped = (serv_alias_buddy_wrapped_fnc)GetProcAddress(f_hPurple, "serv_alias_buddy");
if (!serv_alias_buddy_wrapped)
return false;
serv_send_typing_wrapped = (serv_send_typing_wrapped_fnc)GetProcAddress(f_hPurple, "serv_send_typing");
if (!serv_send_typing_wrapped)
return false;
serv_join_chat_wrapped = (serv_join_chat_wrapped_fnc)GetProcAddress(f_hPurple, "serv_join_chat");
if (!serv_join_chat_wrapped)
return false;
purple_signal_connect_wrapped = (purple_signal_connect_wrapped_fnc)GetProcAddress(f_hPurple, "purple_signal_connect");
if (!purple_signal_connect_wrapped)
return false;
purple_status_type_get_id_wrapped = (purple_status_type_get_id_wrapped_fnc)GetProcAddress(f_hPurple, "purple_status_type_get_id");
if (!purple_status_type_get_id_wrapped)
return false;
purple_presence_get_active_status_wrapped = (purple_presence_get_active_status_wrapped_fnc)GetProcAddress(f_hPurple, "purple_presence_get_active_status");
if (!purple_presence_get_active_status_wrapped)
return false;
purple_status_type_get_primitive_wrapped = (purple_status_type_get_primitive_wrapped_fnc)GetProcAddress(f_hPurple, "purple_status_type_get_primitive");
if (!purple_status_type_get_primitive_wrapped)
return false;
purple_status_get_type_wrapped = (purple_status_get_type_wrapped_fnc)GetProcAddress(f_hPurple, "purple_status_get_type");
if (!purple_status_get_type_wrapped)
return false;
purple_status_get_attr_string_wrapped = (purple_status_get_attr_string_wrapped_fnc)GetProcAddress(f_hPurple, "purple_status_get_attr_string");
if (!purple_status_get_attr_string_wrapped)
return false;
purple_markup_escape_text_wrapped = (purple_markup_escape_text_wrapped_fnc)GetProcAddress(f_hPurple, "purple_markup_escape_text");
if (!purple_markup_escape_text_wrapped)
return false;
purple_markup_strip_html_wrapped = (purple_markup_strip_html_wrapped_fnc)GetProcAddress(f_hPurple, "purple_markup_strip_html");
if (!purple_markup_strip_html_wrapped)
return false;
purple_strdup_withhtml_wrapped = (purple_strdup_withhtml_wrapped_fnc)GetProcAddress(f_hPurple, "purple_strdup_withhtml");
if (!purple_strdup_withhtml_wrapped)
return false;
purple_markup_html_to_xhtml_wrapped = (purple_markup_html_to_xhtml_wrapped_fnc)GetProcAddress(f_hPurple, "purple_markup_html_to_xhtml");
if (!purple_markup_html_to_xhtml_wrapped)
return false;
purple_normalize_wrapped = (purple_normalize_wrapped_fnc)GetProcAddress(f_hPurple, "purple_normalize");
if (!purple_normalize_wrapped)
return false;
purple_utf8_try_convert_wrapped = (purple_utf8_try_convert_wrapped_fnc)GetProcAddress(f_hPurple, "purple_utf8_try_convert");
if (!purple_utf8_try_convert_wrapped)
return false;
purple_util_set_user_dir_wrapped = (purple_util_set_user_dir_wrapped_fnc)GetProcAddress(f_hPurple, "purple_util_set_user_dir");
if (!purple_util_set_user_dir_wrapped)
return false;
wpurple_g_io_channel_win32_new_socket_wrapped = (wpurple_g_io_channel_win32_new_socket_wrapped_fnc)GetProcAddress(f_hPurple, "wpurple_g_io_channel_win32_new_socket");

View file

@ -1,6 +1,4 @@
#pragma once
#include <string>
#if PURPLE_RUNTIME
#include <Windows.h>
@ -16,44 +14,86 @@
#define PURPLE_CONNECTION_IS_CONNECTED_WRAPPED(gc) (purple_connection_get_state_wrapped(gc) == PURPLE_CONNECTED)
typedef void (_cdecl * purple_debug_set_ui_ops_wrapped_fnc)(PurpleDebugUiOps *ops);
extern purple_debug_set_ui_ops_wrapped_fnc purple_debug_set_ui_ops_wrapped;
typedef void (_cdecl * purple_account_set_bool_wrapped_fnc)(PurpleAccount *account, const char *name, gboolean value);
extern purple_account_set_bool_wrapped_fnc purple_account_set_bool_wrapped;
typedef void (_cdecl * purple_debug_set_verbose_wrapped_fnc)(gboolean verbose);
extern purple_debug_set_verbose_wrapped_fnc purple_debug_set_verbose_wrapped;
typedef const char * (_cdecl * purple_account_get_protocol_id_wrapped_fnc)(const PurpleAccount *account);
extern purple_account_get_protocol_id_wrapped_fnc purple_account_get_protocol_id_wrapped;
typedef void (_cdecl * purple_request_set_ui_ops_wrapped_fnc)(PurpleRequestUiOps *ops);
extern purple_request_set_ui_ops_wrapped_fnc purple_request_set_ui_ops_wrapped;
typedef void (_cdecl * purple_account_set_int_wrapped_fnc)(PurpleAccount *account, const char *name, int value);
extern purple_account_set_int_wrapped_fnc purple_account_set_int_wrapped;
typedef gconstpointer (_cdecl * purple_imgstore_get_data_wrapped_fnc)(PurpleStoredImage *img);
extern purple_imgstore_get_data_wrapped_fnc purple_imgstore_get_data_wrapped;
typedef void (_cdecl * purple_account_set_string_wrapped_fnc)(PurpleAccount *account, const char *name, const char *value);
extern purple_account_set_string_wrapped_fnc purple_account_set_string_wrapped;
typedef size_t (_cdecl * purple_imgstore_get_size_wrapped_fnc)(PurpleStoredImage *img);
extern purple_imgstore_get_size_wrapped_fnc purple_imgstore_get_size_wrapped;
typedef const char * (_cdecl * purple_account_get_username_wrapped_fnc)(const PurpleAccount *account);
extern purple_account_get_username_wrapped_fnc purple_account_get_username_wrapped;
typedef PurpleStoredImage * (_cdecl * purple_imgstore_unref_wrapped_fnc)(PurpleStoredImage *img);
extern purple_imgstore_unref_wrapped_fnc purple_imgstore_unref_wrapped;
typedef void (_cdecl * purple_account_set_username_wrapped_fnc)(PurpleAccount *account, const char *username);
extern purple_account_set_username_wrapped_fnc purple_account_set_username_wrapped;
typedef gchar * (_cdecl * purple_markup_escape_text_wrapped_fnc)(const gchar *text, gssize length);
extern purple_markup_escape_text_wrapped_fnc purple_markup_escape_text_wrapped;
typedef void (_cdecl * purple_account_set_proxy_info_wrapped_fnc)(PurpleAccount *account, PurpleProxyInfo *info);
extern purple_account_set_proxy_info_wrapped_fnc purple_account_set_proxy_info_wrapped;
typedef char * (_cdecl * purple_markup_strip_html_wrapped_fnc)(const char *str);
extern purple_markup_strip_html_wrapped_fnc purple_markup_strip_html_wrapped;
typedef PurpleAccount * (_cdecl * purple_accounts_find_wrapped_fnc)(const char *name, const char *protocol);
extern purple_accounts_find_wrapped_fnc purple_accounts_find_wrapped;
typedef const char * (_cdecl * purple_normalize_wrapped_fnc)(const PurpleAccount *account, const char *str);
extern purple_normalize_wrapped_fnc purple_normalize_wrapped;
typedef PurpleAccount * (_cdecl * purple_account_new_wrapped_fnc)(const char *username, const char *protocol_id);
extern purple_account_new_wrapped_fnc purple_account_new_wrapped;
typedef gchar * (_cdecl * purple_strdup_withhtml_wrapped_fnc)(const gchar *src);
extern purple_strdup_withhtml_wrapped_fnc purple_strdup_withhtml_wrapped;
typedef void (_cdecl * purple_accounts_add_wrapped_fnc)(PurpleAccount *account);
extern purple_accounts_add_wrapped_fnc purple_accounts_add_wrapped;
typedef void (_cdecl * purple_markup_html_to_xhtml_wrapped_fnc)(const char *html, char **dest_xhtml, char **dest_plain);
extern purple_markup_html_to_xhtml_wrapped_fnc purple_markup_html_to_xhtml_wrapped;
typedef void (_cdecl * purple_account_set_password_wrapped_fnc)(PurpleAccount *account, const char *password);
extern purple_account_set_password_wrapped_fnc purple_account_set_password_wrapped;
typedef gchar * (_cdecl * purple_utf8_try_convert_wrapped_fnc)(const char *str);
extern purple_utf8_try_convert_wrapped_fnc purple_utf8_try_convert_wrapped;
typedef void (_cdecl * purple_account_set_enabled_wrapped_fnc)(PurpleAccount *account, const char *ui, gboolean value);
extern purple_account_set_enabled_wrapped_fnc purple_account_set_enabled_wrapped;
typedef void (_cdecl * purple_util_set_user_dir_wrapped_fnc)(const char *dir);
extern purple_util_set_user_dir_wrapped_fnc purple_util_set_user_dir_wrapped;
typedef void (_cdecl * purple_account_set_privacy_type_wrapped_fnc)(PurpleAccount *account, PurplePrivacyType privacy_type);
extern purple_account_set_privacy_type_wrapped_fnc purple_account_set_privacy_type_wrapped;
typedef PurpleStatusType * (_cdecl * purple_account_get_status_type_with_primitive_wrapped_fnc)( const PurpleAccount *account, PurpleStatusPrimitive primitive);
extern purple_account_get_status_type_with_primitive_wrapped_fnc purple_account_get_status_type_with_primitive_wrapped;
typedef void (_cdecl * purple_account_set_status_wrapped_fnc)(PurpleAccount *account, const char *status_id, gboolean active, ...);
extern purple_account_set_status_wrapped_fnc purple_account_set_status_wrapped;
typedef int (_cdecl * purple_account_get_int_wrapped_fnc)(const PurpleAccount *account, const char *name, int default_value);
extern purple_account_get_int_wrapped_fnc purple_account_get_int_wrapped;
typedef void (_cdecl * purple_account_disconnect_wrapped_fnc)(PurpleAccount *account);
extern purple_account_disconnect_wrapped_fnc purple_account_disconnect_wrapped;
typedef void (_cdecl * purple_accounts_delete_wrapped_fnc)(PurpleAccount *account);
extern purple_accounts_delete_wrapped_fnc purple_accounts_delete_wrapped;
typedef PurpleConnection * (_cdecl * purple_account_get_connection_wrapped_fnc)(const PurpleAccount *account);
extern purple_account_get_connection_wrapped_fnc purple_account_get_connection_wrapped;
typedef void (_cdecl * purple_account_set_alias_wrapped_fnc)(PurpleAccount *account, const char *alias);
extern purple_account_set_alias_wrapped_fnc purple_account_set_alias_wrapped;
typedef void (_cdecl * purple_account_set_public_alias_wrapped_fnc)(PurpleAccount *account, const char *alias, PurpleSetPublicAliasSuccessCallback success_cb, PurpleSetPublicAliasFailureCallback failure_cb);
extern purple_account_set_public_alias_wrapped_fnc purple_account_set_public_alias_wrapped;
typedef void (_cdecl * purple_account_remove_buddy_wrapped_fnc)(PurpleAccount *account, PurpleBuddy *buddy, PurpleGroup *group);
extern purple_account_remove_buddy_wrapped_fnc purple_account_remove_buddy_wrapped;
typedef void (_cdecl * purple_account_add_buddy_wrapped_fnc)(PurpleAccount *account, PurpleBuddy *buddy);
extern purple_account_add_buddy_wrapped_fnc purple_account_add_buddy_wrapped;
typedef const gchar * (_cdecl * purple_account_get_name_for_display_wrapped_fnc)(const PurpleAccount *account);
extern purple_account_get_name_for_display_wrapped_fnc purple_account_get_name_for_display_wrapped;
typedef void (_cdecl * purple_accounts_set_ui_ops_wrapped_fnc)(PurpleAccountUiOps *ops);
extern purple_accounts_set_ui_ops_wrapped_fnc purple_accounts_set_ui_ops_wrapped;
typedef PurplePrefType (_cdecl * purple_account_option_get_type_wrapped_fnc)(const PurpleAccountOption *option);
extern purple_account_option_get_type_wrapped_fnc purple_account_option_get_type_wrapped;
typedef const char * (_cdecl * purple_account_option_get_setting_wrapped_fnc)(const PurpleAccountOption *option);
extern purple_account_option_get_setting_wrapped_fnc purple_account_option_get_setting_wrapped;
typedef PurpleBlistNodeType (_cdecl * purple_blist_node_get_type_wrapped_fnc)(PurpleBlistNode *node);
extern purple_blist_node_get_type_wrapped_fnc purple_blist_node_get_type_wrapped;
@ -133,66 +173,6 @@ extern purple_blist_load_wrapped_fnc purple_blist_load_wrapped;
typedef void * (_cdecl * purple_blist_get_handle_wrapped_fnc)(void);
extern purple_blist_get_handle_wrapped_fnc purple_blist_get_handle_wrapped;
typedef void (_cdecl * purple_xfer_ui_ready_wrapped_fnc)(PurpleXfer *xfer);
extern purple_xfer_ui_ready_wrapped_fnc purple_xfer_ui_ready_wrapped;
typedef void (_cdecl * purple_xfer_request_accepted_wrapped_fnc)(PurpleXfer *xfer, const char *filename);
extern purple_xfer_request_accepted_wrapped_fnc purple_xfer_request_accepted_wrapped;
typedef void (_cdecl * purple_xfer_request_denied_wrapped_fnc)(PurpleXfer *xfer);
extern purple_xfer_request_denied_wrapped_fnc purple_xfer_request_denied_wrapped;
typedef PurpleAccount * (_cdecl * purple_xfer_get_account_wrapped_fnc)(const PurpleXfer *xfer);
extern purple_xfer_get_account_wrapped_fnc purple_xfer_get_account_wrapped;
typedef const char * (_cdecl * purple_xfer_get_filename_wrapped_fnc)(const PurpleXfer *xfer);
extern purple_xfer_get_filename_wrapped_fnc purple_xfer_get_filename_wrapped;
typedef size_t (_cdecl * purple_xfer_get_size_wrapped_fnc)(const PurpleXfer *xfer);
extern purple_xfer_get_size_wrapped_fnc purple_xfer_get_size_wrapped;
typedef void (_cdecl * purple_xfer_unref_wrapped_fnc)(PurpleXfer *xfer);
extern purple_xfer_unref_wrapped_fnc purple_xfer_unref_wrapped;
typedef void (_cdecl * purple_xfer_ref_wrapped_fnc)(PurpleXfer *xfer);
extern purple_xfer_ref_wrapped_fnc purple_xfer_ref_wrapped;
typedef void (_cdecl * purple_xfers_set_ui_ops_wrapped_fnc)(PurpleXferUiOps *ops);
extern purple_xfers_set_ui_ops_wrapped_fnc purple_xfers_set_ui_ops_wrapped;
typedef void * (_cdecl * purple_xfers_get_handle_wrapped_fnc)(void);
extern purple_xfers_get_handle_wrapped_fnc purple_xfers_get_handle_wrapped;
typedef gulong (_cdecl * purple_signal_connect_wrapped_fnc)(void *instance, const char *signal, void *handle, PurpleCallback func, void *data);
extern purple_signal_connect_wrapped_fnc purple_signal_connect_wrapped;
typedef gboolean (_cdecl * purple_prefs_load_wrapped_fnc)(void);
extern purple_prefs_load_wrapped_fnc purple_prefs_load_wrapped;
typedef void (_cdecl * purple_prefs_set_bool_wrapped_fnc)(const char *name, gboolean value);
extern purple_prefs_set_bool_wrapped_fnc purple_prefs_set_bool_wrapped;
typedef void (_cdecl * purple_prefs_set_string_wrapped_fnc)(const char *name, const char *value);
extern purple_prefs_set_string_wrapped_fnc purple_prefs_set_string_wrapped;
typedef PurpleNotifyUserInfo * (_cdecl * purple_notify_user_info_new_wrapped_fnc)(void);
extern purple_notify_user_info_new_wrapped_fnc purple_notify_user_info_new_wrapped;
typedef void (_cdecl * purple_notify_user_info_destroy_wrapped_fnc)(PurpleNotifyUserInfo *user_info);
extern purple_notify_user_info_destroy_wrapped_fnc purple_notify_user_info_destroy_wrapped;
typedef GList * (_cdecl * purple_notify_user_info_get_entries_wrapped_fnc)(PurpleNotifyUserInfo *user_info);
extern purple_notify_user_info_get_entries_wrapped_fnc purple_notify_user_info_get_entries_wrapped;
typedef const gchar * (_cdecl * purple_notify_user_info_entry_get_label_wrapped_fnc)(PurpleNotifyUserInfoEntry *user_info_entry);
extern purple_notify_user_info_entry_get_label_wrapped_fnc purple_notify_user_info_entry_get_label_wrapped;
typedef const gchar * (_cdecl * purple_notify_user_info_entry_get_value_wrapped_fnc)(PurpleNotifyUserInfoEntry *user_info_entry);
extern purple_notify_user_info_entry_get_value_wrapped_fnc purple_notify_user_info_entry_get_value_wrapped;
typedef void (_cdecl * purple_notify_set_ui_ops_wrapped_fnc)(PurpleNotifyUiOps *ops);
extern purple_notify_set_ui_ops_wrapped_fnc purple_notify_set_ui_ops_wrapped;
typedef PurpleStoredImage * (_cdecl * purple_buddy_icons_set_account_icon_wrapped_fnc)(PurpleAccount *account, guchar *icon_data, size_t icon_len);
extern purple_buddy_icons_set_account_icon_wrapped_fnc purple_buddy_icons_set_account_icon_wrapped;
@ -211,107 +191,23 @@ extern purple_buddy_icons_find_account_icon_wrapped_fnc purple_buddy_icons_find_
typedef gconstpointer (_cdecl * purple_buddy_icon_get_data_wrapped_fnc)(const PurpleBuddyIcon *icon, size_t *len);
extern purple_buddy_icon_get_data_wrapped_fnc purple_buddy_icon_get_data_wrapped;
typedef void (_cdecl * purple_account_set_bool_wrapped_fnc)(PurpleAccount *account, const char *name, gboolean value);
extern purple_account_set_bool_wrapped_fnc purple_account_set_bool_wrapped;
typedef void (_cdecl * purple_certificate_add_ca_search_path_wrapped_fnc)(const char *path);
extern purple_certificate_add_ca_search_path_wrapped_fnc purple_certificate_add_ca_search_path_wrapped;
typedef const char * (_cdecl * purple_account_get_protocol_id_wrapped_fnc)(const PurpleAccount *account);
extern purple_account_get_protocol_id_wrapped_fnc purple_account_get_protocol_id_wrapped;
typedef PurpleConnectionState (_cdecl * purple_connection_get_state_wrapped_fnc)(const PurpleConnection *gc);
extern purple_connection_get_state_wrapped_fnc purple_connection_get_state_wrapped;
typedef void (_cdecl * purple_account_set_int_wrapped_fnc)(PurpleAccount *account, const char *name, int value);
extern purple_account_set_int_wrapped_fnc purple_account_set_int_wrapped;
typedef PurpleAccount * (_cdecl * purple_connection_get_account_wrapped_fnc)(const PurpleConnection *gc);
extern purple_connection_get_account_wrapped_fnc purple_connection_get_account_wrapped;
typedef void (_cdecl * purple_account_set_string_wrapped_fnc)(PurpleAccount *account, const char *name, const char *value);
extern purple_account_set_string_wrapped_fnc purple_account_set_string_wrapped;
typedef const char * (_cdecl * purple_connection_get_display_name_wrapped_fnc)(const PurpleConnection *gc);
extern purple_connection_get_display_name_wrapped_fnc purple_connection_get_display_name_wrapped;
typedef const char * (_cdecl * purple_account_get_username_wrapped_fnc)(const PurpleAccount *account);
extern purple_account_get_username_wrapped_fnc purple_account_get_username_wrapped;
typedef void (_cdecl * purple_connections_set_ui_ops_wrapped_fnc)(PurpleConnectionUiOps *ops);
extern purple_connections_set_ui_ops_wrapped_fnc purple_connections_set_ui_ops_wrapped;
typedef void (_cdecl * purple_account_set_username_wrapped_fnc)(PurpleAccount *account, const char *username);
extern purple_account_set_username_wrapped_fnc purple_account_set_username_wrapped;
typedef PurpleAccount * (_cdecl * purple_accounts_find_wrapped_fnc)(const char *name, const char *protocol);
extern purple_accounts_find_wrapped_fnc purple_accounts_find_wrapped;
typedef PurpleAccount * (_cdecl * purple_account_new_wrapped_fnc)(const char *username, const char *protocol_id);
extern purple_account_new_wrapped_fnc purple_account_new_wrapped;
typedef void (_cdecl * purple_accounts_add_wrapped_fnc)(PurpleAccount *account);
extern purple_accounts_add_wrapped_fnc purple_accounts_add_wrapped;
typedef void (_cdecl * purple_account_set_password_wrapped_fnc)(PurpleAccount *account, const char *password);
extern purple_account_set_password_wrapped_fnc purple_account_set_password_wrapped;
typedef void (_cdecl * purple_account_set_enabled_wrapped_fnc)(PurpleAccount *account, const char *ui, gboolean value);
extern purple_account_set_enabled_wrapped_fnc purple_account_set_enabled_wrapped;
typedef void (_cdecl * purple_account_set_privacy_type_wrapped_fnc)(PurpleAccount *account, PurplePrivacyType privacy_type);
extern purple_account_set_privacy_type_wrapped_fnc purple_account_set_privacy_type_wrapped;
typedef PurpleStatusType * (_cdecl * purple_account_get_status_type_with_primitive_wrapped_fnc)( const PurpleAccount *account, PurpleStatusPrimitive primitive);
extern purple_account_get_status_type_with_primitive_wrapped_fnc purple_account_get_status_type_with_primitive_wrapped;
typedef void (_cdecl * purple_account_set_status_wrapped_fnc)(PurpleAccount *account, const char *status_id, gboolean active, ...);
extern purple_account_set_status_wrapped_fnc purple_account_set_status_wrapped;
typedef int (_cdecl * purple_account_get_int_wrapped_fnc)(const PurpleAccount *account, const char *name, int default_value);
extern purple_account_get_int_wrapped_fnc purple_account_get_int_wrapped;
typedef void (_cdecl * purple_account_disconnect_wrapped_fnc)(PurpleAccount *account);
extern purple_account_disconnect_wrapped_fnc purple_account_disconnect_wrapped;
typedef void (_cdecl * purple_accounts_delete_wrapped_fnc)(PurpleAccount *account);
extern purple_accounts_delete_wrapped_fnc purple_accounts_delete_wrapped;
typedef PurpleConnection * (_cdecl * purple_account_get_connection_wrapped_fnc)(const PurpleAccount *account);
extern purple_account_get_connection_wrapped_fnc purple_account_get_connection_wrapped;
typedef void (_cdecl * purple_account_set_alias_wrapped_fnc)(PurpleAccount *account, const char *alias);
extern purple_account_set_alias_wrapped_fnc purple_account_set_alias_wrapped;
typedef void (_cdecl * purple_account_set_public_alias_wrapped_fnc)(PurpleAccount *account, const char *alias, PurpleSetPublicAliasSuccessCallback success_cb, PurpleSetPublicAliasFailureCallback failure_cb);
extern purple_account_set_public_alias_wrapped_fnc purple_account_set_public_alias_wrapped;
typedef void (_cdecl * purple_account_remove_buddy_wrapped_fnc)(PurpleAccount *account, PurpleBuddy *buddy, PurpleGroup *group);
extern purple_account_remove_buddy_wrapped_fnc purple_account_remove_buddy_wrapped;
typedef void (_cdecl * purple_account_add_buddy_wrapped_fnc)(PurpleAccount *account, PurpleBuddy *buddy);
extern purple_account_add_buddy_wrapped_fnc purple_account_add_buddy_wrapped;
typedef const gchar * (_cdecl * purple_account_get_name_for_display_wrapped_fnc)(const PurpleAccount *account);
extern purple_account_get_name_for_display_wrapped_fnc purple_account_get_name_for_display_wrapped;
typedef void (_cdecl * purple_accounts_set_ui_ops_wrapped_fnc)(PurpleAccountUiOps *ops);
extern purple_accounts_set_ui_ops_wrapped_fnc purple_accounts_set_ui_ops_wrapped;
typedef const char * (_cdecl * purple_status_type_get_id_wrapped_fnc)(const PurpleStatusType *status_type);
extern purple_status_type_get_id_wrapped_fnc purple_status_type_get_id_wrapped;
typedef PurpleStatus * (_cdecl * purple_presence_get_active_status_wrapped_fnc)(const PurplePresence *presence);
extern purple_presence_get_active_status_wrapped_fnc purple_presence_get_active_status_wrapped;
typedef PurpleStatusPrimitive (_cdecl * purple_status_type_get_primitive_wrapped_fnc)( const PurpleStatusType *status_type);
extern purple_status_type_get_primitive_wrapped_fnc purple_status_type_get_primitive_wrapped;
typedef PurpleStatusType * (_cdecl * purple_status_get_type_wrapped_fnc)(const PurpleStatus *status);
extern purple_status_get_type_wrapped_fnc purple_status_get_type_wrapped;
typedef const char * (_cdecl * purple_status_get_attr_string_wrapped_fnc)(const PurpleStatus *status, const char *id);
extern purple_status_get_attr_string_wrapped_fnc purple_status_get_attr_string_wrapped;
typedef void (_cdecl * serv_get_info_wrapped_fnc)(PurpleConnection *, const char *);
extern serv_get_info_wrapped_fnc serv_get_info_wrapped;
typedef void (_cdecl * serv_alias_buddy_wrapped_fnc)(PurpleBuddy *);
extern serv_alias_buddy_wrapped_fnc serv_alias_buddy_wrapped;
typedef unsigned int (_cdecl * serv_send_typing_wrapped_fnc)(PurpleConnection *gc, const char *name, PurpleTypingState state);
extern serv_send_typing_wrapped_fnc serv_send_typing_wrapped;
typedef void (_cdecl * serv_join_chat_wrapped_fnc)(PurpleConnection *, GHashTable *data);
extern serv_join_chat_wrapped_fnc serv_join_chat_wrapped;
typedef void (_cdecl * purple_dnsquery_set_ui_ops_wrapped_fnc)(PurpleDnsQueryUiOps *ops);
extern purple_dnsquery_set_ui_ops_wrapped_fnc purple_dnsquery_set_ui_ops_wrapped;
typedef void * (_cdecl * purple_connections_get_handle_wrapped_fnc)(void);
extern purple_connections_get_handle_wrapped_fnc purple_connections_get_handle_wrapped;
typedef PurpleConvIm * (_cdecl * purple_conversation_get_im_data_wrapped_fnc)(const PurpleConversation *conv);
extern purple_conversation_get_im_data_wrapped_fnc purple_conversation_get_im_data_wrapped;
@ -349,36 +245,24 @@ extern purple_conversations_set_ui_ops_wrapped_fnc purple_conversations_set_ui_o
typedef void * (_cdecl * purple_conversations_get_handle_wrapped_fnc)(void);
extern purple_conversations_get_handle_wrapped_fnc purple_conversations_get_handle_wrapped;
typedef void (_cdecl * purple_plugin_action_free_wrapped_fnc)(PurplePluginAction *action);
extern purple_plugin_action_free_wrapped_fnc purple_plugin_action_free_wrapped;
typedef void (_cdecl * purple_plugins_add_search_path_wrapped_fnc)(const char *path);
extern purple_plugins_add_search_path_wrapped_fnc purple_plugins_add_search_path_wrapped;
typedef void (_cdecl * purple_certificate_add_ca_search_path_wrapped_fnc)(const char *path);
extern purple_certificate_add_ca_search_path_wrapped_fnc purple_certificate_add_ca_search_path_wrapped;
typedef PurpleConnectionState (_cdecl * purple_connection_get_state_wrapped_fnc)(const PurpleConnection *gc);
extern purple_connection_get_state_wrapped_fnc purple_connection_get_state_wrapped;
typedef PurpleAccount * (_cdecl * purple_connection_get_account_wrapped_fnc)(const PurpleConnection *gc);
extern purple_connection_get_account_wrapped_fnc purple_connection_get_account_wrapped;
typedef const char * (_cdecl * purple_connection_get_display_name_wrapped_fnc)(const PurpleConnection *gc);
extern purple_connection_get_display_name_wrapped_fnc purple_connection_get_display_name_wrapped;
typedef void (_cdecl * purple_connections_set_ui_ops_wrapped_fnc)(PurpleConnectionUiOps *ops);
extern purple_connections_set_ui_ops_wrapped_fnc purple_connections_set_ui_ops_wrapped;
typedef void * (_cdecl * purple_connections_get_handle_wrapped_fnc)(void);
extern purple_connections_get_handle_wrapped_fnc purple_connections_get_handle_wrapped;
typedef void (_cdecl * purple_core_set_ui_ops_wrapped_fnc)(PurpleCoreUiOps *ops);
extern purple_core_set_ui_ops_wrapped_fnc purple_core_set_ui_ops_wrapped;
typedef gboolean (_cdecl * purple_core_init_wrapped_fnc)(const char *ui);
extern purple_core_init_wrapped_fnc purple_core_init_wrapped;
typedef void (_cdecl * purple_debug_set_ui_ops_wrapped_fnc)(PurpleDebugUiOps *ops);
extern purple_debug_set_ui_ops_wrapped_fnc purple_debug_set_ui_ops_wrapped;
typedef void (_cdecl * purple_debug_set_verbose_wrapped_fnc)(gboolean verbose);
extern purple_debug_set_verbose_wrapped_fnc purple_debug_set_verbose_wrapped;
typedef void (_cdecl * purple_dnsquery_set_ui_ops_wrapped_fnc)(PurpleDnsQueryUiOps *ops);
extern purple_dnsquery_set_ui_ops_wrapped_fnc purple_dnsquery_set_ui_ops_wrapped;
typedef gboolean (_cdecl * purple_timeout_remove_wrapped_fnc)(guint handle);
extern purple_timeout_remove_wrapped_fnc purple_timeout_remove_wrapped;
typedef guint (_cdecl * purple_input_add_wrapped_fnc)(int fd, PurpleInputCondition cond, PurpleInputFunction func, gpointer user_data);
extern purple_input_add_wrapped_fnc purple_input_add_wrapped;
@ -388,15 +272,84 @@ extern purple_timeout_add_wrapped_fnc purple_timeout_add_wrapped;
typedef guint (_cdecl * purple_timeout_add_seconds_wrapped_fnc)(guint interval, GSourceFunc function, gpointer data);
extern purple_timeout_add_seconds_wrapped_fnc purple_timeout_add_seconds_wrapped;
typedef gboolean (_cdecl * purple_timeout_remove_wrapped_fnc)(guint handle);
extern purple_timeout_remove_wrapped_fnc purple_timeout_remove_wrapped;
typedef void (_cdecl * purple_eventloop_set_ui_ops_wrapped_fnc)(PurpleEventLoopUiOps *ops);
extern purple_eventloop_set_ui_ops_wrapped_fnc purple_eventloop_set_ui_ops_wrapped;
typedef gboolean (_cdecl * purple_input_remove_wrapped_fnc)(guint handle);
extern purple_input_remove_wrapped_fnc purple_input_remove_wrapped;
typedef void (_cdecl * purple_xfer_ui_ready_wrapped_fnc)(PurpleXfer *xfer);
extern purple_xfer_ui_ready_wrapped_fnc purple_xfer_ui_ready_wrapped;
typedef void (_cdecl * purple_xfer_request_accepted_wrapped_fnc)(PurpleXfer *xfer, const char *filename);
extern purple_xfer_request_accepted_wrapped_fnc purple_xfer_request_accepted_wrapped;
typedef void (_cdecl * purple_xfer_request_denied_wrapped_fnc)(PurpleXfer *xfer);
extern purple_xfer_request_denied_wrapped_fnc purple_xfer_request_denied_wrapped;
typedef PurpleAccount * (_cdecl * purple_xfer_get_account_wrapped_fnc)(const PurpleXfer *xfer);
extern purple_xfer_get_account_wrapped_fnc purple_xfer_get_account_wrapped;
typedef const char * (_cdecl * purple_xfer_get_filename_wrapped_fnc)(const PurpleXfer *xfer);
extern purple_xfer_get_filename_wrapped_fnc purple_xfer_get_filename_wrapped;
typedef size_t (_cdecl * purple_xfer_get_size_wrapped_fnc)(const PurpleXfer *xfer);
extern purple_xfer_get_size_wrapped_fnc purple_xfer_get_size_wrapped;
typedef void (_cdecl * purple_xfer_unref_wrapped_fnc)(PurpleXfer *xfer);
extern purple_xfer_unref_wrapped_fnc purple_xfer_unref_wrapped;
typedef void (_cdecl * purple_xfer_ref_wrapped_fnc)(PurpleXfer *xfer);
extern purple_xfer_ref_wrapped_fnc purple_xfer_ref_wrapped;
typedef void (_cdecl * purple_xfers_set_ui_ops_wrapped_fnc)(PurpleXferUiOps *ops);
extern purple_xfers_set_ui_ops_wrapped_fnc purple_xfers_set_ui_ops_wrapped;
typedef void * (_cdecl * purple_xfers_get_handle_wrapped_fnc)(void);
extern purple_xfers_get_handle_wrapped_fnc purple_xfers_get_handle_wrapped;
typedef gconstpointer (_cdecl * purple_imgstore_get_data_wrapped_fnc)(PurpleStoredImage *img);
extern purple_imgstore_get_data_wrapped_fnc purple_imgstore_get_data_wrapped;
typedef size_t (_cdecl * purple_imgstore_get_size_wrapped_fnc)(PurpleStoredImage *img);
extern purple_imgstore_get_size_wrapped_fnc purple_imgstore_get_size_wrapped;
typedef PurpleStoredImage * (_cdecl * purple_imgstore_unref_wrapped_fnc)(PurpleStoredImage *img);
extern purple_imgstore_unref_wrapped_fnc purple_imgstore_unref_wrapped;
typedef PurpleNotifyUserInfo * (_cdecl * purple_notify_user_info_new_wrapped_fnc)(void);
extern purple_notify_user_info_new_wrapped_fnc purple_notify_user_info_new_wrapped;
typedef void (_cdecl * purple_notify_user_info_destroy_wrapped_fnc)(PurpleNotifyUserInfo *user_info);
extern purple_notify_user_info_destroy_wrapped_fnc purple_notify_user_info_destroy_wrapped;
typedef GList * (_cdecl * purple_notify_user_info_get_entries_wrapped_fnc)(PurpleNotifyUserInfo *user_info);
extern purple_notify_user_info_get_entries_wrapped_fnc purple_notify_user_info_get_entries_wrapped;
typedef const gchar * (_cdecl * purple_notify_user_info_entry_get_label_wrapped_fnc)(PurpleNotifyUserInfoEntry *user_info_entry);
extern purple_notify_user_info_entry_get_label_wrapped_fnc purple_notify_user_info_entry_get_label_wrapped;
typedef const gchar * (_cdecl * purple_notify_user_info_entry_get_value_wrapped_fnc)(PurpleNotifyUserInfoEntry *user_info_entry);
extern purple_notify_user_info_entry_get_value_wrapped_fnc purple_notify_user_info_entry_get_value_wrapped;
typedef void (_cdecl * purple_notify_set_ui_ops_wrapped_fnc)(PurpleNotifyUiOps *ops);
extern purple_notify_set_ui_ops_wrapped_fnc purple_notify_set_ui_ops_wrapped;
typedef void (_cdecl * purple_plugins_add_search_path_wrapped_fnc)(const char *path);
extern purple_plugins_add_search_path_wrapped_fnc purple_plugins_add_search_path_wrapped;
typedef void (_cdecl * purple_plugin_action_free_wrapped_fnc)(PurplePluginAction *action);
extern purple_plugin_action_free_wrapped_fnc purple_plugin_action_free_wrapped;
typedef gboolean (_cdecl * purple_prefs_load_wrapped_fnc)(void);
extern purple_prefs_load_wrapped_fnc purple_prefs_load_wrapped;
typedef void (_cdecl * purple_prefs_set_bool_wrapped_fnc)(const char *name, gboolean value);
extern purple_prefs_set_bool_wrapped_fnc purple_prefs_set_bool_wrapped;
typedef void (_cdecl * purple_prefs_set_string_wrapped_fnc)(const char *name, const char *value);
extern purple_prefs_set_string_wrapped_fnc purple_prefs_set_string_wrapped;
typedef void (_cdecl * purple_privacy_deny_wrapped_fnc)(PurpleAccount *account, const char *who, gboolean local, gboolean restore);
extern purple_privacy_deny_wrapped_fnc purple_privacy_deny_wrapped;
@ -406,17 +359,83 @@ extern purple_privacy_allow_wrapped_fnc purple_privacy_allow_wrapped;
typedef gboolean (_cdecl * purple_privacy_check_wrapped_fnc)(PurpleAccount *account, const char *who);
extern purple_privacy_check_wrapped_fnc purple_privacy_check_wrapped;
typedef PurpleProxyInfo * (_cdecl * purple_proxy_info_new_wrapped_fnc)(void);
extern purple_proxy_info_new_wrapped_fnc purple_proxy_info_new_wrapped;
typedef void (_cdecl * purple_proxy_info_set_type_wrapped_fnc)(PurpleProxyInfo *info, PurpleProxyType type);
extern purple_proxy_info_set_type_wrapped_fnc purple_proxy_info_set_type_wrapped;
typedef void (_cdecl * purple_proxy_info_set_host_wrapped_fnc)(PurpleProxyInfo *info, const char *host);
extern purple_proxy_info_set_host_wrapped_fnc purple_proxy_info_set_host_wrapped;
typedef void (_cdecl * purple_proxy_info_set_port_wrapped_fnc)(PurpleProxyInfo *info, int port);
extern purple_proxy_info_set_port_wrapped_fnc purple_proxy_info_set_port_wrapped;
typedef void (_cdecl * purple_proxy_info_set_username_wrapped_fnc)(PurpleProxyInfo *info, const char *username);
extern purple_proxy_info_set_username_wrapped_fnc purple_proxy_info_set_username_wrapped;
typedef void (_cdecl * purple_proxy_info_set_password_wrapped_fnc)(PurpleProxyInfo *info, const char *password);
extern purple_proxy_info_set_password_wrapped_fnc purple_proxy_info_set_password_wrapped;
typedef PurplePlugin * (_cdecl * purple_find_prpl_wrapped_fnc)(const char *id);
extern purple_find_prpl_wrapped_fnc purple_find_prpl_wrapped;
typedef void (_cdecl * purple_prpl_send_attention_wrapped_fnc)(PurpleConnection *gc, const char *who, guint type_code);
extern purple_prpl_send_attention_wrapped_fnc purple_prpl_send_attention_wrapped;
typedef PurplePrefType (_cdecl * purple_account_option_get_type_wrapped_fnc)(const PurpleAccountOption *option);
extern purple_account_option_get_type_wrapped_fnc purple_account_option_get_type_wrapped;
typedef void (_cdecl * purple_request_set_ui_ops_wrapped_fnc)(PurpleRequestUiOps *ops);
extern purple_request_set_ui_ops_wrapped_fnc purple_request_set_ui_ops_wrapped;
typedef const char * (_cdecl * purple_account_option_get_setting_wrapped_fnc)(const PurpleAccountOption *option);
extern purple_account_option_get_setting_wrapped_fnc purple_account_option_get_setting_wrapped;
typedef void (_cdecl * serv_get_info_wrapped_fnc)(PurpleConnection *, const char *);
extern serv_get_info_wrapped_fnc serv_get_info_wrapped;
typedef void (_cdecl * serv_alias_buddy_wrapped_fnc)(PurpleBuddy *);
extern serv_alias_buddy_wrapped_fnc serv_alias_buddy_wrapped;
typedef unsigned int (_cdecl * serv_send_typing_wrapped_fnc)(PurpleConnection *gc, const char *name, PurpleTypingState state);
extern serv_send_typing_wrapped_fnc serv_send_typing_wrapped;
typedef void (_cdecl * serv_join_chat_wrapped_fnc)(PurpleConnection *, GHashTable *data);
extern serv_join_chat_wrapped_fnc serv_join_chat_wrapped;
typedef gulong (_cdecl * purple_signal_connect_wrapped_fnc)(void *instance, const char *signal, void *handle, PurpleCallback func, void *data);
extern purple_signal_connect_wrapped_fnc purple_signal_connect_wrapped;
typedef const char * (_cdecl * purple_status_type_get_id_wrapped_fnc)(const PurpleStatusType *status_type);
extern purple_status_type_get_id_wrapped_fnc purple_status_type_get_id_wrapped;
typedef PurpleStatus * (_cdecl * purple_presence_get_active_status_wrapped_fnc)(const PurplePresence *presence);
extern purple_presence_get_active_status_wrapped_fnc purple_presence_get_active_status_wrapped;
typedef PurpleStatusPrimitive (_cdecl * purple_status_type_get_primitive_wrapped_fnc)( const PurpleStatusType *status_type);
extern purple_status_type_get_primitive_wrapped_fnc purple_status_type_get_primitive_wrapped;
typedef PurpleStatusType * (_cdecl * purple_status_get_type_wrapped_fnc)(const PurpleStatus *status);
extern purple_status_get_type_wrapped_fnc purple_status_get_type_wrapped;
typedef const char * (_cdecl * purple_status_get_attr_string_wrapped_fnc)(const PurpleStatus *status, const char *id);
extern purple_status_get_attr_string_wrapped_fnc purple_status_get_attr_string_wrapped;
typedef gchar * (_cdecl * purple_markup_escape_text_wrapped_fnc)(const gchar *text, gssize length);
extern purple_markup_escape_text_wrapped_fnc purple_markup_escape_text_wrapped;
typedef char * (_cdecl * purple_markup_strip_html_wrapped_fnc)(const char *str);
extern purple_markup_strip_html_wrapped_fnc purple_markup_strip_html_wrapped;
typedef gchar * (_cdecl * purple_strdup_withhtml_wrapped_fnc)(const gchar *src);
extern purple_strdup_withhtml_wrapped_fnc purple_strdup_withhtml_wrapped;
typedef void (_cdecl * purple_markup_html_to_xhtml_wrapped_fnc)(const char *html, char **dest_xhtml, char **dest_plain);
extern purple_markup_html_to_xhtml_wrapped_fnc purple_markup_html_to_xhtml_wrapped;
typedef const char * (_cdecl * purple_normalize_wrapped_fnc)(const PurpleAccount *account, const char *str);
extern purple_normalize_wrapped_fnc purple_normalize_wrapped;
typedef gchar * (_cdecl * purple_utf8_try_convert_wrapped_fnc)(const char *str);
extern purple_utf8_try_convert_wrapped_fnc purple_utf8_try_convert_wrapped;
typedef void (_cdecl * purple_util_set_user_dir_wrapped_fnc)(const char *dir);
extern purple_util_set_user_dir_wrapped_fnc purple_util_set_user_dir_wrapped;
typedef GIOChannel * (_cdecl * wpurple_g_io_channel_win32_new_socket_wrapped_fnc)(int socket);
extern wpurple_g_io_channel_win32_new_socket_wrapped_fnc wpurple_g_io_channel_win32_new_socket_wrapped;
@ -435,19 +454,33 @@ extern wpurple_g_io_channel_win32_new_socket_wrapped_fnc wpurple_g_io_channel_wi
#define PURPLE_CONNECTION_IS_CONNECTED_WRAPPED PURPLE_CONNECTION_IS_CONNECTED
#define purple_debug_set_ui_ops_wrapped purple_debug_set_ui_ops
#define purple_debug_set_verbose_wrapped purple_debug_set_verbose
#define purple_request_set_ui_ops_wrapped purple_request_set_ui_ops
#define purple_imgstore_get_data_wrapped purple_imgstore_get_data
#define purple_imgstore_get_size_wrapped purple_imgstore_get_size
#define purple_imgstore_unref_wrapped purple_imgstore_unref
#define purple_markup_escape_text_wrapped purple_markup_escape_text
#define purple_markup_strip_html_wrapped purple_markup_strip_html
#define purple_normalize_wrapped purple_normalize
#define purple_strdup_withhtml_wrapped purple_strdup_withhtml
#define purple_markup_html_to_xhtml_wrapped purple_markup_html_to_xhtml
#define purple_utf8_try_convert_wrapped purple_utf8_try_convert
#define purple_util_set_user_dir_wrapped purple_util_set_user_dir
#define purple_account_set_bool_wrapped purple_account_set_bool
#define purple_account_get_protocol_id_wrapped purple_account_get_protocol_id
#define purple_account_set_int_wrapped purple_account_set_int
#define purple_account_set_string_wrapped purple_account_set_string
#define purple_account_get_username_wrapped purple_account_get_username
#define purple_account_set_username_wrapped purple_account_set_username
#define purple_account_set_proxy_info_wrapped purple_account_set_proxy_info
#define purple_accounts_find_wrapped purple_accounts_find
#define purple_account_new_wrapped purple_account_new
#define purple_accounts_add_wrapped purple_accounts_add
#define purple_account_set_password_wrapped purple_account_set_password
#define purple_account_set_enabled_wrapped purple_account_set_enabled
#define purple_account_set_privacy_type_wrapped purple_account_set_privacy_type
#define purple_account_get_status_type_with_primitive_wrapped purple_account_get_status_type_with_primitive
#define purple_account_set_status_wrapped purple_account_set_status
#define purple_account_get_int_wrapped purple_account_get_int
#define purple_account_disconnect_wrapped purple_account_disconnect
#define purple_accounts_delete_wrapped purple_accounts_delete
#define purple_account_get_connection_wrapped purple_account_get_connection
#define purple_account_set_alias_wrapped purple_account_set_alias
#define purple_account_set_public_alias_wrapped purple_account_set_public_alias
#define purple_account_remove_buddy_wrapped purple_account_remove_buddy
#define purple_account_add_buddy_wrapped purple_account_add_buddy
#define purple_account_get_name_for_display_wrapped purple_account_get_name_for_display
#define purple_accounts_set_ui_ops_wrapped purple_accounts_set_ui_ops
#define purple_account_option_get_type_wrapped purple_account_option_get_type
#define purple_account_option_get_setting_wrapped purple_account_option_get_setting
#define purple_blist_node_get_type_wrapped purple_blist_node_get_type
#define purple_buddy_get_alias_wrapped purple_buddy_get_alias
#define purple_buddy_get_server_alias_wrapped purple_buddy_get_server_alias
@ -474,66 +507,18 @@ extern wpurple_g_io_channel_win32_new_socket_wrapped_fnc wpurple_g_io_channel_wi
#define purple_blist_new_wrapped purple_blist_new
#define purple_blist_load_wrapped purple_blist_load
#define purple_blist_get_handle_wrapped purple_blist_get_handle
#define purple_xfer_ui_ready_wrapped purple_xfer_ui_ready
#define purple_xfer_request_accepted_wrapped purple_xfer_request_accepted
#define purple_xfer_request_denied_wrapped purple_xfer_request_denied
#define purple_xfer_get_account_wrapped purple_xfer_get_account
#define purple_xfer_get_filename_wrapped purple_xfer_get_filename
#define purple_xfer_get_size_wrapped purple_xfer_get_size
#define purple_xfer_unref_wrapped purple_xfer_unref
#define purple_xfer_ref_wrapped purple_xfer_ref
#define purple_xfers_set_ui_ops_wrapped purple_xfers_set_ui_ops
#define purple_xfers_get_handle_wrapped purple_xfers_get_handle
#define purple_signal_connect_wrapped purple_signal_connect
#define purple_prefs_load_wrapped purple_prefs_load
#define purple_prefs_set_bool_wrapped purple_prefs_set_bool
#define purple_prefs_set_string_wrapped purple_prefs_set_string
#define purple_notify_user_info_new_wrapped purple_notify_user_info_new
#define purple_notify_user_info_destroy_wrapped purple_notify_user_info_destroy
#define purple_notify_user_info_get_entries_wrapped purple_notify_user_info_get_entries
#define purple_notify_user_info_entry_get_label_wrapped purple_notify_user_info_entry_get_label
#define purple_notify_user_info_entry_get_value_wrapped purple_notify_user_info_entry_get_value
#define purple_notify_set_ui_ops_wrapped purple_notify_set_ui_ops
#define purple_buddy_icons_set_account_icon_wrapped purple_buddy_icons_set_account_icon
#define purple_buddy_icons_find_wrapped purple_buddy_icons_find
#define purple_buddy_icon_get_full_path_wrapped purple_buddy_icon_get_full_path
#define purple_buddy_icon_unref_wrapped purple_buddy_icon_unref
#define purple_buddy_icons_find_account_icon_wrapped purple_buddy_icons_find_account_icon
#define purple_buddy_icon_get_data_wrapped purple_buddy_icon_get_data
#define purple_account_set_bool_wrapped purple_account_set_bool
#define purple_account_get_protocol_id_wrapped purple_account_get_protocol_id
#define purple_account_set_int_wrapped purple_account_set_int
#define purple_account_set_string_wrapped purple_account_set_string
#define purple_account_get_username_wrapped purple_account_get_username
#define purple_account_set_username_wrapped purple_account_set_username
#define purple_accounts_find_wrapped purple_accounts_find
#define purple_account_new_wrapped purple_account_new
#define purple_accounts_add_wrapped purple_accounts_add
#define purple_account_set_password_wrapped purple_account_set_password
#define purple_account_set_enabled_wrapped purple_account_set_enabled
#define purple_account_set_privacy_type_wrapped purple_account_set_privacy_type
#define purple_account_get_status_type_with_primitive_wrapped purple_account_get_status_type_with_primitive
#define purple_account_set_status_wrapped purple_account_set_status
#define purple_account_get_int_wrapped purple_account_get_int
#define purple_account_disconnect_wrapped purple_account_disconnect
#define purple_accounts_delete_wrapped purple_accounts_delete
#define purple_account_get_connection_wrapped purple_account_get_connection
#define purple_account_set_alias_wrapped purple_account_set_alias
#define purple_account_set_public_alias_wrapped purple_account_set_public_alias
#define purple_account_remove_buddy_wrapped purple_account_remove_buddy
#define purple_account_add_buddy_wrapped purple_account_add_buddy
#define purple_account_get_name_for_display_wrapped purple_account_get_name_for_display
#define purple_accounts_set_ui_ops_wrapped purple_accounts_set_ui_ops
#define purple_status_type_get_id_wrapped purple_status_type_get_id
#define purple_presence_get_active_status_wrapped purple_presence_get_active_status
#define purple_status_type_get_primitive_wrapped purple_status_type_get_primitive
#define purple_status_get_type_wrapped purple_status_get_type
#define purple_status_get_attr_string_wrapped purple_status_get_attr_string
#define serv_get_info_wrapped serv_get_info
#define serv_alias_buddy_wrapped serv_alias_buddy
#define serv_send_typing_wrapped serv_send_typing
#define serv_join_chat_wrapped serv_join_chat
#define purple_dnsquery_set_ui_ops_wrapped purple_dnsquery_set_ui_ops
#define purple_certificate_add_ca_search_path_wrapped purple_certificate_add_ca_search_path
#define purple_connection_get_state_wrapped purple_connection_get_state
#define purple_connection_get_account_wrapped purple_connection_get_account
#define purple_connection_get_display_name_wrapped purple_connection_get_display_name
#define purple_connections_set_ui_ops_wrapped purple_connections_set_ui_ops
#define purple_connections_get_handle_wrapped purple_connections_get_handle
#define purple_conversation_get_im_data_wrapped purple_conversation_get_im_data
#define purple_conversation_get_chat_data_wrapped purple_conversation_get_chat_data
#define purple_find_conversation_with_account_wrapped purple_find_conversation_with_account
@ -546,31 +531,72 @@ extern wpurple_g_io_channel_win32_new_socket_wrapped_fnc wpurple_g_io_channel_wi
#define purple_conversation_get_name_wrapped purple_conversation_get_name
#define purple_conversations_set_ui_ops_wrapped purple_conversations_set_ui_ops
#define purple_conversations_get_handle_wrapped purple_conversations_get_handle
#define purple_plugin_action_free_wrapped purple_plugin_action_free
#define purple_certificate_add_ca_search_path_wrapped purple_certificate_add_ca_search_path
#define purple_plugins_add_search_path_wrapped purple_plugins_add_search_path
#define purple_connection_get_state_wrapped purple_connection_get_state
#define purple_connection_get_account_wrapped purple_connection_get_account
#define purple_connection_get_display_name_wrapped purple_connection_get_display_name
#define purple_connections_set_ui_ops_wrapped purple_connections_set_ui_ops
#define purple_connections_get_handle_wrapped purple_connections_get_handle
#define purple_core_set_ui_ops_wrapped purple_core_set_ui_ops
#define purple_core_init_wrapped purple_core_init
#define purple_debug_set_ui_ops_wrapped purple_debug_set_ui_ops
#define purple_debug_set_verbose_wrapped purple_debug_set_verbose
#define purple_dnsquery_set_ui_ops_wrapped purple_dnsquery_set_ui_ops
#define purple_timeout_remove_wrapped purple_timeout_remove
#define purple_input_add_wrapped purple_input_add
#define purple_timeout_add_wrapped purple_timeout_add
#define purple_timeout_add_seconds_wrapped purple_timeout_add_seconds
#define purple_timeout_remove_wrapped purple_timeout_remove
#define purple_eventloop_set_ui_ops_wrapped purple_eventloop_set_ui_ops
#define purple_input_remove_wrapped purple_input_remove
#define purple_xfer_ui_ready_wrapped purple_xfer_ui_ready
#define purple_xfer_request_accepted_wrapped purple_xfer_request_accepted
#define purple_xfer_request_denied_wrapped purple_xfer_request_denied
#define purple_xfer_get_account_wrapped purple_xfer_get_account
#define purple_xfer_get_filename_wrapped purple_xfer_get_filename
#define purple_xfer_get_size_wrapped purple_xfer_get_size
#define purple_xfer_unref_wrapped purple_xfer_unref
#define purple_xfer_ref_wrapped purple_xfer_ref
#define purple_xfers_set_ui_ops_wrapped purple_xfers_set_ui_ops
#define purple_xfers_get_handle_wrapped purple_xfers_get_handle
#define purple_imgstore_get_data_wrapped purple_imgstore_get_data
#define purple_imgstore_get_size_wrapped purple_imgstore_get_size
#define purple_imgstore_unref_wrapped purple_imgstore_unref
#define purple_notify_user_info_new_wrapped purple_notify_user_info_new
#define purple_notify_user_info_destroy_wrapped purple_notify_user_info_destroy
#define purple_notify_user_info_get_entries_wrapped purple_notify_user_info_get_entries
#define purple_notify_user_info_entry_get_label_wrapped purple_notify_user_info_entry_get_label
#define purple_notify_user_info_entry_get_value_wrapped purple_notify_user_info_entry_get_value
#define purple_notify_set_ui_ops_wrapped purple_notify_set_ui_ops
#define purple_plugins_add_search_path_wrapped purple_plugins_add_search_path
#define purple_plugin_action_free_wrapped purple_plugin_action_free
#define purple_prefs_load_wrapped purple_prefs_load
#define purple_prefs_set_bool_wrapped purple_prefs_set_bool
#define purple_prefs_set_string_wrapped purple_prefs_set_string
#define purple_privacy_deny_wrapped purple_privacy_deny
#define purple_privacy_allow_wrapped purple_privacy_allow
#define purple_privacy_check_wrapped purple_privacy_check
#define purple_proxy_info_new_wrapped purple_proxy_info_new
#define purple_proxy_info_set_type_wrapped purple_proxy_info_set_type
#define purple_proxy_info_set_host_wrapped purple_proxy_info_set_host
#define purple_proxy_info_set_port_wrapped purple_proxy_info_set_port
#define purple_proxy_info_set_username_wrapped purple_proxy_info_set_username
#define purple_proxy_info_set_password_wrapped purple_proxy_info_set_password
#define purple_find_prpl_wrapped purple_find_prpl
#define purple_prpl_send_attention_wrapped purple_prpl_send_attention
#define purple_account_option_get_type_wrapped purple_account_option_get_type
#define purple_account_option_get_setting_wrapped purple_account_option_get_setting
#define purple_request_set_ui_ops_wrapped purple_request_set_ui_ops
#define serv_get_info_wrapped serv_get_info
#define serv_alias_buddy_wrapped serv_alias_buddy
#define serv_send_typing_wrapped serv_send_typing
#define serv_join_chat_wrapped serv_join_chat
#define purple_signal_connect_wrapped purple_signal_connect
#define purple_status_type_get_id_wrapped purple_status_type_get_id
#define purple_presence_get_active_status_wrapped purple_presence_get_active_status
#define purple_status_type_get_primitive_wrapped purple_status_type_get_primitive
#define purple_status_get_type_wrapped purple_status_get_type
#define purple_status_get_attr_string_wrapped purple_status_get_attr_string
#define purple_markup_escape_text_wrapped purple_markup_escape_text
#define purple_markup_strip_html_wrapped purple_markup_strip_html
#define purple_strdup_withhtml_wrapped purple_strdup_withhtml
#define purple_markup_html_to_xhtml_wrapped purple_markup_html_to_xhtml
#define purple_normalize_wrapped purple_normalize
#define purple_utf8_try_convert_wrapped purple_utf8_try_convert
#define purple_util_set_user_dir_wrapped purple_util_set_user_dir
#define wpurple_g_io_channel_win32_new_socket_wrapped wpurple_g_io_channel_win32_new_socket
#endif
bool resolvePurpleFunctions(const std::string& libPurpleDllPath);
bool resolvePurpleFunctions();