CDropbox::CDropbox() { PROTOCOLDESCRIPTOR pd = { PROTOCOLDESCRIPTOR_V3_SIZE }; pd.szName = MODULE; pd.type = PROTOTYPE_VIRTUAL; CallService(MS_PROTO_REGISTERMODULE, 0, (LPARAM)&pd); HookEventObj(ME_PROTO_ACK, OnProtoAck, this); HookEventObj(ME_SYSTEM_PRESHUTDOWN, OnPreShutdown, this); HookEventObj(ME_SYSTEM_MODULESLOADED, OnModulesLoaded, this); hFileSentEventHook = CreateHookableEvent(ME_DROPBOX_SENT); CreateServiceFunctionObj(MS_DROPBOX_SEND_FILE, SendFileToDropbox, this); CreateProtoServiceFunction(MODULE, PS_GETCAPS, ProtoGetCaps); CreateProtoServiceFunctionObj(PSS_FILEW, ProtoSendFile, this); CreateProtoServiceFunctionObj(PSS_MESSAGE, ProtoSendMessage, this); CreateProtoServiceFunctionObj(PSR_MESSAGE, ProtoReceiveMessage, this); InitializeIcons(); InitializeMenus(); commands["help"] = CDropbox::CommandHelp; commands["content"] = CDropbox::CommandContent; commands["share"] = CDropbox::CommandShare; commands["delete"] = CDropbox::CommandDelete; hFileProcess = hMessageProcess = 1; hDefaultContact = hTransferContact = 0; }
HANDLE CDropbox::CreateProtoServiceFunctionObj(const char *szService, MIRANDASERVICEOBJ serviceProc, void *obj) { char str[MAXMODULELABELLENGTH]; mir_snprintf(str, "%s%s", MODULE, szService); str[MAXMODULELABELLENGTH - 1] = 0; return CreateServiceFunctionObj(str, serviceProc, obj); }
CDropbox::CDropbox() : transfers(1, HandleKeySortT) { PROTOCOLDESCRIPTOR pd = { 0 }; pd.cbSize = sizeof(pd); pd.szName = MODULE; pd.type = PROTOTYPE_VIRTUAL; Proto_RegisterModule(&pd); HookEvent(ME_PROTO_ACK, OnProtoAck); HookEvent(ME_SYSTEM_PRESHUTDOWN, OnPreShutdown); HookEventObj(ME_SYSTEM_MODULESLOADED, GlobalEvent<&CDropbox::OnModulesLoaded>, this); hFileSentEventHook = CreateHookableEvent(ME_DROPBOX_SENT); CreateServiceFunctionObj(MS_DROPBOX_SEND_FILE, GlobalService<&CDropbox::SendFileToDropbox>, this); CreateProtoServiceFunction(MODULE, PS_GETCAPS, ProtoGetCaps); CreateProtoServiceFunction(MODULE, PS_GETNAME, ProtoGetName); CreateProtoServiceFunction(MODULE, PS_LOADICON, ProtoLoadIcon); CreateProtoServiceFunctionObj(PS_GETSTATUS, GlobalService<&CDropbox::ProtoGetStatus>, this); CreateProtoServiceFunctionObj(PSS_FILE, GlobalService<&CDropbox::ProtoSendFile>, this); CreateProtoServiceFunctionObj(PSS_FILECANCEL, GlobalService<&CDropbox::ProtoCancelFile>, this); CreateProtoServiceFunctionObj(PSS_MESSAGE, GlobalService<&CDropbox::ProtoSendMessage>, this); CreateProtoServiceFunction(MODULE, PSR_MESSAGE, ProtoReceiveMessage); InitializeMenus(); hFileProcess = hMessageProcess = 1; }
void CDropbox::InitializeMenus() { CLISTMENUITEM mi = { 0 }; mi.cbSize = sizeof(CLISTMENUITEM); mi.flags = CMIF_TCHAR; mi.pszService = MODULE"/SendFilesToDropbox"; mi.ptszName = LPGENT("Send files to Dropbox"); mi.position = -2000020000 + CMI_SEND_FILES; mi.icolibItem = LoadSkinnedIconHandle(SKINICON_EVENT_FILE); contactMenuItems[CMI_SEND_FILES] = Menu_AddContactMenuItem(&mi); CreateServiceFunctionObj(mi.pszService, SendFilesToDropbox, this); }
void CIrcProto::CreateProtoService( const char* serviceName, IrcServiceFunc pFunc ) { char temp[MAXMODULELABELLENGTH]; mir_snprintf( temp, sizeof(temp), "%s%s", m_szModuleName, serviceName ); CreateServiceFunctionObj( temp, ( MIRANDASERVICEOBJ )*( void** )&pFunc, this ); }
void CDb3Mmap::InitDialogs() { hService = CreateServiceFunctionObj(MS_DB_CHANGEPASSWORD, ChangePassword, this); hHook = HookEventObj(ME_SYSTEM_MODULESLOADED, OnModulesLoaded, this); }
void CDbxMmapSA::InitDialogs() { HookEventObj(ME_SYSTEM_MODULESLOADED, InitMenus, this); CreateServiceFunctionObj(MS_DB_CHANGEPASSWORD, ChangePassword, this); }