Exemple #1
0
INT_PTR DataWndMenuCommand(WPARAM wParam, LPARAM lParam)
{
	MCONTACT hContact = wParam;
	HWND hwndDlg = WindowList_Find(hWindowList, hContact);
	if (hwndDlg != NULL) {
		DestroyWindow(hwndDlg);
		return 0;
	}

	HWND hTopmost = db_get_b(hContact, MODULENAME, ON_TOP_KEY, 0) ? HWND_TOPMOST : HWND_NOTOPMOST;
	hwndDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_DISPLAY_DATA), NULL, DlgProcDisplayData, (LPARAM) hContact);
	SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM) LoadImage(hInst, MAKEINTRESOURCE(IDI_STICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0));
	if ( db_get_b(NULL, MODULENAME, SAVE_INDIVID_POS_KEY, 0))
		SetWindowPos(hwndDlg, hTopmost,
			db_get_dw(hContact, MODULENAME, "WVx", 100), // Xposition,
			db_get_dw(hContact, MODULENAME, "WVy", 100), // Yposition,
			db_get_dw(hContact, MODULENAME, "WVwidth", 100), // WindowWidth,
			db_get_dw(hContact, MODULENAME, "WVheight", 100), 0); // WindowHeight,
	else
		SetWindowPos(hwndDlg, HWND_TOPMOST, Xposition, Yposition, WindowWidth, WindowHeight, 0);

	ShowWindow(hwndDlg, SW_SHOW);
	SetActiveWindow(hwndDlg);

	if ( db_get_b(NULL, MODULENAME, UPDATE_ON_OPEN_KEY, 0)) {
		if ( db_get_b(hContact, MODULENAME, ENABLE_ALERTS_KEY, 0))
			mir_forkthread(ReadFromFile, (void*)hContact);
		else
			mir_forkthread(GetData, (void*)hContact);
		db_set_w(hContact, MODULENAME, "Status", ID_STATUS_ONLINE);     
	}

	return 0;
}
Exemple #2
0
bool netbios_name::Register()
{
	m_managed = true;

	UCHAR ret = AddName ();
	LOG("Register NetBIOS name \"%s\" on lana %d num=%d : 0x%02x \"%s\"", GetANSIFullName(), m_lana, netbiosed.name_num, ret, GetNetbiosError( ret ) );
	m_registered = (ret == NRC_GOODRET);
	m_duplicated = (ret == NRC_DUPNAME);
	if ( ret != NRC_GOODRET && ret != NRC_DUPNAME )
	{
		WarningBox (NULL, (DWORD)MAKE_HRESULT (0, FACILITY_NETBIOS, ret),
			_T("%s: %s"), TranslateT ("Cannot register NetBIOS name"), (LPCTSTR)CA2T( GetANSIFullName() ) );
	}

	if (!m_term)
		m_term = CreateEvent (NULL, TRUE, FALSE, NULL);
	else
		ResetEvent (m_term);

	if ( m_term && !m_listener )
		m_listener = (HANDLE)mir_forkthread( ListenerThread, this );

	if ( m_term && !m_dgreceiver &&
		// NOTE: Под Win9x нельзя запускать ожидание датаграмм для имён-дубликатов
		// т.к. потом невозможно выбить управление из функции Netbios() даже если
		// разрегистрировать имя
		!m_duplicated )
	{
		m_dgreceiver = (HANDLE)mir_forkthread( DatagramReceiverThread, this );
	}

	return m_registered;
}
Exemple #3
0
int Doubleclick(WPARAM wParam, LPARAM lParam)
{
	MCONTACT hContact = wParam;
	char *szProto = GetContactProto(hContact);
	if ( lstrcmpA(MODULENAME, szProto))
		return 0;

	int action = db_get_b(hContact, MODULENAME, DBLE_WIN_KEY, 1);
	if (action == 0) {
		ptrT url( db_get_tsa(hContact, MODULENAME, "URL"));
		CallService(MS_UTILS_OPENURL, OUF_TCHAR, (WPARAM)url);

		db_set_w(hContact, MODULENAME, "Status", ID_STATUS_ONLINE);     
	}
	else if (action == 1) {
		HWND hwndDlg = WindowList_Find(hWindowList, hContact);
		if (hwndDlg) {
			SetForegroundWindow(hwndDlg);
			SetFocus(hwndDlg);
		}
		else {
			hwndDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_DISPLAY_DATA), NULL, DlgProcDisplayData, (LPARAM) hContact);
			HWND hTopmost = db_get_b(hContact, MODULENAME, ON_TOP_KEY, 0) ? HWND_TOPMOST : HWND_NOTOPMOST;
			SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BM_SETIMAGE, IMAGE_ICON, (LPARAM) ((HICON) LoadImage(hInst, MAKEINTRESOURCE(IDI_STICK), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0)));

			if ( db_get_b(NULL, MODULENAME, SAVE_INDIVID_POS_KEY, 0))
				SetWindowPos(hwndDlg, hTopmost,
					db_get_dw(hContact, MODULENAME, "WVx", 100), // Xposition,
					db_get_dw(hContact, MODULENAME, "WVy", 100), // Yposition,
					db_get_dw(hContact, MODULENAME, "WVwidth", 412), // WindowWidth,
					db_get_dw(hContact, MODULENAME, "WVheight", 350), 0); // WindowHeight,
			else
				SetWindowPos(hwndDlg, HWND_TOPMOST, Xposition, Yposition, WindowWidth, WindowHeight, 0);
		}

		ShowWindow(hwndDlg, SW_SHOW);
		SetActiveWindow(hwndDlg);

		if (db_get_b(NULL, MODULENAME, UPDATE_ON_OPEN_KEY, 0)) {
			if (db_get_b(hContact, MODULENAME, ENABLE_ALERTS_KEY, 0))
				mir_forkthread(ReadFromFile, (void*)hContact);
			else
				mir_forkthread(GetData, (void*)hContact);
			db_set_w(hContact, MODULENAME, "Status", ID_STATUS_ONLINE);     
		}
	}

	return 1;
}
Exemple #4
0
extern "C" int __declspec(dllexport) Load()
{
	mir_getLP(&g_pluginInfo);

	g_MsgIDSkypeControlAPIAttach = ::RegisterWindowMessage(_T("SkypeControlAPIAttach"));
	g_MsgIDSkypeControlAPIDiscover = ::RegisterWindowMessage(_T("SkypeControlAPIDiscover"));
	if ((0 == g_MsgIDSkypeControlAPIAttach) || (0 == g_MsgIDSkypeControlAPIDiscover))
		return 1;

	WNDCLASS oWindowClass = { 0 };
	oWindowClass.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
	oWindowClass.lpfnWndProc = (WNDPROC)&SkypeAPI_WindowProc;
	oWindowClass.hInstance = g_hModule;
	oWindowClass.lpszClassName = g_pszSkypeWndClassName;
	if (!RegisterClass(&oWindowClass))
		return 1;

	g_wndMainWindow = CreateWindowEx(WS_EX_APPWINDOW | WS_EX_WINDOWEDGE,
		g_pszSkypeWndClassName, _T(""), WS_BORDER | WS_SYSMENU | WS_MINIMIZEBOX,
		CW_USEDEFAULT, CW_USEDEFAULT, 128, 128, NULL, 0, g_hModule, 0);
	if (g_wndMainWindow == NULL)
		return 1;

	g_bMirandaIsShutdown = false;
	g_hEventShutdown = ::CreateEvent(NULL, TRUE, FALSE, NULL);

	g_hThread = mir_forkthread(ThreadFunc, NULL);

	HookEvent(ME_PROTO_ACK, SSC_OnProtocolAck);
	HookEvent(ME_SYSTEM_PRESHUTDOWN, SSC_OnPreShutdown);
	HookEvent(ME_OPT_INITIALISE, SSC_OptInitialise);
	return 0;
}
Exemple #5
0
// returns poll thread id on success
DWORD PollCpuUsage(CPUUSAGEAVAILPROC pfnDataAvailProc,LPARAM lParam,DWORD dwDelayMillis)
{
	struct CpuUsageThreadParams *param;
	DWORD idThread=0;
	HANDLE hFirstEvent;

	/* init params */
	param=(struct CpuUsageThreadParams*)mir_alloc(sizeof(struct CpuUsageThreadParams));
	if (param==NULL) return FALSE;
	param->dwDelayMillis=dwDelayMillis;
	param->pfnDataAvailProc=pfnDataAvailProc;
	param->lParam=lParam;
	param->pidThread=&idThread;
	param->hFirstEvent=hFirstEvent=CreateEvent(NULL,FALSE,FALSE,NULL);
	if (hFirstEvent==NULL) {
		mir_free(param);
		return 0;
	}
	/* start thread */
	if ((int)mir_forkthread(WinNT_PollThread, param) != -1)
		WaitForSingleObject(hFirstEvent,INFINITE); /* wait for first success */
	else
		mir_free(param); /* thread not started */
	CloseHandle(hFirstEvent);
	return idThread;
}
//---------------------------------------------------------------------------
int CSendHTTPServer::Send()
{
	if (!m_hContact) return 1;
	if (CallService(MS_HTTP_ACCEPT_CONNECTIONS, TRUE, 0) != 0) {
		Error(LPGENT("Could not start the HTTP Server plugin."));
		Exit(ACKRESULT_FAILED);
		return !m_bAsync;
	}

	if (!m_pszFileName) {
		m_pszFileName = GetFileNameA(m_pszFile);
	}
	mir_freeAndNil(m_fsi_pszSrvPath);
	mir_stradd(m_fsi_pszSrvPath, "/");
	mir_stradd(m_fsi_pszSrvPath, m_pszFileName);

	replaceStr(m_fsi_pszRealPath, _T2A(m_pszFile));

	memset(&m_fsi, 0, sizeof(m_fsi));
	m_fsi.lStructSize = sizeof(STFileShareInfo);
	m_fsi.pszSrvPath = m_fsi_pszSrvPath;
	m_fsi.nMaxDownloads = -1;					// -1 = infinite
	m_fsi.pszRealPath = m_fsi_pszRealPath;

	//start Send thread
	mir_forkthread(&CSendHTTPServer::SendThreadWrapper, this);
	return 0;
}
Exemple #7
0
INT_PTR __cdecl CIrcProto::Scripting_InsertGuiOut(WPARAM, LPARAM lParam)
{
	GCHOOK* gch = (GCHOOK*)lParam;

	if (m_scriptingEnabled && gch) {
		GCHOOK* gchook = new GCHOOK;
		gchook->pDest = new GCDEST;

		gchook->dwData = gch->dwData;
		gchook->pDest->iType = gch->pDest->iType;
		if (gch->ptszText)
			gchook->ptszText = _tcsdup(gch->ptszText);
		else gchook->ptszText = NULL;

		if (gch->ptszUID)
			gchook->ptszUID = _tcsdup(gch->ptszUID);
		else
			gchook->ptszUID = NULL;

		if (gch->pDest->ptszID) {
			CMString S = MakeWndID(gch->pDest->ptszID);
			gchook->pDest->ptszID = _tcsdup(S.c_str());
		}
		else gchook->pDest->ptszID = NULL;

		if (gch->pDest->pszModule)
			gchook->pDest->pszModule = _strdup(gch->pDest->pszModule);
		else gchook->pDest->pszModule = NULL;

		mir_forkthread(GuiOutThread, gchook);
		return 0;
	}

	return 1;
}
Exemple #8
0
void InitCacheAsync()
{
	InitializeCriticalSection(&gtaCS);
	hgtaWakeupEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
	g_hGetTextAsyncThread = mir_forkthread(gtaThreadProc, 0);
	HookEvent(ME_SYSTEM_PRESHUTDOWN, gtaOnModulesUnload);
}
BOOL JabberFtHandleBytestreamRequest( XmlNode *iqNode )
{
	XmlNode *queryNode;
	TCHAR* sid;
	JABBER_LIST_ITEM *item;
	JABBER_BYTE_TRANSFER *jbt;

	if ( iqNode == NULL ) return FALSE;
	if (( queryNode=JabberXmlGetChildWithGivenAttrValue( iqNode, "query", "xmlns", _T("http://jabber.org/protocol/bytestreams")))!=NULL &&
		( sid=JabberXmlGetAttrValue( queryNode, "sid" ))!=NULL &&
		( item=JabberListGetItemPtr( LIST_FTRECV, sid ))!=NULL ) {
		// Start Bytestream session
		jbt = ( JABBER_BYTE_TRANSFER * ) mir_alloc( sizeof( JABBER_BYTE_TRANSFER ));
		ZeroMemory( jbt, sizeof( JABBER_BYTE_TRANSFER ));
		jbt->iqNode = JabberXmlCopyNode( iqNode );
		jbt->pfnRecv = JabberFtReceive;
		jbt->pfnFinal = JabberFtReceiveFinal;
		jbt->userdata = item->ft;
		item->ft->jbt = jbt;
		mir_forkthread(( pThreadFunc )JabberByteReceiveThread, jbt );
		JabberListRemove( LIST_FTRECV, sid );
		return TRUE;
	}

	JabberLog( "File transfer invalid bytestream initiation request received" );
	return FALSE;
}
Exemple #10
0
int QuotesEventFunc_OnModulesLoaded(WPARAM, LPARAM)
{
	CHTTPSession::Init();

	g_hEventWorkThreadStop = ::CreateEvent(NULL, TRUE, FALSE, NULL);
	HookEvent(ME_USERINFO_INITIALISE, QuotesEventFunc_OnUserInfoInit);

	HookEvent(ME_CLIST_DOUBLECLICKED, Quotes_OnContactDoubleClick);

	HookEvent(ME_TTB_MODULELOADED, Quotes_OnToolbarLoaded);

	g_bAutoUpdate = 1 == db_get_b(NULL, QUOTES_MODULE_NAME, DB_STR_AUTO_UPDATE, 1);

	InitMenu();

	BOOL b = ::ResetEvent(g_hEventWorkThreadStop);
	assert(b && "Failed to reset event");

	const CModuleInfo::TQuotesProvidersPtr& pProviders = CModuleInfo::GetQuoteProvidersPtr();
	const CQuotesProviders::TQuotesProviders& rapProviders = pProviders->GetProviders();
	for (CQuotesProviders::TQuotesProviders::const_iterator i = rapProviders.begin(); i != rapProviders.end(); ++i) {
		const CQuotesProviders::TQuotesProviderPtr& pProvider = *i;
		g_ahThreads.push_back(mir_forkthread(WorkingThread, pProvider.get()));
	}

	return 0;
}
Exemple #11
0
//---------------------------------------------------------------------------
int CSendHost_Imgur::Send()
{
	if (!g_hNetlibUser) { /// check Netlib
		Error(SS_ERR_INIT, m_pszSendTyp);
		Exit(ACKRESULT_FAILED);
		return !m_bAsync;
	}
	memset(&m_nlhr, 0, sizeof(m_nlhr));
	char* tmp; tmp = mir_t2a(m_pszFile);
	HTTPFormData frm[] = {
		{ "Authorization", HTTPFORM_HEADER("Client-ID 2a7303d78abe041") },
		{ "image", HTTPFORM_FILE(tmp) },
		//		{"name",""},// filename (detected if multipart / form-data)
		//		{"title",""},
		//		{"description",""},
	};
	int error = HTTPFormCreate(&m_nlhr, REQUEST_POST, "https://api.imgur.com/3/image", frm, sizeof(frm) / sizeof(HTTPFormData));
	mir_free(tmp);
	if (error)
		return !m_bAsync;
	/// start upload thread
	if (m_bAsync) {
		mir_forkthread(&CSendHost_Imgur::SendThread, this);
		return 0;
	}
	SendThread(this);
	return 1;
}
Exemple #12
0
int StartServer()
{
	int failure = 1;
	if (sdCmdLine)
	{
		if (sdCmdLine->instances == 0)
		{
			HANDLE server = mir_forkthread(ServerWorkerThread);
			if (server)
			{
				wchar_t path[MIMFOLDER_SIZE];
				GetModuleFileNameW(GetModuleHandle(nullptr), path, _countof(path));
				wchar_t *p = wcsrchr(path, '\\');
				if (p) *p = 0;
				wcsncpy_s(sdCmdLine->mimFolder, path, _TRUNCATE);
				sdCmdLine->instances++;

				failure = 0;
			}
			else PUShowMessageT(TranslateT("Could not create CommandLine listening server!"), SM_WARNING);
		}
		else MessageBox(nullptr, TranslateT("You can only run one instance of CmdLine plugin."), TranslateT("Error"), MB_ICONERROR | MB_OK);
	}

	return failure;
}
void InitCacheAsync()
{
	InitializeCriticalSection(&gtaCS);
	hgtaWakeupEvent=CreateEvent(NULL,FALSE,FALSE,NULL);
	g_dwGetTextAsyncThreadID=(DWORD)mir_forkthread((pThreadFunc)gtaThreadProc,0);
	ModernHookEvent(ME_SYSTEM_PRESHUTDOWN,  gtaOnModulesUnload);
}
Exemple #14
0
INT_PTR ShakeChat(WPARAM wParam, LPARAM lParam)
{
	if (((HANDLE)wParam) == NULL) return -1;

	//char srmmName[100];
	MessageWindowData mwd;
	MessageWindowInputData mwid;

	mwd.cbSize = sizeof(MessageWindowData);
	mwd.hContact = db_mc_tryMeta(wParam);
	mwd.uFlags = MSG_WINDOW_UFLAG_MSG_BOTH;

	mwid.cbSize = sizeof(MessageWindowInputData);
	mwid.hContact = mwd.hContact;
	mwid.uFlags = MSG_WINDOW_UFLAG_MSG_BOTH;


	CallService(MS_MSG_GETWINDOWDATA, (WPARAM)&mwid, (LPARAM)&mwd);
	//CallService(MS_MSG_GETWINDOWCLASS,(WPARAM)srmmName,(LPARAM)100 );

	HWND parent;
	HWND hWnd = mwd.hwndWindow;
	while ((parent = GetParent(hWnd)) != 0) hWnd = parent; // ensure we have the top level window (need parent window for scriver & tabsrmm)

	mir_forkthread(ShakeChatWindow, (void*)hWnd);
	return 0;
}
Exemple #15
0
void ScheduleThread(void*)
{
	time_t waitTime = INFINITE;

	while (true)
	{
wait:	WaitForSingleObject(hScheduleEvent, waitTime);

		while (ScheduleTask *task = tasks[0])
		{
			if (Miranda_Terminated())
				return;

			mir_cslock lock(threadLock);

			time_t timestamp = time(NULL);
			if (task->timestamp > timestamp)
			{
				waitTime = (task->timestamp - timestamp - 1) * 1000;
				goto wait;
			}

			tasks.remove(task);

			mir_forkthread(ExecuteTaskThread, task);
		}

		waitTime = INFINITE;
	}
}
Exemple #16
0
void InvokeThreadServer()
{
	HANDLE hMainThread = 0;
	DuplicateHandle(GetCurrentProcess(), GetCurrentThread(), GetCurrentProcess(), &hMainThread, THREAD_SET_CONTEXT, false, 0);
	if (hMainThread != 0)
		mir_forkthread(&ThreadServer, hMainThread);
}
Exemple #17
0
int OpenAvatarDialog(MCONTACT hContact, char* fn)
{
	HWND hAvatarWindow = WindowList_Find(hAvatarWindowsList, hContact);
	if (hAvatarWindow)
	{
		SetForegroundWindow(hAvatarWindow);
		SetFocus(hAvatarWindow);
		return 0;
	}

	struct AvatarDialogData *avdlg = (struct AvatarDialogData*)malloc(sizeof(struct AvatarDialogData));
	memset(avdlg, 0, sizeof(struct AvatarDialogData));
	avdlg->hContact = hContact;
	if (fn == NULL)
	{
		avdlg->fn[0] = _T('\0');
	}
	else
	{
		MultiByteToWideChar(CP_ACP, 0, fn, -1, avdlg->fn, _countof(avdlg->fn));
	}

	CloseHandle(mir_forkthread(AvatarDialogThread, (void*)avdlg));
	return 0;
}
//************************************************************************
// Constructor
//************************************************************************
CLCDConnectionLogitech::CLCDConnectionLogitech()
{
	m_iNumQVGADevices = 0;
	m_iNumBWDevices = 0;

	m_pDrawingBuffer = NULL;
	m_pConnectedDevice = NULL;
	m_hKeyboardHook = NULL;
	m_bVolumeWheelHook = false;

	m_dwButtonState = 0;
	m_bConnected = false;
	m_bSetAsForeground = false;
	m_dwForegroundCheck = 0;

	m_hHIDDeviceHandle = NULL;
	m_hConnection = LGLCD_INVALID_CONNECTION;
	m_hDevice = LGLCD_INVALID_DEVICE;

	m_bIsForeground = false;

	m_hDrawEvent = NULL;
	m_hStopEvent = NULL;

	CLCDConnectionLogitech::m_pInstance = this;

	m_hDrawingThread = mir_forkthread(initializeDrawingThread, (void*)this);
}
Exemple #19
0
static int ModulesLoaded(WPARAM, LPARAM)
{
	TCHAR eventPrefix[MAX_PATH + 1], eventName[MAX_PATH + 1];

	createProtocolList();
	LoadSettings();

	// Create some synchronisation objects
	createEventPrefix(eventPrefix, MAX_PATH - 11);
	mir_sntprintf(eventName, _T("%s/FlashEvent"), eventPrefix);
	hFlashEvent = CreateEvent(NULL, FALSE, FALSE, eventName);
	mir_sntprintf(eventName, _T("%s/ExitEvent"), eventPrefix);
	hExitEvent = CreateEvent(NULL, FALSE, FALSE, eventName);

	hThread = mir_forkthread(FlashThreadFunction, 0);

	HookEvent(ME_MC_ENABLED, OnMetaChanged);
	HookEvent(ME_DB_EVENT_ADDED, PluginMessageEventHook);
	HookEvent(ME_OPT_INITIALISE, InitializeOptions);

	CreateServiceFunction(MS_KBDNOTIFY_ENABLE, EnableService);
	CreateServiceFunction(MS_KBDNOTIFY_DISABLE, DisableService);
	CreateServiceFunction(MS_KBDNOTIFY_STARTBLINK, StartBlinkService);
	CreateServiceFunction(MS_KBDNOTIFY_EVENTSOPENED, EventsWereOpenedService);
	CreateServiceFunction(MS_KBDNOTIFY_FLASHINGACTIVE, IsFlashingActiveService);
	CreateServiceFunction(MS_KBDNOTIFY_NORMALSEQUENCE, NormalizeSequenceService);
	return 0;
}
Exemple #20
0
void ShowInfoMessage(BYTE flags, const char *pszTitle, const char *pszTextFmt, ...)
{
	va_list va;
	va_start(va, pszTextFmt);
	char szText[256]; /* max for systray */
	mir_vsnprintf(szText, SIZEOF(szText), pszTextFmt, va);
	va_end(va);

	if (ServiceExists(MS_CLIST_SYSTRAY_NOTIFY)) {
		MIRANDASYSTRAYNOTIFY msn;
		msn.cbSize = sizeof(msn);
		msn.szProto = NULL;
		msn.szInfoTitle = (char*)pszTitle;
		msn.szInfo = (char*)szText;
		msn.uTimeout = 30000; /* max timeout */
		msn.dwInfoFlags = flags;
		if (!CallServiceSync(MS_CLIST_SYSTRAY_NOTIFY, 0, (LPARAM)&msn))
			return; /* success */
	}

	MSGBOXPARAMSA *mbp = (MSGBOXPARAMSA*)mir_calloc(sizeof(*mbp));
	if (mbp == NULL) return;
	mbp->cbSize = sizeof(*mbp);
	mbp->lpszCaption = mir_strdup(pszTitle);
	mbp->lpszText = mir_strdup(szText);
	mbp->dwStyle = MB_OK|MB_SETFOREGROUND|MB_TASKMODAL;
	mbp->dwLanguageId = LANGIDFROMLCID((LCID)CallService(MS_LANGPACK_GETLOCALE, 0, 0));
	switch(flags&NIIF_ICON_MASK) {
		case NIIF_INFO:    mbp->dwStyle |= MB_ICONINFORMATION; break;
		case NIIF_WARNING: mbp->dwStyle |= MB_ICONWARNING; break;
		case NIIF_ERROR:   mbp->dwStyle |= MB_ICONERROR;
	}
	mir_forkthread(( pThreadFunc )MessageBoxIndirectFree, mbp);
}
Exemple #21
0
INT_PTR PluginMenuCommand(WPARAM hContact, LPARAM)
{
	if (!optionWindowIsOpen)
		mir_forkthread(Check_ThreadFunc, GetAccountByContact(hContact));

	return 0;
}
Exemple #22
0
void StartBlinkAction(char *flashSequence, WORD eventMaxSeconds)
{
	if (eventMaxSeconds)
		mir_forkthread(ForceEventsWereOpenedThread, (void *)eventMaxSeconds);

	CallService(MS_KBDNOTIFY_STARTBLINK, 1, (LPARAM)flashSequence);
}
Exemple #23
0
static void __stdcall LaunchDialog(void *param)
{
	if (opts.bSilentMode && opts.bSilent)
		mir_forkthread(DlgUpdateSilent, param);
	else
		hwndDialog = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_UPDATE), GetDesktopWindow(), DlgUpdate, (LPARAM)param);
}
// Init AniAva module
int AniAva_InitModule()
{
	memset(&AniAva,0,sizeof(AniAva));
	if (g_CluiData.fGDIPlusFail) return 0;
	if (!( ModernGetSettingByte(NULL,"CList","AvatarsAnimated",(ServiceExists(MS_AV_GETAVATARBITMAP)&&!g_CluiData.fGDIPlusFail))
		&& ModernGetSettingByte(NULL,"CList","AvatarsShow",SETTINGS_SHOWAVATARS_DEFAULT) ) ) return 0;
	{
		WNDCLASSEX wc;
		ZeroMemory(&wc, sizeof(wc));
		wc.cbSize         = sizeof(wc);
		wc.lpszClassName  = ANIAVAWINDOWCLASS;
		wc.lpfnWndProc    = _AniAva_WndProc;
		wc.hCursor        = LoadCursor(NULL, IDC_ARROW);
		wc.cbWndExtra     = sizeof(ANIAVA_WINDOWINFO*);
		wc.hbrBackground  = 0;
		wc.style          = CS_GLOBALCLASS;
		RegisterClassEx(&wc);
	}
	InitializeCriticalSection(&AniAva.CS);
	AniAva.Objects=li.List_Create(0,2);
	AniAva.AniAvatarList=li.List_Create(0,1);
	AniAva.AniAvatarList->sortFunc=_AniAva_SortAvatarInfo;
	AniAva.bModuleStarted=TRUE;
	AniAva.hExitEvent=CreateEvent(NULL,FALSE,FALSE,NULL);
	AniAva.AnimationThreadID=(DWORD)mir_forkthread(_AniAva_AnimationTreadProc, (void*)AniAva.hExitEvent);
	ModernHookEvent(ME_SYSTEM_PRESHUTDOWN,  _AniAva_OnModulesUnload);

	_AniAva_LoadOptions();

	return 1;
}
Exemple #25
0
int ModulesLoaded(WPARAM, LPARAM)
{
	HookEvent(ME_OPT_INITIALISE, OptInitialise);

	hHookDisplayDataAlert = CreateHookableEvent(ME_DISPLAYDATA_ALERT);
	HookEvent(ME_DISPLAYDATA_ALERT, DataWndAlertCommand);

	hHookAlertPopup = CreateHookableEvent(ME_POPUP_ALERT);
	HookEvent(ME_POPUP_ALERT, PopupAlert);

	hHookErrorPopup = CreateHookableEvent(ME_POPUP_ERROR);
	HookEvent(ME_POPUP_ERROR, ErrorMsgs);

	hHookAlertOSD = CreateHookableEvent(ME_OSD_ALERT);
	HookEvent(ME_OSD_ALERT, OSDAlert);

	FontSettings();
	h_font = CreateFontIndirect(&lf);

	// get data on startup
	if ( db_get_b(NULL, MODULENAME, UPDATE_ONSTART_KEY, 0))
		mir_forkthread(StartUpdate, NULL);

	return 0;
}
Exemple #26
0
INT_PTR CheckFeed(WPARAM hContact, LPARAM)
{
	if(IsMyContact(hContact))
		UpdateListAdd(hContact);
	if ( !ThreadRunning)
		mir_forkthread(UpdateThreadProc, FALSE);
	return 0;
}
Exemple #27
0
void ConnectionOpen(HANDLE hNewConnection, DWORD dwRemoteIP)
{
	in_addr stAddr;
	stAddr.S_un.S_addr = htonl(dwRemoteIP);

	CLHttpUser *pclUser = new CLHttpUser(hNewConnection, stAddr);
	mir_forkthread(HandleNewConnection, pclUser);
}
Exemple #28
0
void InitPolls()
{
	waitTime = REQUEST_WAIT_TIME;
	InitializeCriticalSection(&cs);

	// Init request queue
	mir_forkthread(RequestThread, NULL);
}
Exemple #29
0
// can't do this on unload, since other plugins will be have already been unloaded, but their hooks
// for setting changed event not cleared. the backup on exit function will write to the db, calling those hooks.
int PreShutdown(WPARAM, LPARAM)
{
	if (options.backup_types & BT_EXIT) {
		options.disable_popups = 1; // Don't try to show popups on exit
		mir_forkthread(BackupThread, NULL);
	}
	return 0;
}
Exemple #30
0
void previewFlashing(BOOL buttonState)
{
    bPreview = buttonState;
    if (!bPreview || bPreviewSemaphore) // turn off flashing or already running
        return;

    bPreviewSemaphore = TRUE;
    mir_forkthread(PreviewThread, 0);
}