From e179ffc995c96568bfdce46ac73f58d569166f05 Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Sun, 14 Oct 2012 08:19:21 +0000 Subject: Yahoo: folders restructurization git-svn-id: http://svn.miranda-ng.org/main/trunk@1918 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Yahoo/src/main.cpp | 152 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 protocols/Yahoo/src/main.cpp (limited to 'protocols/Yahoo/src/main.cpp') diff --git a/protocols/Yahoo/src/main.cpp b/protocols/Yahoo/src/main.cpp new file mode 100644 index 0000000000..df432b5223 --- /dev/null +++ b/protocols/Yahoo/src/main.cpp @@ -0,0 +1,152 @@ +/* + * $Id: main.cpp 13596 2011-04-15 19:07:23Z george.hazan $ + * + * myYahoo Miranda Plugin + * + * Authors: Gennady Feldman (aka Gena01) + * Laurent Marechal (aka Peorth) + * + * This code is under GPL and is based on AIM, MSN and Miranda source code. + * I want to thank Robert Rainwater and George Hazan for their code and support + * and for answering some of my questions during development of this plugin. + */ +#include "yahoo.h" +#include "http_gateway.h" +#include "version.h" +#include "resource.h" + +#include + +/* + * Global Variables + */ +HINSTANCE hInstance; + +HANDLE g_hNetlibUser; + +int hLangpack; + +PLUGININFOEX pluginInfo={ + sizeof(PLUGININFOEX), + "Yahoo Protocol", + __VERSION_DWORD, + "Yahoo Protocol support via libyahoo2 library.", + "Gennady Feldman", + "gena01@miranda-im.org", + "© 2003-2010 Gennady Feldman, Laurent Marechal", + "http://miranda-ng.org/", + UNICODE_AWARE, //not transient + {0xaa7bfea, 0x1fc7, 0x45f0, {0x90, 0x6e, 0x2a, 0x46, 0xb6, 0xe1, 0x19, 0xcf}} // {0AA7BFEA-1FC7-45f0-906E-2A46B6E119CF} +}; + +void YmsgrLinksInit(void); +void YmsgrLinksUninit(void); + +/* + * WINAPI DllMain - main entry point into a DLL + * Parameters: + * HINSTANCE hinst, + * DWORD fdwReason, + * LPVOID lpvReserved + * Returns : + * BOOL + * + */ +extern "C" BOOL WINAPI DllMain(HINSTANCE hinst,DWORD /*fdwReason*/,LPVOID /*lpvReserved*/) +{ + hInstance = hinst; + return TRUE; +} + +/* + * Load - loads plugin into memory + */ + +//===================================================== +// Name : Load +// Parameters: +// Returns : int +// Description : Called when plugin is loaded into Miranda +//===================================================== + +static int CompareProtos( const CYahooProto* p1, const CYahooProto* p2 ) +{ + return lstrcmp(p1->m_tszUserName, p2->m_tszUserName); +} + +LIST g_instances( 1, CompareProtos ); + +static CYahooProto* yahooProtoInit( const char* pszProtoName, const TCHAR* tszUserName ) +{ + CYahooProto* ppro = new CYahooProto( pszProtoName, tszUserName ); + + g_instances.insert( ppro ); + + return ppro; +} + +static int yahooProtoUninit( CYahooProto* ppro ) +{ + g_instances.remove( ppro ); + delete ppro; + + return 0; +} + +extern "C" int __declspec(dllexport)Load(void) +{ + mir_getLP( &pluginInfo ); + + PROTOCOLDESCRIPTOR pd = { 0 }; + pd.cbSize = sizeof(pd); + pd.szName = "YAHOO"; + pd.type = PROTOTYPE_PROTOCOL; + pd.fnInit = ( pfnInitProto )yahooProtoInit; + pd.fnUninit = ( pfnUninitProto )yahooProtoUninit; + CallService( MS_PROTO_REGISTERMODULE, 0, ( LPARAM )&pd ); + + NETLIBUSER nlu = {0}; + nlu.cbSize = sizeof(nlu); + nlu.flags = NUF_TCHAR | NUF_OUTGOING | NUF_HTTPCONNS; + nlu.szSettingsModule = "YAHOO/libyahoo2"; + nlu.ptszDescriptiveName = TranslateT("YAHOO plugin HTTP connections"); + g_hNetlibUser = ( HANDLE )CallService( MS_NETLIB_REGISTERUSER, 0, ( LPARAM )&nlu ); + + YmsgrLinksInit(); + /** + * Register LibYahoo2 callback functions + */ + register_callbacks(); + + return 0; +} + +/* + * Unload - Unloads plugin + * Parameters: void + */ + +extern "C" int __declspec(dllexport) Unload(void) +{ + LOG(( "Unload" )); + + YmsgrLinksUninit(); + Netlib_CloseHandle( g_hNetlibUser ); + g_instances.destroy(); + return 0; +} + +/* + * MirandaPluginInfoEx - Sets plugin info + * Parameters: (DWORD mirandaVersion) + */ +extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) +{ + return &pluginInfo; +} + +/* + * MirandaInterfaces - Notifies the core of interfaces implemented + * Parameters: none + */ +extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_PROTOCOL, MIID_LAST}; -- cgit v1.2.3