void Synchronizer::_registerWndClass() // Win32-only { if (sm_iClass) { UT_DEBUGMSG(("Skipping window class registration\n")); return; } AbiCollabSessionManager * pSessionManager = AbiCollabSessionManager::getManager(); UT_return_if_fail(pSessionManager); HINSTANCE hInstance = pSessionManager->getInstance(); UT_return_if_fail(hInstance); WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = Synchronizer::s_wndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = NULL; wc.hCursor = NULL; wc.hbrBackground = NULL; wc.lpszMenuName = NULL; wc.lpszClassName = SYNC_CLASSNAME; sm_iClass = RegisterClass(&wc); UT_return_if_fail(sm_iClass); sm_iMessageWindows = 0; }
TCPWin32AccountHandler::TCPWin32AccountHandler() : TCPAccountHandler(), m_pWin32Dialog(NULL), m_hInstance(NULL), m_hServerEntry(NULL), m_hPortEntry(NULL), m_hServerRadio(NULL), m_hJoinRadio(NULL), m_hServerLabel(NULL), m_hPortLabel(NULL), m_hAllowAllCheck(NULL), m_hAutoconnectCheck(NULL) { AbiCollabSessionManager * pSessionManager = AbiCollabSessionManager::getManager(); if (pSessionManager) { m_hInstance = pSessionManager->getInstance(); } }
Synchronizer::Synchronizer(boost::function<void ()> signalhandler) // Win32 Implementation : m_signalhandler(signalhandler), m_hWnd(0), m_bIsProcessing(false), m_iDeferredMessages(0), m_bIsDestroyed(NULL) { UT_DEBUGMSG(("Synchronizer()\n")); AbiCollabSessionManager * pSessionManager = AbiCollabSessionManager::getManager(); UT_return_if_fail(pSessionManager); HINSTANCE hInstance = pSessionManager->getInstance(); UT_return_if_fail(hInstance); _registerWndClass(); // HWND_MESSAGE as parent HWND is Win2k/xp/vista only - replaced with 0 // (also HWND_MESSAGE doesn't compile in MinGW, weird bug. --RP 8 August 2007) m_hWnd = CreateWindow(SYNC_CLASSNAME, "AbiCollab", 0, CW_USEDEFAULT, SW_HIDE, CW_USEDEFAULT, CW_USEDEFAULT, HWND_MESSAGE, NULL, hInstance, (void *) this ); UT_DEBUGMSG(("Created message window: HWND 0x%x\n", m_hWnd)); switch ((INT_PTR)m_hWnd) { case NULL: UT_DEBUGMSG(("Win32 error: %d.\n", GetLastError())); break; default: sm_iMessageWindows++; break; // ok! }; }
void Synchronizer::_unregisterWndClass() // Win32-only { UT_DEBUGMSG(("Synchronizer::_unregisterWndClass()\n")); UT_return_if_fail(sm_iClass); if (sm_iMessageWindows > 0) { UT_DEBUGMSG(("%d message windows still exist, skipping unregistering\n", sm_iMessageWindows)); return; } AbiCollabSessionManager * pManager = AbiCollabSessionManager::getManager(); UT_return_if_fail(pManager); HINSTANCE hInstance = pManager->getInstance(); UT_return_if_fail(hInstance); UT_DEBUGMSG(("Unregistrating message window class\n")); UT_return_if_fail(UnregisterClass(SYNC_CLASSNAME, hInstance)); sm_iClass = 0; }