HRESULT CHTFileTransferSystemServiceModule::RegisterAppId(bool bService) throw() { HRESULT hr = S_OK; BOOL res = CAtlServiceModuleT<CHTFileTransferSystemServiceModule, IDS_SERVICENAME>::RegisterAppId(bService); if(bService) { if(IsInstalled()) { SC_HANDLE hSCM = ::OpenSCManagerW(NULL, NULL, SERVICE_CHANGE_CONFIG); SC_HANDLE hService = NULL; if (hSCM == NULL) hr = AtlHresultFromLastError(); else { hService = ::OpenService(hSCM, m_szServiceName, SERVICE_CHANGE_CONFIG); if(hService != NULL) { const int m_szServiceNameLen = 4096; const int m_szServiceDescriptionLen = 2000; CAString strServiceDescription = L"HTFileTransferSystemService"; SERVICE_DESCRIPTION sdBuf = {strServiceDescription.GetBuffer(0)}; strServiceDescription.ReleaseBuffer(); res = ChangeServiceConfig2(hService, SERVICE_CONFIG_DESCRIPTION, &sdBuf); if (res) { res = ChangeServiceConfig( hService, // handle of service SERVICE_WIN32_OWN_PROCESS | SERVICE_INTERACTIVE_PROCESS, // service type: no change SERVICE_AUTO_START, // service start type SERVICE_NO_CHANGE, // error control: no change NULL, // binary path: no change NULL, // load order group: no change NULL, // tag ID: no change NULL, // dependencies: no change NULL, // account name: no change NULL, // password: no change NULL); if (res != 0) { hr = AtlHresultFromLastError(); } } else { hr = AtlHresultFromLastError(); } ::CloseServiceHandle(hService); } else { hr = AtlHresultFromLastError(); } ::CloseServiceHandle(hSCM); } } } return hr; }
HRESULT CNdasEventMonitor::Initialize() { HRESULT hr; // Initialize routine is reentrant if (m_HeartbeatMonitorTimer.IsInvalid()) { // Auto-reset waitable timer m_HeartbeatMonitorTimer = ::CreateWaitableTimer(NULL, FALSE, NULL); if (m_HeartbeatMonitorTimer.IsInvalid()) { hr = AtlHresultFromLastError(); XTLTRACE2(NDASSVC_EVENTMON, TRACE_LEVEL_ERROR, "Timer creation failed, hr=0x%X\n", hr); return hr; } } if (m_NdasLogicalUnitSetChanged.IsInvalid()) { m_NdasLogicalUnitSetChanged = ::CreateEvent(NULL, TRUE, FALSE, NULL); if (m_NdasLogicalUnitSetChanged.IsInvalid()) { hr = AtlHresultFromLastError(); XTLTRACE2(NDASSVC_EVENTMON, TRACE_LEVEL_ERROR, "Logical device set change event creation failed, hr=0x%X\n", hr); return hr; } } if (!m_NdasDeviceDataLock.Initialize()) { hr = AtlHresultFromLastError(); XTLTRACE2(NDASSVC_EVENTMON, TRACE_LEVEL_ERROR, "Device ReaderWriterLock initialization failed, hr=0x%X\n", hr); return hr; } if (!m_NdasLogicalUnitDataLock.Initialize()) { hr = AtlHresultFromLastError(); XTLTRACE2(NDASSVC_EVENTMON, TRACE_LEVEL_ERROR, "LogDevice ReaderWriterLock initialization failed, hr=0x%X\n", hr); return hr; } return S_OK; }
EXTERN_C HRESULT WINAPI BKEngLoad(LPCWSTR lpszEngineDir) { if (g_hMod_bkeng) return S_FALSE; CWinPath pathEngineDir; if (lpszEngineDir) { pathEngineDir = lpszEngineDir; } else { pathEngineDir.GetModuleFileName((HMODULE)&__ImageBase); pathEngineDir.RemoveFileSpec(); } pathEngineDir.AddBackslash(); g_hMod_bkeng = ::LoadLibrary(pathEngineDir.m_strPath + BKMOD_NAME_BKENG); if (!g_hMod_bkeng) return GetLastError() ? AtlHresultFromLastError() : E_FAIL; g_hMod_bkatr = ::LoadLibrary(pathEngineDir.m_strPath + BKMOD_NAME_BKATRUN); g_hMod_bkbak = ::LoadLibrary(pathEngineDir.m_strPath + BKMOD_NAME_BKBAK); g_hMod_bkdb = ::LoadLibrary(pathEngineDir.m_strPath + BKMOD_NAME_BKDB); g_hMod_bkcache = ::LoadLibrary(pathEngineDir.m_strPath + BKMOD_NAME_BKCACHE); return S_OK; }
HRESULT CNdasDeviceHeartbeatListener::Initialize() { if (!m_datalock.Initialize()) { return AtlHresultFromLastError(); } return S_OK; }
/*********************************************************************** * CreateWmpOcx * Create a hidden WMP OCX ***********************************************************************/ HRESULT CMainDlg::CreateWmpOcx() { CComPtr<IAxWinHostWindow> spHost; RECT rect = {0, 0, 0, 0}; HRESULT hr = E_FAIL; CComPtr<IObjectWithSite> spHostObject; CComObject<CWMPRemoteHost> *pRemoteHost = NULL; IUnknown *punkSite = NULL; m_pView = new CAxWindow(); hr = m_pView ? S_OK : AtlHresultFromLastError(); if(SUCCEEDED(hr) && m_pView) { m_pView->Create(m_hWnd, rect, NULL, WS_CHILD | WS_VISIBLE); if(::IsWindow(m_pView->m_hWnd)) { hr = m_pView->QueryHost(IID_IObjectWithSite, (void **)&spHostObject); } if(SUCCEEDED(hr) && spHostObject.p) { hr = CComObject<CWMPRemoteHost>::CreateInstance(&pRemoteHost); if(pRemoteHost) { hr = ((IUnknown *)(IWMPRemoteMediaServices *)pRemoteHost)->QueryInterface(IID_IUnknown, (void **)&punkSite); } } if(SUCCEEDED(hr) && punkSite) { hr = spHostObject->SetSite(punkSite); punkSite->Release(); punkSite = NULL; } if(SUCCEEDED(hr)) { hr = m_pView->QueryHost(&spHost); } if(SUCCEEDED(hr) && spHost.p) { hr = spHost->CreateControl(L"{6BF52A52-394A-11d3-B153-00C04F79FAA6}", m_pView->m_hWnd, 0); } if(SUCCEEDED(hr)) { hr = m_pView->QueryControl(&m_spPlayer); } } return hr; }
HRESULT CNdasCommandServer::Initialize() { m_hProcSemaphore = ::CreateSemaphore(NULL, 0, MaxPipeInstances, NULL); if (m_hProcSemaphore.IsInvalid()) { HRESULT hr = AtlHresultFromLastError(); return hr; } return S_OK; }
EXTERN_C HRESULT WINAPI BKEngCreateObject(REFIID riid, void** ppvObj, DWORD dwBKEngVer) { if (!g_hMod_bkeng) return E_HANDLE; PFN_BKEngCreateObject pfn = (PFN_BKEngCreateObject)::GetProcAddress(g_hMod_bkeng, FN_BKEngCreateObject); if (!pfn) return GetLastError() ? AtlHresultFromLastError() : E_FAIL; return pfn(riid, ppvObj, dwBKEngVer); }
EXTERN_C HRESULT WINAPI BKEngUninitialize() { if (!g_hMod_bkeng) return E_HANDLE; PFN_BKEngUninitialize pfn = (PFN_BKEngUninitialize)::GetProcAddress(g_hMod_bkeng, FN_BKEngUninitialize); if (!pfn) return GetLastError() ? AtlHresultFromLastError() : E_FAIL; return pfn(); }
EXTERN_C HRESULT WINAPI BKEngInitialize(Skylark::BKENG_PLATFORM_INIT* pInit) { if (!g_hMod_bkeng) return E_HANDLE; PFN_BKEngInitialize pfn = (PFN_BKEngInitialize)::GetProcAddress(g_hMod_bkeng, FN_BKEngInitialize); if (!pfn) return GetLastError() ? AtlHresultFromLastError() : E_FAIL; return pfn(pInit); }
static HRESULT _ExpandFullPathName( CString& strPathName ) { DWORD dwLen = ::GetFullPathName(strPathName, 0, NULL, NULL); if (0 == dwLen) return GetLastError() ? AtlHresultFromLastError() : E_FAIL; assert(dwLen <= WIN_PATH_MAX_UNICODE_PATH); if (dwLen > WIN_PATH_MAX_UNICODE_PATH) return E_UNEXPECTED; CString strFullPathName; dwLen = ::GetFullPathName(strPathName, dwLen, strFullPathName.GetBuffer(dwLen), NULL); if (0 == dwLen) { strFullPathName.ReleaseBuffer(0); return GetLastError() ? AtlHresultFromLastError() : E_FAIL; } strFullPathName.ReleaseBuffer(); strPathName = strFullPathName; return S_OK; }
HRESULT CloseHandle(HANDLE hObject) { // Users should do any shutdown operation required here. // Generally, this means just closing the handle. if (!::CloseHandle(hObject)) { // Closing the handle failed for some reason. return AtlHresultFromLastError(); } return S_OK; }
HRESULT CNdasAutoRegister::Initialize() { if (m_hSemQueue.IsInvalid()) { m_hSemQueue = ::CreateSemaphore(NULL, 0, 255, NULL); if (m_hSemQueue.IsInvalid()) { HRESULT hr = AtlHresultFromLastError(); return hr; } } (void) m_data.LoadFromSystem(); return S_OK; }
HRESULT CWinThread::CreateNoCRT( IWinRunnable* piRunnable ) { assert(!m_h); assert(piRunnable); if (m_h) return AtlHresultFromWin32(ERROR_ALREADY_INITIALIZED); if (!piRunnable) return E_POINTER; m_h = ::CreateThread(NULL, 0, RunThreadFuncNoCRT, piRunnable, CREATE_SUSPENDED, NULL); if (!m_h) return GetLastError() ? AtlHresultFromLastError() : E_FAIL; Resume(); return S_OK; }
HRESULT CWinThread::Create( IWinRunnable* piRunnable ) { assert(!m_h); assert(piRunnable); if (m_h) return AtlHresultFromWin32(ERROR_ALREADY_INITIALIZED); if (!piRunnable) return E_POINTER; // use _beginthreadex for initialization of c runtime lib m_h = (HANDLE)_beginthreadex(NULL, 0, RunThreadFunc, piRunnable, CREATE_SUSPENDED, NULL); if (!m_h) return GetLastError() ? AtlHresultFromLastError() : E_FAIL; Resume(); return S_OK; }
HRESULT CNdasUnitImpl::ConnectUnitDevice( HNDAS *ndasHandle) { // // Binding Address List // SOCKADDR_LPX localSockAddrLpx; SOCKET_ADDRESS localSocketAddress; localSocketAddress.iSockaddrLength = sizeof(SOCKADDR_LPX); localSocketAddress.lpSockaddr = reinterpret_cast<LPSOCKADDR>(&localSockAddrLpx); COMVERIFY(m_pParentNdasDevice->get_LocalAddress(&localSocketAddress)); SOCKET_ADDRESS_LIST localAddressList; localAddressList.iAddressCount = 1; localAddressList.Address[0] = localSocketAddress; // Connection Information NDASCOMM_CONNECTION_INFO ci = {0}; ci.Size = sizeof(NDASCOMM_CONNECTION_INFO); ci.AddressType = NDASCOMM_CIT_DEVICE_ID; COMVERIFY(m_pParentNdasDevice->get_NdasDeviceId(&ci.Address.DeviceId)); ci.LoginType = NDASCOMM_LOGIN_TYPE_NORMAL; COMVERIFY(m_pParentNdasDevice->get_HardwarePassword(&ci.OEMCode.UI64Value)); ci.Protocol = NDASCOMM_TRANSPORT_LPX; ci.UnitNo = m_unitDeviceId.UnitNo; ci.WriteAccess = FALSE; ci.BindingSocketAddressList = &localAddressList; *ndasHandle = ::NdasCommConnect(&ci); if (NULL == *ndasHandle) { HRESULT hr = AtlHresultFromLastError(); XTLTRACE2(NDASSVC_NDASCOMM, TRACE_LEVEL_ERROR, "NdasCommConnect failed, hr=0x%X\n", hr); return hr; } return S_OK; }